家用路由器支持组播吗_耗时10小时编撰 带你系统认识组播基础架构及IGMP的概念...

news/2024/7/5 20:46:37 标签: 家用路由器支持组播吗
9711ce9ee737f0dd2900298df5b1bb6a.png

有小伙伴留言,表达了对于组播知识的渴求,那今天小老虎就再次化身知识传播的使者给大家讲一讲组播的基础架构以及IGMP的概念。

d35cf246df4b463d153442c5a5b8b3a0.png

398240688b9d46266520c3e465eed9f2.png

d35cf246df4b463d153442c5a5b8b3a0.png

组播multicast:在一个或跨越多个广播域,实现点对多点的通信需求,不存在强制性;比单播技术更加灵活、比广播技术更加高效;广泛应用在网络电视、在线直播、远程教育、视频会议等对带宽和数据交互实时性较高的信息服务。

单播unnicast:在一个或跨越多个广播域,实现点对点的通信需求。

广播broadcast:在同一个广播域内,实现点对多点的通信需求,存在强制性。

feb798651d71c38f98e468e2547eeb18.png

组播特点

1、 高效性:克服了广播发送数据的缺点,实现了点到多点之间高效的数据传输。

2、 节省资源:更好的带宽利用,只针对组播组成员发送且不存在强制性,可以节省了信源主机和非组播组成员不必要的CPU和内存消耗。

3、 时效性:发送源只需要发送一份数据,而目的地就可以同时接收到该数据。

4、 发送源主机和中间路由器都不必知道接收者的存在就可以直接发送。

5、 组播可以实现多对一、一对多、多对多的应用。

注:组播只能基于UDP封装且不能提供可靠传输机制;没有序列号,报文发送容易乱序,一般需要通过添加实时传输协议RTP来保证数据传输的序列性;组播在发送时可能会产生环路和重复包。

组播源:信息的发送者称为"组播源"或"信源"。

组播路由器:提供组播功能的路由器称为"组播路由器";组播路由器不仅提供组播路由功能,也提供组成员管理功能;同时也可以是一个或多个组播组的接收成员;同一组播组的成员可以广泛分布在网络中的任何地方,即"组播组"关系没有地域限制;

组播组成员:相同信息的接收者构成一个组播组,每个接收者都是"组播组成员"。

38bb17edf66f2a9e4f6a091fd1e4efcc.png

组播设计架构

L3组播:信源/组播应用程序--研发工程师

L2组播:组播路由器/组播动态路由选择协议--网络工程师

-IGP:PIM(协议无关组播)、DVMRP、MOSPF、CBT

注:PIM对IGP无要求,路由可达即可;而MOSPF基于单播OSPF基础上运行的。

-EGP:MSDP(组播源发现协议)、MP-BGP(BGP v4+)

注:MSDP可以实现跨越不同的AS发送和接收组播报文,结合MPBG一起使用;

L1组播:组播组成员/因特网组管理协议IGMP--网络工程师

注:通过交互IGMP报文,让最后一跳路由器知道自己身后是否存在组播组成员;不存在就不发送;存在就延伸树形结构并将组播发送给组播组成员。

组播报文封装:针对不同的应用进行不同的封装

组播地址:标识一组接收者,不能分配给某个网卡使用,没有网络位和主机位的说法,也没有网络地址和广播地址(扁平化地址/32);标准组织IANA将D类地址空间分配给IPv4组播使用,范围224.0.0.0 -- 239.255.255.255;

IPv4组播MAC地址:前24位地址位为01005E,第25位恒为0;后23位地址位是IP地址的后23位地址(32:1);

IPv6组播MAC地址:将组播地址的后32提取出来,然后在前边添加3333

因特网组管理协议IGMP:运行在最后一跳组播路由器和主机之间,用于建立、维护组播组成员关系;通过IGMP在路由器中记录的信息判断某个组播组是否在本地有组播组成员,能够实现两个功能:

1、主机通过发送IGMP报文通知路由器希望接收某个特定组播组的信息;

2、路由器通过IGMP报文周期性地查询局域网内的组播组成员是否处于活动状态,实现所连网段组播组成员关系的收集与维护。

7f3c7ce4b2bef72c0467749ac2748639.png IGMP

IGMP报文封装:

Ethernet2|IPv4|IGMP|FCS IP协议号为2

IGMPv1

IGMPv1(RFC 1112)中定义了基本的组成员查询和报告过程;支持ASM模型

版本:IGMP版本为1

类型:成员关系查询报文Query(0x11)和成员关系通告报文Report(0x12)

校验和:防止报文被篡改、冲突。

组地址:当用于成员关系通告时,组地址字段包含该组组播地址。

当用于成员关系查询时,本字段为0,并被主机忽略。

查询报文Query:由最后一跳路由器60s/次周期发送,目的地址为224.0.0.1,TTL值为1;路由器给主机发送Query报文会形成一个IGMP查询表,老化时间为180s,超过180s没有收到通告报文就会删除对应的IGMP表项。

通告报文Report:由PC主机发送,分为主动通告和针对查询报文的通告。

IGMP离组:PC会静悄悄的离组,不会通知路由器,最后一跳路由器在3个hello周期内没有收到Report报文会将该主机从IGMP查询列表中删除。

IGMP report supress优化机制:一台PC收到了路由器发送的Query报文,不能立马去做Report确认,PC开启一个随机计时器,范围为1-10s,取值为整数,在计时器过期后,其中的一台PC会发送目的地址为该组组播地址的Report报文,最后一跳路由器和组内其他成员收到这个Report报文后就会抑制报告发送。

当一个域内有多台最后一跳路由器时,需要选举出一台路由器作为IGMP查询者在IGMPv1中就需要由组播动态路由选择协议(如PIM)选举出唯一的指定路由器DR作为IGMP查询者。

IGMPv2

IGMPv2(RFC 2236)在IGMPv1的基础上添加了指定组查询、组成员快速离开的机制和最大响应时间等机制;只支持ASM模型

类型:

1)成员关系查询(0x11)

-常规查询:用于确定组播组有哪些成员,常规查询地址由全零表示;

-指定组查询:用于查询特定的组播组是否还有组成员。

2)版本2成员关系通告报文(0x16)

3)版本1成员关系通告报文(0x12)

4)离组报文Leave Group message(0x17)

最大响应时间:最大响应时间为10s,响应时间间隔为0.1s

校验和:防止报文被篡改、冲突。

组地址:在查询消息中,发送一个常规查询报文时组地址域设为0;发送一个特定组查询报文时,则用该组的组播组地址;发送成员报告或离开组的报文时,组地址保留了要报告或要离开的组播组地址。

查询者选举:当有多个最后一跳路由器时,路由器会互相发送Query报文进行查询者选举(224.0.0.1),比较路由器的接口地址,地址小的路由器会被选举为查询者,查询者周期性60s/次发送Query报文,邻居路由器超过120s没有收到Query报文,接口地址第二小的路由器成为查询者(和PIM选举的DR无关)

离组过程:主机在关闭组播应用的时候会通过224.0.0.2给路由器发送离组报文Leave Group message,路由器收到离组报文后会立即发送Group-specific query(目的地址为离组报文发送的组播组地址)并将最大响应时间修改为2s(思科只发送一次),路由器在2s内收到主机的Report报文,会保留组播查询表项。

路由器在2S内没有收到Report报文就会立即删除对应的IGMP表项。

Router#show ip igmp group(查看igmp表项)

Router#show ip igmp int e0/0查询路由器接口igmp配置

IGMPv3

IGMPv3(RFC 3376)中增加的主要功能是成员可以指定接收或拒绝来自某些组播源的报文,实现了对SSM模型的支持。

1、保留(Resv):发送的时候以0填充,接收的时候不做处理,被忽略。

2、标志位S(禁止路由器处理):当被设置成1时,表示任何接收路由器禁止更新它们在收到查询时要更新的那些定时器。但它不禁止查询者选举或者普通的在路由器上执行的(当路由器作为一个组成员的时候)主机端的查询处理。

3、查询者的健壮变量(QRV):如果不为0,QRV中包含中一个被查询者使用的[健壮变量]的值,如果查询者的健壮变量的值超过7,即QRV字段的最大值,那么QRV被设成0。路由器取最近收到的查询中的QRV值作为它们自己的健壮性变量的值,除非最近收到的QRV是0,在这种情况下,接收者使用缺省的健壮性变量值,或者是一个静态配置的值。

4、查询者的查询间隔代码(QQIC):指定查询者使用的查询间隔。

5、源数量Number_of_Source:表明该查询中存在多少个源地址,在普通查询或指定组查询中这个值是0,在指定多个源的查询中,这个值为非0值。

