分享

用周易理解组播PIM

 tywqz 2018-04-23
大家知道,周易是一部从用来预测世界宇宙的书籍,正如有言所说'天地之至道,人事之仪则'尽在其中!
没有人会怀疑,周易曾经是人类历史上最杰出的哲学著作,可是现在周易还管用吗。正如周易又被称为易
经一样,对于本身的内容和含义也要随着时间和空间的不同而发展变化,我们看看能不能用周易来解释我
们普遍湖涂的多播中的 PIM协议。
 
现代的网络其实可以由以下8部分组成:
速度;质量;地址;路径;简单;安全;独用;通用
这些取代了以前的东西,构成了新的八卦。他们相互作用又形成了新的六十四卦。可以解释我们遇到的所
有的问题。今天我们就看看,我们如何用它来解释多播路由协议中的PIM。
速度:任何一种协议,都离不开这个因素。这代表一种最最基本的愿望,只要是通信,没有希望速度慢的
。PIM是一种路由协议。当然要采取各种各样的机制让数据源和数据的目的建立起路径。因为只有路径建
立的越快,数据才能越快的开始传输。我们可以看看PIM是如何来考虑速度这个因素的。换句话说,就是
让PIM 如何实现快速的收敛。
实际上,从多播的源头机器传到客户端机器,实际上一般来说,要分两段,一个就是客户机到路由器。一
个就是路由器到路由器。我们今天所要谈论的是路由器到路由器之间的事情,其他的东西在其他文章里以
专题论述。
其实,路由器到路由器之间的东西还是想对简单,但是问题是如何能完成任务,并且摒弃不必要的浪费。
速度就是关心如何能迅速的完成这些任务。
PIM-DM模式:
需要花费的时间主要包括:
1.邻居的发现
这是许多路由协议必须花费的时间。这个一般也不会体现一个路由协议的优劣,如果提高一个路由协议的
收敛速度,在这个方面努力也是不太容易的事情。另外,这个邻居的发现实际上只是一个对数据包要传输
的大的方向上的判断,就是PIM不可能向一个不运行PIM的路由器发送数据包。PIM2的默认hello是
30秒,并且保持计时器是其3.5倍。
2.建立以源为基础的多播树
这个过程也需要时间,其中主要是两个过程(flood-and-prune),泛洪和修剪。这个时
间好像也是不能省的。注意,这个过程是从源发起的。注意,其中有个RPF过程,也是要浪费时间的。
3.维护以源为基础的多播树
一个接口脱离一个树(prune)
一般的串行链路下,一般来说,发一个修剪信息就行了.
这么一折腾,肯定要浪费时间.
一个接口加入一个树(graft)
主机给路由器发IGMP信息,而路由器给路由器发graft信息!
这个都需要时间
质 量:
如果,把速度说成阳,这个其实就是阴的意思,我们可以想一想,任何事情都要有个分寸,到一定程度,
在某个位置上,可能某个因素就占开始主要作用。这里质量的概念包括两个含义,一个是保证任务的完成
,另一个是用最少的资源。
保证任务的完成
第一.要形成一个多播树
为什么不能全部发出去呢,如果只有两个路由器,这个完全是可行的,可是如果路由器到了一定的数量。
这个就不行了。因为要浪费一些宝贵的资源,同时又可能形成环路。所以必须形成一个树。可是建立和维
护一个树当然要花时间。
第二.修剪超越
可是以太网不像串行链路,一般来说要出现一些麻烦.比如,一个以太网有三台路由器,上游的的一台路
由器连接着连接着两个下游,一个要修剪,可是,另外一个还有接收者,这如何呢?
这就需要用到修剪超越(prune-overrides)技术,这需要两个因素,第一是另外一台也
要收到这个消息.(别人也要把它干掉.)第二,那个上游路由器要设置一个计时器(默认3秒)(都是
阶级兄弟,要三思而后行).过程就是,B路由器给A路由器发了一个消息,老子不干了,这个消息也同时
被C收到了, C大恐,心想这小子真黑,TMD当我不存在啊,赶快也发一个消息给A说:"别的,人在呢!
"这叫修剪超越!
用最少的资源
很简单,如果在多访问的环境下,如果一个接收者接两台路由器,是不是两台路由器都向那个主机发信息
呢?如果那两台路由器不是猪的话,肯定不会这样做,如何呢,选出一个IP地址高的做DR,'我不下地狱
,谁下地狱呢?'
地 址:
这个就重要了,在现实生活中,我们能眼睛看到对方,所以不需要地址,可是在网络世界里,网络设备都
是蝙蝠。看不到对方只要靠回声定位了,可是如果有好多,如何识别呢,其实就给对方一个ID了。这个ID
我们平常都误叫做地址。
没有这些ID,整个网络都是混乱的。
这个地址包括两方面,一个是三层地址,一个是四层地址。
其中PIM1使用的地址是224.0.0.2(三层地址)(所有路由器)协议号(2)(四层地址)
而PIM2使用的专用地址224.0.0.13(三层地址)协议号(103)(四层地址)
路  径:
要通讯,总要先找到路径才行。可是路径也分多种,我们作人不要走错路,否则一失足成千古恨。当然就
是走正路,也很多不同。第一,要走近路,第二,要走宽路,第三,不要走回头路(不要兜圈子,浪子回
头除外)
多播的机制造成了在数据的传输过程中不能进行负载均衡,因为每个路由器只是机械的复制数据,所以在
不同的接口进行负载无益。记住,负载均衡是均衡不同的数据。
多播的特性是一点对多点,所以,路径就是一个点可以到达多个点的路径。从源到接收点,或者从接收点
到源其实都是可以的。PIM-DM用的是所谓的基于源的树。实际上就是以每个源为基础建立起一个树。不
同的源走的路径不同。实际上,'道不同者不相为谋,也就是大家走不同的路',说实话,我挺佩服这种有
种的独立的精神的。
简  单:
这个不用说了,哪个协议的最基本的特点也是配置起来简单。简单包括两方面的含义,一个是配置的简单
,节省人的资源,另外一个是运行起来简单,节省路由器的资源。实际上包括PIM-DM在内的许多路由器
实际上挺自动化的,一般来说,在接口上启用PIM-DM就行了,其他的让路由器自动完成。关于第二点,
其实也就是PIM的控制信息的数据包要足够小了。这个自然是每个路由协议都必须要考虑的问题!
安  全:
安全的含义,包括两个方面,一个是广义的,就是网络的稳健性和不可非授权访问性。狭义的安全性就是
指后者,当然对路由协议来说,主要是防止非授权的路由器加入到一个多播协议树中。很可惜,PIM除了
在稳健性方面还有所作为外,对后者几乎没有做。相信将来会有所改进。
独  用:
独用的概念是个市场性的产物,是人的自私性的体现。独用指一个技术归一家公司所有,而不能和其他公
司的设备相互通用。PIM不是一个独用的协议。但是 PIM -DM实际上也已经出现了独用的思想。因为其采
用的基于以源为基础的多播树实际上也是一个独用的概念。在源不多的情况,并且一个组里面有好多主机
的情况下,这种结构非常实用。
通  用:
这个概念正好和独用相反。PIM是一个通用的协议。并且在PIM-SM里面体现了通用的概念,就是采用共享
树。适合于源比较多,并且每个组里面的主机数目不是太多的情况。
 

