RFC 791:INTERNET PROTOCOL
RFC-Ref

Internet


Click on the red underlined text to get to the source

... The Internet Protocol is designed for use in interconnected systems of packet-switched computer communication networks. Such a system has ...
... networks. Such a system has been called a "catenet" [1]. The internet protocol provides for transmitting blocks of data called datagrams ...
... hosts identified by fixed length addresses. The internet protocol also provides for fragmentation and reassembly of long datagrams ...
... The internet protocol is specifically limited in scope to provide the functions necessary to deliver a package of bits (an internet ...
... internet protocol is specifically limited in scope to provide the functions necessary to deliver a package of bits (an internet datagram) from a source to a destination ...
... services commonly found in host-to-host protocols. The internet protocol can capitalize on the services of its supporting networks ...
... This protocol is called on by host-to-host protocols in an internet environment. This protocol calls on local network protocols to carry the internet ...
... internet environment. This protocol calls on local network protocols to carry the internet datagram to the next gateway or destination host ...
... For example, a TCP module would call on the internet module to take a TCP segment ...
... TCP header and user data) as the data portion of an internet datagram. The TCP module would provide the ...
... TCP module would provide the addresses and other parameters in the internet header to the internet ...
... addresses and other parameters in the internet header to the internet module as arguments of the call. The internet module would then ...
... header to the internet module as arguments of the call. The internet module would then create an internet ...
... internet module would then create an internet datagram and call on the local network interface to ...
... datagram and call on the local network interface to transmit the internet datagram. ...
... In the ARPANET case, for example, the internet module would call on a local net module which would add the 1822 leader [2] to the internet ...
... internet module would call on a local net module which would add the 1822 leader [2] to the internet datagram creating an ARPANET ...
... ARPANET address would be derived from the internet address by the local network interface and would be the address ...
... The internet protocol implements two basic functions: addressing and fragmentation ...
... The internet modules use the addresses carried in the internet header ...
... The internet modules use the addresses carried in the internet header to transmit internet ...
... internet header to transmit internet datagrams toward their destinations. The ...
... The internet modules use fields in the internet header to fragment ...
... The internet modules use fields in the internet header to fragment and ...
... header to fragment and reassemble internet datagrams when necessary for transmission through "small packet" networks ...
... The model of operation is that an internet module resides in each host engaged in internet ...
... internet module resides in each host engaged in internet communication and in each gateway that interconnects networks ...
... interpreting address fields and for fragmenting and assembling internet datagrams. In addition, these modules (especially in gateways ...
... The internet protocol treats each internet datagram as an independent ...
... The internet protocol treats each internet datagram as an independent entity ...
... datagram as an independent entity unrelated to any other internet datagram. There are no connections ...
... The internet protocol uses four key mechanisms in providing its service: Type of Service ...
... service choices provided in the networks that make up the internet. This type of service indication is to be used by gateways ...
... the next gateway when routing an internet datagram. ...
... Time to Live is an indication of an upper bound on the lifetime of an internet datagram. It is set by the sender of the datagram ...
... route where it is processed. If the time to live reaches zero before the internet datagram reaches its destination ...
... datagram reaches its destination, the internet datagram is destroyed. The time to live can ...
... Header Checksum provides a verification that the information used in processing internet datagram has been transmitted correctly. The data may contain errors. If the header checksum ...
... datagram has been transmitted correctly. The data may contain errors. If the header checksum fails, the internet datagram is discarded at once by the entity ...
... The internet protocol does not provide a reliable communication facility. There are no acknowledgments either end-to-end or ...
... Errors detected may be reported via the Internet Control Message Protocol (ICMP) [3] which is implemented in the internet protocol ...
... Internet Control Message Protocol (ICMP) [3] which is implemented in the internet protocol module. ...


... The following diagram illustrates the place of the internet protocol in the protocol hierarchy: ...
... | | | +--------------------------+----+ | Internet Protocol & ICMP | +--------------------------+----+ ...
... Internet protocol interfaces on one side to the higher level host-to-host ...
... 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 ...
... The internet module prepares a datagram header and attaches the data ...
... datagram header and attaches the data to it. The internet module determines a local network address for ...
... network address for this internet address, in this case it is the address of a gateway. ...
... header, and turns the datagram over to the internet module. The internet module determines from the internet address ...
... turns the datagram over to the internet module. The internet module determines from the internet address that the datagram ...
... internet module. The internet module determines from the internet address that the datagram is to be forwarded to another host ...
... forwarded to another host in a second network. The internet module determines a local net address for the destination host ...
... header by the local network interface and handed to the internet module. ...
... The internet module determines that the datagram is for an application program in this host ...
... Program Program \ / Internet Module Internet Module Internet Module ...
... \ / Internet Module Internet Module Internet Module \ / \ / ...
... Internet Module Internet Module Internet Module \ / \ / LNI-1 LNI-1 LNI-2 LNI-2 ...
... The function or purpose of Internet Protocol is to move datagrams through an interconnected set of networks ...
... networks. This is done by passing the datagrams from one internet module to another until the destination is reached. The internet ...
... internet module to another until the destination is reached. The internet modules reside in hosts and gateways ...
... hosts and gateways in the internet system. The datagrams are routed from one internet ...
... internet system. The datagrams are routed from one internet module to another through individual networks based on the interpretation of an internet address ...
... internet module to another through individual networks based on the interpretation of an internet address. Thus, one important mechanism of the internet protocol is the internet address ...
... interpretation of an internet address. Thus, one important mechanism of the internet protocol is the internet address. ...
... internet address. Thus, one important mechanism of the internet protocol is the internet address. ...
... In the routing of messages from one internet module to another, datagrams may need to traverse a network ...
... datagram. To overcome this difficulty, a fragmentation mechanism is provided in the internet protocol. ...
... address indicates where it is. A route indicates how to get there. The internet protocol deals primarily with addresses. It is the task of higher level (i.e., ...
... host-to-host or application) protocols to make the mapping from names to addresses. The internet module maps internet addresses to local net addresses ...
... names to addresses. The internet module maps internet addresses to local net addresses. It is the task of lower level (i.e., local net ...
... local address (called the "rest" field). There are three formats or classes of internet addresses: in class a, the high order bit is zero, the next 7 bits ...
... Care must be taken in mapping internet addresses to local net addresses; a single physical ...
... several distinct hosts to the extent of using several distinct internet addresses. Some hosts will also have several physical interfaces (multi-homing ...
... host to have several physical interfaces to the network with each having several logical internet addresses. ...
... Fragmentation of an internet datagram is necessary when it originates in a local net that allows a large packet ...
... An internet datagram can be marked "don't fragment." Any internet ...
... internet datagram can be marked "don't fragment." Any internet datagram so marked is not to be internet ...
... internet datagram so marked is not to be internet fragmented under any circumstances. If internet datagram ...
... datagram so marked is not to be internet fragmented under any circumstances. If internet datagram marked don't fragment cannot be ...
... Fragmentation, transmission and reassembly across a local network which is invisible to the internet protocol module is called intranet fragmentation ...
... The internet fragmentation and reassembly procedure needs to be able to break a 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 ...
... time the datagram will be active in the internet system. The originating protocol module of a complete datagram sets the ...
... To fragment a long internet datagram, an internet protocol module ...
... fragment a long internet datagram, an internet protocol module (for example, in a gateway), creates ...
... (for example, in a gateway), creates two new internet datagrams and copies the contents of the internet ...
... internet datagrams and copies the contents of the internet header fields from the long datagram ...
... header fields from the long datagram into both new internet headers. The data of the long datagram ...
... first portion NFB (for Number of 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. The more-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. The fragment offset field of the second new internet datagram is set to the value of that field in the long datagram ...
... To assemble the fragments of an internet datagram, an internet protocol module (for example at a destination host ...
... fragments of an internet datagram, an internet protocol module (for example at a destination host) combines internet ...
... internet protocol module (for example at a destination host) combines internet datagrams that all have the same value for the four fields: identification, source, destination ...
... fragment offset in that fragment's internet header. The first fragment will have the fragment ...
... Gateways implement internet protocol to forward datagrams between networks ...
... (GGP) [7] to coordinate routing and other internet control information. ...
... +-------------------------------+ | Internet Protocol & ICMP & GGP| +-------------------------------+ ...


... Internet Header Format ...
... A summary of the contents of the internet header follows: ...
... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example Internet Datagram Header ...
... The Version field indicates the format of the internet header. This document describes version 4 ...
... bits Internet Header Length is the length of the internet header ...
... Internet Header Length is the length of the internet header in 32 bit ...
... type of service is used to specify the treatment of the datagram during its transmission through the internet system. Example mappings of the internet type of service ...
... during its transmission through the internet system. Example mappings of the internet type of service to the actual service ...
... Total Length is the length of the datagram, measured in octets, including internet header and data. This field allows the length of a datagram ...
... header octets to fit in a datagram. The maximal internet header is 60 octets, and a typical internet ...
... internet header is 60 octets, and a typical internet header is 20 octets, allowing a ...
... This field indicates the maximum time the datagram is allowed to remain in the internet system. If this field contains the value zero, then the datagram must be destroyed. This field is modified ...
... zero, then the datagram must be destroyed. This field is modified in internet header processing. The time is measured in units of seconds, but since every module that processes a datagram ...
... 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 ...
... (e.g., time to live), this is recomputed and verified at each point that the internet header is processed. ...
... 3 = reserved for future use The following internet options are defined: CLASS NUMBER ...
... Routing. Used to route the internet datagram based on information supplied by the source. ...
... Routing. Used to route the internet datagram based on information supplied by the source. ...
... trace the route an internet datagram takes. 0 8 4 Stream ...
... identifier. 2 4 var. Internet Timestamp. ...
... This option indicates the end of the option list. This might not coincide with the end of the internet header according to the internet ...
... internet header according to the internet header length. This is used at the end of all options, not the end of each option, and need only be used if ...
... options, not the end of each option, and need only be used if the end of the options would not otherwise coincide with the end of the internet header. ...
... 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 ...
... A route data is composed of a series of internet addresses. Each internet address is 32 bits ...
... route data is composed of a series of internet addresses. Each internet address is 32 bits or 4 octets. If the pointer is ...
... The recorded route address is the internet module's own internet address as known in the environment into which this datagram is ...
... route address is the internet module's own internet address as known in the environment into which this datagram is being forwarded. ...
... as a whole) remains a constant length as the datagram progresses through the internet. This option is a loose source route ...
... 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 ...
... A route data is composed of a series of internet addresses. Each internet address is 32 bits ...
... route data is composed of a series of internet addresses. Each internet address is 32 bits or 4 octets. If the pointer is ...
... The recorded route address is the internet module's own internet address as known in the environment into which this datagram is ...
... route address is the internet module's own internet address as known in the environment into which this datagram is being forwarded. ...
... as a whole) remains a constant length as the datagram progresses through the internet. This option is a strict source route ...
... route option provides a means to record the route of an internet datagram. ...
... A recorded route is composed of a series of internet addresses. Each internet address is 32 bits ...
... route is composed of a series of internet addresses. Each internet address is 32 bits or 4 octets. If the pointer is ...
... route data area must be zero. When an internet module routes a datagram it checks to see if the record route ...
... 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 ...
... datagram. Internet Timestamp ...
... |01000100| length | pointer|oflw|flg| +--------+--------+--------+--------+ | internet address | +--------+--------+--------+--------+ | timestamp ...
... 1 -- each timestamp is preceded with internet address of the registering entity, ...
... entity, 3 -- the internet address fields are prespecified. An IP module only registers ...
... timestamp if it matches its own address with the next specified internet address. The Timestamp ...
... timestamps. The intitial contents of the timestamp data area must be zero or internet address/zero pairs. If the timestamp ...
... Padding: variable The internet header padding is used to ensure that the internet ...
... The internet header padding is used to ensure that the internet header ends on a 32 bit ...
... The basic internet service is datagram oriented and provides for the fragmentation ...
... gateways, with reassembly taking place at the destination internet protocol module in the destination host. Of course, fragmentation ...
... gateways of a network is also allowed since this is transparent to the internet protocols and the higher-level protocols. This transparent type of fragmentation and ...
... Internet addresses distinguish sources and destinations to the host ...
... single physical host to act as several distinct internet hosts. That is, there must be a mapping between internet ...
... internet hosts. That is, there must be a mapping between internet host addresses and ...
... network/host interfaces that allows several internet addresses to correspond to one interface. It must also be allowed for a host ...
... Address mappings between internet addresses and addresses for ARPANET ...
... The internet identification field (ID) is used together with the source and destination address, and the protocol fields ...
... MF = 0, fragment offset = 0). If an internet datagram is fragmented, its data portion must be ...
... Every internet module must be able to forward a datagram of 68 octets without further fragmentation ...
... datagram of 68 octets without further fragmentation. This is because an internet header may be up to 60 octets, and the minimum fragment ...
... Every internet destination must be able to receive a datagram of 576 ...
... (3) fragment offset (4) internet header length field (5) total length field ...
... Don't Fragment flag (DF) bit is set, then internet fragmentation of this datagram ...
... receiving host does not have sufficient resources to reassemble internet fragments. ...
... FO - Fragment Offset IHL - Internet Header Length DF ...
... OFO - Old Fragment Offset OIHL - Old Internet Header Length OMF - Old More Fragments ...
... To produce the first fragment: (1) Copy the original internet header; (2) OIHL <- IHL; OTL <- TL; OFO <- FO ...
... To produce the second fragment: (7) Selectively copy the internet header (some options are not copied, see option definitions); ...
... FO - Fragment Offset IHL - Internet Header Length MF ...
... datagram (or any fragment of it) could be alive in the internet. ...
... destination it has communicated with in the last maximum packet lifetime for the internet. ...
... The type of service (TOS) is for internet service quality selection. The type of service is specified along the abstract parameters ...
... service parameter). The uncontrolled messages tend to be less reliably delivered and suffer less delay. Suppose an internet datagram is to be sent through the ARPANET. Let the ...
... datagram is to be sent through the ARPANET. Let the internet type of service be given as: ...
... priority bit on since the Internet precedence is in the upper half of its range, to select standard messages since the throughput ...
... sender to the maximum time the datagram is allowed to be in the internet system. If the datagram is in the internet ...
... internet system. If the datagram is in the internet system longer than the time to live, then the datagram ...
... This field must be decreased at each point that the internet header is processed to reflect the time spent processing the datagram ...
... implementations. That is, the presence or absence of an option is the choice of the sender, but each internet module must be able to parse every option. There can be several options present in the option field. ...
... The options might not end on a 32-bit boundary. The internet header must be filled out with octets of zeros. The first of these would ...
... must be filled out with octets of zeros. The first of these would be interpreted as the end-of-options option, and the remainder as internet header padding. ...
... Every internet module must be able to act on every option. The Security Option is required if classified, restricted, or ...
... The internet header checksum is recomputed if the internet header ...
... The internet header checksum is recomputed if the internet header is changed. For example, a reduction of the time to live ...
... changed. For example, a reduction of the time to live, additions or changes to internet options, or due to fragmentation. This checksum ...
... fragmentation. This checksum at the internet level is intended to protect the internet header fields from transmission errors. ...
... checksum at the internet level is intended to protect the internet header fields from transmission errors. ...
... bit errors are acceptable while retransmission delays are not. If the internet protocol enforced data correctness such applications could not be supported. ...
... Internet protocol errors may be reported via the ICMP messages [3]. ...
... Internet protocol interfaces on one side to the local network and on ...
... program (or even a gateway program) will be called the "user" since it is using the internet module. Since internet protocol is a datagram ...
... gateway program) will be called the "user" since it is using the internet module. Since internet protocol is a datagram protocol, there is minimal memory or state ...
... state maintained between datagram transmissions, and each call on the internet protocol module by the user supplies all information necessary for the IP to perform the ...
... The following two example calls satisfy the requirements for the user to internet protocol module communication ("=>" means returns): ...
... datagram, it executes the SEND call supplying all the arguments. The internet protocol module, on receiving this call, checks the arguments and prepares and sends the message. If the ...
... When a datagram arrives at the internet protocol module from the local network, either there is a pending RECV call from the user addressed ...
... physical connections or logical addresses). The internet module must check to see that the source address is one of the legal address for this host ...
... An implementation may also allow or require a call to the internet module to indicate interest in or reserve exclusive use of a class of ...


