TCP3次握手4次挥手
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP3次握手4次挥手相关的知识,希望对你有一定的参考价值。
TCP连接客户端状态转变过程
closed——>SYN_sent——>ESTABLISHED——> Fin_wait1——>Fin_wait2——>Time_wait——>closed
TCP连接服务端状态转变过程
closed——>listen——>SYN_recvd——>ESTABLISHED——>close_wait——>Lask_Ack——>closed
为什么TCP连接3次握手,断开要4次挥手呢?
因为在TCP断开的时候,客户端向服务端发送FIN=1的断开请求时(第一次挥手),自身进入只收不发的状态(Fin_wait1),但服务端可能还有数据没有收发完,所以服务端会回复ACK(第二次挥手)给客户端表示收到断开请求,此时客户端状态变为Fin_wait2,当服务端准备好之后,发送Fin(第三次挥手)表示断开连接同时自身进入Lask_Ack状态,客户端收到Fin之后发送Ack(第四次挥手)给服务端自身变为Time_wait状态。等待MSL时间过去客户端服务端重新变为closed状态。
为什么TCP4次挥手之后不是直接进入closed状态,而是等MSL时间到了之后才变呢?
因为计算机认为自身是不可靠的,也有第4次挥手的ACK报文服务端没收到的原因,所以会等MSL时间过去双方才变为closed状态。
以上是关于TCP3次握手4次挥手的主要内容,如果未能解决你的问题,请参考以下文章
简述TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。
IP封包协议头/TCP协议头/TCP3次握手/TCP4次挥手/UDP协议头/ICMP协议头/HTTP协议(请求报文和响应报文)/IP地址/子网掩码(划分子网)/路由概念/MAC封包格式