转multicast vs broadcast

转自:http://blog.csdn.net/bloghome/article/details/4682984

一、multicast概述:

多媒体应用集成了声音、图形、动画、文本以及视频,这种应用在现在的网络环境中也越来越多。多媒体流量在网络中主要有三种传播方式:

1、unicast (单播)

2、broadcast (广播)

3、multicast (多播)

每种传播方式对网络带宽都有不同的影响。

unicast会对每个客户端分别发送一份流量的拷贝,如果目的客户端数量很大,unicast不得不发送多次,这如果发生在shared链路上,带宽占用是非常巨大的。

broadcast只发送一份拷贝,但是所有客户端都必须停下手中的工作,去检查下这份流量是否是发给自己的,占用客户端的CPU处理时间,如果仅仅是一般的broadcast流量,因为流量都比较小,但多媒体流量的广播却会占用高达7Mbps甚至更高的带宽,这会占用几乎所有的带宽。如果客户端数量较小,这种方式显然是不合适的。

multicast是多媒体网络环境下最佳方式,对一组用户只发送一个数据包的拷贝。

二、multicast特性

1、多播是将数据统一发送给一个host group(主机组)

2、采用“无连接的”传输方式,即UDP,也可称为“best effort”

3、成员可随时加入退出,即动态成员管理,成员可加入多个host group(主机组)

4、成员不受数量及所处位置的限制

5、支持多host group(主机组)

6、多播发送端,即源端并不需要加入host group(主机组)

7、多播组成员不需要发送数据

还有几点,对比unicast来说,多播因为只发送一次数据拷贝,几乎能同时分别到达各客户端,而单播不得不由源按顺序分别多次发送数据拷贝,这样数据到达目的端是有延迟的。

再有,多播组成员可以保持匿名,多播因为采用的是UDP机制,这就要求在接收端需要有排错机制。

三、multicast地址

多播地址为D类地址,即224.0.0.0 - 239.255.255.255。不同于A、B、C类IP地址的是,D类地址是不分层的,无结构化的。

multicast地址可以是动态分配,也可是被静态指定。静态指定的地址多为well-known地址,IANA负责对这些地址进行分配,静态地址是永久的host group(主机组),它与TCP、UDP中的well-known端口号是类似的。比如224.0.0.5和224.0.0.6就是OSPF用来在DR/BDR与DROTHER之间进行数据交换的,224.0.0.10分配给了RIPv2,224.0.0.9是EIGRP专用的。

Description Range 
Reserved link local address 224.0.0.0 to

224.0.0.255

Globally scoped address

224.0.1.0 to

238.255.255.255

Source specific multicast 232.0.0.0 to

232.255.255.255 

GLOP address 233.0.0.0 to

233.255.255.255

Limited scope address 239.0.0.0 to

239.255.255.255 

reserved link local address:IANA分配给本地网段的网络协议的,路由设备不会将这些包转发出去,这是通过在包头中设定TTL值为1来实现的。224.0.0.1指定了所有主机,224.0.0.2指定了所有路由器。

globally scoped address:这些地址可在internet上进行传递

source specific multicast:为SSM

glop address:与AS绑定使用

limited scope address:本地as或domain内使用,路由器上应对这些地址进行过滤,一般局限在公司内,或大学内部。

四、multicast tree(多播树)

1、source distribution tree(源分发树)

2、shared distribution tree(共享分发树)

源分发树表示为:(S,G),例如(192.168.2.2,224.1.1.1)

共享分发树表示为:(*,G),例如(*,224.2.2.2)

对比:

1、源树的好处是:有最优化的路径选择,据点是当在一个有许多源及host group的网络中,会对源路由器产生巨大的影响,导致资源耗尽。

2、共享树的优点是节省资源,但从源到目的的路径并不一定是最佳的

五、PIM

PIM是ip routing protocol-independent,独立于路由协议的,但是仍然需要有路由表存在,这是防止环路的要求。

PIM分为sparse mode和dense mode

六、IGMP和CGMP

IGMP v1:包含组成员查询包,组成员回复包。3个60秒无回复则取消此成员

IGMP v2:新增leave report,版本2的成员查询消息,可随时脱离多播组

IGMP v3:新增版本3的组成员查询及回复消息

IGMP v3lite:思科私有协议,不具有广泛意义

CGMP用来对交换机通告多播组成员mac地址,用在router上,适合与低端交换机配合使用,思科私有协议

IGMP snooping是IETF的标准协议,用在switch上,用来侦听多播组成员mac地址,占用资源非常大,高端交换机才能应用。

七、配置multicast

1、ip multicast-routing

ip pim sparse-mode | dense-mode | sparse-dense-mode

2、配置auto-rp,思科私有协议,PIM version 1

ip pim send-rp-announce type number scope ttl group-list access-list-number  //定义rp

ip pim send-rp-discovery scope ttl //定义rp代理

