TCP-关闭机制

来源:互联网 发布:湖南大学校园网域名 编辑:程序博客网 时间:2024/06/05 18:04
TCP关闭的整个过程:
主动一方写完数据,关闭写入通道,发起fin-1报文,请求关闭写入通道,
主动一方进入fin-1状态,
被动一方接到fin-1报文,进入close-wait状态,


被动一方从读通道读完数据,发送ack报文到主动关闭方,
被动一方进入到last-ack状态
主动关闭一方进入到fin-2状态


被动一方在写完数据,发送fin-2报文到主动方,
被动一方还是last-ack状态,
主动一方接收到fin-2报文,进入到timed-wait状态,


主动一方等待一个tcp封包在网路存活的时间之后,也就是2ms时间,发送ack报文
主动一方进入到closed状态,

被动一方接收到最后ack包,也进入closed状态。


---------------------

CLOSING 状态。

---------------------


TCP 握手协议


为什么是三次握手,而不是两次握手,三次握手是为了防止有些长时间滞留在网络上tcp包后续又重新发送到了对方,如果是两次握手协议,
从而会导致了无用的socket句柄,并且,这些句柄又不能被关闭。。。


服务端为listen状态:
客户端发起连接请求,发送syn-1包,进入到SYN_SEND状态,
服务端接收到syn-1包,并且发送ack-1确认包,同时,服务端也发送了一个syn-2包,服务端进入到了进入到SYN_RECV状态,
客户端接收到ack-1+syn-2包,进入到ESTABLISHED状态,并且也发送了一个ack-2包到服务端
服务端接收到ack-2包,进入到了ESTABLISHED状态

原创粉丝点击