计算机网络(第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)

相关推荐
JhonKI11 分钟前
【Linux网络】TCP服务中IOService应用与实现
linux·网络·tcp/ip
青松@FasterAI1 小时前
【动手学大模型开发】VSCode 连接远程服务器
服务器·ide·vscode
Hy行者勇哥1 小时前
HTTP, AMQP, MQTT之间的区别和联系是什么?华为云如何适配?
网络·网络协议·http·华为云
Linux运维老纪1 小时前
交换机之配置系统基本信息(Basic Information of the Configuration System for Switches)
linux·网络·mysql·华为·云计算·运维开发
努力学习的小廉2 小时前
深度理解linux系统—— 了解操作系统
linux·运维·服务器
玩电脑的辣条哥2 小时前
一台服务器已经有个python3.11版本了,如何手动安装 Python 3.10,两个版本共存
服务器·python·python3.11
敲上瘾2 小时前
基于Tcp协议的应用层协议定制
linux·运维·服务器·网络·c++·网络协议·tcp/ip
莹莹学编程—成长记3 小时前
string的模拟实现
服务器·c++·算法
曹天骄6 小时前
100个用户的聊天系统:轮询 vs WebSocket 综合对比
网络·websocket·网络协议
简单.is.good6 小时前
【计算机网络】IP地址
网络·tcp/ip·计算机网络