返回信息流RT,因为建立连接需要第三次握手来保证不会产生死锁。
为何单方面断开连接不是3次握手?
版上各位大神有知道的吗?
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #87903同步于 2015/9/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
TCP断开连接为何不是六次握手?
kelvinlu
2015/9/17镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
因为断开的时候是2*2次,即主动方被动方各两次,对吧。连接的时候,是三次,经常都会问,如果连接的时候只用两次握手,会怎样,,,所以要用三次握手,那么断开的时候为何不是为何不是三次握手确保已经断开呢?然后两边就是六次
【 在 liunicholas (上善若水) 的大作中提到: 】
: 面试的时候别人都是问为什么需要四次,三次为什么不行....你问为什么不是六次
通过『我邮2.0』发布
【 在 kelvinlu 的大作中提到: 】
: 因为断开的时候是2*2次,即主动方被动方各两次,对吧。连接的时候,是三次,经常都会问,如果连接的时候只用两次握手,会怎样,,,所以要用三次握手,那么断开的时候为何不是为何不是三次握手确保已经断开呢?然后两边就是六次
:
: 通过『我邮2.0』发布
话说断开是四次挥手。。。
你可以问为什么不是4**n(n>1)次?
老是问这种问题会被揍的。。。
网上查到的答案说是:TCP是全双工的,如果A和B连接,A向B发送FIN表示A停止向B发送数据,这时B仍可向A发送数据。如果这时B也停止发送数据的话,则B可以将ACK和FIN一起发送,这时实际上就是三次挥手了;如果B还有数据要发送,则先发ACK,然后发玩数据后再发送FIN,这时是四次挥手。
我觉得三次握手不仅是因为死锁,根本原因应该是三次是保证建立稳定通信的最少次数吧,而挥手需要四次可能是因为两端的释放不一定是同时的缘故。个人看法不保证正确,求版上大神指点。
thx ,同学你真热心
【 在 lock1501 (没有昵称) 的大作中提到: 】
: 网上查到的答案说是:TCP是全双工的,如果A和B连接,A向B发送FIN表示A停止向B发送数据,这时B仍可向A发送数据。如果这时B也停止发送数据的话,则B可以将ACK和FIN一起发送,这时实际上就是三次挥手了;如果B还有数据要发送,则先发ACK,然后发玩数据后再发送FIN,这时是四次挥手。
: 我觉得三次握手不仅是因为死锁,根本原因应该是三次是保证建立稳定通信的最少次数吧,而挥手需要四次可能是因为两端的释放不一定是同时的缘故。个人看法不保证正确,求版上大神指点。
通过『我邮2.0』发布