RFC 1122:Requirements for Internet Hosts -- Commun...
RFC-Ref

datagram


Click on the red underlined text to get to the source

... gateways are designed to be stateless, forwarding each IP datagram independently of other datagrams. As a result, redundant paths can be exploited to provide robust service ...
... gateways are designed to be stateless, forwarding each IP datagram independently of other datagrams. As a result, redundant paths can be exploited to provide robust service ...
... User Datagram Protocol (UDP) ...
... flow control. UDP is a connectionless ("datagram") transport service. ...
... destination host. IP is a connectionless or datagram internetwork service, providing no end-to-end ...
... providing no end-to-end delivery guarantees. Thus, IP datagrams may arrive at the destination host damaged, duplicated, out of order ...
... The datagram or connectionless nature of the IP protocol is a fundamental and characteristic feature of the ...
... Internet has revealed problems of management and scaling in a large datagram-based packet communication system. These problems are being addressed, and as a result there will be continuing evolution of the ...
... segment is transmitted by encapsulation inside an IP datagram. ...
... Internet, a message must be encapsulated inside a datagram. ...
... IP Datagram ...
... An IP datagram is the unit of end-to-end transmission in the IP protocol ...
... end-to-end transmission in the IP protocol. An IP datagram consists of an IP header followed by transport layer ...
... internet layer (Section 3), the unqualified term "datagram" should be understood to refer to an IP datagram. ...
... unqualified term "datagram" should be understood to refer to an IP datagram. ...
... includes an IP header and data. A packet may be a complete IP datagram or a fragment of an IP datagram. ...
... complete IP datagram or a fragment of an IP datagram. ...
... This is the effective destination address of a datagram, even if it is broadcast or multicast ...
... At a given moment, all the IP datagrams from a particular source host to a particular destination host ...
... The terms frame, packet, datagram, message, and segment are illustrated by the following schematic diagrams: ...
... |________|____hdr___|__________________| <-------- Datagram ------------------> <-------- Message -----------> or, for TCP ...
... |________|__________|__________________| <-------- Datagram ------------------> <-------- Segment -----------> ...


