diff options
Diffstat (limited to 'doc/rfc/rfc947.txt')
-rw-r--r-- | doc/rfc/rfc947.txt | 285 |
1 files changed, 285 insertions, 0 deletions
diff --git a/doc/rfc/rfc947.txt b/doc/rfc/rfc947.txt new file mode 100644 index 0000000..c82ea38 --- /dev/null +++ b/doc/rfc/rfc947.txt @@ -0,0 +1,285 @@ + + +Network Working Group Ken Lebowitz +Request for Comments: 947 David Mankins + BBN Laboratories + June 1985 + + Multi-network Broadcasting within the Internet + + +1. Status of this Memo + + This RFC describes the extension of a network's broadcast domain to + include more than one physical network through the use of a broadcast + packet repeater. + + The following paper will present the problem of multi-network + broadcasting and our motivation for solving this problem which is in + the context of developing a distributed operating system. We discuss + different solutions to extending a broadcast domain and why we chose + the one that has been implemented. In addition, there is information + on the implementation itself and some notes on its performance. + + It is hoped that the ideas presented here will help people in the + Internet who have applications which make use of broadcasting and + have come up against the limitation of only being able to broadcast + within a single network. + + The information presented here is accurate as of the date of + publication but specific details, particularly those regarding our + implementation, may change in the future. Distribution of this memo + is unlimited. + +2. The Problem + + Communication between hosts on separate networks has been addressed + largely through the use of Internet protocols and gateways. One + aspect of internetwork communication that hasn't been solved in the + Internet is extending broadcasting to encompass two or more networks. + Broadcasting is an efficient way to send information to many hosts + while only having to transmit a single packet. Many of the current + local area network (LAN) architectures directly support a broadcast + mechanism. Unfortunately, this broadcast mechanism has a shortcoming + when it is used in networking environments which include multiple + LANs connected by gateways such as in the DARPA Internet. This + shortcoming is that broadcasted packets are only received by hosts on + the physical network on which the packet was broadcast. As a result, + any application which takes advantage of LAN broadcasting can only + broadcast to those hosts on its physical network. + + We took advantage of broadcasting in developing the Cronus + Distributed Operating System [1]. Cronus provides services and + communication to processes distributed among a variety of different + + +Lebowitz & Mankins [Page 1] + + + +RFC 947 June 1985 +Multi-network Broadcasting within the Internet + + + types of computer systems. Cronus is built around logical clusters + of hosts connected to one or more high-speed LANs. Communication in + Cronus is built upon the TCP and UDP protocols. Cronus makes use of + broadcasting for dynamically locating resources on other hosts and + collecting status information from a collection of servers. Since + Cronus's broadcast capabilities are not intended to be limited to the + boundaries of a single LAN, we needed to find some way to extend our + broadcasting domain to include hosts on distant LANs in order to + experiment with clusters that span several physical networks. Cronus + predominantly uses broadcasting to communicate with a subset of the + hosts that actually receive the broadcasted message. A multicast + mechanism would be more appropriate, but was unavailable in some of + our network implementations, so we chose broadcast for the initial + implementation of Cronus utilities. + +3. Our Solution + + The technique we chose to experiment with the multi-network + broadcasting problem can be described as a "broadcast repeater". A + broadcast repeater is a mechanism which transparently relays + broadcast packets from one LAN to another, and may also forward + broadcast packets to hosts on a network which doesn't support + broadcasting at the link-level. This mechanism provides flexibility + while still taking advantage of the convenience of LAN broadcasts. + + Our broadcast repeater is a process on a network host which listens + for broadcast packets. These packets are picked up and + retransmitted, using a simple repeater-to-repeater protocol, to one + or more repeaters that are connected to distant LANs. The repeater + on the receiving end will rebroadcast the packet on its LAN, + retaining the original packet's source address. The broadcast + repeater can be made very intelligent in its selection of messages to + be forwarded. We currently have the repeater forward only broadcast + messages sent using the UDP ports used by Cronus, but messages may be + selected using any field in the UDP or IP headers, or all IP-level + broadcast messages may be forwarded. + +4. Alternatives to the Broadcast Repeater + + We explored a few alternatives before deciding on our technique to + forward broadcast messages. One of these methods was to put + additional functions into the Internet gateways. Gateways could + listen at the link-level for broadcast packets and relay the packets + to one or more gateways on distant LANs. These gateways could then + transmit the same packet onto their networks using the local + network's link-level broadcast capability, if one is available. All + gateways participating in this scheme would have to maintain tables + + +Lebowitz & Mankins [Page 2] + + + +RFC 947 June 1985 +Multi-network Broadcasting within the Internet + + + of all other gateways which are to receive broadcasts. If the + recipient gateway was serving a network without a capacity to + broadcast it could forward the messages directly to one or more + designated hosts on its network but, again, it would require that + tables be kept in the gateway. Putting this sort of function into + gateways was rejected for a number of reasons: (a) it would require + extensions to the gateway control protocol to allow updating the + lists gateways would have to maintain, (b) since not all messages + (e.g., LAN address- resolution messages) need be forwarded, the need + to control forwarding should be under the control of higher levels of + the protocol than may be available to the gateways, (c) Cronus could + be put into environments where the gateways may be provided by + alternative vendors who may not implement broadcast propagation, (d) + as a part of the underlying network, gateways are likely to be + controlled by a different agency from that controlling the + configuration of a Cronus system, adding bureaucratic complexity to + reconfiguration. + + Another idea which was rejected was to put broadcast functionality + into the Cronus kernel. The Cronus kernel is a process which runs on + each host participating in Cronus, and has the task of routing all + messages passed between Cronus processes. The Cronus kernel is the + only program in the Cronus system which directly uses broadcast + capability (other parts of Cronus communicate using mechanisms + provided by the kernel). We could either entirely remove the Cronus + kernel's dependence on broadcast, or add a mechanism for emulating + broadcast using serially-transmitted messages when the underlying + network does not provide a broadcast facility itself. Either + solution requires all Cronus kernel processes to know the addresses + of all other participants in a Cronus system, which we view as an + undesirable limit on configuration flexibility. Also, this solution + would be Cronus-specific, while the broadcast-repeater solution is + applicable to other broadcast-based protocols. + +5. Implementation + + The broadcast repeater is implemented as two separate processes - the + forwarder and the repeater. The forwarder process waits for + broadcast UDP packets to come across its local network which match + one or more specific port numbers (or destination addresses). When + such a packet is found, it is encapsulated in a forwarder-repeater + message sent to a repeater process on a foreign network. The + repeater then relays the forwarded packet onto its LAN using that + network's link-level broadcast address in the packet's destination + field, but preserving the source address from the original packet. + + When the forwarder process starts for the first time it reads a + + +Lebowitz & Mankins [Page 3] + + + +RFC 947 June 1985 +Multi-network Broadcasting within the Internet + + + configuration file. This file specifies the addresses of repeater + processes, and selects which packets should be forwarded to each + repeater process (different repeaters may select different sets of + UDP packets). The forwarder attempts to establish a TCP connection + to each repeater listed in the configuration file. If a TCP link to + a repeater fails, the forwarder will periodically retry connecting to + it. Non-repeater hosts may also be listed in the configuration file. + For these hosts the forwarder will simply replace the destination + broadcast address in the UDP packet with the host's address and send + this new datagram directly to the non-repeater host. + + If a repeater and a forwarder co-exist on the same LAN a problem may + arise if the forwarder picks up packets which have been rebroadcast + by the repeater. As a precaution against rebroadcast of forwarded + packets ("feedback" or "ringing"), the forwarder does not connect to + any repeaters listed in its configuration file which are on the same + network as the forwarder itself. Also, to avoid a broadcast loop + involving two LANs, each with a forwarder talking to a repeater on + the other LAN, forwarders do not forward packets whose source address + is not on the forwarder's LAN. + +6. Experience + + To date, the broadcast repeater has been implemented on the VAX + running 4.2 BSD UNIX operating system with BBN's networking software + and has proven to work quite well for our purposes. Our current + configuration includes two Ethernets which are physically separated + by two other LANs. For the past few months the broadcast repeater + has successfully extended our broadcast domain to include both + Ethernets even though messages between the two networks must pass + through at least two gateways. We were forced to add a special + capability to the BBN TCP/IP implementation which allows privileged + processes to send out IP packets with another host's source address. + + The repeater imposes a fair amount of overhead on the shared hosts + that currently support it due to the necessity of waking the + forwarder process on all UDP packets which arrive at the host, since + the decision to reject a packet is made by user-level software, + rather than in the network protocol drivers. One solution to this + problem would be to implement the packet filtering in the system + kernel (leaving the configuration management and rebroadcast + mechanism in user code) as has been done by Stanford/CMU in a UNIX + packet filter they have developed. As an alternative we are planning + to rehost the implementation of the repeater function as a + specialized network service provided by a microcomputer based + + + + +Lebowitz & Mankins [Page 4] + + + +RFC 947 June 1985 +Multi-network Broadcasting within the Internet + + + real-time system which is already part of our Cronus configuration. + Such a machine is better suited to the task since scheduling overhead + is much less for them than it is on a multi-user timesharing system. + +7. Reference + + [1] "Cronus, A Distributed Operating System: Phase 1 Final Report", + R. Schantz, R. Thomas, R. Gurwitz, G. Bono, M. Dean, + K. Lebowitz, K. Schroder, M. Barrow and R. Sands, Technical + Report No. 5885, Bolt Beranek and Newman, Inc., January 1985. + The Cronus project is supported by the Rome Air Development + Center. + +8. Editors Note + + Also see RFCs 919 and 940 on this topic. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Lebowitz & Mankins [Page 5] + |