UDP协议是什么?作用是什么?

什么是UDP?

UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI参考模型中的传输层协议,它是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
UDP的正式规范是IETF RFC768。UDP在IP报文的协议号是17。
在这里插入图片描述
在OSI模型中,UDP在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。

与所熟知的 TCP(传输控制协议)协议一样,UDP 协议直接位于 IP(网际协议)协议
的顶层。根据 OSI(开放系统互连)参考模型,UDP 和 TCP 都属于传输层协议。 UDP 协议
的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据
的传输单位。每一个数据包的前 8 个字节用来包含报头信息,剩余字节则用来包含具体的传
输数据。

UDP报头

在这里插入图片描述
UDP报头包括4个字段,每个字段占用2个字节(即16个二进制位)。
在IP4v中,“来源连接端口”和“校验和”是可选字段(粉色背景标出)。
在IPv6中,只有来源连接端口是可选字段。

UDP数据报格式有首部和数据两个部分。首部很简单,共8字节。包括:

  • 源端口(Source Port):2字节,源端口号。
  • 目的端口(Destination Port):2字节,目的端口号。
  • 长度(Length):2字节,用于校验UDP数据报的数据字段和包含UDP数据报首部的“伪首部”。其校验方法用IP分组首部中的首部校验和。

伪首部,又称为伪包头(Pseudo Header):是指在TCP的分段或UDP的数据报格式中,在数据报首部前面增加源IP地址、目的IP地址、IP分组和协议字段、TCP或UDP数据报的总长度等共12字节,所构成的扩展首部结构。此伪首部是一个临时的结构,它既不向上也不向下传递,仅仅只是为了保证可以校验套接字的正确性。

在这里插入图片描述

TCP和UDP区别

特征点TCPUDP
传输可靠性面向连接面向非连接
应用场景传输数据量大传输量小
速度

TCP(传输控制协议)提供的是面向连接、可靠的字节流服务。当客户端和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。

UDP(用户数据协议)是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP咋传输数据前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

由于UDP缺乏拥塞控制(congestion control),需要基于网络的机制来减少因失控和高速UDP流量负荷而导致的拥塞崩溃效应。换句话说,因为UDP发送者不能够检测拥塞,所以像使用包队列和丢弃技术的路由器这样的网络基本设备往往就成为降低UDP过大通信量的有效工具。数据报拥塞控制协议(DCCP)设计成通过在诸如流媒体类型的高速率UDP流中,增加主机拥塞控制,来减小这个潜在的问题。

UDP方式传输数据

发送时:先把数据放到报文,写到缓冲区字节数组再传送。
接收时:从缓冲器数组读取,打包到报文。

UDP的应用场景

在选择使用协议的时候,选择UDP必须要谨慎。由于缺乏可靠性且属于非连接导向协议,UDP一般必须允许一定量的数据包丢失、出错和复制粘贴。但有些应用,比如TFTP,需要可靠性保证,则必须在应用层增加根本的可靠机制。但是绝大多数UDP应用都不需要可靠机制,甚至可能因为引入可靠机制而降低性能。流媒体、即时多媒体游戏和IP电话(VoIP)就是典型的UDP应用。如果某个应用需要很高的可靠性,那么可以用传输控制协议(及TCP协议)来代替UDP。

由图一我们可以看到,使用UDP协议的应用有:域名系统(DNS)、简单网络管理协议(SNMP)、路由信息协议(RIP)等等。因为UDP不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以音频、视频和普通数据在传送时使用UDP比较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。比如我们聊天用到的QQ就是使用UDP协议。

UDP的单播、广播、组播

①单播:用于两个主机之间端对端的通信。即一对一(客户端与服务器端点到点连接)。

②广播:用于一个主机对整个局域网上所有主机通信。即一对所有。广播禁止在Internet宽带网上传输(广播风暴)。

③组播(多播):对一组特定的主机进行通信,而不是整个局域网上的所有主机。即一对一组

将网络中同一业务类型主机进行了逻辑上的分组,进行数据收发的时候其数据仅仅在同一分组中进行,其他的主机没有加入此分组不能收发对应的数据。

单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是组播的用途。
注意:只有UDP才有广播、组播的传递方式。而TCP是一对一连接通信。组播的重点是高效的把同一个包尽可能多的发送到不同的,甚至可能未知的设备。但是TCP连接是一对一明确的。

组播的优点

  • 具有同种业务的主机加入同一数据流,共享同一通道,节省了带宽和服务器的优点,具有广播的优点而又没有广播所需要的带宽。
  • 服务器的总带宽不受客户端带宽的限制。由于组播协议由接收者的需求来确定是否进行数据流的转发,所以服务器端的带宽是常量,与客户端的数量无关。
  • 与单播一样,多播是允许在广域网即Internet上进行传输的,而广播仅仅在同一局域网上才能进行。

