TCP与UDP的区别与适用场景

简介: TCP与UDP的区别与适用场景

TCP与UDP的区别与适用场景

文章目录

概念

TCP

TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。

  • 面向连接:一定是「一对一」才能连接,不能像 UDP 协议可以一个主机同时向多个主机发送消息,也就是一对多是无法做到的;
  • 可靠的:无论的网络链路中出现了怎样的链路变化,TCP 都可以保证一个报文一定能够到达接收端;
  • 字节流:用户消息通过 TCP 协议传输时,消息可能会被操作系统「分组」成多个的 TCP 报文,如果接收方的程序如果不知道「消息的边界」,是无法读出一个有效的用户消息的。并且 TCP 报文是「有序的」,当「前一个」TCP 报文没有收到的时候,即使它先收到了后面的 TCP 报文,那么也不能扔给应用层去处理,同时对「重复」的 TCP 报文会自动丢弃。

UDP

用户数据报协议(UDP):UDP(用户数据报协议)是一个简单的面向数据报的传输层协议。

提供的是非面向连接的、不可靠的数据流传输。

UDP不提供可靠性,也不提供报文到达确认、排序以及流量控制等功能。它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。因此报文可能会丢失、重复以及乱序等。但由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

TCP优缺点

优点:可靠、稳定

TCP的可靠体现在TCP在传输数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完之后,还会断开连接用来节约系统资源。

缺点:慢,效率低,占用系统资源高,易被攻击

在传递数据之前要先建立连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞机制等都会消耗大量时间,而且要在每台设备上维护所有的传输连接。然而,每个链接都会占用系统的CPU、内存等硬件资源。因为TCP有确认机制、三次握手机制,这些也导致TCP容易被利用,实现DOS、DDOS、CC等攻击。

UDP优缺点

优点:快

比TCP稍安全UDP没有TCP拥有的各种机制,是一个无状态的传输协议,所以传递数据非常快,没有TCP的这些机制,被攻击利用的机制就少一些,但是也无法避免被攻击。

缺点:不可靠,不稳定

因为没有TCP的那些机制,UDP在传输数据时,如果网络质量不好,就会很容易丢包,造成数据的缺失。

区别

TCP和UDP有如下区别:

  1. 连接:TCP面向连接的传输层协议,即传输数据之前必须先建立好连接;UDP无连接。
  2. 服务对象:TCP点对点的两点间服务,即一条TCP连接只能有两个端点;UDP支持一对一,一对多,多对一,多对多的交互通信。
  3. 可靠性:TCP可靠交付:无差错,不丢失,不重复,按序到达;UDP尽最大努力交付,不保证可靠交付。
  4. 拥塞控制/流量控制:TCP有拥塞控制和流量控制保证数据传输的安全性;UDP没有拥塞控制,网络拥 塞不会影响源主机的发送效率。
  5. 报文长度:TCP动态报文长度,即TCP报文长度是根据接收方的窗口大小和当前网络拥塞情况决定的;UDP面向报文,不合并,不拆分,保留上面传下来报文的边界。
  6. 首部开销:TCP首部开销大,首部20个字节;UDP首部开销小,8字节(源端口,目的端口,数据长度,校验和)。
  7. 适用场景(由特性决定):数据完整性需让位于通信实时性,则应该选用TCP 协议(如文件传输、重要状态的更新等);反之,保证数据完整性则使用 UDP 协议(如视频传输、实时通信等)。

适用场景(网络稳定性要求)

TCP

TCP:当对网络通讯质量有要求时,比如HTTP、HTTPS、FTP等传输文件的协议, POP、SMTP等邮件传输的协议

对可靠连接有要求时,比如付费、加密数据等等方向都需要依靠TCP

UDP

UDP:对网络通讯质量要求不高时,要求网络通讯速度要快的场景。

所以主要使用在以下场景:

  • 包总量较小的通信(DNS、SNMP)
  • 视频、音频等多媒体通信(即时通信)
  • QQ就是使用的UDP协议。
  • 广播通信

所以,TCP对网络稳定性要求高,而UDP相对弱一些。


相关文章
|
4天前
|
网络协议 网络性能优化
UDP与TCP:了解这两种网络协议的不同之处
UDP与TCP:了解这两种网络协议的不同之处
|
5天前
|
网络协议
TCP和UDP可以绑定同样的端口吗?
TCP和UDP可以绑定同样的端口吗?
|
5天前
|
网络协议 网络性能优化 Go
【JaveEE】UDP 与 TCP 原理(下)
【JaveEE】UDP 与 TCP 原理
17 1
|
5天前
|
XML JSON 网络协议
【JaveEE】UDP 与 TCP 原理(上)
【JaveEE】UDP 与 TCP 原理
16 3
|
5天前
|
网络协议 Unix 网络性能优化
网络编程 —— TCP 和 UDP 编程详解
网络编程 —— TCP 和 UDP 编程详解
网络编程 —— TCP 和 UDP 编程详解
|
5天前
|
网络协议 网络性能优化 网络架构
|
5天前
|
网络协议 网络性能优化
运输层中的UDP和TCP协议
总结来说,UDP适用于那些要求速度和实时性高于可靠性的应用,而TCP适用于要求数据可靠性和完整性的应用。选择使用哪种协议取决于您的应用需求。
18 1
|
5天前
|
网络协议 算法 网络性能优化
TCP和UDP详解2
TCP和UDP详解
34 0
|
5天前
|
网络协议 算法 网络性能优化
TCP 和 UDP哪个更好
TCP 和 UDP哪个更好
15 0
|
5天前
|
网络协议 程序员 API
LabVIEWCompactRIO 开发指南19 原始以太网(TCP/UDP)
LabVIEWCompactRIO 开发指南19 原始以太网(TCP/UDP)
12 0