IP 协议可以处理分片,它包括分片偏移和标识符。我知道当您的 IP 数据包对于某些 MTU 低于前一个的特定网络或链接来说太大时,这会起作用。
例如,MTU 为 1000 字节,而您的 IP 数据包为 900 (+20) 字节。再往下走,MTU 仅为 500,因此您必须提取 IP 数据并将其放入两个数据包中,其中一个为 480 (+20),另一个为 420 (+20)。
但根据我的理解,这是网络层的分段,将一个 IP 数据包转换为多个 IP 数据包。这意味着您只有一次传输层标头,并且每个较小的 IP 数据包都有一个新的网络层标头。
我希望我对此的理解是正确的。无论如何,在图像之后是我的实际问题:
假设您的 IP 数据包长度受 1000 字节的限制,包括报头,由于 1000 字节的 MTU。
如果由于某种原因您的 TCP 段大于 980,从而超出最大 IP 数据包大小,实际会发生什么情况?
如果您的 TCP 段是 1960 字节怎么办。这里的碎片是如何处理的?是否放入一个 1980 IP 数据包,然后将其分片为两个 980 (+20) IP 数据包?
在此之前,传输层中是否发生了碎片?是否有多个较小的传输层段,每个段都有自己的标头,以正确的大小发送到 IP 层?