【发布时间】:2013-04-22 04:23:11
【问题描述】:
有人问我一个与数据报有关的有趣问题,以及它们是如何分段的,即用什么来重新组装原始数据报。
- 我知道每个片段中的 ID 号都是相同的,以表明它们都属于一个更大的数据报。
- 我知道将 FragFlag 设置为 1 意味着途中还有更多片段,但是 FragFlag 为 0 的片段意味着它是最终片段。
我还缺少一件事,我认为还必须使用序列号,以便片段知道它们必须放回哪个顺序。但是,如果这是真的,那让我有点困惑,因为数据报使用 UDP这应该是不可靠的,最终可能会在传输过程中丢失数据包或以错误的顺序发送它们。
相比之下,TCP 应该是可靠的,并且是保证数据包以正确顺序发送的最佳方式。因为我们处理的是数据报而不是数据包,所以这里的工作方式是否有所不同?或者只是为了让 UDP 更“可靠”而创建的序列号。
感谢您的帮助。
【问题讨论】:
标签: tcp udp datagram fragmentation defragmentation