TCP三次握手

文章目录

目的

保证双方互相建立了连接。

场景

发生在客户端连接服务器的时候,当调用connect();时,底层会通过TCP协议进行三次握手。

  1. 客户端发送 和 服务器接收
  2. 客户端确定服务器可以收发,自己可以发送
  3. 服务器确定客户端可以收发,自己可以收发

    至少三次握手,四次握手也是可以的。四次握手可以将三次握手的第二次拆分。

第一次握手:

  1. 客户端将SYN标志位置1

  2. 生成一个随机32位的序号seq = j,这个序号后边是可以携带数据(数据的大小)
    第二次握手:

  3. 服务器端接收客户端的连接:ACK = 1

  4. 服务器会回发一个确认序号:ack = 客户端的序号+数据长度+SYN/FIN(按一个字节算)

  5. 服务器端会向客户端发起连接请求:SYN = 1

  6. 服务器会生成一个随机序号:seq = k
    第三次握手:

  7. 客户端应答服务器请求:ACK = 1

  8. 客户端回复收到了服务器端的数据:ack = 服务器序号+数据长度+SYN/FIN(按一个字节算)

SYN、ACK:标志位

seq:序号(生成规则查一下)

ack:确认号

seq = m(3)

ack = m+1(仅仅在SYN = 1\FIN = 1 的时候)

确保数据完整,并确保数据顺序

TCP头部结构

SYN:建立连接

ACK:确认

相关推荐
在路上@Amos1 天前
Linux 命令行查看 串口hex数据
linux·运维·服务器
人工智能训练1 天前
Linux 系统核心快捷键表(可打印版)
linux·运维·服务器·人工智能·ubuntu·容器·openeuler
rising start1 天前
三、FastAPI :POST 请求、用户接口设计与 Requests 测试
python·网络协议·http·fastapi
Vanranrr1 天前
C++临时对象与悬空指针:一个导致资源加载失败的隐藏陷阱
服务器·c++·算法
dualven_in_csdn1 天前
【疑难问题】某些win11机器 网卡统计也会引起dns client 占用cpu问题
运维·服务器·网络
6***v4171 天前
windows手动配置IP地址与DNS服务器以及netsh端口转发
服务器·windows·tcp/ip
翼龙云_cloud1 天前
亚马逊云渠道商:如何快速开始使用Amazon RDS?
运维·服务器·云计算·aws
老蒋新思维1 天前
创客匠人 2025 峰会深度解析:AI 赋能垂直领域,创始人 IP 变现的差异化路径
大数据·网络·人工智能·网络协议·tcp/ip·重构·知识付费
莽夫搞战术1 天前
Linux NAS 迁移避坑指南:放弃 chown -R,ID 映射让权限配置秒完成
linux·服务器