组播,多播

article/2025/9/9 21:46:26

组播,多播:当网络中进行了组播网部署后,一个台设备仅需要基于一个流量进行一次封装及可将该流量转发到所有的组员处,这些组员可处在网络的任何位置;对非组员不产生影响。再未进行组播网络部署的环境下,以组播地址为目标ip时,流量将和广播传输方式完全一致;
在这里插入图片描述

组播部署:在第一跳和最后一条路由器间使用组播路由协议;最后一跳路由器和组员间使用
IGMP;

优点:占用资源极少;
缺点:基于UDP传输
1、不可靠
2、没有流控
3、无序性-----应用层流量自己来排序
4、重复性接收同一个流量-必须避免

名词注解:
First-hop 第一跳路由器
Last-hop 最后一跳路由器–叶子路由器

多播ip地址:IPV4中的D类地址,第一个8位为224-239
组播地址被称为扁平地址—无掩码 只能作为目标地址

1、保留地址 224.0.0.0 —224.0.0.255 已经分配给各个协议使用
224.0.0.1-----所有的路由器和所有主机
224.0.0.2-----所有的路由器
224.0.0.4-----DVMRP
224.0.0.5–6 OSPFV2
224.0.0.9 ----RIP
224.0.0.10—EIGRP
224.0.0.13—PIM
为控制保留地址的传播半径,大多协议在使用时将TTL值设定为1;

2、公有地址 224.0.1.0—238.255.255.255
其中232.0.0.0–232.255.255.255 SSM 高级PIM
233.0.0.0—233.255.255.255 GLOP
GLOP-----用户申请一个AS号就增送一段组播地址
假设AS号为9949-----先化为16进制—26DD 若购买AS好小于4位,假设AS号为121,那么添加到0121再换算为16进制

再每两位分割成一段,各自转换为一个10进制值
26–38
DD–221
赠送地址组播地址为:233.38.221.0—233.38.221.255

3、私有地址 239.0.0.0—239.255.255.255

多播的MAC地址:
01-00-5e-0 00000000000000000000000 32个IP地址对应一个MAC地址
组播IP地址的后23位作为组播MAC地址的后23位
224.1.1.1 224.0000 0001.0000 0001.0000 0001
01-00-5e-0 0001.0000 0001.0000 0001
225.1.1.1
01-00-5e-0 0001.0000 0001.0000 0001
224.1.1.2
01-00-5e-0 0001.0000 0001.0000 0010

IGMP-----internet组管理协议
用于最后一跳路由器和PC间工作
作用:1、确定下方是否存在加组用户及所加组地址
2、协同交换机能够针对组播流量进行转发

跨层封装协议 协议号为2在这里插入图片描述
V1:
查询包:叶子路由器每60s一个周期 180s hold time 使用224.0.0.1 TTL=1
报告包:PC收到查询后返回自己所加组的信息,同时在刚加组时主动发出

路由器发出查询包后,3分钟内没有收到报告,将停止发出—直到PC主动发出报告报文再周期发出

查询包:
源ip地址------路由器接口ip地址
目标ip地址—224.0.0.1 TTL=1
组地址----------0.0.0.0

报告报文:
源ip地址------PC接口ip地址
目标ip地址—所在组地址
组地址----------所在组地址

注:使用所在组地址来作为目标ip地址的原因在于,只需要让叶子路由器知道某个组是否存在组员即可,没必要所有组员均回答;最先发出的报告报文将抑制其他PC发出报告;

若在同一广播域中,最后一跳路由器可以存在多个,那么它们中只能一台进行查询(查询者);
在IGMP V1中利用了PIM选举的DR来作为查询者;接口ip地址最大为DR;

V2:默认兼容v1;其工作原理同V1基本相同
在这里插入图片描述
最大响应时间-----0.1s为单位 响应速度加快
Tepy:
1、普通查询包
2、指定组查询包
3、报告(V1/V2)
4、离组报文

正常查询和报告机制同V1一致;V2中若某一个组中某台PC离开某个组;那么这台PC会向最后一跳路由器发出一个离组报文;之后叶子路由将马上针对该组发出指定组查询包,2s内若没有回应,那么删除该组信息。

查询包:源ip----路由器接口ip 目标ip:224.0.0.1 TTL=1 组地址:0.0.0.0
报告包:源ip----pc接口ip 目标ip:所在组ip 组地址:所在组ip
离组包:源ip----pc接口ip 目标ip:224.0.0.2 TTL=1 组地址:所离组ip
指定组查询包:源ip—路由接口ip 目标ip:指定组地址 组地址:指定组地址

