BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #87903同步于 2015/9/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

TCP断开连接为何不是六次握手?

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