🍁博主简介:
🏅云计算领域优质创作者
🏅2022年CSDN新星计划python赛道第一名
🏅2022年CSDN原力计划优质作者
🏅阿里云ACE认证高级工程师
🏅阿里云开发者社区专家博主
💊交流社区:CSDN云计算交流社区欢迎您的加入!
目录
1、UDP协议简介
2、UDP协议报文格式和常用的端口
3、UDP协议特点
4、UDP协议的数据传输流程
5、UDP协议的应用场景
6、UDP协议的优缺点
7、TCP和UDP协议比较
UDP(用户数据报协议)是OSI参考模型中传输层的一种无连接协议。
UDP协议是一种简单、高效的传输协议,适用于对实时性要求高、但对可靠性要求不高的场景。然而,在使用UDP协议时,需要根据实际需求进行权衡和优化
1、UDP协议简介
-
定义:UDP是OSI模型中第四层(传输层)的协议,位于IP协议之上,提供面向事务的简单不可靠信息传送服务。其正式规范由IETF RFC 768定义。
-
中文名:用户数据报协议
-
特点:无连接、不保证可靠交付、面向报文、首部开销小
-
用途:为应用程序提供一种以最少的协议机制向其他程序发送消息的过程
2、UDP协议报文格式和常用的端口
UDP报文包括首部(Header)和数据(Payload)两部分,但它不像TCP报文有那么复杂的首部内容。UDP报文首部只有8个字节,由4个字段组成,每个字段的长度是2字节,如图所示:
因为UDP报头使用两个字节存放端口号,所以端口号的有效范围从0到65535。部分常用的端口如下表所示
3、UDP协议特点
无连接
-
在发送数据之前不需要建立连接,发送结束时也没有连接可以释放,因此减少了开销和发送数据之前的时延。
-
主机不需要维持具有许多参数的、复杂的连接状态表。
不保证可靠交付
-
UDP使用尽最大努力交付,即不保证数据包的可靠传输。如果数据包在传输过程中丢失或损坏,接收方将无法得到这个数据包,且UDP不会进行重传。
面向报文
-
UDP对应用程序交下来的报文,再添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
无拥塞控制
-
UDP不进行拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这使得UDP适合那些对实时性要求高、允许一定数据丢失的应用。
支持多种交互通信
-
UDP支持一对一、一对多、多对一和多对多的交互通信。
首部开销小
-
UDP的首部只有8个字节,比TCP的首部小得多,这减少了网络开销。
4、UDP协议的数据传输流程
UDP协议是面向无连接的,即发送数据之前不需要建立连接(无TCP协议复杂的三次握手,四次挥手的过程),发送数据就是简单的把数据包封装一下,然后从网卡发出去,数据包之间并没有状态上的联系。UDP 协议基本上是 IP 协议与上层协议的接口,UDP协议使用IP层提供的服务将应用层得到的数据从一台主机的某个应用进程传递到另一台主机的某个应用进程。
举个例子:
当传输层从IP层收到UDP数据报文时,根据UDP数据报文首部中的目的端口,把UDP数据报文通过相应的端口传递给应用进程,如下图所示:
UDP协议的数据传输流程相对简单,主要包括两个步骤:
发送数据
-
向目标地址和端口号发送需要传输的数据。
接收数据
-
接收从源地址和源端口号发来的数据包。
5、UDP协议的应用场景
由于其高效性和实时性,UDP协议被广泛应用于多种业务场景,包括:
视频和音频流传输
-
如视频会议、实时直播等。在这些应用中,数据的实时性至关重要,而轻微的数据丢失相对于传输延迟来说是可以接受的。
在线游戏
-
尤其是实时多人在线游戏。UDP由于无需建立连接,且没有TCP的握手和断开过程的连接开销,因此能够快速处理海量数据包,非常适合用于实时游戏数据的传输。
DNS查询
-
当我们在浏览器中输入一个网址时,计算机需要通过DNS查询将该网址转换为对应的IP地址。UDP协议能够在网络出现问题时快速检查DNS错误,确保网址的迅速解析。
网络广播
-
UDP支持广播功能,使得数据可以同时传输到多个客户端。这一特性在网络广播业务中具有显著优势,如校园广播、公司内部通知广播等场景。
实时通信应用
-
如即时消息传递、VoIP(网络电话)等。这些应用要求数据传输速度快、延迟低,而UDP正好满足这些需求。
6、UDP协议的优缺点
优点
-
传输效率高:由于UDP协议简单、首部开销小,因此传输效率高。
-
实时性好:无需建立连接和进行复杂的握手过程,适合实时性要求高的应用。
缺点
-
可靠性差:不保证数据的可靠传输,可能出现数据包丢失或损坏的情况。
-
无拥塞控制:可能导致网络拥塞时数据包丢失严重。
7、TCP和UDP协议比较
TCP(传输控制协议)和UDP(用户数据报协议)是网络通信中两种常用的传输层协议,它们各自具有不同的特点和适用场景。
通过下方图解想必是非常生动形象的展示tdp和udp的区别了吧!
可靠性
-
TCP提供可靠的数据传输服务。它通过序列号、确认机制和重传机制来确保数据的完整性和有序性。如果数据在传输过程中出现丢失或错误,TCP会自动重传丢失的数据,保证数据的可靠传输。
-
UDP则不提供可靠的数据传输服务。它无连接、不保证可靠交付,因此主机不维持复杂的连接状态。UDP发送数据之后不会确认是否到达,也不会重传丢失的数据。因此,UDP更适用于一些对可靠性要求相对较低的应用场景,如音频和视频传输。
速度
-
由于TCP需要确保数据的可靠传输,它需要额外的控制信息来维护连接状态和数据的传输控制。这使得TCP相对UDP更加复杂,在传输效率上稍低一些。
-
UDP没有连接建立和断开的开销,只需要很少的控制信息,因此传输速度较快。UDP适用于一些实时性要求较高的应用,如在线游戏和实时视频传输。
连接性
-
TCP是面向连接的协议。在数据发送和接收前,必须先建立连接,建立连接后才能发送数据。这种连接性使得TCP能够保证数据传输的可靠性。
-
UDP是无连接的协议。它可以直接发送数据,不需要先建立连接。这使得UDP的开销较小,并且发送数据的实时性较高。但缺点是无法保证数据传输的可靠性。
数据包大小
-
TCP在传输数据时,将数据分割成较小的数据块,并根据网络状况调整数据块的大小。这使得TCP可以适应不同网络环境下的数据传输。
-
UDP的数据包大小没有限制,它可以发送任何大小的数据。但在实际使用中,通常会将数据包大小限制在网络传输的最大MTU(最大传输单元)以内。
应用场景
-
TCP适用于需要可靠传输的场景,如文件传输、电子邮件发送等。在这些场景中,数据的完整性和有序性至关重要。
-
UDP适用于对实时性要求较高、对可靠性要求相对较低的场景,如在线游戏、实时视频传输等。在这些场景中,数据的传输速度更为重要,而数据的丢失或错误可能不会对应用产生严重影响。
TCP和UDP服务的是程序,但程序和人是一样的,可以你来我往进行交流,也可以一股脑的倾诉。
TCP就是彼此之间坦诚交流。消息有没有收到,收到的信息是否一致,都可以有及时的反馈。
UDP就是倾诉,我不管你有没有听进去,不管你有无反馈,我就要不停地说。