Session Announcement Protocol (SAP)
Session Announcement Protocol (SAP)
Defined in RFC 2974
Primarily for multicast session announcement. It provides the session setup information to prospective participants.
Each SAP announcer periodically multicasts an announcement:
- to a well known multicast address on port 9875
- IPv4 global scope sessions use multicast addresses in the range 224.2.128.0 - 224.2.255.255 - their SAP announcements are sent to 224.2.127.254
- IPv4 administrative scope sessions using administratively scoped IP multicast are defined in [x], the multicast address to be used for announcements is the highest multicast address in the relevant administrative scope zone, e.g., if the scope range is 239.16.32.0 - 239.16.33.255, then SAP announcements use 239.16.33.255
-
- IPv6 sessions are announced on the address FF0X:0:0:0:0:0:2:7FFE where X is the 4-bit scope value, e.g., an announcement for a link-local session assigned the address FF02:0:0:0:0:0:1234:5678, is advertised on SAP address FF02:0:0:0:0:0:2:7FFE
- has same scope as the session it is announcing (the use of TTL scoping for multicast is discouraged)
- IP time-to-live of 255
See also [Asaeda and Roca 2010]
Slide Notes
M. Handley, C. Perkins, and E. Whelan, RFC 2974: Session Announcement Protocol, IETF, October 2000 http://www.ietf.org/rfc/rfc2974.txt Links to an external site.
H. Asaeda and V. Roca, Requirements for IP Multicast Session Announcement in the Internet, IETF, MBONED Working Group, Internet-Draft, March 8, 2010, Expired: September 9, 2010, draft-ietf-mboned-session-announcement-req-03 http://tools.ietf.org/html/draft-ietf-mboned-session-announcement-req-03 Links to an external site.
Transcript
[slide184] The reason we need a session announcement protocol is because, as we saw, RTP can be multicast. So one of the ideas was, hey, if I can send out announcements on this date, on this time, at this this IP address there will be this content, then people could choose during this particular time to join in that multicast. So for instance, NASA did multicast from the space station. Right? You want lots of people to be able to watch what's going on. So the session announcement protocol sends it to a well-known multicast address on port 9875, and it then scopes them to basically be able to discriminate how large a region that particular session announcement is to happen. And then, of course, we use TLS scoping of IP packets, but that's not recommended because, of course, we really want to scope it administratively, not simply by numbers of hops. So the result is that we send it to addresses, and IPv6 even has a set of addresses where there's a field that tells us even down to the rack of computers or this organization, et cetera. The time to live is always set to 255. That's it. That was pretty fast. Right? So it's really easy. You get the announcement, you join the multicast group if you want to see the content, the RTP packets will have the payload descriptions in them so you can decode them. So what happens if you are late to join that session? Well it does not matter, you simply join that multicast group and since they preannounced what the CODECs are going to be, you know what to set your CODEC to. Off you go.