计算机网络:网络层 —— IP 多播技术
文章目录
- 基本概念
- IP多播地址和多播组
- IP多播的类型
- 硬件多播
- 将IPv4多播地址映射为多播MAC地址
基本概念
多播(Multicast,也称为组播)是一种实现“一对多”通信的技术,允许一台或多台主机(多播源)发送单一数据包到多台主机(一次的,同时的),与传统单播“一对一”通信相比,多播可以极大地节省网络资源。
-
在因特网上进行的多播称为IP多播,也称多址广播或组播,是一种允许一台或多台主机(多播源)发送单一数据包到多台主机(一次的,同时的)的 TCP/IP 网络技术。
-
多播的基础概念是“组”。一个多播组就是一组希望接收特定数据流的接收者,这个组没有物理或者地理的边界,组内的主机可以位于互联网或者专用网络的任何地方。
-
当发送方发送数据包时,该数据包会通过网络传输到所有加入该多播组的设备,而不是通过设备的单播地址。
-
当多播组的成员数量很大时,采用多播方式可以显著地减少网络中各种资源的消耗。
-
左边部分显示的是传统的单播方法。在这种情况下,视频服务器必须向每一个订阅频道的用户单独发送一份视频流。
假设总共有 60 个用户,那么服务器就需要同时维持 60 条独立的连接,每一条连接都需要消耗一定的带宽资源。随着用户的增加,这种方式会导致服务器负担过重,网络带宽利用率低下。
-
右边部分则是采用多播技术的情景。在这里,视频服务器只需要发送一次视频流,而路由器 R1、R2 和 R3 负责将这份流复制并分发给各个子网中的用户。这样一来,无论有多少用户观看同一个节目,服务器只需发送一份原始内容即可,大大减轻了服务器的压力并且提高了网络带宽的使用效率。
IP多播地址和多播组
在IPv4中,D类地址被作为多播地址。多播地址只能用作目的地址,而不能用作源地址。
用每一个D类地址来标识一个多播组,使用同一个IP多播地址接收IP多播数据报的所有主机就构成了一个多播组。每个多播组的成员是可以随时变动的,一台主机可以随时加入或离开多播组。多播组成员的数量和所在的地理位置也不受限制,一台主机可以属于几个多播组。
-
非多播组成员也可以向多播组发送IP多播数据报。
-
与 IP 数据报相同,IP 多播数据报也是“尽最大努力交付”,不保证一定能够交付给多播组内的所有成员。
-
IPv4 多播地址又可分为预留的多播地址(永久多播地址)、全球范围可用的多播地址以及本地管理的多播地址
[RFC 3330]
。
IP多播的类型
IP 多播可以分为以下两种:
- 只在本局域网上进行的硬件多播。
- 在因特网上进行的多播。
目前大部分主机都是通过局域网接入因特网的。因此,在因特网上进行多播的最后阶段,还是要把 IP 多播数据报在局域网上,用硬件多播交付给多播组的所有成员。
硬件多播
硬件多播是一种在局域网(LAN)上实现多播通信的技术,它利用硬件(如网络接口卡)的特性来高效地将多播数据发送给多个接收者。
由于 MAC 地址(也称为硬件地址)有多播 MAC 地址这种类型,因此只要把 IPv4 多播地址映射成多播 MAC 地址,即可将 IP 多播数据报封装在局域网的 MAC 帧中,而 MAC 帧首部中的目的 MAC 地址字段的值,就设置为由 IPv4 多播地址映射成的多播 MAC 地址。这样,可以很方便地利用硬件多播来实现局域网内的IP多播。
当给某个多播组的成员主机配置其所属多播组的IP多播地址时,系统就会根据映射规则从该IP多播地址生成相应的局域网多播MAC地址。
因特网号码指派管理局 IANA,将自己从IEEE注册管理机构申请到的以太网 MAC 地址块中从 01-00-5E-00-00-00
到 01-00-5E-7F-FF-FF
的多播 MAC 地址,用于映射 IPv4 多播地址。这些多播 MAC 地址的左起前25个比特都是相同的,剩余23个比特可以任意变化,因此共有
2
23
2^{23}
223 个
将IPv4多播地址映射为多播MAC地址
将32比特的IPV4多播地址映射成48比特的多播MAC地址的方法:
-
前缀固定不变:IPv4 多播地址的前四位始终为
1110
,表示这是一个多播地址。 -
剩余28位任意变化:IPv4 多播地址的第 5 位到第 32 位(共 28 位)可以任意变化。
-
映射规则:
- 将IPv4多播地址的低 23 位直接复制到 48 位的多播MAC地址的高 23 位。
- MAC 地址的第 24 位设置为
0
。 - MAC 地址的第 25 位到第 48 位设置为
0000.0001
。
由于 IP 多播地址可变化的 28 比特的前 5 个比特无法映射到 MAC 多播地址,这会造成IP多播地址与多播MAC地址的映射关系并不是唯一的。如果不同的IP多播地址之间的不同之处仅出现在不能映射的那5个比特,则这些IP多播地址会映射出同一个多播 MAC 地址。
由于IP多播地址与多播MAC地址的映射关系不是唯一的,因此收到IP多播数据报的主机,还要在网际层利用软件进行过滤,把不是主机要接收的IP多播数据报丢弃。