6、源地址Sourceaddress:n个IP单播地址的数组,n就是源数量字段的值。

在IGMPV3中它有了以下的改进功能:

1、增加了组播组成员的控制能力;IGMP V3不仅可以指定要加入哪个组播组,还能明确要求从哪个指定组播源接受信息,这也是指定源组播功能。

2、响应消息包含多组记录:IGMP V3响应消息包含的组地址为224.0.0.22,可以携带1个或多个组记录,可以包含组播组地址、数目不等的源地址信息。

3、取消了Report的抑制机制、增加了指定源组查询报文;取消了离组报文,需要结合第三方协议配合离组。

以上就是今天的知识点,下周同一时间为大家带来组播(下)IGMP Snooping工作机制以及组播动态路由选择协议。

d0945cfe0f495fa8f196a14cfaae8e82.gif

想要获取更多知识点免费公开课录播课

以及和众多网工朋友们battle网工技术

欢迎扫码进群 超多福利等你来

cd11afe9d28df3a36edc82dcf3908819.gif

c81f7107b26f21897b05b04a047182b4.png

更多问题欢迎扫码小老虎

c5df6f106b24618e03d6cd4d96550119.png

6914b669652e49917df02420933767b6.pngEND

http://www.niftyadmin.cn/n/1425120.html

相关文章

struts2学笔记六 action中处理多个请求方法一

一个action内包含多个处理逻辑。struts2有一个页面处理多个请求的action可使用DMI调用来处理。<% page language"java" contentType"text/html; charsetGBK"%><script> function regist() { targetForm document.forms[0]; targetForm.acti…

python怎么使用int四舍五入_Python数据处理(四舍五入、除法部分)

最近在改造之前的代码的过程中发现一直使用的除法都是“传统除法”&#xff0c;即对整数进行操作&#xff0c;结果的精度不准&#xff0c;正巧在看python核心编程&#xff0c;碰到这块&#xff0c;整理下。 关于除法 传统除法 对两个整数进行除的运算&#xff0c;同时结果会舍去…

struts2学笔记六 action中处理多个请求方法二

方法二指定method<struts> <package name"lee" extends"struts-default"> <action name"Login" class"lee.LoginRegistAction"> <result name"input">/login.jsp</result>…

台式电脑网络连接配置异常_看完才明白,电脑一体机和台式机哪个好?

一体机和台式机电脑哪个好&#xff1f;电脑一体机是目前台式机和笔记本电脑之间的一个新型的市场产物&#xff0c;它将主机部分、显示器部分整合到一起的新形态电脑&#xff0c;该产品的创新在于内部元件的高度集成。台式机分为主机和机箱&#xff0c;是分体存在的&#xff0c;…

dns遭到劫持_通过BGP实现流量劫持、如何通过bgp实现流量劫持_软件动态论坛

BGPBGP全称是Border Gateway Protocol&#xff0c;翻译成中文是边界网关协议&#xff0c;用于全球各个AS之间的路由。它的地位是毋庸置疑的&#xff0c;如果没有它就没有全球的因特网。因为全球各个AS都等价的维护一个BGP也带来一些安全性问题&#xff0c;只要任意一个节点的BG…

ascii码最初公布的字符长度是7位编码_走进字符集的江湖

初入编程世界的时候&#xff0c;杨公子就经常遇到字符编码的困扰&#xff0c;后来在修炼中不断遇到来自字符编码的骚扰。杨公子发现&#xff0c;不论是在C语言帮、Java帮、Scala帮还是python帮&#xff1b;不论是做前端、后端、测试还是大数据&#xff1b;不论你用的武器是mysq…

struts2学笔记七 一些配置有关

struts2改变了struts2只能使用JSP作为视图技术的现状&#xff0c;struts2允许使用其他模板技术&#xff0c;如freemaker,velocity作为视图技术。servlet2.4以下的版本要手动加载struts2标签库。web.xml<taglib> <taglib-uri>/struts-tags</taglib-uri> <…

python入门级_Python——入门级(class类)

class 定义一个类class 定义一个类, 后面的类别首字母推荐以大写的形式定义&#xff0c;比如Calculator.class可以先定义自己的属性&#xff0c;比如该属性的名称可以写为 nameGood Calculator.class后面还可以跟def, 定义一个函数. 比如def add(self,x,y):加法, 输出print(xy)…