0

我正在测试网络设备驱动程序处理损坏数据包的能力。我要测试的特定情况是,由于路径中的 MTU 较小,大型 TCP 数据包沿路径分段。

我对大型 TCP 数据包的 IP 分片最感兴趣的是,IP 分片数据包的协议属性是为每个数据包设置为 TCP,还是只是第一个分片?

4

2 回答 2

1

每个片段的协议字段将设置为 TCP (6)。

来自RFC 791 - 互联网协议

为了对长互联网数据报进行分段,互联网协议模块(例如,在网关中)创建两个新的互联网数据报,并将互联网报头字段的内容从长数据报复制到两个新的互联网报头中。...这个过程可以推广到 n 路拆分,而不是描述的双向拆分。

协议是标头的一部分,因此将被复制到每个片段中。

于 2009-07-13T09:21:32.087 回答
1

IP Fragmentation 是第 3 层活动,虽然数据包将被标记为 TCP,但中间的分片将不能被 TCP 使用。TCP 层必须等待实际 IP 数据包(未分段)的重新组装,然后才能对其进行处理。

维基百科IP 分片参考。


路径 MTU-Discovery通常会更新源 MTU,并且 TCP 数据包(实际上是分段)将被发送,其大小受到限制,不会在途中造成碎片

于 2009-07-13T09:25:14.420 回答