CN104796340B - 一种组播数据传输方法和设备 - Google Patents
一种组播数据传输方法和设备 Download PDFInfo
- Publication number
- CN104796340B CN104796340B CN201410029674.4A CN201410029674A CN104796340B CN 104796340 B CN104796340 B CN 104796340B CN 201410029674 A CN201410029674 A CN 201410029674A CN 104796340 B CN104796340 B CN 104796340B
- Authority
- CN
- China
- Prior art keywords
- multicast
- openflow
- network equipment
- openflow network
- flow entry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种组播数据传输方法和设备,该方法包括:OpenFlow控制器接收第一OpenFlow网络设备上送的组播数据,并从所述组播数据中解析出组播目的地址;在所述OpenFlow控制器上没有维护所述组播目的地址对应的组播表项时,所述OpenFlow控制器创建所述组播目的地址对应的组播表项;所述OpenFlow控制器向所述第一OpenFlow网络设备发送携带所述组播目的地址的第一流表项,且所述第一流表项用于指示所述第一OpenFlow网络设备丢弃收到的目的IP地址为所述组播目的地址的组播数据。本发明实施例中,可以避免第一OpenFlow网络设备将所有组播数据转发到OpenFlow控制器,提高OpenFlow控制器的处理性能。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种组播数据传输方法和设备。
背景技术
OpenFlow作为新型网络交换模型,是SDN(Software Defined Network,软件定义网络)架构中定义的一个控制器与转发层之间的通信接口标准,其基本思想具体为:分离控制平面和数据平面,二者之间使用标准协议通信,且数据平面采用基于流的方式进行转发。如图1所示,为OpenFlow网络的组网示意图,在OpenFlow网络中,具体包括OpenFlow网络设备(如OpenFlow交换机)、OpenFlow控制器(OpenFlow Controller)以及OpenFlow通道等。
其中,OpenFlow通道位于OpenFlow网络设备和OpenFlow控制器之间,通过预先配置的安全通道(基于SSL(Secure Sockets Layer,安全套接层))进行安全通信。OpenFlow控制器为OpenFlow网络的控制中心,其可能运行实验程序或第三方开发软件,并用于对流表进行操作,根据用户配置或者动态运行协议生成流表,并将流表发送到OpenFlow网络设备。OpenFlow网络设备用于接收OpenFlow控制器下发的流表,并根据流表指导报文处理;其中,流表中包含一系列用于匹配报文的流表项,对于进入OpenFlow网络设备的报文需要进行流表项的匹配;如果匹配成功则进行相应动作处理,如转发到多个端口或者丢弃;如果匹配不成功则通过OpenFlow通道转发到OpenFlow控制器,由OpenFlow控制器进行处理;另一方面,OpenFlow网络设备主动向OpenFlow控制器上报自身的状态和事件,如端口UP(正常)/DOWN(故障)。
例如,OpenFlow控制器在OpenFlow网络设备上创建流表项如下:[目的IP5.6.7.8,转发至port1];基于此流表项,OpenFlow网络设备在收到目的IP地址为5.6.7.8的数据流量时,能够匹配到上述流表项,并将数据流量转发至port1。
现有技术中,对于组播数据,OpenFlow控制器会在OpenFlow网络设备上创建流表项,该流表项中存在组播源设备相关信息以及接收者设备相关信息,在没有接收者设备相关信息的情况下,OpenFlow控制器不会在OpenFlow网络设备上下发流表项,此时,OpenFlow网络设备在收到组播数据时,无法匹配到对应的流表项,OpenFlow网络设备需要通过OpenFlow通道将收到的组播数据均转发到OpenFlow控制器,所有组播数据均转发到OpenFlow控制器进行处理,对OpenFlow控制器造成较大的冲击,降低了OpenFlow控制器的处理性能。
发明内容
本发明实施例提供一种组播数据传输方法和设备,以避免将所有的组播数据均转发到OpenFlow控制器进行处理,提高OpenFlow控制器的处理性能。
为了达到上述目的,本发明实施例提供一种组播数据传输方法,应用于包括OpenFlow控制器、OpenFlow网络设备、组播源设备以及接收者设备的网络中,所述方法包括:所述OpenFlow控制器接收第一OpenFlow网络设备上送的组播数据,并从所述组播数据中解析出组播目的地址,其中,所述第一OpenFlow网络设备从与其对应的组播源设备接收所述组播数据;在所述OpenFlow控制器上没有维护所述组播目的地址对应的组播表项时,所述OpenFlow控制器创建所述组播目的地址对应的组播表项;所述OpenFlow控制器向所述第一OpenFlow网络设备发送携带所述组播目的地址的第一流表项,且所述第一流表项用于指示所述第一OpenFlow网络设备丢弃收到的目的IP地址为所述组播目的地址的组播数据。
所述OpenFlow控制器接收第一OpenFlow网络设备上送的组播数据之前,所述方法还包括:所述OpenFlow控制器向所述组播源设备对应的第一OpenFlow网络设备发送第二流表项;其中,所述第一流表项的优先级高于所述第二流表项的优先级,且所述第二流表项用于指示所述第一OpenFlow网络设备将目的IP地址为组播地址的组播数据发送给所述OpenFlow控制器。
所述OpenFlow控制器创建所述组播目的地址对应的组播表项的过程,具体包括:OpenFlow控制器将所述第一OpenFlow网络设备收到所述组播数据的端口作为第一入端口,并利用所述组播目的地址、第一OpenFlow网络设备和第一入端口创建所述组播目的地址对应的组播表项;其中,所述组播表项中记录的内容包括所述第一OpenFlow网络设备、组播目的地址、第一入端口。
所述方法进一步包括:所述OpenFlow控制器为所述组播表项启动第一老化定时器;在所述第一老化定时器超时之前的预设时间时,所述OpenFlow控制器向所述第一OpenFlow网络设备发送携带所述组播目的地址的第三流表项;其中,所述第三流表项的优先级高于所述第一流表项的优先级,且所述第三流表项用于指示所述第一OpenFlow网络设备将收到的目的IP地址为所述组播目的地址的组播数据发送给所述OpenFlow控制器;在所述第一老化定时器超时之前,如果所述OpenFlow控制器收到目的IP地址为所述组播目的地址的组播数据,所述OpenFlow控制器刷新所述组播数据对应的组播表项的第一老化定时器的老化时间,并指示所述第一OpenFlow网络设备清除所述第三流表项;在所述第一老化定时器超时时,所述OpenFlow控制器删除所述第一老化定时器对应的所述组播表项。
所述方法进一步包括:所述OpenFlow控制器向所述接收者设备对应的第二OpenFlow网络设备发送第四流表项以及第五流表项;其中,所述第四流表项用于指示所述第二OpenFlow网络设备向所述接收者设备发送Internet组管理协议IGMP通用查询报文,所述第五流表项用于指示所述第二OpenFlow网络设备将来自所述接收者设备的IGMP加入报文发送给所述OpenFlow控制器;所述OpenFlow控制器接收来自所述第二OpenFlow网络设备的IGMP加入报文,从所述IGMP加入报文中解析出所述接收者设备请求加入的组播目的地址,并将所述第二OpenFlow网络设备收到所述IGMP加入报文的端口作为第二入端口,并利用所述组播目的地址、第二OpenFlow网络设备和第二入端口创建所述组播目的地址对应的组播加入表项;其中,所述组播加入表项中记录的内容包括所述第二OpenFlow网络设备、组播目的地址、第二入端口。
所述方法进一步包括:所述OpenFlow控制器为所述组播加入表项启动第二老化定时器,且所述OpenFlow控制器为所述第四流表项启动周期发送定时器;在所述周期发送定时器超时时,所述OpenFlow控制器重新向所述第二OpenFlow网络设备发送第四流表项,并重新启动所述周期发送定时器;在所述第二老化定时器超时之前,如果所述OpenFlow控制器收到用于请求加入所述组播目的地址的IGMP加入报文,则所述OpenFlow控制器刷新所述IGMP加入报文对应的组播加入表项的第二老化定时器的老化时间;在所述第二老化定时器超时时,所述OpenFlow控制器删除所述第二老化定时器对应的所述组播加入表项。
所述方法进一步包括:所述OpenFlow控制器根据所述组播表项和组播加入表项,获得所述组播源设备发送组播数据到所述接收者设备的转发路径,确定所述转发路径中各OpenFlow网络设备,向所述转发路径中的各OpenFlow网络设备下发对应的流表项,以指导各OpenFlow网络设备基于相应的流表项对所述组播数据进行转发。
所述OpenFlow控制器获得所述组播源设备发送组播数据到所述接收者设备的转发路径,具体包括:所述OpenFlow控制器利用所述组播表项和组播加入表项生成组播转发表项,所述组播转发表项包括组播目的地址、第一OpenFlow网络设备、第一入端口、第二OpenFlow网络设备、第二入端口、所述第一OpenFlow网络设备与第二OpenFlow网络设备之间经过的各OpenFlow网络设备以及端口;所述OpenFlow控制器利用所述组播转发表项获得所述组播源设备发送组播数据到所述接收者设备的转发路径。
本发明实施例提供一种OpenFlow控制器,应用于包括所述OpenFlow控制器、OpenFlow网络设备、组播源设备以及接收者设备的网络中,其特征在于,所述OpenFlow控制器具体包括:接收模块,用于接收第一OpenFlow网络设备上送的组播数据,其中,所述第一OpenFlow网络设备从与其对应的组播源设备接收所述组播数据;维护模块,用于从所述组播数据中解析出组播目的地址,并在本OpenFlow控制器上没有维护所述组播目的地址对应的组播表项时,创建所述组播目的地址对应的组播表项;发送模块,用于向所述第一OpenFlow网络设备发送携带所述组播目的地址的第一流表项,且所述第一流表项用于指示所述第一OpenFlow网络设备丢弃收到的目的IP地址为所述组播目的地址的组播数据。
所述发送模块,还用于向所述组播源设备对应的第一OpenFlow网络设备发送第二流表项;其中,所述第一流表项的优先级高于所述第二流表项的优先级,且所述第二流表项用于指示所述第一OpenFlow网络设备将目的IP地址为组播地址的组播数据发送给所述OpenFlow控制器。
所述维护模块,具体用于将第一OpenFlow网络设备收到所述组播数据的端口作为第一入端口,并利用所述组播目的地址、第一OpenFlow网络设备和第一入端口创建所述组播目的地址对应的组播表项;其中,所述组播表项中记录的内容包括所述第一OpenFlow网络设备、组播目的地址、第一入端口。
所述维护模块,进一步用于为所述组播表项启动第一老化定时器;在所述第一老化定时器超时之前,如果收到目的IP地址为所述组播目的地址的组播数据,则刷新所述组播数据对应的组播表项的第一老化定时器的老化时间,并指示所述第一OpenFlow网络设备清除所述第三流表项;在所述第一老化定时器超时时,删除所述第一老化定时器对应的所述组播表项;所述发送模块,还用于在所述第一老化定时器超时之前的预设时间时,向所述第一OpenFlow网络设备发送携带所述组播目的地址的第三流表项;其中,所述第三流表项的优先级高于所述第一流表项的优先级,且所述第三流表项用于指示所述第一OpenFlow网络设备将收到的目的IP地址为所述组播目的地址的组播数据发送给所述OpenFlow控制器。
所述发送模块,还用于向所述接收者设备对应的第二OpenFlow网络设备发送第四流表项以及第五流表项;其中,所述第四流表项用于指示所述第二OpenFlow网络设备向所述接收者设备发送Internet组管理协议IGMP通用查询报文,所述第五流表项用于指示所述第二OpenFlow网络设备将来自所述接收者设备的IGMP加入报文发送给所述OpenFlow控制器;所述接收模块,还用于接收来自所述第二OpenFlow网络设备的IGMP加入报文,所述IGMP加入报文中携带了接收者设备请求加入的组播目的地址;所述维护模块,还用于从所述IGMP加入报文中解析出所述接收者设备请求加入的组播目的地址,并将所述第二OpenFlow网络设备收到所述IGMP加入报文的端口作为第二入端口,并利用所述组播目的地址、第二OpenFlow网络设备和第二入端口创建所述组播目的地址对应的组播加入表项;其中,所述组播加入表项中记录的内容包括所述第二OpenFlow网络设备、组播目的地址、第二入端口。
所述维护模块,进一步用于为所述组播加入表项启动第二老化定时器,且为所述第四流表项启动周期发送定时器;所述发送模块,还用于在所述周期发送定时器超时时,重新向所述第二OpenFlow网络设备发送第四流表项,并重新启动所述周期发送定时器;所述维护模块,进一步用于在所述第二老化定时器超时之前,如果收到用于请求加入所述组播目的地址的IGMP加入报文,则刷新所述IGMP加入报文对应的组播加入表项的第二老化定时器的老化时间;在所述第二老化定时器超时时,删除所述第二老化定时器对应的所述组播加入表项。
所述发送模块,还用于根据所述组播表项和组播加入表项,获得所述组播源设备发送组播数据到所述接收者设备的转发路径,确定所述转发路径中各OpenFlow网络设备,向所述转发路径中的各OpenFlow网络设备下发对应的流表项,以指导各OpenFlow网络设备基于相应的流表项对所述组播数据进行转发。
所述维护模块,还用于利用所述组播表项和组播加入表项生成组播转发表项,所述组播转发表项包括组播目的地址、第一OpenFlow网络设备、第一入端口、第二OpenFlow网络设备、第二入端口、所述第一OpenFlow网络设备与第二OpenFlow网络设备之间经过的各OpenFlow网络设备以及端口;
所述发送模块,进一步用于利用所述组播转发表项获得所述组播源设备发送组播数据到所述接收者设备的转发路径,并向所述转发路径中的各OpenFlow网络设备下发对应的流表项,以指导各OpenFlow网络设备基于相应的流表项对所述组播数据进行转发。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,在没有接收者设备相关信息的情况下,OpenFlow控制器能够生成组播源设备发送的组播数据中携带的组播目的地址对应的组播表项,并向组播源设备对应的第一OpenFlow网络设备发送携带该组播目的地址的第一流表项,以通过第一流表项指导第一OpenFlow网络设备丢弃收到的目的IP地址为该组播目的地址的所有组播数据,从而避免第一OpenFlow网络设备将所有的组播数据均转发到OpenFlow控制器进行处理,提高了OpenFlow控制器的处理性能。
附图说明
图1是现有技术中OpenFlow网络的组网示意图;
图2是本发明实施例的应用场景示意图
图3和图4是本发明实施例提供的一种组播数据传输方法流程示意图;
图5是本发明实施例提供的一种OpenFlow控制器的结构示意图。
具体实施方式
针对现有技术中存在的问题,本发明实施例提供一种组播数据传输方法,该方法应用于包括OpenFlow控制器、OpenFlow网络设备、组播源设备以及接收者设备的网络中,以图2为本发明实施例的应用场景示意图,OpenFlow网络设备1和组播源设备连接,OpenFlow网络设备2和接收者设备连接。
如图3所示,本发明实施例中提出的组播数据传输方法包括以下步骤:
步骤301,OpenFlow控制器接收第一OpenFlow网络设备上送的组播数据,并从该组播数据中解析出组播目的地址,其中,所述第一OpenFlow网络设备从与其对应的组播源设备接收所述组播数据。
步骤302,在OpenFlow控制器上没有维护该组播目的地址对应的组播表项时,OpenFlow控制器创建该组播目的地址对应的组播表项。
步骤303,OpenFlow控制器向第一OpenFlow网络设备发送携带该组播目的地址的第一流表项;其中,该第一流表项用于指示该第一OpenFlow网络设备丢弃收到的目的IP地址为该组播目的地址的组播数据。
OpenFlow控制器通过向第一OpenFlow网络设备发送第一流表项,以通过第一流表项指导第一OpenFlow网络设备丢弃收到的目的IP地址为相应组播目的地址的组播数据,从而在没有接收者设备相关信息,也即没有组播用户加入组播源的情况下,OpenFlow控制器会在第一OpenFlow网络设备上下发第一流表项,使得第一OpenFlow网络设备在收到组播数据时,基于第一流表项丢弃收到的目的IP地址为相应组播目的地址的组播数据,避免第一OpenFlow网络设备将所有组播数据均转发到OpenFlow控制器进行处理,提高了OpenFlow控制器的处理性能。
以下结合图2所示的应用场景,对本发明实施例提出的组播数据传输方法进行进一步的说明。如图4所示,该组播数据传输方法包括以下步骤:
步骤401,OpenFlow控制器向组播源设备对应的第一OpenFlow网络设备发送第二流表项;其中,该第二流表项用于指示第一OpenFlow网络设备将目的IP地址为组播地址的组播数据发送给OpenFlow控制器。
在存在组播源设备和接收者设备的OpenFlow网络中,OpenFlow控制器通过OpenFlow通道分别与所有的OpenFlow网络设备连接,且OpenFlow控制器能够获知OpenFlow网络的拓扑情况,基于此,OpenFlow控制器可以向所有边缘的OpenFlow网络设备发送第二流表项;由于这些边缘的OpenFlow网络设备中包括组播源设备对应的第一OpenFlow网络设备,因此第一OpenFlow网络设备能够收到来自OpenFlow控制器的第二流表项。
在图2所示的应用场景下,与组播源设备连接的OpenFlow网络设备为OpenFlow网络设备1,与接收者设备连接的OpenFlow网络设备为OpenFlow网络设备2。OpenFlow控制器通过向OpenFlow网络设备1-4发送第二流表项,使得与组播源设备连接的OpenFlow网络设备1可以收到该第二流表项。此外,在下发第二流表项时,也可由管理员通过控制OpenFlow控制器,向特定的OpenFlow网络设备下发,对此本实施例不做特别限制。
组播源设备对应的第一OpenFlow网络设备是指与组播源设备连接的OpenFlow网络设备,图2中第一OpenFlow网络设备为OpenFlow网络设备1。
需要注意的是,在OpenFlow网络中,如果OpenFlow控制器不在OpenFlow网络设备上下发任何流表项,则OpenFlow网络设备在收到组播数据时,也会由于无法匹配到流表项,而将收到的组播数据上送到OpenFlow控制器,因此,即使本发明实施例中不执行步骤401,即OpenFlow控制器不向第一OpenFlow网络设备发送第二流表项,第一OpenFlow网络设备也可以将目的IP地址为组播地址的组播数据发送给OpenFlow控制器。因此,上述步骤401不是本发明实施例的必要步骤,本发明实施例中以执行上述步骤401为例进行说明。
本发明实施例中,OpenFlow控制器在向第一OpenFlow网络设备发送第二流表项时,OpenFlow控制器具体可以为将packet-in消息发送给第一OpenFlow网络设备,该packet-in消息即为第二流表项。
为了使第二流表项能够指导第一OpenFlow网络设备将目的IP地址为组播地址的组播数据发送给OpenFlow控制器,则该第二流表项的规则为:目的IP地址为组播地址(即224.0.1.0-239.255.255.255)的组播数据的出接口为第一OpenFlow网络设备上连接OpenFlow控制器的接口。当第一OpenFlow网络设备在自身的流表中维护了上述第二流表项之后,当收到目的IP地址为组播地址(即224.0.1.0-239.255.255.255)的组播数据后,利用该出接口(即第一OpenFlow网络设备上连接OpenFlow控制器的接口)发送该组播数据,从而将该组播数据发送给OpenFlow控制器。
例如,OpenFlow控制器向OpenFlow网络设备1发送第二流表项,该第二流表项的规则为:目的IP地址为224.0.1.0-239.255.255.255的组播数据的出接口为接口3。之后,OpenFlow网络设备1在收到目的IP地址为224.0.1.0的组播数据后,利用接口3将该组播数据发送给OpenFlow控制器。
步骤402,OpenFlow控制器接收第一OpenFlow网络设备上送的组播数据,并从该组播数据中解析出组播目的地址。
其中,在组播源设备发送组播数据时,第一OpenFlow网络设备在收到该组播数据后,会匹配到第二流表项,从而将该组播数据发送给OpenFlow控制器。OpenFlow控制器在收到组播数据后,由于该组播数据中会携带组播目的地址,因此OpenFlow控制器可以直接从组播数据中解析出组播目的地址。
步骤403,在OpenFlow控制器上没有维护该组播目的地址对应的组播表项时,OpenFlow控制器创建该组播目的地址对应的组播表项。当在OpenFlow控制器上维护有该组播目的地址对应的组播表项时,OpenFlow控制器将刷新该组播表项的老化定时器的老化时间,该过程在后续步骤中阐述。
其中,所述的组播表项,也就是记录了组播源设备相关信息的表项,例如可包括组播源设备对应的组播组地址,相应OpenFlow网络设备接收到组播源设备的组播数据的接口等信息;基于该组播表项,OpenFlow控制器可向其它边缘OpenFlow网络设备发送组播加入信息,以便与边缘OpenFlow网络设备连接的用户设备可加入该组播源设备对应的组播组。下面将会做具体说明。
本发明实施例的一种优选实施方式中,该组播表项中记录的内容包括但不限于第一OpenFlow网络设备(即第一OpenFlow网络设备的标识)、组播目的地址、第一入端口(即第一OpenFlow网络设备收到组播数据的端口)。基于此,OpenFlow控制器创建组播目的地址对应的组播表项的过程,具体包括:OpenFlow控制器将第一OpenFlow网络设备收到组播数据的端口作为第一入端口,并利用组播目的地址、第一OpenFlow网络设备(即第一OpenFlow网络设备的标识)以及第一入端口创建该组播目的地址对应的组播表项。
例如,组播源设备发送组播目的地址为231.0.0.1的组播数据时,OpenFlow控制器确定组播目的地址为231.0.0.1,确定第一OpenFlow网络设备的标识为OpenFlow网络设备1,确定第一入端口为OpenFlow网络设备1收到组播数据的端口1;基于此,OpenFlow控制器创建的组播表项可以如表1所示。
表1
组播目的地址 | 第一OpenFlow网络设备 | 第一入端口 |
231.0.0.1 | OpenFlow网络设备1 | 端口1 |
步骤404,OpenFlow控制器向第一OpenFlow网络设备发送携带组播目的地址的第一流表项。其中,该第一流表项用于指示第一OpenFlow网络设备丢弃收到的目的IP地址为该组播目的地址的组播数据。
本发明实施例中,OpenFlow控制器在向第一OpenFlow网络设备发送第一流表项时,该第一流表项具体可以为Drop(放弃)表项。为了使第一流表项能够指导第一OpenFlow网络设备丢弃收到的目的IP地址为该组播目的地址的组播数据,则该第一流表项的规则为:目的IP地址为组播目的地址(如223.0.0.1)的组播数据的出接口为空。当第一OpenFlow网络设备在自身的流表中维护了上述第一流表项后,当收到目的IP地址为组播目的地址(如223.0.0.1)的组播数据后,由于出接口为空,因此第一OpenFlow网络设备需要丢弃收到的目的IP地址为组播目的地址(如223.0.0.1)的组播数据。
第一OpenFlow网络设备在自身的流表中维护了上述第一流表项之后,则该第一OpenFlow网络设备的流表中将同时具有上述第一流表项和上述第二流表项,为了保证第一OpenFlow网络设备丢弃收到的目的IP地址为组播目的地址(如223.0.0.1)的组播数据,则第一流表项的优先级需要高于第二流表项的优先级,如设置第一流表项的优先级为2,第二流表项的优先级为1。
基于上述处理,OpenFlow控制器能够生成组播源设备发送的组播数据中携带的组播目的地址对应的组播表项,并向第一OpenFlow网络设备发送携带该组播目的地址的第一流表项,以通过该第一流表项指导第一OpenFlow网络设备丢弃收到的目的IP地址为该组播目的地址的组播数据,从而可在没有用户设备加入组播源的情况下,避免第一OpenFlow网络设备将所有的组播数据均转发到OpenFlow控制器进行处理,提高了OpenFlow控制器的处理性能,避免组播数据对OpenFlow控制器的带宽进行占用,同时避免组播数据对OpenFlow控制器造成较大的冲击。
在本发明实施例的一种优选实施方式中,OpenFlow控制器还可以为组播表项启动第一老化定时器,如表2所示,该第一老化定时器的老化时间为180s。
表2
组播目的地址 | 第一OpenFlow网络设备 | 第一入端口 | 老化时间 |
231.0.0.1 | OpenFlow网络设备1 | 端口1 | 180s |
在第一老化定时器超时之前的预设时间(如10s,即生成表2所示的组播表项170s后)时,OpenFlow控制器向第一OpenFlow网络设备发送携带组播目的地址的第三流表项,该第三流表项用于指示第一OpenFlow网络设备将收到的目的IP地址为该组播目的地址的组播数据发送给OpenFlow控制器。
本发明实施例中,OpenFlow控制器向第一OpenFlow网络设备发送第三流表项时,为了使第三流表项能够指导第一OpenFlow网络设备将收到的目的IP地址为组播目的地址的组播数据发送给OpenFlow控制器,则该第三流表项的规则为:目的IP地址为组播目的地址(如223.0.0.1)的组播数据的出接口为第一OpenFlow网络设备上连接OpenFlow控制器的接口。当第一OpenFlow网络设备在自身的流表中维护了上述第三流表项之后,当收到目的IP地址为组播目的地址(如223.0.0.1)的组播数据后,利用出接口(即第一OpenFlow网络设备上连接OpenFlow控制器的接口)发送给组播数据,以将目的IP地址为组播目的地址(223.0.0.1)的组播数据发送给OpenFlow控制器。
第一OpenFlow网络设备在自身的流表中维护了上述第三流表项之后,则该第一OpenFlow网络设备的流表中将同时具有上述第一流表项、上述第二流表项以及上述第三流表项,为了保证第一OpenFlow网络设备将收到的目的IP地址为该组播目的地址的组播数据均发送给OpenFlow控制器,则第三流表项的优先级需要高于第一流表项的优先级,如设置第三流表项的优先级为3,设置第一流表项的优先级为2,设置第二流表项的优先级为1。
基于上述处理,在第一老化定时器超时之前,如果OpenFlow控制器收到目的IP地址为组播目的地址的组播数据,则OpenFlow控制器刷新组播数据对应的组播表项(即组播数据对应的组播目的地址、第一OpenFlow网络设备和第一入端口所匹配到的组播表项)的第一老化定时器的老化时间(如将老化时间刷新为180s),并指示第一OpenFlow网络设备清除第三流表项。第一OpenFlow网络设备在清除第三流表项之后,第一OpenFlow网络设备的流表中将同时具有上述第一流表项和上述第二流表项,因此第一OpenFlow网络设备会丢弃收到的目的IP地址为组播目的地址(如223.0.0.1)的组播数据。
如果组播表项的老化时间一直没有刷新,则在第一老化定时器超时时,OpenFlow控制器删除第一老化定时器对应的组播表项,不再维护该组播表项。
步骤405,OpenFlow控制器向接收者设备对应的第二OpenFlow网络设备发送第四流表项和第五流表项。其中,该第四流表项用于指示第二OpenFlow网络设备向接收者设备发送IGMP(Internet Group Management Protocol,Internet组管理协议)通用查询报文,该第五流表项用于指示第二OpenFlow网络设备将来自接收者设备的IGMP加入报文发送给OpenFlow控制器。
其中,该步骤405具体可在OpenFlow控制器创建组播表项后,立即执行。
在存在组播源设备和接收者设备的OpenFlow网络中,OpenFlow控制器通过OpenFlow通道分别与所有的OpenFlow网络设备连接,且OpenFlow控制器能够获知OpenFlow网络的拓扑情况,基于此,OpenFlow控制器可以向所有边缘的OpenFlow网络设备发送第四流表项以及第五流表项;由于这些边缘的OpenFlow网络设备中包括接收者设备对应的第二OpenFlow网络设备,因此,第二OpenFlow网络设备能够收到来自OpenFlow控制器的第四流表项以及第五流表项。在图2所示的应用场景下,与组播源设备连接的OpenFlow网络设备为OpenFlow网络设备1,与接收者设备连接的OpenFlow网络设备为OpenFlow网络设备2。在此情况下,OpenFlow控制器通过向OpenFlow网络设备1-4发送第四流表项以及第五流表项,使得与接收者设备连接的OpenFlow网络设备2可以收到该第四流表项以及第五流表项。
接收者设备对应的第二OpenFlow网络设备是指与接收者设备连接的OpenFlow网络设备,图2中第二OpenFlow网络设备为OpenFlow网络设备2。
本发明实施例中,OpenFlow控制器向第二OpenFlow网络设备发送的第四流表项,具体可以为packet-out消息,携带有IGMP通用查询报文(用于通知接收者设备当前可以加入的组播组,由接收者设备在需要加入组播组时,发送相应的IGMP加入报文)。为了使该第四流表项能够指导第二OpenFlow网络设备向接收者设备发送IGMP通用查询报文,则第四流表项的规则为:OpenFlow控制器构造的IGMP通用查询报文的出接口为第二OpenFlow网络设备上连接接收者设备的接口。当第二OpenFlow网络设备接收到该第四流表项后,即可通过该出接口(即第二OpenFlow网络设备上连接接收者设备的接口)将IGMP通用查询报文发送给接收者设备,由接收者设备在需要加入组播组时,向第二OpenFlow网络设备发送相应的IGMP加入报文。
本发明实施例中,OpenFlow控制器向第二OpenFlow网络设备发送的第五流表项,具体可以为packet-in消息,用于在第二OpenFlow网络设备接收到IGMP加入报文时,将其上送至OpenFlow控制器,由OpenFlow控制器处理。
为了使第五流表项能够指导第二OpenFlow网络设备将来自接收者设备的IGMP加入报文发送给OpenFlow控制器,则该第五流表项的规则为:报文的TYPE(类型)字段为0x16的报文(表示该报文为IGMP加入报文)的出接口为第二OpenFlow网络设备上连接OpenFlow控制器的接口。当第二OpenFlow网络设备在自身的流表中维护了上述第五流表项之后,当收到TYPE字段为0x16的报文(即IGMP加入报文)之后,利用该出接口(即第二OpenFlow网络设备上连接OpenFlow控制器的接口)发送该IGMP加入报文,从而将该IGMP加入报文发送给OpenFlow控制器。
步骤406,OpenFlow控制器接收来自第二OpenFlow网络设备的IGMP加入报文,并利用该IGMP加入报文创建组播目的地址对应的组播加入表项。
其中,该组播加入表项具体用来表示加入组播源设备对应的组播组的用户设备的相关信息,例如可包括用户设备加入的组播组地址,以及与用户设备连接的OpenFlow网络设备信息等。
本发明实施例的一种优选实施方式中,该组播加入表项中记录的内容包括但不限于第二OpenFlow网络设备(即第二OpenFlow网络设备的标识)、组播目的地址(即接收者设备请求加入的组播目的地址)、第二入端口(即第二OpenFlow网络设备收到IGMP加入报文的端口)。基于此,OpenFlow控制器利用该IGMP加入报文创建组播目的地址对应的组播加入表项的过程,具体包括:OpenFlow控制器从IGMP加入报文中解析出接收者设备请求加入的组播目的地址,并将第二OpenFlow网络设备收到IGMP加入报文的端口作为第二入端口,并利用组播目的地址、第二OpenFlow网络设备(即第二OpenFlow网络设备的标识)和第二入端口创建组播目的地址对应的组播加入表项。
进一步的,OpenFlow控制器还需要维护该组播加入表项。例如,接收者设备发送的IGMP加入报文请求加入的组播目的地址为231.0.0.1,OpenFlow控制器确定组播目的地址为231.0.0.1,第二OpenFlow网络设备的标识为OpenFlow网络设备2,第二入端口为OpenFlow网络设备2收到IGMP加入报文的端口4。基于此,OpenFlow控制器维护的组播加入表项如表3所示。
表3
组播目的地址 | 第二OpenFlow网络设备 | 第二入端口 |
231.0.0.1 | OpenFlow网络设备2 | 端口4 |
在本发明实施例的一种优选实施方式中,OpenFlow控制器还可以为该组播加入表项启动第二老化定时器,如表4所示,该第二老化定时器的老化时间可为260s。为了保证新加入的接收者设备也可以加入到相应组播组,则第四流表项需要周期性发送,基于此,OpenFlow控制器还可以为第四流表项启动周期发送定时器,每次在周期发送定时器超时时,OpenFlow控制器均需要重新向第二OpenFlow网络设备发送第四流表项,并重新启动周期发送定时器,第四流表项的发送过程与上述步骤405中发送过程相同,在此不再重复赘述。
表4
组播目的地址 | 第二OpenFlow网络设备 | 第二入端口 | 老化时间 |
231.0.0.1 | OpenFlow网络设备2 | 端口4 | 260s |
在一种具体实现方式中,为了保证第二老化定时器的老化时间(260s)能够被及时刷新,则周期发送定时器的超时时间还可以小于第二老化定时器的老化时间,如将该周期发送定时器的超时时间设置可为125s。上述各定时器的时间可根据需要设定,具体设定值不做特别限制。
基于上述处理,在第二老化定时器超时之前,如果OpenFlow控制器收到用于请求加入组播目的地址的IGMP加入报文,则OpenFlow控制器刷新IGMP加入报文对应的组播加入表项(即IGMP加入报文对应的组播目的地址、第二OpenFlow网络设备和第二入端口所匹配到的组播加入表项)的第二老化定时器的老化时间,如重新将第二老化定时器的老化时间刷新为260s。
如果组播加入表项的老化时间一直没有刷新,则在第二老化定时器超时时,OpenFlow控制器还需要删除第二老化定时器对应的组播加入表项。
本发明实施例中,OpenFlow控制器在生成组播目的地址对应的组播加入表项之后,如果本OpenFlow控制器上已经维护了该组播目的地址对应的组播表项,为了保证此时组播源设备仍然在发送该组播目的地址的组播数据,则OpenFlow控制器向第一OpenFlow网络设备发送携带该组播目的地址的第三流表项,该第三流表项用于指示第一OpenFlow网络设备将收到的目的IP地址为该组播目的地址的组播数据发送给OpenFlow控制器。第一OpenFlow网络设备在自身的流表中维护了第三流表项之后,当收到目的IP地址为该组播目的地址的组播数据后,将目的IP地址为该组播目的地址的组播数据发送给OpenFlow控制器。OpenFlow控制器在收到该组播目的地址的组播数据后,确认组播源设备仍然在发送该组播目的地址的组播数据,执行后续步骤407;如果OpenFlow控制器没有收到该组播目的地址的组播数据,则确认组播源设备当前未发送该组播目的地址的组播数据,不执行后续步骤407。
步骤407,OpenFlow控制器根据组播表项和组播加入表项,获得组播源设备发送组播数据到接收者设备的转发路径,确定该转发路径中各OpenFlow网络设备,并向转发路径中的各OpenFlow网络设备下发对应的流表项,以指导各OpenFlow网络设备基于相应的流表项对组播数据进行转发。
本实施例中,当OpenFlow控制器维护为相应组播源设备的组播表项以及相应的组播加入表项时,即可获取组播源设备到相应的组播加入表项对应的用户设备之间的组播传输路径,从而向组播路径中的各OpenFlow网络设备下发相应的流表项,指导组播数据的转发,本领域技术人员可以理解,该流表项的优先级应大于上述的第一流表项、第二流表项、第三流表项等。
在一种具体的实现方式中,上述步骤407具体包括以下步骤:
步骤1、OpenFlow控制器利用组播表项和组播加入表项生成组播转发表项。其中,该组播转发表项包括组播目的地址、第一OpenFlow网络设备、第一入端口、第二OpenFlow网络设备、第二入端口、第一OpenFlow网络设备与第二OpenFlow网络设备之间经过的各OpenFlow网络设备以及端口。
在经过上述步骤的处理后,基于表1所示的组播表项以及表3所示的组播加入表项,则OpenFlow控制器可以生成表5所示的组播转发表项。
表5
为了生成表5所示的组播转发表项,则OpenFlow控制器还需要确定第一OpenFlow网络设备与第二OpenFlow网络设备之间经过的各OpenFlow网络设备以及端口。基于此,OpenFlow控制器需要发现OpenFlow网络中的各个OpenFlow网络设备之间的连接关系以及各个OpenFlow网络设备之间的路径开销,基于各个OpenFlow网络设备之间的连接关系以及各个OpenFlow网络设备之间的路径开销,OpenFlow控制器可以利用相关算法(如最短路径算法)确定出第一OpenFlow网络设备与第二OpenFlow网络设备之间经过的各OpenFlow网络设备以及端口,本发明实施例中对此计算过程不再赘述。
由于OpenFlow控制器通过OpenFlow通道分别与所有的OpenFlow网络设备连接,且该OpenFlow控制器能够获知OpenFlow网络的拓扑情况,因此,该OpenFlow控制器能够获知OpenFlow网络中的各个OpenFlow网络设备之间的连接关系以及各个OpenFlow网络设备之间的路径开销。
在一种具体实现方式中,为了发现OpenFlow网络中的各个OpenFlow网络设备之间的连接关系,OpenFlow控制器可以向所有OpenFlow网络设备发送packet-out消息,该packet-out消息中携带的数据具体为LLDP(Link Layer Discovery Protocol,链路层发现协议)报文,且该packet-out消息用于指示各OpenFlow网络设备广播LLDP报文。各OpenFlow网络设备在收到packet-out消息后,广播该packet-out消息中携带的LLDP报文。进一步的,各OpenFlow网络设备在收到LLDP报文后,将本OpenFlow网络设备收到该LLDP报文的接口添加到LLDP报文中,并将处理后的LLDP报文封装到packet-in消息中,并向OpenFlow控制器发送该packet-in消息。OpenFlow控制器在收到来自各OpenFlow网络设备的packet-in消息后,从packet-in消息的LLDP报文中解析出接口,这些接口是各OpenFlow网络设备之间连接的接口。基于这些接口,OpenFlow控制器能够发现各个OpenFlow网络设备之间的连接关系。
步骤2,OpenFlow控制器利用上述组播转发表项获得组播源设备发送组播数据到接收者设备的转发路径。其中,各OpenFlow网络设备对应的转发路径具体为OpenFlow网络设备发送组播数据时的出接口。
步骤3,OpenFlow控制器通过向OpenFlow网络设备下发流表项的方式将第一OpenFlow网络设备、第二OpenFlow网络设备、各OpenFlow网络设备(即第一OpenFlow网络设备与第二OpenFlow网络设备之间经过的各OpenFlow网络设备,如表5所示)对应的转发路径分别发送给第一OpenFlow网络设备、第二OpenFlow网络设备、各OpenFlow网络设备。
第一OpenFlow网络设备、第二OpenFlow网络设备和各OpenFlow网络设备在自身的流表中维护相应的流表项,继而分别利用相应的流表项中指导的转发路径转发来自组播源设备的组播数据,以最终将组播数据发送给接收者设备。
OpenFlow控制器通过流表项的方式将第一OpenFlow网络设备对应的转发路径发送给第一OpenFlow网络设备时,携带转发路径的流表项的优先级需要高于第一流表项的优先级,并高于第二流表项的优先级,并高于第三流表项的优先级。下发给其它OpenFlow网络设备的相应流表项的优先级也应高于第一流表项的优先级,并高于第二流表项的优先级,并高于第三流表项的优先级。
基于与上述方法同样的发明构思,本发明实施例还提供了一种OpenFlow控制器,应用于包括所述OpenFlow控制器、OpenFlow网络设备、组播源设备以及接收者设备的网络中,如图5所示,所述OpenFlow控制器具体包括:
接收模块11,用于接收第一OpenFlow网络设备上送的组播数据,其中,所述第一OpenFlow网络设备从与其对应的组播源设备接收所述组播数据;
维护模块12,用于从所述组播数据中解析出组播目的地址,并在本OpenFlow控制器上没有维护所述组播目的地址对应的组播表项时,创建所述组播目的地址对应的组播表项;
发送模块13,用于向所述第一OpenFlow网络设备发送携带所述组播目的地址的第一流表项,且所述第一流表项用于指示所述第一OpenFlow网络设备丢弃收到的目的IP地址为所述组播目的地址的组播数据。
所述发送模块13,还用于向所述组播源设备对应的第一OpenFlow网络设备发送第二流表项;其中,所述第一流表项的优先级高于所述第二流表项的优先级,且所述第二流表项用于指示所述第一OpenFlow网络设备将目的IP地址为组播地址的组播数据发送给所述OpenFlow控制器。
所述维护模块12,具体用于将第一OpenFlow网络设备收到组播数据的端口作为第一入端口,并利用所述组播目的地址、第一OpenFlow网络设备和第一入端口创建所述组播目的地址对应的组播表项;其中,所述组播表项中记录的内容包括所述第一OpenFlow网络设备、组播目的地址、第一入端口。
所述维护模块12,进一步用于为所述组播表项启动第一老化定时器;在所述第一老化定时器超时之前,如果收到目的IP地址为所述组播目的地址的组播数据,则刷新所述组播数据对应的组播表项的第一老化定时器的老化时间,并指示所述第一OpenFlow网络设备清除所述第三流表项;在所述第一老化定时器超时时,删除所述第一老化定时器对应的所述组播表项;
所述发送模块13,还用于在所述第一老化定时器超时之前的预设时间时,向所述第一OpenFlow网络设备发送携带所述组播目的地址的第三流表项;其中,所述第三流表项的优先级高于所述第一流表项的优先级,且所述第三流表项用于指示所述第一OpenFlow网络设备将收到的目的IP地址为所述组播目的地址的组播数据发送给所述OpenFlow控制器。
所述发送模块13,还用于向所述接收者设备对应的第二OpenFlow网络设备发送第四流表项以及第五流表项;其中,所述第四流表项用于指示所述第二OpenFlow网络设备向所述接收者设备发送Internet组管理协议IGMP通用查询报文,所述第五流表项用于指示所述第二OpenFlow网络设备将来自所述接收者设备的IGMP加入报文发送给所述OpenFlow控制器;
所述接收模块11,还用于接收来自第二OpenFlow网络设备的IGMP加入报文,所述IGMP加入报文中携带了接收者设备请求加入的组播目的地址;
所述维护模块12,还用于从所述IGMP加入报文中解析出所述接收者设备请求加入的组播目的地址,并将所述第二OpenFlow网络设备收到所述IGMP加入报文的端口作为第二入端口,并利用所述组播目的地址、第二OpenFlow网络设备和第二入端口创建所述组播目的地址对应的组播加入表项;其中,所述组播加入表项中记录的内容包括所述第二OpenFlow网络设备、组播目的地址、第二入端口。
所述维护模块12,进一步用于为所述组播加入表项启动第二老化定时器,且为所述第四流表项启动周期发送定时器;
所述发送模块13,还用于在所述周期发送定时器超时时,重新向所述第二OpenFlow网络设备发送第四流表项,并重新启动所述周期发送定时器;
所述维护模块12,进一步用于在所述第二老化定时器超时之前,如果收到用于请求加入所述组播目的地址的IGMP加入报文,则刷新所述IGMP加入报文对应的组播加入表项的第二老化定时器的老化时间;在所述第二老化定时器超时时,删除所述第二老化定时器对应的所述组播加入表项。
所述发送模块13,还用于根据所述组播表项和组播加入表项,获得所述组播源设备发送组播数据到所述接收者设备的转发路径,确定所述转发路径中各OpenFlow网络设备,向所述转发路径中的各OpenFlow网络设备下发对应的流表项,以指导各OpenFlow网络设备基于相应的流表项对所述组播数据进行转发。
所述维护模块12,还用于利用所述组播表项和组播加入表项生成组播转发表项,所述组播转发表项包括组播目的地址、第一OpenFlow网络设备、第一入端口、第二OpenFlow网络设备、第二入端口、所述第一OpenFlow网络设备与第二OpenFlow网络设备之间经过的各OpenFlow网络设备以及端口;
所述发送模块13,进一步用于利用所述组播转发表项获得所述组播源设备发送组播数据到所述接收者设备的转发路径,并向所述转发路径中的各OpenFlow网络设备下发对应的流表项,以指导各OpenFlow网络设备基于相应的流表项对所述组播数据进行转发。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (16)
1.一种组播数据传输方法,应用于包括OpenFlow控制器、OpenFlow网络设备、组播源设备以及接收者设备的网络中,其特征在于,所述方法包括:
所述OpenFlow控制器接收第一OpenFlow网络设备上送的组播数据,并从所述组播数据中解析出组播目的地址,其中,所述第一OpenFlow网络设备从与其对应的组播源设备接收所述组播数据;
在所述OpenFlow控制器上没有维护所述组播目的地址对应的组播表项时,所述OpenFlow控制器创建所述组播目的地址对应的组播表项;基于所述组播表项向其它边缘OpenFlow网络设备发送组播加入信息,以便与其它边缘OpenFlow网络设备连接的用户设备加入所述组播源设备对应的组播组;
所述OpenFlow控制器向所述第一OpenFlow网络设备发送携带所述组播目的地址的第一流表项,且所述第一流表项用于指示所述第一OpenFlow网络设备丢弃收到的目的IP地址为所述组播目的地址的组播数据。
2.如权利要求1所述的方法,其特征在于,所述OpenFlow控制器接收第一OpenFlow网络设备上送的组播数据之前,所述方法还包括:
所述OpenFlow控制器向所述组播源设备对应的第一OpenFlow网络设备发送第二流表项;其中,所述第一流表项的优先级高于所述第二流表项的优先级,且所述第二流表项用于指示所述第一OpenFlow网络设备将目的IP地址为组播地址的组播数据发送给所述OpenFlow控制器。
3.如权利要求1所述的方法,其特征在于,所述OpenFlow控制器创建所述组播目的地址对应的组播表项的过程,具体包括:
所述OpenFlow控制器将所述第一OpenFlow网络设备收到所述组播数据的端口作为第一入端口,并利用所述组播目的地址、第一OpenFlow网络设备和第一入端口创建所述组播目的地址对应的组播表项;其中,所述组播表项中记录的内容包括所述第一OpenFlow网络设备、组播目的地址、第一入端口。
4.如权利要求1、2或3所述的方法,其特征在于,所述方法进一步包括:
所述OpenFlow控制器为所述组播表项启动第一老化定时器;
在所述第一老化定时器超时之前的预设时间时,所述OpenFlow控制器向所述第一OpenFlow网络设备发送携带所述组播目的地址的第三流表项;其中,所述第三流表项的优先级高于所述第一流表项的优先级,且所述第三流表项用于指示所述第一OpenFlow网络设备将收到的目的IP地址为所述组播目的地址的组播数据发送给所述OpenFlow控制器;
在所述第一老化定时器超时之前,如果所述OpenFlow控制器收到目的IP地址为所述组播目的地址的组播数据,所述OpenFlow控制器刷新所述组播数据对应的组播表项的第一老化定时器的老化时间,并指示所述第一OpenFlow网络设备清除所述第三流表项;
在所述第一老化定时器超时时,所述OpenFlow控制器删除所述第一老化定时器对应的所述组播表项。
5.如权利要求1、2或3所述的方法,其特征在于,所述方法进一步包括:
所述OpenFlow控制器向所述接收者设备对应的第二OpenFlow网络设备发送第四流表项以及第五流表项;其中,所述第四流表项用于指示所述第二OpenFlow网络设备向所述接收者设备发送Internet组管理协议IGMP通用查询报文,所述第五流表项用于指示所述第二OpenFlow网络设备将来自所述接收者设备的IGMP加入报文发送给所述OpenFlow控制器;
所述OpenFlow控制器接收来自所述第二OpenFlow网络设备的IGMP加入报文,从所述IGMP加入报文中解析出所述接收者设备请求加入的组播目的地址,并将所述第二OpenFlow网络设备收到所述IGMP加入报文的端口作为第二入端口,并利用所述组播目的地址、第二OpenFlow网络设备和第二入端口创建所述组播目的地址对应的组播加入表项;其中,所述组播加入表项中记录的内容包括所述第二OpenFlow网络设备、组播目的地址、第二入端口。
6.如权利要求5所述的方法,其特征在于,所述方法进一步包括:
所述OpenFlow控制器为所述组播加入表项启动第二老化定时器,且所述OpenFlow控制器为所述第四流表项启动周期发送定时器;
在所述周期发送定时器超时时,所述OpenFlow控制器重新向所述第二OpenFlow网络设备发送第四流表项,并重新启动所述周期发送定时器;
在所述第二老化定时器超时之前,如果所述OpenFlow控制器收到用于请求加入所述组播目的地址的IGMP加入报文,则所述OpenFlow控制器刷新所述IGMP加入报文对应的组播加入表项的第二老化定时器的老化时间;
在所述第二老化定时器超时时,所述OpenFlow控制器删除所述第二老化定时器对应的所述组播加入表项。
7.如权利要求5所述的方法,其特征在于,所述方法进一步包括:
所述OpenFlow控制器根据所述组播表项和组播加入表项,获得所述组播源设备发送组播数据到所述接收者设备的转发路径,确定所述转发路径中各OpenFlow网络设备,向所述转发路径中的各OpenFlow网络设备下发对应的流表项,以指导各OpenFlow网络设备基于相应的流表项对所述组播数据进行转发。
8.如权利要求7所述的方法,其特征在于,所述OpenFlow控制器获得所述组播源设备发送组播数据到所述接收者设备的转发路径,具体包括:
所述OpenFlow控制器利用所述组播表项和组播加入表项生成组播转发表项,所述组播转发表项包括组播目的地址、第一OpenFlow网络设备、第一入端口、第二OpenFlow网络设备、第二入端口、所述第一OpenFlow网络设备与第二OpenFlow网络设备之间经过的各OpenFlow网络设备以及端口;
所述OpenFlow控制器利用所述组播转发表项获得所述组播源设备发送组播数据到所述接收者设备的转发路径。
9.一种OpenFlow控制器,应用于包括所述OpenFlow控制器、OpenFlow网络设备、组播源设备以及接收者设备的网络中,其特征在于,所述OpenFlow控制器具体包括:
接收模块,用于接收第一OpenFlow网络设备上送的组播数据,其中,所述第一OpenFlow网络设备从与其对应的组播源设备接收所述组播数据;
维护模块,用于从所述组播数据中解析出组播目的地址,并在本OpenFlow控制器上没有维护所述组播目的地址对应的组播表项时,创建所述组播目的地址对应的组播表项;基于所述组播表项向其它边缘OpenFlow网络设备发送组播加入信息,以便与其它边缘OpenFlow网络设备连接的用户设备加入所述组播源设备对应的组播组;
发送模块,用于向所述第一OpenFlow网络设备发送携带所述组播目的地址的第一流表项,且所述第一流表项用于指示所述第一OpenFlow网络设备丢弃收到的目的IP地址为所述组播目的地址的组播数据。
10.如权利要求9所述的OpenFlow控制器,其特征在于,
所述发送模块,还用于向所述组播源设备对应的第一OpenFlow网络设备发送第二流表项;其中,所述第一流表项的优先级高于所述第二流表项的优先级,且所述第二流表项用于指示所述第一OpenFlow网络设备将目的IP地址为组播地址的组播数据发送给所述OpenFlow控制器。
11.如权利要求9所述的OpenFlow控制器,其特征在于,
所述维护模块,具体用于将第一OpenFlow网络设备收到所述组播数据的端口作为第一入端口,并利用所述组播目的地址、第一OpenFlow网络设备和第一入端口创建所述组播目的地址对应的组播表项;其中,所述组播表项中记录的内容包括所述第一OpenFlow网络设备、组播目的地址、第一入端口。
12.如权利要求9、10或11所述的OpenFlow控制器,其特征在于,
所述维护模块,进一步用于为所述组播表项启动第一老化定时器;在所述第一老化定时器超时之前,如果收到目的IP地址为所述组播目的地址的组播数据,则刷新所述组播数据对应的组播表项的第一老化定时器的老化时间,并指示所述第一OpenFlow网络设备清除第三流表项;在所述第一老化定时器超时时,删除所述第一老化定时器对应的所述组播表项;
所述发送模块,还用于在所述第一老化定时器超时之前的预设时间时,向所述第一OpenFlow网络设备发送携带所述组播目的地址的第三流表项;其中,所述第三流表项的优先级高于所述第一流表项的优先级,且所述第三流表项用于指示所述第一OpenFlow网络设备将收到的目的IP地址为所述组播目的地址的组播数据发送给所述OpenFlow控制器。
13.如权利要求9、10或11所述的OpenFlow控制器,其特征在于,
所述发送模块,还用于向所述接收者设备对应的第二OpenFlow网络设备发送第四流表项以及第五流表项;其中,所述第四流表项用于指示所述第二OpenFlow网络设备向所述接收者设备发送Internet组管理协议IGMP通用查询报文,所述第五流表项用于指示所述第二OpenFlow网络设备将来自所述接收者设备的IGMP加入报文发送给所述OpenFlow控制器;
所述接收模块,还用于接收来自所述第二OpenFlow网络设备的IGMP加入报文,所述IGMP加入报文中携带了接收者设备请求加入的组播目的地址;
所述维护模块,还用于从所述IGMP加入报文中解析出所述接收者设备请求加入的组播目的地址,并将所述第二OpenFlow网络设备收到所述IGMP加入报文的端口作为第二入端口,并利用所述组播目的地址、第二OpenFlow网络设备和第二入端口创建所述组播目的地址对应的组播加入表项;其中,所述组播加入表项中记录的内容包括所述第二OpenFlow网络设备、组播目的地址、第二入端口。
14.如权利要求13所述的OpenFlow控制器,其特征在于,
所述维护模块,进一步用于为所述组播加入表项启动第二老化定时器,且为所述第四流表项启动周期发送定时器;
所述发送模块,还用于在所述周期发送定时器超时时,重新向所述第二OpenFlow网络设备发送第四流表项,并重新启动所述周期发送定时器;
所述维护模块,进一步用于在所述第二老化定时器超时之前,如果收到用于请求加入所述组播目的地址的IGMP加入报文,则刷新所述IGMP加入报文对应的组播加入表项的第二老化定时器的老化时间;在所述第二老化定时器超时时,删除所述第二老化定时器对应的所述组播加入表项。
15.如权利要求13所述的OpenFlow控制器,其特征在于,
所述发送模块,还用于根据所述组播表项和组播加入表项,获得所述组播源设备发送组播数据到所述接收者设备的转发路径,确定所述转发路径中各OpenFlow网络设备,向所述转发路径中的各OpenFlow网络设备下发对应的流表项,以指导各OpenFlow网络设备基于相应的流表项对所述组播数据进行转发。
16.如权利要求15所述的OpenFlow控制器,其特征在于,
所述维护模块,还用于利用所述组播表项和组播加入表项生成组播转发表项,所述组播转发表项包括组播目的地址、第一OpenFlow网络设备、第一入端口、第二OpenFlow网络设备、第二入端口、所述第一OpenFlow网络设备与第二OpenFlow网络设备之间经过的各OpenFlow网络设备以及端口;
所述发送模块,进一步用于利用所述组播转发表项获得所述组播源设备发送组播数据到所述接收者设备的转发路径,并向所述转发路径中的各OpenFlow网络设备下发对应的流表项,以指导各OpenFlow网络设备基于相应的流表项对所述组播数据进行转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410029674.4A CN104796340B (zh) | 2014-01-22 | 2014-01-22 | 一种组播数据传输方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410029674.4A CN104796340B (zh) | 2014-01-22 | 2014-01-22 | 一种组播数据传输方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104796340A CN104796340A (zh) | 2015-07-22 |
CN104796340B true CN104796340B (zh) | 2018-11-27 |
Family
ID=53560861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410029674.4A Active CN104796340B (zh) | 2014-01-22 | 2014-01-22 | 一种组播数据传输方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104796340B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107204867B (zh) * | 2016-03-18 | 2020-03-24 | 中兴通讯股份有限公司 | 一种信息传输方法、装置和系统 |
CN107733850A (zh) * | 2017-08-23 | 2018-02-23 | 中国船舶重工集团公司第七0九研究所 | 基于集中控制架构的组播隔离方法及系统 |
CN107612809B (zh) * | 2017-10-31 | 2021-01-01 | 新华三技术有限公司 | 一种组播表项同步方法以及设备 |
CN113196705B (zh) * | 2019-06-27 | 2023-04-18 | 华为技术有限公司 | 组播流量的路径内遥测 |
CN113490162B (zh) * | 2021-07-04 | 2022-05-17 | 芯河半导体科技(无锡)有限公司 | 一种组播数据流转发的优化方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1494280A (zh) * | 2002-11-02 | 2004-05-05 | ��Ϊ��������˾ | 网络设备中控制报文转发的方法 |
CN102685006A (zh) * | 2012-05-03 | 2012-09-19 | 中兴通讯股份有限公司 | 一种转发数据报文的方法及装置 |
CN103181128A (zh) * | 2010-10-28 | 2013-06-26 | 日本电气株式会社 | 网络系统和通信业务控制方法 |
CN103346969A (zh) * | 2013-07-05 | 2013-10-09 | 中国科学院计算机网络信息中心 | 基于OpenFlow实现动态组播生成树路径调整的方法 |
CN103428094A (zh) * | 2013-08-12 | 2013-12-04 | 杭州华三通信技术有限公司 | 开放流OpenFlow系统中的报文转发方法及装置 |
-
2014
- 2014-01-22 CN CN201410029674.4A patent/CN104796340B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1494280A (zh) * | 2002-11-02 | 2004-05-05 | ��Ϊ��������˾ | 网络设备中控制报文转发的方法 |
CN103181128A (zh) * | 2010-10-28 | 2013-06-26 | 日本电气株式会社 | 网络系统和通信业务控制方法 |
CN102685006A (zh) * | 2012-05-03 | 2012-09-19 | 中兴通讯股份有限公司 | 一种转发数据报文的方法及装置 |
CN103346969A (zh) * | 2013-07-05 | 2013-10-09 | 中国科学院计算机网络信息中心 | 基于OpenFlow实现动态组播生成树路径调整的方法 |
CN103428094A (zh) * | 2013-08-12 | 2013-12-04 | 杭州华三通信技术有限公司 | 开放流OpenFlow系统中的报文转发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104796340A (zh) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106572017B (zh) | Bier信息的发送方法、接收方法及装置 | |
CN104796340B (zh) | 一种组播数据传输方法和设备 | |
CN103748835B (zh) | 标签交换路径的动态更新 | |
CN110768817B (zh) | 视联网终端的升级方法和装置 | |
US9571382B2 (en) | Method, controller, and system for processing data packet | |
CN103944828B (zh) | 一种协议报文的传输方法和设备 | |
CN104243270B (zh) | 一种建立隧道的方法和装置 | |
CN105072038B (zh) | 一种数据报文转发方法及装置 | |
CN109462753B (zh) | 一种视联网多会议测试系统和方法 | |
CN105119911B (zh) | 一种基于sdn流的安全认证方法及系统 | |
US20210184982A1 (en) | Method, device and system for controlling quality of service | |
CN103763207A (zh) | 软件定义网络中的带内控制连接建立方法及设备 | |
CN105791169A (zh) | 软件定义网络中交换机转发控制、转发方法及相关设备 | |
WO2014017631A1 (ja) | 制御装置、通信システム、通信方法及びプログラム | |
CN114221781A (zh) | 流量过滤方法与系统、电子设备及存储介质 | |
CN104734949B (zh) | 一种实现流表配置的方法及装置 | |
CN103096300B (zh) | 基站虚拟局域网识别号自动获取方法及系统 | |
CN102255787A (zh) | 一种基于服务质量的报文处理方法和运营商网络边缘设备 | |
JP6206493B2 (ja) | 制御装置、通信システム、中継装置の制御方法及びプログラム | |
CN109743250A (zh) | 组播报文的传输方法、第一网络设备和第二网络设备 | |
WO2015090087A1 (zh) | 路由扩散的方法及装置 | |
CN103532954B (zh) | 一种面向数据中心的编码网络系统及其工作方法 | |
CN104410577A (zh) | 一种广播报文的传输方法和设备 | |
US11290372B2 (en) | Method and device for establishing multi-domain dual-home path | |
CN105515932B (zh) | 提高安全集群处理性能的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Applicant before: Huasan Communication Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |