【发布时间】:2015-04-17 07:22:53
【问题描述】:
据我所知,UDP 不使用路径 MTU 来避免碎片,但 TCP 会这样做。我试图为这种特殊设计提出一个理由。
TCP 需要避免分片,因为即使只有一个分片被丢弃,它也必须重新传输整个数据报。相反,UDP不需要重传数据报,由应用层来保证完整性。
总之,fragment 会减慢 TCP 传输协议而不是 UDP 传输协议。
问题来了,对于需要完整性的通信,无论是采用天然保证完整性的TCP,还是基于UDP开发应用层重传协议,如果没有ACK,就需要重新发送整个数据报。然后,分片会减慢 UDP 上的应用层重传协议,就像 TCP 一样。
我的推理有什么问题?
【问题讨论】:
-
不清楚您的建议是什么。 UDP 实现会对路径 MTU 做什么?假设路径 MTU 为 1,500 字节,应用程序尝试发送 1,600 字节数据报。目前,数据报由 IP 层分段。你的建议到底是什么? UDP 有何不同之处?