TCP四次挥手中,主动关闭方最后为什么要等待2MSL之后才能关闭连接?
来源:互联网 发布:广州万户网络 待遇 编辑:程序博客网 时间:2024/05/05 04:15
和TCP三次同步握手不一样的是,TCP关闭连接用四次挥手来实现,即A—–>B Fin,B—->A ACK, B—–>A Fin,A—-B ACK
A—-B Fin, B—->A ACK,A属于主动关闭方,收到B的ACK之后,A到B的方向连接关闭,即half shutdown,这时不能再发送数据了.
这种状态下B还是可以单向发送数据的,B的数据发送完毕,也可以做关闭动作了,
B——>A Fin,A——> B ACK
B收到ACK,关闭连接,但是A无法知道ACK是否已经到达B,于是开始等待?等待什么呢,假如ACK没有到达B,B会为FIN这个消息超时重传,那如果A等待时间足够,又收到FIN消息,说明ACK没有到达B,于是再发送ACK,知道在足够的时间内没有收到FIN,说明ACK成功到达,这个等待时间至少是:B的timeout+FIN的传输时间,为了保证可靠,采用更加保守的等待时间2MSL.
MSL:报文段最大生存时间MSL.它是任何报文段被丢弃前网络内的最长时间。
TTL:IP对IP 数据报生存时间限制,255秒,所以MSL一般=TTL = 255 秒
A发出ACK,等待ACK到达对方的超时时间MSL,等待FIN的超时重传,也是MSL,所以如果2MSL时间内没有收到FIN,说明对方安全收到FIN。
0 0
- TCP四次挥手中,主动关闭方最后为什么要等待2MSL之后才能关闭连接?
- TCP四次挥手客户端关闭链接为什么要等待2倍MSL
- TCP关闭连接(四次挥手)
- TCP第四次挥手为什么要等待2MSL
- tcp关闭连接时的四次挥手
- 2MSL TCP三次握手连接与四次握手关闭过程
- 2MSL TCP三次握手连接与四次握手关闭过程
- 2MSL TCP三次握手连接与四次握手关闭过程
- 2MSL TCP三次握手连接与四次握手关闭过程
- 2MSL TCP三次握手连接与四次握手关闭过程
- TCP为什么要3次握手和4次挥手时等待2MSL
- TCP为什么要3次握手和4次挥手时等待2MSL
- TCP四次挥手中的2MSL是什么?
- TCP三次握手建立连接四次挥手关闭连接
- TCP/IP的三次握手连接和四次挥手关闭
- TCP四次挥手关闭连接的图解与实践总结
- TCP四次挥手关闭读写通道
- 主动关闭TCP连接的一方为什么要有TIME_WAIT状态
- 获取泛型的类型
- CMU 10703 |Lecture 3 Planning in Markov decision processes
- Qt之水平/垂直布局(QBoxLayout、QHBoxLayout、QVBoxLayout)
- C++中Time使用笔记
- Java并发编程系列(四)----CAS与原子类
- TCP四次挥手中,主动关闭方最后为什么要等待2MSL之后才能关闭连接?
- Windows环境下安装Redis体验谈
- beaglebone-asterisk应用笔记
- Apache主页的目录以及权限
- z-index详解
- WebView.loadData()出现乱码问题
- C++随机数
- 面向对象编程(一)
- Qt之格栅布局(QGridLayout)