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

新梦想软件测试

上次我们知道小明把他的床通过了快递公司运回家里了,但是快递的发送细节并不太清楚。所以关于小明的故事还是得继续,我们回到小明跟小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是怎么配合的吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值