广播单播组播的知识总结与分享

第一部分 基本概念

在网络中设备与设备通信也就是我们说的报文的传递。他们传递的方式分为以下几种:广播、单播和组播。我们以下提到的二层和三层指的是OSI模型,它总共工作分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

广播(Broadcast)的特性是由1对多的概念

在同一个以太网环境下,一台主机如果需要同时向所有主机进行通信,这里其实主机不必要知道所有各点的地址。他只要向发送目的地址为广播地址,那么所有主机都会收到这台主机所发送的报文。广播二层以太网帧地址为ffff-ffff-ffff,这是由12个十六进制组成的mac,48bit长度。当二层通信中需要发送广播的时候目的mac地址为全ffff-ffff-ffff。

广播报文是不可以穿越三层设备的,也就是说他只能在同一个广播域范围内生效的。广播三层以太网数据包时候可以是全网发送,这时候目的IP地址255.255.255.255,全网所有设备将收到来着这台主机的广播包。也可以是本网段的广播地址也就是说我们通常使用的IP地址192.168.1.0 255.255.255.0 这个子网,它其实的广播地址是192.168.1.255 。本网段的三层广播地址通常是本网络的最后一个IP地址。
这里写图片描述
图中主机A 需要发送报文给B和C那么这种方式通常就是以广播形式发送的。
例如我们主机之间建立通信连接。。

单播(Unicast)的特性是一对一的建立连接。

单播就好像你购买的快递,卖家给你发送的东西邮寄地址是你正常情况下只有你是可以收这个快递的所以卖家针对的是你自己,这个虽然卖家也会发给另外的买家,但是你们发送的东西邮寄地址(目的IP地址)是不一样的,接收数据的只有你自己。

这里写图片描述

组播(多播)的特性是一对同组所有。

组播顾名思义就是在同组成员才能收到此数据报文,也就是说当我发送一个数据目的地址是这个组的组播地址的时候,所有在这个组的成员都会收到这个发送的内容。组播地址不能是源地址。

这里写图片描述

组播的IP地址为特有的D类地址其中224.0.0.0-224.0.0.255已经分配给IANA了,我们在某种特定的互联网协议中占用了此类地址,例如我们网络中用到的动态路由协议RIP它的更新报文利用的就是组播地址224.0.0.9,此类很多不一 一举例。这类地址的TTL(生命周期值)=1,也就是说他们不能被三层设备转发。组播的IP地址239.0.0.0—239.255.255.255为本地管理范围地址也就是我们常说的私有地址。组播IP地址224.0.1.0-238.255.255.255为全网组播地址,全网范围内有效。

组播的mac地址也是按照48bit规范的,二层组播地址和三层组播地址后23bit是一 一对应的mac地址开头位0100.5e开头对应的组播IP地址的映射为224-239。

第二部分 三种形式在设备中是如何工作的

1. 广播:

首先,广播报文它的工作范围一定是在同一个以太网结构下,它的报文是会被三层设备终结掉的。

这里我们要知道交换机这种设备从广义角度来想它是个二层设备(这里暂不考虑三层交换机)它工作在数据链路层上,这种设备是可以来处理广播帧的,它的工作原理也是利用了广播帧的特性,当终端接入交换机的时候,这个终端要向目的地址发送报文的时候首先会把报文发给交换机,交换机会查看接收端口的模式是access或者trunk,trunk则会查看本接口是否有通过这个vlan tag,如果没有则丢弃如果有,则查找交换机mac地址表是否有mac,mac地址表没有,则添加数据帧的源mac,这时候交换机就向属于这个vlan的所有接口(不包含源端口)发送广播,广播帧发送后所有设备都会回应,这时候交换机收到目的主机回应的数据帧,把数据帧的源mac和端口加到mac地址表,至此正常转发了。

这里写图片描述

三层的广播包其实只能在直连路由上应用直连路由也是基于二层网络,试想下:假设我们的网络中IP地址是192.168.1.0/24,那么其中一台主机向192.168.1.255发送数据包会是什么情况呢,所有主机都会受到这个数据包,这就是广播地址,这个广播包的源IP是发包的主机,目的地址是广播地址即192.168.1.255。

因此总结广播是工作在二层环境里,接收到广播报文的时候会向所有主机泛洪广播,也就是所有主机都有受到这个广播报文。由于广播的不针对性和不可靠性导致它无法使用TCP来发送,TCP是可靠传输它拥有三次握手四次挥手的工作原理,对数据的丢失有重传机制和窗口机制。UDP是面向无连接的不可靠传输,是可以使用广播来传输的。

