网络层的组播用于向某些特定的主机群发消息,而不必给每一个主机都单独发送消息。与单播路由相比,相同点是路由算法在网络层仍发挥着重要作用,但是不同点是处理组播包的路由器必须建立和维护组播连接的状态信息。

组播通常采用间接的方式进行组播:每一组接收者有一个统一的“标识符”,将包传送到与该“标识符”相连的所有接收者,而不是把所有接受者的目的地址都放在IP组播包里面的直接法。这是显而易见的,因为当某个组播的主机很多的时候地址太多会严重影响消息传递的效率。发送方应该知道组里面有多少成员(并且成员应该随意加入和退出),并且路由器应该知道怎么把组播数据包传递给所有有连接某一个组播的主机的路由器。如下图所示:

图中蓝色的是组播路由器,带g符号的是参加某一个组播的主机。那么假设某个源是组播源,它想发送消息给所有的加入某个组播的主机,那么首先他应该把消息发送给所有组播路由器;之后组播路由器再把消息发送给自己的加入组播的主机。

从上面的步骤来看,主要就两个部分,所以网络层的组播协议主要也由两个部分组成:IGMP协议(Internet组管理协议)以及组播路由协议。IGMP协议用于用户进程通过该协议提出加入/退出某个组的请求,也就是说路由器通过这个协议了解自己局域网下面哪些主机加入了哪些组;组播路由协议用于保证所有组播路由器都能收到组播包。这篇文章着重讲一下IGMP,而文章后面的拓展部分则是关于组播路由算法。

IGMP协议工作在主机与其直接相连的路由器之间,主机用它来通告它想加入某个组播组,路由器用它来发现所连网络上是否有主机属于某个组播组。路由器用它来发现所连网络上是否有主机属于某个组播组,并且定期探询表中成员以便确定该主机组是否仍然存在。

如果路由器下某个主机想加入一个组:

加入的过程如下:①H1发送“Membership-Report”消息告知想加入组地址224.2.0.1。  ②R1接收到成员报告消息后将所有发给224.2.0.1的包都转发到net1

③R1定期向224.0.0.1(所有的组成员)发送“Membership-Query”消息确认是否还有组员。

如果某个主机想退出组的过程如下:

①H1发送“Leave-Group ”消息到224.0.0.2(所有组播路由器) ②R1接收此消息 ③R1停止转发目的地为224.2.0.1的报文到net1(如果在net1上再也没有属于224.2.0.1组的成员)

通过IGMP协议,组播路由器就知道自己局域网下面主机加入和退出组播的情况。如果有加入,那么当组播数据包来的时候就转发给自己的主机,反之如果都退出了就会发送“prune”信息给自己的上级路由器,就不会有组播数据包发送给自己了。

拓展阅读

IP组播之组播路由算法

