码迷,mamicode.com
首页 > 其他好文 > 详细

关于tcp分段重组的疑惑

时间:2020-02-13 19:16:21      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:tail   分段   参考资料   而不是   结束   模糊   get   粘包   程序   

可以参考原帖:https://blog.csdn.net/u010643777/article/details/79503343

以下是问题描述,以及自己的理解,依据的链接也会提供出来:

问题描述:

  有个问题,困扰我很久,在tcp传输中,应用层的数据大于MTU,则TCP需要进行分段传输,假设一段应用层数据恰好需要两个tcp报文传输。那么,我的问题是,接收端是如何将数据提交给应用层?

我的困惑是,tcp是如何在接收到这两个数据包,获知这段发送端的数据已经传输完成,该提交给上层,而不是需要等待第三个包?为什么问这个问题,看了sctp协议,其中就有字段标志数据的开始与结束。但

是TCP协议里面没有这样的字段。若没有这样的信息,显然接收端应用程序在处理数据的时候,会出现边界模糊的现象,就是数据粘包。

个人理解:

  可以利用窗口大小和第一个数据的序列号计算出最大可接收的数据序列号。这样就算出了TCP的边界包。

参考资料:

  https://stackoverflow.com/questions/14834602/netty-does-it-need-to-care-tcp-segments-reassembly

  https://www.cnblogs.com/alifpga/p/7675850.html

 

 

关于tcp分段重组的疑惑

标签:tail   分段   参考资料   而不是   结束   模糊   get   粘包   程序   

原文地址:https://www.cnblogs.com/workharder/p/12304625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!