tcp 传输连接管理
因为 tcp 三次握手建立连接、四次挥手释放连接很重要,所以附上《计算机网络(第 7 版)-谢希仁》书中对此章的详细描述:https://gitee.com/huihut/interview/raw/master/images/tcp-transport-connection-management.png
tcp 三次握手建立连接
【tcp 建立连接全过程解释】
客户端发送 syn 给服务器,说明客户端请求建立连接;
服务端收到客户端发的 syn,并回复 syn+ack 给客户端(同意建立连接);
客户端收到服务端的 syn+ack 后,回复 ack 给服务端(表示客户端收到了服务端发的同意报文);
服务端收到客户端的 ack,连接已建立,可以数据传输。
tcp 为什么要进行三次握手?
【答案一】因为信道不可靠,而 tcp 想在不可靠信道上建立可靠地传输,那么三次通信是理论上的最小值。(而 udp 则不需建立可靠传输,因此 udp 不需要三次握手。)
【答案二】因为双方都需要确认对方收到了自己发送的序列号,确认过程最少要进行三次通信。
【答案三】为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。
tcp 四次挥手释放连接
【tcp 释放连接全过程解释】
客户端发送 fin 给服务器,说明客户端不必发送数据给服务器了(请求释放从客户端到服务器的连接);
服务器接收到客户端发的 fin,并回复 ack 给客户端(同意释放从客户端到服务器的连接);
客户端收到服务端回复的 ack,此时从客户端到服务器的连接已释放(但服务端到客户端的连接还未释放,并且客户端还可以接收数据);
服务端继续发送之前没发完的数据给客户端;
服务端发送 fin+ack 给客户端,说明服务端发送完了数据(请求释放从服务端到客户端的连接,就算没收到客户端的回复,过段时间也会自动释放);
客户端收到服务端的 fin+ack,并回复 ack 给客户端(同意释放从服务端到客户端的连接);
服务端收到客户端的 ack 后,释放从服务端到客户端的连接。
tcp 为什么要进行四次挥手?
【问题一】tcp 为什么要进行四次挥手?/ 为什么 tcp 建立连接需要三次,而释放连接则需要四次?
【答案一】因为 tcp 是全双工模式,客户端请求关闭连接后,客户端向服务端的连接关闭(一二次挥手),服务端继续传输之前没传完的数据给客户端(数据传输),服务端向客户端的连接关闭(三四次挥手)。所以 tcp 释放连接时服务器的 ack 和 fin 是分开发送的(中间隔着数据传输),而 tcp 建立连接时服务器的 ack 和 syn 是一起发送的(第二次握手),所以 tcp 建立连接需要三次,而释放连接则需要四次。
【问题二】为什么 tcp 连接时可以 ack 和 syn 一起发送,而释放时则 ack 和 fin 分开发送呢?(ack 和 fin 分开是指第二次和第三次挥手)
【答案二】因为客户端请求释放时,服务器可能还有数据需要传输给客户端,因此服务端要先响应客户端 fin 请求(服务端发送 ack),然后数据传输,传输完成后,服务端再提出 fin 请求(服务端发送 fin);而连接时则没有中间的数据传输,因此连接时可以 ack 和 syn 一起发送。
【问题三】为什么客户端释放最后需要 time-wait 等待 2msl 呢?
【答案三】
(1)为了保证客户端发送的最后一个 ack 报文能够到达服务端。若未成功到达,则服务端超时重传 fin+ack 报文段,客户端再重传 ack,并重新计时。
(2)防止已失效的连接请求报文段出现在本连接中。time-wait 持续 2msl 可使本连接持续的时间内所产生的所有报文段都从网络中消失,这样可使下次连接中不会出现旧的连接报文段。
tcp 有限状态机
tcp 有限状态机图片
今天的分享就到这里了,大家要好好学c++哟~
酷派双棒T1拆解 做工用料如何
华为行业感知精彩亮相湖北省安全技术防范行业协会20周年庆
一文读懂是什么DCS(集散控制系统)
热过载继电器好坏判断方法
全球首个PSA认证的软硬件一体物联网解决方案发布
浅析C++基础语法梳理之计算机网络中传输管理(TCP)
DC-DC电压调整器CS5517T的特性及应用
如何在3D机器视觉应用中利用DLP?
l波段_l波段波长
小米手表 Color 支持血氧检测功能
粘结剂喷射3D打印技术的未来发展与市场运用
安科瑞光伏电站绝缘阻抗异常排查方案
AI在安防领域附加价值凸显,海康威视龙头地位进一步稳固
调查报告:2026年输配电领域拉动传感测量设备市场达48亿美元
ABB与阿克泰姆签署全球合作协议,将带来自动化与工业数字化解决方案
眼科骨科手术机器人助力智慧医疗发展
努比亚红魔3曝光 屏幕分辨率为2340×1080刷新率为90Hz
浅谈讯维音频延时器在工程中的五大用途!
巨头纷纷杀入AI战场,它究竟能否成为新宠?
腾讯跌破300港元 工业富联发行价也跌破