IP多播(组播)

article/2025/9/9 21:43:40

一 IP多播的基本概念

IP多播(multicast,也被译为组播),它是一种一对多的通信方式。与单播相比,多播可以大大节约网络资源。

以视频流媒体服务为例说明单播和多播的区别,如图所示:

图1  单播与多播的比较

(a) 中使用的是单播方式,视频服务器向90台主机传送相同的视频内容,需要发送90个单播数据包,即同一个视频分组需要发送90个副本。

(b) 中使用的是多播方式,视频服务器只需要把视频分组当做多播数据包来发送,并且只需发送一次。路由器R1在转发分组时,需要把收到的分组复制成3个副本,分别向R2、R3、R4各转发一个副本。当分组到达目的局域网时,由于局域网具有硬件多播功能,因此不需要复制分组,在局域网上的多播组成员都能收到这个视频组分组。

        可以发现,当多播组的主机数量很大时(如成千上万个),采用多播方式就能很明显地减轻网络中各种资源的消耗。在互联网范围的多播要靠多播路由器来实现,多播路由器运行能够识别多播数据报的软件。当然多播路由器也可以转发普通的单播IP数据包。

        在互联网上进行多播传输就叫做IP多播。IP多播所传送的分组需要使用多播IP地址。

  • 多播数据报与普通的单播IP数据报的区别

        我们知道,在互联网中每一台主机必须有一个全球唯一的 IP 地址如果某台主机现在想接收某个特定多播组的分组,那么怎样才能使这个多播数据报传送到这台主机呢?

        显然,这个多播数据报的目的地址一定不能写入这台主机的 IP 地址。这是因为在同一时间可能有成千上万台主机加入到同一个多播组。多播数据报不可能在其首部写入这么多主机的 IP 地址。因此,在多播数据报的目的地址写入的是一个多播组标志符,然后设法让加入到这个多播组的主机的 IP 地址与多播组的标识符关联起来。

        其实多播组的标识符就是 IP 地址中的D类地址D类地址的前4位是1110,因此D类地址范围为:224.0.0.0 ~ 239.255.255.255

        我们使用每一个D类IP地址标识一个多播组。这样,D类地址一共可以标识2^28个多播组,也就是说,在同一时间允许有超过2.6亿的多播组在互联网上运行。多播数据报也是“尽最大努力交付”,不保证一定能够交付多播组内的所有成员。因此,多播数据报与一般的IP数据报的区别就是它使用D类IP地址作为目的地址,并且首部中的协议字段值是2,表明它使用的是网际组管理协议(IGMP)

        显然,多播地址只能用于目的地址,而不能用于源地址。此外,对多播数据报不产生ICMP(网际控制报文协议)差错报文。因此,若在 ping 命令后面键入多播地址,将永远不会收到响应。

        IP 多播可以分为两种。一种是只在本地局域网上进行硬件多播,另一种则是在互联网的范围进行多播(IP多播)。前一种多播比较简单,但很重要,因为现在大部分主机都是通过局域网接入到互联网的。在互联网上进行多播的最后阶段,还是要把多播数据报在局域网上使用硬件多播交付给多播组的所有成员(如上图1(b)所示)。下面就先讨论这种硬件多播。

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

        IANA(互联网号码分配管理局)拥有的以太网地址块的高24位为00-00-5E,因此TCP/IP协议使用的以太网多播地址的范围为:

00-00-5E-00-00-00 ~ 00-00-5E-FF-FF-FF。而以太网的硬件地址(即MAC地址)字段中的第1个字节的最低位为1时即为多播地址

        因此,IANA拥有的以太网多播地址范围为:01-00-5E-00-00-00 ~ 01-00-5E-7F-FF-FF。如下图所示:

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

         可以看到,每一个以太网地址中,只有23位可用作多播。这只能和D类IP地址中的23位有一 一对应关系。D类IP地址可供分配的有28位,可见在这28位中的前5位不能用来构成以太网硬件多播地址。

        例如,IP多播地址224.128.64.32(即E0-80-40-20)和另一个IP多播地址224.0.64.32(即E0-00-40-20)转换成以太网的硬件多播地址都是01-00-5E-00-40-20。由于多播IP地址与以太网硬件多播地址的映射关系不是唯一的,因此收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。

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

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

在互联网上向多播组上的主机传送多播数据报,需要利用IGMP协议,IGMP使多播路由器知道多播组成员信息。示例如下:

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

