TCP/IP可以做到只握手两次吗

_Mamahoohoo 发布于 2016/07/27 16:09
阅读 589
收藏 0

今天刚看了TCP建立连接三次握手的过程,然后查了查为什么不能两次握手,是为了防止已失效的报文段又传到了服务器端,这样服务器可能会回复客户端两次,但客户端只回复一次,因此浪费了服务器的资源。

失效有两种情况:一种是请求连接报文丢失,这时是可以两次握手的。第二种是请求报文在某些网络结点滞留太久,在这种情况下,有没有办法让这种超时的失效报文无法到达服务器端,这样服务器端就只会回复一次了,那么两次握手就够了啊。。

纯小白,,大神请原谅我的无知。

加载中
0
酱哥哥
酱哥哥
好奇怪,请求报文丢失,服务器回复谁?连接都还没有建立。
0
乌龟壳
乌龟壳

三次握手分别的功能


  1. 客户端通知服务端建立连接
  2. 服务端通知客户端已经建立连接
  3. 客户端通知服务端已经知道服务端建立了连接

其实第三次握手是用来保护服务端的,逻辑上没有也是可行的。

因为网络通道本身是不稳定的,所以服务端设计的时候,有一个比较重要的错误控制方式——超时。

如果只是两次握手,那两次握手后,就要进入实际的通信模式,这个情况下的超时和业务是有关系的。一般都比较长。

有了三次握手之后,那么服务端其实就可以在等待第三次握手时,使用较短的超时。等实际过了第三次握手,才使用业务上较长的超时。

网络上会出现很多情况,三次握手能尽量把网络上的问题(如你问题中提到的情况),扼杀在等第三次握手的时候,这样比二次握手方案对服务端系统造成更小的影响。

0
Ivann
Ivann

补充下楼上的,客户端相比服务端要不稳定的多,TCP本身是个双向链接,需要对服务端进行资源保护,只有3次握手才能形成一个完整可靠的闭环,对于服务端来说:3次:客户出--》服务入---》服务出--》客户入--》客户出---》服务入,客户端的初入/服务端的出入都覆盖了,而2次:客户出--》服务入--》服务出,缺少客户端是否能正确接收

0
巴林的狗尾草
巴林的狗尾草
说实话,能的,不然怎么会有DOS攻击?
返回顶部
顶部