IEN # 10                                           William W. Plummer
Supercedes: None                                                  BBN
Replaces: None                                           7 March 1977


                Internet Broadcast Protocols

                    William W. Plummer

                Bolt Beranek and Newman, Inc.
                    50 Moulton Street
                  Cambridge, Mass.  02173

                        7 March 77

Internet Broadcast Protocols                            Plummer, 7MAR77

1.      The Applications

        At least two applications of a broadcast mechanism have come
into view: a "news wire" service, where error-free delivery is required,
and a "network speech" protocol where a small percentage of dropped or
corrupted messages is permitted.  TCP is applicable to the former since
it is designed to provide highly reliable connections, perhaps with some
penalty in time.  To use TCP for network speech however, would required
adding features specifically to defeat parts of the protocol.

        The question of using a modified TCP for speech-type applications
will be deferred for further study.  TCP does provide some useful
features (reliable establishment of connections, a way of naming connections,
ability to reset half-open connections, etc.) which would be required in
any application, but the issues which surface when partial reliability
is permitted are complex.

        TCP is a good choice for the "news wire" application.  Here, a
receiver may "tune in" to a source of reports and while he is connected,
will receive continuous, error-free delivery.  In the following a
mechanism for doing this will be proposed.

2.      An Assumption and its Consequences

        A fundamental assumption of internet protocols (not only TCP) is
that no special requirements may be placed on the participating networks.
All they must be able to do is deliver a minimum sized packet with some
semblance of reliability (Packet Radio Network is designed about a 10
percent loss rate).  Various networks such as Packet Radio and Packet
Satellite are fundamentally broadcast in nature and it would seem
that some advantage of this could be taken.  However, to rely on these
properties in order to make a broadcast mechanism work would imply
retrofitting wired, single receiver networks such as the ARPANET so that
their subnets had similar features.  This would violate the above stated
assumption about internetting.

        Having to cope with single-receiver subnets suggests two ways to
implement broadcasting.  One is the "read-this-and-pass-it-on" arrangement,
and the other uses one or more distribution agents ("distributors").

The former solution has a major flaw in that service to all
receivers will be interrupted should any host, intermediate network,
or gateway fail, because acknowledgments from the last host cannot
be returned to the broadcast source.  This is just too fragile; the
distributor concept offers much better reliability.

Internet Broadcast Protocols                            Plummer, 7MAR77

3.      Distributor

        Building a distributor involves writing a distribution server
program which implements a layer of protocol not only above the subnet,
but above TCP!  This a is highly desirable property since it separates
the connection maintenance function from the broadcast function.

        A distribution server operates as follows:  It "listens" for
a connection from anyone wishing to initiate a broadcast.  Once this
connection has become bound, the broadcast source supplies a distribution
list (exact form and content will be described later).  If all goes well,
the distribution server will respond with the name of a specific
input connection to itself to be used by the broadcasting process.
The distribution server then establishes as may secondary connections
as it sees fit -- some of which may go to other distributors in the same
or different networks.

        The process run by the distributor for each specific connection
simply reads a message from the broadcast source over the input connection
and sends it out over each of the output connections.  As previously
mentioned, some of the output connections will be directly to specific
receivers, but others will be to secondary distributors.  In order to
prevent hang-ups, it is required that each output connection address a
set of receivers which is more specific than the input distribution
list.  Thus it would be improper for a distribution server to accept
an input list of "Net 3, all hosts" and open two output connections,
one to "Net 3, Host 100" and the other to a distributor for the purpose
of broadcasting to "Net 3, all hosts".  This secondary distribution
list is not more specific than the input list and results in
"Net 3, Host 100" being covered twice, most likely resulting in a
hang-up if only one process is receiving the broadcast.

4.      Connection Closing and Errors

        Connections out of a distributor may be closed at any time