3、配置PIM version 2

ip pim version 1 | 2

ip pim bsr-border

ip pim bsr-candidate interface hash-mask-length [priority] //代理

ip pim rp-candidate type number ttl group-list access-list-number //RP

八、monitoring ip multicast

show ip mroute

show ip mroute summary

show ip mroute active

show ip mroute count

show ip pim interface

show ip interface

时间: 2024-08-13 08:29:09

转multicast vs broadcast的相关文章

802.11 对于multicast 和 broadcast的处理

ethernet内部会有broadcast 和 multicast.这两种包都是一个STA向多个STA发包. 当没有wifi存在的时候,LAN口之间的broadcast 和 multicast是可靠转发的,但是若有wifi存在就不一样了. 电源考量 根据协议,broadcast和multicast在DTIM的时候AP会发送给STA.DTIM在AP中的设置一般是一倍的TIM. 当DTIM增加的时候,会更加省电,因为出于PS模式下的STA醒来的次数变少了.但是这也会导致某些应用的延时加大. DTIM

Multicast over TCP/IP HOWTO

http://www.tldp.org/HOWTO/Multicast-HOWTO.html 1. Introduction 1.1 What is Multicast Multicast is... a need. Well, at least in some scenarios. If you have information (a lot of information, usually) that should be transmitted to various (but usually

Wireshark

PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析 Python黑帽编程1.5  使用Wireshark练习网络协议分析 1.5.0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and Defense with Python>一书,为了解决很多同学对英文书的恐惧,解决看书之后实战过程中遇到的问题而作.由于原书很多地方过于简略,笔者根据实际测试情况和最新的技术发展对内容做了大量的变更,当然最重要的是个人

程序员技术练级攻略

以下全文来自http://coolshell.cn/articles/4990.html 前言 你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发) 建议: 不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用. 回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样. 一定要动手,例子不管多么简

Syncthing源码解析 - 在Gogland中对Syncthing的各个模块进行调试?

Syncthing的模块很多,各自负责不同的功能,如何能够对各个模块进行调试?Syncthing开发者早就想到这个问题了,允许开发者对任意模块进行单独调试,也允许同时对所有模块调试,调试方式是打印各个模块的操作以及事件的log信息到控制台和log文件中! 调试方法: 在Windows操作系统中,打开控制台窗口,进入Syncthing的程序目录,随后依次运行下面两个命令: set STTRACE=all syncthing set STTRACE=all,这个命令设置环境变量,让Syncthing

网络抓包工具wireshark常用封装过滤规则

过滤器的区别 捕捉过滤器(CaptureFilters):用于决定将什么样的信息记录在捕捉结果中.需要在开始捕捉前设置.显示过滤器(DisplayFilters):在捕捉结果中进行详细查找.他们可以在得到捕捉结果后随意修改.那么我应该使用哪一种过滤器呢?两种过滤器的目的是不同的.捕捉过滤器是数据经过的第一层过滤器,它用于控制捕捉数据的数量,以避免产生过大的日志文件.显示过滤器是一种更为强大(复杂)的过滤器.它允许您在日志文件中迅速准确地找到所需要的记录.两种过滤器使用的语法是完全不同的.捕捉过滤

Wireshark教程

1. 捕捉过滤器 捕捉过滤器的语法与其它使用Lipcap(Linux)或者Winpcap(Windows)库开发的软件一样,比如著名的TCPdump.捕捉过滤器必须在开始捕捉前设置完毕,这一点跟显示过滤器是不同的. 设置捕捉过滤器的步骤是: - 选择 capture -> options. - 填写"capture filter"栏或者点击"capture filter"按钮为您的过滤器起一个名字并保存,以便在今后的捕捉中继续使用这个过滤器. - 点击开始(S

Wireshark过滤器使用规则

使用Wireshark时最常见的问题,是当您使用默认设置时,会得到大量冗余信息,以至于很难找到自己需要的部分. 这就是为什么过滤器会如此重要.它们可以帮助我们在庞杂的结果中迅速找到我们需要的信息. 过滤器的区别 捕捉过滤器(CaptureFilters):用于决定将什么样的信息记录在捕捉结果中.需要在开始捕捉前设置.显示过滤器(DisplayFilters):在捕捉结果中进行详细查找.他们可以在得到捕捉结果后随意修改.那么我应该使用哪一种过滤器呢? 两种过滤器的目的是不同的.捕捉过滤器是数据经过

Wireshark图解教程

Wireshark是世界上最流行的网络分析工具.这个强大的工具能够捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息.与非常多其它网络工具一样,Wireshark也使用pcap network library来进行封包捕捉.可破解局域网内QQ.邮箱.msn.账号等的password!!? wireshark的原名是Ethereal,新名字是2006年起用的.当时Ethereal的主要开发人员决定离开他原来供职的公司,并继续开发这个软件.但因为Ethereal这个名称的使用权已经被原来那个