UDP(英文:User Datagram Protocol)协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。
UDP 协议可以支持组播(Multicast),组播在发送者和每一接收者之间实现点对多点网络通信,如果一台发送者同时给多个的接收者传输相同的数据,仅需复制一份的相同数据包,避免了重复传送相同数据报,大大提高了数据传送效率,减少了骨干网络出现拥塞的可能性。
采用IPv4协议时,通过把224.0.0.0-239.255.255.255的D类地址作为目的网络地址,即可实现IPv4组播;否则输入其它地址,将变为UDP单播。
采用IPv6协议时,通过把目标地址设置为以FF开头的地址,即可实现IPv6组播。
串流直播完全支持UDP协议,既支持UDP单播,也支持UDP组播;IP协议版本既支持IPv4,也支持IPv6。串流直播采用组播协议时,发送的媒体数据包均采用MPEG-2 TS 流协议进行封装,因此能够适应大多数终端接收,目前能够接收串流直播输出的UDP流的软件由VLC、ffplay等软件。
UDP协议的接收URL格式为:udp://[sourceip]@[multicastgroup]:port,其中multicastgroup为组播地址,如果为单播UPD,则省略,sourceip为源服务器地址,用于支持IGMPv3的有源组播。
例如:
udp://@234.2.3.4:1234 --接收组播地址为234.2.3.4,端口为1234的组播
udp://@:1234 --接收发送到本机UDP端口为1234的UDP数据
udp://192.168.1.100@234.2.3.4:1234 --接收组播地址为234.2.3.4,发送服务器IP地址为192.168.1.100,端口为1234的组播数据,这样可以过滤掉其它主机发送到234.2.3.4:1234地址的数据。