目录
前言
今天介绍一下IP组播的基本原理
一、传统方式
组播技术是IP网络数据传输三种方式之一,在介绍IP组播技术之前,先对IP网络数据传输的单播、组播和广播方式做一个简单的介绍。
单播
在发送者和每一接收者之间实现点对点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也必须相应的复制多份的相同数据包。如果有大量主机希望获得数据包的同一份拷贝时,将导致发送者负担沉重、延迟长、网络拥塞;为保证一定的服务质量需增加硬件和带宽。
广播
广播指在IP子网内广播数据包,所有在子网内部的主机都将收到这些数据包。广播意味着网络向子网每一个主机都投递一份数据包,不论这些主机是否乐于接收该数据包。所以在广播方式下,信息会发送到不需要该信息的主机从而浪费带宽资源,甚至引起广播风暴。而且广播的使用范围非常小,只在本地子网内有效,通过路由器和网络设备控制广播传输。
组播
IP组播技术实现了IP网络中点到多点的高效数据传送,能够有效的节约网络带宽、降低网络负载,在实时数据传送、多媒体会议、数据拷贝、游戏和仿真等诸多方面都有广泛的应用。
- 解决了网络中用户数量不确定的问题;
- 一份信息,多个接收者;
- 相同的组播数据流在每一条链路上最多仅有一份。
组播的特点
优点:
- 增强效率,控制网络流量,减少服务器和CPU负载
- 优化性能,消除流量冗余
- 分布式应用,使多点传输成为可能
缺点:
- 组播应用基于UDP
- 尽最大努力交付
- 无拥塞控制
- 数据包重复
- 数据包的无序交付
组播技术概述
信息的发送者称为“组播源”,信息接收者称为该信息的“组播组”,支持组播信息传输的所有路由器称为“组播路由器”。一个组播组就是一个IP地址,不表示具体的主机,而是表示一系列系统的集合,主机加入某个组播组即声明自己接收目的为某个IP地址的报文。
发送者不关心接收者所处的位置,只需要将数据发送到约定的目的地址,剩下的工作就交给网络去完成。网络中的路由器设备必须收集接收者的信息,并按照正确的路径实现组播报文的转发和复制。这样做的好处是发送者只产生一份数据,而不用为每个接收者分别复制一份,且发送者不必维护接收者的信息。
二、IP地址
组播IP地址
组播IP地址用于标识一个IP组播组。组播报文的目的地址使用D类IP地址,D类地址不能出现在IP报文的源IP地址字段里。其范围是从224.0.0.0到239.255.255.255。如二进制表示,IP组播地址前四位均为1110。
组播组可以是永久的也可以是临时的。组播组地址中,有一部分由官方分配的,称为永久组播组。永久组播组保持不变的是它的IP地址,组中的成员构成可以发生变化。永久组播组中成员的数量都可以是任意的,甚至可以为零。那些没有保留下来供永久组播组使用的ip组播地址,可以被临时组播组利用。
组播MAC地址
IANA将MAC地址范围01:00:5E:00:00:00~01:00:5E:7F:FF:FF分配给组播使用;
组播MAC地址的高24bit为0x01005e,第25bit为0,即高25bit为固定值。MAC地址的低23bit为组播IP地址的低23bit。由于 IP组播地址的前4bit 是1110,代表组播标识,而后28bit 中只有23bit 被映射到MAC 地址,这样IP 地址中就有5bit 信息丢失,导致的结果是出现了32 个IP 组播地址映射到同一MAC 地址上。
三、组播基本原理
组播分发树
什么是组播分发树?
用来描述IP组播报文在网络中经过的路径。
组播分发树的两个基本类型:
- 源路径树
- 共享树
源路径树
以组播源作为树根,将组播源到每一个接收者的最短路径结合起来构成的转发树。每一个组播源与接收者之间建立一棵独立的SPT(shortest path tree)。
共享树
共享树(RPT)以网络上某特定节点为公用根。根据组播路由协议,这个根常被称为汇合点(RP)或核心,因此,共享树也可以称为RTP。对应某个组,网络中只有一棵树。
不同分发树的比较
源路径树(SPT)
路径最优,延时最小,占用内存较多O(S x G).
共享树(RPT)
路径不是最优的,引入额外的延迟,占用内存较少O(G).
组播数据转发
组播路由和单播路由是相反的:
单播路由关心数据报文要到哪里去
组播路由关心数据报文从哪里来
组播路由使用“反向路径转发”机制(RPF,Reverse Path Forwarding)
什么是RPF?
路由器收到组播数据报文后,只有确认这个数据报文是从自身连接到组播源的接口上收到的,才能进行转发,否则丢弃。
组播报文的转发不是基于IP报文的目的地址的,而是用RPF检查决定是否转发和丢弃转入的报文
RPF检查的过程如下:
在单播路由表中查找组播报文源地址的路由:
如果该路由的出接口就是组播报文的入接口,RPF检查成功,该接口被称为RPF接口
否则RPF检查失败,报文丢弃
注意:当数据包来的时候才发生RPF检查,在做RPF检查之前要找到RPF邻居。
对组播包源地址的检查是通过查询单播路由表来实现的。
以上就是今天要讲的内容,本文仅仅简单介绍了IP组播的原理,下一篇将介绍IP组播协议IGMP协议——> IP组播协议——IGMP协议之IGMPv1_小码农a的博客-CSDN博客