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