Back to index
Soft-State Protocol for Accessing Multimedia Archives
A. Schuett, S. Raman, Y. Chawathe, S. McCanne, R. Katz
Soft-state lightweight session protcol, based on announce/listen and
refreshable soft state, for serving multimedia streaming content to
implicit or explicit subscription groups using mcast.
- Functionality goals: maintenance of shared state; group
formation/mgt; fault detection and recovery.
- Initial handshake launches an SSAC "archive agent". As soon as
it's launched, it starts reflecting the control state in
- Client and server each periodically announce state info. State
info contains complete info necessary to resume a session in case
of failure, even if the session has already timed out.
- Asymptotically reliable "Set": to set a value, client does this
in its heartbeat, and waits for new value to be reflected in
server heartbeat. Value is assumed "set" when the first server
heartbeat containing the new value is multicast. For explcit
groups (subscription), server must
manage race conditions if multiple clients set a parameter to
different values. State change latency is therefore
about 2 RTT.
- Alternative: Group fork-- a client param change can cause client to leave a
group and start its own new session. This is useful under
implicit group management, where server attempts to collect
"similar" clients into a group automatically but clients can
leave the group once they're no longer similar.
- Client annoucnement frequency should be kept constant as number
of clients increases. Not a problem since all clients benefit
from every client's annoucnements.
- Related work: RTSP doesn't explicitly address fault
discovery/recovery; MBone VCR-on-demand can only have 1 client
controlling a session (others are listen-only).
Asymptotically reliable SET and other techniques can be added to the
arsenal of soft state management tools. AS1 (Elan's active services
framework) may provide some of these as abstractions.
Managing race conditions can be tricky...but this only claims to be a
protocol, not a complete application-semantics-level solution.
Back to index