IGMP协议_igmp协议常用3种报文

IGMP协议_igmp协议常用3种报文IGMP介绍


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、IGMP的定义

IGMP是Internet Group Management Ptotocol的简称,被称为互联网组管理协议,是TCP/IP协议族中负责IPV4组播成员管理的协议。

二、IGMP的作用

  • 作用1
    IGMP用来在接收者主机和直接相邻的组播路由器之间建立和维护组播组成员的关系。

  • 作用2
    IGMP通过在接收者主机和组播路由器之间交互IGMP报文实现组成员管理功能,IGMP报文封装在IP报文中。
    在这里插入图片描述

三、IGMP的版本

到目前为止,IGMP 有三个版本:IGMPv1、IGMPv2、IGMPv3

  • IGMPv1 :主机可以加入组播组。没有离开信息(leave messages)。路由器使用基于超时的机制去发现其成员不关注的组。

  • IGMPv2 :该协议包含了离开信息,允许迅速向路由协议报告组成员终止情况,这对高带宽组播组或易变型组播组成员而言是非常重要的。

  • IGMPv3 :与以上两种协议相比,该协议的主要改动为:允许主机指定它要接收通信流量的主机对象。来自网络中其它主机的流量是被隔离的。 IGMPv3 也支持主机阻止那些来自于非要求的主机发送的网络数据包。
    指定源组的组播流路经
    所有版本的IGMP 都支持ASM(Any-Source Multicast,任意信源组播)模型;IGMPv3 可以直接应用于SSM(Source-Specific Multicast,指定信源组播)模型,而IGMPv1 和IGMPv2 则需要在IGMP SSM Mapping 技术的支持下才能应用于SSM 模型。

四、组播模型的分类

根据接收者对组播源处理方式的不同,组播模型分为以下三类:

  • ASM 模型:Any-Source Multicast,任意信源组播

    在ASM 模型中,任意一个发送者都可以作为组播源向某组播组地址发送信息。众多接收者通过加入由该组播组地址标识的组播组以获得发往该组播组的组播信息。在ASM 模型中,接收者无法预先知道组播源的位置,但可以在任意时间加入或离开该组播组。

  • SFM 模型:Source-Filtered Multicast,信源过滤组播

    该模型继承了ASM 模型,从发送者角度来看,两者的组播组成员关系完全相同。SFM 模型在功能上对ASM 模型进行了扩展。在SFM 模型中,上层软件对收到的组播报文的源地址进行检查,允许或禁止来自某些组播源的报文通过。因此,接收者只能收到来自部分组播源的组播数据。从接收者的角度来看,只有部分组播源是有效的,组播源被经过了筛选。

  • SSM 模型:Source-Specific Multicast,指定信源组播

    在现实生活中,用户可能只对某些组播源发送的组播信息感兴趣,而不愿接收其它源发送的信息。该模型为用户提供了一种能够在客户端指定组播源的传输服务。

    SSM 模型与ASM 模型的根本区别在于:SSM 模型中的接收者已经通过其它手段预先知道了组播源的具体位置。SSM 模型使用与ASM/SFM 模型不同的组播地址范围,直接在接收者与其指定的组播源之间建立专用的组播转发路径。

五、组播协议

通常,我们把工作在网络层的IP 组播称为“三层组播”,相应的组播协议称为“三层组播协议”,包括IGMP、PIM、MSDP、MBGP等。

