计算机网络(第8版)第四章 网络层(4.7.1~4.7.3)

4.7 IP 多播

4.7.1 IP 多播的基本概念

1988 年,Steve Deering 首次提出 IP 多播的概念。

多播 (multicast):以前曾译为组播。

目的:更好地支持一对多通信。

一对多通信:一个源点发送到许多个终点。

1、多播可大大节约网络资源

2、IP 多播

在互联网上进行多播就叫做 IP 多播。

互联网范围的多播要靠路由器来实现。

能够运行多播协议的路由器称为多播路由器 (multicast router)。

多播路由器也可以转发普通的单播 IP 数据报。

从 1992 年起,在互联网上开始试验虚拟的多播主干网 MBONE (Multicast Backbone On the InterNEt)。

3、多播 IP 地址

在 IP 多播数据报的目的地址需要写入多播组的标识符。

多播组的标识符就是 IP 地址中的 D 类地址(多播地址)。 地址范围:224.0.0.0 ~ 239.255.255.255

每一个 D 类地址标志一个多播组。

多播地址只能用于目的地址,不能用于源地址。

4、多播数据报

多播数据报和一般的 IP 数据报的区别:

目的地址:使用 D 类 IP 地址。

协议字段 = 2,表明使用网际组管理协议 IGMP。

尽最大努力交付,不保证一定能够交付多播组内的所有成员。

对多播数据报不产生 ICMP 差错报文。在 PING 命令后面键入多播地址,将永远不会收到响应。

4.7.2 在局域网上进行硬件多播

IANA 拥有的以太网地址块的高 24 位为 00-00-5E。

TCP/IP 协议使用的以太网地址块的范围是:

从 00-00-5E-00-00-00

到 00-00-5E-FF-FF-FF

IANA 只拿出 01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF (223 个地址)作为以太网多播地址。或者说,在 48 位的多播地址中,前 25 位都固定不变,只有后 23 位可用作多播。

1、D 类 IP 地址与以太网多播地址的映射关系

4.7.3 网际组管理协议 IGMP 和多播路由选择协议

1、IP 多播需要两种协议

(1)网际组管理协议 IGMP (Internet Group Management Protocol)

使多播路由器知道多播组成员信息(有无成员)。

(2)多播路由选择协议

使多播路由器协同工作,把多播数据报用最小代价传送给多播组的所有成员。

(3)IGMP 使多播路由器知道多播组成员信息

(4)多播路由选择协议更为复杂

多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化),因为每一台主机可以随时加入或离开一个多播组。

多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,还要考虑这个多播数据报从什么地方来和要到什么地方去。

多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员的接入网络。

2、网际组管理协议 IGMP

1989 年公布的 RFC 1112(IGMPv1)已成为了互联网的标准协议。

1997 年公布的 RFC 2236(IGMPv2,建议标准)对 IGMPv1 进行了更新。

2002 年 10 月公布了 RFC 3376(IGMPv3,建议标准)。

(1)IGMP 使用 IP 数据报传递其报文

在 IGMP 报文加上 IP 首部构成 IP 数据报。

但 IGMP 也向 IP 提供服务。

因此,不把 IGMP 看成是一个单独的协议,而是整个网际协议 IP 的一个组成部分。

(2)IGMP 工作可分为两个阶段

第一阶段:加入多播组。

第二阶段:探询组成员变化情况。

(3)IGMP 采用的一些具体措施,以避免增加大量开销

所有通信都使用 IP 多播。只要有可能,都用硬件多播来传送。

对所有的组只发送一个请求信息的询问报文。默认询问速率是每 125 秒发送一次。

当同一个网络上连接有多个多播路由器时,能迅速和有效地选择其中的一个来探询主机的成员关系。

分散响应。在 IGMP 的询问报文中有一个数值 N,它指明一个最长响应时间(默认值为 10 秒)。当收到询问时,主机在 0 到 N 之间随机选择发送响应所需经过的时延。若一台主机同时参加了几个多播组,则主机对每一个多播组选择不同的随机数。对应于最小时延的响应最先发送。