优点:发送一次所有设备都能收到,带宽节省了。
缺点:不能使用TCP,没有可靠性,不能针对性的提供服务,因为不能跨三层所有需要的物理层布线会很多。

2.单播:

单播是互联网上运用最广泛的模式了,它具有针对性,它可以传输所有协议。通常单播也用于可靠传输的载体即TCP,当我们有需要保证传输内容无误那么只能选用单播。单播报文发送后只有数据的目的地址才能收到此数据。
单播是可以通过路由等方式进行传递的,它可以通过路由器的路由表转发数据。

这里写图片描述

那么问题出现了,当数据的源地址向广域网用户提供服务的时候,需要一 一对他们的Request进行回复,这样对于可靠性要求高的服务是必然的,对于一些在我们看来是必须不允许错误的。但对于可以有一定的Error报文的数据 也是可以接受,这样的不停的回复其实也没有太多的必要性。对于看电影这样一点卡顿和一点马赛克估计大家也不会太在意。

这里写图片描述

我们说过单播是可以跨三层设备的,这里我们用路由器表示三层网络结构,这里R3、R4、R5是通过R2查询路由表来觉得把相应数据转发给哪个路由器节点。

路由器R1可以单独的分别向R3、R4、R5发送数据包。当我与其中某个节点发生会话的时候不会同时被其他节点收到数据报文。其实我们现实中互联网提供的服务大多数都是利用单播来实现的,互联网行业一直想打破这种单播为主要流的局面,这对于电信运营商的传输也是一个非常大的挑战,电信运营商全国多运营商互联的链路实际也就是核心节点的40%增幅。物理层链路如果有故障还会导致大量的重传报文的出现链路负荷原来越大,拥塞。

这里R1发给用户R3、R4、R5的流量可能很多都是重复的甚至是完全一样的。R1分别与三台客户建立连接的同时,也就占用了三次带宽所以导致R1到R2的带宽是到三个客户的总和。

单播的优点:能够实现点到点的通信,可以基本支持任何一种报文协议的传输,对于目前Internet网中应用的也很广泛。

单播的缺点:对于传输中,不必要可靠性很高的内容,也同样按照可靠性传输结构来传递,重复的数据报文较多,对于带宽的消耗很高,对于路由学习路由表项也会增大,无疑是对资源的浪费。

3.组播:

组播出现,也正是结合广播和单播的部分特性。
首先224.0.0.0-224.0.0.255此段IP地址已经留给了我们互联网设备之间的通信协议的维护报文或者更新报文来使用了,而且在规定中他们不允许跨三层,原因已经在上文提到了不在多阐述。

除去上述谈到的地址段外,其他是可以通过三层的一些协议来传输的。
那么在一个组播的网络结构里,首先没跳路由器都要支持组播协议,其中终端与路由器之间要遵循某种能够让组播发现成员的协议,所以我们路由器通过此协议来检测组播组,那么这个协议就是IGMP/MLD协议,MLD为IPv6的应用。

那么路由器与路由器之间构成我们组播网络的树,即组播树。运行的协议按照我们正常的路由协议的方法去说明那么就可以分为域内协议和域间协议,我们通常支持的协议有DVMRP、PIM、MOSPF。我们常用为PIM,对于MOSPF必须域中全部部署OSPF才能运行。组播路由协议作用是用来形成一个无环和维护传输路径,通常叫做组播分发树。其中域间传输协议PIM有几种模式分别为PIM-DM、PIM-SM、PIM-SSM。那么对于我们域间的不同AS之间发现组播域内有组播源也需要利用MSDP、PIM-SSM,我们从一个域把组播传到另外一个域内,需要使用RPF检测路由信息。 如何在自治系统之间传递,这里我们可以 用MP-BGP来做组播数据包传递的RPF检查,MP-BGP多利用在MPLS-VPN里,对路由固有的特性进行装载和传递,装载多协议地址族,IPv4、IPv6、VPNv4等。

那么普通的BGP协议既可以用于单播数据包转发,也可以利用单播BGP产生的路由做PRF的检查。

组播中根据源和目的的不同分为三种模型:

ASM(any-source multicast)
在该模型中任意组播源,多个接收者加入不同的组播,从而获得组播内容,接收者无法预先知道组播源的位置,可以随意离开和加入。

SFM (source-filter multicast)
在该模型中,上层软件能够对组播报文的源地址进行过滤检查,对部分组播流量进行控制。

SSM(source-specific multicast)
先建立最短路径树,接收者已经知道组播源的位置。可以指定组播组和组播源。

