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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> tcp的三次握手和四次挥手 -> 正文阅读

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

三次握手
第一次握手:
客户端和服务端都是close状态,服务器端首先进入端口监听模式,客户端随机开启一个端口向服务器发送一条建立连接报文,报文中含有 SYN=1,seq=x, SYN表示建立一个新的请求控制段,seq表示传输报文段的第一个数据字节,发送完成后客户端进入SYN_SENT状态,表示客户端已经发送一个连接请求段,等待回复
第二次握手:
服务器返回报文段SYN=1,ACK=1,seq=y,ack_seq=x+1, SYN表示同意建立新连接;ACK表示确认序号有效;seq表示服务器通知客户端 服务器的序列号为y;ack_seq表示已经接收了序列号为x的报文段,准备接收x+1的报文段,服务器状态由listen状态变为SYN_RCVD(同步收到)
第三次握手:
客户端向服务器发送同意建立连接报文段,确认报文 报文包含 ACK=1,seq=x+1,ack_seq=y+1
表示确认序号有效,此次报文段的序号是x+1,ack_seq表示期望接收序号为y+1的数据
当客户端发送ACK时,客户端进入ESTALISHED状态,
服务器也进入EDTABLISHED状态
注意:第三次握手客户端可以添加数据

四次挥手(连接拆除)
第一次挥手:
客户端向服务器发送释放连接报文段 FIN=1,seq=u;分别代表FIN=1发送端数据发送完毕,请求释放连接,seq=u传输的第一个数据字节的序号是u,客户端状态由Established进入Fin_Wait_1,进入等待1状态,只能进行收数据不能进行发数据(不是报文段)
第二次挥手:
由服务器向服务器发送确认段,Ack=1,seq=v,ack_seq=u+1,分别代表ACK确认序号有效;ack_seq=u+1;服务器期望接收客户数据序号为u+1;seq=v服务器传输序号是v,服务器状态有Established进入close_Wait 关闭等待(可以继续发送数据),客户端收到Ack状态后,由Fin_Wait进入Fin_Wait_2状态(能收不能发数据)
第三次挥手:
服务器向客户发送释放连接报文段,其中包括FIN=1,Ack=1,seq=w,ack_seq=u+1 依次表示Fin=1:请求释放连;ACK=1:确认字号段有效;ack_seq=u+1:表示服务器期望接收客户数据序号为u+1;seq=w:表示自己传输的第一个数据字节的序号是w。 服务器状态由Close_Wait进入Last_ACK(最后确认状态)
第四次挥手:
客户向服务器发送确认段,其中包括ACK=1,seq=u+1,ack_seq=w+1,依次代表Ack=1:确认序号有效;ack_seq=w+1:表示客户端期望接收服务器数据序号为w+1;seq=1:表示客户传输的数据序号是u+1
客户端状态由Fin_Wait_2进入Time_Wait,等待2MSL时间,进入Close状态。
服务以在收到最后一次的Ack,由Last_Ack进入Close状态

第二次挥手表示是对第一次客户端挥手的确认
第三次挥手表示服务器想请求断开连接

msl 参考
https://blog.51cto.com/u_10706198/1775555

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-14 16:19:48  更:2021-12-14 16:20:23 
 
开发: 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年10日历 -2024/10/5 7:13:10-

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