首页 > 其他分享 >换个角度理解TCP建立连接为什么需要三次握手

换个角度理解TCP建立连接为什么需要三次握手

时间:2023-02-24 07:22:06浏览次数:32  
标签:握手 换个 发送 能力 TCP 接收 服务端 客户端

1、第三次握手是为了防止失效的连接请求到达服务器,让服务器错误打开连接。

2、换个易于理解的视角来看为什么要 3 次握手。

客户端和服务端通信前要进行连接,“3次握手”的作用就是双方都能明确自己和对方的收、发能力是正常的。

第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。

第二次握手:服务端发包,客户端收到了。这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。从客户端的视角来看,我接到了服务端发送过来的响应数据包,说明服务端接收到了我在第一次握手时发送的网络包,并且成功发送了响应数据包,这就说明,服务端的接收、发送能力正常。而另一方面,我收到了服务端的响应数据包,说明我第一次发送的网络包成功到达服务端,这样,我自己的发送和接收能力也是正常的。

第三次握手:客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力,服务端的发送、接收能力是正常的。第一、二次握手后,服务端并不知道客户端的接收能力以及自己的发送能力是否正常。

而在第三次握手时,服务端收到了客户端对第二次握手作的回应。从服务端的角度,我在第二次握手时的响应数据发送出去了,客户端接收到了。所以,我的发送能力是正常的。而客户端的接收能力也是正常的。

经历了上面的三次握手过程,客户端和服务端都确认了自己的接收、发送能力是正常的。之后就可以正常通信了。

3 每次都是接收到数据包的一方可以得到一些结论,发送的一方其实没有任何头绪。我虽然有发包的动作,但是我怎么知道我有没有发出去,而对方有没有接收到呢?

而从上面的过程可以看到,最少是需要三次握手过程的。两次达不到让双方都得出自己、对方的接收、发送能力都正常的结论。

其实每次收到网络包的一方至少是可以得到:对方的发送、我方的接收是正常的。而每一步都是有关联的,下一次的“响应”是由于第一次的“请求”触发,因此每次握手其实是可以得到额外的结论的。

比如第三次握手时,服务端收到数据包,表明看服务端只能得到客户端的发送能力、服务端的接收能力是正常的,但是结合第二次,说明服务端在第二次发送的响应包,客户端接收到了,并且作出了响应,从而得到额外的结论:客户端的接收、服务端的发送是正常的。
————————————————
版权声明:本文为CSDN博主「gloryor」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_47221702/article/details/119875251

标签:握手,换个,发送,能力,TCP,接收,服务端,客户端
From: https://www.cnblogs.com/sword0077/p/17150052.html

相关文章

  • TCP和UDP的区别及使用场景
    一、TCP和UDP是什么?   TCP:   传输控制协议(TCP,TransmissionControlProtocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。   ......
  • nginx TCP代理增加日志配置
    在straem增加一下配置stream{log_formatTCP_proxy'$remote_addr-[$time_local]''$protocol$status$bytes_sent$bytes_received''......
  • TCP 三次握手四次挥手具体原理——转载
    【TCP/IP】TCP协议的流程图解  一、TCP协议起步#1.什么是TCP协议#TCP是面向连接的协议,这是因为在一个应用进程可以开始向另一个应用进程发送数据之前,这两个进程必......
  • IDEA - MySql / Spring mvc : Exception in thread "RMI TCP Connection(idle)" java.
    运行Intellijidea时output窗口出现该问题:Exceptioninthread“RMITCPConnection(idle)”java.lang.OutOfMemoryError:PermGenspace导致有些功能不能继续执行。运行......
  • 套接字连接以及TCP三次握手详解
    在套接字和地址文章中,我们画出基于套接字接口网络应用的一张图,本文章就是详细解释这些函数具体怎么实现的。socket创建套接字客户端和服务器使用socket函数来创建一个套......
  • tcp的粘包现象
    粘包现象只出现在tcp协议中多条消息之间没有边界,并且还有一大堆优化算法发送端:两条消息很短并且发送的间隔很短接收端:接收消息不及时解决粘包问题的本......
  • tcpdump用法
    超详细的网络抓包神器tcpdump使用指南https://juejin.cn/post/68449040841687695491.基本语法和使用方法tcpdump的常用参数如下:$tcpdump-ieth0-nn-s0-vport80-......
  • TCP与UDP简述
    什么是TCPTCP(TransmissionControlProtocol传输控制协议)是一种面向连接的,可靠的,基于字节流的传输通信协议。1、tcp(TransmissionControlProtocol传输控制协议)2、传......
  • Modbus TCP / BACnet IP 网关BMT-370
    基本说明:BMT-370是BACnetIP从站协议与ModbusTCP主站协议转换的通信网关,可以实现BACnetIP主站与多个ModbusTCP从站之间的数据通信。同时该网关的以太网端支持双以太网......
  • TCP/IP协议
    一、是什么TCP/IP,传输控制协议/网际协议,是指能够在多个不同网络间实现信息传输的协议簇TCP(传输控制协议)一种面向连接的、可靠的、基于字节流的传输层通信协议IP(网际......