IGMP协议并不是在互联网范围内对所有多播组成员进行管理的协议。IGMP不知道IP多播组包含的成员数,也不知道这些成员都分布在哪些网络上。IGMP协议是让连接在本地局域网上的多播路由器知道本地局域网是否有主机(严格讲,是主机的某个进程)参加或退出了某个多播组。

显然,仅有IGMP协议是不能完成多播任务的。连接在局域网上的多播路由器还必须和互联网上的其他多播路由器协调工作,以便把多播数据报以最小代价传送给所有的多播组成员。这就需要使用多播路由选择协议

3.1 网际管理协议IGMP

IGMP最新版本的协议是IGMPv3 [RFC3376]

和网际控制报文协议ICMP协议相似,IGMP使用IP数据报传递其报文(即IGMP报文加上IP首部构成IP数据报)。

IGMP的工作分为两个阶段:

第1阶段:当某台主机加入新的多播组时,该主机应向多播组的多播地址发送一个IGMP报文,声明自己要成为该组的成员。

本地的多播路由器收到IGMP报文后,还有利用点播路由选择协议把这种组成员关系转发给互联网上的其他多播路由器。

第2阶段:由于多播组成员是动态的。本地多播路由器要周期性探询本地局域网上的主机,以便知道这些主机是否还继续是组成员。只要有一台主机对某个组响应了,那么多播路由器就认为该组仍是活跃的。但当一个组在经过多次的探询后仍然没有一台主机响应,多播路由器就认为本网络上的主机都已经离开这个多播组了,因此也就不再把这个组的成员关系转发给其他的多播路由器。

备注:IGMP的报文格式可以参阅文档 [RFC3376]。

3.2 多播路由选择协议

多播路由选择协议比单播路由选择协议要复杂得多,目前尚未标准化。

在多播过程中一个多播组中的成员是动态变化的。随时会有主机加入或者离开这个多播组。多播路由选择协议就是要找出以源主机为根节点的多播转发树。在多播转发树上,每一个多播路由器向树的叶子节点方向转发收到的多播数据报,但在多播转发树上的路由器不会收到重复的多播数据报(即多播数据报不应在互联网中兜圈子)。对不同的多播组对应不同的多播转发树。同一个多播组,对不同的源点也会有不同的多播转发树。

转发多播数据报的方法,主要有以下三种:

(1)洪泛与剪除。这种方法适用于较小的多播组,所有的组成员接入的局域网也是相邻接的。

(2)隧道技术(tunneling)。适用于多播组的位置在地理上比较分散的情况。

(3)基于核心的发现技术。适用于多播组的大小在很大范围内变化时的情况。

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

目前,还没有在整个互联网范围内使用的单播路由选择协议。下面是一些建议使用的多播路由选择协议。

  • 距离向量多播路由选择协议 DVMRP(Distance Vector Multicast Routing Protocol) [RFC 1075]
  • 基于核心的转发树 CBT(Core Based Tree) [RFC 2189, 2201]
  • 开放最短通路优先的单播扩展 MOSPR(Multicast extensions to OSPF) 这个协议是单播路由选择协议OSPF的扩充,适用于一个机构内。[RFC 1585]
  • 协议无关多播-稀疏方式 PIM-SM(Protocol Independent Multicast-Sparse Mode) [RFC 4601]
  • 协议无关多播-密集方式 PIM-DM(Protocol Independent Multicast-Dense Mode) [RFC 3973]

参考

《计算机网络(谢希仁@第7版)》第4章 - 网络层:第4.7节 - IP多播


http://chatgpt.dhexx.cn/article/KSdDGoQP.shtml

相关文章

多播

19.1 概述 单播地址标识单个接口,广播地址标识子网上的所有接口,多播地址标识一组接口。单播和广播是编制方案的两个极端(要么一个要么全部),多播的目的就在于提供一种折衷方案。多播数据报仅由对该数据报感兴趣的接口接收,也就是…

单播 、多播(组播)、广播

作者:yhthu 链接:https://www.jianshu.com/p/cc62e070a6d2#comments 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 目录 单播、多播(组播)、广播、任播单播组播广播任播 单播、多播(组播)、广…

UDP之多播/组播

目录 一.什么是多播(组播)?为什么出现多播(组播)?二.组播地址三.主机网卡对应的编号 ifconfig命令ip ad (ip adress)获取网卡对应的编号四.多播实现 一.什么是多播(组播)?为什么出现多播(组播)? 由上节课讲到的广播,可…

单播、多播和广播经典详解

