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

首先我们要了解其过程必须要了解它的6个标志位,一个Seq的序号和一个确认号

在这里插入图片描述

6个标志位

1.URG(紧急)
紧急指针有效,为1表示某一位需要被优先处理,用于保护TCP的连接不被种断,督促中间设备尽快处理数据
2.ACK(确认)
确认标志,表示确认收到请求 置1时表示确认号合法,为0时表示数据段中不包含确认信息,确认号被忽略。
3.PSH(传送)
数据包到达接收端后,直接发给应用程序。
4.RST(重制)
重置复位标志,用来复位那些产生错误的连接,也被用于拒绝错误和非法的数据包。
5.SYN(建立联机)
表示同步序号,用来建立连接。
6.FIN(结束)
表示发送端已经到达数据末尾,也就是说双方的数据传送完成。

序列号Seq

占4个字节,用来标记数据段的顺序,TCP把连接中的所有数据字节都编上一个序号,第一个编号就是本地随机产生,Seq就是第一个编号的序号。

确认号ack

占4个子节,期待收到对方下一个报文段的第一个数据字节的序号;确认号指的是期待接收到下一个字节的编号,因此当前报文段最后一个字节的编号+1就是确认号

当我们了解了这些标志位和这些序列号和确认号的时候,这时候我们便好理解TCP的三次握手

在这里插入图片描述

第一次握手: 建立连接时,客户端发送SYN包(syn=y)与序列号(seq=x)到服务器,并进入SYN_SENT状态(同步已发送)等待服务器的回复。

第二次握手: 服务器接受到来自客户端的SYN包与序列号后,必须确认客户的SYN包并回复一个确认号(ack=y+1),同时服务器自己也发一个SYN包与ACK包与序列号(syn=k ACK=1 seq=z),并进入SYN_RCVD状态(同步已接受)

第三次握手: 客户端收到服务器的SYN+ACK包后,向服务器发送确认包ACK(ack=z+1)与序号seq=x+1,此包发送完毕后,客户端与服务端进入ESTABLISHED状态(连接已建立) ,故完成TCP的三次握手。

四次挥手过程:
在这里插入图片描述
(1)客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加一)此时,客户端进入FIN-WAIT-1(终止等待1)状态。

(2)服务器收到连接释放报文,发送确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务器就进入CLOSE-WAIT(关闭等待)状态。TCP服务区通过高层的应用程序,客户端向服务就停止,这时客户端处在半关闭状态,客户端已经没有数据要发送了,但是服务端若发送数据,这个状态要持续一段时间,也是整个CLOSE-WAIT状态的持续时间。

(3)客户端收到服务器的确认请求后,客户端就进入FIN-WAIT-2状态,等待服务器发送连接释放报文。

(4)服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ACK=1,ack=u+1,由于客户端处于半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号seq=w,此时,服务端就进入了LAST-ACK(最后确认)状态,待客户端的确认。

(5)客户端收到服务端的连接释放报文后,必须发出确认ACK=1,ack=w+1,而自己的序列号为seq=u+1,此时,客户端进入了TIME-WAlT(时间等待)状态,注意,此时的TCP连接还没有释放,必须经过2MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。

(6)服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次TCP连接,服务端结束TCP比客户端要早。

这就是完整的TCP的三次握手四次挥手。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-20 12:54:25  更:2021-10-20 12:54:58 
 
开发: 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/15 19:35:57-

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