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 主机->服务器 关闭连接)

    一个完整的流程图:

连接建立超时

相关推荐
陪我养猪吧2 小时前
常见网络端口号
服务器·网络
WolvenSec3 小时前
网络基础:OSPF 协议
服务器·网络·安全·网络安全·智能路由器
settingsun12253 小时前
[Cloud Networking] BGP
网络·网络协议
灵韵设计4 小时前
学习笔记——动态路由——OSPF(工作原理)
网络
陪我养猪吧4 小时前
网络“ping不通”,如何排查和解决呢?
网络
Ljubim.te4 小时前
计算机网络网络层复习题2
网络·计算机网络·智能路由器
落子摘星4 小时前
netlink通信——读取路由表获取通信网卡IP
网络·网络协议·tcp/ip·netlink
IT 青年5 小时前
网安小贴士(3)网安协议
网络·网安协议·网安小贴士
法号:吃肉8 小时前
求推荐几款http可视化调试工具?
网络·网络协议·http
Canon_YK13 小时前
安全隔离上网的有效途径:沙箱
服务器·网络·安全·web安全·网络安全