TCP/IP三次握手、四次断开

TCP(Transmission Control Protocol) 传输控制协议

一、 TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接

(1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。

(2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。

(3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据。

下面展示如何用wireshark分析TCP三次握手建立连接。

Step1:启动wireshark抓包,打开浏览器输入www.huawei.com
Step2:使用ping www.huawei.com获取IP
在这里插入图片描述

Step3:输入过滤条件获取待分析数据包列表 ip.addr == 111.1.59.189
在这里插入图片描述
图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的。
下面我们来仔细看一下这三次握手:
第一次握手数据包
客户端发送一个TCP连接请求
源端口:54824
目的端口:88
序列号:0
确认号:初始为0
标志位:SYN
在这里插入图片描述
第二次握手的数据包
服务器发回确认包
源端口:88
目的端口:54824
序列号:0
确认号:1
标志位:SYN+ACK
在这里插入图片描述
第三次握手的数据包
客户端发送确认包
源端口:54824
目的端口:88
序列号:1
确认号:1
标志位:ACK
在这里插入图片描述
就这样通过了TCP三次握手,建立了连接。

二、四次断开

在这里插入图片描述
在这里插入图片描述
(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。

(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。

(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。
用wineshark捕捉到的四次断开如图
在这里插入图片描述
详细的过程时间原因就先写到这儿。

猜你喜欢

转载自blog.csdn.net/weixin_45050702/article/details/112593628
今日推荐