User Datagram Protocol 用户数据报协议
无连接的传输层协议,常用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序等可靠性由应用层负责(可在协议中增加包的编号),提供面向事务的简单不可靠信息传送服务。
在IP报文的协议号是17.
UDP在IP报文中的位置如图所示:
报头
UDP报头由4个域(源端口号、目标端口号、数据报长度、校验值)组成,其中每个域各占用2个字节
使用端口号为不同的应用保留其各自的数据传输通道。UDP和TCP正是采用这一机制实现对同一时刻内多项应用同时发送和接收数据的支持,数据发送一方(可以是客户端或服务器端)将数据包通过源端口发出,而数据接收一方则通过目标端口接收。
使用报头中的校验值来保证数据的安全。校验值首先在数据发送方通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值将不会相符,由此UDP协议可以检测是否出错。这与TCP协议是不同的,后者要求必须具有校验值。
缺点
不提供数据包(每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据)分组、组装和不能对数据包进行排序、以及流量控制字段的, 当报文发送之后是无法得知其是否安全完整到达的,可能会出现丢包现象。(常用于包括网络视频会议系统在内的众多的客户/服务器模式的网络应用)
优点
在数据传输过程中延迟小、数据传输效率高。可用来实现广播发送,适合一次传输少量数据,对可靠性要求不高或者可以保障可靠性的应用程序。
常见基于UDP的协议和端口号
应用协议 | 端口号 | 描述 |
DNS | 53 | Domain Name System,域名系统。域名解析 万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。 |
TFTP | 69 | Trivial File Transfer Protocol, 简单文件传输协议。 |
SNMP | 161 | simple network management protocol 简单网络管理协议 SNMP为应用层协议, ,是TCP/IP协议族的一部分。 |