扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
2010年7月6日
关键字: 网络
作为TCP协议集中很重要的一类协议——UDP协议的具体概念和功能以及作用。我们接下来就详细介绍一下。希望大家能够认识一下这个协议。
UDP协议
UDP协议(User Datagram Protocol,用户数据报文协议)与TCP协议一样也是OSI传输层上的一个通信协议。不过UDP协议是一个面向无连接的协议(TCP是向面连接的协议)。一个UDP连接的建立,不必象TCP协议那样需要服务器端侦听,也不需要有客户机端请求连接和服务器端建立连接后双方才能通信。
UDP协议概述
用户数据报协议(UDP)是一个简单的面向数据报的传输层协议,IETF RFC 768是UDP的正式规范。在TCP/IP模型中,UDP为网络层(network layer)以下和应用层(application layer)以上提供了一个简单的接口。
UDP只提供数据的不可靠交付,它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份(所以UDP有时候也被认为是不可靠的数据报协议)。UDP在IP数据报的头部仅仅加入了复用和数据校验(字段)。
UDP首部字段由4个部分组成,其中两个是可选的。各16位的源端口和目的端口用来标记发送和接受的应用进程。因为UDP不需要应答,所以源端口是可选的,如果源端口不用,那么置为零。在目的端口后面是长度固定的以字节为单位的长度字段,用来指定UDP数据报包括数据部分的长度。
由于缺乏可靠性,UDP应用一般必须允许一定量的丢包、出错和复制。由于UDP协议缺乏拥塞避免和控制机制,需要基于网络的机制来减小因失控和高速UDP流量负荷而导致的拥塞崩溃效应。
UDP协议只在IP的数据报服务之上增加了很少的功能,这就是端口的功能(有了端口,运输层就能进行复用和分用)和差错检测的功能。另外,UDP协议应用程序可以是客户机,也可以是服务器程序,不必向TCP协议应用程序那样必须分别建立客户机程序和服务器程序。在远程控制软件中,如果在局域网内部传输屏幕信息,则使用UDP协议比较容易实现。但UDP协议不提供可靠性,它的可靠性是交给其他网络设备来解决。同时用UDP协议来传输的数据一般较小,它需要IP协议来为它对数据进行分段。理论上IP协议数据报的最大长度为65535个字节 。
UDP数据报格式
在这个数据报格式中,源端口是可选域,当其有意义时,指的是发送应用程序的UDP端口。如果不使用它,则在此域中填0。目的端口在有特定的目的网络地址时有意义,指目标应用程序的UDP端口。长度指的是此用户数据报长度的八进制表示(这表明最小的数据报长度是8)。校验和同样是一种简单的数学运算,用于检查UDP消息中的位级错误。是对IP头、UDP头和数据中信息包头的数位取反之和,再取反得到的。UDP协议包不具备TCP协议包复杂的可靠性与控制机制,没有“序列”和“确认”两个字段。
UDP协议的应用
也许有的读者会问,既然UDP是一种不可靠的网络协议,那么还有什么使用价值或必要呢?其实不然,在有些情况下UDP协议可能会变得非常有用。因为UDP具有TCP所望尘莫及的速度优势。虽然TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。反观UDP由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大降低了执行时间,使速度得到了保证。
关于UDP协议的最早规范是RFC768,1980年发布。尽管时间已经很长,但是UDP协议仍然继续在主流应用中发挥着作用。包括视频电话会议系统在内的许多应用都证明了UDP协议的存在价值。因为相对于可靠性来说,这些应用更加注重实际性能,所以为了获得更好的使用效果(例如,更高的画面帧刷新速率)往往可以牺牲一定的可靠性(例如,会面质量)。这就是UDP和TCP两种协议的权衡之处。根据不同的环境和特点,两种传输协议都将在今后的网络世界中发挥更加重要的作用.
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。