网站首页 > 博客文章 正文
TCP是面向连接的协议,它基于运输连接来传送TCP报文段,TCP运输连接的建立和释放,是每一次面向连接的通信中必不可少的过程,建立连接时的数据包是没有实际内容的,没有应用层的数据。
- 三次握手-建立连接
三次握手图:
第一次握手:
客户端发送含有SYN=1,seq=m的报文传递给服务器端,并且进入SYN_SEND状态。
第二次握手:
确定连接:确定连接时服务端给客户端发一个数据报文,该数据包中SYN =1, ACK = m+1,seq=n,状态由 LISTEN 改为 SYN-RCVD。
拒绝连接:拒绝连接,会往客户端发一个数据包,该数据包中 RST 标志位为 1,客户端会报Connection refused。
丢弃该数据包:丢弃客户端的数据包,超过一定时间后客户端会报Connection timeout
第三次握手:
客户端收到服务器端的SYN=1的数据包,并且给服务端响应一个报文,该数据包中SYN =1, ACK = n+1,seq=m+1,进入Established状态。
- 四次挥手-关闭连接器
客户端、服务端都可以主动发起断开连接
四次挥手图:
第一次挥手:
客户端向服务端发送数据包,该数据包中FIN=1、seq=m,此时客户端状态由ESTABLISHED-->>FIN_WAIT_1。
第二次挥手(此次只能说明服务端收到客户端的断开请求而不做任何决定):
服务端收到客户端含有FIN=1标志位的数据包,此时知道客户端需要断开连接,服务端会向客户端发送应答数据包,改数据包中ACK=1,ack=m+1,seq=n,此时服务端状态由ESTABLISHED-->CLOSE_WAIT,此时客户端状态由 FIN_WAIT_1 变为 FIN_WAIT_2。
第三次挥手:
服务端再次向客户端发送一个数据包,该数据包中FIN=1、ACK=1、ack=m+1、seq=w。客户端现断开连接并释放资源,此时服务端状态由CLOSE_WAIT-->>LAST_ACK。
第四次挥手:
客户端收到服务端再次发送的消息 FIN=1 标志位的数据包,说明服务端同意断开连接,但是客户端为了慎重起见,不会立马关闭连接,而是改状态,并且向服务端发送信息 ACK=1 标志位的应答数据包,ack=w+1,seq=m+1,此时客户端状态由 FIN_WAIT_2 -->> TIME_WAIT。
猜你喜欢
- 2024-09-23 TCP协议三次握手的理解(tcp三次握手的通俗理解)
- 2024-09-23 前端面试—TCP协议的三次握手(tcp协议三次握手的工作原理)
- 2024-09-23 TCP/IP协议基础:深入理解三次握手过程及其重要性
- 2024-09-23 网络协议、三次握手四次挥手介绍(网络协议 三次握手)
- 2024-09-23 TCP协议的三次握手(tcp协议的三次握手建立连接的工作原理)
- 2024-09-23 TCP的三次握手到底是什么流程(tcp三次握手的通俗理解)
- 2024-09-23 协议设计系列-TCP的三次握手和挥手
- 2024-09-23 TCP协议的三次握手(建立连接)和四次挥手(关闭连接)
- 2024-09-23 TCP/IP协议握手原理(tcp udp 握手)
- 2024-09-23 TCP协议 - 三次握手,四次挥手和重要的细节(一)
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)