--- 1/draft-ietf-mmusic-sap-v2-01.txt 2006-02-05 00:27:39.000000000 +0100 +++ 2/draft-ietf-mmusic-sap-v2-02.txt 2006-02-05 00:27:39.000000000 +0100 @@ -1,19 +1,19 @@ Mark Handley ACIRI Colin Perkins UCL Edmund Whelan UCL Session Announcement Protocol - draft-ietf-mmusic-sap-v2-01.txt + draft-ietf-mmusic-sap-v2-02.txt Status of this memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. @@ -75,23 +75,23 @@ allowing those sessions to be joined. The key words `MUST', `MUST NOT', `REQUIRED', `SHALL', `SHALL NOT', `SHOULD', `SHOULD NOT', `RECOMMENDED', `MAY', and `OPTIONAL' in this document are to be interpreted as described in [1]. 3 Session Announcement As noted previously, a SAP announcer periodically sends an announcement packet to a well known multicast address and port. There is no rendezvous -mechanism - the SAP announcer is not aware of the presence or absence of -any SAP listeners - and no additional reliability is provided over the -standard best-effort UDP/IP semantics. +mechanism - the SAP announcer is not aware of the presence or absence +of any SAP listeners - and no additional reliability is provided +over the standard best-effort UDP/IP semantics. That announcement contains a session description and SHOULD contain an authentication header. The session description MAY be encrypted although this is NOT RECOMMENDED (see section 8). A SAP announcement is multicast with the same scope as the session it is announcing, ensuring that the recipients of the announcement can also be potential recipients of the session being advertised. There are four possiblities: @@ -140,47 +140,67 @@ An IPv4 SAP listener SHOULD listen on the IPv4 global scope SAP address and on the SAP addresses for each IPv4 administrative scope zone it is within. The discovery of administrative scope zones is outside the scope of this memo, but it is assumed that each SAP listener within a particular scope zone is aware of that scope zone. A SAP listener which supports IPv6 SHOULD also listen to the IPv6 SAP addresses. Support for directory sessions is OPTIONAL. -The time period between repetitions of an announcement is chosen such that -the total bandwidth used by all announcements on a single SAP group remains -below a preconfigured limit. If not otherwise specified, the bandwidth -limit SHOULD be assumed to be 4000 bits per second. +3.1 Announcement Interval -Each announcer is expected to listen to other announcements in order to -determine the total number of sessions being announced on a particular -group. Sessions are uniquely identified by the combination of the message -identifier hash and originating source fields of the SAP header. If these -fields are non-zero they form a unique identifier for the announcement, if -they are zero then the entire message MUST be compared to determine -uniqueness. +The time period between repetitions of an announcement is chosen +such that the total bandwidth used by all announcements on a single +SAP group remains below a preconfigured limit. If not otherwise +specified, the bandwidth limit SHOULD be assumed to be 4000 bits +per second. -Thus you should calculate the available bandwidth for your session's scope -by dividing the bandwidth limit by the number of other sessions being -announced in your scope. This gives you your bandwidth allocation, which, -given the size of your data packets, can be used to derive the base -interval for announcements. That is, given a limit in bits/second (as -above) and a ad_size in bytes, the base announcement interval in seconds is +Each announcer is expected to listen to other announcements in order +to determine the total number of sessions being announced on a particular +group. Sessions are uniquely identified by the combination of the +message identifier hash and originating source fields of the SAP +header (note that SAP v0 clients always set the message identifier +hash to zero, and if such an announcement is received the entire +message MUST be compared to determine uniqueness). - interval = MAX(300; (8* no_of_ads* ad_size)/limit) +Announcements are made by periodic multicast to the group. The base +interval between announcements is derived from the number of announcements +being made in that group, the size of the announcement and the configured +bandwidth limit. The actual transmission time is derived from this +base interval as follows: -For every interval between announcement packets (i.e, every time you send a -packet), you must add a random value (+/- 1/3 of the base interval) to the -value used for the inter-announcement period to prevent announcement -synchronisation. It is also important to keep monitoring other -announcements and adjust the base interval accordingly. + 1.The announcer initialises the variable tp to be the last time + a particular announcement was transmitted (or the current time + if this is the first time this announcement is to be made). + + 2.Given a configured bandwidth limit in bits/second and an announcement + of ad_size bytes, the base announcement interval in seconds is + + interval = max(300; (8*no_of_ads*ad_size)/limit) + + 3.An offset is calculated based on the base announcement interval + + offset = rand(interval* 2/3)-(interval/3) + + 4.The next transmission time for an announcement derived as + + tn = tp + interval + offset + +The announcer then sets a timer to expire at tn and waits. When +this timer expires, the announcement is transmitted. + +If, at some time tc