为什么TCP连接不能成为“3次握手”,而不是2次或4次?

发布者:上海IT外包来源:http://www.lanmon.net点击数:1331

我们知道客户端(客户端)A和服务器(服务器)B的通信方式可以分为:全双工,半双工,单工:
单纯形:A可以发送到B,B不能发送到A,称为单纯形
半双工:A可以发送到B,B可以发送到A,但这两个步骤不能同时执行。也就是说,当A向B发送消息时,B不能将其发送给A.
全双工:客户端A可以在向服务器B发送信息的同时向客户端A发送信息。
TCP是全双工的。
TCP如何工作
以下小编将向您展示TCP的工作原理?
根据以前的知识,我们了解到TCP有三次握手(之前的参考:HTTP也有长度和分钟?HTTP长连接与短连接)。
TCP三次握手示意图:
为什么TCP连接不能成为“3次握手”,而不是2次或4次?
理解的具体含义可以这样看:
第一次握手
客户端希望服务器发送SYN标志为1的数据包和初始序列号X,包裹在数据包头的序列号字段中。
客户端进入SYN_SEND状态并等待来自服务器的确认。
2.第二次握手
服务器发回ACK(确认包),即将SYN和ACK标志命名为1,并将序列号更改为X + 1。
同时,我还发送了一个包,SYN包,序列号(seq=Y),即SYN + ACK包。
此时服务器进入SYN_RECV状态。
3.第三次握手
客户端接收服务器发送的(ACK + SYN)数据包,SYN标志为0. ACK标志为1。
同时,服务器发送的ACK包序列号字段为+1并放入包中,并作为ACK=Y + 1发送给服务器。
流行解释:
你认为它仍然难以理解,然后给你一个例子如下。
首先,我们假设A和B是这次沟通的两方。发送消息表示握手。
第一次握手: A向B发送微信语音聊天,是吗?你能听到我吗?
第二次握手:B收到来自A的微信语音电话,然后对A说:好吧,人们在那里,我能听到你说的话,你能听到我说话,这是什么?第三次握手:A收到了来自B的消息。我想问你一件事?
然后我开始愉快的聊天。
可以进行两次握手吗?
然后我们将探讨两次握手?
第一次握手后:服务器B可以接收客户端A发送的信息,但是对于客户端A,它不确定自己发送的消息是否成功。
第二次握手后:服务器B将消息信息发送给客户端A,服务器B可以认为我发送的消息成功。
如果现在没有第三次握手,服务器B将在第二次握手后认为我们的连接成功。
但对于客户A?不保证接收服务器B发送的信息。如果客户端A没有收到服务器发送的信息?
客户会认为我们之间的沟通尚未建立。这种沟通过程显然是不成功的。
如果发生大量此类事件,服务器B将崩溃。
似乎只有两次握手不起作用,TCP的通信原理无法完成。
不是两次,四次怎么样?
你不能四次握手吗?
根据上述TCP通信原理,在三次握手之后,客户端A和服务器B都可以确认之前发送的消息,并且可以接收每条消息并将消息成功发送给另一方。
根据上述结论,您知道您是四方握手还是五方握手。这是徒劳的。因为在“三方握手”之后,我已经做了我必须做的一切。
结论
TCP的三次握手是经典的,计算机上的通信协议也基于TCP的三次握手和四个波形握手。
因为计算机应用程序的直接通信基于HTTP协议,并且HTTP基本上由TCP协议完成,所以之前已经提到过这种知识。由此形成:
TCP只能是三次握手,不能是两次,也不是四次。
少于三次握手,无法保证建立通信连接;
超过三次握手是徒劳无益的。
我们看到经过三次握手后,我们可以得出以下结论:
A可以向B发送消息,A也可以接收B发送的信息;
同时,对于B,B也可以向A发送消息,B也可以接收A发送的消息。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部