【计算机网络】TCP三次握手四次挥手

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shangguan_1234/article/details/60583999

TCP三次握手建立连接

第一次握手


A 的TCP 向B 发出连接请求报文段,其首部中的同步位SYN = 1,并选择序号seq = x,表明传送数据时的第一个数据字节的序号是x。

第二次握手


B 的 TCP 收到连接请求报文段后,如同意,则发回确认。
.B 在确认报文段中应使 SYN = 1,使 ACK = 1,其确认号ack = x + 1,自己选择的序号 seq = y。

第三次握手


A 收到此报文段后向 B 给出确认,其 ACK = 1,确认号 ack = y + 1。
A 的 TCP 通知上层应用进程,连接已经建立。

B 的 TCP 收到主机 A 的确认后,也通知其上层应用进程,TCP 连接已经建立。

三次握手后TCP连接建立

TCP四次挥手释放连接

第一次挥手


数据传输结束后,通信的双方都可释放连接。
现在 A 的应用进程先向其 TCP 发出连接释放报文段,并停止再发送数据,主动关闭 TCP连接。
 A 把连接释放报文段首部的 FIN = 1,其序号seq = u,等待 B 的确认。

第二次挥手


B 发出确认,确认号 ack = u + 1,而这个报文段自己的序号 seq = v。
TCP 服务器进程通知高层应用进程。
从 A 到 B 这个方向的连接就释放了,TCP 连接处于半关闭状态。B 若发送数据,A 仍要接收。

第三次挥手


若 B 已经没有要向 A 发送的数据,其应用进程就通知 TCP 释放连接。

第四次挥手


A 收到连接释放报文段后,必须发出确认。

在确认报文段中 ACK = 1,确认号 ack = w + 1,自己的序号 seq = u + 1。

TCP 连接必须经过时间 2MSL(最长报文段寿命) 后才真正释放掉。

展开阅读全文

没有更多推荐了,返回首页