发明内容
本申请实施例提供组播转发表项同步方法及装置。
本申请的技术方案是这样实现的:
一种组播转发表项同步方法,该方法包括:
OLT发现本地维护的一ONU的组播转发表发生更新,则将更新的组播转发表项对应的组播组地址携带在组播转发表项核查请求消息中发送给ONU;
OLT接收ONU发来的携带所述组播组地址对应的组播转发表项的第一通告消息,对于第一通告消息携带的每一组播转发表项,将该组播转发表项与本地维护的对应组播转发表项进行比较,若二者不一致,则将本地维护的对应组播转发表项携带在第二通告消息中发送给ONU。
一种组播转发表项同步方法,该方法包括:
ONU根据接收的组播组加入、离开报文维护本地组播转发表;
ONU接收OLT发来的携带组播组地址的组播转发表项核查请求消息,将本地维护的所述组播组地址对应的组播转发表项携带在第一通告消息中发送给OLT;
ONU接收OLT发来的携带组播转发表项的第二通告消息,根据第二通告消息携带的组播转发表项更新本地对应的组播转发表项。
一种组播转发表项同步装置,位于OLT上,该装置包括:
核查请求模块:发现本地维护的一ONU的组播转发表发生更新,则将更新的组播转发表项对应的组播组地址携带在组播转发表项核查请求消息中发送给ONU;
通告处理模块:接收ONU发来的携带组播组地址对应的组播转发表项的第一通告消息,对于第一通告消息携带的每一组播转发表项,将该组播转发表项与本地维护的对应组播转发表项进行比较,若二者不一致,则将本地维护的对应组播转发表项携带在第二通告消息中发送给ONU。
一种组播转发表项同步装置,位于ONU上,该装置包括:
组播转发表维护模块:根据接收的组播组加入、离开报文维护本地组播转发表;
核查请求处理模块:接收OLT发来的携带组播组地址的组播转发表项核查请求消息,将本地维护的所述组播组地址对应的组播转发表项携带在第一通告消息中发送给OLT;
通告处理模块:接收OLT发来的携带组播转发表项的第二通告消息,根据第二通告消息携带的组播转发表项更新本地对应的组播转发表项。
可见,本申请实施例中,ONU根据接收到的组播组加入、离开报文在本地维护组播转发表项,同时,接受OLT对组播转发表项的集中控制,加快了ONU上组播转发表项的创建,提高了组播数据流的传输效率,同时满足了OLT对组播转发表项的集中控制。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图1为本申请一实施例提供的采用可控组播模式的EPON系统中的组播转发表项同步方法流程图,其具体步骤如下:
步骤101:OLT发现本地维护的一ONU的组播转发表发生更新,则将更新的组播转发表项对应的组播组地址携带在组播转发表项核查请求消息中发送给所述ONU。
步骤102:OLT接收所述ONU发来的携带所述组播组地址对应的组播转发表项的第一通告消息,对于第一通告消息携带的每一组播转发表项,将该组播转发表项与本地维护的对应组播转发表项进行比较,若二者不一致,则将本地维护的对应组播转发表项携带在第二通告消息中发送给所述ONU。
图2为本申请另一实施例提供的采用可控组播模式的EPON系统中的组播转发表项同步方法流程图,其具体步骤如下:
步骤201:ONU根据接收的组播组加入、离开报文进行组播转发表项的创建、删除;同时,OLT根据接收的组播组加入、离开报文以及本地配置的组播集中控制策略进行组播转发表项的创建、删除。
本申请实施例针对的是采用可控组播模式的EPON系统,在可控组播模式下,由OLT对EPON系统的组播进行集中控制,OLT有权限根据需要将某个或某些UNI端口直接加入或者退出某个或某些组播组,而无需经由组播组加入或组播组离开消息的触发。
步骤202:OLT发现本地保存的一个ONU的组播转发表中有组播转发表项更新时,向该ONU发送携带更新的组播转发表项对应的组播组地址的组播转发表项核查请求消息。
组播转发表项更新有两种情形:一、新创建了组播转发表项;二、已有组播转发表项的出端口列表发生了改变,如:增加或减少了出端口。
当一个ONU的多个组播转发表项发生了更新、且该多个表项对应的组播组地址的类型相同(如:都为IPv4地址,或者都为IPv6地址)时,可将该多个组播转发表项对应的组播组地址携带在同一组播转发表项核查请求消息中。
本申请实施例中,组播转发表项核查请求消息可以采用OAM(OperationAdministration and Maintenance,操作管理和维护)协议的扩展PDU(Protocol DataUnit,协议数据单元)来实现,OAM协议的扩展PDU的格式如图3所示,其中:
Data/Pad(数据/填充)字段的REQ_ID(请求标识)字段用于表示消息类型为组播转发表项核查请求消息,其取值不同于现有的请求消息的该字段取值即可;
Data/Pad的Multicast Data(组播数据)字段用于携带需要核查的组播组地址类型、组播组地址数目和各组播组地址,其中,组播组地址类型有两种:IPv4和IPv6,当OLT要同时核查IPv4和IPv6地址对应的组播转发表项时,要使用两个核查请求消息,一个用于核查IPv4地址对应的表项,一个用于核查IPv6地址对应的表项。
步骤203:ONU接收OLT发来的组播转发表项核查请求消息,从该请求消息中解析出需要核查的各组播组地址,对于每一需要核查的组播组地址,在本地组播转发表中查找到对应的组播转发表项,将所有需要核查的组播组地址在本地对应的组播转发表项携带在组播转发表项通告消息中发送给OLT。
组播转发表项通告消息可采用现有的组播转发表项通告消息,该消息采用OAM协议的扩展PDU实现。
步骤204:OLT接收ONU发来的组播转发表项通告消息,从该通告消息中解析出各组播转发表项,对于解析出的每一组播转发表项,在本地保存的该ONU的组播转发表中查找对应的组播转发表项,将查找到的组播转发表项与解析出的组播转发表项进行比较,判断二者是否一致,若是,不作进一步处理;否则,将查找到的组播转发表项携带在组播转发表项通告消息中发送给ONU,ONU接收到该通告消息后,根据该通告消息携带的组播转发表项更新本地保存的对应的组播转发表项,同时向OLT返回组播转发表项通告响应消息。
本步骤中的组播转发表项通告消息、组播转发表项通告响应消息都可直接采用现有的组播转发表项通告消息、组播转发表项通告响应消息。
另外,本申请实施例中,为了确保ONU上的组播转发表项与OLT一致,进行如下优化处理:
步骤202中,OLT发出组播转发表项核查请求消息后,启动第一定时器,若第一定时器超时时仍未收到来自ONU的组播转发表项通告消息,则返回执行发出组播转发表项核查请求消息的动作,直至收到来自ONU的组播转发表项通告消息。
另外,步骤205中,OLT发出组播转发表项通告消息后,启动第二定时器,若第二定时器超时时仍未收到来自ONU的组播转发表项通告响应消息,则返回执行发出组播转发表项通告消息的动作,直至收到来自ONU的组播转发表项通告响应消息。
以下给出本申请的应用示例:
该应用示例针对的EPON系统如图4所示,其中,OLT下挂了3个ONU:ONU 1、ONU 2、ONU 3,ONU 1下挂了IPv4用户主机PC 10、PC11,ONU 2下挂了IPv4用户主机PC 20,ONU 3下挂了IPv4用户主机PC 30。
该EPON系统采用可控组播模式。
具体的组播转发表项同步过程如下:
01:某一时刻,ONU 1接收到了其下挂主机PC 10针对组播组地址225.1.1.1的组播组加入报文,ONU创建组播组地址为225.1.1.1的组播转发表项,表项的出端口为UNI 10,同时,将该组播组加入报文以及该报文的入接口UNI 10上传到OLT。
02:OLT接收到ONU 1发来的组播组加入报文,创建组播组地址为225.1.1.1的组播转发表项,表项的出端口为UNI 10,将该表项放入ONU 1的组播转发表中,此时上游来的组播组地址为225.1.1.1的组播数据流将被转发到ONU 1,ONU 1再转发给PC 10;
由于本地维护的ONU 1的组播转发表发生了更新,则OLT向ONU 1发起针对组播组地址225.1.1.1的组播转发表项核查请求消息。
03:ONU接收到该核查请求消息,将本地保存的组播组地址225.1.1.1的组播转发表项携带在组播转发表项通告消息中发送到OLT。
04:OLT接收到ONU 1发来的组播组地址225.1.1.1的组播转发表项,将该组播转发表项与本地保存的组播组地址225.1.1.1的组播转发表项进行比较,发现二者一致,则不作处理。
当PC 11需要接收组播组地址225.1.1.1的组播数据时,采用与上述步骤01~04相同的过程。
同时,针对ONU 2、ONU 3上的组播转发表项的处理与ONU 1相同。
05:某一时刻,OLT根据组播集中控制策略,确认需要禁止ONU 1上的端口UNI 10接收组播组地址225.1.1.1的数据流,则将UNI 10从本地维护的ONU 1的组播组地址225.1.1.1的组播转发表项的出端口列表中删除,并向ONU 1发起针对组播组地址225.1.1.1的组播转发表项核查请求消息;
06:ONU1接收到该核查请求消息,将本地保存的组播组地址225.1.1.1的组播转发表项携带在组播转发表项通告消息中发送给OLT。
设定,ONU 1本地保存的组播组地址225.1.1.1的组播转发表项的出端口列表中包含两个出端口:UNI 10、UNI 11。
07:OLT接收ONU 1发来的通告消息,发现该消息中的组播组地址225.1.1.1的组播转发表项有两个出端口UNI 10、UNI 11,而本地保存的组播组地址225.1.1.1的组播转发表项只有一个出端口UNI 11,则将本地保存的组播组地址225.1.1.1的组播转发表项携带在组播转发表项通告消息中发送给ONU 1,ONU1根据该消息更新本地的组播组地址225.1.1.1的组播转发表项。
从上述应用示例可以看出:若ONU 1、ONU 2以及ONU 3下的主机在较短时间内发送了大量的组播组加入报文,ONU 1、2、3可以先在本地快速建立组播转发表项,从而OLT可以快速将组播流量引入到ONU 1、2、3,之后,当组播组加入报文到达OLT后,OLT再启动组播转发表项核查。这样,一方面提高了组播数据流的传输效率,另一方面也满足了OLT对组播的集中控制。
本申请实施例的有益技术效果如下:
本申请实施例中,ONU根据接收到的组播组加入、离开报文在本地维护组播转发表项,同时,接受OLT对组播转发表项的集中控制,加快了ONU上组播转发表项的创建,提高了组播数据流的传输效率,同时满足了OLT对组播转发表项的集中控制。
图5为本申请一实施例提供的组播转发表项同步装置的组成示意图,该装置位于OLT上,该装置主要包括:核查请求模块和通告处理模块,其中:
核查请求模块:发现本地维护的一ONU的组播转发表发生更新,则将更新的组播转发表项对应的组播组地址携带在组播转发表项核查请求消息中发送给ONU。
通告处理模块:接收ONU发来的携带组播组地址对应的组播转发表项的第一通告消息,对于第一通告消息携带的每一组播转发表项,将该组播转发表项与本地维护的对应组播转发表项进行比较,若二者不一致,则将本地维护的对应组播转发表项携带在第二通告消息中发送给ONU。
一种实施例中,核查请求模块发送的组播转发表项核查请求消息通过OAM协议的扩展PDU实现,其中,扩展PDU的Data/Pad字段的Muliticast Data字段中携带需要核查的组播组地址的类型、数目以及各组播组地址。
一种实施例中,核查请求模块将更新的组播转发表项对应的组播组地址携带在组播转发表项核查请求消息中发送给ONU的同时进一步包括:启动第一定时器,且,
若在第一定时器超时时未接收到ONU发来的第一通告消息,则返回执行将更新的组播转发表项对应的组播组地址携带在组播转发表项核查请求消息中发送给ONU的动作。
一种实施例中,通告处理模块将本地维护的对应组播转发表项携带在第二通告消息中发送给ONU的同时进一步包括:启动第二定时器,且,
若在第二定时器超时时未接收到针对第二通告消息的响应消息,则返回执行将本地维护的对应组播转发表项携带在第二通告消息中发送给ONU的动作。
图6为本申请另一实施例提供的组播转发表项同步装置的组成示意图,该装置位于ONU上,该装置主要包括:组播转发表维护模块、核查请求处理模块和通告处理模块,其中:
组播转发表维护模块:根据接收的组播组加入、离开报文维护本地组播转发表。
核查请求处理模块:接收光线路终端OLT发来的携带组播组地址的组播转发表项核查请求消息,将本地维护的组播组地址对应的组播转发表项携带在第一通告消息中发送给OLT。
通告处理模块:接收OLT发来的携带组播转发表项的第二通告消息,根据第二通告消息携带的组播转发表项更新本地对应的组播转发表项。
以上仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。