网工技术详解
网工技术详解
资源放送
↓ 扫一扫 ↓
领取交换机录屏资料
IP组播通信指的是IP报文从一个源发出,被转发到一组特定的接收者。相对于单播和广播,IP组播可以有效地节约网络带宽、降低网络负载,避免广播堵塞带来的诸如摄像头花屏,视频马赛克等问题,所以被广泛应用于IPTV、实时数据传送和多媒体会议等网络业务中。
如果要将数据从一台主机发送给多个主机而非所有主机,可以采用广播方式,也可以由源主机采用单播方式向网络中的多台目标主机发送多份数据,如图1所示。
图1 采用单播和广播方式进行点到多点传输数据示意图
采用单播方式时,信息源为每个需要信息的主机都发送一份独立的报文。当需要该信息的用户数量较大时,信息源需要将多份内容相同的信息发送给不同的用户,这对信息源以及网络带宽都将造成巨大的压力。
采用广播方式时,信息源将信息发送给该网段中的所有主机,不需要接收信息的主机也将收到该信息,这样不仅信息的安全性得不到保障,而且会造成同一网段中信息泛滥,浪费大量的带宽。
由上述可见,单播和广播通信方式不能有效地解决单点发送、多点接收的问题。组播(Multicast)可以很好的解决点到多点的数据传输,如图2所示,源只发送一份数据,网络中只有需要该数据的主机(目标主机HostA和HostC)可以接收该数据,其他主机(HostB)不能收到该数据。
图2 采用组播方式进行点到多点传输数据示意图
组播基本概念
如图3所示为组播的传输模型示意图,网络中存在组播源,组播路由器,和组播组成员三个角色,它们在同一组播组中进行组播通信。
图3 组播方式示意图
组播组:用IP组播地址进行标识的一个集合。任何用户主机(或其他接收设备),加入一个组播组,就成为了该组成员,可以识别并接收发往该组播组的组播数据。
组播源:信息的发送者,如图3中的Source。一个组播源可以同时向多个组播组发送数据,多个组播源也可以同时向一个组播组发送报文。
组播组成员:所有加入某组播组的主机便成为该组播组的成员,如图3中的HostA和HostC。组播组中的成员是动态的,主机可以在任何时刻加入或离开组播组。
组播路由器:支持三层组播功能的路由器或交换机,如图3中的各个Router。组播路由器不仅能够提供组播路由功能,也能够在与用户连接的末梢网段上提供组播组成员的管理功能。
以收看某电视频道的节目为例来类比IP组播中的概念。
表1 组播信息传输与电视节目传输的类比:
组播服务模型
组播源发出的组播数据中总是以自己的IP地址为报文的源地址,组播组地址为目的地址。根据接收者主机在接收组播数据时是否可以对组播源进行选择,服务模型分为ASM(Any-Source Multicast)和SSM(Source-Specific Multicast)两种服务模型。这两种服务模型使用不同的组播组地址范围。
ASM模型
ASM模型仅针对组地址提供组播分发。任何源发布到该组地址的数据得到同样的服务。接收者主机加入组播组以后接收组内任意源发送到该组的数据。ASM模型要求组地址必须在整个组播网络中唯一。如果有两种不同的应用程序使用了同一个ASM组地址发送数据,它们的接收者会同时收到来自两个源的数据。这样一方面会导致网络流量拥塞,另一方面也会给接收者主机造成困扰。
SSM模型
SSM模型针对特定源和组的绑定数据流提供服务,接收者主机在加入组播组时,可以指定只接收哪些源的数据。加入组播组以后,主机只会收到指定源发送到该组的数据。
SSM模型对组地址不再要求全网唯一,只需要每个组播源保持唯一。不同的源之间可以使用相同的组地址,因为SSM模型中针对每一个(源,组)信息都会生成表项。这样不仅节省了组播组地址,还不会造成网络拥塞。
组播地址
为了使组播源和组播组成员进行通信,需要提供网络层组播,使用IP组播地址。同时,为了在本地物理网络上实现组播信息的正确传输,需要提供链路层组播,使用组播MAC地址。
IPv4组播地址
IANA(Internet Assigned Numbers Authority,互联网编号分配委员会)将D类地址空间分配给IPv4组播使用,地址范围为224.0.0.0-239.255.255.255,具体分类及含义见表2。
表2 IPv4组播地址的范围及含义
IPv6组播地址
IPv6地址长度是128位,组播地址的定义如图4所示。
图4 IPv6组播地址的格式
FF:最高8位为11111111,标识此地址为组播地址。即IPv6组播地址总是以FF开头。
Flags字段(4位),用来标识组播地址的状态。其含义如下:
表3 Flags取值及含义
Scope字段(4位):用来标识组播组的应用范围,其含义如下:
表4 Scope字段的取值及含义
Group ID(112位):组播组标识号。与Flags字段和Scope字段结合指定的范围内唯一标识组播组。
IPv4组播MAC地址
以太网传输IPv4单播报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播数据时,其目的地不再是一个具体的接收者,而是一个成员不确定的组,所以要使用IPv4组播MAC地址,即IPv4组播地址映射到链路层中的地址。
IANA规定,IPv4组播MAC地址的高24位为0x01005e,第25位为0,低23位为IPv4组播地址的低23位,映射关系如图5所示。例如组播组地址224.0.1.1对应的组播MAC地址为01-00-5e-00-01-01。
图5 IPv4组播地址与IPv4组播MAC地址的映射关系
IPv4组播地址的前4位是固定的1110,后28位中只有23位被映射到MAC地址,因此丢失了5位的地址信息,直接结果是有32个IPv4组播地址映射到同一MAC地址上。例如IP地址为224.0.1.1、224.128.1.1、225.0.1.1、239.128.1.1等组播组的组播MAC地址都为01-00-5e-00-01-01。网络管理员在分配地址时必须考虑这种情况。
IPv6组播MAC地址
IPv6组播MAC地址的高16位为0x3333,低32位为IPv6组播地址的低32位。如图6所示,是IPv6组播地址FF01::1111:1的MAC地址映射举例。
图6 IPv6组播地址的MAC地址映射举例
可见IPv6中会有更多的组地址使用同一个MAC地址。
组播协议
在IP组播传输模型中,发送者不关心接收者所处的位置,只要将数据发送到约定的目的地址,剩下的工作就交给网络去完成。网络中的组播设备必须收集接收者的信息,并按照正确的路径实现组播报文的转发和复制。在组播的发展过程中,形成了一套完整的协议来完成此任务。
IPv4组播协议
IPv4网络中使用的组播协议如表6所示。
表6 IPv4组播协议
IPv6组播协议
IPv6网络中使用的组播协议如表7所示。
表7 IPv6组播协议
推荐阅读
>>>【独家首发】新版HCIE考试解读直播回顾
>>> 重磅!华为HCIE认证改版升级通知!
>>>【命令解析】Linux用户行为的常用命令
>>> 网工必备通信基础知识,还不知道你就out了?
>>>【必备干货】网工入门必会桥接教程,外网+GNS3+Vmware
>>>【技术指南】5分钟搞清楚OSPF链路状态路由协议