TCP为什么要进行三次握手四次挥手
2017-07-25 19:01
489 查看
先看一下三次握手的过程:
为什么要进行三次握手而不是两次握手呢?
假设是两次握手的情况下:A向B发了一个第一个请求连接报文,此时又于选择了一条较长的路径导致这个请求,传输的时间较长,以致延误到连接释放以后的某个时间才到达server,但是此时A认为发了一个请求连接的报文B没有收到,因此A进行重传,此时这个新的请求连接报文B很快就收到了,于是B向A发送确认报文段,同意连接,于是A和B开始互发数据。但过了一段时间之后B收到了这个延迟的请求连接的报文,此时B立刻发给了A一个确认报文段,同意连接,并且此时B开始等待A给B发数据。但是A认为他刚才并没有发送新的请求连接报文,此时A不会给B发任何数据,那么此时B一直处于等待状态就造成了资源的浪费。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,A不会向B的确认发出确认。B由于收不到确认,就知道A并没有要求建立连接。此时就不会再造成服务器资源的浪费了。
或许有人认为为什么不四次握手或者五次握手呢,但是四次握手和五次握手效果和三次握手是一样的,并且三次握手保证了可靠的同时效率也高啊。
为什么TCP要进行四次挥手呢?
因为是双方彼此都建立了连接,因此双方都要释放自己的连接,A向B发出一个释放连接请求,他要释放链接表明不再向B发送数据了,此时B收到了A发送的释放链接请求之后,给A发送一个确认,A不能再向B发送数据了,它处于FIN-WAIT-2的状态,但是此时B还可以向A进行数据的传送。此时B向A 发送一个断开连接的请求,A收到之后给B发送一个确认。此时B关闭连接。A也关闭连接。
为什么要有TIME-WAIT这个状态呢,这是因为有可能最后一次确认丢失,如果B此时继续向A发送一个我要断开连接的请求等待A发送确认,但此时A已经关闭连接了,那么B永远也关不掉了,所以我们要有TIME-WAIT这个状态。
当然TCP也并不是100%可靠的。
为什么要进行三次握手而不是两次握手呢?
假设是两次握手的情况下:A向B发了一个第一个请求连接报文,此时又于选择了一条较长的路径导致这个请求,传输的时间较长,以致延误到连接释放以后的某个时间才到达server,但是此时A认为发了一个请求连接的报文B没有收到,因此A进行重传,此时这个新的请求连接报文B很快就收到了,于是B向A发送确认报文段,同意连接,于是A和B开始互发数据。但过了一段时间之后B收到了这个延迟的请求连接的报文,此时B立刻发给了A一个确认报文段,同意连接,并且此时B开始等待A给B发数据。但是A认为他刚才并没有发送新的请求连接报文,此时A不会给B发任何数据,那么此时B一直处于等待状态就造成了资源的浪费。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,A不会向B的确认发出确认。B由于收不到确认,就知道A并没有要求建立连接。此时就不会再造成服务器资源的浪费了。
或许有人认为为什么不四次握手或者五次握手呢,但是四次握手和五次握手效果和三次握手是一样的,并且三次握手保证了可靠的同时效率也高啊。
为什么TCP要进行四次挥手呢?
因为是双方彼此都建立了连接,因此双方都要释放自己的连接,A向B发出一个释放连接请求,他要释放链接表明不再向B发送数据了,此时B收到了A发送的释放链接请求之后,给A发送一个确认,A不能再向B发送数据了,它处于FIN-WAIT-2的状态,但是此时B还可以向A进行数据的传送。此时B向A 发送一个断开连接的请求,A收到之后给B发送一个确认。此时B关闭连接。A也关闭连接。
为什么要有TIME-WAIT这个状态呢,这是因为有可能最后一次确认丢失,如果B此时继续向A发送一个我要断开连接的请求等待A发送确认,但此时A已经关闭连接了,那么B永远也关不掉了,所以我们要有TIME-WAIT这个状态。
当然TCP也并不是100%可靠的。
相关文章推荐
- TCP的三次握手和四次挥手的过程?三次握手改成两次或者四次可以吗为什么?
- tcp为什么要三次握手四次挥手
- TCP的三次握手和四次挥手以及为什么
- TCP三次握手和四次挥手全过程及为什么要三次握手解答
- TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手
- TCP协议中为什么三次握手,四次挥手(详解)!!!
- TCP连接为什么三次握手和四次挥手
- 【转】TCP三次握手和四次挥手全过程及为什么要三次握手解答
- TCP三次握手和四次挥手过程以及连接为什么使用三次连接,释放使用四次
- TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手
- TCP为什么要三次握手?为什么要有四次挥手的TIME_WAIT?
- Tcp为什么要三次握手四次挥手
- TCP 三次握手和四次挥手(使用Wireshark进行抓包查看)
- 为什么TCP要三次握手和四次挥手?
- TCP的三次握手和四次挥手,以及两次握手为什么不行?
- TCP为什么需要三次握手和四次挥手
- TCP/IP三次握手和四次挥手
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- TCP协议中的三次握手和四次挥手(图解)