前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【新梦想干货连载】网络情缘之TCP的分包处理

【新梦想干货连载】网络情缘之TCP的分包处理

作者头像
新梦想IT职业教育
修改2019-11-05 17:03:49
5340
修改2019-11-05 17:03:49
举报
新梦想软件测试
新梦想软件测试

上次我们知道小明把他的床通过了快递公司运回家里了,但是快递的发送细节并不太清楚。所以关于小明的故事还是得继续,我们回到小明跟小MM对话的场景,当小MM确定好接收点正常营业之后,故事是怎么进行的。

Part  1

小MM说:”你的东西呢,拿过来看看啊”。小明指着外面的床说:“那就是了”。小MM说:“那么个东西,我们可没有这么大的箱子,要把床拆了,一个一个小包的送过去”。小明没有办法,只能把床都拆散了。然后再包成一个一个小箱子。小MM在每个箱子上按顺序贴上快递单号:“到时候让你家里人按编号组装起来就行了”。然后叫来快递员把1号至4号箱子装上三个车。小明比较奇怪为什么不一次全部发过去。小MM说:“这是规定一次只发三个”。小明担心的问:“万一路上出了什么事故怎么办。”小MM说:“我们送快递是有时间限制的,如果在规定的时间内没有收到回复,那你就去买一个一模一样的零部件回来重新发一次过去”。

新梦想软件测试
新梦想软件测试
新梦想软件测试
新梦想软件测试

图一:wireshark抓包的结果

Part 2

在小明觉得可能不太靠谱的时候,小明总算收到了1号箱送达的回复,3号箱的回复。但是没有2号箱子的回复。小MM说:“没事,2号肯定是收到了,不然不会发3号箱子的确认回复。估计只是回复消息在路上出了什么事情了”。再发接来的3个箱子就是了。于是小MM又把4号,5号,6号箱子发出去了,然后重新启动计时,但是时间都过去了4号,5号,6号回复信息都没有收到,小明这下紧张了,赶紧问一下:“怎么还没有收到回复?”,小MM说:“现在不知道原因,肯定是出问题了,你去买这几个零部件,一模一样的,然后再发一次”。小明觉得这也太坑了点,但是人家快递公司可不管,没办法,赶紧去买回来,然后重新发送了出去。经过多次折腾后,总算是把床全部发了出去,然后收到床已经组装成功的消息。

新梦想软件测试
新梦想软件测试

图二:wireshark抓包服务器给客户端的响应

Part 3

通过这个过程大家应该知道,TCP的每个数据包的大小是有限制的,当数据超大的时候,就会切分成多个包进行传输。每个数据包的发送出去以后就会收到消息确认,而且消息确认是有顺序的。TCP的可靠性就是通过消息确认和数据包超时重传来保证的,当然还有一些其它的措施。

大家了解过传输协议的话应该知道,TCP协议有一个不太靠谱的兄弟叫做UDP(用户数据报)协议。为啥不靠谱,因为他不建立连接。他也不太去管对方是否会收到数据,只管发送数据。那这两个协议分别用在什么场景呢?

你觉得你什么时候会比较关注延时和数据质量问题。有想到的么?

一般情况下,要求文件准确无误的传送给对方的就会使用TCP协议,应用层很多都是的,比如:HTTP协议,FTP协议,QQ文件传输,邮件传输等。而UDP协议的使用有:QQ语音,QQ视频。你可以想象一下,当你跟朋友视频或者语音的时候,如果因为一点点没有听清楚,对方就一直重复一直重复。整个过程多么惨不忍睹。当然UDP有它的优点:速度快。

新梦想软件测试
新梦想软件测试

既然HTTP是用的TCP协议,那下次我们就来说一说HTTP与TCP是怎么配合的吧。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档