The third network-level protocol is the Internet Protocol (IP), which provides unreliable, connectionless packet delivery for the Internet.
IP is connectionless because it treats each packet of information independently. It is unreliable because it does not guarantee delivery, meaning, it does not require acknowledgments from the sending host, the receiving host, or intermediate hosts.
IP provides the interface to the network interface level protocols. The physical connections of a network transfer information in a frame with a header and data. The header contains the source address and the destination address. IP uses an Internet datagram that contains information similar to the physical frame. The datagram also has a header containing Internet Protocol addresses of both source and destination of the data.
IP defines the format of all the data sent over the Internet.
IP header field definitions
|Version||Specifies the version of the IP used. The current version of the IP protocol is 4.|
|Length||Specifies the datagram header length, measured in 32-bit words.|
|Type of Service||Contains five subfields that specify the type of precedence, delay, throughput, and reliability desired for that packet. (The Internet does not guarantee this request.) The default settings for these five subfields are routine precedence, normal delay, normal throughput, and normal reliability. This field is not generally used by the Internet at this time. This implementation of IP complies with the requirements of the IP specification, RFC 791, Internet Protocol.|
|Total Length||Specifies the length of the datagram including both the header and the data measured in octets. Packet fragmentation at gateways, with reassembly at destinations, is provided. The total length of the IP packet can be configured on an interface-by-interface basis with the ifconfig command, or the System Management Interface Tool (SMIT) fast path, smit chinet. Use SMIT to set the values permanently in the configuration database; use the ifconfig command to set or change the values in the running system.|
|Identification||Contains a unique integer that identifies the datagram.|
|Flags||Controls datagram fragmentation, along with the Identification field. The Fragment Flags specify whether the datagram can be fragmented and whether the current fragment is the last one.|
|Fragment Offset||Specifies the offset of this fragment in the original datagram measured in units of 8 octets.|
|Time to Live||Specifies how long the datagram can remain on the Internet. This keeps misrouted datagrams from remaining on the Internet indefinitely. The default time to live is 255 seconds.|
|Protocol||Specifies the high-level protocol type.|
|Header Checksum||Indicates a number computed to ensure the integrity of header values.|
|Source Address||Specifies the Internet address of the sending host.|
|Destination Address||Specifies the Internet address of the receiving host.|
|Options|| Provides network testing and debugging. This field is not
required for every datagram.
Outgoing packets automatically have an IP header prefixed to them. Incoming packets have their IP header removed before being sent to the higher-level protocols. The IP protocol provides for the universal addressing of hosts in the Internet network.