:::note State?

Information stored in entities connected through a network :::

  • Updated when node or network conditions change
  • Stored in end-points or multiple nodes
  • Often associated with end-system generated call or session
  • Examples:
    • TCP: Sequence numbers, timer values, RTT estimates
    • Scheduling a meeting with advisor

Sender vs Receiver

  • Sender
    • Network node that (re)generates signaling (control) messages to install, keep-alive, remove state from other nodes
    • One sender can have multiple receivers E.g.: routing
  • Receiver - Node that creates, maintains, removes state based on signaling messages received from sender (or the absence of)

Soft-state vs Hard-state

Hard State

  • State installed by receiver on receipt of setup message from sender.
  • State removed by receiver on receipt of teardown message from sender.
  • Default assumption: state valid unless told otherwise

Soft State

  • State installed by receiver on receipt of setup (trigger) message from sender.
  • Sender sends periodic refresh messages indicating receiver should continue to maintain state.
  • State removed by receiver via timeout, in absence of refresh message from sender.
  • Default assumption: State becomes invalid unless refreshed
  • Easy handling of changes
    • Recovery performed transparently to end-system by normal refresh procedures
    • No need for network to signal failure/change to end system, or end system to respond to specific error
    • Less signaling (volume, types of messages) than hard-state from network to end-system
    • More signaling (volume) than hard-state from end-system to network for refreshes
  • Refresh messages serve many purposes:
    • Trigger: first time state-installation
    • Refresh: refresh state known to exist (“I am still here”)
    • Lack of refresh: Remove state (“I am gone”)

Discussion

  • Hard State
    • Better if message overhead really high
    • Potentially greater consistency
    • System wide coupling → difficult to analyze
  • Soft State
    • Implicit reliability
    • Easier error recovery
    • Easily decomposed → simpler analysis