当前位置: 首页 > 图灵资讯 > java面试题> TCP四次挥手过程

TCP四次挥手过程

来源:图灵教育
时间:2024-05-31 13:21:22

  四次挥手过程:

  客户端——发送带有FIN标志的数据包——服务端,关闭与服务端的连接,客户端进入FIN-WAIT-1状态。

  服务端收到这个FIN,它发回⼀个ACK,确认序号为收到的序号加1,服务端就进入了CLOSE-WAIT状态。

  服务端——发送⼀个FIN数据包——客户端,关闭与客户端的连接,客户端就进入FIN-WAIT-2状态。

  客户端收到这个FIN,发回ACK报⽂确认,并将确认序号设置为收到序号加1,TIME-WAIT状态。

  为什么四次:

  因为需要确保客户端与服务端的数据能够完成传输。

  CLOSE-WAIT:

  这种状态的含义其实是表示在等待关闭。

  TIME-WAIT:

  为了解决网络的丢包和网络不稳定所带来的其他问题,确保连接方能在时间范围内,关闭自己的连接。

  如何查看TIME-WAIT状态的链接数量?

  netstat-an|grep TIME_WAIT|wc -l查看连接数等待time_wait状态连接数。

  为什么会TIME-WAIT过多?解决方法是怎样的?

  可能原因:高并发短连接的TCP服务器上,当服务器处理完请求后立刻按照主动正常关闭连接。

  解决:负载均衡服务器;Web服务器首先关闭来自负载均衡服务器的连接。

上一篇:

TCP三次握手过程

下一篇:

OSI与TCP/IP模型