Home |
Sockets, IP, and Port Addresses Blocking and Non-Blocking Sockets Fragmentation |
FragmentationWhen a packet needs to be sent which is larger than the MTU value will allow, the packet is fragmented (i.e. chopped up into multiple packets). Each fragmented packet is sent. A gateway may also fragment a packet if the MTU value of the network it is forwarding a packet to is smaller than the size of the packet it is sending. Each fragment of the message sent has an IP header. The first fragment has an UDP, TCP, or ICMP header as well. The IP header fields contain information used to specify which piece of the whole packet a fragment specifies. It contains a fragment offset which contains a byte offset for the TCP/UDP/ICMP part of the packet as well as flags that specify that this packet is part of a fragmented packet. It also contains a bit which informs a gateway/router if it can fragment the packet. RTIP-32 provides the capability to fragment UDP and ICMP packets which need to be sent. TCP packets never need to be fragmented due to the window scheme, i.e. the maximum amount of data encapsulated into a packet from the window is based upon the MSS value received from the remote host in the initial SYNC message. TCP packets may be fragmented by a gateway. In other words, RTIP-32 never fragments TCP packets it is sending, but has the ability to process input packets which are fragmented. RTIP-32 provides the capability to receive and reassemble TCP, UDP and ICMP packets.
|