1 什么是单播、多播和广播 “单播”(Unicast)、“多播”(Multicast)和“广播”(Broadcast)这三个术语都是用来描述网络节点之间通讯方式的术语。那么这些术语究竟是什么意思?区别何在…

多播--概念和编程

11.3 多播 单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进…

单播、多播(主播)、广播简介

单播 简介 单播(unicast)是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式。每次只有两个实体相互通信,发送端和接收端都是唯一确定的。它是现今网络应用最为广泛,通常所使用的网络协议或服务大多采用…

IP多播

部分转载自:http://www.firewall.cx/networking-topics/general-networking/107-network-multicast.html 剩下的基本参考谢希仁计算机网络7th 1. 基本概念 IP多播直观上可以按照下图理解,源主机只需要发送一份数据,而网络中的路由器在转发…

多播(组播)、单播、任播和广播

定义 单播(unicast): 是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式。它是现今网络应用最为广泛,通常所使用的网络协议或服务大多采用单播传输,例如一切基于TCP的协议。组播(multicast): 也叫多播, 多点广播或…

IP多播(计算机网络-网络层)

目录 一对多通信的应用需求 单播 vs 多播 多播路由器(Multicast Router) IP 多播的一些特点 D 类 IP 地址与以太网多播地址的映射关系 IP多播需要两种协议 互联网组管理协议 IGMP 多播路由选择协议 两种多播路由选择方法 建议的IP多播路由选择协…

组播,多播

组播,多播:当网络中进行了组播网部署后,一个台设备仅需要基于一个流量进行一次封装及可将该流量转发到所有的组员处,这些组员可处在网络的任何位置;对非组员不产生影响。再未进行组播网络部署的环境下,以组…

网络-单播、多播(组播)和广播的区别

网络-单播、多播(组播)和广播的区别 转载声明 本文大量内容系转载自以下文章,有删改,并参考其他文档资料加入了一些内容: 单播、多播(组播)和广播的区别 作者:Roger Luocnblogs 带…

【TCP/IP】多播 - 定义、原理及编程实现 (TTL、多播组、多播消息)

目录 多播 多播的原理 多播的数据传输时的特点 TTL 的概念 TTL 和 多播组的配置方法 多播的编程与实现 发送者 接收者 多播 多播是一种介于单播和广播通信之间的技术方式,可以将发送者所需要发送的数据包分别发送给分散在不同子网中的一组接收者。 多播的原…

socket之UDP组播(多播)

1. 概述 1.1 单播用于两个主机间单对单的通信 1.2广播用于一个主机对整个局域网上所有主机上的数据通信 1.3单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网的主机进行通信 1.4实际情况下,经常需要对一组特定的主机进行通信&a…

IP多播技术详解

文章目录 前言IP多播技术的相关基本概念IP多播地址和多播组 在局域网上进行硬件多播IP多播地址和多播MAC地址映射关系 在因特网上进行IP多播网际组管理协议IGMP多播路由选择协议 前言 随着计算机网络的发展和个人计算机的普及,人们能够方便的在网络上畅游&#xff…

UDP多播

一、多播概念 1.1、多播 多播又称为:组播。 一个人发数据,只有加入到多播组的人接收数据 1.2、多播的特点 1、多播地址标示一组接口 2、多播可以用于广域网使用 3、在IPv4中,多播是可选的 1.3、多播地址 IPv4的D类地址是多播地址…

多播(组播)

什么是多播 单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机…

多播与广播

多播 多播(Multicast)方式的数据传输是基于UDP完成的。因此,与UDP服务器端/客户端的实现方式非常接近。区别在于,UDP数据传输以单一目标进行,而多播数据同时传递到加入(注册)特定组的大量主机。换言之,采用多播方式时&#xff0c…

多播(IP多播-网络层)与单播

多播(IP多播-网络层)与单播 多播(IP多播-网络层)简介多播组地址(IP地址中的D类地址)【多播组地址——D类地址】中一些不能随意使用的地址 IP多播的分类 在局域网上进行的硬件多播网际组管理协议IGMP和多播路…

多播的概念

一、多播概述 多播:数据的收发仅仅在同一组中进行 (相当于我往一个群里发,只有加入这个群的人才能收到) 多播的特点: ①多播地址标示一组接口。 ②多播可以用于广域网使用。 ③在IPv4,多播是可选的。 二…

win10——telnet 开启

1.win10默认没有开启 2.找到控制面板 3.找到Telnet客户端 4.测试 5.退出 ctrl ‘]’ 之后q