当前位置:   article > 正文

TCP:三次握手 、四次挥手断开的过程

TCP:三次握手 、四次挥手断开的过程

还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。

在这里插入图片描述

在这里插入图片描述

文章目录

    • TCP三次握手过程
    • 四次握手断开连接

在这里插入图片描述

TCP三次握手过程

  1. 第一次握手
    客户端(通常是Web浏览器)想要与服务器(通常是Web服务器)建立TCP连接时,会随机生成一个初始序列号(Sequence Number,简称seq),然后向服务器发送一个SYN(同步序列编号)报文段。报文段中包含客户端的初始序列号(ISN)。此时,客户端进入SYN_SENT状态。

    客户端 -> 服务器: SYN(seq=x)
    
    • 1
  2. 第二次握手
    服务器接收到客户端的SYN报文段后,如果同意建立连接,则回复一个SYN+ACK(同步确认)报文段。这个报文段包含服务器的初始序列号(ISN),以及确认号(Acknowledgment Number,ack),确认号是客户端的初始序列号加1,表示服务器已经接收到了客户端的SYN报文段。服务器进入SYN_RECEIVED状态。

    服务器 -> 客户端: SYN(seq=y), ACK(ack=x+1)
    
    • 1
  3. 第三次握手
    客户端收到服务器的SYN+ACK报文段后,会再次发送一个ACK报文段,确认号设置为服务器的初始序列号加1,表示客户端已经收到了服务器的SYN报文段。此时,客户端进入ESTABLISHED状态。当服务器接收到客户端的ACK报文段后,也进入ESTABLISHED状态,至此,TCP连接成功建立。

    客户端 -> 服务器: ACK(ack=y+1)
    
    • 1

在HTTP通信过程中,浏览器发起HTTP请求前,首先就是通过TCP三次握手与服务器建立可靠的连接,然后在这个连接上传输HTTP消息。而在HTML文档加载的过程中,浏览器会基于已经建立好的TCP连接去获取HTML文件及相关的CSS、JavaScript、图片等资源。

四次握手断开连接

TCP四次挥手断开连接的过程如下:
在这里插入图片描述

  1. 第一次挥手(FIN)

    • 客户端(或其他一端)决定关闭连接时,它会发送一个FIN(Finish)报文段给服务器端。FIN报文段表明这一端已经没有更多的数据要发送了,但仍然能够接收从服务器端发来的数据。
    • 发送FIN报文后,客户端进入FIN_WAIT_1状态。
  2. 第二次挥手(ACK)

    • 服务器端收到客户端的FIN报文后,会回应一个ACK(Acknowledgment)报文段,确认号(ACKnowledgment Number)设置为收到的FIN报文段的序列号加1,表示已经收到客户端关闭连接的请求。
    • 服务器端进入CLOSE_WAIT状态,等待应用程序关闭相应连接上的数据传输,并准备向客户端发送自己的FIN报文。
  3. 第三次挥手(FIN)

    • 服务器端完成所有数据发送任务并准备好关闭连接时,也会发出一个FIN报文段给客户端,通知客户端自己也要关闭连接了。
    • 发送FIN报文后,服务器端进入LAST_ACK状态,等待客户端确认收到它的FIN报文。
  4. 第四次挥手(ACK)

    • 客户端收到服务器端的FIN报文后,同样回应一个ACK报文段,确认号设置为服务器端FIN报文段的序列号加1。
    • 客户端在发送这个ACK报文后,进入TIME_WAIT状态,等待足够长的时间以确保服务器端能收到这个确认报文,并且在此期间内,若服务器端未收到ACK,可能会重发FIN报文,客户端可以再次确认。
    • 服务器端一旦收到客户端对FIN报文的确认,即ACK报文,便知道双方都同意关闭连接,因此可以安全地关闭连接,进入CLOSED状态。
    • 客户端在TIME_WAIT状态等待一段时间后(通常为MSL,即Maximum Segment Lifetime,报文段最大生存时间),如果没有收到任何异常报文,则认为连接已经完全关闭,最终也会进入CLOSED状态。

总结来说,四次挥手是为了确保双方都能有序且无歧义地结束连接,并且确保在连接彻底关闭之前,网络中滞留的报文段都能够得到妥善处理。这个过程保证了TCP连接的可靠性和完整性。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/331016
推荐阅读
相关标签
  

闽ICP备14008679号