home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc0947.txt < prev    next >
Text File  |  1996-05-07  |  13KB  |  121 lines

  1.  
  2.  
  3. Network Working Group                                       Ken Lebowitz Request for Comments: 947                                  David Mankins                                                         BBN Laboratories                                                                June 1985 
  4.  
  5.              Multi-network Broadcasting within the Internet 
  6.  
  7.  1. Status of this Memo 
  8.  
  9.    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. 
  10.  
  11.    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. 
  12.  
  13.    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. 
  14.  
  15.    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. 
  16.  
  17. 2. The Problem 
  18.  
  19.    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. 
  20.  
  21.    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 
  22.  
  23.  Lebowitz & Mankins                                              [Page 1] 
  24.  
  25.  
  26.  RFC 947                                                        June 1985 Multi-network Broadcasting within the Internet 
  27.  
  28.     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. 
  29.  
  30. 3. Our Solution 
  31.  
  32.    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. 
  33.  
  34.    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. 
  35.  
  36. 4. Alternatives to the Broadcast Repeater 
  37.  
  38.    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 
  39.  
  40.  Lebowitz & Mankins                                              [Page 2] 
  41.  
  42.  
  43.  RFC 947                                                        June 1985 Multi-network Broadcasting within the Internet 
  44.  
  45.     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. 
  46.  
  47.    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. 
  48.  
  49. 5. Implementation 
  50.  
  51.    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. 
  52.  
  53.    When the forwarder process starts for the first time it reads a 
  54.  
  55.  Lebowitz & Mankins                                              [Page 3] 
  56.  
  57.  
  58.  RFC 947                                                        June 1985 Multi-network Broadcasting within the Internet 
  59.  
  60.     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. 
  61.  
  62.    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. 
  63.  
  64. 6. Experience 
  65.  
  66.    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. 
  67.  
  68.    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 
  69.  
  70.  
  71.  
  72.  Lebowitz & Mankins                                              [Page 4] 
  73.  
  74.  
  75.  RFC 947                                                        June 1985 Multi-network Broadcasting within the Internet 
  76.  
  77.     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. 
  78.  
  79. 7. Reference 
  80.  
  81.    [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. 
  82.  
  83. 8. Editors Note 
  84.  
  85.    Also see RFCs 919 and 940 on this topic. 
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119. Lebowitz & Mankins                                              [Page 5] 
  120.  
  121.