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

这篇具有很好参考价值的文章主要介绍了TCP:三次握手 、四次挥手断开的过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

TCP:三次握手 、四次挥手断开的过程,# Network 灰鸽宝典,tcp/ip,网络协议,网络

No. 内容链接
1 Openlayers 【入门教程】 - 【源代码+示例300+】
2 Leaflet 【入门教程】 - 【源代码+图文示例 150+】
3 Cesium 【入门教程】 - 【源代码+图文示例200+】
4 MapboxGL【入门教程】 - 【源代码+图文示例150+】
5 前端就业宝典 【面试题+详细答案 1000+】

TCP:三次握手 、四次挥手断开的过程,# Network 灰鸽宝典,tcp/ip,网络协议,网络

TCP:三次握手 、四次挥手断开的过程,# Network 灰鸽宝典,tcp/ip,网络协议,网络

TCP三次握手过程

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

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

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

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

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

四次握手断开连接

TCP四次挥手断开连接的过程如下:
TCP:三次握手 、四次挥手断开的过程,# Network 灰鸽宝典,tcp/ip,网络协议,网络

  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连接的可靠性和完整性。文章来源地址https://www.toymoban.com/news/detail-844048.html

到了这里,关于TCP:三次握手 、四次挥手断开的过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【计算机网络经典面试题】简述 TCP 三次握手和四次挥手的过程

    1)第一次握手:建立连接时,客户端向服务器发送SYN包(seq=x),请求建立连接,等待确认 2)第二次握手:服务端收到客户端的SYN包,回一个ACK包(ACK=x+1)确认收到,同时发送一个SYN包(seq=y)给客户端 3)第三次握手:客户端收到SYN+ACK包,再回一个ACK包(ACK=y+1)告诉服务

    2024年04月08日
    浏览(58)
  • 计算机网络—TCP和UDP、输入url之后显示主页过程、TCP三次握手和四次挥手

    TCP是面向连接的、可靠的,基于字节流的传输层通信协议 。 图片来源小林coding 序号:传输方向上字节流的字节编号。初始时序号会被设置一个随机的初始值(ISN),之后每次发送数据时,序号值 = ISN + 数据在整个字节流中的偏移。假设A - B且ISN = 1024,第一段数据512字节已经

    2024年02月14日
    浏览(49)
  • TCP 三次握手:四次挥手

    TCP 三次握手/四次挥手 TCP 在传输之前会进行三次沟通,一般称为“三次握手”,传完数据断开的时候要进行四次沟通,一般称为“四次挥手”。 数据包说明 源端口号( 16 位):它(连同源主机 IP 地址)标识源主机的一个应用进程。 目的端口号( 16 位):它(连同目的主机

    2024年01月19日
    浏览(43)
  • TCP三次握手四次挥手

    目录 一、基础理论 1、TCP的标志位 2、TCP的状态码 二、TCP连接的建立与释放 1、三次握手 第一次握手: 第二次握手: 第三次握手: 2、四次挥手 第一次挥手: 第二次挥手: 第三次挥手: 第四次挥手: 三、更多面试题参考 标志位 含义 SYN(synchronous) 在建立连接时使用,表示

    2024年02月19日
    浏览(50)
  • TCP 三次握手&四次挥手浅析

    大家都知道传输层中的TCP协议是面向连接的,提供可靠的连接服务,其中最出名的就是三次握手和四次挥手。 三次握手的交互过程如下 喜欢钻牛角尖的我在学习三次握手的时候就想到了几个问题:为什么三次握手是三次?不是一次、两次或者更多?如果是两次或者是一次会

    2024年02月15日
    浏览(91)
  • TCP的三次握手、四次挥手

    首先我们要知道建立连接的目的是什么,我们是为了可靠的传输数据。那既然是可靠的传输数据,我们必须保证客户端和服务端都能正常的发送和接收数据,如果某一方不能正常的发送或者接收数据,那整个数据的传输就不能成功,也就不可靠。 三次握手 1.第一次握手:第一

    2024年02月10日
    浏览(45)
  • TCP的三次握手,四次挥手

    第一次握手:客户端发送SYN报文,井发送seq为x序列号给服务端,等待服务端的确认 第二次握手:服务端发送SYN+ACK报文,并发送seq为Y的序列号,在确认序列号为x+1 第三次握手:客户端发送ACK报文,并发送seq序列号为z,在确认序列号为y+1 第一次挥手:先由客户端向服务器端发

    2024年01月18日
    浏览(76)
  • TCP的三次握手以及四次断开

    TCP的三次握手和四次断开,就是TCP通信建立连接以及断开的过程 目录 【1】TCP的三次握手过程  ----  TCP建立连接的过程 【2】TCP的四次挥手  ----  TCP会话的断开 注意: 三次握手的过程 :         通信双方发送请求序列号,并且确认收到序列号的过程 第一次握手 :      

    2024年02月14日
    浏览(44)
  • TCP三次握手和四次挥手

    序列号:建立连接时计算机随机生成的随机数作为初始值,通过SYN包传给接收端主机,每发送一次数据就累加一次该数据字节数的大小。 用来解决网络包乱序问题 。 确认应答号:指下一次期望收到的数据的序列号,发送端收到这个确认应答以后认为在这个序号以前的数据都

    2023年04月11日
    浏览(92)
  • TCP连接管理(三次握手,四次挥手)

    源端口号 (Source Port):16 位字段,表示发送方的端口号。 目的端口号 (Destination Port):16 位字段,表示接收方的端口号。 序列号 (Sequence Number):32 位字段,表示发送方发送的字节流的序列号。用于实现数据的可靠传输和顺序传递。 确认号 (Acknowledgment Number):32 位字

    2024年02月13日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包