gmrp(garp multicast registration protocol,garp组播注册协议)是基于garp的一个组播注册协议,用于维护交换机中的组播注册信息。所有支持gmrp的交换机都能够接收来自其他交换机的组播注册信息,并动态更新本地的组播注册信息,同时也能将本地的组播注册信息向其他交换机传播。这种信息交换机制,确保了同一交换网内所有支持gmrp的设备维护的组播信息的一致性。
当一台主机想要加入某个组播组时,它将发出gmrp加入消息。交换机将接到gmrp加入消息的端口加入到该组播组中,并在接收端口所在的vlan中广播该gmrp加入消息,vlan中的组播源就可以知晓组播成员的存在。当组播源向组播组发送组播报文时,交换机就只把组播报文转发给与该组播组成员相连的端口,从而实现了在vlan内的二层组播。
交换机会周期性发送 GMRP 查询,如果主机想留在组播组中,它就会响应 GMRP 查询,在该情况下,交换机没有任何操作;如果主机不想留在组播组中,它既可以发送一个 leave 信息也可以不响应周期性 GMRP 查询。一旦交换机在计时器(leave all timer)设定期间收到主机 leave 信息或没有收到响应信息,它便从组播组中删除该主机。
IEEE 802.1p是流量优先权控制标准,工作在媒体访问控制(MAC)子层。它使得二层交换机能够提供流量优先级和动态组播过滤服务。IEEE 802.1p标准也提供了组播流量过滤功能,以确保该流量不超出第二层交换网络范围。
IEEE 802.1p协议头包括一个3位优先级字段,该字段支持将数据包分组为各种流量种类。IEEE 极力推荐网络管理员实施这些流量种类,但它并不要求强制使用。流量种类也可以定义为第二层服务质量(QoS)或服务类(CoS),并且在网络适配器和交换机上实现,而不需要任何预留设置。IEEE 802.1p流量被简单分类并发送至目的地,而没有带宽预留机制。
IEEE 802.1p是IEEE 802.1q(VLAN标签协议)标准的扩充协议,它们协同工作。IEEE 802.1q标准定义了为以太网MAC帧添加的标签。VLAN 标签有两部分:VLAN ID(12比特)和优先级(3比特)。IEEE 802.1q VLAN标准中没有定义和使用优先级字段,而IEEE 802.1p中则定义了该字段。
IEEE 802.1p中定义的优先级有8种。最高优先级为7,应用于关键性网络流量,如路由选择信息协议(RIP)和开放最短路径优先(OSPF)协议的路由表更新;优先级6和5主要用于延迟敏感(delay-sensitive)应用程序,如交互式视频和语音;优先级4到1主要用于受控负载(controlled-load)应用程序,如流式多媒体(streaming multimedia)和关键性业务流量(business-critical traffic);优先级0是默认值,并在没有设置其他优先级值的情况下自动启用。
IEEE 802.1p协议还定义了GARP(Generic Attribute Registration Protocol,通用属性注册协议)。这里的Attribute是指组播MAC地址、端口过滤模式和VLAN等属性。GARP协议实际上可以定义很多交换机应该具有的特性,如GMRP(GARP Multicast Registration Protocol,组播注册协议)和GVRP(GARP VLAN Registration Protocol,虚拟局域网注册协议)两个协议,以后会根据网络发展的需要定义其他的特性。GARP定义了以太网交换机之间交换这些特性信息的方法,如何发送数据包,接收的数据包如何处理,等等。
GMRP协议是一个动态二层组播注册协议,它的很多方面跟IGMP(Interent组管理协议,属三层组播协议)类似。对于IP地址来说,D类IP地址是组播地址。实际上,对于每一个IP组播地址,都有一个组播MAC地址跟它对应,IEEE 802.1p协议就是根据组播MAC地址来在以太网交换机上注册和取消组播成员身份的,而IGMP是根据组播IP来管理的。当然,如果以太网交换机没有实现GMRP协议,那么就只能通过静态配置来实现组播了。
那么为什么需要二层组播协议呢?与IGMP协议一样,如果我们在自己的局域网内成立一个组播组,可能我们的局域网包含了很多交换机。如果这些交换机没有实现二层组播协议的话,那么某个组员给其他组员发送数据包时,交换机就会将该数据包向所有的端口广播。因为交换机不知道哪个端口有人加入了该组播组,唯一的解决办法就是管理员配置交换机,只有这样才能将这种广播转发数据包的发送方式限制住。而组播本身是动态的,所以通过这种靠管理员的配置来实现组播的方式是不现实的。因此,就需要有一个二层组播协议来动态管理组员。这就是为什么需要二层组播协议的原因,目前,许多高档的交换机都把实现IEEE 802.1p和IEEE 802.1q协议(本节后面将具体介绍)作为一个主要的性能指标。
GVRP是VLAN协议,由于它与GMRP都是基于GARP之上的,所以它们之间的关系很紧密,它们都要对交换机的数据库进行操作,这个协议的具体定义在下面将要介绍的IEEE 802.1q协议中