您的位置:首页 > 理论基础 > 计算机网络

tcp三次握手与四次挥手

2017-06-20 17:22 253 查看


建立连接为什么是三次握手呢?

假设是两次握手:如果A向B发送连接请求,由于网络问题,在规定时间内B没有收到,此时,A会重新发送连接请求,这次的连接成功了,数据也发送完了,连接也关闭了。然后,这时候A原先发的连接请求,已经失效的报文段B收到了。B会误以为A重新请求连接。这时因为是两次握手,所以B收到后,已经建立连接,一直等待A发来数据。这样B的资源就浪费了。

如果是三次握手,就不会出现这种情况。就算B收到A之前发的连接请求,B会向A发送确认,如果A没有响应,B就知道A没有建立连接,不会发送报文段了。



释放连接,为什么是四次挥手呢?

A想B发送FIN=1,表示A的数据发送完了,要关闭连接,B收到后,向A做出应答,表示B知道了,但是B有可能还有数据没发送完。在B数据发送完了,B向A发送FIN=1,表示B数据也发送完了,可以关闭连接了;A收到后,向B发送应答。在最后一次,会建立一个等待时间计数器http://blog.csdn.net/chenmiao0924/article/details/73469492,保证B会正常关闭连接。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息