Network engineer technical difficulties analyze what MTU and PMTU are
MTU (Maximum Transmission Unit):
The maximum transmission unit is used to notify the other party of the maximum size of the data service unit that can be accepted, and to indicate the size of the payload that the sender can accept.
Both Ethernet and 802.3 have a limit on the length of the data frame, and their maximum values are 1500 bytes and 1492 bytes, respectively. This characteristic of the link layer is called MTU, which is the maximum transmission unit. Most types of networks have an upper limit on the number of frames. If there is a datagram to be transmitted in the IP layer, and the length of the data frame is greater than the MTU of the link layer, then the IP layer needs to be fragmented (fragmentation), that is, the datagram is divided into dry slices, so that each slice is smaller than MTU.
Different data links have different maximum transmission units (MTU). Since the IP protocol is the upper layer of the data link, it must be able to be used without being affected by the MTU size of the data link. When the IP datagram is too large, fragmentation technology should be used to ensure that the data frame is not greater than the MTU of the network to be passed.
In addition to the routing addressing function of the IP protocol, another important function is the fragmentation processing of the IP datagram. Each data link layer can determine the maximum length of a frame sent is called the maximum transmission unit. In Ethernet, the MTU is 1500 bytes; in FDDI, the MTU is 4352 bytes; in IP over AMT, the MTU is 9180 bytes.
If the IP datagram to be sent is larger than the MTU of the data link layer, the datagram cannot be sent. For the IP protocol from the upper layer, when the IP datagram to be sent is larger than the MTU of the data link layer, the datagram must be divided into multiple IP datagrams before it can be sent. In addition, there are data links with different MTUs between the hosts that communicate with each other. In the process of sending, the MTU may shrink. When the above situation occurs, there must be a router capable of fragmentation during the transmission process.
The receiving host must restore the processed IP datagram after fragmentation. In a relay router, although the router performs fragmentation processing, it does not perform restoration processing. In addition, the fragmented IP datagram can only be restored to the original IP datagram after being restored, and then the data can be transferred to the upper layer module.
In the IPv6 protocol, MTU has made new changes. When I learned about IPv6 packet forwarding, I learned that IPv6 packets are not fragmented during the forwarding process, and of course, they do not integrate fragmented packets. IPv6 packets are fragmented only at the source node and assembled at the destination node. So this will raise a question, how big is the source node dividing the message? Very simple, in order for all packets to be unobstructed on the path, then the fragmented packet size cannot exceed the smallest MTU on the path, which is the PMTU-path. The mechanism of PMTU discovery is defined in MTURFC1981, which is accomplished through the ICMPv6 Packet Too Big message. First, the source node assumes that the PMTU is the MTU of its outgoing interface, and sends out a packet. When there is a PMTU smaller than the current hypothesis on the forwarding path, it will send a Packet Too Big message to the source node and carry its own MTU value. The node changes the assumed value of PMTU to the newly received MTU value. This is repeated until after the message reaches the destination, the source node can know the PMTU of a certain destination. Suppose that the source to the destination have to pass through 4 links in succession, and the link MTUs are 1500, 1500, 1400, and 1300. When the source sends a fragmented message, it is first divided into 1500-sized fragments, and when it reaches the 1400 outgoing interface At this time, the router will return a PacketToo Big error, while carrying an MTU value of 1400. After receiving it, the source will re-divide it into 1400 size slices. When it reaches the outgoing interface of 1300, it will also return a Packet Too Big error, carrying the MTU value of 1300. After that, the source is re-divided into 1300 packets and finally reaches the destination, so that the PMTU of the path is found.
We need to note that the PMTU discovery mechanism is meaningful only when the data packet exceeds the minimum MTU on the path. If the packet is small and smaller than the minimum MTU on the path, it is impossible to generate a Packet Too Big message. Since IPv6 requires the minimum MTU supported by the link layer to be 1280, the value of PMTU is not less than 1280. The maximum PMTU is generally determined by the link layer. If the link layer is a tunnel, the supported PMTU may be large.
1. The source host uses its own MTU to fragment the message, and then sends the message to the destination host.
2. When the intermediate forwarding device receives the message and forwards it, if it finds that the MTU value supported by the interface that forwards the message is less than the length of the message, it will discard the message and return an ICMPv6 error message to the source, which contains the MTU of the interface that failed to forward.
3. After receiving the error message, the source host will use the MTU carried in the message to fragment and send the message again.
4. Repeat so until the destination host receives the message, thereby determining the minimum MTU in the path of the message from the source to the destination.