采用抑制机制。同一个组内的每一个主机都要监听响应,只要有本组的其他主机先发送了响应,自己就不再发送响应了。

3、多播路由选择

转发多播数据报时使用三种方法:洪泛与剪除、隧道技术 (tunneling)、基于核心的发现技术

1)洪泛与剪除

适合于较小的多播组,所有组成员接入的局域网也是相邻接的。

开始时,路由器转发多播数据报使用洪泛的方法(这就是广播)。

为避免兜圈子,采用反向路径广播 RPB (Reverse Path Broadcasting) 的策略。

(1)RPB 的要点:检查,转发

(2)RPB 的要点:形成以源为根节点的多播转发树

(3)RPB 的要点:剪枝与嫁接

剪枝:如果在多播转发树上的某个路由器发现它的下游树枝(即叶节点方向)已没有该多播组的成员,就把它和下游的树枝一起剪除。

嫁接:当某个树枝有新增加的组成员时,可以再接入到多播转发树上。

2)隧道技术 (tunneling)

3)基于核心的发现技术

(1)对于多播组的大小在较大范围内变化时都适合。

(2)对每一个多播组 G 指定一个核心 (core) 路由器,并给出它的 IP 单播地址。

(3)核心路由器按照前面讲过的 2 种方法创建出对应于多播组 G 的转发树(核心路由器为根节点)。

为一个多播组构建一棵转发树,而不是为每个(源,组)组合构建一棵转发树。

构建转发树开销较小,扩展性较好。

(4)如果有一个路由器 R1 向核心路由器发送数据报,那么它在途中经过的每一个路由器都要检查其内容。

(5)当数据报到达参加了多播组 G 的路由器 R2 时,R2 就处理这个数据报。

如果 R1 发出的是一个多播数据报,其目的地址是 G 的组地址,R2 就向 G 的成员转发这个多播数据报。

如果 R1 发出的数据报是一个请求加入多播组 G 的数据报,R2 就把这个信息加到它的路由中,并用隧道技术向 R1 转发每一个多播数据报的副本。

4、几种多播路由选择协议

距离向量多播路由选择协议 DVMRP (Distance Vector Multicast Routing Protocol)。互联网上使用的第一个多播路由选择协议。

基于核心的转发树 CBT (Core Based Tree)

开放最短通路优先的多播扩展 MOSPF (Multicast Extensions to OSPF)

协议无关多播-稀疏方式 PIM-SM (Protocol Independent Multicast-Sparse Mode) 。唯一成为互联网标准的一个协议。

协议无关多播-密集方式 PIM-DM (Protocol Independent Multicast-Dense Mode)

相关推荐
aherhuo6 分钟前
基于openEuler22.09部署OpenStack Yoga云平台(一)
linux·运维·服务器·openstack
WebDeveloper200110 分钟前
如何使用美国域名中心US Domain Center和WordPress创建商业网站
运维·服务器·css·网络·html
檀越剑指大厂33 分钟前
【Linux系列】Shell 脚本中的条件判断:`[ ]`与`[[ ]]`的比较
linux·运维·服务器
车载诊断技术2 小时前
电子电气架构 --- 什么是EPS?
网络·人工智能·安全·架构·汽车·需求分析
KevinRay_2 小时前
Python超能力:高级技巧让你的代码飞起来
网络·人工智能·python·lambda表达式·列表推导式·python高级技巧
lfwendula02 小时前
组相联映射 set-associative mapping
计算机网络
2301_819287123 小时前
ce第六次作业
linux·运维·服务器·网络
CIb0la3 小时前
GitLab 停止为中国区用户提供 GitLab.com 账号服务
运维·网络·程序人生
武汉联从信息3 小时前
如何使用linux日志管理工具来管理oracle osb服务器日志文件?
linux·运维·服务器
天天进步20153 小时前
STUN服务器实现NAT穿透
运维·服务器