目录
当网络中部署点到多点通信应用时,若采用单播方式,网络中传输的信息量与需要该信息的用户量成正比。多份内容相同的信息发送给不同用户,对信源及网络带宽都造成巨大压力。若采用广播方式,无需接收信息的主机也将收到该信息,这样不仅信息安全得不到保障,且会造成同一网段中信息泛滥。IP组播技术有效的解决了单播和广播在点到多点应用中的问题。组播源只发送一份数据,数据在网络节点间被复制、分发,且只发给需要该信息的接收者。
1、点到多点的发展
1.1 传统点到点应用
服务提供端以单个用户为单位提供服务。不同的用户与服务提供端的通信数据存在差异。
传统的电子邮件、WEB、网上银行等点到点应用主要是为独立的个人或组织提供特定服务,因为特定服务在数据差异性、安全性等方面的限制,所以不同Client与Server通信的数据只能以点到点的形式传播,即通信是在一台源主机和一台目的主机之间进行。同时只有一个数据发送者和接收者。
两个实体之间通信的过程:
- Server封装数据包并发出,其中源IP为自身IP,目的IP为远端Client地址,源MAC为自身MAC地址,目的MAC为网关路由器的MAC地址。
- 网关路由器收到数据包,解封装后根据目的IP查找路由表,确定去往目的IP的下一跳地址及出接口。重新封装源数据包,从相应出接口发给下一跳设备继续转发。
- 经过路由器的多次逐条转发,数据包到达Client所在网络,Client收到数据后,对数据包进行解封装并交由本机上层应用协议处理。
1.2 新型点到多点应用
服务端以一组用户为单位提供服务;同组用户与服务端的通信数据无差异。
随着Internet网络的不断发展,网络中交互的各种数据、语音和视频信息数量突增。新兴的在线直播、网络电视、视频会议等应用也在逐渐兴起。这些新兴业务大多符合点对多点的模式,对信息安全性、传播范围、网络带宽提出了较高的要求。
1.3 单播方式部署点到多点
单播存在的问题:重复流量过多、消耗设备和链路带宽资源、难以保证传输质量。单播方式较适合用户稀少的网络,当用户量较大时很难保证网络传输质量。
单播(Unicast)是在一台源IP主机和一台目的IP主机之间进行。网络上绝大部分数据都是以单播进行传输的,例如电子邮件,网上银行。一份单播报文,使用一个单播地址作为目的地址。Source向每个接收者发送一份独立的单播报文。如果网络中存在N个接收者,则Source需要发送N份单播报文。网络为每份单播报文执行独立的数据转发,形成一条独立的数据传送通路。N份单播报文形成N条相互独立的传输路径
1.4 广播方式部署点到多点
广播方式存在的问题:地域范围的限制、安全性无法保证、有偿性无法保证。
广播(Broadcast)是在一台源IP主机和网络中所有其他的IP主机之间进行,属于一对所有的通讯方式,所有主机都可以接收到(不管是否需要)。一份广播报文,使用一个广播地址作为目的地址。Source向本网段对应的广播地址发送且仅发送一份报文。不管是否有需求,保证报文被网段中的所有用户主机接收;广播方式下,信息发送者与用户主机被限制在一个共享网段中。
对于点到多点的网络应用,单播和广播都有一定的局限性。
1.5 组播方式部署点到多点
组播方式优势:无重复流量、节省设备与带宽资源、安全性高、有偿性有保障。
组播(Multicast)是在一台源IP主机和多台(一组)IP主机之间进行,中间的交换机和路由器根据接收者的需要,有选择性的对数据进行复制和转发。组播方式下单一的信息流沿组播分发树被同时发送给一组用户相同的组播数据流每条链路上最多仅有一份。
- 相比于单播,由于被传递的信息在距信息源尽可能远的网络节点才开始被复制和分发,所以用户的增加不会导致信息源负载的加重以及网络资源消耗的显著增加。
- 相比于广播,由于被传递的信息指挥发送给需要该信息的接收者,所以不会造成网络资源的浪费,并能提高信息传输的安全性。另外,广播只能在同一网段中进行,而组播可以实现跨网段的传输。
组播的应用:组播技术有效地满足了单点发送,多点接收的需求,实现了IP网络中点到多点的高效传播,能够节约大量网络带宽资源。
2、组播基本概述
2.1 组播基本架构
- 组播源到路由器:组播源生成组播数据,完成数据的封装并发送给网关路由器。
- 路由器到路由器:路由器根据接收者的分部情况有选择地对数据进行复制和转发。
- 路由器到接收端:路由器收到组播数据并发给相应的接收者。
2.2 组播源到路由器
组播如何封装组播数据?
单播数据包传输的路径是利用“逐跳”(hop-by-hop)转发原理在IP网络中传输。相较于IP单播,IP组播通信的特点是数据包的目的地址不是一个特定的单一IP地址,而是一个特定组地址。为了实现信息源和组播成员跨域互联网进行通讯,需要提供网络层组播,组播数据包的目的IP地址使用组播IP地址。也就是说组播源不关注接收者的位置信息,只要将数据发送到特定组IP地址即可。
以太网传输单播数据帧时,目的MAC地址使用的是接收者或者去往接收者的下一跳网关设备的MAC地址。但是在传输组播报文时,目的端不再是一个具体的接收者,而是一个成员组不确定的组,如果目的MAC封装成接收者的MAC地址,则需要为每个接收者分别发送一份组播帧。
显然这是不合理的;为了在数据链路层实现组播信息的高效传输,需要提供链路层组播转发能力,链路层组播使用组播MAC地址。
2.2 组播IP地址
一个组播IP地址并不是表示具体的某台主机,而是一组主机的集合,主机声明加入某组播组即表示自己需要接收目的地址为该组播地址的数据。IP组播常见的模型分为ASM模型和SSM模型。
范围 | 含义 |
224.0.0.0—224.0.0.255 | 为路由协议预留的永久组地址 |
224.0.1.0—231.255.255.255 233.0.0.0—238.255.255.255 | Any-Source临时组播组地址 |
232.0.0.0—232.255.255.255 | Source-Specific临时组播组地址 |
239.0.0.0—239.255.255.255 | 本地管理的Any-Source临时组播组地址 |
IPv4组播地址:
- IPv4地址空间分为五类:即A/B/C/D/E类。D类地址为IPv4组播地址,范围是从224.0.0.0到239.255.255.255,用于标识组播组,仅能作为组播报文的目的地址使用,不能作为源地址使用。
- IPv4组播报文的源地址字段为IPv4单播地址,可使用A、B或C类地址,不能是D类、E类地址。
- 在网络层上,加入同一组播组的所有用户主机能够识别同一个IPv4组播组地址。一旦网络中某用户加入该组播组,则此用户就能接收以该组地址为目的地址的IP组播报文。
组播服务模型:
ASM全称为Any-Source Multicast,译为任意源组播。在ASM模型中任意发送者都可以成为组播源,向某组播组地址发送信息。接收者加入该组播组后能够收到发往该组播组的所有信息。在ASM模型中,接收者无法预先知道组播源的位置,接收者可以在任意时间加入或离开该组播组。
SSM全称为Source-Specific Multicast,译为指定源组播。在现实生活中,用户可能仅对某些源发送的组播信息感兴趣,而不愿接收其它源发送的信息。SSM模型为用户提供了一种能够在客户端指定信源的传输服务。SSM模型和ASM模型的根本区别是接收者已经通过其他手段预先知道了组播源的具体位置。SSM和ASM使用不同的组播地址范围,直接在接收者和组播源之间建立组播转发树。
2.3 组播MAC地址
组播MAC地址与组播MAC地址的区别:
- 组播数据帧的传输目的不再是一个具体的接收者,而是一个成员不确定的组,所以使用的是组播MAC地址。IANA规定,组播MAC地址的高24bit为0x01005e,第25bit固定为0。
- 组播MAC地址用于在链路层标识属于同一组播组的接收者。
- 以太网传输单播数据帧的时候,目的MAC地址使用的是接收者的MAC地址或者下一跳路由器的MAC地址。这个MAC地址通过ARP获取。对于组播数据帧也需要有一个可预知的MAC地址。
2.4 组播IP与MAC地址的映射
需要组播IP地址与组播MAC地址的自动映射。MAC地址的低23位为组播IP地址的低23位。
为了使组播源和组播组成员进行通信,需要提供网络层组播,使用IP组播地址。同时,为了在本地物理网络上实现组播信息的正确传输,需要提供链路层组播,使用组播MAC地址。组播数据传输时,其目的地不是一个具体的接收者,而是一个成员不确定的组,所以需要一种技术将IP组播地址映射为组播MAC地址。
2.5 映射导致的问题
由于IP组播地址的前4bit是1110,代表组播标识,而后28bit中只有23bit被映射到MAC地址,这样IP地址中就有5bit信息丢失,直接的结果是出现了32个组播IP地址映射到同一组播MAC地址上。IETF认为同一个局域网中两个或多个组地址生成相同的MAC地址的几率非常低,不会造成太大的影响。