多播在历史上已不只一次成为时髦用语。ip多播指的是一个发送者向多个接收者发送数据,但只需发送一份数据副本。多播对流媒体非常有用,所以我们来研究一下它的工作原理。
多播比广播更具效率,因为广播数据包必须由本地链路上每台电脑接收,而每个操作系统都会生成一个中断,以便对收到的数据包进行检查,这个过程中通常会复制一些数据。而在多播时,网卡并不会接收这些数据包,除非它被告知需要接收。 【相关文章:Cisco2620路由器的配置与维护】
多播很象广播,多播数据被分配一些特定的地址。两者的区别在于,一些多播地址可以被路由,并使用在internet上。iana(internet地址分配机构)为多播预留的地址空间是224.0.0.0/4,我们现在不再说“d类”地址了。224/4的地址范围是从224.0.0.0一直到239.255.255.255。 【扩展阅读:CISCO路由器初始配置简介】
通过设置网卡是否忽略多播内容,多播可以选择传送的目的对象,这是本地链路的工作方式,但internet是怎样做的呢?如果有人想通过多播向非洲传送一个名人孩子出生的流数据,我们并不想让internet上的每一台路由器都消耗带宽把它传送到每台电脑。除了通过设置本地nic做出决策外,还有一些多播路由机制可以“修剪”某些子网。如果你的网络中没有人想看这些信息,那么就没有理由让它进入你的网络。 【扩展信息:思科路由器常用配置命令大全(1)】
缺省情况下,启用了多播功能的网络接口卡(nic)在引导时只会侦听224.0.0.1上的数据,这个地址被赋给了“该子网上的所有系统”。是的,这与广播非常相似,事实上很多人认为广播就是多播的一种特殊情况。
那些对这一信息感兴趣的人可以运行一个特别的程序,该程序会依次告诉nic去加入一个多播组。nic利用internet组管理协议(igmp)提醒本地多播路由器,它想加入一个特定的组。不过这只能单向实现(只能接收多播数据)。如果有人想发送与接收多播的信息,那么ip层就需要更高的技巧。为了发送数据,ip协议会把一个ip地址映射到一个以太网地址上,并把它告诉网卡驱动程序,以便用另一个mac(媒体访问控制)地址配置网卡。
igmp本身非常简单。它与icmp(internet控制消息协议)很相似,因为它也用到了ip层,只不过协议号码不同而已。igmp协议头只包含4个内容:版本号、类型、校验与,以及要加入的组(即多播地址)。当数据包被发送出去的时候,多播路由器就知道了至少有一台主机有兴趣接收数据包,以获得一个特定的多播地址。现在这台路由器必须以某种方式与其它路由器进行多播路由,以便获得所需的数据。
... 下一页