分享
 
 
 

RFC947 - Multi-network broadcasting within the Internet

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

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 RFCdescribes 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

RFC947 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

RFC947 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

RFC947 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

RFC947 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.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有