网络知识

当 TCP 建立连接之后,TCP 和 UDP 的实时性是不是就差不多了?

TCP 和 UDP


1、TCP 和 UDP 的区别?

TCP TCP 时面向连接的协议,在传输数据之前,需要双方建立可靠的连接,即通过三次握手建立 TCP 连接

UDP UDP 是非连接的协议,即发送端和接收端之间不建立连接,他只负责将数据包发送出去,不保证数据包的到达,因此数据包可能存在丢失、乱序、重复,也没有错误或者纠正机制

2、两者的使用场景

TCP 适用于对可靠性要求比较高的应用,比如网页浏览、远程调用、文件传输等

UDP 适用于对实时性要求较高的应用,比如视频、直播等场景,偶尔丢失数据相对于连接建立和恢复带来的延迟更加可以接收

3、两者的实时性谁更好一些?

UDP 的实时性更好一些,UDP 主要从以下几个方面来保证了较好实时性:

  • 无连接: UDP 传输数据不需要建立连接,因此速度是比较快的
  • 低延迟: UDP 发送数据时,不需要等待确认、恢复重传,因此大大降低了传输过程中的延迟
  • 简单的协议头: UDP 的协议头只有 8 字节,TCP 的协议头至少 20 字节,因此 UDP 传输时的开销也比较小

4、如果 TCP 建立连接之后,TCP 和 UDP 的实时性谁会更好一些呢?

上边已经说了 UDP 保证实时性的几个方面,可以看到并不只是因为建立连接才会导致 TCP 的实时性较差

还有其他因素,因为 TCP 是保证 数据可靠、有序 ,因此 TCP 发送数据之后需要等待接收方确认,并且有重传机制,来保证数据到达接收方,这些都会导致在传输过程中的延时较高

TCP 还有 流量控制 和 拥塞控制 ,因此会根据网络拥堵情况调整数据包发送速率,在保证了数据包可靠性的同时,也带来了一定的传输延时

因此,TCP 建立连接之后,UDP 的实时性还是比 TCP 好得多,因为实时性好并不只是因为 UDP 是无连接的