多播(组播)原理分析

转载 2011年10月13日 08:52:09
 为什么要使用多播:
        网卡从网络上接收到目标物理地址对应的所有bit位都为1的数据报时,会收到这条消息并将其上传给驱动程序,网卡的这种工作模式称为广播模式,网卡的缺省工作模式包含直接模式和广播模式。利用这一特性,UDP(用户数据报协议)还提供了向多个目标地址发送广播数据包的能力。广播数据即数据从一个工作站上发出,只要将数据包的目标物理地址对应的所有bit位都设为1,局域网内的所有工作站网卡都会收到这条消息并将其上传给驱动程序。这一特征适用于无连接协议,因为局域网(LAN)上的所有机器都可获得并处理广播消息。使用广播消息的不利之处是每台机器都必须对该消息进行处理。比如,一用户在LAN上广播一条消息,每台机器上的网卡都会收到这条消息,并把它上传到网络堆栈(驱动程序完成),然后,堆栈将这条消息的目标端口号与该主机上运行的所有的网络应用程序中所指定的端口号依次比较,看它们是否相等,从而决定哪个网络应用程序应该接收这条消息。通常,这个局域网上的多数机器对该消息都不感兴趣,草草地一弃了之。但是,各台机器在驱动程序中都仍需花时间来处理这个数据包,看是否有应用程序对它感兴趣。结果,高广播通信流使LAN上的机器陷入困境,因为每个工作站都要检查这个数据包。
有一些特殊的物理地址,他们不能作为任何网卡的实际物理地址使用,但网卡能够设定为不过滤从网络上接收到的一个以这些物理地址中的一个和若干个作为目的物理地址的帧。这些物理地址称为多播传送地址网卡的这种工作模式称为多播传送模式
多播”亦称“多点传送”(multicast),也就是一台主机发出的包可以同时被其他多个有资格的主机接收,这台主机和那些有资格的主机就形成了一个组,他们在组内的通信是广播式的多播的工作原理是将一个网络上的某些主机的网卡设置成多播传送工作模式,指定其不过滤以某一个多播传送地址作为目的物理地址的数据帧,这样,这些主机的驱动程序中就可以同时接收以该多播传送地址作为目的物理地址的数据帧,而其他主机的驱动程序却接收不到,这些主机在逻辑上便形成了一个“多播”组。采用这种技术,相对广播而言,可有效减轻网络上“多播”组之外的其他主机的负担,因为发送给“多播”组的数据不会被传送到它们的驱动程序中去处理,避免资源的无谓浪费。最开始的时候,设计这一技术的目的是弥补“广播”(Broadcasting)通信的不足。

多播有两种实现方式:
1.设置网卡为混杂模式,然后通过驱动对收到的所有数据包进行过滤,留下指定的多播地址的数据包。
  这种方式效率比较低,适合不支持多播模式的网卡。
2.设置网卡为多播模式,网卡本身有多播过滤器,网卡自己能够判断进入的数据包是否属于多播数据。
  由于多播过滤是由硬件完成的,所以效率比较高。

 

网卡只接收目的地址为网卡自身物理地址多播地址(广播是多播的一种)的帧。对于以太网,多播的地址的最高字节的最低位为1(01:00:00:00:00:00)
对于IP多播,IP多播地址会转换成以太网多播地址,一个以太网多播地址可以对应多个IP多播地址

因此,设备驱动程序或IP层必须对数据报进行过滤,因为网卡可能收到主机不想接收的多播数据帧。当网卡不提供足够多播数据帧过滤功能时,就必须把网卡设置成“混杂模式”,由驱动检查收到的数据帧是否为主机需要的。
也就是说多播的两种实现模式,都需要由驱动程序参与过滤,只不过如果先由网卡过滤,可以减轻驱动程序的工作量。

 

 多播地址(multicast address)是一组主机的标示符,它已经加入到一个多播组中。在以太网中,多播地址是一个48位的标示符,命名了一组应该在这个网络中应用接收到一个分组的站点。在IPv4中,它历史上被叫做D类地址,一种类型的IP地址,它的范围从224.0.0.0239.255.255.255。D类地址用于组播。

 

 

    Broadcast Address(广播地址)是专门用于同时向网络中所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址广播的分组传送给host ID段所涉及的所有计算机。例如,对于10.1.1.0 (255.255.255.0 )网段,其广播地址为10.1.1.255 (255 即为2 进制的11111111 ),当发出一个目的地址为10.1.1.255 的分组(封包)时,它将被分发给该网段上的所有计算机。

 

思科路由交换CCIEv5.0最新专题课程组播技术

-
  • 1970年01月01日 08:00

组播协议原理讲解

单播、组播、广播是计算机网络上三种基本的通信方式。     单播是相互感兴趣的主机双方进行通信的方式,主机不能接收对其不感兴趣的其它主机发送的信息,属于点对点通信。     广播是主机向子网内所有...
  • liu251890347
  • liu251890347
  • 2014-09-11 21:40:17
  • 4760

IP组播技术介绍及实现例子

引 言 近年来,随着Internet的迅速普及和爆炸性发展,在Internet上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网 络视频会议、网络音频/视频广播、AOD/VOD、股市行情...
  • langeldep
  • langeldep
  • 2011-01-27 18:47:00
  • 58114

UDP 组播---你需要了解这些

先来了解下UDP UDP 是UserDatagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中...
  • ljheee
  • ljheee
  • 2016-06-20 19:11:34
  • 26269

组播详解

组播协议允许将一台主机发送的数据通过网络路由器和交换机复制到多个加入此组播的主机,是一种一对多的通讯方式。 IP组播的好处、优势 组播协议与现在广泛使用的单播协议的不同之处在于,一个主机用...
  • luohai859
  • luohai859
  • 2014-07-15 16:43:20
  • 17047

组播路由协议原理

组播概述 1.1 组播定义          单播、组播、广播是计算机网络上三种基本的通信方式。     单播是相互感兴趣的主机双方进行通信的方式,主机不能接收对其不感兴趣...
  • zhaojian3513012
  • zhaojian3513012
  • 2015-06-10 13:04:53
  • 4369

多播 - 理解IP多播的工作原理

原文链接: http://www.firewall.cx/networking-topics/general-networking/107-network-multicast.html
  • matrix00
  • matrix00
  • 2016-10-03 07:09:44
  • 867

计算机网络(六)---IP多播

IP多播是需要在因特网上增加更多的智能才能提供的一种服务。 与单播相比,在一对多的通信中,多播可大大节约网络资源。当采用多播方式时,视频服务器只需要把视频分组当作多播数据报来发送,并且只需发送一次。当...
  • QQ1170836331
  • QQ1170836331
  • 2016-12-13 10:57:32
  • 2071

组播原理及 C语言编程

源自:http://blog.163.com/mh_333333333/blog/static/3585491220095199419684/ 摘要:     本文可做为TCP/IP组播技术的...
  • xiaowen_10
  • xiaowen_10
  • 2012-10-14 12:39:38
  • 5514

ffmpeg 通过通过组播发送本地TS流文件

命令: ffmpeg -re -i /media/1.mpg -r 1800  -c copy -f mpegts udp://239.1.1.1:7000 环境: ff...
  • vbLittleBoy
  • vbLittleBoy
  • 2014-02-19 10:51:27
  • 6884
收藏助手
不良信息举报
您举报文章:多播(组播)原理分析
举报原因:
原因补充:

(最多只允许输入30个字)