美文网首页真相系列
tcp真得需要三次握手才能建立连接吗

tcp真得需要三次握手才能建立连接吗

作者: 银角代王 | 来源:发表于2021-05-06 18:27 被阅读0次

从网上一搜一大把的三次握手流程图示

image.png

首先我们来看一下tcp主要实现的功能

  1. 在两端之间建立一条全双工连接
  2. 保证连接之间的数据包不丢、不重、有序
  3. 控制连接之间数据流量(窗口控制)

建立连接时首要保证两端可以互相通信

首先是保证两端之间是可以相互发送、接收数据的

A:你听见了吗?

        B:我听见了,你听见了吗?

A:我也听见了

        B:好的

假设只有一次握手,既A——>B,就像你给暗恋的女生写了一份情书,没有给你任何回复,你就一厢情愿得认为她已经是你的女朋友了,强行暗送秋波,人家是不会回应的。

如果有两次握手,既A——>B——>A,这回有戏了,女生答应你了(也可能是惨遭拒绝),如果真是谈对象,关系基本就确立了。

确保历史连接不被处理

在网络世界里,事情有一点点变化。这次回到真实的网络环境,正常的连接情况如下:

Client:填写IP:PORT,填写SEQ,发送连接请求

        Server:收到请求,将收到的SEQ加一填入ACK返回给Client

Client:收到回复,判断ACK中的值是否为之前发送的SEQ加一,如果是,建立连接并回执给Sever,如果不是则发送RST通知Server连接无效

        Server: 收到回执,建立或者丢弃连接

思考一种情况:

A发起连接后很久没有收到B的回复,A又重新发起了一次对B的连接;

接着B收到了A的前一次连接请求并回复;

这个时候A就可以通过B返回的ACK中的值与自己当前的SEQ值对比,如果对比失败,就可以认为是无效连接,并通知到B丢弃无效连接。

为什么不是一次或者二次握手

我们前面讨论了只有一次握手肯定是不行的(单相思);

那么如果只进行二次握手呢?也就是没有了A回执给B的那一步,这个时候连接建立的时机就变成了B收到A的请求的时刻,因为B并不清楚收到的请求是新的请求还是已经因为超时被A放弃的请求,B只能被动地建立连接进行初始化,当收到新的请求后,又需要断开之前建立的连接,造成资源浪费。

相关文章

  • TCP三次握手和四次挥手以及缺陷

    建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示: 1、TCP连接建立——三次握手 几...

  • TCP三次握手和四次挥手

    建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示: 建立连接的过程: TCP 连接是通...

  • Alamofire前奏之TCP三握四挥

    建立TCP需要三次握手才能建立,而断开连接则需要四次挥手。 一、TCP三次握手? TCP有6种标识:SYN(建立联...

  • Alamofire -- TCP三握四挥理解(转载)

    建立TCP需要三次握手才能建立,而断开连接则需要四次挥手。 一、TCP三次握手? TCP有6种标识:SYN(建立联...

  • 知识点总结1-计算机网络

    1.TCP的三次握手和四次握手 建立TCP的话,需要三次握手才能建立,而断开连接则需要四次挥手 三次握手:通俗描述...

  • TCP10问

    1.TCP建立连接时需要几次握手, 断开连接需要几次握手? TCP建立连接需要三次握手, 断开连接要四次握手。现有...

  • TCP断开连接的过程

    建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示: [图片上传失败...(建立TCP需...

  • TCP三次握手和四次挥手

    1、TCP三次握手 TCP建立连接需要进行“三次握手”: TCP三次握手过程描述如下: 客户端发送连接请求报文:S...

  • TCP三次握手

    建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示: 先来看看如何建立连接的。 【更新于...

  • TCP/IP协议三次握手与四次挥手与使用异步方式进行消息的接收

    三次握手 所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要...

网友评论

    本文标题:tcp真得需要三次握手才能建立连接吗

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