IGMP v2中查询者同V1的功能是一样的,但选举方式不同; 路由器接口ip地址最小的叶子路由为查询者;当一个查询者失效后,需要120s另一台设备才会发出查询包。

配置:若在一台路由器的接口上运行了组播路由协议;那么该接口的IGMP协议也被开启;
1、默认设备不支持组播路由功能,若需要运行组播路由协议,必须先开启组播路由功能;
R1(config)#ip multicast-routing
2、在接口上运行组播路由协议来激活IGMP;
R1(config)#int f0/0
R1(config-if)#ip pim sparse-mode

R1#show ip igmp interface fastEthernet 0/0

3、用户加组—PC开启软件即可 路由器可以使用命令来进入
R3(config)#interface fastEthernet 0/0
R3(config-if)#ip igmp join-group 224.1.1.1

R2#show ip igmp groups

IGMP协同交换机基于组播流量生成转发列表:
交换机必须为多层交换机,二层交换机只能对流量进行泛洪;

IGMP snooping:公有协议
在交换机上配置(若该设备支持,将默认开启)
交换机将窥探PC向路由器发出报告报文,然后将其所加入组IP地址和接口绑定,生成记录列表;
只有当流量的目标MAC地址为组播MAC时,才会窥探;
sw(config)#ip igmp snooping 开启该协议

CGMP:Cisco 组成员关系协议—需要路由器和交换机协同工作
路由器将PC返回的IGMP报告报文中的PC源MAC地址和所在组MAC地址进行绑定,然后将该表下放给交换机;交换机将根据该数据流中的目标组MAC来找到对应的PCMAC和接口;
由于组播MAC地址不精确,可能导致发出组播流量到错误的目标。

组播路由协议:用于第一跳路由器到最后一跳路由
作用:从源到组用户间生成唯一的一条路径;经过的每台路由器上生成一张组播路由表,这些路由表保证源到每个组员只有一条最佳路径,不能出现重复性流量。

无论何种组播路由协议中,均存在一些机制来避免重复性流量:
1、RPF 反向校验
2、声明
3、树形结构

RPF 反向校验:用于一台路由器同时从多个接口接收到同一(同源)组播流量时,只选举出最佳一个入接口(RPF接口)。
例:
假设一台路由器收到一个组播流量,该流量从F0/0进入,其源ip地址为12.1.1.1/24;
那么本地的单播路由表必须要有到达12.1.1.0/24网段的路由条目,且该条目的出接口为F0/0口,那么F0/0便满足了反向校验规则。
当多个接口均满足反向校验规则时,将进行选举----一台路由器基于一个源只能存在一个RPF接口;
选举规则:
1、较小的AD
2、较小的度量
3、较大的接口ip地址
若一台路由器到达源为负载均衡,那么默认选举的路径可能不是管理员希望的路由,可以使用静态组播路由协议来变更;可以实现负载分担,不同的源将流量通过不同的接口传入;
前提是这些接口均满足RPF规则:
r4(config)#ip mroute 1.1.1.1 255.255.255.255 serial 1/1
源ip地址 本地进接口
r4(config)#ip mroute 2.2.2.2 255.255.255.255 34.1.1.2
源ip地址 上一跳(直连)
MA网络必须使用上一跳,点到点网络中可以使用进接口。

声明机制:在MA网络中会遇到本地一个RPF接口对应多个流量发出接口(上一跳);
此时需要在这些出接口中选择唯一的一个出接口来发出流量;
在一个网段内基于一个源地址只能存在唯一的流量出口;
1、较小AD
2、接口到源的最小度量
3、较大接口ip地址

树形结构:
SPT(最短路径树)—源树 一个源一颗树 源到接收者最短路径 多源多树(S,G)
RPT(共享树)---------选择一个RP,所有源与RP建立树型接口,RP到所有目标仅一颗树 路径可能不是最优(*,G)

PIM:协议无关模块-----大多的组播路由协议其实让单播路由协议携带组播路由信息来实现组播路由协议的功能—MBGP/MOSPF
PIM是一个完全独立的组播路由协议,可以使用任何单播协议;

PIM特征:跨层封装协议–协议号103;存在hello包,30s hello time ,105s hold time;
存在邻居关系,更新地址地址为224.0.0.13

PIM拥有两种模式:
1、密集模式–dense-mode 企业网
2、稀疏模式–sparse-mode 运营商

