摘要:UDP是ISO参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务UDP协议基本上是IP协议与上层协议的接口。本文中对UDP协议进行一下具体的讲述,在第一章中将介绍UDP的基本概念,UDP协议的端口,长度和效验及其计算等方面的问题;在第二章中介绍了UDP数据的封装与拆装以及它的应用。
第一章UDP基本原理
1.1  UDP基本概念以及适用范围:
1.1.1  UDP的基本概念
UDP,即用户数据报协议(User Datagram Protocol)[5]。作为运输层协议,UDP使用端口号来完成进程到进程之间的通信,UDP在运输层提供非常有限的流控制机制,在收到分组时没有流控制也没有确认。但是,UDP提供了某种程度的差错控制。如果UDP检测出在收到的分组有一个差错,它就悄悄的丢弃这个分组。UDP不负责为进程提供连接机制,它只从进程接收数据单元,并将他们不可靠的交付给接收端。数据单元必须足够小,能够装进到一个UDP分组中。所以,UDP提供的是无连接的、不可靠的运输服务。
1.1.2  UDP的适用范围[7]
    (1)UDP适用于需要简单的请求-响应通信,而较少考虑流控制和差错控制的进程;
    (2)UDP适用于具有内部流控制和差错控制机制的进程。例如,简单文件传送协议(TFTP)的进程就包括流控制和差错控制,它能够很容易的使用UDP;
    (3)对多播和广播来说,UDP是个合适的运输协议。多播和广播能力已经嵌入在UDP软件中,但没有嵌入到TCP软件中;
  (4)UDP可用于进程管理,如SMTP;
(5)UDP可用于某些路由选择更新协议,如路由选择信息协议RIP。
1.1.3  UDP协议的建立以及使用的优点[3]
协议是建立在IP协议之上的,从进程的缓冲区输出一个UDP数据报,把生成的UDP数据报直接封装在IP 数据报中进行传输,因此在传输层使用UDP协议时,发送端不需要发送缓冲区,图1所示:
  UDP数据报
  IP数据报
                            图1
尽管与IP协议类似,UDP提供的也是无连接的,不可靠的数据报传递服务,但是,有别于IP协议的是:
    1.UDP提供了端到端的通信机制
    2.增加了对数据区的完整性校验
    在网络通信中使用UDP协议的好处:在少量数据的传输时,使用UDP协议传输信息流,可以减少TCP连接的过程,提高工作效率。但是使用UDP协议还有很多不足:当使用UDP协议
传输信息流时,用户应用程序必须负责解决数据报排序,差错确认等问题。在多媒体应用中,常用TCP支持数据传输,UDP支持音频/视频传输。
1.2  UDP特点及其其应用[8]
(1) UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当UDP它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。   
socket通信在哪一层(2) 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。   
(3) UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。   
(4) 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。   
(5)UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表(这里面有许多参数)。 
(6)UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。              由于缺乏拥塞控制(congestion control),需要基于网络的机制来减小因失控和高速UDP流量负荷而导致的拥塞崩溃效应。换句话说,因为UDP发送者不能够检测拥塞,所以像使用包队列和丢弃技术的路由器这样的网络基本设备往往就成为降低UDP过大通信量的有效工具。数据报拥塞控制协议(DCCP)设计成通过在诸如流媒体类型的高速率UDP流中增加主机拥塞控制来减小这个潜在的问题。虽然UDP是一个不可靠的协议,但它是分发信息的一个理想协议。
例如,在屏幕上报告股票市场、在屏幕上显示航空信息等等。UDP也用在路由信息协议RIP(Routing Information Protocol)[5]中修改路由表。在这些应用场合下,如果有一个消息丢失,在几秒之后另一个新的消息就会替换它。UDP广泛用在多媒体应用中,例如,Progressive Networks公司开发的RealAudio软件,它是在因特网上把预先录制的或者现场音
乐实时传送给客户机的一种软件,该软件使用的RealAudio audio-on-demand protocol协议就是运行在UDP之上的协议,大多数因特网电话软件产品也都运行在UDP之上。UDP 只是在IP的数据服务之上增加了很少的一点功能,即端口的功能和差错检验的功能。但是UDP不提供可靠性:他把应用程序封装后传给IP层,被IP层封装后发送出去,但是不保证他们到达目的地,但UDP在某些方面有其特殊的优点[10]:1.发送数据前不需要建立连接2.UDP的主机不需要维持复杂的链接状态表3.UDP用户数据报只有8个字节的首部开销4.网络出现的拥塞不会使源主机的发送数据降低,这对某些实现应用是很重要的。
1.3  UDP协议中涉及的的几个基本概念[9]
1.3.1  点到点通信
点到点通信:是由网络互联层来实现的网络互联层只屏蔽了不同网络之间的差异,构建了一个逻辑上的通信网络,因此他只解决了数据通信问题。
1.3.2  端到端通信
端到端通信:IP协议在IP数据包的包头增添了IP地址,根据IP地址,路由器可以一站一站的将数据包从源主机路由到目标主机,依靠IP地址,IP协议实现了点到点的通信如图2所示:,它是建立在点到点通信基础上的,他是比网络互联层通信更高一级的通信方式,完成应用程序(进程)之间的通信,端到端的通信是由传输层来实现的。
网络1                                                                    网络2

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。