TCP/IP013 IGMP:Internet组管理协议

IGMP 它让一个物理网络上的所有系统知道主机当前所在的多播组,多播路由器需要这些信息以便知道多播数据报应该向哪些接口转发。


image.png

IGMP报文格式:


image.png

这是版本1的IGMP。
IGMP类型为1,说明是由多播路由器发出的查询报文,为2说明是主机发出的报告报文,检验和的计算和ICMP协议相同

组地址为D类IP地址。在查询报文中组地址设置为0,在报告报文中组地址为要参加的组地址。

IGMP协议

加入一个多播组

多播的基础就是一个进程的概念(使用的术语进程是指操作系统执行的一个程序),该进程在一个主机的给定接口上加入了一个多播组。
在一个给定接口上的多播组中的成员是动态的——它随时因进程加入和离开多播组而变化。
这里所指的进程必须以某种方式在给定的接口上加入某个多播组
进程也能离开先前加入的多播组。这些是一个支持多播主机中任何API所必需的部分。使用限定词“接口”是因为多播组中的成员与接口相关联。一个进程可以在多个接口上加入同一个多播组。
这里暗示一个主机通过组地址和接口来识别一个多播组。主机必须保留一个表,此表中包含所有至少含有一个进程的多播组以及多播组中的进程数量

多播路由器使用IGMP报文来记录与该路由器相连网络中组成员的变化情况,使用规则如下:


image.png

如下图显示两个IGMP报文,一个是主机发送的报告,另一个是路由器发送的查询:


image.png

该路由器正在要求那个接口上的每个主机说明它加入的每个多播组。
实现细节

当一个主机首次发送IGMP报告(当第一个进程加入一个多播组)时,由于使用的是IP交付服务,不保证该报告被可靠接收。所以下一个报告将在间隔一段时间后发送,这个时间间隔由主机在0~10s的范围内随机选择。


image.png

在IGMP报文图中,报告和查询的生存时间(TTL)均设置为1,一个初始TTL为0的多播数据报将被限制在同一主机。默认情况下,待传多播数据报的TTL被设置为1,这将使多播数据报仅局限在同一子网内传送,更大的TTL值能被多播路由器转发
正常情况下,用户进程不关心TTL,只有Traceroute程序,它主要依据设置TTL值来完成。既然多播应用必须能够设置要传送数据报的TTL值,这意味着程序设计接口必须为用户进程提供这种能力。
增加TTL的方法:


image.png
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 13.1 引言 12.4节概述了IP多播给出,并介绍了D类IP地址到以太网地址的映射方式。也简要说明了在单个物理网...
    张芳涛阅读 696评论 0 1
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,096评论 0 8
  • 本篇结构: ICMP IGMP 附 反思 接着上一篇TCP/IP--划分子网和构造超网,本章接着分享IP协议的两个...
    w1992wishes阅读 11,078评论 0 4
  • 1、TCP为什么需要3次握手,4次断开? “三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端...
    杰伦哎呦哎呦阅读 3,548评论 0 6
  • 网络层提供的两种服务 在计算机网络领域,网络层应该向运输层提供怎样的服务(面向连接还是无连接)曾引起了长期的争论,...
    srtianxia阅读 4,039评论 0 12