TCP三次握手与四次挥手

TCP三次握手与四次挥手
TCP三次握手与四次挥手解析

TCP三次握手与四次挥手、流量控制(滑动窗口)、拥塞控制、半连接状态、2MSL

TCP三次握手与四次挥手

TCP标志位:

标志位 含义
SYN 建立连接
ACK 响应确认
FIN 结束
RST 重置
PSH 推送
URG 紧急

TCP 三次握手(TCP Three-Way Handshake)

  1. 客户端发送同步序列号(SYN)报文: 客户端发送一个TCP报文,其中SYN位被置为1,表示请求建立连接。同时,客户端会选择一个初始序列号(ISN,Initial Sequence Number)。

  2. 服务器回应同步序列号(SYN)和确认序列号(ACK)报文: 服务器收到客户端的SYN报文后,如果同意建立连接,会以自己的SYN报文作为应答,并将确认序列号设置为客户端的ISN加1,同时自己也选择一个初始序列号。

  3. 客户端发送确认序列号(ACK)报文: 客户端收到服务器的SYN报文后,会发送一个带有ACK的报文,确认收到了服务器的连接应答。服务器收到这个报文后,完成三次握手,连接建立。

TCP 四次挥手(TCP Four-Way Handshake)

  1. 客户端发送结束连接报文(FIN): 客户端完成所有数据的发送后,发送一个带有FIN标志的TCP报文,表示数据发送完毕,请求断开连接。

  2. 服务器确认结束连接报文(ACK): 服务器收到客户端的FIN报文后,发送一个带有ACK的报文,表示已经接收到断开连接的请求。

  3. 服务器发送结束连接报文(FIN): 服务器在完成数据发送后,也向客户端发送一个带有FIN标志的报文,请求断开连接。

  4. 客户端确认结束连接报文(ACK): 客户端收到服务器的FIN报文后,发送一个带有ACK的报文,确认收到了服务器的断开请求。此时,连接完全断开。

以上过程是TCP连接的建立和断开的基本流程。在实际应用中,可能会有一些优化和调整,但这是基本的握手和挥手过程。

TCP三次握手与四次挥手解析

客户端连接服务器(三次握手)

第一个阶段 初始链接阶段

第一次握手

复制代码
SYN, seq=x

客户端 连接connect() 带上序列号X给服务器消息,客户端进入SYN-SEND的同步发送状态

第二次握手

复制代码
SYN, seq=y, ACK=x+1

服务器 侦听listen() 相关的端口,通常HTTP协议请求端口,80端口和HTTPS的443端口

服务器监听到端口应用收到了消息后,给客户端回复带上自己的序列号Y,并带上ACK确认码(应答信号)为客户端带来的序列号+1

服务器进入SYN-RCVD的同步已回复状态

第三次握手

复制代码
ACK=y+1

客户端收到了服务器的回复,带上服务器回复的序列号+1的确认码发送给服务器,建立链接成功,就可以进行数据的传递了

客户端关闭与服务器连接(四次挥手)

四次挥手是当客户端打算关闭连接

第一次挥手

客户端会主动带上握手时客户端确认码作为序列号发送给服务器断开连接

复制代码
seq=u

客户端进入结束等待为 1的状态 FIN-WAIT-1

第二次挥手

服务器收到了客户端断开消息,会带上自己的序列号v,即客户端带来的序列号+1,作为确认码回复给客户端

复制代码
seq=v, ACK=u+1

服务器进入CLOSE WAIT等待关闭的状态

客户端进入继续等待为 2的状态 FIN-WAIT-2

第三次挥手

服务器没有进一步的消息发送时,带上序列号w和客户端带来的序列号+1的确认码给客户端发送关闭请求

复制代码
seq=w, ACK=u+1

然后服务器进入LAST-ACK 最后确认状态

第四次挥手

客户端收到了服务器的关闭请求后,带上服务器最后一次发送的序列号+1,和序列号+1的确认码回复服务器

复制代码
seq=w+1, ACK=u+1

于是服务器关闭了链接

客户端进入了定时等待时间TIME_WAIT,即两个报文的最大生存周期时间,根据操作系统不同大约时1-4分钟,之后客户端才真正的断开

总结

当输入网站按下回车

第一步 是DNS找域名对应的IP

接下来三次握手 进入初始链接阶段

每次链接都要经历TCP/IP七层模型

连接初始成功后

进入第二阶段 SSL的加密协议的证书协商阶段

接下来是服务器准备我们需要的内容,准备好内容后,就是客户端下载内容阶段

相关推荐
nxb55617 小时前
haproxy算法,ip透传,自定义haproxy错误页面
运维·服务器
黑桃小柒719 小时前
小,最终显示为TCP WINDOW FULL,TCP ZeroWindow。 仔细分析了下LWIP源码,还以为是内存管理出了问题,跟 ...
网络·网络协议·tcp/ip
网络研究院21 小时前
LastPass 发布紧急安全预警:针对主密码的活跃网络钓鱼攻击正在进行中
网络·安全·黑客·攻击·漏洞·风险·钓鱼
便利店10241 天前
TCP 为什么有时故意跑不快?拥塞控制与滑动窗口一次讲清
服务器·网络协议·tcp·拥塞控制
向夏威夷 梦断明暄1 天前
【高效管理token成本】OpenClaw精细化分库管理memory以减少token成本的方案的可行性研究
网络
杨某不才1 天前
如何能让Linux服务器对shell 终端 + sftp 文件传输长期保活
linux·运维·服务器
vance041 天前
免费Cloudflare隧道隐藏公网IP
linux·tcp/ip·github
三言老师1 天前
文本工具组合统计服务器日志数据
linux·运维·服务器
m0_743697591 天前
DNS服务器
运维·服务器
酷可达拉斯1 天前
Linux操作系统-免密登录远程操作系统
linux·运维·服务器·网络·云计算