计算机网络,多播(组播)寻路是怎样实现的

1 篇文章 0 订阅
1 篇文章 0 订阅

引言

  • 计算机网络是互联网的基石,他解决了信息传递问题,让身处天涯海角的人们可以相互接收信息,借助终端模拟出精彩的世界。

如何有效的利用网络资源

特定网络场景:直播,广域网1对n传输

  • 单播是一对一发送,意味着数据包会在个网络节点上完整转发n次。其中不乏有相同的内容,同样的路线,造成了资源浪费
  • 广播属于子网内的消息群发,比如目标ip为受限广播地址(255.255.255.255)表示将数据包群发给当前局域网所有主机。当然也可以发送到直接广播地址(网络号加上全1的主机号),数据包会送到目标网络的所有主机,前提是路径相关的路由器开启了广播功能。显然,这种所有主机都发一遍的方案也不够优雅,也做不到广域网的群发(毕竟让全网路由器都开启广播,产生大型广播风暴,网路拥塞,瘫痪,这是谁也不愿看到的)
  • 那么,银弹来了,组播通信,一次发送,最优路径分发,组内接收,充分利用网络资源

问题:组内用户未知的分布在各地,如何生成最优分发树呢

  • 为了找到各个角落的“朋友”,又不能像广播那样一股脑的转发,所以我们必须了解下pim协议(PIM(Protocol Independent Multicast)称为协议无关组播),这是一个让组播流量在转发中学习,生成一颗组播源到终端的转发树的策略,保证了相同的组播流量不会重复传输,杜绝网络资源浪费。下面我们来学习下这颗树怎样生成的,组播源是怎么工作的,组播流量是如何“智能”的找到分布在互联网各个角落的正在监听本组的路由器的呢?
  • 当组播服务器(组播源)发送一条组播消息到225.3.44.5时(我们通过组播ip地址标记一个组(224.0.0.0-239.255.255.255),组播地址仅仅是标识组的作用,没有寻路意义),首先指定网卡a会将消息封装(携带自身源ip:134.125.25.194)发送给网关路由b,路由b老哥一看,拿出组播流量转发手册:rpf检查,扩散,触底反弹,剪枝,加入。按规矩办事:
  • 1.rpf检查:网卡a这个接口发过来一条组播报文,先看看我以前有没有从其他接口收到过(组225.3.44.5,源ip134.125.25.194)的消息,如果有,直接丢掉(避免流量转发出现环路)
  • 2.扩散:如果没有,拿小本本把这个接口a标记为此消息(组225.3.44.5,源ip134.125.25.194)的上游接口,然后转发消息到剩余的所有接口
  • 3.触底反弹,当自身不监听(组225.3.44.5)这个消息,而且自己没有下游接口时。那么这个组播消息就不应该发给我,所以我赶紧向上游接口发个拒绝接收(组225.3.44.5)这个消息的报文,免得以后打扰到我。
  • 4.剪枝:接着,上游在收到这个拒绝报文后,又拿出小本本,记下:这个接口不要(组225.3.44.5)的消息,接下来几分钟就不发(组225.3.44.5)消息给他了。这样,一段时间后,组播源会自发的树状扩散消息,然后又剪掉不必要的转发路径,形成一颗以组播源为根的SPT
  • 5.加入:我们知道,用户在任何时间都有加入一个组播的需求,组播策略在不停剪枝的同时,也需要考虑在如何快速的把枝接回来。首先,用户c通过igmp(IGMP是Internet Group Management Ptotocol的简称,被称为互联网组管理协议)协议告诉其直连路由器d:嘿,老哥,我要加入225.3.44.5这个组,路由器d老哥收到请求后,娴熟的打开了225.3.44.5组播ip的监听,并在以后收到目的ip为225.3.44.5的数据包时,转给用户c,直到用户c退出这个组。此时产生了两种情况:1.路由器d以前接到过225.3.44.5组播消息,根据前面的扩散我们知道,路由器存储了这个组播消息的上游接口,那么路由器d直接向上游接口发送Graft消息表示我要接收225.3.44.5组的消息,赶快给我发过来,上游路由器收到这个消息后,依次向上级汇报,最终接上了树的主干,用户c收到了消息2.路由器d没有接到过225.3.44.5组播消息,哈哈,那没办法,可能组播源还没开始发送数据,也有可能组播源的网络根本到达不了路由器d,通俗来讲,就是用户c和大部队失联了,服务不可用,转圈圈吧你。。。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值