我知道在发送 ip 消息时,be 和我的数据包目的地之间的网络路径中的每一跳都会检查下一跳的 MTU 是否大于我发送的数据包的大小。如果是这样,数据包将被分片,两个数据包将分别发送到下一跳,仅在目的地(或者,在某些情况下,在遇到的第一个 NAT 路由器)重新组合。据我了解,这件事可能很糟糕,但我真的不明白为什么。
- 我知道如果连接倾向于丢弃很多数据包,丢失一个片段意味着我必须重新发送整个数据包(这实际上是我自己想出的唯一事情)
- 是否有可能我的数据包不会被分段而不是被丢弃?
- 如何识别数据包碎片?我可以 100% 确定它们会正确重新组装吗?例如,如果我几乎同时向同一个目的地发送两个相同长度的 ip 数据包,那么两者的片段交换的可能性有多大,例如 AAA、BBB 重新组合成 ABA、BAB?
原则上,如果数据包没有被丢弃并且片段被正确重组,那么实际上使用数据包分段似乎是一个好主意,可以节省本地带宽并避免发送越来越多的标头而不仅仅是一个大数据包。
谢谢