1 - 2 - 3 - 4 - 6 - 8 - A - B - C - D - E - F - G - H - I - L - M - N - O - P - Q - R - S - T - U - V - W
datagram
Click on the red underlined text to get to the source
... internet protocol provides for
transmitting blocks of data called datagrams from sources to
destinations, where sources and destinations ...
... internet protocol also provides for
fragmentation and reassembly of long datagrams, if necessary, for
transmission through "small packet" networks.
...
... bits (an internet
datagram) from a source to a destination over an interconnected system
of networks ...
... user data) as the data
portion of an internet datagram. The TCP module would provide the
addresses ...
... create an internet datagram and call on the local network interface to
transmit the internet ...
... header
to transmit internet datagrams toward their destinations. The
selection of a path for transmission is called routing ...
... fragment and
reassemble internet datagrams when necessary for transmission through
"small packet" networks.
...
... address fields and for fragmenting and assembling
internet datagrams. In addition, these modules (especially in
gateways) have procedures for making routing ...
... The internet protocol treats each internet datagram as an independent
entity unrelated to any other internet ...
... entity unrelated to any other internet datagram. There are no
connections or logical circuits ...
... internet datagram. It is set by the sender of the datagram and
reduced at the points along the route where it is processed. If the
...
... time to live reaches zero before the internet datagram reaches its
destination, the internet ...
... destination, the internet datagram is destroyed. The time to live can
be thought of as a self destruct time limit.
...
... verification that the information used
in processing internet datagram has been transmitted correctly. The
data may contain errors. If the header checksum fails, the internet ...
... header checksum fails, the internet
datagram is discarded at once by the entity which detects the error.
...
...
The model of operation for transmitting a datagram from one
application program to another is illustrated by the following
scenario:
...
... The sending application program prepares its data and calls on its
local internet module to send that data as a datagram and passes the
destination address and other parameters as arguments of the call.
...
... network header, and
attaches the datagram to it, then sends the result via the local
network.
...
... network interface strips off this header, and
turns the datagram over to the internet module. The internet module
...
... internet module
determines from the internet address that the datagram is to be
forwarded to another host in a second network ...
...
At this destination host the datagram is stripped of the local net
header by the local network interface ...
...
The internet module determines that the datagram is for an
application program in this host. It passes the data to the
...
...
The function or purpose of Internet Protocol is to move datagrams
through an interconnected set of networks. This is done by passing
...
... through an interconnected set of networks. This is done by passing
the datagrams from one internet module to another until the
destination ...
... gateways in the internet system. The datagrams are routed from one
internet module to another through individual networks ...
... routing of messages from one internet module to another,
datagrams may need to traverse a network whose maximum packet size is
...
... network whose maximum packet size is
smaller than the size of the datagram. To overcome this difficulty, a
fragmentation mechanism is provided in the internet protocol ...
... Fragmentation of an internet datagram is necessary when it
originates in a local net that allows a large packet size and must
...
... don't fragment." Any internet
datagram so marked is not to be internet fragmented under any
circumstances. If internet ...
... internet fragmented under any
circumstances. If internet datagram marked don't fragment cannot be
delivered to its destination ...
... internet fragmentation and reassembly procedure needs to be able
to break a datagram into an almost arbitrary number of pieces that
can be later reassembled. The receiver of the fragments ...
... fragments uses the
identification field to ensure that fragments of different datagrams
are not mixed. The fragment offset field ...
... receiver the
position of a fragment in the original datagram. The fragment
offset and length determine the portion of the original datagram ...
... original datagram. The fragment
offset and length determine the portion of the original datagram
covered by this fragment. The more-fragments ...
... being reset) the last fragment. These fields provide sufficient
information to reassemble datagrams.
...
... The identification field is used to distinguish the fragments of one
datagram from those of another. The originating protocol module of
an internet datagram ...
... datagram from those of another. The originating protocol module of
an internet datagram sets the identification field to a value that
must be unique for that source-destination pair and protocol for the
...
... must be unique for that source-destination pair and protocol for the
time the datagram will be active in the internet system. The
...
... active in the internet system. The
originating protocol module of a complete datagram sets the
more-fragments flag to zero and the fragment ...
... To fragment a long internet datagram, an internet protocol module
(for example, in a gateway ...
... gateway), creates two new internet datagrams and
copies the contents of the internet header fields ...
... internet header fields from the long
datagram into both new internet headers. The data of the long
...
... internet headers. The data of the long
datagram is divided into two portions on a 8 octet (64 bit) boundary
...
... Fragment Blocks). The first
portion of the data is placed in the first new internet datagram,
and the total length field is set to the length of the first
datagram ...
... datagram,
and the total length field is set to the length of the first
datagram. The more-fragments flag is set to one. The second
portion of the data is placed in the second new internet ...
... fragments flag is set to one. The second
portion of the data is placed in the second new internet datagram,
and the total length field is set to the length of the second
datagram ...
... datagram,
and the total length field is set to the length of the second
datagram. The more-fragments flag carries the same value as the
long datagram ...
... datagram. The more-fragments flag carries the same value as the
long datagram. The fragment offset field of the second new internet ...
... offset field of the second new internet
datagram is set to the value of that field in the long datagram plus
NFB.
...
... To assemble the fragments of an internet datagram, an internet
protocol module (for example at a destination host) combines
...
... destination host) combines
internet datagrams that all have the same value for the four fields:
identification, source, destination, and protocol. The combination
...
... service parameters
when transmitting a datagram through a particular network. Several
networks ...
...
The type of service is used to specify the treatment of the datagram
during its transmission through the internet system. Example
...
... 16 bits
Total Length is the length of the datagram, measured in octets,
including internet header ...
... internet header and data. This field allows the length of
a datagram to be up to 65,535 octets. Such long datagrams are
impractical for most hosts ...
... header and data. This field allows the length of
a datagram to be up to 65,535 octets. Such long datagrams are
impractical for most hosts and networks ...
... networks. All hosts must be prepared
to accept datagrams of up to 576 octets (whether they arrive whole
or in fragments). It is recommended that hosts ...
... or in fragments). It is recommended that hosts only send datagrams
larger than 576 octets if they have assurance that the destination
...
... larger than 576 octets if they have assurance that the destination
is prepared to accept the larger datagrams.
The number 576 is selected to allow a reasonable sized data block to
...
... example, this size allows a data block of 512 octets plus 64 header
octets to fit in a datagram. The maximal internet header is 60
...
... 8 bits
This field indicates the maximum time the datagram is allowed to
remain in the internet system. If this field contains the value
...
... remain in the internet system. If this field contains the value
zero, then the datagram must be destroyed. This field is modified
in internet header ...
... internet header processing. The time is measured in units of
seconds, but since every module that processes a datagram must
decrease the TTL by at least one even if it process the datagram ...
... datagram must
decrease the TTL by at least one even if it process the datagram in
less than a second, the TTL must be thought of only as an upper
...
... less than a second, the TTL must be thought of only as an upper
bound on the time a datagram may exist. The intention is to cause
undeliverable datagrams to be discarded, and to bound the maximum
...
... bound on the time a datagram may exist. The intention is to cause
undeliverable datagrams to be discarded, and to bound the maximum
datagram lifetime ...
... This field indicates the next level protocol used in the data
portion of the internet datagram. The values for various protocols
are specified in "Assigned Numbers" [9].
...
... Options: variable
The options may appear or not in datagrams. They must be
implemented by all IP modules (host ...
... host and gateways). What is optional
is their transmission in any particular datagram, not their
implementation.
...
... In some environments the security option may be required in all
datagrams.
The option field is variable in length. There may be zero or more
...
... route the
internet datagram based on information
supplied by the source.
0 9 var. Strict Source Routing ...
... route the
internet datagram based on information
supplied by the source.
0 7 var. Record Route ...
... Must be copied on fragmentation. This option appears at most
once in a datagram.
Loose Source and Record Route ...
... LSRR) option provides a means
for the source of an internet datagram to supply routing
information to be used by the gateways in forwarding the
...
... routing
information to be used by the gateways in forwarding the
datagram to the destination, and to record the route
...
... address is the internet module's own internet
address as known in the environment into which this datagram is
being forwarded.
...
... source route) means the option (and the IP header
as a whole) remains a constant length as the datagram progresses
through the internet.
...
... Must be copied on fragmentation. Appears at most once in a
datagram.
Strict Source and Record Route ...
... SSRR) option provides a
means for the source of an internet datagram to supply routing
information to be used by the gateways in forwarding the
...
... routing
information to be used by the gateways in forwarding the
datagram to the destination, and to record the route
...
... address is the internet module's own internet
address as known in the environment into which this datagram is
being forwarded.
...
... source route) means the option (and the IP header
as a whole) remains a constant length as the datagram progresses
through the internet.
...
...
When an internet module routes a datagram it checks to see if
the record route option is present. If it is, it inserts its
...
... own internet address as known in the environment into which this
datagram is being forwarded into the recorded route begining at
the octet indicated by the pointer, and increments the pointer
...
... If the route data area is already full (the pointer exceeds the
length) the datagram is forwarded without inserting the address
into the recorded route ...
... route. If there is some room but not enough
room for a full address to be inserted, the original datagram is
considered to be in error and is discarded. In either case an
ICMP ...
... If the timestamp data area is already full (the pointer exceeds
the length) the datagram is forwarded without inserting the
timestamp, but the overflow count is incremented by one.
...
... timestamp
to be inserted, or the overflow count itself overflows, the
original datagram is considered to be in error and is discarded.
In either case an ICMP parameter problem message ...
... receiving behavior. That
is, it must be careful to send well-formed datagrams, but must accept
any datagram that it can interpret (e.g., not object to technical
...
... well-formed datagrams, but must accept
any datagram that it can interpret (e.g., not object to technical
errors where the meaning is still clear).
...
...
The basic internet service is datagram oriented and provides for the
fragmentation of datagrams ...
... datagram oriented and provides for the
fragmentation of datagrams at gateways, with reassembly taking place
at the destination ...
... destination host.
Of course, fragmentation and reassembly of datagrams within a network
or by private agreement ...
... host to
have several physical interfaces and to treat the datagrams from
several of them as if they were all addressed to a single host.
...
... destination address, and the protocol fields, to identify
datagram fragments for reassembly.
...
... fragment
location, relative to the beginning of the original unfragmented
datagram. Fragments are counted in units of 8 octets. The
...
... 8 octets. The
fragmentation strategy is designed so than an unfragmented datagram
has all zero fragmentation information (MF ...
... fragment offset =
0). If an internet datagram is fragmented, its data portion must be
broken on 8 octet ...
... 8 octets each for a
total of 65,536 octets. Note that this is consistent with the the
datagram total length field (of course, the header is counted in the
total length and not in the fragments ...
...
Every internet module must be able to forward a datagram of 68
octets without further fragmentation. This is because an internet ...
... Every internet destination must be able to receive a datagram of 576
octets either in one piece or in fragments to be reassembled.
...
... internet
fragmentation of this datagram is NOT permitted, although it may be
discarded. This can be used to prohibit fragmentation in cases
...
... host. A small host could have a boot strap program
that accepts a datagram stores it in memory and then executes it.
...
...
The maximum sized datagram that can be transmitted through the
next network is called the maximum transmission unit ...
...
If the total length is less than or equal the maximum transmission
unit then submit this datagram to the next step in datagram
processing; otherwise cut the datagram ...
... If the total length is less than or equal the maximum transmission
unit then submit this datagram to the next step in datagram
processing; otherwise cut the datagram into two fragments ...
... datagram to the next step in datagram
processing; otherwise cut the datagram into two fragments, the
first fragment ...
... fragment being the maximum size, and the second fragment
being the rest of the datagram. The first fragment is submitted
to the next step in datagram ...
... datagram. The first fragment is submitted
to the next step in datagram processing, while the second fragment
is submitted to this procedure in case it is still too large.
...
... MTU THEN Submit this datagram to the next step
in datagram processing ELSE IF DF = 1 THEN discard the
datagram ...
... datagram processing ELSE IF DF = 1 THEN discard the
datagram ELSE
To produce the first fragment:
...
... (6) Submit this fragment to the next step in
datagram processing;
To produce the second fragment:
...
... fragment (except the last) was made
the maximum allowable size. An alternative might produce less
than the maximum size datagrams. For example, one could implement
a fragmentation procedure that repeatly divided large datagrams ...
... datagrams. For example, one could implement
a fragmentation procedure that repeatly divided large datagrams in
half until the resulting fragments were less than the maximum
transmission unit ...
... concatenation of the source, destination, protocol, and
identification fields. If this is a whole datagram (that is both
the fragment offset and the more fragments ...
... buffer identifier
are released and the datagram is forwarded to the next step in
datagram processing.
...
... data length is computed. If this fragment completes the
datagram (tested by checking the bits set in the fragment block
...
... bits set in the fragment block
table), then the datagram is sent to the next step in datagram
processing; otherwise the timer ...
... fragment block
table), then the datagram is sent to the next step in datagram
processing; otherwise the timer is set to the maximum of the
...
... buffer with BUFID is allocated
(4) THEN flush all reassembly for this BUFID;
(5) Submit datagram to next step; DONE.
(6) ELSE IF no buffer with BUFID is allocated
...
... to (TDL+7)/8 are set
(14) THEN TL <- TDL+(IHL*4)
(15) Submit datagram to next step;
(16) free all reassembly resources
for this BUFID; DONE.
...
...
The choice of the Identifier for a datagram is based on the need to
provide a way to uniquely identify the fragments of a particular
...
... provide a way to uniquely identify the fragments of a particular
datagram. The protocol module assembling fragments judges fragments
...
... fragments judges fragments
to belong to the same datagram if they have the same source,
destination, protocol, and Identifier ...
... Identifier to be unique for this source, destination pair and
protocol for the time the datagram (or any fragment of it) could be
alive in the internet ...
... identifier
as the original transmission since fragments of either datagram
could be used to construct a correct TCP segment ...
... Precedence. An independent measure of the importance of this
datagram.
...
...
Throughput. High data rate is important for datagrams with this
indication.
...
... Reliability. A higher level of effort to ensure delivery is
important for datagrams with this indication.
...
... to be less reliably delivered and suffer less delay. Suppose an
internet datagram is to be sent through the ARPANET. Let the
internet ...
... time to live is set by the sender to the maximum time the
datagram is allowed to be in the internet system. If the datagram
...
... datagram is allowed to be in the internet system. If the datagram
is in the internet system longer than the time to live ...
... internet header
is processed to reflect the time spent processing the datagram.
Even if no local information is available on the time actually
spent, the field must be decremented by 1. The time is measured in
...
... maximum time to live is 255 seconds or 4.25 minutes. Since every
module that processes a datagram must decrease the TTL by at least
one even if it process the datagram ...
... datagram must decrease the TTL by at least
one even if it process the datagram in less than a second, the TTL
must be thought of only as an upper bound on the time a datagram ...
... datagram in less than a second, the TTL
must be thought of only as an upper bound on the time a datagram may
exist. The intention is to cause undeliverable datagrams to be
...
... must be thought of only as an upper bound on the time a datagram may
exist. The intention is to cause undeliverable datagrams to be
discarded, and to bound the maximum datagram lifetime ...
... exist. The intention is to cause undeliverable datagrams to be
discarded, and to bound the maximum datagram lifetime.
...
... Some higher level reliable connection protocols are based on
assumptions that old duplicate datagrams will not arrive after a
certain time elapses. The TTL is a way for such protocols to have
...
...
The options are optional in each datagram, but required in
implementations. That is, the presence or absence of an option is
the choice of the sender ...
... is using the internet module. Since internet protocol is a datagram
protocol, there is minimal memory or state maintained between datagram ...
... datagram
protocol, there is minimal memory or state maintained between datagram
transmissions, and each call on the internet protocol module by the
user ...
... opt = option data
result = response
OK = datagram sent ok
Error = error in arguments or local network error
...
... prot = protocol
result = response
OK = datagram received ok
Error = error in arguments
len = length of buffer ...
...
When the user sends a datagram, it executes the SEND call supplying
all the arguments. The internet protocol ...
... receiving this
call, checks the arguments and prepares and sends the message. If the
arguments are good and the datagram is accepted by the local network,
the call returns successfully. If either the arguments are bad, or
...
... network,
the call returns successfully. If either the arguments are bad, or
the datagram is not accepted by the local network, the call returns
unsuccessfully. On unsuccessful returns, a reasonable report must be
...
... network, either there is a pending RECV call from the user addressed
or there is not. In the first case, the pending call is satisfied by
passing the information from the datagram to the user. In the second
case, the user addressed is notified of a pending datagram. If the
...
... passing the information from the datagram to the user. In the second
case, the user addressed is notified of a pending datagram. If the
user addressed does not exist, an ICMP error message is returned to
...
...
A user's RECV call may then either be immediately satisfied by a
pending datagram, or the call may be pending until a datagram arrives.
...
... A user's RECV call may then either be immediately satisfied by a
pending datagram, or the call may be pending until a datagram arrives.
...
... module to indicate interest in or reserve exclusive use of a class of
datagrams (e.g., all those with a certain value in the protocol
field).
...
... header consists of five 32 bit words, and the total length of
the datagram is 21 octets. This datagram is a complete datagram (not
...
... bit words, and the total length of
the datagram is 21 octets. This datagram is a complete datagram (not
a fragment ...
...
In this example, we show first a moderate size internet datagram (452
data octets), then two internet fragments ...
... fragments that might result from the
fragmentation of this datagram if the maximum sized transmission
allowed were 280 octets.
...
...
Here, we show an example of a datagram containing options:
...
... Control information at the beginning of a message, segment,
datagram, packet or block of data. ...
... A flag indicating whether or not this internet datagram
contains the end of an internet datagram ...
... internet header field Total Length is the length of the
datagram in octets including internet header and data. ...
... User Datagram Protocol: A user level protocol for transaction
oriented applications. ...
