美文网首页程序员
TCP为什么是三次握手,为什么不是两次或四次,TCP四次挥手

TCP为什么是三次握手,为什么不是两次或四次,TCP四次挥手

作者: 996小迁 | 来源:发表于2020-10-20 14:02 被阅读0次

这是一个很有意思的问题~

首先,我们要知道TCP是全双工的,即客户端在给服务器端发送信息的同时,服务器端也可以给客户端发送信息。而半双工的意思是A可以给B发,B也可以给A发,但是A在给B发的时候,B不能给A发,即不同时,为半双工。 单工资只能A给B发,B不能给A发; 或者是只能B给A发,不能A给B发。

我们假设A和B是通信的双方。我理解的握手实际上就是通信,发一次信息就是进行一次握手

第一次握手: A给B打电话说,你可以听到我说话吗?

第二次握手: B收到了A的信息,然后对A说: 我可以听得到你说话啊,你能听得到我说话吗?

第三次握手: A收到了B的信息,然后说可以的,我要给你发信息啦!

在三次握手之后,A和B都能确定这么一件事: 我说的话,你能听到; 你说的话,我也能听到。 这样,就可以开始正常通信了。

  注意: HTTP是基于TCP协议的,所以每次都是客户端发送请求,服务器应答,但是TCP还可以给其他应用层提供服务,即可能A、B在建立链接之后,谁都可能先开始通信。

    

  如果两次,那么B无法确定B的信息A是否能收到,所以如果B先说话,可能后面的A都收不到,会出现问题 。

  如果四次,那么就造成了浪费,因为在三次结束之后,就已经可以保证A可以给B发信息,A可以收到B的信息; B可以给A发信息,B可以收到A的信息。

那么三次握手在正式情况下都做了什么呢?

第一次握手:

客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器的端口,以及初始序号X,保存在包头的序列号(Sequence Number)字段里

第二次握手 :

服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即X+1。

第三次握手

客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1

即SYN就是询问: 你能听得到吗? ACK就是回到: 我能听得到啊。

TCP四次挥手的过程:

四次挥手:

A:“喂,我不说了 (FIN)。”A->FIN_WAIT1

B:“我知道了(ACK)。等下,上一句还没说完。Balabala…..(传输数据)”B->CLOSE_WAIT | A->FIN_WAIT2

B:”好了,说完了,我也不说了(FIN)。”B->LAST_ACK

A:”我知道了(ACK)。”A->TIME_WAIT | B->CLOSED

A等待2MSL,保证B收到了消息,否则重说一次”我知道了”,A->CLOSED

这样,通过四次挥手,可以把该说的话都说完,并且A和B都知道自己没话说了,对方也没话说了,然后就挂掉电话(断开链接)了 。

相关文章

  • 三次握手与四次挥手图文详解

    本文介绍TCP的三次握手与四次挥手,以及TCP 为什么是三次握手,而不是两次或四次?TCP名为传输控制协议,是一种...

  • TCP三次握手、四次挥手漫画

    乔戈里大神的漫画TCP连接为什么是三次握手,而不是两次握手,也不是四次握手?TCP断开连接为什么是四次挥手,不是二...

  • TCP的三次握手和四次挥手

    参考资料:[1].【TCP】详解TCP 三次握手和四次挥手[2]. iOS:为什么TCP连接要三次握手,四次挥手[...

  • TCP 三次握手与四次挥手

    目录 TCP与UDP的区别TCP 三次握手为什么需要三次握手?而不是两次TCP 四次挥手为什么需要等待 2MSL为...

  • 2、tcpdump抓包分析三次握手和四次挥手

    TCP为什么需要三次握手、四次挥手 三次握手 三次握手 四次挥手 SYN flood攻击

  • tcp为什么是三次握手

    参考 TCP 为什么是三次握手,而不是两次或四次? 1. tcp三次握手流程 由图可知,tcp三次握手的关键在于,...

  • 快速理解TCP/IP三次握手与四次挥手

    TCP/IP三次握手 TCP建立连接为什么是三次握手,而不是两次或四次?TCP,名为传输控制协议,是一种可靠的传输...

  • TCP的三次握手和四次挥手

    目录 名词解释 TCP的三次握手TCP建立链接的步骤TCP的三次握手步骤思考:TCP握手为什么不是两次 or 四次...

  • 网络通信

    Tcp通信原理了解吗? Tcp连接需要进行三次握手,断开需要四次挥手。 为什么TCP连接需要三次握手分开需要四次握...

  • TCP的3次握手&4次挥手

    详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ” 为什么“握手”是三次,“挥手”却要四次? 建立连接时,被动...

网友评论

    本文标题:TCP为什么是三次握手,为什么不是两次或四次,TCP四次挥手

    本文链接:https://www.haomeiwen.com/subject/fxikmktx.html