Home>Article>Operation and Maintenance> What does an IP datagram look like - Analysis of IP datagram format
Through the format of IP datagram, we can know the role of IP protocol more clearly. IPv4 datagrams are generally described in 32-bit units. The following figure is an IP datagram format diagram:
We recommend that when learning the IP datagram format, you can use packet capture tools (such as wireshark) to capture Take some IP datagrams and carefully observe and compare them.
Now, let’s look at the role of each field in the IP datagram header:
(1)Version: occupies 4 bits and refers to the version of the IP protocol.
(2)Header length: occupies 4 bits, refers to the header length (excluding data part), the unit is 4 bytes. Because the fixed part of the header is 20 bytes, the minimum value of this field is 5 (0101)
(3)Differentiated Services: occupies 8 bits and is currently of no use.
(4)Total length: 16 bits, the length of the header length data part, in bytes. In theory, the maximum length of an IPv4 datagram is 2 to the 16th power minus 1 byte, and 65535 bytes. However, the maximum length of a datagram is controlled by the MTU (Maximum Transmission Unit), and the length of a datagram cannot exceed the MTU setting value. This setting value is generally set to 1500. Because the datagram is too long, the forwarding speed of the router will slow down, but if the datagram is too small, the forwarding efficiency will not increase. When the length of a datagram exceeds the MTU, a long datagram needs to be split into several datagram fragments.
(5)Identification: occupies 16 bits. There is a counter in the system. Whenever a datagram is generated, this counter will increase by 1. The value of the identification field is this increment. number. Through this identification value, as well as the flag field and offset mentioned later, the fragment can be reassembled into the original datagram.
(6)Flag: occupies 3 positions, but currently only the last two are meaningful:
Middle position, Don't fragment : Cannot be fragmented. Only when this bit is 0, fragmentation is allowed
The last bit, More fragments: There are fragments. If the value is 0, it means that it is the last fragment, otherwise it means that there are still fragments later.
(7)Offset: occupies 13 bits. It represents the relative position of a fragment within the data portion of the original packet. The unit is 8 bytes.
(8)Hop count limit: occupies 8 bits. It is to prevent a datagram from spreading unrestrictedly in the network. The value of this field indicates the maximum number of routers that the datagram can pass through. When it passes through a router, the value is decremented by 1. When the value reaches 0, the datagram has not been successfully delivered, and the router discards the datagram.
(9)Protocol: Indicates which protocol is used for the data carried by this datagram. Commonly used protocols are:
ICMP: The value is 0
IP: The value is 4
TCP: The value is 6
UDP: The value It is 17
Header checksum: occupies 16 bits. This field only checks the header of the datagram, but does not include the data part. This field can be used to calculate whether there are any errors in the datagram.
(11)Source address: 32 bits.
(12)Destination address: 32 bits.
(13)Optional part: Hardly used.
The above is the detailed content of What does an IP datagram look like - Analysis of IP datagram format. For more information, please follow other related articles on the PHP Chinese website!