软件测试常见网络相关面试题 (2)

客户端收到服务器的 SYN 报文后,再回应一个 ACK(ack=y+1),如此就成功建立连接,并开始传输数据;

四次挥手:

四次挥手示意图(来源网络)

四次挥手示意图(来源网络)

TCP 连接的断开需要发送4个包,可以由连接的任意一方先发起,以下假设客户端先发起断开。

客户端发送一个 FIN 包给到服务器,表明自己的数据已经发送完毕,想要断开连接了,客户端进入 FIN_WAIT_1 状态;

服务器收到客户端的 FIN 包后,发送一个确认包给客户端,表明自己接受了关闭连接的请求,但是有可能还有些数据没有全部发送完,服务器进入 CLOSE_WAIT 状态,客户端收到回复后进入 FIN_WAIT_2 状态;

服务器准备好了关闭连接,想客户端发送结束连接请求,服务器进入 LAST_ACK 状态;

客户端收到服务器的关闭请求,发送一个确认包给服务器并进入 TIME_WAIT 状态,服务器收到这个确认包后,关闭连接并进入 CLOSE 状态。

TCP 的连接为什么是3次握手,为什么不是更多或更少?

​ 因为最少要经过3次连接才能确认双方都可正常接收和发送数据,多于3次则无必要。

软件测试常见网络相关面试题

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydxpx.html