| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 三次握手和四次挥手 -> 正文阅读 |
|
[网络协议]三次握手和四次挥手 |
三次握手:????????第一次握手: ????????首先客户端给服务端发送连接请求报文,在这个报文中,有SYN,seq=任意值i,发送之后就处于SYN-SENT状态。 ????????第二次握手: ????????服务端接收到了这个请求,这个时候服务端确认了客户端的发送和自己的接收是没有问题的,之后返回给客户端SYN和ACK报文,且小ack=i+1,这个时候处于SYN-RCVD状态。 ????????第三次握手: ????????客户端收到了服务端发送的ACK信息之后,确认了自己的发送。自己的接收、服务端的发送和服务端的接收是没有问题的,之后回给服务端一个ACK报文,之后建立连接,进established状态。且服务器收到客户端的ACK之后确认了客户端的接收和自己的发送没有问题的。 ? 四次挥手????????第一次挥手: ????????当客户端没有数据要发送给服务端的时候,就会给服务端发送一个FIN报文,告诉服务端:“我已经没有数据要发送了,但是你要是还想给我发数据的话,就接着发,但是要告诉我你接收到了FIN我关闭的消息”,之后,客户端进入了FIN_WAIT1状态。 ????????第二次挥手: ????????当服务端收到了客户端发送来的FIN报文之后,就会回给客户端一个ACK消息,并且ack=seq+1,这是第二次挥手,挥手完之后服务端进入CLOSE_WAIT阶段,而客户端处于FIN_WAIT2状态。 ????????第三次挥手: ????????当服务端发送完所有的数据时,他会给客户端发送一个FIN报文,告诉客户端“我已经传完所有数据,现在要关闭连接”,然后服务端编程LAST_ACK状态,等待着客户端最后的ACK信息。这是第三次挥手。 ????????第四次挥手: ????????当客户端收到这个FIN报文时,就会给服务端发送ACK信息,之后进入TIME_WAIT状态,这是为了防止最后一次FIN报文丢失,保证服务器没收到ACK消息可以重传。而当服务端收到这个ACK信息之后就正式关闭了tcp连接,处于CLOSED状态。而客户端等待了2MSL之后还是没有收到消息就知道服务端已经关闭了,于是他自己就断开,这是第四次挥手。 ? |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/26 9:56:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |