您的位置:首页 > 理论基础 > 计算机网络

网络协议 -- UDP协议(1)介绍

2017-12-28 16:12 393 查看

一、什么是UDP协议?

UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI参考模型中的传输层协议,它是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。

UDP的正式规范是IETF RFC768。UDP在IP报文的协议号是17。

ISO七层模型:



1.1 UDP报头

UDP报头的结构如图:



UDP报头由4个部分组成,其中两个是可选的(粉红背景标出部分):

各16bit的
来源端口
目的端口
用来标记发送和接受的应用进程。因为UDP不需要应答,所以来源端口是可选的,如果来源端口不用,那么置为零。

在目的端口后面是长度固定的以字节为单位的报文长度域,用来指定UDP数据报包括数据部分的长度,长度最小值为8byte。

首部剩下地16bit是用来对首部和数据部分一起做
校验和
(Checksum)的,这部分是可选的,但在实际应用中一般都使用这一功能。

UDP和TCP的
校验和
都覆盖到了他们的首部和数据,而之前介绍的IP首部的
校验和
只覆盖了IP首部。

1.2 TCP和UDP区别

特征点TCPUDP
是否连接面向连接面向非连接
传输可靠性可靠会丢包,不可靠
应用场景传输数据量大传输量小
速度
TCP(传输控制协议)提供的是面向连接、可靠的字节流服务。当客户端和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。

UDP(用户数据报协议)是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

由于UDP缺乏拥塞控制(congestion control),需要基于网络的机制来减少因失控和高速UDP流量负荷而导致的拥塞崩溃效应。换句话说,因为UDP发送者不能够检测拥塞,所以像使用包队列和丢弃技术的路由器这样的网络基本设备往往就成为降低UDP过大通信量的有效工具。数据报拥塞控制协议(DCCP)设计成通过在诸如流媒体类型的高速率UDP流中,增加主机拥塞控制,来减小这个潜在的问题。

1.3 应用场景

由于缺乏可靠性且属于非连接导向协议,UDP的应用一般必须允许一定量的丢包、出错和复制粘贴。但有些应用,比如TFTP,需要可靠性保证,则必须在应用层增加根本的可靠机制。但是绝大多数UDP应用都不需要可靠机制,甚至可能因为引入可靠机制而降低性能。流媒体、即时多媒体游戏和IP电话(VoIP)就是典型的UDP应用。如果某个应用需要很高的可靠性,那么可以用传输控制协议(即TCP协议)来代替UDP。

使用UDP协议的应用有:域名系统(DNS)、简单网络管理协议(SNMP)、动态主机配置协议(DHCP)、路由信息协议(RIP)等等。因为UDP不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失几个数据包,也不会对接收结果产生太大影响。

二、单播、多播、广播、组播

假设A(all简写)代表所有的机器,M(multiple简写)代表A中的多个机器,G(group简写)代表一组机器,1代表一台机器,那么:

1 -> 1 就是单播;
1 -> M 就是多播;
1 -> A 就是广播;
1 -> G 就是组播;

当M=A时,多播就是广播;
当M=G时,多播就是组播;


多播包括组播和广播,组播、广播都是多播的一种表现形式。

2.1 单播

单播是主机之间“一对一”的通讯模式。发送方需要指定一个接收方的IP和端口,只有这个接收方会收到数据报。不会对子网内的其他机器产生影响。

在单播模式下,服务器针对每个客户机都要发送数据流,
服务器流量=客户机数量×客户机流量
,在客户机数量大、每个客户机流量大的应用(如流媒体)中,服务器将不堪重负。

2.2 广播

广播是主机之间“一对所有”的通讯模式。子网的一台主机作为发送发广播一条信息,该子网中的所有主机都可以接收到该信息(不管你是否需要该信息)。

在广播模式下,由于服务器不用向每个客户机单独发送数据,所以服务器流量负载极低。

无法在广域网上进行广播,而且广播消息不会被路由转发,所以只能在一个子网中进行广播。因为如果路由器转发了广播信息,那么势必会引起网络瘫痪。这也是为什么IP协议的设计者故意没有定义互联网范围的广播机制。

主机发送广播消息时,需要指定目的IP地址为
255.255.255.255
和接受者的端口号。

2.3 组播

组播是主机之间“一对多”的通讯模式。一台主机加入一个组播IP后,之后向该组播IP发送的数据报都会发送到该主机。

专门为组播划出了一个地址范围,在IPv4中为D类地址,范围是
224.0.0.0 ~ 239.255.255.255
,并将D类地址划分为局部链接组播地址、预留组播地址、管理权限组播地址如下:

局部链接地址:
224.0.0.0~224.0.0.255
,用于局域网,路由器不转发属于此范围的IP包。

预留组播地址:
224.0.1.0~238.255.255.255
,用于全球范围或网络协议。

管理权限地址:
239.0.0.0~239.255.255.255
,组织内部使用,用于限制组播范围。

《TCP/IP详解 卷1:协议》在线阅读地址:http://www.52im.net/topic-tcpipvol1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: