十五、组播(Multicast)
- 组播(Multicast)
- 组播基础
- 前言
- 当网络中部署点到多点通信应用时,若采用单播方式,网络中传输的信息量与需要该信息的用户量成正比。多份内容相同的信息发送给不同用户,对信源及网络带宽都将造成巨大压力。若采用广播方式,无需接收信息的主机也将收到该信息,这样不仅信息安全得不到保障,且会造成同一网段中信息泛滥。
- IP组播技术有效地解决了单播和广播在点到多点应用中的问题。组播源只发送一份数据,数据在网络节点间被复制、分发,且只发送给需要该信息的接收者。
- 传统点到点应用
- 服务提供端以单个用户为单位提供服务。
- 不同用户与服务提供端的通信数据存在差异。
- 新型点到多点应用
- 服务提供端以一组用户为单位提供服务。
- 同组用户与服务提供端的通信数据无差异。
- 单播方式部署点到多点应用
- 单播方式存在的问题
- 重复流量过多。
- 消耗设备和链路带宽资源。
- 难以保证传输质量。
- 单播方式存在的问题
- 广播方式部署点到多点应用
- 广播方式所存在的问题:
- 地域范围限制。
- 安全性无法保障。
- ·有偿性无法保障。
- 广播方式所存在的问题:
- 组播方式部署点到多点应用
- 组播方式的优势:
- 无重复流量。
- 节省设备与带宽资源。
- 安全性高。
- 有偿性有保障。
- 组播方式的优势:
- 组播的基本架构
- 组播源到路由器
- 组播IP地址
- 组播的MAC地址
- 组播IP与MAC的映射
- 前言
- IGMP协议原理与配置
- 接收者与路由器间需要交换哪些信息?
- 口接收者需声明自己要接收哪个组的数据。
- 路由器需了解哪些组播组存在接收者。
- 人工配置这些信息,有哪些问题?
- 实时性差。
- 口灵活性差。
- 工作量大、易出错。
- 组成员管理-IGMP
- IGMP协议运行于主机与组播路由器之间。
- IGMP协议的作用:
- 主机侧:通过IGMP协议向路由器通告组成员关系。
- 口路由器侧:通过IGMP协议维护组成员关系。
- IGMPv1
- IGMPv1的工作机制
- 普遍组查询与响应。
- 响应抑制机制。
- IGMPv1问题
- 组成员离开
- 查询器选举
- 1.组播路由器发送查询报文:谁要加入哪些组
- 2.用户主机回应成员报告报文:告诉组播路由器自己加入哪个组,告诉其他成员做成员抑制机制
- 3.没有离开机制,默默离开,130s后如果组播路由器未收到成员报告,那么就删除对应组表项
- 4.当本网段有多个组播路由器可以发送查询报文的时候,没有专门的选举查询器机制,而是需要靠PIM协议。
- IGMPv1的工作机制
- IGMPv2
- IGMPv2对IGMPv1的改进:组成员离开
- IGMPv2对IGMPv1的改进:查询器选举
- 独立的查询器选举机制。
- lGMPv1和IGMPv2报文比较
- 1.组播路由器发送普通查询报文(Membership query general):问谁加入哪个组
- 2.用户主机发送成员报告报文(Membership report) :加入具体的组信息
- 3.当某个用户要离开某个组,发送离开报文:告诉组播路由器要离开的组
- 4.当组播路由器收到离开报文(Leave Group),发送特定组查询报文(Membership query -Specific for group) :询问是否还有对应的成员在特定组内。
- IGMPv3
- lGMPv3工作机制
- IGMP各版本间的差异
- 运行IGMPv3的主机不仅能够选择组,还能根据需要选择组播源。
- 主机发送的IGMPv3报告报文中可以包含多个组记录,每个组记录中可以包含多个组播源。
- IGMPv3包含两类报文:查询报文和成员报告报文。
- IGMPv3没有成员离开报文(Leave Group报文),通过在Membership Report报文中申明不再接收任何源发送给某组播组的数据,此报文是Membership Report TO_IN(NULL, 228.1.12)
- 查询报文包含:普通组查询报文、特定组查询报文、特定源组查询报文Group-and-Source-Specific Query(IGMPv3新增)。当路由器侧收到block(S,G)表示不接收某个源发送的数据时,需要发送特定源组查询报文以确认。
- lGMPv3工作机制
- 二层中组播数据转发的问题
- SSM模型中的新需求
- 只接收特定源发送的组播数据。
- 组播数据在二层被泛洪,造成:
- 网络资源浪费。
- 存在安全隐患。
- SSM模型中的新需求
- 接收者与路由器间需要交换哪些信息?
- lGMP Snooping工作原理和IGMP filter
- 节约网络资源提高安全性
- 使能IGMP Snooping功能后,二层设备侦听和分析主机和路由器之间交互的IGMP报文。通过分析报文中携带的信息(报文类型、组播组地址、接收报文的接口等),建立和维护二层组播转发表,从而指导组播数据帧在数据链路层按需转发。
- 组播的各种选举
- 1. IGMPV2/V3的查询者
- 2. DR
- 3. DM的ASSERT
- 4.BSR
- 5. BSR发送信息,叶路由器选举RP的过程
- 6. Auto-rp MA选举RP的过程
- RPF
- 组播路由器收到组播流量就要做RPF检查
- 目的:
- 1.避免组播流量重复发送
- 2构建出最短无环的组播分发树SPT
- RPF检查
- 1.组播静态路由
- 2.DVMRP(现网中已经不存在)
- 3.MP-BGP
- IGP
- RPF规则总结(重要)∶
- 讨论:RP到最后一跳路由器之间是否也会进行RPF校验?为什么?
- 结论︰实验现象说明不需要进行((15.4.1T) RPF,在最后一跳路由器发*,G的时候,会以RP为查找目标,查询路由表,选出最短路径去往RP,当路由表中去往RP存在多条等价路径的时候,(猜测:1,比较IP地址;2,*,G表象的覆盖),总之,肯定会选出唯一的一条,否则组播报文会重复。
- PIM协议原理
- PIM概述
- 协议号:103, 组播地址:224.0.0.13
- PIM-DM基本概述
- 采用“推(Push)模式”转发组播报文。===自来水
- PIM-DM的关键任务:
- 建立SPT (Shortest Path Tree,最短路径树)。
- 主要工作机制:
- 邻居发现
- 扩散与剪枝
- 状态刷新
- 嫁接
- 断言
- PIM-SM基本概述
- 使用“拉(Pull)模式”转发组播报文。 ===牛奶
- PIM-SM的关键任务:
- 建立RPT (Rendezvous Point Tree,汇聚点树也称共享树)。
- 建立SPT (Shortest Path Tree,最短路径树)。
- 适用于组播成员分布较为稀疏的网络环境。
- 主要工作机制:
- 邻居建立
- DR竞选
- RP发现
- RPT构建
- 组播源注册
- SPT切换
- 断言机制
- 汇聚点RP (Rendezvous Point)
- 充当RPT树的根节点。
- 共享树中的所有组播流量都经过RP转发给接收者。
- 所有PIM路由器都要知道RP的位置。
- RPT及其建立过程
- 接收册DR与源侧DR
- SPT的建立过程
- PIM-SM的转发树
- Switchover机制
- (*,G)与(S,G)条目关系
- PIMv2 Bootstrap
- BSR工作原理:
- 1.C-BSR通过224.0.0.13组播地址,选出Active-BSR
- 2.选出的BSR也用224.0.0.13组播向外通告BSR地址
- 3.C-RP收到通告,会用单播把消息发向BSR
- 4.BSR收集到所有C-RP消息后,周期性通过224.0.0.13通告出去
- 5.所有叶路由器按照选举规则选出RP
- 路由器利用BSR发送的信息选择RP的过程:
- BSR工作原理:
- PIM概述
- 域间组播MSDP
- IPV6组播
- 1. IPv6的组播原理和IPv4的组播没有太大区别
- 2.但是IPv6组播引入了嵌入式RP的发现机制
- 3.同时也会生成虚拟Tunnel用于RP的发现和注册
- 4. PIM-SM的源向RP的注册,也是通过这个生成的虚拟接口完成的
- 5.在Cisco IOS中,tunnels在RP生成的时候也自动随之创建
- 6.每一个活动的RP有一个虚拟的Tunnel
- 7.在RP活动时,这个Tunnel一直存在
- 8.再IPv6组播中,MLD协议与IPv4组播中的IGMP协议功能相同,用于
- 发现接受者
- 9.IPv6只支持PIM-SM模式,不支持PIM-DM
- 10.RP生成方式只支持静态RP和动态BSR获取RP
- 查看命令
- show ip pim neighbor //组播邻居表
- show ip pim interface//查看哪些接口启用pim
- show ip mroute//查看组播路由表
- show ip mroute summary//查看组播路由表简洁
- show ip mroute count
- show ip rpf 1.1.1.1
- 查看命令
- 组播基础
十五、组播(Multicast)相关推荐
- linux网络协议栈 转发组播,Linux 网络协议栈开发基础篇(十)—— 组播(Multicast)基础...
一.组播(Multicast)传输 在发送者和每一接收者之间实现点对多点网络连接. 如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包.它提高了数据传送效率.减少了骨干网络出现 ...
- Linux 网络协议栈开发基础篇(十)—— 组播(Multicast)基础
一.组播(Multicast)传输 在发送者和每一接收者之间实现点对多点网络连接. 如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包.它提高了数据传送效率.减少了骨干网络出现 ...
- 网络层:单播unicast 组播multicast 广播broadcast
当前的网络中有三种通讯模式:单播.广播.组播(多播),其中的组播出现时间最晚但同时具备单播和广播的优点,最具有发展前景. 一.单播unicast: 主机之间"一对一"的通讯模式,网 ...
- java单播多播socket_广播(broadcast),组播(multicast),单播(unicast)的Java实现
## IP地址 在IPv4中,一共有五类IP地址 * A类地址:网络号占1个字节.网络号的第一位固定为0. * B类地址:网络号占2个字节.网络号的前两位固定为10. * C类地址:网络号占3个字节. ...
- 分布式系统(四) 组播 Multicast
Multicast 组播 通信模式 Unicast 一个进程向另一个进程发送消息 尽力而为:如果信息传送,就没有被破坏 可靠的:保证信息能传送 有序:信息传送(deliver)的顺序与发送的顺序一致 ...
- 17现代软件工程十五组第三次作业
李天鹏: 这次课程中,我最想提升的是自己的交流能力以及对软件工程整体流程的理解程度以及整体把控.下面是一些详细的点: 1.希望能够和组内的同学打成一片,交到更多朋友. 2.熟读邹欣老师的<构建之 ...
- java (多网卡环境下)发送组播广播(multicast/broadcast)失败问题
java发送组播或广播包并不复杂网上有很多文章,比如下面的两篇: <Java实现组播(multicast)简单例子> <Java 网络编程案例:使用 MulticastSocket ...
- 单播(Unicast),组播(Multicast),广播(Broadcast)
根据目标地址判断 类型 说明 单播 Unicast 发送给单个设备(明确目标地址) 广播 Brodcast发送给所属广播域内的所有设备(目标地址不明确)MAC地址全F,IP地址全1 组播 Multic ...
- 什么是 Multicast|组播
一台机器和一台机器通信这是单播. 一台机器发出的数据包能被多台机器收到这就叫组播. 一台机器发出的数据包能被一个网段的机器收到这叫广播. 一个机器发送,多台机器接收,但是又不同于广播,发送端的IP设置 ...
- Multicast :: 组播学习笔记
概念:组播 (Multicast) ------------------------------------------ 与 unicast, broadcast 类似,它是数据的一种传送方式. 与 ...
最新文章
- 机器学习--局部加权线性回归
- 简单的c语言课程设计管理类,C语言课程设计-学生成绩简单管理程序.doc
- linux串口驱动分析【转】
- 哪些书你看之前以为很枯燥,结果一看却欲罢不能的?
- respberry pi3 上手随记
- Color picker:拾色器
- java 文件监听器_java7 文件监听器
- .NET Framework 4.0源代码
- matlab的7.3版本是什么_乐建工程宝V6.3版本升级说明公告
- scrapy不抓取重复的网页解决办法
- 10.14. Network
- CCF 2013-12-1 出现次数最多的数
- 二叉树的7种遍历算法
- .Net C# 微信APP支付的开发步骤
- linux模拟tcp测试工具,TCP测试小工具tcping for linux
- Linux 常用操作命令大全(最后更新时间:2022年1月)
- 应用程序正常初始化000007b失败
- 第一次数据分析师面试
- The Shawshank Redemption-10
- iOS触动精灵模拟触控类外挂原理分析