📄 rfc919.txt
字号:
Network Working Group Jeffrey Mogul
Request for Comments: 919 Computer Science Department
Stanford University
October 1984
BROADCASTING INTERNET DATAGRAMS
Status of this Memo
We propose simple rules for broadcasting Internet datagrams on local
networks that support broadcast, for addressing broadcasts, and for
how gateways should handle them.
This RFC suggests a proposed protocol for the ARPA-Internet
community, and requests discussion and suggestions for improvements.
Distribution of this memo is unlimited.
Acknowledgement
This proposal is the result of discussion with several other people,
especially J. Noel Chiappa and Christopher A. Kent, both of whom both
pointed me at important references.
1. Introduction
The use of broadcasts, especially on high-speed local area networks,
is a good base for many applications. Since broadcasting is not
covered in the basic IP specification [13], there is no agreed-upon
way to do it, and so protocol designers have not made use of it. (The
issue has been touched upon before, e.g. [6], but has not been the
subject of a standard.)
We consider here only the case of unreliable, unsequenced, possibly
duplicated datagram broadcasts (for a discussion of TCP broadcasting,
see [11].) Even though unreliable and limited in length, datagram
broadcasts are quite useful [1].
We assume that the data link layer of the local network supports
efficient broadcasting. Most common local area networks do support
broadcast; for example, Ethernet [7, 5], ChaosNet [10], token ring
networks [2], etc.
We do not assume, however, that broadcasts are reliably delivered.
(One might consider providing a reliable broadcast protocol as a
layer above IP.) It is quite expensive to guarantee delivery of
broadcasts; instead, what we assume is that a host will receive most
of the broadcasts that are sent. This is important to avoid
excessive use of broadcasts; since every host on the network devotes
at least some effort to every broadcast, they are costly.
Mogul [Page 1]
RFC 919 October 1984
Broadcasting Internet Datagrams
When a datagram is broadcast, it imposes a cost on every host that
hears it. Therefore, broadcasting should not be used
indiscriminately, but rather only when it is the best solution to a
problem.
Note: some organizations have divided their IP networks into subnets,
for which a standard [8] has been proposed. This RFC does not cover
the numerous complications arising from the interactions between
subnets and broadcasting; see [9] for a complete discussion.
2. Terminology
Because broadcasting depends on the specific data link layer in use
on a local network, we must discuss it with reference to both
physical networks and logical networks.
The terms we will use in referring to physical networks are, from the
point of view of the host sending or forwarding a broadcast:
Local Hardware Network
The physical link to which the host is attached.
Remote Hardware Network
A physical network which is separated from the host by at least
one gateway.
Collection of Hardware Networks
A set of hardware networks (transitively) connected by gateways.
The IP world includes several kinds of logical network. To avoid
ambiguity, we will use the following terms:
Internet
The DARPA Internet collection of IP networks.
IP Network
One or a collection of several hardware networks that have one
specific IP network number.
Mogul [Page 2]
RFC 919 October 1984
Broadcasting Internet Datagrams
3. Why Broadcast?
Broadcasts are useful when a host needs to find information without
knowing exactly what other host can supply it, or when a host wants
to provide information to a large set of hosts in a timely manner.
When a host needs information that one or more of its neighbors might
have, it could have a list of neighbors to ask, or it could poll all
of its possible neighbors until one responds. Use of a wired-in list
creates obvious network management problems (early binding is
inflexible). On the other hand, asking all of one's neighbors is
slow if one must generate plausible host addresses, and try them
until one works. On the ARPANET, for example, there are roughly 65
thousand plausible host numbers. Most IP implementations have used
wired-in lists (for example, addresses of "Prime" gateways.)
Fortunately, broadcasting provides a fast and simple way for a host
to reach all of its neighbors.
A host might also use a broadcast to provide all of its neighbors
with some information; for example, a gateway might announce its
presence to other gateways.
One way to view broadcasting is as an imperfect substitute for
multicasting, the sending of messages to a subset of the hosts on a
network. In practice, broadcasts are usually used where multicasts
are what is wanted; packets are broadcast at the hardware level, but
filtering software in the receiving hosts gives the effect of
multicasting.
For more examples of broadcast applications, see [1, 3].
4. Broadcast Classes
There are several classes of IP broadcasting:
- Single-destination datagram broadcast on the local IP net: A
datagrams is destined for a specific IP host, but the sending
host broadcasts it at the data link layer, perhaps to avoid
having to do routing. Since this is not an IP broadcast, the IP
layer is not involved, except that a host should discard
datagrams not meant for it without becoming flustered (i.e.,
printing an error message).
- Broadcast to all hosts on the local IP net: A distinguished
value for the host-number part of the IP address denotes
broadcast instead of a specific host. The receiving IP layer
must be able to recognize this address as well as its own.
Mogul [Page 3]
RFC 919 October 1984
Broadcasting Internet Datagrams
However, it might still be useful to distinguish at higher
levels between broadcasts and non-broadcasts, especially in
gateways. This is the most useful case of broadcast; it allows a
host to discover gateways without wired-in tables, it is the
basis for address resolution protocols, and it is also useful
for accessing such utilities as name servers, time servers,
etc., without requiring wired-in addresses.
- Broadcast to all hosts on a remote IP network: It is
occasionally useful to send a broadcast to all hosts on a
non-local network; for example, to find the latest version of a
hostname database, to bootload a host on an IP network without a
bootserver, or to monitor the timeservers on the IP network.
This case is the same as local-network broadcasts; the datagram
is routed by normal mechanisms until it reaches a gateway
attached to the destination IP network, at which point it is
broadcast. This class of broadcasting is also known as "directed
broadcasting", or quaintly as sending a "letter bomb" [1].
- Broadcast to the entire Internet: This is probably not useful,
and almost certainly not desirable.
For reasons of performance or security, a gateway may choose not to
forward broadcasts; especially, it may be a good idea to ban
broadcasts into or out of an autonomous group of networks.
5. Broadcast Methods
A host's IP receiving layer must be modified to support broadcasting.
In the absence of broadcasting, a host determines if it is the
recipient of a datagram by matching the destination address against
all of its IP addresses. With broadcasting, a host must compare the
destination address not only against the host's addresses, but also
against the possible broadcast addresses for that host.
The problem of how best to send a broadcast has been extensively
discussed [1, 3, 4, 14, 15]. Since we assume that the problem has
already been solved at the data link layer, an IP host wishing to
send either a local broadcast or a directed broadcast need only
specify the appropriate destination address and send the datagram as
usual. Any sophisticated algorithms need only reside in gateways.
Mogul [Page 4]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -