TCP的四次挥手与TCP状态转换

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

四次挥手场景

TCP客户端与服务器断开连接的时候,在程序中使用close()函数,会使用TCP协议四次挥手。

客户端和服务端都可以主动发起。

因TCP连接时候是双向的,所以断开的时候也是双向的。

步骤

TCP的四次挥手与TCP状态转换,Linux,tcp/ip,网络,网络协议
三次挥手可以吗?可以是可以,和状态有关。
四次挥手是用于客户端和服务器断开连接的时候,可以由客户端或者服务器任一方主动发起断开请求。
第一次挥手主动方发起,如客户端发起断开连接请求,服务器同意请求但还有数据发送的时候,可以继续发送,当服务器想断开连接的时候进行第三次挥手,发送断开连接请求,然后客户端应答。

三次握手为什么是三次不是四次?
三次握手由客户端主动发起,客户端请求连接的时候,服务器若不同意直接拒绝,若同意说明肯定也要请求和客户端建立连接,所以同意和请求连接一起传输,进行第二次握手,然后客户端同意服务器请求进行第三次握手。

TCP的四次挥手与TCP状态转换,Linux,tcp/ip,网络,网络协议

TCP状态转换

TCP的四次挥手与TCP状态转换,Linux,tcp/ip,网络,网络协议
TCP的四次挥手与TCP状态转换,Linux,tcp/ip,网络,网络协议
等2MSL目的是确保另一方收到同意断开请求,被动方发送FIN后没有收到ACK会重传FIN,直到收到ACK。

TCP的四次挥手与TCP状态转换,Linux,tcp/ip,网络,网络协议

握手与挥手/状态 Client Server
LISTEN
第一次握手 SYN_SENT –> LISTEN->SYN_RCVD
第二次握手 SYN_SENT->ESTABLISHED <– SYN_RCVD
第三次握手 ESTABLISHED –> SYN_RCVD->ESTABLISHED
数据传输
第一次挥手 ->FIN_WAIT_1 –> CLOSE_WAIT
第二次挥手 FIN_WAIT_1->FIN_WAIT_2 <– CLOSE_WAIT
第三次挥手 TIME_WAIT <– CLOSE_WAIT->LAST_ACK
第四次挥手 TIME_WAIT –> LAST_ACK

注意:文章来源地址https://www.toymoban.com/news/detail-635222.html

  • 连接三次握手主动发起方需要是客户端。
  • 断开连接请求的四次挥手主动发起方可以是客户端或者服务器的任一方。

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

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

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

相关文章

  • 【Linux网络】TCP/IP三次握手、四次挥手流程

    目录 一、三次握手,建立连接 二、四次挥手,断开连接 三、主要字段  1、标志位(Flags)  2、序号(sequence number)  3、确认号(acknowledgement number) 四、三次握手的报文变化 五、四次挥手的报文变化 六、面试题 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手,

    2024年02月08日
    浏览(39)
  • 4.23、TCP状态转换(为什么四次挥手)

    2MSL(Maximum Segment Lifetime) 主动断开连接的一方, 最后进入一个 TIME_WAIT状态, 这个状态会持续: 2msl msl : 官方建议: 2分钟 , 实际是 30s 当 TCP 连接主动关闭方接收到被动关闭方发送的 FIN 和最终的 ACK 后,连接的主动关闭方必须处于 TIME_WAIT 状态并持续 2MSL 时间。 这样就能够让 T

    2023年04月22日
    浏览(25)
  • TCP通讯(三次握手、四次挥手;滑动窗口;TCP状态转换;端口复用;TCP心跳检测机制)

     前言:建议看着图片,根据文字描述走一遍TCP通讯过程,加深理解。 目录 TCP通信时序: 1)建立连接(三次握手)的过程: 2)数据传输的过程: 3)关闭连接(四次挥手)的过程: 滑动窗口 (TCP流量控制): TCP状态转换: 半关闭: 2MSL: 程序设计中的问题: 端口复用:

    2024年02月03日
    浏览(74)
  • TCP/IP 三次握手&四次挥手详解,以及异常状态分析

    1.TCP/IP 三次握手 TCP/IP 三次握手过程 主要依靠IP协议报文中的 SYN ACK 两个标识位,SYN 表示是请求连接的报文,ACK 表示确认报文的请求 过程: 客户端处于 CLOSE 状态,服务器处于 LISTEN 状态,客户端向服务器发送请求连接报文,SYN=1 seq=x,发送成功后,客户端状态修改为 SYN_SEND

    2024年02月22日
    浏览(31)
  • tcp 的四次挥手

    TCP 通过四次挥手优雅的关闭连接 四次挥手也很好记,4/2 = 2 一遍两个,客户端发送2个请求,服务端发送2个请求。 在这个步骤我们也只需要记住两个单词,一个是 FIN 代表finish 标注的数据包,一个是ACK应答数据包 第一次挥手(FIN): 客户端或应用发起关闭连接的请求,向服

    2024年02月02日
    浏览(24)
  • 【Linux 网络】 传输层协议之TCP协议 && TCP的三次握手和四次挥手

    传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议 基于TCP应用层协议 HTTP HTTPS SSH Telnet FTP SMTP 源/目的端口号: 表示数据是从哪个进程来, 到哪个进程去 32位序号/确认序号:TCP的确认应答机制要使用到的字段,保证TCP的可靠

    2024年02月14日
    浏览(39)
  • OSI(七层)网络模型,三次握手四次挥手梳理,Socket.TCP/IP.HTTP三者说明

    目录 一   OSI网络模型 二   三次握手与四次挥手的简单理解 ● 常见问题梳理 三   Socket,TCP/IP,HTTP ① TCP/IP连接 ② HTTP连接 ③ Socket说明 ● 套接字(socket)概念 ● 建立socket连接 四   Socket连接与TCP/IP连接 五   Socket连接与HTTP连接 OSI网络模型也称七层网络模型 7 应用层

    2023年04月09日
    浏览(35)
  • Python入门【TCP建立连接的三次握手、 TCP断开连接的四次挥手、套接字编程实战、 TCP编程的实现、TCP双向持续通信】(二十七)

    👏作者简介:大家好,我是爱敲代码的小王,CSDN博客博主,Python小白 📕系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 🔥如果感觉博主的文章还不错的

    2024年02月12日
    浏览(32)
  • linux【网络编程】TCP协议通信模拟实现、日志函数模拟、守护进程化、TCP协议通信流程、三次握手与四次挥手

    Tcp通信模拟实现与Udp通信模拟实现的区别不大,一个是面向字节流,一个是面向数据报;udp协议下拿到的数据可以直接发送,tcp协议下需要创建链接,用文件描述符完成数据的读写 1.1.1 接口认识 1.1.1.1 listen:监听socket 1.1.1.2 accept:获取连接 通信就用accept返回的文件描述符,

    2024年02月06日
    浏览(41)
  • 详解TCP/IP的三次握手和四次挥手

    本文章讲解TCP/IP协议的三次握手和四次挥手的流程。 三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。 TCP协议位于传输层,作用是提供可靠的字节流服务

    2024年02月09日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包