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日
    浏览(33)
  • 计算机网络—TCP和UDP、输入url之后显示主页过程、TCP三次握手和四次挥手

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

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

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

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

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

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

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

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

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

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

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

    2024年02月10日
    浏览(24)
  • TCP的三次握手以及四次断开

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

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

    三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立T

    2024年02月13日
    浏览(24)
  • 【TCP】三次握手 与 四次挥手 详解

    在正常情况下,TCP 要经过三次握手建立连接,四次挥手断开连接 服务端状态转化: [CLOSED - LISTEN] 服务器端调用 listen 后进入 LISTEN 状态,等待客户端连接; [LISTEN - SYN_RCVD] 一旦监听到连接请求(同步报文段 SYN),就将该连接放入内核等待队列中,并向客户端发送 SYN + ACK 确认

    2024年02月07日
    浏览(21)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包