2013-04-28 36 views
0

我被问到一个与数据报有关的有趣问题,以及它们是如何分段的,即用于重新组装原始数据报的内容。UDP中的序列号

  • 我知道每个片段中的ID号码都是相同的,表明它们都属于一个更大的数据报。
  • 我知道FragFlag被设置为1意味着路上有更多的碎片,但是FragFlag为0的碎片意味着它是最终的碎片。

。有一两件事我很想念,我以为是序列号也必须使用,以至于片段知道为了他们必须被放回但是,如果这是真的,有点迷惑了我,因为数据报使用的UDP应该是不可靠的,并且最终会丢失传输中的数据包或以错误的顺序发送数据包。

相比之下,TCP应该是可靠的,并且保证数据包的最佳方式是以正确的顺序发送的。因为我们正在处理的是数据报而不是数据包,所以这里的工作是不同的吗或者是为了使UDP更“可靠”而创建的序列号。

感谢您的任何帮助。

回答

0

这里最重要的区别是,TCP定义发送者和接收者之间的流量控制,所以双方都始终了解通信的状态,例如成功/失败/正在进行/ ...。 UDP更低级:发送者只是传输一些数据,并不关心它是否被接收(当然你可以在SW中实现一些使用UDP的更高级协议)。

0

但是,如果这是真的,有点让我困惑,因为数据包使用UDP这被认为是不可靠的,并且最终在运输过程中丢失数据包或以错误的顺序发送。

这是为什么混乱?如果所有分段都到达,数据报会重新组合(在IP层)并传送到应用程序。如果他们没有,运气不好。