【网络开发】组播问题分析

摘要:
因此,可能需要注册多播发送源,并在离开时发送休假。如果进程希望加入多播组,请使用套接字的setsockopt()函数发送此选项。选项类型为ip_Mreq结构,其第一个字段imr_multiaddr指定多播组的地址。第二个字段是imr_ Interface指定接口的IPv4地址。1) 通过设置套接字属性,可以发送不同类型的IGMP消息。默认值为1,这意味着数据包只能在本地子网中传输。

1、知识介绍
   根据接收者对组播源处理方式的不同,组播模型分为以下三类:
   1)ASM 模型:Any-Source Multicast,任意信源组播
   2)SFM 模型:Source-Filtered Multicast,信源过滤组播
   3)SSM 模型:Source-Specific Multicast,指定信源组播

   解释:
   IGMPv3主机为接口上的每一个组播都维护一个表现信息:
   格式为:(组播地址,过滤模式,源列表)

   过滤模式包含INCLUDE和EXCLUDE:
   1)INCLUDE模式表示只接收来自源列表中列出的源发送的组播数据包;
   2)EXCLUDE模式表示只接收来自不在源列表中列出的组播源发送的组播数据包。

   源列表包含0个或多个IP单播地址,通常用集合形式来表示。


   可能存在的问题:对于某些交换机,可能对于不在组播组中的数据不进行发送。
   所以,可能需要将组播发送的源也进行组播注册,离开时发送leave。


2、如何实现主机发送IGMP的报文。
   若进程要加入到一个组播组中,用soket的setsockopt()函数发送该选项。
   该选项类型是ip_mreq结构,它的第一个字段imr_multiaddr指定了组播组的地址,
   第二个字段imr_interface指定了接口的IPv4地址。


   1)通过设置socket属性就可以相应的将IGMP的不同类型报文发送出去。
      对于IGMP的报文,设置的socket的属性有以下几个。下面具体说明。

 

 

3、如何在交换机上设置组播策略。
   在ASM/SFM/SSM模式中配置。可以不考虑,而只用设置加入源组播地址,从源组播地址中删除操作。
   这样可以测试被删除的地址能否将组播信息发送出来。
  

4、socket组播属性说明:(struct ip_mreq / struct ip_mreq_source)
 1)IP_ADD_MEMBERSHIP    struct ip_mreq
  若进程要加入到一个组播组中,用soket的setsockopt()函数发送该选项。
    该选项类型是ip_mreq结构,它的第一个字段imr_multiaddr指定了组播组的地址,第二个字段imr_interface指定了接口的IPv4地址。
 2)IP_DROP_MEMBERSHIP
  该选项用来从某个组播组中退出。数据结构ip_mreq的使用方法与上面相同。
 3)IP_MULTICAST_IF
  该选项可以修改网络接口,在结构ip_mreq中定义新的接口。
 4)IP_MULTICAST_TTL
  设置组播报文的数据包的TTL(生存时间)。默认值是1,表示数据包只能在本地的子网中传送。
  5)IP_MULTICAST_LOOP
  组播组中的成员自己也会收到它向本组发送的报文。这个选项用于选择是否激活这种状态。

  6)考虑使用的(struct ip_mreq_source)
   IP_BLOCK_SOURCE   :Removes the given source as a sender to the supplied multicast group and interface.    
   IP_UNBLOCK_SOURCE : 排除方式加入组播组

   IP_ADD_SOURCE_MEMBERSHIP  包含方式加入组播组
   IP_DROP_SOURCE_MEMBERSHIP

 实验:
分别设置socket属性,看发送的报文是哪些。

免责声明:文章转载自《【网络开发】组播问题分析》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Windows10与虚拟机中CentOS-7.2进行ftp通信Qt之log数据展示模块简要实现下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

netlink组播的使用

Linux的netlink机制是非常好的Linux内核与应用层进行双向交互数据的方式。其常用的单播方式可以实现内核为服务端,应用层为客户端的通信方式。如果需要实现应用层为服务端,内核为客户端的通信方式,则需要使用组播。这种场景一般是应用层守护进程需要实现获取内核的某些模块的状态信息。 内核中已经定义好的组有: #define NETLINK_ROUTE...

【网络开发】交换机指定源组播

SSM-Source Specific Multicast(指定源组播)   对于某个多播组,进行指定源的加组行为,匹配上了源才接收组播流量,若组播流量不来自于指定的源,则丢弃流量。 在组播流量传输过程中没有不必要的泛洪和修剪。 在组播路由表中全部由 (S,G) 的形式表现,其中S为指定的组播源,G为相对应的多播组。 在iana的IPv4地址分配中,将...

Live555 分析(一):类介绍

从程序的结构来看,live项目包括了四个基本库、程序入口类(在mediaServer中)和一些测试代码(在testProgs中)。 四个基本静态库是UsageEnvironment、BasicUsageEnvironment、groupsock和liveMedia。 UsageEnvironment: 包括抽象类UsageEnvironment和抽象类Ta...

网络学习笔记----02--IGMP组播、ARP

IGMP组播 :在路由器的接口上运行,周期性扫描本网段是否有绑定某个多播地址的计算机。 ARP,全称Address Resolution Protoco,将广播中的IP地址解析成MAC地址 查看MAC地址 ,其中127是广播地址 可以通过arp -a 查看mac地址,防止arp欺骗...

mDNS故障排查(译)

WLC上mDNS网关的理解及排查第一部分:介绍 这篇文档描述了Bonjour协议在WLC上的操作,该文档旨在协助工程师理解该工作流量的原理以及提供故障排查的指导。 第二部分:需求和前提 知识需求: Cisco建议你对Bonjour协议、在WLC配置mDNS、以及多播路由有一定的基础知识,以便你能更好的理解。 设备组件: 该文档是基于如下设备和相关软件版本完...

EIGRP 超强总结

1)EIGRP的特征和属性:EIGRP是一个高级的距离矢量协议,因为它的快速收敛和保证无环。有以下特征:1、组播和单播:EIGRP组播地址是224.0.0.10 ,使用组播和单薄取代广播2、支持多种网络层协议3、100%无环路:采用DUAL算法4、快速收敛:一个运行EIGRP的路由器保存所有邻居的路由表信息,以至于它能快速适应可替代的路由。如果没有合适的路...