tcp:最后重新组合数据

时间:2012-03-25 10:53:31

标签: tcp

在保持建立连接的方案中,TCP如何知道哪个是大文件的最后一个数据包(由tcp分段)。 (比如ftp或在yahoo messenger上发送mp3)

我的意思是它如何知道哪个数据包携带one.mp3的数据以及哪个数据包携带另一个数据.mp3 ??

任何人?

谢谢

2 个答案:

答案 0 :(得分:1)

至少有两种可能的方法。

  • 预先声明您要发送的数据量。类似于声明发送消息4008字节
  • 的数据包
  • 第二种方法是使用终止序列(nastier to processing)

所以接收者:

  • 尝试阅读声明的金额或
  • 扫描终止序列

答案 1 :(得分:0)

TCP是一种流协议,碎片应该对TCP应用程序透明。它运行在数据流上,而不是数据包。使用序列号将流组装到其预期的顺序。应用程序发送的字节序列封装在tcp段中。在将数据传送到应用程序之前,将在接收方重新创建流。

IP协议可以进行分段。

每个TCP段都进入IP层,可能在那里被分段。通过收集所有数据包重新组装段,并使用标头中的偏移字段将其放在正确的位置。