主机网卡如何处理组播MAC地址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了主机网卡如何处理组播MAC地址相关的知识,希望对你有一定的参考价值。

组播包在网络上传输时目的MAC是组播MAC地址,而与主机的MAC地址显然不可能一样。主机网卡收到组播MAC如何判断是否丢弃的?

参考技术A 1. 什么是组播?
组播是一种数据包传输方式,当有多台主机同时成为一个数据包的接受者时,出于对带宽和CPU负担的考虑,组播成为了一种最佳选择。
2. 组播如何进行工作?
组播通过把224.0.0.0-239.255.255.255的D类地址作为目的地址,有一台源主机发出目的地址是以上范围组播地址的报文,在网络中,如果有其他主机对于这个组的报文有兴趣的,可以申请加入这个组,并可以接受这个组,而其他不是这个组的成员是无法接受到这个组的报文的。
3. 组播和单播的区别?
为了让网络中的多个主机可以同时接受到相同的报文,如果采用单播的方式,那么源主机必须不停的产生多个相同的报文来进行发送,对于一些对时延很敏感的数据,在源主机要产生多个相同的数据报文后,在产生第二个数据报文,这通常是无法容忍的。而且对于一台主机来说,同时不停的产生一个报文来说也是一个很大的负担。
如果采用组播的方式,源主机可以只需要发送一个报文就可以到达每个需要接受的主机上,这中间还要取决于路由器对组员和组关系的维护和选择。
4. 组播和广播的区别?
如同上个例子,当有多台主机想要接收相同的报文,广播采用的方式是把报文传送到局域网内每个主机上,不管这个主机是否对报文感兴趣。这样做就会造成了带宽的浪费和主机的资源浪费。而组播有一套对组员和组之间关系维护的机制,可以明确的知道在某个子网中,是否有主机对这类组播报文感兴趣,如果没有就不会把报文进行转发,并会通知上游路由器不要再转发这类报文到下游路由器上。
二、组播协议的要素
通过和广播,单播的数据传输方式的比较,我们可以发现组播中最关键的两个部分:
1. 组的管理和维护
在组播这套协议中,在网络设备和所连接的子网需要有一套协议或机制来保证网络设备知道所连接的子网中,有多少台主机属于一个特定的组。
2. 组播报文的路由

三、如何来维护组成员
现在有IGMP和CGMP(Cisco专有的)两种协议,可以进行主机和网络设备之间的组员关系的维护。
IGMP是路由器和内部子网之间通信的方式,也就是说它是三层设备对直连子网的组关系的维护机制。它可以分成两个部分,主机部分和路由器部分,每个部分可以完成不同的工作。但是它有一个限制,就是IGMP报文只能在本地子网内传送,使三层设备不能前转到其他的设备上,它的TTL总是1。
IGMPv2主机部分的功能:
运行IGMPv2的主机会产生以下3种信息:
* Member Report消息
用来指示一台主机想要加入一个组播组,这个消息在一个主机第一次加入组的时候会发出,也可以用来响应三层设备发出Membership Query消息。由于Membership Query消息的目的地址是组地址,除了路由器,网内其他的组员主机都会收到这个报文,一旦其他主机收到报文,他们将会抑制自己的Membership Query报文,避免了内部局域网充斥了Membership Query报文。它只需要让路由器知道网内还有一个组员。
* Version 1 Membership Report消息
是为了IGMPv2主机的向后兼容性,用于检测和支持子网中IGMPv1主机和路由器 (转载注明出处n et130)
* Leave Group消息
主机发出的,目的地址为224.0.0.2(所有路由器),告诉路由器主机离开了一个组。
IGMPv2路由器功能:
主要是查询功能,它会有两种查询报文,General Query和Group-Specific Query
General Query每隔一段时间就会向局域网内发送,目的地址是224.0.0.1(网内所有主机),所以子网里的每一个主机都会收到这个报文,并且会以Member Report报文回应,如果在一定的时间间隔内设备没有收到任何Member Report,它就会认为子网内没有组员。
Group-Specific Query报文,当路由器收到一个Leave Group报文的时候,它会发送这样一个具体包含有组地址的报文来查询这个组是否有组成员存在。
当如果在一个子网上同时有两个多播路由器,他们一开始都会认为自己是组播成员的查询者,当他们发送General Query报文时,通过比较从对端收到的报文源IP地址的大小来决定谁是查询者谁不是查询者,IP地址大的成为查询者。如果在一段时间内没有收到查询的报文,就会认为查询者down掉了,它就会充当起查询者的角色。

组播(multicasting)是一种多点投递的形式,它使用硬件技术,通过使用大量组播地址来通信。当某一组机器需要通信时,选择一个组播地址,并配置好相应的网络接口硬件,识别组播地址,从而收到该组播地址上分组的拷贝。 广播(broadcasting)是多点投递的最普遍的形式,它向每一个目的站投递一个分组的拷贝。它可以通过多个单次分组的投递完成,也可以通过单独的连接传递分组的拷贝,直到每个接收方均收到一个拷贝为止。举个例子:县里开大会,只同时通知了A村、B村、C村参加就是组播;同时通知了所有的村子参加就是广播了!

你是不是区分不开组播和广播? 广播的时候ARP去寻找MAC地址,每个成员都会收到,然后对应自己的MAC地址,如果不是自己的那就说明这个数据包不是给我的,丢弃! 组播不是这样的!追问

  

 
 现在来讨论网卡接收哪个组播流的问题。假设主机A的MAC地址为A1-B2-C3-D4-E5-F6。组播流224.1.1.2的以太网帧中目的MAC
地址为01-00-5e-01-01-02。按照单播来说,主机A收到不是自己的MAC的以太网帧会直接丢弃,那么接收到组播以太网帧时如何处理?

  还请指教一下。

  谢谢。

追答

这个办法没有回答你了! 不知道用集线器组网的网络数据会变得怎么样, 不过你有条件可以用抓包工具看看 PC是怎么处理这个数据包的!

追问

好的。谢谢

本回答被提问者采纳
参考技术B 1.
组播
组播种数据包传输式台主机同数据包接受者于带宽CPU负担考虑组播种佳选择
2.
组播何进行工作
组播通224.0.0.0-239.255.255.255D类址作目址台源主机发目址范围组播址报文网络其主机于组报文兴趣申请加入组并接受组其组员接受组报文
3.
组播单播区别
让网络主机同接受相同报文采用单播式源主机必须停产相同报文进行发送于些延敏数据源主机要产相同数据报文产第二数据报文通容忍且于台主机说同停产报文说负担
采用组播式源主机需要发送报文达每需要接受主机间要取决于路由器组员组关系维护选择
4.
组播广播区别
同例台主机想要接收相同报文广播采用式报文传送局域网内每主机管主机否报文兴趣做造带宽浪费主机资源浪费组播套组员组间关系维护机制明确知道某网否主机类组播报文兴趣没报文进行转发并通知游路由器要再转发类报文游路由器
二、组播协议要素
通广播单播数据传输式比较我发现组播关键两部:
1.
组管理维护
组播套协议网络设备所连接网需要套协议或机制保证网络设备知道所连接网少台主机属于特定组
2.
组播报文路由
三、何维护组员
现IGMPCGMP(Cisco专)两种协议进行主机网络设备间组员关系维护
IGMP路由器内部网间通信式说三层设备直连网组关系维护机制两部主机部路由器部每部完同工作限制IGMP报文能本网内传送使三层设备能前转其设备TTL总1
IGMPv2主机部功能:
运行IGMPv2主机产3种信息:
*
Member
Report消息
用指示台主机想要加入组播组消息主机第加入组候发用响应三层设备发Membership
Query消息由于Membership
Query消息目址组址除路由器网内其组员主机都收报文旦其主机收报文抑制自Membership
Query报文避免内部局域网充斥Membership
Query报文需要让路由器知道网内组员
*
Version
1
Membership
Report消息
IGMPv2主机向兼容性用于检测支持网IGMPv1主机路由器
(转载注明处n
et130)
*
Leave
Group消息
主机发目址224.0.0.2(所路由器)告诉路由器主机离组
IGMPv2路由器功能:
主要查询功能两种查询报文General
QueryGroup-Specific
Query
General
Query每隔段间向局域网内发送目址224.0.0.1(网内所主机)所网每主机都收报文并且Member
Report报文应定间间隔内设备没收任何Member
Report认网内没组员
Group-Specific
Query报文路由器收Leave
Group报文候发送具体包含组址报文查询组否组员存
网同两播路由器始都认自组播员查询者发送General
Query报文通比较端收报文源IP址决定谁查询者谁查询者IP址查询者段间内没收查询报文认查询者down掉充起查询者角色
组播(multicasting)种点投递形式使用硬件技术通使用量组播址通信某组机器需要通信选择组播址并配置相应网络接口硬件识别组播址收该组播址组拷贝
广播(broadcasting)点投递普遍形式向每目站投递组拷贝通单组投递完通单独连接传递组拷贝直每接收均收拷贝止举例:县同通知A村、B村、C村参加组播;同通知所村参加广播
区组播广播
广播候ARP寻找MAC址每员都收应自MAC址自说明数据包给我丢弃
组播

交换机如何处理组播

书说泛洪,,根广播没区别?请高手指点,我10,数,略表敬意!

参考技术A 对于普通的应用来说,你不必过究更深的原理。
一条命令,打组播的开关打开就行了。
华三的:multicast
routing-enable,这是三层组播。
另外还有2层的。
1.PIM-DM协议需要分别在各个接口上使能,此配置在系统视图下使能组播路由之后才能生效;
2.在接口上如果已使能了PIM-SM协议,不能再对此接口使能PIM-DM协议。
3,
更多还是看看操作手册吧。
不泛泛的前提还是要了解一些参数。

以上是关于主机网卡如何处理组播MAC地址的主要内容,如果未能解决你的问题,请参考以下文章

交换机如何处理组播

MAC 地址(单播组播广播地址分类)

硬件mac地址是啥

wireshark为啥显示本地主机实际MAC地址而不是远程主机实际MAC地址

MAC地址

什么是MAC单播地址什么是组播地址两者之间的关系