把工作在数据链路层的IP 组播称为“二层组播”,相应的组播协议称为“二层组播协议”,包括IGMP Snooping、组播VLAN 等。

  • 三层组播协议

    三层组播协议包括组播组管理协议和组播路由协议两种类型,它们在网络中的应用位置如下图。
    在这里插入图片描述
    (1) 组播组管理协议
    在主机和与其直接相连的三层组播设备之间通常采用组播组的管理协议IGMP(Internet Group Management Protocol,互联网组管理协议),该协议规定了主机与三层组播设备之间建立和维护组播组成员关系的机制。

    (2) 组播路由协议
    组播路由协议运行在三层组播设备之间,用于建立和维护组播路由,并正确、高效地转发组播数据包。

    组播路由建立了从一个数据源端到多个接收端的无环(loop-free)数据传输路径,即组播分发树。

  • 二层组播协议

    二层组播协议包括IGMP Snooping和组播VLAN等,它们在网络中的应用位置如下图。
    在这里插入图片描述
    (1) IGMP Snooping
    IGMP Snooping(Internet Group Management Protocol Snooping,互联网组管理协议窥探)是运行在二层设备上的组播约束机制,通过窥探和分析主机与三层组播设备之间交互的IGMP 报文来管理和控制组播组,从而可以有效抑制组播数据在二层网络中的扩散。

    (2) 组播VLAN
    在二层网络设备上进行跨VLAN组播复制。

    在交换机上部署了组播VLAN功能后,上游路由器不必在每个用户VLAN(VLAN2和VLAN3)内都复制一份组播流,而是数据流在组播VLAN(VLAN4)内复制一份后发送给二层设备。这样就避免了组播流在上游设备的重复复制,不仅节省了网络带宽,又减轻了上游路由器的负担。

六、IGMP应用场景

IGMP最常见的应用是IPTV:

  • 视频源端发送UDP组播数据流,客户端通过加入组播接收数据流播放节目

  • Client 发送IGMP Join Group封包加入组播才能接收到数据
    在这里插入图片描述

  • Client不想要接收此组播数据时,发送一个IGMP Leave Group封包离开组播
    在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193786.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 关于linux文件系统软连接_centos7删除目录命令

    关于linux文件系统软连接_centos7删除目录命令前言经常使用centos系统的同学都知道,在全局安装命令指令时,即使是执行了npminstall-g但是安装之后的命令仍然说找不到那么我们改如何操作呢?软连接简介centos下的ln命令就相当于window下的建立快捷方式,链接文件甚至可以链接不存在的文件,这就产生一般称之为”断链”的现象,链接文件甚至可以循环链接自己。类似于编程语言中的递归。软链接文件只是其源文件的一个标记,当删除了源…

    2022年9月1日
  • POJ 1011 Sticks

    POJ 1011 Sticks

    2021年12月7日
  • try catch 语句中有return 的各类情况

    try catch 语句中有return 的各类情况在牛客上做java题时遇到过多到关于trycatch语句的问题,看了很多答案解析,在这里记录一下。首先给出一道题目:下面代码的运行结果为?publicclasstest{ publicintadd(inta,intb){ try{ returna+b; }catch(Exceptione){ System.out.println("catch语句块")…

    2022年6月29日
  • 公网RTSP视频流「建议收藏」

    公网RTSP视频流「建议收藏」公网RTSP视频流测试地址:rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov

    2022年10月18日
  • 【致远FAQ】致远OA宕机之Tomcat异常宕机

    【致远FAQ】致远OA宕机之Tomcat异常宕机问题描述tomcat进程已经不在; 由于在启动命令行参数中增加了相关的日志监控,重点查找JVM内存溢出、jvm的crash的日志进行问题定位; 没有.hprof文件生成【基本可以推论没有出现JVM内存溢出】 没有hs_err_xxx.log文件生成【基本可以推论JVM没有出现严重的crash异常】问题分析1)通过catalina.log看出tomcat出现了非正常关闭操作下的停机;如果是正常停机会在输出图1的日志前输出如图2所示的内容2)tomcat停机的时..

    2022年7月23日
  • Mac 安装配置抓包工具Charles「建议收藏」

    Mac 安装配置抓包工具Charles「建议收藏」     本文主要介绍mac下如何安装网络抓包工具以及如何实现抓包。在windows下有一款不错的抓包工具Fidder,但是由于是C#编写的,无法再mac下运行,因此,需要换一款抓包软件:Charles。  Charles是一款Java语言编写的抓包工具,因此可以跨平台使用,可以在win/linux下使用,java编写的当然需要安装jdk了。同时还有一个问题,就是收费的,50美刀,折合…

    2022年6月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号