... IP. Although ICMP messages are encapsulated within IP datagrams, ICMP processing is considered to be (and is typically implemented as) part of the IP layer ...
... next hop" gateway or host for outgoing IP datagrams and (2) reassemble incoming IP datagrams. The IP layer ...
... host for outgoing IP datagrams and (2) reassemble incoming IP datagrams. The IP layer may also (3) implement intentional fragmentation ...
... IP layer may also (3) implement intentional fragmentation of outgoing datagrams. Finally, the IP layer must (4) provide diagnostic and error functionality. We expect that IP layer ...
... For normal datagrams, the processing is straightforward. For incoming datagrams, the IP layer ...
... For normal datagrams, the processing is straightforward. For incoming datagrams, the IP layer: ...
... verifies that the datagram is correctly formatted; ...
... reassembles the datagram if necessary; and ...
... For outgoing datagrams, the IP layer: ...
... fragments the datagram if necessary and if intentional fragmentation is implemented (see Section 3.3.3); and ...
... Any host that forwards datagrams generated by another host is acting as a gateway ...
... switch MUST default to the non-gateway mode. In this mode, a datagram arriving through one interface will not be forwarded to another host ...
... In the following, the action specified in certain cases is to "silently discard" a received datagram. This means that the datagram will be discarded without further processing and that the ...
... silently discard" a received datagram. This means that the datagram will be discarded without further processing and that the host will not send any ICMP error message ...
... host SHOULD provide the capability of logging the error (see Section 1.2.3), including the contents of the silently-discarded datagram, and SHOULD record the event in a statistics counter. ...
... Silent discard of erroneous datagrams is generally intended to prevent "broadcast storms". ...
... A datagram whose version number is not 4 MUST be silently discarded. ...
... IP header checksum on every received datagram and silently discard every datagram that has a bad ...
... datagram and silently discard every datagram that has a bad checksum. ...
... source address. A datagram with this destination address will be received by every host ...
... When a host sends any datagram, the IP source address MUST be one of its own IP addresses ...
... A host MUST silently discard an incoming datagram that is not destined for the host. An incoming datagram ...
... datagram that is not destined for the host. An incoming datagram is destined for the host if the datagram ...
... datagram is destined for the host if the datagram's destination address field is: ...
... For most purposes, a datagram addressed to a broadcast or multicast ...
... IP address assigned to the physical interface on which the datagram arrived. ...
... A host MUST silently discard an incoming datagram containing an IP source address that is invalid by the rules of this ...
... A mis-addressed datagram might be caused by a link- layer ...
... layer broadcast of a unicast datagram or by a gateway or host ...
... When sending an identical copy of an earlier datagram, a host MAY optionally retain the same Identification field in ...
... when a host sends an identical copy of an earlier datagram, the new copy should contain the same Identification value as the original. There are two suggested advantages: (1) if the datagrams ...
... datagram, the new copy should contain the same Identification value as the original. There are two suggested advantages: (1) if the datagrams are fragmented and some of the fragments are lost, the ...
... fragments are lost, the receiver may be able to reconstruct a complete datagram from fragments of the original and the copies; (2) a ...
... IP Identification field (and Fragment Offset) to discard duplicate datagrams from the queue. ...
... However, the observed patterns of datagram loss in the Internet do not favor the probability of retransmitted ...
... retransmission) tend to prevent retransmission of an identical datagram [IP:9]. Therefore, we believe that retransmitting the same Identification field is not ...
... UDP would require the cooperation of the application programs to retain the same Identification value in identical datagrams. ...
... transport layer to set the TOS field of every datagram that is sent; the default is all zero bits. The IP layer ...
... A host MUST NOT send a datagram with a Time-to-Live (TTL) ...
... A host MUST NOT discard a datagram just because it was received with TTL less than 2. ...
... transport layer to set the TTL field of every datagram that is sent. When a fixed TTL value is used, it MUST be configurable. The ...
... The intent is that TTL expiration will cause a datagram to be discarded by a gateway but not by the destination host ...
... hosts that act as gateways by forwarding datagrams must follow the gateway rules for TTL. ...
... transport protocol may also want to specify its own TTL bound on maximum datagram lifetime. ...
... There MUST be a means for the transport layer to specify IP options to be included in transmitted IP datagrams (see Section 3.4). ...
... All IP options (except NOP or END-OF-LIST) received in datagrams MUST be passed to the transport layer (or to ICMP processing when the datagram ...
... datagrams MUST be passed to the transport layer (or to ICMP processing when the datagram is an ICMP message). The IP ...
... Some environments require the Security option in every datagram; such a requirement is outside the scope of this document and the IP ...
... If host receives a datagram containing a completed source route (i.e., the pointer points beyond the last ...
... source route (i.e., the pointer points beyond the last field), the datagram has reached its final destination; the option as received (the recorded route ...
... route will be reversed and used to form a return source route for reply datagrams (see discussion of IP Options ...
... source route, i.e., forwarding a source-routed datagram. DISCUSSION ...
... DISCUSSION: If a source-routed datagram is fragmented, each fragment will contain a copy of the source route ...
... source route) must precede reassembly, the original datagram will not be reassembled until the final destination is reached. ...
... destination is reached. Suppose a source routed datagram is to be routed from host S to host ...
... There was an ambiguity in the specification over whether the source route option in a datagram sent out by S should be (A) or (B): ...
... (where >> represents the pointer). If (A) is sent, the datagram received at D will contain the option: {G1, G2, ... Gn >>}, with S and D as the IP ...
... IP source and destination addresses. If (B) were sent, the datagram received at D would again contain S and D as the same IP source and ...
... Internet header and at least the first 8 data octets of the datagram that triggered the error; more than 8 octets MAY be sent; this header ...
... 8 octets MAY be sent; this header and data MUST be unchanged from the received datagram. ...
... a datagram destined to an IP broadcast or IP multicast ...
... a datagram sent as a link-layer broadcast, or ...
... a datagram whose source address does not define a single host ...
... ICMP error messages in response to broadcast datagrams. For example, a broadcast UDP ...
... flood of ICMP Destination Unreachable datagrams from all machines that do not have a client for that destination port ...
... Every datagram that is broadcast on the connected network ...
... violate this rule. To be certain to detect broadcast datagrams, therefore, hosts are required to check for a link-layer ...
... a link-layer broadcast datagram has been received; see Section 2.4. ...
... transport protocol (e.g., UDP) is unable to demultiplex the datagram but has no protocol mechanism to inform the sender ...
... host MAY send a Source Quench message if it is approaching, or has reached, the point at which it is forced to discard incoming datagrams due to a shortage of reassembly buffers or other resources. See Section 2.2.3 of ...
... application layer SHOULD implement a mechanism to respond to Source Quench for any protocol that can send a sequence of datagrams to the same destination and which can reasonably be expected to maintain ...
... target host or by some gateway in the path of a datagram. The host receiving ...
... IP:14] to make the IP layer respond directly to Source Quench by controlling the rate at which datagrams are sent, however, this proposal is currently experimental and not currently ...
... A gateway will send a Time Exceeded Code 0 (In Transit) message when it discards a datagram due to an expired TTL field. This indicates either a gateway ...
... Timeout) message from a destination host that has timed out and discarded an incomplete datagram; see Section 3.3.2 below. In the future, receipt of this message might be part of some "MTU discovery ...
... might be part of some "MTU discovery" procedure, to discover the maximum datagram size that can be sent on the path without fragmentation. ...
... Echo Reply requires intentional fragmentation that is not implemented, the datagram MUST be truncated to maximum transmission size (see Section 3.3.3) and sent. ...
... Routing Outbound Datagrams ...
... The IP layer chooses the correct next hop for each datagram it sends. If the destination is on a connected network ...
... destination is on a connected network, the datagram is sent directly to the destination host; otherwise, it has to be routed to a gateway ...
... destination is on the corresponding connected network, and the datagram is to be transmitted directly to the destination host. ...
... broadcast or a multicast address, simply pass the datagram to the link layer for the appropriate interface ...
... subnet) directed broadcast, the datagram can use the standard routing algorithms. ...
... To efficiently route a series of datagrams to the same destination, the source host ...
... algorithm on this cache to route a datagram; this algorithm is designed to put the primary routing ...
... host chooses a "default" gateway and sends the datagram to it. It also builds a corresponding Route Cache entry. ...
... destination, the gateway will forward the datagram to the best next-hop gateway ...
... gateway in the appropriate route cache entry, so later datagrams to the same destination will go directly to the best gateway ...
... cache data on the properties of the path. Examples of such properties might be the maximum unfragmented datagram size (see Section 3.3.3), or the average round-trip delay measured by a transport protocol ...
... overhead of scanning the route cache for every datagram to be transmitted. This may be accomplished with a hash ...
... cache entry, to be passed to the IP layer with each subsequent datagram. ...
... re-routing, a gateway failure may cause datagrams to apparently vanish into a "black hole". This failure can be ...
... Note that positive advice that is given for every datagram received may cause unacceptable overhead in the implementation. ...
... Interior Gateway Protocol (IGP) datagrams that the gateways are broadcasting to ...
... gateway to route a datagram, it would check the corresponding reroute timer. If the timer ...
... ping to the gateway, followed immediately by the datagram. ...
... target gateway will probably forward the datagram to the failed gateway and send a Redirect back to the host ...
... The IP layer MUST implement reassembly of IP datagrams. ...
... We designate the largest datagram size that can be reassembled by EMTU_R ("Effective MTU to receive"); this is sometimes ...
... An implementation may use a contiguous reassembly buffer for each datagram, or it may use a more complex data structure that places no definite limit on the reassembled datagram ...
... datagram, or it may use a more complex data structure that places no definite limit on the reassembled datagram size; in the latter case, EMTU_R is said to be "indefinite". ...
... The tricky part of reassembly is the bookkeeping to determine when all bytes of the datagram have been reassembled. We recommend Clark's algorithm [IP:10 ...
... MMS_R, the maximum message size that can be received and reassembled in an IP datagram (see GET_MAXSIZES calls in Section 3.4). If EMTU_R is not indefinite, then the value of MMS ...
... It is recommended that the value lie between 60 seconds and 120 seconds. If this timeout expires, the partially-reassembled datagram MUST be discarded and an ICMP Time Exceeded message ...
... hop count rather than an elapsed time. If the reassembly timeout is too small, datagrams will be discarded unnecessarily, and communication may fail. The timeout needs to be at least as large as the typical ...
... TCP:1] will be larger than necessary. The MSL controls the maximum rate at which fragmented datagrams can be sent using distinct values of the 16-bit Ident field; a larger MSL lowers the ...
... IP layer MAY implement a mechanism to fragment outgoing datagrams intentionally. ...
... We designate by EMTU_S ("Effective MTU for sending") the maximum IP datagram size that may be sent, for a particular combination of IP source and destination addresses ...
... MTU of the network interface corresponding to the source address of the datagram. Note that <IP header size> in this equation will be 20, unless ...
... MMS_S from the IP layer and does not send a datagram exceeding MMS_S in size. ...
... Picking the correct datagram size to use when sending data is a complex topic [IP:9]. ...
... (a) In general, no host is required to accept an IP datagram larger than 576 bytes (including header and data), so a host ...
... header and data), so a host must not send a larger datagram without explicit knowledge or prior arrangement with the destination host ...
... destination host. Thus, MMS_S is only an upper bound on the datagram size that a transport protocol may send; even when MMS ...
... explicitly inform the sender about the largest datagram the other end can receive and reassemble [IP:7]. There is no corresponding mechanism in the ...
... A transport protocol that assumes an EMTU_R larger than 576 (see Section 3.3.2), can send a datagram of this larger size to another host that implements the ...
... support an MTU of 576 or greater, we strongly recommend the use of 576 for datagrams sent to non-local networks. ...
... host could determine the MTU over a given path by sending a zero-offset datagram fragment and waiting for the receiver ...
... containing an embedded gateway, i.e., without forwarding datagrams from one connected network to another. ...
... The following general rules apply to the selection of an IP source address for sending a datagram from a multihomed host. ...
... (1) If the datagram is sent in response to a received datagram, the source address ...
... (1) If the datagram is sent in response to a received datagram, the source address for the response SHOULD be the specific-destination address ...
... (A) A host MAY silently discard an incoming datagram whose destination address does not correspond to the physical interface ...
... (B) A host MAY restrict itself to sending (non-source- routed) IP datagrams only through the physical interface that corresponds to the IP source address of ...
... physical interface that corresponds to the IP source address of the datagrams. ...
... routing mechanisms could not route a datagram to a physical interface that did not correspond to the ...
... ES model, the route computation for an outgoing datagram is the mapping: ...
... The Weak ES Model may cause the Redirect mechanism to fail. If a datagram is sent out a physical interface that does not correspond to the destination address ...
... ES model, the route computation for an outgoing datagram is the mapping: ...
... TCP "SYN" segment) or a datagram service request (e.g., a UDP ...
... It will be noted that this process is essentially the same as datagram routing (see Section 3.3.1), and therefore hosts ...
... as an intermediate hop in a source route, forwarding a source- routed datagram to the next specified hop. ...
... MUST obey all the relevant rules for a gateway forwarding source-routed datagrams [INTRO:2]. This includes the following specific provisions, which override the corresponding host ...
... The TTL field MUST be decremented and the datagram perhaps discarded as specified for a gateway in [INTRO:2 ...
... Fragmentation Required but DF Set) when a source- routed datagram cannot be fragmented to fit into the target network ...
... 5 (Source Route Failed) when a source-routed datagram cannot be forwarded, e.g., because of a routing problem or because the next hop ...
... IP Source Address (ref. Section 3.2.1.3) A source-routed datagram being forwarded MAY (and normally will) have a source address that is not one of the IP addresses ...
... A host that is forwarding a source-routed datagram containing a Record Route ...
... A host that is forwarding a source-routed datagram containing a Timestamp Option ...
... To define the rules restricting host forwarding of source- routed datagrams, we use the term "local source-routing" if the next hop ...
... next hop will be through the same physical interface through which the datagram arrived; otherwise, it is "non-local source-routing ...
... If a host receives a datagram with an incomplete source route but does not forward it for some reason, the host ...
... ICMP Destination Unreachable (code 5, Source Route Failed) message, unless the datagram was itself an ICMP error message. ...
... A host MUST recognize any of these forms in the destination address of an incoming datagram. ...
... addresses as the destination address of an incoming datagram. A host MAY optionally have a configuration option to choose the ...
... When a host sends a datagram to a link-layer broadcast address ...
... A host SHOULD silently discard a datagram that is received via a link-layer broadcast ...
... There has been discussion on whether a datagram addressed to the Limited Broadcast address ...
... for local IP multicasting includes sending multicast datagrams, joining multicast groups and receiving ...
... multicast groups and receiving multicast datagrams, and leaving multicast groups. This implies support for all of ...
... gateways or that do not need to receive multicast datagrams originating on other networks, IGMP ...
... links): no mapping required. All IP multicast datagrams are sent as-is, inside the local framing. ...
... Wherever practical, hosts MUST return ICMP error datagrams on detection of an error, except in those cases where returning an ICMP error message ...
... A common phenomenon in datagram networks is the "black hole disease": datagrams ...
... datagram networks is the "black hole disease": datagrams are sent out, but nothing comes back. Without any error datagrams ...
... datagrams are sent out, but nothing comes back. Without any error datagrams, it is difficult for the user to figure out what the problem is. ...
... * Send Datagram SEND ...
... Id parameter is optional; see Section 3.2.1.5. * Receive Datagram RECV(BufPTR, prot ...
... SpecDest = specific-destination address of datagram (defined in Section 3.2.1.3) ...
... (defined in Section 3.2.1.3) The result parameter dst contains the datagram's destination address. Since this may be a broadcast or multicast address ...
... The parameter opt contains all the IP options received in the datagram; these MUST also be passed to the transport layer. ...
... See Section 3.3.4.3. * Find Maximum Datagram Sizes GET_MAXSIZES(local, remote, TOS ...
... multihoming |3.1 | | |x| | | Meet gateway specs if forward datagrams |3.1 |x| | | | | Configuration switch for embedded gateway ...
... Auto-config based on number of interfaces |3.1 | | | | |x|1 Able to log discarded datagrams |3.1 | |x| | | | Record in counter |3.1 | |x| | | | ...
... IP address |3.2.1.3 |x| | | | | Silently discard datagram with bad dest addr |3.2.1.3 |x| | | | | Silently discard datagram ...
... datagram with bad dest addr |3.2.1.3 |x| | | | | Silently discard datagram with bad src addr |3.2.1.3 |x| | | | | Support reassembly |3.2.1.4 |x| | | | | Retain same Id field in identical datagram ...
... datagram with bad src addr |3.2.1.3 |x| | | | | Support reassembly |3.2.1.4 |x| | | | | Retain same Id field in identical datagram |3.2.1.5 | | |x| | | | | | | | | | TOS: | | | | | | | ...
... Originate & terminate Source Route options |3.2.1.8c|x| | | | | Datagram with completed SR passed up to TL |3.2.1.8c|x| | | | | Build correct (non-redundant) return route |3.2.1.8c|x| | | | | ...
... ICMP msg with unknown type |3.2.2 |x| | | | | Include more than 8 octets of orig datagram |3.2.2 | | |x| | | Included octets same as received |3.2.2 |x| | | | | Demux ICMP ...
... - Non-initial fragment |3.2.2 | | | | |x| - Datagram with non-unique src address |3.2.2 | | | | |x| Return ICMP ...
... Addr Mask Reply when init. |3.2.2.9 |x| | | | |3 | | | | | | | ROUTING OUTBOUND DATAGRAMS: | | | | | | | Use address mask in local/remote ...
... REASSEMBLY and FRAGMENTATION: | | | | | | | Able to reassemble incoming datagrams |3.3.2 |x| | | | | At least 576 byte datagrams |3.3.2 |x| | | | | ...
... Able to reassemble incoming datagrams |3.3.2 |x| | | | | At least 576 byte datagrams |3.3.2 |x| | | | | EMTU_R configurable or indefinite |3.3.2 | |x| | | | Transport layer ...
... SOURCE-ROUTE FORWARDING: | | | | | | | Forward datagram with Source Route option |3.3.5 | | |x| | |1 Obey corresponding gateway ...
... (2) This requirement is overruled if datagram is an ICMP error message. ...


... USER DATAGRAM PROTOCOL -- UDP ...
... The User Datagram Protocol UDP [UDP:1] offers only a minimal ...
... UDP:1] offers only a minimal transport service -- non-guaranteed datagram delivery -- and gives applications direct access to the datagram ...
... datagram delivery -- and gives applications direct access to the datagram service of the IP layer ...
... If a datagram arrives addressed to a UDP port for which there is no pending LISTEN call, UDP ...
... IP options to be sent in its UDP datagrams, and UDP MUST pass these options to the IP layer ...
... UDP will need to obtain a source route from a request datagram and supply a reversed route for sending the corresponding reply. ...
... ICMP error messages resulting from sending a UDP datagram are received asynchronously. A UDP-based ...
... If a UDP datagram is received with a checksum that is non- zero and invalid, UDP ...
... zero and invalid, UDP MUST silently discard the datagram. An application MAY optionally be able to control whether UDP ...
... An application MAY optionally be able to control whether UDP datagrams without checksums should be discarded or passed to the application. ...
... When a UDP datagram is received, its specific-destination address MUST be passed up to the application layer. ...
... An application program MUST be able to specify the IP source address to be used for sending a UDP datagram or to leave it unspecified (in which case the networking software will choose an appropriate source address ...
... application layer (e.g, so that the application can later receive a reply datagram only from the corresponding interface). ...
... A UDP datagram received with an invalid IP source address (e.g., a broadcast ...
... When a host sends a UDP datagram, the source address MUST be (one of) the IP address ...
... GET_MAXSIZES() can be used to learn the effective maximum UDP maximum datagram size for a particular {interface,remote host,TOS ...
... TOS values as well as IP options for sending a UDP datagram, and these values must be passed transparently to the IP layer. ...
... throughput by amortizing header size and per-datagram processing overhead over more data bytes; however, if the packet ...
... heuristic to select the latest window update despite possible datagram reordering; as a result, it may ignore a window update ...
... TCP connection, and this MUST take precedence over a source route received in a datagram. ...
... Source Route: | | | | | | | ALP can specify |4.2.3.8 |x| | | | |1 Overrides src rt in datagram |4.2.3.8 |x| | | | | Build return route from src rt |4.2.3.8 |x| | | | | ...


... "A Standard for the Transmission of IP Datagrams over Ethernet Networks," C. Hornig, RFC-894std41, April 1984. ...
... "A Standard for the Transmission of IP Datagrams over IEEE 802 "Networks," J. Postel and J. Reynolds, RFC-1042std43 ...
... 879, November 1983. Discusses and clarifies the relationship between the TCP Maximum Segment Size option and the IP datagram size. ...
... "IP Datagram Reassembly Algorithms," D. Clark, RFC-815, July 1982. This and the following paper should be read by every implementor ...
... "Broadcasting Internet Datagrams in the Presence of Subnets," J. Mogul, RFC-922std5, October 1984. ...
... "User Datagram Protocol," J. Postel, RFC-768std6, August 1980. ...


... security mechanism that is based upon verifying the IP source address of a datagram should be treated with suspicion. However, in restricted environments some source-address ...
... gateway to the rest of the Internet discarded any incoming datagram with a source address that spoofed the LAN ...
... is complicated by source routing, and some have suggested that source-routed datagram forwarding by hosts (see Section 3.3.5) should be outlawed for security ...
... (Section 3.2.2.5), IP options in UDP datagrams (Section 4.1.3.2), and reserved TCP ports ...



Google
Web
RFC-Ref