发明内容
有鉴于此,本发明提供一种实现公网支持数据组播分发树的方法及装置。其可以实现公网和私网运行双向PIM时,利用SDN控制器对网络设备的监控,实现公网支持更为高效的Data-MDT,减少了公网组播流量的不必要洪泛。
一种实现公网支持数据组播分发树的方法,应用于实时监控各骨干网边缘设备PE运行信息的软件定义网络SDN控制器上,且公网和私网均运行双向协议无关组播PIM协议,公网上各PE的数据组播组地址Data-Group资源池配置一致。方法的步骤为:
建立Data-Group资源池数据库,Data-Group资源池数据库包括Data-Group字段及关联私网字段,Data-Group字段中存储各PE支持的数据组播组地址,关联私网字段用于存储已关联数据组播分发树Data-MDT的私网组播组信息。
如接收到PE发起的从共享组播分发树Default-MDT到DATA-MDT的切换请求,则判断Data-Group资源池数据库中是否存在切换请求携带的私网组播组信息。
如Data-Group资源池数据库不存在切换请求携带的私网组播组信息,则从Data-Group资源池数据库中分配空闲的Data-Group给发送切换请求的PE,并将切换请求携带的私网组播组信息更新到所分配的Data-Group对应的关联私网字段中。
如Data-Group资源池数据库存在切换请求携带的私网组播组信息,则复用切换请求携带的私网组播组信息对应的Data-Group。
进一步地,从Data-Group资源池数据库中分配空闲的Data-Group给发送切换请求的PE,具体为:
将从Data-Group资源池数据库中分配的空闲的Data-Group发送给发出切换请求的PE,并将发出切换请求的PE选为所分配的Data-Group对应的DATA-MDT加入消息的定期发送者。
复用切换请求携带的私网组播组信息对应的Data-Group,具体为:
将Data-Group资源池数据库中切换请求携带的私网组播组信息对应的Data-Group发送给发出切换请求的PE,并维持该Data-Group对应的DATA-MDT加入消息的定期发送者不变。
进一步地,如接收到PE发起的从DATA-MDT切换回Default-MDT的请求,判断PE是否为DATA-MDT加入消息的定期发送者。
如果PE为DATA-MDT加入消息的定期发送者,则更换使用同一Data-Group的其他PE作为加入消息的定期发送者。
进一步地,Data-Group资源池数据库还包括记录Data-Group被引用次数的状态字段。
方法还包括步骤:
接收PE发送的Data-Group释放请求,并在接收到Data-Group释放请求时,对Data-Group释放请求中携带的Data-Group对应的状态字段执行减一操作,当判断到Data-Group已不存在使用者时,回收Data-Group资源。
一种实现公网支持数据组播分发树的方法,应用于被软件定义网络SDN控制器实时监控其运行信息的中的骨干网边缘设备PE上,且公网和私网均运行双向协议无关组播PIM协议,公网上各PE的数据组播组地址Data-Group资源池配置一致。方法的步骤为:
通知SDN控制器PE支持的Data-Group资源池信息。
当PE满足从共享组播分发树Default-MDT向Data-MDT的切换条件时,向SDN发起切换请求以申请Data-Group资源,切换请求中携带私网组播组信息。
如SDN控制器反馈不存在和切换请求中携带的私网组播组信息关联的Data-Group,则PE使用SDN控制器分配的空闲的Data-Group,并启用与所分配的Data-Group对应的Data-MDT进行组播数据转发。
如SDN控制器反馈存在和切换请求中携带私网组播组信息关联的Data-Group,则复用SDN控制器反馈的Data-Group对应的Data-MDT进行组播数据转发。
进一步地,启用与所分配的Data-Group对应的Data-MDT进行组播数据转发,具体为:
PE根据SDN控制器指示,作为所分配的Data-Group对应的Data-MDT加入消息的定期发送者,向公网发送对应的Data-MDT加入消息,以启用对应的Data-MDT,并使用所分配的Data-Group对待转发的组播数据进行公网封装后沿对应的DATA-MDT进行转发。
复用SDN控制器反馈的Data-Group对应的Data-MDT进行组播数据转发,具体为:
使用SDN控制器反馈的Data-Group对待转发的组播数据进行公网封装后,沿对应的Data-MDT进行组播数据转发。
进一步地,方法还包括:
如PE满足从DATA-MDT向Default-MDT的切换条件,则发送Data-Group释放请求给SDN控制器,指示SDN控制器释放Data-Group资源。
一种实现公网支持数据组播分发树的装置,应用于实时监控各骨干网边缘设备PE运行信息的软件定义网络SDN控制器上,且公网和私网均运行双向协议无关组播PIM协议,公网上各PE的数据组播组地址Data-Group资源池配置一致。装置包括:
数据库建立单元,用于建立Data-Group资源池数据库,Data-Group资源池数据库包括Data-Group字段及关联私网字段,Data-Group字段中存储各PE支持的数据组播组地址,关联私网字段用于存储已关联数据组播分发树Data-MDT的私网组播组信息。
信息判断单元,用于当接收到PE发起的从共享组播分发树Default-MDT到DATA-MDT的切换请求,判断Data-Group资源池数据库中是否存在切换请求携带的私网组播组信息。
MDT控制单元,用于当Data-Group资源池数据库不存在切换请求携带的私网组播组信息,从Data-Group资源池数据库中分配空闲的Data-Group给发送切换请求的PE,并指令数据库维护单元将切换请求携带的私网组播组信息更新到所分配的Data-Group对应的关联私网字段中;以及用于当Data-Group资源池数据库存在切换请求携带的私网组播组信息,复用切换请求携带的私网组播组信息对应的Data-Group。
数据库维护单元,用于根据MDT控制单元的指令维护Data-Group资源池数据库。
进一步地,MDT控制单元具体包括:
选配模块,用于在Data-Group资源池数据库不存切换请求携带的私网组播组信息时,从Data-Group资源池数据库中分配空闲的Data-Group给发送切换请求的PE,将所分配的空闲的Data-Group发送给发送切换请求的PE,并将发出切换请求的PE选为所分配的Data-Group对应的DATA-MDT加入消息的定期发送者。
复用模块,用于在Data-Group资源池数据库存在切换请求携带的私网组播组信息时,将Data-Group资源池数据库中切换请求携带的私网组播组信息对应的Data-Group分配给发送切换请求的PE,并维持该Data-Group对应的DATA-MDT加入消息的定期发送者不变。
进一步地,本发明装置还包括:
发送者判断单元,用于在接收到PE发起的从DATA-MDT切换回Default-MDT的请求,判断PE是否为DATA-MDT加入消息的定期发送者。
发送者更换单元,用于在如果PE为DATA-MDT加入消息的定期发送者,则更换使用同一Data-Group的其他PE作为加入消息的定期发送者。
进一步地,Data-Group资源池数据库还包括记录Data-Group被引用次数的状态字段。
MDT控制单元还用于接收PE发送的Data-Group释放请求,并在接收到Data-Group释放请求时,指令数据库维护单元对Data-Group释放请求中携带的Data-Group对应的状态字段执行减一操作,当判断到Data-Group已不存在使用者时,回收Data-Group资源。
一种实现公网支持数据组播分发树的装置,应用于被软件定义网络SDN控制器实时监控其运行信息的中的骨干网边缘设备PE上,且公网和私网均运行双向协议无关组播PIM协议,公网上各PE的数据组播组地址Data-Group资源池配置一致。装置包括:
信息通知单元,用于通知SDN控制器PE支持的Data-Group资源池信息。
资源请求单元,用于当PE满足从共享组播分发树Default-MDT向Data-MDT的切换条件时,向SDN发起切换请求以申请Data-Group资源,切换请求中携带私网组播组信息。
资源分配单元,用于在SDN控制器反馈不存在和切换请求中携带的私网组播组信息关联的Data-Group,则PE使用SDN控制器分配的空闲的Data-Group,并启用与所分配的Data-Group对应的Data-MDT进行组播数据转发。
资源复用单元,如SDN控制器反馈存在和切换请求中携带私网组播组信息关联的Data-Group,则复用SDN控制器反馈的Data-Group对应的Data-MDT进行组播数据转发。
进一步地,资源分配单元具体包括:
消息发送模块,用于在SDN控制器反馈不存在和切换请求中携带的私网组播组信息关联的Data-Group,将PE作为所分配的Data-Group对应的Data-MDT加入消息的定期发送者,向公网发送对应的Data-MDT加入消息,以启用对应的Data-MDT。
数据转发模块,用于使用所分配的Data-Group对待转发的组播数据进行公网封装后沿对应的DATA-MDT进行转发。
资源复用单元具体为:
如SDN控制器反馈存在和切换请求中携带私网组播组信息关联的Data-Group,使用SDN控制器反馈的Data-Group对待转发的组播数据进行公网封装后,沿对应的Data-MDT进行组播数据转发。
进一步地,装置还进一步包括资源释放单元:
用于当PE满足从DATA-MDT向Default-MDT的切换条件时,发送Data-Group释放请求给SDN控制器,指示SDN控制器释放Data-Group资源。
本发明利用SDN控制器能实时获取整个网络的网络设备情况的特点,由SDN控制器对各PE进行Data-Group的分配。公网和私网运行双向PIM时,PE发起Data-MDT切换,SDN控制器对具有相同的私网组播组信息的不同的PE,复用同一个Data-Group,选择相同的Data-Group组地址进行封装。这样,接收者所在的PE只收到了一份Data-MDT切换请求,并且非常明确地知道通过加入该Data-MDT来接收对应私网组播流量。从而确保公网和私网运行双向PIM时,公网可以支持更为高效的Data-MDT,减少了公网和私网运行双向PIM时公网组播流量的不必要洪泛。
具体实施方式
现有的SDN网络架构中,SDN控制器与所有的网络设备建立连接,能够实时的获取所有网络设备的状态,资源、协议运行情况等信息,并下发控制命令控制网路设备的表项的增删、进行业务配置和流量优化与监测等。总之SDN控制器能与各网路设备保持连接,实时的获取网络设备的状态,对网络设备进行控制。
为了实现本发明目的,本发明利用SDN控制器对各PE进行Data-Group的分配。公网和私网运行双向PIM时,PE发起Data-MDT切换,SDN控制器对具有相同的私网组播组信息的不同的PE,复用同一个Data-Group,选择相同的Data-Group组地址进行封装。这样,接收者所在的PE只收到了一份Data-MDT切换消息,并且非常明确地知道通过加入该Data-MDT来接收对应私网组播流量。从而确保公网和私网运行双向PIM时,公网可以支持更为高效的Data-MDT,减少了公网和私网运行双向PIM时公网组播流量的不必要洪泛。
参看图2,具体地,本发明提供一种实现公网支持数据组播分发树的方法,应用于实时监控各骨干网边缘设备PE运行信息的软件定义网络SDN控制器上,且公网和私网均运行双向协议无关组播PIM协议,公网上各PE的数据组播组地址Data-Group资源池配置一致。方法的步骤为:
201、建立Data-Group资源池数据库,Data-Group资源池数据库包括Data-Group字段及关联私网字段,Data-Group字段中存储各PE支持的数据组播组地址,关联私网字段用于存储已关联数据组播分发树Data-MDT的私网组播组信息。
202、如接收到PE发起的从共享组播分发树Default-MDT到DATA-MDT的切换请求,则判断Data-Group资源池数据库中是否存在切换请求携带的私网组播组信息。
203、如Data-Group资源池数据库不存在切换请求携带的私网组播组信息,则从Data-Group资源池数据库中分配空闲的Data-Group给发送切换请求的PE,并将切换请求携带的私网组播组信息更新到所分配的Data-Group对应的关联私网字段中。
204、如Data-Group资源池数据库存在切换请求携带的私网组播组信息,则复用切换请求携带的私网组播组信息对应的Data-Group。
本发明在公网和私网运行双向PIM时,如果PE发起Data-MDT切换,SDN控制器通过查询Data-Group资源池数据库是否存在相同的关联私网组播组信息来判断是否之前有其它PE已经就同一私网组播流发起过DATA-MDT切换。如果存在,则发出切换请求的PE复用同一个Data-Group;如果不存在,则分配空闲的Data-Group。本发明避免了重复建立Data-MDT造成的接收者所在的PE无法判断加入哪个Data-MDT以接收对应私网组播流量的问题。
步骤203中的从Data-Group资源池数据库中分配空闲的Data-Group给发送切换请求的PE,具体为:
将从Data-Group资源池数据库中分配的空闲的Data-Group发送给发出切换请求的PE,并将发出切换请求的PE选为所分配的Data-Group对应的DATA-MDT加入消息的定期发送者。
所分配的空闲的Data-Group对应的DATA-MDT可能已经预先建立,也可能在分配空闲的Data-Group后,通过DATA-MDT加入消息触发建立Data-Group对应的DATA-MDT,本发明不做限定。
步骤204中的复用切换请求携带的私网组播组信息对应的Data-Group,具体为:
将Data-Group资源池数据库中切换请求携带的私网组播组信息对应的Data-Group发送给发出切换请求的PE,并维持该Data-Group对应的DATA-MDT加入消息的定期发送者不变。
通知PE使用已存在的相同关联私网表项字段的Data-Group封装后,按现有DATA-MDT进行转发,并不建立新的DATA-MDT。PE不用通知接收者PE加入到对应的DATA-MDT,因为此前有其它PE已经建立好相应的DATA-MDT,不用更换原有的加入消息的定期发送者。这样,接收者所在的PE就不会重复收到不同的PE发送的DATA-MDT加入消息,也就不会发生无法确定加入哪个DATA-MDT的问题。
另外,本发明方法还包括以下步骤:
301、如接收到PE发起的从DATA-MDT切换回Default-MDT的请求,判断PE是否为DATA-MDT加入消息的定期发送者。
302、如果PE为DATA-MDT加入消息的定期发送者,则更换使用同一Data-Group的其他PE作为加入消息的定期发送者。
由于有多个私网组播组信息相同的PE共用同一个DATA-MDT,当有PE要从DATA-MDT切换回Default-MDT时,需要判断PE是否为加入消息的定期发送者,如果是的话,需要重新选择使用同一Data-Group的另外的PE作为DATA-MDT加入消息的定期发送者。如果PE并不是加入消息的定期发送者,则直接完成从DATA-MDT切换回Default-MDT即可。
此外,Data-Group资源池数据库还包括记录Data-Group被引用次数的状态字段。
方法还包括步骤:
304、接收PE发送的Data-Group释放请求,并在接收到Data-Group释放请求时,对Data-Group释放请求中携带的Data-Group对应的状态字段执行减一操作,当判断到Data-Group已不存在使用者时,回收Data-Group资源。
参看图3,本发明提供一种实现公网支持Data-Group播分发树的装置,应用于实时监控各骨干网边缘设备PE运行信息的软件定义网络SDN控制器上,且公网和私网均运行双向协议无关组播PIM协议,公网上各PE的数据组播组地址Data-Group资源池配置一致。本发明装置在逻辑上包括:
数据库建立单元,用于建立Data-Group资源池数据库,Data-Group资源池数据库包括Data-Group字段及关联私网字段,Data-Group字段中存储各PE支持的数据组播组地址,关联私网字段用于存储已关联数据组播分发树Data-MDT的私网组播组信息。
信息判断单元,用于当接收到PE发起的从共享组播分发树Default-MDT到DATA-MDT的切换请求,判断Data-Group资源池数据库中是否存在切换请求携带的私网组播组信息。
MDT控制单元,用于当Data-Group资源池数据库不存在切换请求携带的私网组播组信息,从Data-Group资源池数据库中分配空闲的Data-Group给发送切换请求的PE,并指令数据库维护单元将切换请求携带的私网组播组信息更新到所分配的Data-Group对应的关联私网字段中;以及用于当Data-Group资源池数据库存在切换请求携带的私网组播组信息,复用切换请求携带的私网组播组信息对应的Data-Group。
数据库维护单元,用于根据MDT控制单元的指令维护Data-Group资源池数据库。
MDT控制单元具体包括:
选配模块,用于在Data-Group资源池数据库不存切换请求携带的私网组播组信息时,从Data-Group资源池数据库中分配空闲的Data-Group给发送切换请求的PE,将所分配的空闲的Data-Group发送给发送切换请求的PE,并将发出切换请求的PE选为所分配的Data-Group对应的DATA-MDT加入消息的定期发送者。
复用模块,用于在Data-Group资源池数据库存在切换请求携带的私网组播组信息时,将Data-Group资源池数据库中切换请求携带的私网组播组信息对应的Data-Group分配给发送切换请求的PE,并维持该Data-Group对应的DATA-MDT加入消息的定期发送者不变。
本实施例装置还包括:
发送者判断单元,用于在接收到PE发起的从DATA-MDT切换回Default-MDT的请求,判断PE是否为DATA-MDT加入消息的定期发送者。
发送者更换单元,用于在如果PE为DATA-MDT加入消息的定期发送者,则更换使用同一Data-Group的其他PE作为加入消息的定期发送者。
Data-Group资源池数据库还包括记录Data-Group被引用次数的状态字段。
MDT控制单元还用于接收PE发送的Data-Group释放请求,并在接收到Data-Group释放请求时,指令数据库维护单元对Data-Group释放请求中携带的Data-Group对应的状态字段执行减一操作,当判断到Data-Group已不存在使用者时,回收Data-Group资源。
参看图4,具体地,本发明还提供一种实现公网支持数据组播分发树的方法,应用于被软件定义网络SDN控制器实时监控其运行信息的中的骨干网边缘设备PE上,且公网和私网均运行双向协议无关组播PIM协议,公网上各PE的数据组播组地址Data-Group资源池配置一致。方法的步骤为:
401、通知SDN控制器PE支持的Data-Group资源池信息。
402、当PE满足从共享组播分发树Default-MDT向Data-MDT的切换条件时,向SDN发起切换请求以申请Data-Group资源,切换请求中携带私网组播组信息。
403、如SDN控制器反馈不存在和切换请求中携带的私网组播组信息关联的Data-Group,则PE使用SDN控制器分配的空闲的Data-Group,并启用与所分配的Data-Group对应的Data-MDT进行组播数据转发。
404、如SDN控制器反馈存在和切换请求中携带私网组播组信息关联的Data-Group,则复用SDN控制器反馈的Data-Group对应的Data-MDT进行组播数据转发。
步骤403中启用与所分配的Data-Group对应的Data-MDT Data-MDT进行组播数据转发,具体为:
PE根据SDN控制器指示,作为所分配的Data-Group对应的Data-MDT加入消息的定期发送者,向公网发送对应的Data-MDT加入消息,以启用对应的Data-MDT,并使用所分配的Data-Group对待转发的组播数据进行公网封装后沿对应的DATA-MDT进行转发。
步骤404中复用SDN控制器反馈的Data-Group对应的Data-MDT进行组播数据转发,具体为:
使用SDN控制器反馈的Data-Group对待转发的组播数据进行公网封装后,沿对应的Data-MDT进行组播数据转发。
另外,本发明方法还包括步骤:
如PE满足从DATA-MDT向Default-MDT的切换条件,则发送Data-Group释放请求给SDN控制器,指示SDN控制器该PE将切换到Default-MDT,即该PE将释放所述DATA-MDT对应的Data-Group资源。
参看图5,本发明还提供一种辅助实现公网支持Data-Group播分发树的装置,应用于被软件定义网络SDN控制器实时监控其运行信息的中的骨干网边缘设备PE上,且公网和私网均运行双向协议无关组播PIM协议,公网上各PE的数据组播组地址Data-Group资源池配置一致。PE通常为交换机或者路由器,其基本硬件架构包括CPU、内存、输入输入设备、单独的报文转发芯片以及其他硬件。本发明装置在逻辑上包括:
信息通知单元,用于通知SDN控制器PE支持的Data-Group资源池信息。
资源请求单元,用于当PE满足从共享组播分发树Default-MDT向Data-MDT的切换条件时,向SDN发起切换请求以申请Data-Group资源,切换请求中携带私网组播组信息。
资源分配单元,用于在SDN控制器反馈不存在和切换请求中携带的私网组播组信息关联的Data-Group,则PE使用SDN控制器分配的空闲的Data-Group,并启用与所分配的Data-Group对应的Data-MDT进行组播数据转发。
资源复用单元,如SDN控制器反馈存在和切换请求中携带私网组播组信息关联的Data-Group,则复用SDN控制器反馈的Data-Group对应的Data-MDT进行组播数据转发。
资源分配单元具体包括:
消息发送模块,用于在SDN控制器反馈不存在和切换请求中携带的私网组播组信息关联的Data-Group,将PE作为所分配的Data-Group对应的Data-MDT加入消息的定期发送者,向公网发送对应的Data-MDT加入消息,以启用对应的Data-MDT。
数据转发模块,用于使用所分配的Data-Group对待转发的组播数据进行公网封装后沿对应的DATA-MDT进行转发。
资源复用单元具体包括:
如SDN控制器反馈存在和切换请求中携带私网组播组信息关联的Data-Group,使用SDN控制器反馈的Data-Group对待转发的组播数据进行公网封装后,沿对应的Data-MDT进行组播数据转发。
本实施例装置还进一步包括资源释放单元:
用于当PE满足从DATA-MDT向Default-MDT的切换条件时,发送Data-Group释放请求给SDN控制器,指示SDN控制器释放Data-Group资源。
参看图6,下面用一个具体实施例的传输情况说明本发明的基本原理。
假定Server1发送(S,G)为(1.1.1.1,225.0.0.1),虚拟专用网VPN=1的私网组播流。Server2发送(S,G)为(1.1.2.1,225.0.0.1),虚拟专用网VPN=1的私网组播流。PE1上的Default-Group配置为(2.1.1.1,226.0.0.1),Data-Group地址池的配置为(226.0.0.2-226.0.0.3),PE2上的Default-Group配置为(2.2.1.1,226.0.0.1),Data-Group地址池的配置为(226.0.0.2-226.0.0.3)。私网和公网都配置成运行双向PIM协议。
本发明中所有PE向SDN控制器通知了上述各PE支持的Data-Group资源池信息,SDN控制器接收各PE的Data-Group资源池信息,维护PE支持的Data-Group资源池信息并建立Data-Group资源池数据库。Data-Group资源池数据库如表一所示。
表一
初始时,Server1和Server2发送私网组播流,首先使用的是Default-MDT。随后,Server1所在的PE1满足从Default-MDT向Data-MDT的切换条件,PE1发起的DATA-MDT切换请求,发送私网组播组信息(VPN,C-S,C-G)为(1,*,225.0.0.1)给SDN控制器,申请Data-Group资源。SDN控制器判断Data-Group资源池数据库是否存在Data-Group对应的私网组播组信息为(1,*,225.0.0.1)。表一不存在私网组播组信息为(1,*,225.0.0.1)的Data-Group,则分配空闲的Data-Group(226.0.0.2)给PE1,建立新的DATA-MDT。Data-Group资源池数据库更新如表二所示。
表二
然后,Server2所在的PE2也满足从Default-MDT向Data-MDT的切换条件,发起的DATA-MDT切换请求,于是PE2向SDN控制器申请Data-Group,发送的私网组播组信息(VPN,C-S,C-G)为(1,*,225.0.0.1)。SDN控制器判断Data-Group资源池数据库是否存在私网组播组信息为(1,*,225.0.0.1)的Data-Group。表二存在私网组播组信息(1,*,225.0.0.1)的Data-Group,则表示已经有其它PE对关联私网表项字段发起Data-MDT切换了,于是对组播流进行封装后转发到公网,同时PE2不用向其它PE定期发送Data-MDT加入消息。Data-Group资源池数据库更新如表三所示。
表三
显然,从不同PE进入的为同一条关联私网(VPN,*,G)服务的公网MDT使用相同的Data-Group封装,是同一个Data-MDT,接收者所在的PE3只收到了一份Data-MDT切换消息,并且非常明确地知道通过加入(0,*,226.0.0.2)接收对应私网组播流。
一段时间后,Server1所在的PE1满足从Data-MDT切换到Default-MDT的条件,于是先向SDN控制器申请更换Data-MDT加入消息的定期发送者的角色。SDN控制器根据Data-Group资源池数据库判断PE1是DATA-MDT加入消息的定期发送者,SDN控制器重新选择PE2作为加入消息的定期发送者,于是DATA-MDT得以维持。然后PE1向SDN控制器发起Data-Group释放请求,SND控制器根据Data-Group资源池数据库发现还有使用者PE2,于是不释放该Data-Group资源,而只是更新表项状态。PE1只需要切换回使用Default-Group进行公网封装既可,并不需要他特殊处理。同时由于PE3始终在Default-MDT中,因此收到PE1上通过Default-MDT过来的组播流继续转发私网,并不会发生任何问题。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。