TCP:TCP连接的建立与终止

TCP连接的建立与终止

T C P是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。本文将详细讨论一个T C P连接是如何建立的以及通信结束后是如何终止的。
如何使用抓包工具 wireshark

建立连接

为了建立一个TCP连接:

第一次握手

  1. 请求端发送一个S Y N段指明连接的服务器的端口,以及初始序号(ISN)。这个SYN段为报文段1。
    使用抓包工具得到以下内容,可以看到:
    1. 指定了源端口和目标端口,什么?怎么没有IP地址,IP地址在IP首部呢!
    2. 序号为 1514758884,序号并不从0开始,而是生成ISN序号为什么不从0开始?
    3. SYN=1 表明这是一个连接请求或连接接受报文
    4. 窗口大小声明为 64240

第二次握手

  1. 服务器发回包含服务器的初始序号的S Y N报文段(报文段2)作为应答。同时,将确认
    序号设置为客户的I S N加1以对客户的S Y N报文段进行确认。一个S Y N将占用一个序号。
    使用抓包工具得到以下内容,可以看到:
    1. 指定了源端口(22)和目标端口(60378)
    2. 序号为 3444481880
    3. ACK=1,表明确认号ack有效,ack=151475885,即发来的报文序号1514758884+1
    4. SYN=1 表明这是一个连接请求或连接接受报文
    5. 窗口大小声明为64240

第三次握手

  1. 客户必须将确认序号设置为服务器的I S N加1以对服务器的S Y N报文段进行确认(报文
    段3)。
    使用抓包工具得到以下内容,可以看到:
    1. 同样指定了源端口和目标端口
    2. 序号为 1514758885
    3. ACK=1,表明确认号ack有效,ack=3444481881,即发来的报文序号3444481880+1
    4. SYN=0 表明这不是一个连接请求或连接接受报文,服务器连接请求和连接接受发生在第二次握手时。
    5. 窗口大小声明为513,为什么这么小呢?这个流量控制有关。

一个整体的流程图:

终止连接

建立一个连接需要三次握手,而终止一个连接要经过 4次挥手 。这由T C P的半关闭(h a l f - c l o s e)造成的。一个T C P连接是全双工(即数据在两个方向上能同时传递),因此每个方向必须单独地进行关闭。

如图,为抓包工具显示内容:这就是四次挥手的过程

第一次挥手

  1. 我从服务器进行断开连接的,故而先由服务器主动关闭连接。当一方完成数据传输并想要关闭连接时,它会发送一个FIN(结束)标志的数据包。这个FIN标志表示发送方已经完成了数据发送,但仍然可以接收数据。

第二次挥手

  1. 收到FIN标志的一方会在处理完剩余数据后,再发送一个带有ACK(确认)标志的数据包以确认收到了FIN。

第三次挥手

  1. 此时,如果应用程序不调用c l o s e而调用s h u t d o w n,且第2个参数值为1,则socket的A P I支持半关闭。显然,这不是一个半关闭。所以本地主机发送一个FIN(结束)标志的数据包至服务器。

TIME_WAIT 状态

T I M E _ WA I T状态也称为2 M S L(报文段最大生存时间,Maximum Segment Lifetime)等待状态。这个时间是有限的,因为 T C P报文段以I P数据报在网络内传输,而I P数据报则有限制其生存时间的T T L(Time To Live)字段。

  • 确保数据可靠传输:time_wait状态确保了所有可能还在网络中徘徊的数据包被接收或丢弃,避免新连接接收旧数据,保证数据的准确性和完整性
  • 防止旧连接的干扰:确保在相同的源地址、目标地址、源端口和目标端口的新连接建立之前,旧的连接完全关闭,避免可能的数据混乱

第四次挥手

  1. 服务器确认(stream 主机->服务器 关闭连接)

    一个完整的流程图:

连接建立超时

相关推荐
andxe9 小时前
安科士 AndXe 技术博客:400G QSFP112 SR4 光模块|AI 算力与超算短距互联最优方案
网络·人工智能·光模块·光通信
shiyi.十一10 小时前
第2章:应用层 — 知识要点与架构
网络·计算机网络·架构
DFT计算杂谈11 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
水境传感 李兆栋11 小时前
GNSS 位移监测站 :毫米级感知,筑牢安全监测防线
网络
中微极客13 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
猿的天空17 小时前
机器人双手迎来全栈训练系统:灵初智能EgoSteer让灵巧手无所不能
网络·人工智能·计算机·ai·程序员·机器人·编程
Xzaveir_77717 小时前
OPPO、vivo、荣耀号码认证:多终端拨测矩阵与异常复现
大数据·网络·科技·矩阵·产品经理·ai-native
wuqingshun31415917 小时前
从网络角度来看,用户从输入网址到网页显示,期间发生了什么?
网络
牛马工作号17 小时前
Zigbee 专业详解:从协议到排障
网络·物联网·安全
牛马工作号17 小时前
Wi‑Fi 完全指南:从 802.11 协议到 Wi‑Fi 7、AC+AP 与 Mesh 工程组网
网络·网络协议·智能路由器