UDP协议简介
扫描二维码
随时随地手机看文章
用户数据报协议 (User Datagram Protocol, UDP)是一个简单的面向无连接的,不可靠的数据报的传输层(transport layer)协议,IETF RFC 768是UDP的正式规范。 在TCP/IP模型中,UDP为网络层(network layer)以上和应用层(application layer)以下提供了一个简单的接口。UDP只提供数据的不可靠交付,它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份(所以UDP有时候也被认为是不可靠的数据报协议)。UDP在IP数据报的头部仅仅加入了复用和数据校验(字段)。由于缺乏可靠性,UDP应用一般必须允许一定量的丢包、出错和复制。
用户数据报协议(UDP,User Datagram Protocol)是IP上层的另一重要协议,它是面向无连接的、不可靠的数据报传输协议。它仅仅将要发送的数据报传送至网络,并接收从网上传来的数据报,而不与远端的UDP模块建立连接。UDP为用户的网络应用程序提供服务,例如网络文件系统(NFS,Network File System)和简单网络管理协议(SNMP,Simple Network Management Protocol)等。UDP保留应用程序所定义的消息边界,它既不会将两个应用程序的消息连接到一起,也不会把一个应用程序的消息分成多个部分。UDP同样有自己的校验和字段,但当两个UDP模块之间仅通过以太网连接时,也可以不需要校验和。
UDP首部字段由4个部分组成,其中两个是可选的。各16-bit的源端口和目的端口用来标记发送和接受的应用进程。因为UDP不需要应答,所以源端口是可选的,如果源端口不用,那么置为零。在目的端口后面是长度固定的以字节为单位的长度域,用来指定UDP数据报包括数据部分的长度,长度最小值为8 (octets)。首部剩下地16-bit是用来对首部和数据部分一起做校验和的,这部分是可选的,但在实际应用中一般都使用这一功能。由于缺乏可靠性,UDP应用一般必须允许一定量的丢包、出错和复制。有些应用,比如TFTP,如果需要则必须在应用层增加根本的可靠机制。但是绝大多数UDP应用都不需要可靠机制,甚至可能因为引入可靠机制而降低性能。流媒体Streaming media、实时多媒体游戏和voice over IP (VoIP)就是典型的UDP应用。如果某个应用需要很高的可靠性,那么可以用传输控制协议Transmission Control Protocol来代替UDP。由于缺乏拥塞避免和控制机制,需要基于网络的机制来减小因失控和高速UDP流量负荷而导致的拥塞崩溃效应。换句话说,因为UDP发送者不能够检测拥塞,所以像使用包队列和丢弃技术的路由器这样的网络基本设备往往就成为降低UDP过大通信量的有效工具。数据报拥塞控制协议Datagram Congestion Control Protocol (DCCP)设计成通过在诸如流媒体类型的高速率UDP流中增加主机拥塞控制来减小这个潜在的问题。典型网络上的众多使用UDP协议的关键应用一定程度上是相似的。这些应用包括域名系统Domain Name System (DNS)、简单网络管理协议simple network management protocol (SNMP)、动态主机配置协议Dynamic host configuration protocol (DHCP)和路由信息协议Routing Information Protocol (RIP)等等。
为了在给定的主机上能识别多个目的地址,同时允许多个应用程序在同一台主机上工作并能独立地进行数据报的发送和接收,设计用户数据报协议UDP。使用UDP协议包括:TFTP、SNMP、NFS、DNSUDP使用底层的互联网协议来传送报文,同IP一样提供不可靠的无连接数据报传输服务。它不提供报文到达确认、排序、及流量控制等功能。