TCP三次握手与四次挥手

来源:互联网 发布:南京纬创软件 编辑:程序博客网 时间:2024/06/15 17:08

【背景】TCP的可靠性依据:

①.基于请求确认机制
②基于序号,只有经过确认的消息才是可靠的。
③TCP是面向连接 、 全双工、给予字节流的
④基于信号机制可以保证数据按序到达,以及丢包重传问题
⑤基于滑动窗口(按缓冲区大小)进行流量控制,(永远填自己的缓冲区大小)
⑥TCP如果出现大面积丢包,TCP执行自己的网络拥塞避免算法
⑦TCP当中维护了四种定时器: 重传定时器 、 坚持定时器 、 保活定时器、时间等待定时器。
这里写图片描述

【三次握手】

1.为什么不是两次握手?

因为主要是防止已失效的连接请求(SYN=1[同步请求标志])报文段突然有效传达到了B,但B收到此失效的连接报文请求段后,就误认为是A又发出的一次新的连接请求。

如果是三次握手的话,B由于收不到确认,就知道A并没有要求建立连接的需求。

2.为什么不是四次握手呢?

因为最后一次握手的时候,当服务器发送数据后,自己就会进入ESTABLISH状态,进入这个状态,系统为了方便管理,首先会去描述它,(此时客户端A真正的连接还没有建立,但服务器却已经建立了),因为服务器是1对多的关系,而客户端是1对1的关系。势必这会对服务器应相互比较大。

所以,应该让这种消耗就分配到客户端上。进行三次握手,客服端发出最后一次握手时,客户端就会建立连接。

最后一次握手,不保证数据的可靠性,它带来的消耗分配到客户端是比较合理的。

3.Tcp连接是全双工的,双方只有经过确认的消息才是可靠的 。

当客户端发起请求后,服务器端要经过确认,整体下来就至少需要三次握手了。

【四次挥手】

1.为什么要四次挥手

基于全双工模式,双方是平等的,分手是两个人的事情。
当一方发起请求我们分手吧,经过确认发送:我们可以分手了,此时还需要将自己的 事情做完,自己还有一部分数据没有发完。发完之后,就发送那好吧,我们分手吧。
经过确认,双方都进入closed状态。

2.主动断开链接的一方为什么要进入TIME_WAIT状态?

进入TIME_WAIT状态,会启动时间等待计时器设置的时间是2MSL(MSL最长报文段寿命)。
原因有两个:
①为了保证A发送的最后一个ACK报文段能够到达B这个ACK报文段有可能丢失,因此处于LAST_ACK状态的B,因为收不到对方发送的FIN_ACK报文段的确认,B会超时重传FIN_ACK,而A就能在2MSl时间内收到这个重传的FIN_ACK报文段。接着A重传一次确认,重新启动2MSL计时器。

②防止已失效的连接请求出现在本连接中,A在发送完最后一个ACK报文段后,在经过时间2MSL,就可以是本连接持续时间内所产生的所有报文段都从网络中消失。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华为无线自拍杆连opp手机怎么办 苹果手机进水后自动跳电怎么办 魅族手机返回键不好使怎么办 手机壳是玻璃的摔坏了怎么办 魅族手机进水了开不了机怎么办 打发票机屏忘记了密码怎么办 魅族手机升级显示电量不足怎么办 魅蓝手机的图库没了怎么办 魅蓝5s屏幕碎了怎么办 魅族手机中间的home键失灵怎么办 魅族手机突然关机开不了机了怎么办 魅蓝3s卡顿怎么办视频 魅蓝3s手机太卡怎么办 红米4x外放破音怎么办 魅族手机刷机后内存变小了怎么办 手机用久了内存越来越小怎么办魅族 贴了车膜左右后视镜反光怎么办 贴手机膜时酒精没了怎么办 魅蓝e外屏幕碎了怎么办 贴的手机膜边缘翘起来着怎么办 手机后面贴的膜都是胶怎么办 车漆外面一层保护膜被划开了怎么办 美团骑手gps信号弱时怎么办 华为荣耀4x充电插口坏了怎么办 华为畅享5s开不了机怎么办 华为梅特10忘记账号密码怎么办 华为荣耀8充电接口坏了怎么办 华为手机锁屏了自动开屏怎么办 支付宝收货地址写错了怎么办 支付宝领海报地址写错了怎么办 手机总是弹出日历已停止运行怎么办 华为mate8忘了锁屏密码怎么办 红米4a打王者卡怎么办 苹果5s软件更新密码忘记了怎么办 华为荣耀P9进水了没有声音怎么办 华为荣耀7原相机不能拍照怎么办 华为手机触屏密码忘记了怎么办 华为荣耀10屏锁密码忘了怎么办 华为手机开机卡在开机界面怎么办 苹果6s国行不能用移动4g怎么办 苹果手机32g内存不够用怎么办