因为组播应用中IGMPv3比较常用。这里我们只谈论IGMPv3。
IGMPv3是服务于SSM的,可以指定任意组播源、组播组。这里我们就简单利用图解介绍一下比较常用的SSM的。那么组播地址段232.0.0.0/8就是专门给SSM模型来使用的。

这里写图片描述

三台主机通过SSM模型IGMPv3,这里路由器发送的是全部主机可以接收的组播报文224.0.0.1。分别从同一路由器上加入不同的组播组,选择不同的组播源。主机向路由器申请加入报告 PC-1 G:代表申请加入232.1.1.1, IN代表只接收收此IP的组播源发出的组播报文。PC-2中的报告表示接收232.1.1.1的组播地址。PC-3表示只接收232.1.1.1但是10.1.1.1为组播源发出的地址不接收。也接收232.1.2.1,但是必须是10.1.2.1发出的组播地址才接收。成员离开时,发送离开报文下线。

组播规划路径的时候,采用的是组播分发树,这里我们浅谈源树与共享树的概念。
源树(SPT)即从组播源开始到达接收者最短路径,对于开销可能是最小的。但是路由器需要计算全路径的路由表项因为组播也是基于单播路由表项来规划路径的只不过它依照的是组播源的地址。

这里写图片描述

黄色部分组成的路径为源树路径。
共享树(RPT)在拓扑中找出一个集中的点由这个汇聚的点来规划到达接收者。这样不会发负荷全都在组播源上。聚合的那台路由器的点被称为(RP)。

这里写图片描述
黄色路径为共享树的路径。

那么在链路开销上组播显得有很大优势,对于单播来说路由器的作用主要在于转发数据包,对于组播拓扑来说每台路由器实际的工作是在复制流量,也可以说当组播源发给路由器的时候相互复制流量,而不是对于所有流量都去转发重复流量。

这里写图片描述

当我把组播报文发送给R2的时候,R2会复制组播流量分别发送给需要接收以这个232.1.1.1为目的地址的组播流量。链路中没有重复占用多次带宽的情况。

组播优点:对于流量的带宽重复性没有,对于源和目的和组都有很好的控制和过滤。相对于广播来说不会让组播组范围外的人收到不必要的报文。

缺点:不能使用TCP可靠性报文,对于广域网上使用还有待普及,如果传送组播流量需要电信服务器提供商给用户提供协议接口来支持。

第三部分 三种形式的实际应用

对于广播型网络特性基本锁定在二层基本用法当然不排除有L2 MPLS-VPN,这里我们之谈论广义上的。这里我们简述几个广播型网络的应用范围。

当我们上网的时候需要IP地址需要与网卡地址出现对应关系,这样才能转发,那我们可以通过ARP报文来对同一以太网环境下的主机进行查询。当主机想到达某台主机的时候,知道了IP地址,像自己的本地ARP列表查询,发现没有就会向与自己IP地址同一段的目的地址接口以广播形式发送ARP请求。收到回复后刷新自己ARP列表。

广播型网络对于电信服务提供商也有很好的广泛应用,用户端使用的ONU(光猫),通过光介质接入局端OLT,每用户拥有独立的VLAN,这里使用的PON技术,局端通过冗余技术接入运营商汇聚层网络,最后接入核心层,这里使用的全程是二层网络。

这里写图片描述

运营商使用的通用公有协议PPPOE拨号接入方式,用户提出PPPOE的请求报文,运营商的拨入网关收到这个广播型网络的请求去询问RADIUS计费系统下发用户的带宽套餐属性,然后以单播的形式回复给用户建立point to point的隧道,此时PPPOE回话连接完成。

对于单播网络日常应用非常的广泛基本上我们开个网页,浏览个网站,大部分的使用internet都使用的是单播。这里不对单播型网络简述太多,相信大家已经很了解。

组播型网络的应用主要应用在收看电视例如IPTV业务等业务比较多,我们现在用Android机顶盒上用APP上看的电视节目实际上是单播的应用并不是组播,组播必须由路由器支持才能完成。例如个地方的广播电视他们采用的就是组播技术,由组播源发送组播地址标识。

这里写图片描述

组播源发送的不同的组播实际上我们看的频道可以理解为组播,当你换台的时候就是在切换允许接收的组播地址。IGMPv3具备的特性也能满足运营商对我们频道的控制,例如你没有缴费则不提供服务,各别特色频道需要另收费则会在路由器上层加主机软件来控制路由器不给向下复制组播从而达到了控制效果。

广播、单播、组播在应用中个人感觉还是各有各的作用,关键看需求。
以上纯属个人理解欢迎各位指点,感谢。

  • 22
    点赞
  • 149
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值