tcp三次握手与四次挥手

来源:互联网 发布:苹果tv怎么设置网络 编辑:程序博客网 时间:2024/06/06 02:36

这里写图片描述
建立连接为什么是三次握手呢?
假设是两次握手:如果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会正常关闭连接。

原创粉丝点击