密集模式:一般用于接收者较多,大多用于企业内网–LAN
使用SPT树,基于push 推模型工作
先由第一跳路由器将源发出的流量推向整个网络,过程中每台路由器的RPF和声明机制开始计算生成唯一且最短路径,生成路由表(S,G);而后无接收者的最后一跳路由器开始向源反方向发出修剪包,修剪到存在接收者路由器为止;再每180s 重复以上动作。

配置:
r2(config)#ip multicast-routing
r2(config)#interface s1/0
r2(config-if)#ip pim dense-mode
r2(config-if)#int s1/1
r2(config-if)#ip pim dense-mode 一个接口开启PIM协议后,可以基于IGMP工作;可以建立PIM邻居,不开启协议的接口是不会转发组播流量的;

PIM配置完成后将生成邻居表:
r3#show ip pim neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
S - State Refresh Capable
Neighbor Interface Uptime/Expires Ver DR
Address Prio/Mode
23.1.1.1 Serial1/0 00:00:54/00:01:20 v2 1 / S
34.1.1.2 Serial1/1 00:00:37/00:01:36 v2 1 / S
36.1.1.2 FastEthernet0/0 00:00:25/00:01:19 v2 1 / DR S
优先级用于选举DR,DR仅在MA网络中选举;DR在密集模式中无意义;
选举DR规则,先比优先级,大优;默认为1;然后比较接口ip最大
模式:
S 状态可刷新 DR可以抢占
B 高级PIM 双向PIM
N 低版本协议中不选举DR

一旦源向外发出流量,第一跳路由开始推流量,各种机制开始工作,修剪开始进行后,各台路由器将生成组播路由表:
r3#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry,
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
U - URD, I - Received Source Specific Host Report,
Z - Multicast Tunnel, z - MDT-data group sender,
Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 224.1.1.1), 00:01:30/stopped, RP 0.0.0.0, flags: D
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/0, Forward/Dense, 00:01:30/00:00:00
Serial1/1, Forward/Dense, 00:01:30/00:00:00
Serial1/0, Forward/Dense, 00:01:30/00:00:00

(12.1.1.1, 224.1.1.1), 00:01:30/00:02:54, flags: T
Incoming interface: Serial1/0, RPF nbr 23.1.1.1
Outgoing interface list:
Serial1/1, Forward/Dense, 00:01:30/00:00:00
FastEthernet0/0, Prune/Dense, 00:01:30/00:01:29

只要生成一条(S,G)便会出现一条(,G);(,G)对密集模式无意义;

稀疏模式:主要应用于ISP网络;同时使用RPT树和SPT树
存在RP角色,拉模型

首先网络中选举一个RP(全网均知);叶子路由器若下方存在组员,那么便将该组的加组信息转发到RP;之后源向外发出流量,第一跳路由器将该数据包裹于单播中传递到RP注册;若存在该组,RP将该单播流量解封为组播然后转发到用户,同时告知第一跳路由器有接收者,并停止注册;之后第一跳路由器使用推模型,推出流量;而后最后一跳路由器向源基于单播路由表进行反向修剪,开辟一条最佳路径。
若不存在接收者,那么将停止注册;直到下一次的流量发出;

配置:
1)
r2(config)#ip multicast-routing
r2(config)#interface s1/0
r2(config-if)#ip pim sparse-mode
r2(config-if)#exit
r2(config)#interface s1/1
r2(config-if)#ip pim sparse-mode

2)定义RP
【1】静态RP—管理员手写
【2】auto-rp cisco私有
【3】BSR 公有

【1】静态RP,告知所有路由器谁为RP(一般使用环回地址来作为RP地址,若使用环回地址,单播路由表中必须可达环回路由,同时该环回接口也必须工作PIM中,选择环回接口是因为环回接口稳定)
r3(config)#int lo0
r3(config-if)#ip pim sparse-mode

r2(config)#ip pim rp-address 3.3.3.3 在所有设备上配置

【2】auto-rp cisco私有
C-RP 候选RP-----参选者 建议多个
MA 映射代理----决策者 也可以多个

C-RP会周期向224.0.1.39发出希望成为RP的信息 该组只有MA加入
MA认定IP地址最大成为RP,通过224.0.1.40 来宣布谁成为RP 所有运行PIM协议的路由均默认加入该组

C-RP配置–一般使用C-RP的环回地址来参选;故该环回可以被其他访问的同时,还必须工作于PIM中
r2(config)#interface lo0
r2(config-if)#ip pim sparse-mode
r2(config-if)#exit
r2(config)#ip pim send-rp-announce loopback 0 scope 5
参选接口 TTL默认为1,必须修改否则传输不到MA

MA配置:一般使用MA的环回地址来参选;故该环回可以被其他访问的同时,还必须工作于PIM中
r6(config)#ip pim send-rp-discovery loopback 0 scope 5