PIM-SM
PIM-SM相对于PIM-DM来说,要复杂得多。我们还是对照那几条来分析一下。
速 度:
一般来说,PIM-DM花费的那些时间,PIM-SM也是要的,注意,PIM-SM不一定要比DM先进,只能说是用
在不同的条件下。因为PIM-SM用了共享树的概念,所以在完成整个树的拓扑结构的时候,一定要比PIM-
DM多两个步骤。
1.RP的确定
RP的完成方式有三种,一个是静态的配置。这个省了路由器的时间,可是却花费了我们人的时间,特别在
大的网络里面,如静态路由一样不可使用。
第二个就是bootstrap协议
这个协议实际上主要的目的是要自动选出RP。每隔60秒发送一个bootstrap信息。而且有一个
130秒的计时器,如果过了130秒收不到什么东西。那么呵呵就宣布对方死亡。(如果人类能以网络
设备的时间要求自己,该多么有效率啊!)选完了C-BSR,还要选C-RP,步骤不少。
第三个就是auto-rp 协议
这个是思科自己弄出来的。与上一个差不多。
差别在于,1)没有bootstarp自动化,RP mapping agent是被指定的2)RP的
选择由RP mapping agent 来完成,而上一个由每个路由器来决定。3)用的地址不一样
2.源的注册
这个实际上时间花的也不多,不管怎么样,数据包都得从源走行目的网络吧。不过也许数据包需要一个解
封的过程!因为实际上从源到RP的传输,其多播包是作为内容被封装到单播包里发送的。以顺应RPF检测
机制。
质 量:
PIM -SM其实本身就是一个注重质量的产物,因为基于源的树和共享树实际上就是各有优缺点。所以PIM
-SM对共享树的一些缺点做了改进,大家可以想一想,如何改进呢?一个好法就是让RP和源的DR之间做一
个SPT,(知不知道什么是SPT,不知道的话立刻打自己一个耳光。)
1.源的注册
我们在上面已经讲了,实际上PIM—SM这种即要是设定一个RP,又要维护RPF,(既要作婊子,又要立贞节
牌坊),这就造成了矛盾。这种好事情哪有啊。所以从源到RP之间采取了一种欺骗的方式。即源向RP以单
播的形式承载多播数据流。实际上多播的信息全部是作为数据承载的。那么如果多播的信息非常多呢。那
么这么繁杂的封装解封过程实际上是非常浪费资源的,甚至让RP变得无法承受。所以一定得解决这个问题
。那么是如何解决的呢。呵呵,就是以RP为接受者,以源的DR为源建立一个SPT。这下可好了,重新建立
了一个树。这样,源的DR可以堂而皇之的发送多播包给RP了。当然了,这时候,如果RP没有组的信息,那
么就是没有接受者,所以肯定就浪费了,这个时候,RP就向源发一个停止注册消息。但是也不能老是不发
啊,又不能持续发,又不能不发,这网络世界就是闹心,没办法,眼睛看不到,只能采取这种蝙蝠似的回
声探测方法。所以,PIM-SM采用了一种叫作
register suppression的方法。过程就是当DR收到一个注册停止消息后,那么就开
始一个60秒的注册抑制计时器。并且更为巧妙的是,在60秒要到期的前5秒的时候,DR发一个空的注
册消息,如果依旧收到一个注册停止消息,那么注册一直计时器要被重置。怎么样,网络世界也讲策略,
这叫'兵者,诡道也!'
2.最短路径树
最短路径树的用途太多了,前面我们已经看到了,源的注册已经用到了最短路径树。最短路径树是效率和
质量的一种体现。源的注册实际上是在一般的路径上用到了 SPT。有的情况,比如源和接收点都在整个拓
扑的边缘,那么实际上他们挨得很近。这里也用到了易经的精髓,就是要根据实际的情况进行改变。这个
时候可以完全根据实际情况建立一个从源到目的的一个SPT。
其过程是,路由器A首先正常的向RP注册,然后正常的收到了多播信息,这个时候,A察看了一下本身的单
播路由表,发现其从其到这个源的最优路径不是从RP 那边过来的,于是A就直接加入源,构成一个SPT,
然后在向RP发出一个修剪信息。怎么样,够酷吧!什么时候从这个RPT交换到这个SPT呢,这个情况比较多
,对于RFC2362,是说当数据传送率很搞得时候。而思科就比较简单,觉得可以,立刻就进行。当然
也可以用命令进行控制。
用ip-pim spt-threshold。监控从RP来的那个接口,如果速率到达一定程度,就进行切换,如果再降到一
定程度,再返回到共享树。
(这个其实深刻体现了周易的卦里面一个爻的位置发生变化,就会影响整个变化。)
地 址:
与PIM-SM一样。
源的地址,组的地址,PIM路由器的地址,RP的地址,BSR的地址。
路 径:
整个PIM-SM的数据传输方向是:一开始,这个一个所谓显式的加入过程,因为这个时候RP的地址是已知
的,所以接受者可以直接向RP寻求加入,直接构建一个树。此时的共享树的构建信息是由接受者流向RP。
这个是构建路径层面的情况。可是当我们想要传输数据的时候,就要遇到一些困难,因为使用了RPF检测
机制的PIM来说,数据的传输只能从树根流向数枝,所以,源无法将多播数据流直接传向RP,可是'青山遮
不住,毕竟东流去',源一定得将数据流传向RP才行。当然一开始采取单播的方法,避开多播的忌讳。可
是这种频繁的封装解封给路由器造成了巨大的开销,所以这个时候采用了独用的概念,因为现在要解决的
问题就是如何把多播数据流从源传到RP,这个时候源成了根,而RP成了树枝,所以这个时候自然想到了从
源的DR构建一个SPT,数据流就以多播的方式从DR传向RP了。还有就是路径问题,不仅包括路径的方向,
还要包括距离的长短,其实,我们知道,共享树的一个缺点就是有的时候,其路径不是最优化的。所以,
在某些情况下,从原的DR到目的可以直接构建一个SPT。
简 单:
实际上,整个PIM-SM在设计的时候已经考虑了简单的概念,另外简单的概念实际上就是自动化的意思,
你想bootstrap协议和auto-rp协议实际上就是自动配置RP,而省去了配置者的劳力。简
单的概念最终还是应该以人的容易学习和容易配置为主。一劳永逸也可以称作一种简单。
安 全:
安全的思想其实也包括了高可用性的概念,这里面C-BSR,C-RP的选举其实也是一个安全的概念。因为
一个死掉了,另外一个还可以顶上来。
独 用:
PIM-SM用到了很多独用的思想,可以看一下,源到RP的SPT的建立,实际上就是一个独用的概念,还有在
一定条件下,RPT要转换成SPT。独用的好处就在于它在一定条件下,一定的范围内,对于一定的主体来说
,可以产生最大的效率。
通 用:
整个PIM-SM主要运用的就是通用的思想,主要是指采用了共享树的概念。通用的主旨是在一般的环境下
,许多个体可以遵循一个普通的规则,这样就可以节省承载者的资源,可是这样的结构和规则对于每一个
普通的个体来说,肯定不是最优的。所以矛盾就在这里。这里更应该遵循易的原则,就是要根据具体的情
况具体分析,否则就是刻舟求剑。
这里只是做了一个小小的分析总结,实际上无论从大的方面,一个大的工程的设计,执行,实施,还是小
到一个具体的技术,解决方案,都离不开这些东西,这些东西不是截然分开的,孤立的,而是相互联系,
相互影响,往往一个占矛盾的主要方面,可是在条件发生变化时,那么另一个旋即成为矛盾的主要方面。
所以,我们在思考,学习一项技术的同时,首先要树立这八个方面的坚固思想,同时要注意发展变化。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多