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的三次握手与四次挥手

TCP报头

6位标志位 :

URG : 紧急指针是否有效,需配合16位紧急指针使用
ACK : 确认号是否有效
PSH : 提示接收端应用程序立刻从 TCP 缓冲区把数据读走
RST : 对方要求重新建立连接
SYN : 请求建立连接
FIN : 通知对方 , 本端要关闭了

TCP通讯流程?

三次握手

第一次握手:client端将报头的SYN标志位设置为1,产生一个序号值X,将X存入32位序号中,将该数据发送给server。

第二次握手:server端将报头的SYN标志位设位1,ACK的标志位设置为1,将X+1存入32位确认序号(表示X和X之前的数据都已经收到了,下次请求序号应该为X+1),如果server端也发送消息,就将其产生的序号值Y,存入32位序号,将该数据发送给client

第三次握手:将ACK标志位设为1,将Y+1存入32位确认序号,将该数据发送给server。

连接建立

四次挥手

第一次挥手:将FIN标志位设为1,将序号值X存入32位序号(client端发送数据到序号X就结束了,且之后也不会在有数据),将该数据发送给server。

第二次挥手:将ACK标志位设为1,将序号值X+1存入32位确认序号,将该数据发送给client。

第三次挥手:将FIN将FIN标志位设为1,将序号值Y存入32位序号(server端发送的最后一个字节的序号为Y),将该数据发送给client。

第四次挥手:将ACK标志位设为1,将序号值Y+1存入32位确认序号,将该数据发送给server。

断开连接

为什么是三次握手 ?

第一次握手表明client端具有发送数据的能力,第二次握手表明server端具有接受数据和发送数据的能力,第三次握手表明client端具有接受数据的能力。

所以三次握手是可以验证client端和server端的接受和发送能力的最小握手次数。

如果只有一次握手,那么client端无法确认server端是否收到了消息,因此client端可能会多次发送报文。同样,如果只有两次握手,那么server端无法确认client端是否收到报文,从而使server端多次发送报文。(造成SYN洪水)

如果进行三次以上的握手就会造成资源的浪费。

为什么是四次挥手?

断开链接的本质:双方达成断开链接的共识

client:我要断开链接了
server:好的
//等到server处理完client最后的数据后
server:我要断开链接了
client:好的

如果不返回ACK信息,那么那么server/client端不知道对方是否收到了要断开链接的消息。只有返回ACk确保双方收到了消息,才能保证链接的安全性。

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

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