1、建立连接方式的差异
1.1TCP
说到 TCP 建立连接,相信大多数人脑海里肯定可以浮现出一个词,没错就是--“三次握手”。TCP 通过“三次握手”来建立连接,再通过“四次挥手”断开一个连接。在每次挥手中 TCP 做了哪些操作呢?
流程如下图所示(TCP的三次握手和四次挥手):
上图就从客户端和服务端的角度,清楚的展示了 TCP 的三次握手和四次挥手。可以看到,当 TCP 试图建立连接时,三次握手指的是客户端主动触发了两次,服务端触发了一次。
我们可以先明确一下 TCP 建立连接并且初始化的目标是什么呢?
- 1)初始化资源;
- 2)告诉对方我的序列号。
所以三次握手的次序是这样子的:
- 1)client端首先发送一个SYN包告诉Server端我的初始序列号是X;
- 2)Server端收到SYN包后回复给client一个ACK确认包,告诉client说我收到了;
- 3)接着Server端也需要告诉client端自己的初始序列号,于是Server也发送一个SYN包告诉client我的初始序列号是Y;
- 4)Client收到后,回复Server一个ACK确认包说我知道了。
其中的 2 、3 步骤可以简化为一步,也就是说将 ACK 确认包和 SYN 序列化包一同发送给 Client 端。到此我们就比较简单的解释了 TCP 建立连接的“三次握手”。
相关视频参考【该账户还有许多相关学习视频可自行查阅】
如何使用DUP做到低延迟-王者荣耀/FFmpeg/webRTC/rtmp/hls/rtsp/ffplay/srs
1.2UDP
我们都知道 TCP 是面向连接的、可靠的、有序的传输层协议,而 UDP 是面向数据报的、不可靠的、无序的传输协议,所以 UDP 压