IP组播之组管理协议IGMP相关推荐

  1. IGMP协议——IP组播之组管理协议

        网络层的组播用于向某些特定的主机群发消息,而不必给每一个主机都单独发送消息.与单播路由相比,相同点是路由算法在网络层仍发挥着重要作用,但是不同点是处理组播包的路由器必须建立和维护组播连接的状态 ...

  2. 【H3C V7交换机实战课程-8】IP组播配置与管理-王达-专题视频课程

    [H3C V7交换机实战课程-8]IP组播配置与管理-10489人已学习 课程介绍         本课程是以H3C新的Comware V7版本操作系统为基础,以实战方式介绍H3C设备的IGMP.PI ...

  3. IP组播配置与管理实战——5

    组播VLAN配置与管理 组播VLAN(Multicast VLAN)一般部署于设备的网络侧来实现组播流汇聚,然后将组播报文在用户VLAN内复制分发.华为S系列交换机支持基于用户VLAN和基于接口两种方 ...

  4. IP组播配置与管理——5

    组播VLAN配置与管理 组播VLAN(MulticastVLAN)一般部署于设备的网络侧来实现组播流汇聚,然后将组播报文在用户VLAN内复制分发.华为S系列交换机支持基于用户VLAN和基于接口两种方式 ...

  5. IP组播之组播路由算法

    上一篇文章说的是组管理协议IGMP,它是用来给组播路由器确定自己局域网下面有哪些主机加入了哪些组播的.那么这篇文章就说说IP组播另一个重要协议,组播路由协议.组播路由协议用于在路由器之间共享组信息,为 ...

  6. 交换机组播协议-二层组播/三层组播总结

    一.组播介绍: 组播技术解决的是以最小的网络开销实现单点发送,多点接收的问题.就实现点对多点数据传输问题,比广播/单播传输更高效,更能节省网络带宽,降低网络负载. 当ip网络中某Rx主机需要接收信息时 ...

  7. IP组播----组播基础 组播服务模型、组播地址

    一.简介 IPv4传输方式有三种:单播.组播.广播 单播:信息源为每个需要信息的主机都发送一份独立的报文 组播:信息源将保温发送到一个特定的组播IP地址,只有加入了这个组的主机才能接收 广播:信息源将 ...

  8. 组播侦听者发现协议MLD

    MLD简介 组播侦听者发现协议MLD(Multicast Listener Discovery)是负责IPv6组播成员管理的协议,用来在IPv6成员主机和与其直接相邻的组播路由器之间建立和维护组播组成 ...

  9. MLD(组播侦听发现协议)

    1.协议的概述 组播侦听发现协议MLD用于IPv6组播中的组成员管理,其基本原理和功能与IGMP相似.MLD的目的是使能每个IPv6路由器发现在其直连网络上的组播侦听者(即希望接收组播数据的节点)的存 ...

最新文章

  1. 美国部分Android手机竟将用户隐私数据回传至上海服务器!
  2. action标签的使用
  3. 嵌入式笔录(3)-电容,频率与幅度基础
  4. DefaultListableBeanFactory 对配置lazy-init 属性单态Bean 的预实例化
  5. 创建mysql的表怎么显示00_Mysql sql_mode设置 timestamp default 0000-00-00 00:00:00 创建表失败处理...
  6. Hessian Binary Web Service Protocol远程接口调用入门
  7. 京东扩招 1.5 万员工;程维卸任快的打车法人;库克纪念乔布斯 64 岁诞辰 | 极客头条...
  8. Inception V1-V4
  9. 使用tuned/tuned-adm工具动态调优你的CentOS系统
  10. 查询ES(ElasticSearch)版本
  11. http://blog.csdn.net/pizi0475/article/details/7768597
  12. 织梦微信小程序一键生成插件(资讯案例模板),整合织梦CMS一切数据信息
  13. TDSQL PG 版企业级分布式数据库技术创新实践
  14. java excel 导出 下载_使用Java导出Excel表格并由浏览器直接下载
  15. iOS开发 info.plist设置app启动页面
  16. ClassFormatException:Invalid byte tag in constant pool: 18
  17. OceanBase分区
  18. python selenium 爬虫 网站seo刷流量 第一篇:百度搜索
  19. 华强北的AirPods 能用吗?(华强北避坑科普分享)
  20. java springboot 32位的UUID

热门文章

  1. 用python画漂亮图-零基础用 Python 画图表,让你的论文更美观
  2. python视频教程-中谷python中文视频教程(全38集)
  3. 百度远场语音识别套件-开箱评测
  4. android 下拉刷新监听,说说在 Android 的 RecyclerView 中如何实现下拉刷新
  5. 远程计算机用户端口,电脑怎么开远程端口
  6. html缓存效果代码,html5缓存(示例代码)
  7. 【动态规划】完全背包:整数划分(方案数)
  8. 【python笔记】 for循环和while循环,break和continue语句
  9. JAVA编写的一个简单的Socket实现的HTTP响应服务器
  10. postmapping注解参数说明_这么写参数校验(validator)就不会被劝退了~