| |
|
开发:
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协议中三次握手的过程及原因 |
三次握手过程简述Client在打算建立TCP连接时,向server发出连接请求报文段,该报文段首部的SYN=1,seq=x(随机选取),随后client进入SYN-SENT状态,此为第一次握手。 Server收到连接请求报文段之后,如果同意建立连接,则向client发送确认报文段,该报文段首部的SYN=1,ACK=1,seq=y(随机选取),ack=x+1,随后server进入SYN-RCVD状态,此为第二次握手。 Client收到server的确认后,向server发送对收到的确认的确认报文段,该报文段首部的ACK=1,seq=x+1,ack=y+1,随后client进入ESTABLISHED状态,server收到确认后也进入ESTABLISHED状态,此为第三次握手。 (前两次握手不能携带数据,第三次握手可以携带数据,如果第三次握手不携带数据,则不消耗序号。) 为什么要三次握手?通过三次握手可以让通信双方都知道对方同意建立连接,并成功地协商一些参数(如初始序号,最大窗口值等)。如果只握手两次,将有一方无法确定对方是否已经收到它发送的报文段,这就不能保证参数协商的成功,自然也就不能保证可靠传输。另外,三次握手还避免了在网络中滞留的已失效的连接请求报文段突然传送到对方而产生错误,因为两次握手的情况下服务器收到连接请求并发送确认报文段后便进入连接已建立状态,开始分配系统资源等待接收数据,若连接请求是已失效的,则将会导致服务器资源被白白浪费,甚至还可能会接收到不该接收的数据。 |
|
网络协议 最新文章 |
使用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:46:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |