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的相关知识。

? ? ? ? ? ? 另外能够看出你自己能思考问题并在寻求答案。

结果
?

TCP为什么要三次握手?

思考的角度:

? ? ? ? ? ? ? ? ? ? ? ? 从TCP的设计目的

? ? ? ? ? ? ? ? ? ? ? ? TCP格式的数据内容

? ? ? 因为TCP是全双工通信,是可靠交付的,需要知道双方的起始序列号【从那个数据开始发送的】,这样才能保证数据的有头有尾,数据就不会乱,就不会产生差错,丢失等情况 。

? ? ?

? ? ?第三次握手是客户端发送给服务器的,发送的是ack=y+1,【?y是服务器的序列号】,表明我已经知道了你的服务器的数据的序列号了。

过程

知识储备

ACK-(ACKnowledgment)确认
SYN:(SYNchronization) 同步
Seq:sequence ?序列号

握手前的准备

监听状态----服务器


? ? ? 首先服务端需要开启监听,等待客户端的连接请求,这个时候服务端处于“收听”状态;
?

?过程

#----------第一次握手 ? ? ?【SYN=1 + seq=x 】? ? ? ? ?客户端---》服务器
状态:“同步已发送”? ? 状态------------客户端
解释:? 客户端向服务端发起连接,发送连接请求报文段?
? ? ? ? ? ? ? 同步位SYN=1 ?+ 初始序列号seq=x ,此时客户端处于“同步已发送”的状态;
?

#-------------第二次握手 ? 【ack=x+1 seq=y 】? ? ? ? ? ?服务器---》客户端
状态:? “同步收到”? ?状态-------服务端
解释:? ?服务端收到客户端的连接请求,同意连接并向客户端发送确认报文。
? ? ? ? ? ? ? ?确认号是 ack=x+1 表示,当前所发送的x个数据已经收到了,客户端可以发送下一个数据包序号从 x+1 开始,同时选择自己的初始序列号 seq=y ,此时服务端处于“同步收到”状态

#----------------第三次握手 【ack=y+1 seq=x+1 】? ? ? 客户端---》服务器
状态:?“已建立连接”? ?状态------客户端
解释:? 客户端收到服务端的确认后,向服务端发送确认信息。
? ? ? ? ? ? ? 确认号是 ack=y+1 当前所发送的y个数据已经收到了,服务端可以发送下一个数据包序号从 y+1 开始,此时客户端处于“已建立连接”的状态;

在第三次握手后服务器接收到客户端的数据

#--------------双方已建立连接?
状态:? ? “已建立连接”? ??状态-------服务端
? 解释:? ?服务端收到客户端的确认后,也进入“已建立连接”的状态。

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

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