TCP/IP协议族(四)

TCP的三次握手与四次挥手过程以及各个状态的名称与含义,TIMEWAIT的作用

在TCP中面向连接的传输需要三个过程:连接建立,数据传输,连接终止。

TCP/IP三次握手

这里写图片描述

TCP/IP四次挥手

这里写图片描述

TIMEWAIT的作用

在客户端发送完四次挥手的最后一个ACK之后,会进入一个TIME_WAIT的阶段。TIME_WAIT是为了保证最后一个ACK能够正常到达,并且保证老的TCP请求不会影响后续新的TCP请求。
如果没有TIME_WAIT这个阶段,假设当前最后一个ACK发送失败,当服务器端长时间没有收到ACK则会重新发送ACK+FIN,但是这是客户端的端口已经关闭,这样就会造成应用程序的错误。
那为什么TIME_WAIT的时长是两倍的MSL(段的最大生命周期)呢?因为我们检测到最后一个ACK没有到达并且重新发送一个ACK+FIN到达客户端的时间最大就是两倍的MSL,所以TIME_WAIT设为这个长度是最合理的。
为什么没有TIME_WAIT老的TCP请求就有可能影响新的TCP请求呢?你想啊,如果服务器还在针对前一个链接发送ACK+FIN,客户端却要打开新的链接,那这样的话老的链接是不是对新的连接就产生了影响了呢。

(然后我们来啰嗦一下,为什么是三次握手,不是四次五次六次握手呢?你想啊,如果我们在打电话,我打过去是第一次,对面“喂”一声是二次(别人一“喂”我是不是就知道别人已经接到我的电话了呢),然后我再“你好”这是第三次(这样别人是不是就能确定我听到他说话了呢)。但是有人就会说啊,万一他再说话的时候就听不到了呢,那是不是要再确定一次呢?要是这样说的话我们打电话岂不是要一直“喂喂喂喂喂···”个不停了?那既然三次和四次五次六次的效果都是一样的,反正都不能百分之百完全确定,那我们为什么不就干脆三次就好了嘛,是吧。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值