现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

IGMP intermet 组管理协议

2012-11-13 22:23 工业·编程 ⁄ 共 2593字 ⁄ 字号 暂无评论

ICMP被认为是IP层的一个组成部分,主要功能有查询报文和差错报文。ICMP报文通常被IP层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。通过IP包传送的ICMP信息主要用于涉及网络操作或错误操作的不可达信息。ICMP包发送是不可靠的,所以主机不能依靠接收ICMP包解决任何网络问题。

ICMP的主要功能如下:

⑴ 发现网络错误。比如,某台主机或整个网络由于某些故障不可达。

⑵ 通告网络拥塞。当路由器缓存太多包,由于传输速度无法达到它们的接收速度,将会生成ICMP源结束信息。对于发送者,这些信息将会导致传输速度降低。当然,更多的ICMP源结束信息的生成也将引起更多的网络拥塞,所以使用起来较为保守。

⑶ 协助解决故障。ICMP支持echo功能,即在两个主机间一个往返路径上发送一个包。Ping是一种基于这种特性的通用网络管理工具,它将传输一系列的包,测量平均往返次数并计算丢失百分比。

⑷ 通告超时。如果一个IP 包的TTL降低到零,路由器就会丢弃此包,这时会生成一个ICMP包通告这一事实。TraceRoute是一个工具,它通过发送小TTL 值的包及监视ICMP 超时通告可以显示网络路由。

ICMP报文是在IP数据报内部被传输的。

ICMP报文格式

所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。

类型字段可以有15个不同的值,以便描述特定类型的ICMP报文。某些ICMP报文还使用代码字段的值来进一步描述不同的条件。

检验和字段覆盖整个ICMP报文。使用的算法和IP首部校验和算法相同。ICMP的检验和是必需的。

Internet 组管理协议(IGMP)是因特网协议家族中的一个组播协议,用于 IP 主机向任一个直接相邻的路由器报告他们的组成员情况。IGMP 信息封装在 IP 报文中,其 IP 的协议号为 2。IGMP 具有三种版本,即 IGMP v1、v2 和 v3。

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

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

IGMPv3: 与以上两种协议相比,该协议的主要改动为:允许主机指定它要接收通信流量的主机对象。来自网络中其它主机的流量是被隔离的。IGMPv3 也支持主机阻止那些来自于非要求的主机发送的网络数据包。

IGMP 协议变种有:

距离矢量组播路由选择协议(DVMRP: Distance Vector Multicast Routing Protocol)

IGMP 用户认证协议 (IGAP: IGMP for user Authentication Protocol)

路由器端口组管理协议(RGMP: Router-port Group Management Protocol)

协议结构

IGMP v3 必须实现5种基本信息类型且与以前的版本相兼容:

0x11:会员查询

0x22:第3版本会员报告

0x12:第1版本会员报告

0x16:第2版本会员报告

0x17:第2版本离开组

它用来在ip主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。igmp不包括组播路由器之间的组成员关系信息的传播与维护,这部分工作由各组播路由协议完成。所有参与组播的主机必须实现igmp。

参与ip组播的主机可以在任意位置、任意时间、成员总数不受限制地加入或退出组播组。组播路由器不需要也不可能保存所有主机的成员关系,它只是通过igmp协议了解每个接口连接的网段上是否存在某个组播组的接收者,即组成员。而主机方只需要保存自己加入了哪些组播组。

报文,即 igmp在主机与路由器之间是不对称的:主机需要响应组播路由器的igmp查询以igmp membership report报文响应;路由器周期性发送成员资格查询报文,然后根据收到的响应报文确定某个特定组在自己所在子网上是否有主机加入,并且当收到主机的退出组的报告时,发出特定组的查询报文(igmp版本2),以确定某个特定组是否已无成员存在。

到目前为止,igmp有三个版本:igmp版本1(由rfc1112定义)、igmp版本2(由rfc2236定义)和igmp版本3。目前应用最多的是版本2。

igmp版本2对版本1所做的改进主要有:

(1)共享网段上组播路由器的选举机制

共享网段表示一个网段上有多个组播路由器的情况。在这种情况下,由于此网段上运行igmp的路由器都能从主机那里收到成员资格报告消息,因此,只需要一个路由器发送成员资格查询消息,这就需要一个路由器选举机制来确定一个路由器作为查询器。

在igmp版本1中,查询器的选择由组播路由协议决定;igmp版本2对此做了改进,规定同一网段上有多个组播路由器时,具有最小ip地址的组播路由器被选举出来充当查询器。

(2)igmp版本2增加了离开组机制

在igmp版本1中,主机悄然离开组播组,不会给任何组播路由器发出任何通知。造成组播路由器只能依靠组播组响应超时来确定组播成员的离开。而在版本2中,当一个主机决定离开时,如果它是对最近一条成员资格查询消息作出响应的主机,那么它就会发送一条离开组的消息。

(3)igmp版本2增加了对特定组的查询

在igmp版本1中,组播路由器的一次查询,是针对该网段下的所有组播组。这种查询称为普遍组查询。

在igmp版本2中,在普遍组查询之外增加了特定组的查询,这种查询报文的目的ip地址为该组播组的ip地址,报文中的组地址域部分也为该组播组的ip地址。这样就避免了属于其它组播组成员的主机发送响应报文。

(4)igmp版本2增加了最大响应时间字段

igmp版本2增加最大响应时间字段,以动态地调整主机对组查询报文的响应时间。
注解:该协议运行于主机和与主机直接相连的组播路由器之间,是IP主机用来报告多址广播组成员身份的协议。通过IGMP协议,一方面可以通过IGMP协议主机通知本地路由器希望加入并接收某个特定组播组的信息;另一方面,路由器通过IGMP协议周期性地查询局域网内某个已知组的成员是否处于活动状态。
应用:IGMP协议的主要作用是解决网络上广播时占用带宽的问题。在网络中,当给所有客户端发出广播信息时,支持IGMP的交换机会将广播信息不经过滤地发给所有客户端。但是这些信息只需要通过组播的方式传输给某一个部分的客户端。

给我留言

留言无头像?