二层组播协议IGMP proxy或IGMP Snooping

2023-10-29 12:32

本文主要是介绍二层组播协议IGMP proxy或IGMP Snooping,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

二层组播协议IGMP proxy或IGMP Snooping,采取的基本方法是对每个组播数据包分组传送,下面分析这两种协议的实现方式。
一、IGMP Snooping
IGMP Snooping和IGMP协议一样,两者都用于组播组的管理和控制,它们都使用IGMP报文。 IGMP协议运行在网络层 ,而 IGMP Snooping则运行在链路层 ,当二层以太网交换机收到主机和路由器之间传递的IGMP报文时,IGMP Snooping分析IGMP报文所带的信息,在二层建立和维护MAC组播地址表,以后从路由器下发的组播报文就根据MAC组播地址表进行转发。IGMP Snooping只有在收到某一端口的 IGMP离开报文 或者某一端口的 老化时间定时器超时 的时候才会主动向端口 发IGMP特定组查询报文除此之外,它不会向端口发任何IGMP报文。
IGMP Snooping是靠侦听用户与路由器之间通信的IGMP报文维护组播地址和VLAN的对应表的对应关系,它将同一组播组的活动成员映射为一个VLAN,在收到组播数据包后,仅向该组播组所对应的VLAN成员转发。主要操作流程如下:
(1)主机与BAS进行PPPoE协商,通过PPPoE认证。
(2)主机向路由器发送IGMP成员报告包,BAS监听到该包,并从PPPoE数据包中得到组播组的地址,将该用户添加到对应的VLAN,如果该用户是组播组的第一个用户,则为这个组播组产生一个组播条目,并将该报文转发至上层路由器以更新组播路由表。
(3)BAS收到路由器的组播数据报文时,根据组播MAC地址和组播IP地址的对应关系,找到对应的VLAN,然后将数据包封装成PPPoE的会话包,向VLAN内的成员转发。
(4)当收到来自主机的申请离开组播组的包时,BAS把收到该包的端口从相应的VLAN中删除,若该用户是组播组最后一个用户(此时 VLAN为空),则把该VLAN删除,并把该包内容通过上行端口转发出去。 IGMP Snooping的规则比较简单,下行方向透传查询包,上行方向根据需要转发加入或离开包,但要求BAS必须有3层提取功能,它对于主机和路由器是透明 的。
二、IGMP Proxy
IGMP Proxy是靠拦截用户和路由器之间的IGMP报文建立组播表,Proxy设备的上联端口执行主机的角色,下联端口执行路由器的角色。
下面是简要流程:
(1)主机与BAS进行PPPoE协商,通过PPPoE认证。
(2)上联端口执行主机的角色,响应来自路由器的查询,当新增用户组或者某组最后一个用户退出时,主动发送成员报告包或者离开包。
(3)下行方向的业务包按照组播表进行转发。
(4)下联端口执行路由器的角色,完全按照IGMP V2中规定的机制执行,包括查询者选举机制,定期发送通用查询信息,收到离开包时发送特定查询等。 IGMP Proxy在两个端口分别实现不同的功能,工作量相对较大,其优点是当网络中没有路由器时,IGMP Proxy设备可以起到查询者的作用,而且如果要扩展组播路由功能,Proxy比Snooping方便。考虑到BAS复制PPPoE多播数据对底层设备造 成的巨大压力,而且当前的交换机和部分DSLAM(尤其是以IP为内核的DSLAM)已经开始支持二层组播,所以从发展的角度看采用IGMP Proxy更好一些。
IGMP snooping 的实现机理是: 交换机通过侦听主机向路由器的IGMP成员报告消息的方式,形成组成员和交换机接口的对应关系;交换机根据该对应关系将收到组播数据包只转给具有组成员的接口。

  IGMP Proxy与IGMP Snooping实现功能相同但机理相异:IGMP Snooping只是通过侦听IGMP的消息来获取有关信息,而IGMP Proxy则拦截了终端用户的IGMP请求并进行相关处理后,再将它转发给上层路由器

这篇关于二层组播协议IGMP proxy或IGMP Snooping的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/300687

相关文章

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Qt 中集成mqtt协议的使用方法

《Qt中集成mqtt协议的使用方法》文章介绍了如何在工程中引入qmqtt库,并通过声明一个单例类来暴露订阅到的主题数据,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一,引入qmqtt 库二,使用一,引入qmqtt 库我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

proxy代理解决vue中跨域问题

vue.config.js module.exports = {...// webpack-dev-server 相关配置devServer: {host: '0.0.0.0',port: port,open: true,proxy: {'/api': {target: `https://vfadmin.insistence.tech/prod-api`,changeOrigin: true,p

Modbus-RTU协议

一、协议概述 Modbus-RTU(Remote Terminal Unit)是一种基于主从架构的通信协议,采用二进制数据表示,消息中的每个8位字节含有两个4位十六进制字符。它主要通过RS-485、RS-232、RS-422等物理接口实现数据的传输,传输距离远、抗干扰能力强、通信效率高。 二、报文结构 一个标准的Modbus-RTU报文通常包含以下部分: 地址域:单个字节,表示从站设备

网络原理之TCP协议(万字详解!!!)

目录 前言 TCP协议段格式 TCP协议相关特性 1.确认应答 2.超时重传 3.连接管理(三次握手、四次挥手) 三次握手(建立TCP连接) 四次挥手(断开连接)  4.滑动窗口 5.流量控制 6.拥塞控制 7.延迟应答 8.捎带应答  9.基于字节流 10.异常情况的处理 小结  前言 在前面,我们已经讲解了有关UDP协议的相关知识,但是在传输层,还有