注:由于参选信息和结果的宣布均通过组播发出,而在稀疏模式中必须存在RP后才能进行组播流量的转发;故以上配置不能实现RP的选举;
r6(config)#ip pim autorp listener 在所有路由器配置该命令后,参选者会将参选信息单播发送给邻居,这样每台路由器均可收到参选信息和参选结果;
另:可以让所有的路由器运行在稀疏密集模式中
r2(config)#interface s1/0
r2(config-if)#ip pim sparse-dense-mode
让所有路由器的接口工作于以上模式,那么选举RP的信息将基于密集模式来进行;RP选举成功后,稀疏来转发网络组播流量。

DR的作用:在MA网络中将进行DR选举,先优先级最大,再ip地址最大
1、在IGMP V1中被利用成为查询者
2、在IGMP V2中无意义
3、在密集模式协议无意义
4、在稀疏模式下,第一跳和最后一跳路由器可能存在多台,那么将导致重复注册和加组;故进行DR选举,仅DR可以注册或加组;–在每个网段内仅DR可以和RP沟通;
r2(config)#int f0/0
r2(config-if)#ip pim dr-priority 2


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

相关文章

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

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

windows service2008 2R 开启telnet

1,什么是telnet 可以把telnet当作一种通信协议,对于入侵者而言telnet是一种远程登录的工具。 2,windows开启telnet(默认情况下windows系统的telnet功能是关闭的) 步骤: ①打开控制面板 输入winR 输入contro…

windows telnet开启

windows下telnet 服务开启 工作中经常要判断服务器某个端口是否连通,如需要看下测试服务器中tomcat的8080端口是否连通,需用到命令 : telnet 192.168.1.101 8080 ,如图: 解决方案 1、telnet在win7下默认是不开启的,所…

服务器系统开启telnet,Telnet怎么打开 Win7/Win8系统开启Telnet服务方法图解

Telnet是管理员常用的远程登录和管理工具,通过在本地电脑上运行Telnet客户端服务,就可以远程控制远端的Telnet服务器了。在Windows 2003/XP/Vista/Win7/Win8系统中都集成有Telnet服务。过默认情况下Telnet服务是被禁用的,需要使用的朋友&…

linux 打开telnet登录,linux开启telnet

Centos6启telnet 安装 [rootntp1 ~]# yum install telnet telnet-server xinetd 开启xinetd自启动和启动xinetd [rootntp1 ~]# chkconfig xinetd on [rootntp1 ~]# service xinetd restart 允许root用户登录 [rootntp1 ~]# vi /etc/pam.d/remote 修改/etc/pam.d/remote&#xf…

如何保存网页上的图片原图,大图

如何保存网页上的图片原图,大图 步骤1: 使用google浏览器,打开网页,按F12(或者打开 ‘开发者工具’),点击source,并选择img过滤。可以看到下面的图片链接,如图&#xf…

网页保存成图片

Chrome中网页保存成图片 1、F12 2、Ctrl Shift P 3、输入full firefox网页保存成图片 1、看下附加组件中是否有网页截图,如有,则直接使用即可,无,打开(或下载)就行 2、截图 (个人觉得firefox的截图比较灵活&#x…

图片的加载、显示和保存

目录 1.预备知识 2.代码实现 1.预备知识 imread() 加载图片imwrite() 保存图像 imread() 加载图片 有两个参数,第一个参数为字符串形式,也就是图片的路径 第二个参数是一个flag,指定了读取图像的方式, 默认的是加…

图片上传-->保存图片

显示图片的img标签 获取文件读取器 var imageReadernew FileReader(); 使用正则表达式给图片过滤 regexImageFilter /^(?:image/bmp|image/gif|image/jpg|image/jpeg|image/png)$/i; 文件读取器加载时间,在读取文件完成后触发 imageReader.οnlοadfunction(ev…

Python爬虫 自动爬取图片并保存

一、准备工作 用python来实现对图片网站的爬取并保存,以情绪图片为例,搜索可得到下图所示 f12打开源码 在此处可以看到这次我们要爬取的图片的基本信息是在img - scr中 二、代码实现 这次的爬取主要用了如下的第三方库 import re import time import …

保存网页图片的方法

最近ui妹子经常找我....... 当然不是的....只是想让我给他弄两张网页的图片....遂FE退化切图仔.... 话不多说,进入正文。有些朋友因为工作需要(比如某鹿某祖等图片好想保存下来天天舔屏,还得是高清的....)又不知道如何保存网页中…