by the receiver.  When all of the output connections have closed, the
distributor will close its input connection.  Retransmission timeouts
are to be treated as connection closings if they address a specific
receiving process.  On the other hand a timeout on an output connection
to a secondary distributor might be handled by attempting to reestablish
communications via some different distributor, or if resources permit,
to make specific output connections to each of the intended receivers.

Internet Broadcast Protocols                            Plummer, 7MAR77

5.      Flow Control

        Flow is governed by the window announced by the distributor to
the broadcaster.  This window is a reflection of the amount of buffer
space available in the distribution server itself, which in turn is
a function of the number of output connections and the amount of
unacknowledged information of each of these.  This automatically
provides a safeguard against any particular output connection tying
up buffer space in the distributor by telling the distributor that
it is able to receive a vast amount of data and then being very slow
at processing it -- this situation cannot arise because the distributor
will not send anymore than it has received, and it will not have received
much if its buffer space is committed to waiting for ACK for packets
on slow output connections.

6.      Resynchronization, etc.

        Resynchronization, sending ARQs, letter size management, and
segment reassembly are handled inside the distributor, transparently
to the broadcaster.  Only connection opening and closing, and data
acknowledgement involve any communications back to the broadcaster.

7.      Multiple Distributors and the Billboard

        Any host should be able to run a distribution server and a
potential broadcaster could select any one that he can contact.  Which
one(s) will be dictated by other, outside constraints such as privacy,
accounting, etc.  On the other hand a potential receiver may want to
find out where a good, relatively local source of some type of broadcast
information is -- say weather information, but not airline flight
information.  To handle this need, each distribution list
will contain a title.  Upon setting up an instance of the distribution
function, the title from the distribution list will be copied into
a server-wide table along with the name of a local listening connection
which is intended to service new output connections.

        In addition to the normal listening connection for new distribution
lists, the distributor will maintain a listening connection for its
billboard function.  This will be on a well-known socket.  A potential
receiver looking for a specific kind of broadcast would do it by
polling the distributors that it knows about, establishing a connection
to the billboard function on each, and looking at what is listed to
see if the desired information is being broadcast at that moment.

Internet Broadcast Protocols                            Plummer, 7MAR77

If so, the distributor (output) socket listed will be used to tap
the information.  Should the broadcast cease before the data connection
is established, it is desirable to have the data connection attempt fail.
However, it must also be the case that establishing the data connection
does not pick up a newer instance of a distribution list.  So, some
simple additional protocol is needed to resolve this issue.  This most
likely will take the form of verifying the data connection attempt
on the basis of a random key passed out by the billboard function.

8.      Knowing Distributor Addresses

        The problem of knowing the identity (Network, Host) where
distribution servers are running is common to both potential receivers
and potential broadcast senders.  This problem is not peculiar to
to the broadcast mechanism; it is the same one as a user faces when
he want to use a FORTRAN system on some (i.e., any) host.  A master
service directory must be consulted.  This could be a printed list
like a telephone book or it could be implemented by a program, but
it not a problem to be solved by the broadcast mechanism.

9.      Controlled Unreliability

        Although it is felt that TCP is not well suited for the net speech
type of service, there are a few considerations which might make this
possible.  First, the broadcast source can "clear the pipe" at any time
by sending a TCP level interrupt (INT) which forces all receivers to
flush their current receive buffers.  The broadcaster would do this if
the rate of delivery had dropped below some predetermined rate.  Notice
that if the rate had gotten slow due to some host in the tree of
distributors and receivers having crashed, then the INT will not be
acknowledged, the distributor before the failed host will suffer a
retransmission failure on the INT, and will mark that output connection
as closed.  This has the overall effect of causing a momentary loss of
data to many (if not all) receivers, but permanently removes the slow
or crashed receiver from the distribution.

        Another possiblity is that acknowledgements could be faked
either by the sources TCP or by distributors.  The problems involved
are that control bytes can never by covered by fake ACKs, and that
window information must be carefully handled.