... This is an example of the minimal data carrying internet datagram: ...
... +-+-+-+-+-+-+-+-+ Example Internet Datagram ...
... This is a internet datagram in version 4 of internet protocol ...
... internet datagram in version 4 of internet protocol; the internet header ...
... version 4 of internet protocol; the internet header consists of five 32 bit words, and the total length of ...
... In this example, we show first a moderate size internet datagram (452 data octets), then two internet ...
... internet datagram (452 data octets), then two internet fragments that might result from the fragmentation ...
... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example Internet Datagram ...
... Internet Protocol ...
... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example Internet Fragment ...
... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example Internet Fragment ...
... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example Internet Datagram ...


... The destination address, an internet header field. ...
... An internet header field carrying various control flags. ...
... This internet header field indicates where in the internet ...
... This internet header field indicates where in the internet datagram a fragment ...
... Internet Control Message Protocol, implemented in the internet module, the ICMP ...
... Internet Control Message Protocol, implemented in the internet module, the ICMP is used from gateways ...
... An internet header field carrying the identifying value assigned by the sender ...
... The internet header field Internet Header ...
... The internet header field Internet Header Length is the length of the internet ...
... Internet Header Length is the length of the internet header measured in 32 bit words. ...
... Internet Address ...
... internet datagram ...
... The unit of data exchanged between a pair of internet modules (includes the internet header ...
... The unit of data exchanged between a pair of internet modules (includes the internet header). ...
... internet fragment ...
... A portion of the data of an internet datagram with an internet ...
... A portion of the data of an internet datagram with an internet header. ...
... host within a network. The actual mapping of an internet local address on to the host addresses ...
... The More-Fragments Flag carried in the internet header flags field. ...
... A flag indicating whether or not this internet datagram contains the end of an internet ...
... internet datagram contains the end of an internet datagram, carried in the internet ...
... internet datagram, carried in the internet header Flags field. ...
... Fragment Blocks in a the data portion of an internet fragment. That is, the length of a portion of data measured in 8 octet ...
... The internet header Options field may contain several options, ...
... The internet header Padding field is used to ensure that the data begins on 32 bit ...
... In this document, the next higher level protocol identifier, an internet header field. ...
... The local address portion of an Internet Address. ...
... The source address, an internet header field. ...
... Transmission Control Protocol: A host-to-host protocol for reliable communication in internet environments. ...
... An internet header field which indicates the upper bound on how long this internet ...
... internet header field which indicates the upper bound on how long this internet datagram may exist. ...
... The internet header field Total Length is the length of the datagram ...
... header field Total Length is the length of the datagram in octets including internet header and data. ...
... An internet header field which indicates the type (or quality) of service ...
... header field which indicates the type (or quality) of service for this internet datagram. ...
... The user of the internet protocol. This may be a higher level protocol module, an application program, or a gateway program. ...
... The Version field indicates the format of the internet header. ...


... Postel, J., "Internet Control Message Protocol - DARPA Internet Program Protocol Specification ...
... Postel, J., "Internet Control Message Protocol - DARPA Internet Program Protocol Specification," RFC 792std5, USC/Information Sciences Institute, September 1981. ...



Google
Web
RFC-Ref