TCP协议流的理解-网络协议

网络协议 21NN.CN 1个月前 (09-10) 0次浏览 未收录 0个评论 扫描二维码

TCP协议流的理解

 

TCP是流协议,不像UDP那样sendto发一次消息,另一端必然会收到完整消息,或者没有收到任何消息。

当用TCP send发一次消息的时候,可能另一端在某时刻可能只收到一部分消息,下一时刻才能收到另一部分。那如果一个消息很小,是否可以保证另一端在某时刻能收到这条完整消息?

 

调用send后,TCP将数据拷贝到缓冲区。缓冲区内可能不止一条用户消息。

TCP按照一定算法,将缓冲区的数据打包到1-n个TCP报文中,交给IP层发送。TCP报文是TCP协议的最小发送单位,大小应该是可变的,并且丢失的话会重发。

 

#并不能保证一个TCP报文中必然包含一条用户消息的全部,所以即使消息很小,另一端也有可能在某时刻只收到部分

IP层将TCP报文装进IP包,然后再交给链路层发送以太帧

 

#理论上IP包的大小应该会选择比MTU小。一旦IP包比MTU大,意味着网络上的路由要帮你缓存多个以太帧,拼出IP包后才知道如何路由到下一个节点。向下一节点路由的时候还要再拆分成多个以太帧发送

#所以TCP报文应该会比选择比MTU小


本文:TCP协议流的理解-网络协议 本文链接:https://www.21nn.cn/wangluoxieyi/80702.html 本站所以图片、文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如有侵权请邮件与我们联系处理。i@ki4.cn
喜欢 (0)
[1353713598@qq.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址