当前在线人数10556
首页 - 分类讨论区 - 校友联谊 - 北京邮电大学版 - 同主题阅读文章

此篇文章共收到打赏
0

  • 10
  • 20
  • 50
  • 100
您目前伪币余额:0
未名交友
[更多]
[更多]
转贴:浅谈Juniper M/T系列Multicast的内部实现机制 (转载)
[版面:北京邮电大学][首篇作者:fp] , 2010年03月20日09:10:58 ,455次阅读,0次回复
来APP回复,赚取更多伪币 关注本站公众号:
[分页:1 ]
fp
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 1 ]

发信人: fp (False Positive), 信区: BUPT
标  题: 转贴:浅谈Juniper M/T系列Multicast的内部实现机制
发信站: BBS 未名空间站 (Sat Mar 20 09:10:58 2010, 美东)

【 以下文字转载自 EmergingNetworking 讨论区 】
发信人: tonyblair (tonyblair), 信区: EmergingNetworking
标  题: 转贴:浅谈Juniper M/T系列Multicast的内部实现机制
发信站: BBS 未名空间站 (Tue Mar 16 19:38:54 2010, 美东)



Multicast是指一个源设备发出一个数据包,而能够传送到多台目的设备的通讯形式(
一对多)。在
Multicast的情况下,源设备发出一个数据包,通过网络传送到一台配置了Multicast的
路由器。这个路由
器复制数据包然后把这些拷贝发送到其他具有Multicast功能的路由器去,这样,不停
地复制数据包并在网络
中传送,最后所有的目的设备都收到一份数据包的拷贝。源设备和目的设备通过一定的
Multicast协议(如
IGMP)形成一个Multicast Group。带有Multicast功能的路由器通常包括一些硬件来实
现数据包的复制,
并把它们传送到相应的Multicast Group去。普通具有Multicast功能的路由器一般在一
个集中点复制数据
包。在有很多数据包复制的情况下,这种集中式的数据包复制往往会导致包延迟,也无
法避免单点失效的可
能。

Juniper M/T系列Multicast的内部实现机制是一种分散式的Multicast数据包复制。一
个进来的的
Multicast数据包带有“源/目的”地址对,这个地址对对应着一个Multicast list。
Multicast list中包
含有一些接口,比如该路由器的接口卡。这些包含在Multicast list中的接口,都是在
一个共同的
Multicast通讯过程中会使用到的。而每一个接口都关联着路由器中的一个PFE,这样,
从Multicast list
的接口表,可以得出Multicast通讯过程中使用到的PFE表。

在分散的基础上,PFE可以用来复制Multicast数据包。每一个PFE都基于Multicast
list生成一个等级式
的数据结构,比如二叉树数据结构。每一个PFE都根据这个等级式的数据结构来复制和
传送数据包。

例如,一台路由器上的一个PFE上的接口收到一个Multicast数据包。收到数据包的PFE
把数据包发送到等级
数据结构基点的PFE。等级数据结构基点的PFE对数据包进行复制,并根据等级数据结构
把这些拷贝发送到其
他PFE上,进行进一步的复制。根据二叉树数据结构,一个PFE复制两个数据包并发送到
二叉树下一级别的另
外两个PFE上。通过这种方式,每一个PFE都为下一级别的PFE复制数据包。

由此可见,实际上Juniper M/T系列Multicast的内部实现机制包括了两个过程。首先是
二叉树数据结构的
建立,然后是路由器收到Multicast数据包后,根据这个数据结构进行的包复制和转发。

这项技术能够提供几个好处。例如,分散式的Multicast数据包复制降低了所需硬件的
复杂程度。特别是数据
包的复制任务分散于路由器内各个PFE上,分担了整体的处理负荷。另外,数据包复制
任务的分离也在一定程
度上降低了单点失效的风险。

路由引擎发送一个Multicast List到各个PFE,这个Multicast List中包含所有参与到
一个Multicast进
程的接口列表。这个Multicast List是从那些订购了Multicast 业务的主机列表得来的。

得到Multicast List的具体过程是这样:路由引擎维护着Multicast Group和路由表,
Multicast
Group中含有源主机和目的主机的地址。根据路由表可以得出主机地址的下一跳,而根
据下一跳可以得出参与
Multicast的路由器接口。这样最终可以得出一个含有路由器接口的Multicast List。

从这个Multicast List中的接口又可以得出相关的PFE列表。PFE可以根据这个PFE列表
经过一定的运算,选
择出一个或几个起始基点并以此形成一个关于PFE之间等级式的数据结构(二叉树)。
通过使用同样的算法,
每一个PFE都会形成一个同样的二叉树。

Multicast通讯的数据包复制是根据这个二叉树进行的。从一个接口收到数据包后,与
这个接口相关的PFE通
过系统交换板(或交换矩阵),把数据包发送到位于二叉树起始基点的PFE。该基点PFE
首先复制数据包并把
它们发送到本地参与该Multicast的接口,传送到网络。与此同时,该基点PFE也同样复
制数据包并通过系统
交换板发送到二叉树下一级PFE。这样,每一级的PFE都重复同样的工作直到所有参与
Multicast的PFE都收
到了数据包拷贝。

从中可以看出,这种分散式的数据包复制不仅分担了系统的整体处理负载,而且还避免
了进栈PFE到交换矩阵
的流量头阻塞,真正的数据包复制和发送是在出口PFE上进行的。

呵呵,只是浅谈一下下,基点和二叉树的形成算法俺就不讲了,其实也没什么神秘的,
就是写起来比较累,俺
又碰巧比较懒而已。


--

※ 来源:·WWW 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 116.197.]

 
[分页:1 ]
[快速返回] [ 进入北京邮电大学讨论区] [返回顶部]
回复文章
标题:
内 容:

未名交友
将您的链接放在这儿

友情链接


 

Site Map - Contact Us - Terms and Conditions - Privacy Policy

版权所有,未名空间(mitbbs.com),since 1996