具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。
本申请实施例提供一种组播报文传输方法,应用于PON网络中的OLT上,该OLT在每个PON口上监控ONU侧发送的IGMP协议报文。
下面结合附图,详细说明本申请实施例中实现组播报文传输的过程。
参见图1,图1为本申请实施例中组播报文传输的流程示意图。具体步骤为:
步骤101,OLT通过PON口接收到IGMP加入报文时,将该加入报文中携带的ONU标识以及该PON口的端口号加入加入报文对应的组播组的成员列表中。
如果针对该组播组第一次接收到IGMP加入报文,则为该组播组建立成员列表,并将该IGMP加入报文中携带的ONU标识,以及接收该IGMP加入报文的PON口的端口号增加到建立的成员列表中;
如果当前已针对该组播组建立成员列表,则确定该成员列表中是否存在该ONU标识,如果存在,则维持当前成员列表不变;否则,将该加入报文中携带的ONU标识以及该PON口的端口号加入到该组播组的成员列表中。
步骤102,该OLT为该组播组分配全局唯一的组播LLID;并向该ONU标识对应的ONU发送组播LLID通告报文,使该ONU接收该组播LLID对应的组播报文。
本申请实施例中具体实现时,为每个建立成员列表的组播组分配全局唯一的组播LLID,在分配组播LLID时,可以在一个预设范围内分配,与现在已使用的组播LLID相区分,即避开经常使用的组播LLID即可,本申请实施例对此不作限制,只要能实现本申请实施例分配的组播LLID为全局唯一的组播LLID即可。
针对加入一组播组的成员列表中的每个ONU标识,在加入时,都会向该ONU标识对应的ONU发送组播LLID通告报文用于通知该组播组的组播LLID,在该组播LLID通告报文中携带该组播组的组播地址和为该组播组分配的组播LLID。
该组播LLID通告报文以单播报文的形式发送给对应的ONU,即在该通告报文中携带该ONU对应的单播LLID,这样该组播LLID通告报文只会被该ONU接收到。
该ONU接收到该组播LLID通告报文时,获取该报文中携带的组播组地址和组播LLID,并在本ONU上设置,使本ONU能够接收LLID为该组播LLID的数据报文。
该ONU在本ONU上设置结束时,或接收到该组播LLID通告报文时,向OLT以单播形式发送组播LLID确认报文,在该确认报文中携带该组播组的组播地址。
该OLT设备接收到组播LLID确认报文时,获知该ONU能够接收LLID为为该组播组分配的组播LLID的组播报文。
步骤103,该OLT当需要发送该组播组对应的组播报文时,在该组播报文中携带为该组播组分配的组播LLID,并通过该组播组的成员列表中的端口号对应的PON口发送,使该组播组的成员列表中的ONU标识对应的ONU接收该组播报文。
本申请实施例中在发送组播报文时,若为该组播组分配组播LLID,则在发送该组报文时,携带为该组播组分配的组播LLID,而不同于现有实现中发送组播报文时,在组播报文中携带广播LLID。
针对要发送的组播报文,如果该组播报文为从PON网络外部接收到的以太报文,则转发该组播报文时,直接为该组播报文携带上对应的组播LLID即可;如果该组播报文为PON网络中的某个ONU发送的,则该组播报文中携带广播LLID,在转发该组播报文时,将该组播报文中的广播LLID修改为,为该组播组分配的组播LLID。
该组播报文携带上为该组播组分配的组播LLID后,通过该组播组的成员列表中的端口号对应的PON端口发送。
在该成员列表中的各端口号对应的PON端口下的ONU,只有获知该组播组的组播LLID的ONU,才会接收并解析该组播报文。
步骤103中,该OLT当需要发送该组播组对应的组播报文时,该方法进一步包括:
确定本地是否存在该组播组的成员列表;
当确定本地存在该组播组的成员列表,进一步确定是否接收到该成员列表中的所有ONU标识对应ONU发送的组播LLID确认报文,如果是,会在发送该组播报文时,携带为该组播组分配的组播LLIID;否则,在发送该组播报文时,携带广播LLID,同现有实现。
当确定本地不存在该组播组的成员列表,在发送该组播报文时,携带广播LLID,同现有实现。
针对OLT向任一ONU发送组播LLID通告报文后,在预设时间内接收到该ONU发送的组播LLID确认报文时,确定接收到该ONU发送的组播LLID确认报文;
当预设时间到时,未接收到该ONU发送的组播LLID确认报文,则确定向该ONU发送组播LLID通告报文的次数是否达到预设次数,如果是,确定该ONU设备已故障,可以将成员列表中该ONU标识删除;再次向该ONU发送组播LLID通告报文,按此规则执行,直到达到预设次数,未接收到该ONU发送的组播LLID确认报文,确定该ONU故障;或者,接收到该ONU发送的组播LLID确认报文,确定该ONU能够接收LLID为该组播LLID的组播报文,并针对该ONU标识作标记,用于确定成员列表中的所有ONU标识对应的ONU是否都发送的组播LLID确认报文。
上述实现方式,仅为本实施例列举的一种确定是否接收到该成员列表中的所有ONU标识对应ONU发送的组播LLID确认报文的方式,并不限于此种实现方式。
下面结合附图,详细说明本申请实施例中实现加密传输组播报文的过程。
本实施例的实现,需先针对组播组配置加密算法和密钥;在具体实现时,可以针对不同组播组配置相同的加密算法和密钥,也可以配置不同的加密算法和密钥。
本实施例中以成员列表中新增加一个ONU标识为例。
参见图2,图2为本申请实施例中加密传输组播报文的流程示意图。具体步骤为:
步骤201,OLT向成员列表中ONU标识对应的ONU发送加密通知报文,使该ONU接收到该组播组对应的组播报文时,使用加密算法和密钥进行解密。
该加密通知报文中携带针对该组播组配置的加密算法和密钥。
ONU接收到加密通知报文时,解析出该报文携带的加密算法和密钥,在本地进行相关设置,以使接收到该组播报文时使用该加密算法和密钥进行解密。
步骤202,该OLT当需要发送该组播组对应的组播报文时,若确定已接收到该组播组的成员列表中的所有ONU标识对应的ONU发送的组播加密确认报文,则使用配置的加密算法和密钥进行加密并发送。
若确定并非成员列表中所有ONU标识对应的ONU都发送了组播加密确认报文,则在发送组播报文时,不进行加密。
ONU接收到该组播报文时,若该组播报文加密,则使用该组播组对应的加密算法和密钥进行解密。
本申请实施例中,组播LLID通告报文,组播LLID确认报文,组播加密通知报文,以及组播加密确认报文,都可以使用扩展的以太操作、管理和维护(OperationAdministrationandMaintenance,OAM)协议报文实现。
参见图3,图3为本申请实施例中扩展的以太OAM协议报文帧结构。
图3中将Code字段设置为0xFE,表示该报文为扩展的以太OAM协议报文;
Data/Pad字段中OUI标识了公司标号,按照现有方式设置;
PDU_TYPE可以使用EOAM_EVENT,表示OLT和ONU之间的事件通知;
REQ_ID定义了通知的事件类型,使用第一预设值,如0x100,用于标识该以太OAM协议报文为LLID通告报文;使用第二预设值,如0x101,用于标识该以太OAM协议报文为组播LLID确认报文;使用第三预设值,如0x102,用于标识该以太OAM协议报文为加密通知报文;使用第四预设值,如0x103,用于标识该以太OAM协议报文为加密确认报文。
在UserData中承载组播组地址、组播LLID、加密算法、加密密钥等信息。这些扩展的以太OAMPDU报文在OLT和ONU设备之间以单播形式发送和接收,可以使用现有的安全加密通道传输这些协议数据,其它的ONU无法得到组播组的信息。
图3中其它字段现有实现中的OAM协议报文,这里不再一一说明。
在具体实现时,某个ONU由于某种原因,还可能会退出已加入的组播组,即不再接收该组播组对应的组播报文时,会向OLT发送退出该组播组的IGMP退出报文。
该OLT当通过PON物理端口接收到IGMP退出报文时,在该退出报文所对应的组播组的成员列表中删除该退出报文携带的ONU标识;
若该成员列表中该物理端口未对应其它ONU标识,则将该物理端口删除;
若该成员列表中不存在其它ONU标识,则将该组播组的成员列表删除。
下面结合附图,以具体组网实例详细描述本申请实施例中实现组播传输的过程。
参见图4,图4为本申请实施例中PON组网示意图。
图4中,以OLT上的一个PON口1为例,PON口1下面有四个ONU设备,其中ONU1和ONU2是组播组地址225.1.1.1的接收者,ONU3和ONU4不是该组播组地址的接收者,OLT同ONU1和ONU2之间采用加密方式传输组播报文。
OLT在PON口上监控IGMP协议报文。
当OLT接收到ONU1发送的IGMP加入报文时,建立组播组地址225.1.1.1对应的组播组的成员列表,并将该加入报文中携带的ONU1,以及接收该加入报文的PON口1加入建立的成员列表中。
该OLT为该组播组分配全局唯一的组播LLID100,并配置加密算法1和密钥2。
该OLT向ONU1以单播形式发送组播LLID通告报文,在该通告报文中携带组播LLID和组播组地址225.1.1.1。
ONU1接收到OLT发送的组播LLID通告报文,在本地进行配置,使ONU1能够接收组播LLID为100的组播报文,并向OLT发送组播LLID确认报文;该确认报文中携带组播组地址。
该OLT在接收到ONU1发送的组播LLID确认报文时,使用1标记ONU1已能够接收组播组地址为225.1.1.1的报文。
该OLT向ONU1以单播形式发送组播加密通知报文,在该组播加密通知报文中携带组播组地址和加密算法和密钥。
ONU1接收到OLT发送的组播加密通知报文时,解析出该组播报文携带的组播组地址,以及加密算法和密钥,在本地进行配置,使ONU1在接收到组播LLID为100的组播报文,能够进行解密;并向OLT发送组播加密确认报文。
ONU1接收到OLT发送的组播加密确认报文时,使用1标记ONU1已能够对加密后的组播组地址为225.1.1.1的组播报文进行解密。
OLT接收到ONU2发送的IGMP加入报文时,由于本地已经存在组播组地址225.1.1.1对应的成员列表,直接将ONU2和PON口1加入成员列表中,在具体实现时,由于PON口1存在,也可以直接在PON口1下加入ONU标识2。
之后针对ONU2发送组播LLID通告报文和组播加密报文的过程,与针对ONU1的过程类似,这里不再一一描述。
参见表1,表1为本申请实施例中成员列表示意图。
表1
OLT需要发送组播组地址为225.1.1.1的组播报文时,由于该组播组的成员列表中已标识出已接收到ONU1和ONU2发送的组播LLID确认报文,并且已接收到ONU1和ONU2发送的组播LLID组播加密确认报文,则为该组播报文携带组播LLID(100),并且使用配置的加密算法和密钥进行加密,然后通过端口1发送该组播报文。
ONU1接收到该组播报文时,确定该组播报文中携带组播LLID100,则确定处理该组播报文,并使用对应加密方式和密钥进行解密后进行相关处理。
现有实现中,组播报文采用的LLID为广播LLID,此时PON口下的所有ONU,包括ONU1、ONU2、ONU3和ONU4都会接收该组播报文并解析,ONU3和ONU4发现本地没有此组播组地址的接收者,于是丢弃该报文,ONU1和ONU2发现本地存在接收者,将报文转发给本地接收者。
倘若ONU3或者ONU4存在恶意接收的行为,组播报文将被转发到指定的设备上,而按照正常流程,该报文是不应该送到ONU3和ONU4的下挂设备的。
通过本申请实施例提供的技术方案传输组播报文时使用组播LLID,且采用加密方式。组播报文被发送到ONU时,只有ONU1和ONU2识别组播LLID,接收该组播报文并使用正确的密钥解密,根据组播组地址转发报文;
ONU3和ONU4设备无法识别组播LLID,因此不会接收此报文,与此同时若网络中有设备(比如ONU3或者ONU4)恶意接收组播报文,但是组播报文是经过加密处理的,没有密钥仍然无法解密并转发报文。
通过这样方式,能够实现组播报文按照指定设备进行传输,减少了无关ONU接收和解析组播报文,同时在OLT和ONU之间实现了组播数据的安全传输,避免了ONU恶意接收组播数据的问题。
基于同样的发明构思,本申请提出一种组播报文传输装置,应用于EPON中的OLT上。参见图5,图5为本申请实施例中应用于上述技术的装置结构示意图。该装置包括:接收单元501、存储单元502、配置单元503和发送单元504;
接收单元501,用于接收IGMP加入报文;
存储单元502,用于当接收单元501通过PON口接收到IGMP加入报文时,将该加入报文中携带的ONU标识以及该PON口的端口号加入加入报文对应的组播组的成员列表中;
配置单元503,用于为该组播组分配全局唯一的组播LLID;
发送单元504,用于在配置单元503为该组播组配置的组播LLID后,向该ONU标识对应的ONU发送组播LLID通告报文,使该ONU接收该组播LLID对应的组播报文;当需要发送该组播组对应的组播报文时,在该组播报文中携带为该组播组分配的组播LLID,并通过存储单元502中存储的该组播组的成员列表中的端口号对应的PON口发送,使该组播组的成员列表中的ONU标识对应的ONU接收该组播报文。
较佳地,
发送单元504,进一步用于当需要发送该组播组对应的组播报文时,确定是否接收到该组播组的成员列表中的所有ONU标识对应的ONU发送的组播LLID确认报文,如果是,在该组播报文中携带为该组播组分配的组播LLID,并通过该组播组的成员列表中的端口号对应的PON口发送;否则,在该组播报文中携带广播LLID并发送。
较佳地,
组播LLID通告报文,以及组播LLID确认报文为扩展后的以太OAM协议报文;对以太OAM协议报文的扩展包括:在REQ_ID中携带第一预设值,用于标识该以太OAM协议报文为LLID通告报文;在REQ_ID中携带第二预设值,用于标识该以太OAM协议报文为组播LLID确认报文。
较佳地,
配置单元503,进一步用于针对该组播组配置加密算法和密钥;
发送单元504,进一步用于将配置单元503配置的加密算法和密钥向该ONU标识对应的ONU发送组播加密通知报文,使该ONU接收到该组播组对应的组播报文时,使用加密算法和密钥进行解密;该加密通知报文中携带配置的加密算法和密钥;当需要发送该组播组对应的组播报文时,若确定已接收到该组播组的成员列表中的所有ONU标识对应的ONU发送的组播加密确认报文,则使用配置的加密算法和密钥进行加密并发送。
较佳地,
组播加密通知报文,以及组播加密确认报文为扩展后的以太OAM协议报文;对以太OAM协议报文的扩展包括:在REQ_ID中携带第三预设值,用于标识该以太OAM协议报文为加密通知报文;在REQ_ID中携带第四预设值,用于标识该以太OAM协议报文为加密确认报文。
较佳地,
接收单元501,进一步用于接收IGMP退出报文;
存储单元502,进一步用于当接收单元501通过PON口接收到IGMP退出报文时,在该退出报文所对应的组播组的成员列表中删除该退出报文携带的ONU标识;若该成员列表中该PON口未对应其它ONU标识,则将该PON口删除;若该成员列表中不存在其它ONU标识,则将该组播组的成员列表删除。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
综上,本申请通过将接收到的IGMP加入报文中携带的ONU标识,以及接收该加入报文的端口加入组播组的成员列表中,并为该组播组分配组播LLID,在发送该组播报文时,携带该组播LLID,使该组播报文只被组播成员列表中的ONU标识对应的ONU接收。通过该技术方案,实现了ONU按需接收组播报文,进而提高了EPON网络的组播数据的传输性能。
本申请实施例中还提出了对组播报文加密传输的技术方案,实现了组播报文的安全传输,避免了ONU恶意接收组播报文的问题。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。