IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 三次握手和四次挥手 -> 正文阅读

[网络协议]三次握手和四次挥手


参考链接

https://baijiahao.baidu.com/s?id=1654225744653405133&wfr=spider&for=pc
https://blog.csdn.net/sanwe3333/article/details/110110006

名词注释

序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。
确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。
标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:
URG:紧急指针(urgent pointer)有效。
ACK:确认序号有效。
PSH:接收方应该尽快将这个报文交给应用层。
RST:重置连接。
SYN:发起一个新连接。
FIN:释放一个连接。


一、三次握手

在这里插入图片描述
1、客户端和服务端双方都属于Closed阶段,服务端被动打开以后,进入Listen阶段。
2、客户端发送TCP报文,标志位为为SYN,请求建立新的连接,序号为Seq=x。随后客户端进入SYN-SENT阶段。
3、服务端收到消息后,结束Listen阶段,返回一段TCP报文。标志位为SYN和ACK,表示确定报文Seq需要有效,并统一创建新的连接;序号为Seq=y;确认号为Ack=x+1。随后服务端进入SYN-RCVD阶段。
4、客户端接收到消息后,明确了消息连接是正常的,结束SYN-SENT阶段,并返回一段TCP报文:标志位ACK表示收到了信号;序号Seq=x+1表示收到了服务端的确认信号,并将其作为自己的序号值;确认号为Ack=y+1,表示收到服务端序号Seq,并将其值加1作为自己的确认号Ack的值。
5、随后双方进入ESTABLISHED阶段。


二、四次挥手

在这里插入图片描述
1、客户端发送TCP报文,标记位为FIN,表示请求释放连接;序号为Seq=U;随后客户端进入FIN-WAIT-1阶段。
2、服务器收到信息,也结束ESTABLISHED阶段,进入CLOSE-WAIT阶段并返回一段报文。标记位为Ack,序号为Seq=V,确认号为Ack=U+1,表示将客户端报文的序号Seq加1作为本段报文确认号Ack的值。随后服务端开始准备释放连接,而客户端收到信息后,也会结束FIN-WAIT-1阶段,进入FIN-WAIT-2阶段。
3、服务端再次发送一段报文,标记位为FIN、ACK,表示已经准备好释放连接;序号Seq=W;确认号Ack=U+1。
随后服务器端结束CLOSE-WAIT阶段,进入LAST-ACK阶段。
4、客户端收到从服务器端发出的TCP报文,确认了服务器端已做好释放连接的准备,结束FIN-WAIT-2阶段,进入TIME-WAIT阶段,并向服务器端发送一段报文。标记位为Ack,表示收到了释放信号;需要为Seq=U+1,表示将服务端报文的确认号加1作为本段报文序号;确认号为Ack=W+1,表示将服务端报文序号Seq值作为本段报文确认号的值。
5、随后客户端开始在TIME-WAIT阶段等待2MSL(MSL为最大报文段生存时间,LWIP为1分钟,windows为2分钟),然后才进入CLOSED,删除TCP控制块。在2MSL等待时间内迟到的报文段将被抛弃
6、服务器端收到从客户端发出的TCP报文之后结束LAST-ACK阶段,进入CLOSED阶段。由此正式确认关闭服务器端到客户端方向上的连接。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:35:43  更:2021-07-27 16:36:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 9:41:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码