IP地址的不同

广播:主机发送广播消息时,需要指定目的IP地址255.255.255.255和接受者的端口号。
多播:在多播系统中,有一个源点一组终点。这是一对多的关系。在这种类型的通信中,源地址是一个单播地址,而目的地址则是一个组地址。

IP多播通信必须依赖于IP多播地址,在IPv4中它是 一个D类IP地址,范围从224.0.0.0到239.255.255.255,并被划分为局部连接多播地址、预留多播地址和管理权限多播地址三类。

局部多播地址224.0.0.0~224.0.0.244之间,是为路由协议和其他用途保留的地址,路由器并不转发属于此范围的IP包。
预留多播地址224.0.1.0~238.255.255.255之间,可用于全球范围(如Internet)或网络协议。
本地管理组播地址239.0.0.0~239.255.255.255之间,可供组织内部使用,类似于私有IP地址,不能用于Internet,可限制多播范围。
  • 12
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: UDP协议是用户数据报协议,是一种无连接的传输层协议UDP协议的特点是传输速度快,但不保证数据的可靠性和顺序性,也不提供拥塞控制和流量控制等功能。UDP协议通常用于实时性要求较高的应用,如音视频传输、在线游戏等。 ### 回答2: UDP(用户数据报协议,User Datagram Protocol)是一种传输层协议,用于在网络上发送数据。与TCP(传输控制协议)相比,UDP是一种无连接的协议,它不会在发送数据之前建立虚拟连接。UDP协议有以下几个特点: 1. 无连接性:UDP不需要在数据传输之前进行连接建立,发送方可以直接向接收方发送数据。这种特点使得UDP在实时通信中非常有效,适用于需要快速传输数据的场景,如音频、视频等实时流媒体。 2. 无可靠性:UDP不提供数据包的可靠传输,也不进行数据包的重传。如果发生数据包丢失或损坏,UDP不会重新发送数据包,而是继续向后传输。这种特点使得UDP更加轻量,减少了协议的开销。 3. 面向报文:UDP将应用层传下来的报文封装成数据包进行传输,每个数据包都是独立的,以单个数据包为单位发送和接收。发送端的数据包大小不会被限制,接收方也可以按照自己的需求进行分片重组。 4. 没有拥塞控制:UDP不支持拥塞控制,即发送方不会根据网络拥塞情况调整发送速率。这种特点使得UDP在网络拥塞较严重的情况下容易出现丢包现象。 5. 不保证顺序:UDP不保证数据包的顺序,即发送方传输的顺序可能与接收方接收的顺序不一致。这种特点对于某些应用来说可能不是很重要,但对于某些应用,如音视频流传输而言,可能会对传输质量产生影响。 综上所述,UDP协议是一种无连接的、不可靠的、面向报文的传输层协议。它适用于实时通信、无需可靠性和顺序的应用场景,在网络开销较低、延迟要求较高的应用中得到广泛应用。 ### 回答3: UDP(User Datagram Protocol,用户数据报协议)是一种无连接、不可靠的传输协议,它位于IP(Internet Protocol)协议之上,用于在网络上传输数据。 UDP协议的特点主要有以下几点: 1. 无连接性:UDP在通信之前不需要进行握手或建立连接,发送数据时只需指定目标IP地址和端口号即可。这使得UDP能够快速传输数据,适合于实时性要求较高的应用场景。 2. 不可靠性:UDP协议没有提供数据传输的可靠性保证,不会对数据的正确性和有序性进行检测和处理。如果数据包在传输过程中丢失、损坏或顺序错乱,UDP协议不会进行重传或重组,因此数据的完整性和顺序性需要应用层自行处理。 3. 高效性:由于UDP协议没有连接的建立和断开过程,减少了传输时延,以及没有拥塞控制的机制,使得UDP的传输效率更高。此外,UDP头部开销较小,每个数据报只有8字节的头部,相比之下TCP头部则要多出20字节。 4. 适用于广播和多播:UDP协议支持向多个目标同时发送数据的广播和多播功能。这种特点使得UDP在流媒体、实时视频和音频、多人在线游戏等应用中得到了广泛应用。 5. 应用灵活性:UDP协议没有像TCP协议那样的流控制和拥塞控制机制,应用程序可以按照自己的需求设计和实现特定的数据传输策略,具有更高的灵活性。 总结来说,UDP是一种简单、高效、适用于实时性要求高的传输协议,主要适用于要求传输速度较快、数据传输可靠性要求较低的应用场景,如视频、音频传输,以及一些实时性要求较高的游戏和通讯应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值