广播和多播路由选择
写在前面:这里是小王成长日志,一名在校大学生,想在学习之余将自己的学习笔记分享出来,记录自己的成长轨迹,帮助可能需要的人。欢迎关注与留言。
这是系列博客 计算机网络-自顶向下 中的其中一篇,更多博文请访问专栏 计算机网络 ,如有错误还请各位大佬指正。
文章目录
- 广播和多播路由选择
- 0. 广播和多播是啥子
- 1. 广播路由选择算法
- 2. 多播
0. 广播和多播是啥子
考虑在网络中两台主机之间的互相通信
广播:广播是指在IP子网内广播数据包,所有在子网内部的主机都将受到这些数据包。广播意味着网络向子网每一个主机都投递一份数据包,不论这些主机是否乐于接收该数据包。所以广播的使用范围非常小,只在本地子网内有效,通过路由器和交换机网络设备控制广播传输。
多播:也叫组播,组播在发送者和每一接收者之间实现点对点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率,减少了骨干网络出现拥塞的可能性。
1. 广播路由选择算法
1.1 最简单的的发送方式: 向每个目的地发送一个副本
- 效率低,每个发送的副本都将通过开头那段链路传输
- 每个目的地的地址都必须被发送方知晓,不太可能
1.2 更有效的方式
- 源节点仅向第一跳发送副本,然后由第一跳向第二跳发送副本,以此类推
1.3 无控制洪泛
-
实现广播的最显而易见的技术
-
源节点向所有邻居发送副本,邻居接收到后向除了源节点外的所有邻居转发副本
-
出现的问题
- 广播风暴:如果节点图是有环的就可能导致副本无限循环
1.4 受控洪泛: 解决广播风暴的方法
-
避免广播风暴的关键是每个结点明智地选择何时洪泛分组,何时不洪泛分组(
-
解决方法
-
序号控制洪泛( sequence- number- controlled flo。由19)
- 源结点将其地址(或其他唯一的标识符)以及广播序号 (broadcast sequence number) 放入广播分组,再向它的所有邻居发送该分组 。
- 每个结点维护它已经收到的、复制的和转发的源地址和每个广播分组的序号列表 。
- 当结点接收到一个广播分组时,它首先检查该分组是否在列表中 。 如果在,丢弃该分组;如果不在,复制该分组并向该结点的所有邻居转发(除了接收到该分组从其的那个结点) 。
-
反向路径转发 (Reverse Path Forwarding, RPF)
- 当一台路由器收到具有给定源地址的广播分组时,仅当该分组到达的链路正好是位于它自己的返回其源的最短单播路径上,才向其他出链路转发报文,否则丢弃
- 注意到 RPF 不使用单播路由选择以实际将分组交付给目的地,它也不要求路由器知道从它自己到源的完整最短路径 。
- 仅需要知道在它到发送方的单播最短路径上的下一个邻居;它仅使用这个邻居的身份以决定是否洪泛一个接收到的广播分组 。
-
1.5 生成树广播: 冗余广播分组的消除
-
很明显,在广播的时候会出现一个节点接收几个副本的情况
-
流程
- 首先对网络结点构造出一棵生成树。
- 当一个源结点要发送一个广播分组时,它向所有属于该生成树的特定链路发送分组 。
- 接收广播分组的结点则向在生成树中的所有邻居转发该分组(其接收该分组的邻居除外)。
- 生成树不仅消除了冗余的广播分组,而且一旦合适,该生成树能够被任何结点用于开始广播分组。
- 注意到一个结点不必知道整棵树;只需要知道它在 G 中的哪些邻居是生成树的邻居 。
-
基于中心的方法( cenler-based approach)
-
与生成树方法相关的复杂性主要是生成树的生成和维护 。
-
这里仅考虑一种简单的算法-基于中心的算法
-
中心节点也被称为汇合点或核
-
结点则向中心结点单播加入树( tree- join) 报文 。
-
图例:基于中心构造一颗生成树
-
-
实践中的广播算法
- 在实践中,广播协议被用于应用层和网络层 。
2. 多播
2.1 多播分组仅被交付给网络结点的一个子集
2.2 多播中的两个问题
- 如何标识多播分组的接收方
- 怎样为发送到这些接收方的分组编址
2.3 间接地址(D类地址)
- 在因特网体系结构中,多播数据报使用间接地址来编址
- 用一个标识来表示一组接收方,寻址到该组的分组副本被交付给所有与该组相关联的多播接收方,且该组使用这个单一标识符 。
- 这种表示一组接收方的单一标识就是一个 D 类多播地址 。
- 与一个 D 类地址相关联的接收方小组被称为一个多播组 (multicast group)
- 例如若4 台主机(显示为深色)与多播组地址 226.17.30.197 相关联,则它们将接收所有寻址到该多播地址的数据报 。
2.4 多播组的一些问题
- 一个组是如何形成,又如何终结的呢?
- 如何选择组地址?新主机如何加入某个组(要么作为发送方,要么作为接收方) ?
- 任何主机都能加入一个组(向该组发送或从族组接收)或者组成员资格会受到限制吗?
- 如果有限制,由谁限制?作为网络层协议的一部分,一个组成员知道其他组成员的标识吗?
- 网络结点相互之间如何进行交互,以向所有组成员交付一个多播数据报呢?
2.5 因特网组管理协议
-
IGMP 为一台主机提供了手段,让它通知与其相连的路由器:
-
在本主机上运行的 一个应用程序想加入一个特定的多播组 。
-
由于 IGMP 的交互范围被局限在主机与其相连的路由器之间,显然需要另一种协议来协调遍及因特网内的多播路由器(包括相连的路由器) ,以便多播数据报能路由到其最终目的地 。
-
后一个功能是由网络层多播路由选择算法完成
-
因此因特网中的网络层多播是由两个互补的组件组成的:IGMP 与多播路由选撑协议。
2.6 多播路由选择算法
-
多播路由选择的目标就是发现一棵链路的树,这些链路连接了所有具有属于该多播组的相连主机的路由器 。
-
于是多播分组将能够沿着这棵树从发送方路由到所有属于该多播树的主机 。
-
两种方法来确定多播路由选择树
-
使用一棵组共享树的多播路由选择
- 构建单一的、共辜的路由选择树
-
使用一棵基于源的树的多格路由选择
-
为多播组巾的每个源构建一棵多播路由选择树
-
剪枝( pruning)
- 一 台接收到多播分组的多播路由器,如它无加人该组的相连主机,则它向其上游路由器发送一个 图例:剪柑匠文。 如果一台路由器从它每个下游路由器收到剪枝报文,则它就能向上游转发一个剪枝报文
-
-
2.7 因特网中的多播路由选择
-
第一个用于因特网中的多播路由选择协议是距离 向 量 多播路 由选择协议
-
使用最为广泛的因特网多播路由选择协议是协议无 关的 多播 (Proloco! Inclepenclent Mu1Licasl ,PIM) 路由 选择协议 ,该协议明确辨识两种多播分发情形
-
稀疏模式
- 在源特定多播中,仅允许单一发送方向多播树中发送流量,大大简化了树的构造和维护 。
-
稠密模式
- 在稠密模式( dense mode)RFC 3973中,多播组的成员位置分布稠密;这就是说,在该区域内的许多或大多数路由器需要参与到多播数据报路由选择过程之中。PIM稠密模式是一种洪泛与剪枝反向路径转发技术,类似于 DVMRP的思想。
-
都看到这里了,各位哥哥姐姐叔叔阿姨给小王点个赞 关个注 留个言吧,和小王一起成长吧,你们的关注是对我最大的支持。
有事没事进来看看吧 : 小王的博客目录索引
更多计算机网络优质博客看这 : 计算机网络专栏博客索引
如果以上内容有任何不准确或遗漏之处,或者你有更好的意见,就在下面留个言让我知道吧-我会尽我所能来回答。