| |
|
开发:
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的三次握手和四次断开详解 |
TCP:传输控制协议----是一种面向连接的、可靠的、基于字节流的传输层通信协议一.TCP三次握手? ?所谓的三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。整体流程如图: 第一次握手? ? 建立连接时,客户端发送syn包到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手? ? 服务器收到syn包,必须确认客户的SYN,同时自己也发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手? ? 客户端收到服务器的SYN_ACK包,向服务器发送确认包ACK,此时包发送完毕,客户端贺1服务端进入ESTABLISHED状态,完成三次握手; 为什么要进行三次握手?? ? 为了保证客户端发送的最后一个ACK报文能够到达服务端。三次握手才能确认两方都准备好了。 二.TCP四次挥手? 第一次挥手? ? ?客户端向服务端发送一个FIN报文段;然后,客户端进入FIN_WAIT_1状态,这表示客户端没有数据要发送给服务端了; 第二次挥手? ? 服务端收到客户端发送的FIN报文段,向客户端回一个ACK报文段;客户端进入FIN_WAIT_2状态;服务端告诉客户端,我“同意”你的关闭请求; 第三次挥手? ? 服务端向客户端发送FIN报文段,请求关闭连接,同时服务端进入FIN_ACK状态; 第四次挥手? ? 客户端接收到服务端发送的FIN报文段,向服务端发送ACK报文段,然后客户端进入TIME_WAIT状态;服务端接收到客户端的ACK报文段以后,就关闭连接;此时,客户端等待2MSL后依然没有收到回复,则证明server端已正常关闭,那么,客户端也可以关闭连接了; 这就是TCP的三次握手和四次断开的基本过程。 ? |
|
网络协议 最新文章 |
使用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/25 22:56:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |