TCP的FLAG标记位的含义:
FIN-结束(结束会话)
SYN-同步(表示开始会话请求)
RST-复位(中断一个连接)
PUSH-推送(数据包立即发送)
ACK-应答
URG-紧急
一、TCP建立连接的过程
TCP通过三次握手建立可靠连接。
TCP是一种可靠的,面向连接的全双工传输层协议。
TCP连接的建立是一个三次握手的过程。如图所示:
第一次: 主机A(通常也称为客户端)发送一个标识了SYN的数据段,表示期望与服务器A建立连接,此数据段的序列号(seq)为a。
第二次: 服务器A回复标识了SYN+ACK的数据段,此数据段的序列号(seq)为b,确认序列号为主机A的序列号加1(a+1),以此作为对主机A的SYN报文的确认。
第三次: 主机A发送一个标识了ACK的数据段,此数据段的序列号(seq)为a+1,确认序列号为服务器A的序列号加1(b+1),以此作为对服务器A的SYN报文段的确认。
二、TCP关闭连接
主机在关闭连接之前,要确认收到来自对方的ACK
TCP支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输。在传输数据之前,TCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方向的连接必须都关闭。
TCP连接的建立是一个三次握手的过程,而TCP连接的终止则要经过四次握手。
如图所示:
第一次挥手: 主机A想终止连接,于是发送一个标识了FIN,ACK的数据段,序列号为a,确认序列号为b。
第二次挥手: 服务器A回应一个标识了ACK的数据段,序列号为b,确认序号为a+1,作为对主机A的FIN报文的确认。
第三次挥手: 服务器A想终止连接,于是向主机A发送一个标识了FIN,ACK的数据段,序列号为b,确认序列号为a+1。
第四次挥手: 主机A回应一个标识了ACK的数据段,序列号为a+1,确认序号为b+1,作为对服务器A的FIN报文的确认。
以上四次交互便完成了两个方向连接的关闭。
我是艺博东!欢迎你和我一起讨论,我们下期见。
转载:https://blog.csdn.net/HYD696/article/details/108062233