一种基于sdn的全局流表生成方法及装置的制造方法_2

文档序号:9202669阅读:来源:国知局
域字段,确定具有相同数据流标识的交换设备的信息的集合,在每个集合中根据转发数据流的顺序,确定转发链路中交换设备的信息的顺序。由于在本发明实施例中可以根据交换设备中保存的转发流表,识别出归属于同一转发链路的交换设备,并根据转发数据流的顺序,确定转发链路中交换设备的顺序。因此可以有效的获取当前周期网络拓扑图中的每个数据流的信息,从而可以实现对整个网络数据流的管控,对恶意流进行遏制,提高网络的安全性。
【附图说明】
[0036]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037]图1为本发明实施例提供的一种基于SDN的全局流表生成过程;
[0038]图2为本发明实施例提供的网络拓扑图;
[0039]图3A为数据流的匹配域字段的示意图;
[0040]图3B本发明实施例生成的全局流表的结构;
[0041]图3C为本发明实施例提供的一种基于SDN的全局流表另一生成过程;
[0042]图4为本发明实施例提供的一种基于SDN的全局流表生成装置结构示意图。
【具体实施方式】
[0043]为了有效的提高网络的完全性,对网络中的数据流进行管控,本发明实施例提供了一种基于SDN的全局流表生成方法及装置。
[0044]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0045]图1为本发明实施例提供的一种基于SDN的全局流表生成过程,该过程包括以下步骤:
[0046]SlOl:网络控制器按照设定的时间间隔,获取网络拓扑图中每台交换设备上保存的转发流表。
[0047]本发明实施例中为了使网络控制器具有全局视图以及集中管理的能力,网络控制器需要建立全网状的全局流表,以便了解网络中的每一条数据流的流向和途径。
[0048]网络拓扑图由交换设备及交换设备之间连接的链路构成,每台交换设备作为网络拓扑中的一个节点,该节点以交换设备的dpid(Data path Id)来标识,交换设备之间连接的链路以连接两个节点的边来标识,并标识具体的连接的是交换设备的哪个端口。
[0049]由于网络拓扑和流量是实时变化和更新的,因此为了保证控制的准确性,满足网络不断更新的需求,在本发明实施例中可以按照设定的时间间隔来生成全局流表,该时间间隔例如可以是每5秒、3秒或者10秒等。
[0050]S102:根据转发流表中每个流表项的匹配域字段,确定具有相同数据流标识的交换设备的信息的集合,其中所述交换设备的信息包括:交换设备的标识信息及其转发该数据流的端口的信息。
[0051]交换设备根据当前其转发的数据流,在本地保存有相应的转发流表,每个流表项中记录一条转发信息。具体的,该流表项中记录有匹配域字段match和动作字段act1n。在该匹配域字段match中记录有转发的数据流的标识L及转发该数据流的端口的信息,并且该match中还可以记录有该数据流的源地址和目的地址信息等。具有相同数据流标识的交换设备的信息的集合,即为该数据流标识的数据流流经的交换设备的集合。
[0052]S103:根据转发数据流的顺序,在每个集合中确定交换设备的信息的存储顺序。
[0053]具体的,可以将交换设备的信息作为一个二元组来保存,在每个集合中保存有多个二元组,构成一个二元组集合,每个二元组可以表示为(ni,u),该二元组表示该数据流流经交换设备ni,通过其转发端口 u转发出去。
[0054]全局流表生成后,在该全局流表中针对每个数据流标识,保存有对应的二元组集合,在该二元组集合中按照转发该数据流的顺序,依次存储有每台交换设备的信息,其中该交换设备的信息包括:交换设备的标识信息及交换设备转发该数据流的端口的信息。网络控制器获取了全局流表后,可以依据该全局流表进行流量工程,例如统计当前网络拓扑中共存在多少条数据流,或者,在发现恶意数据流时,根据全局流表中记录的该数据流对应的转发链路,通知该数据流的源端停止该数据流的转发等。
[0055]在本发明实施例中在每个二元组集合中,根据数据流的转发顺序,将多个二元组进行排序,从而确定转发链路中交换设备的顺序,即该数据流依次流经了哪些交换设备,通过交换设备的哪个端口转发。
[0056]由于在本发明实施例中可以根据交换设备中保存的转发流表,识别出归属于同一转发链路的交换设备,并根据转发数据流的顺序,确定转发链路中交换设备的顺序。因此可以有效的获取当前周期内,网络拓扑中的每个数据流的信息,从而可以实现对整个网络数据流的管控,对恶意流进行遏制,提高网络的安全性。
[0057]具体的,网络控制器获取了网络拓扑图,如图2所示的网络拓扑图,在该网络拓扑图中,交换设备及交换设备之间连接的链路分别抽象为图中的节点和边。在图2中每个节点nj代表唯一的一台交换设备,每台交换设备拥有一系列端口,不同的端口连接不同的链路。
[0058]网络拓扑图中的边则代表链路,每条链路对应的边连接两台交换设备对应的节点,并且在每条边上标识交换设备对应的转发端口。每条边可以表示为e (ni, nj, u, v), e代表该链路连接节点ni和节点nj,位于该链路的转发端口分别为节点ni上的端口 u和节点nj上的端口 V。由于每台交换设备具有多个端口,每个端口对应的转发链路不同,因此通过端口可以区分具体的转发链路。
[0059]根据网络拓扑图中的边和节点,以及转发流表中每个流表项中记录的匹配域字段,即可确定具有相同数据流标识的交换设备的信息的集合,交换设备的信息包括:交换设备的标识信息及其转发该数据流的端口的信息,每个交换设备的信息构成一个二元组,具有相同数据流标识的交换信息的信息,构成一个二元组集合。
[0060]具体的,在本发明实施例中可以创建一个空的hashmap表,该表用于存储确定的每个二元组集合,在存储每个二元组集合时,可以将该二元组集合对应的数据流的数据流标识作为key,该二元组集合作为value。例如可以在hashmap表中保存L{ (nl, 3),(n2, 2),(n3,2),(n6,2),(n7, null) },该信息表示该数据流的数据流标识为L,(nl, 3)表示该数据流流经交换设备nl,经由其端口 3转发出去。
[0061]在该二元组集合中,根据转发该数据流的顺序,即可确定转发链路中交换设备的信息的顺序,具体的确定顺序后,可以在该二元组集合中按照转发该数据流的顺序依次存储每个交换设备的信息。
[0062]具体的,在确定转发链路中交换设备的信息的存储顺序时,可以根据每个集合中包含的交换设备的信息,在网络拓扑图中标记每个交换设备;
[0063]并采用广度优先搜索算法,在每个集合中确定转发链路中交换设备的信息的存储顺序。采用广度优先搜索算法,在每个集合中确定转发链路中交换设备的信息的存储顺序包括:
[0064]针对每个集合,在该集合中选择任一第一交换设备的信息;
[0065]判断该第一交换设备的该端口是否为无效端口 ;
[0066]如果是,则确定该第一交换设备位于转发链路的末端,根据网络拓扑图中的标记识别该集合中与该第一交换设备连接的上一跳第二交换设备,将该第二交换设备的信息排列在第一交换设备的信息之前,之后继续识别第二交换设备的上一跳交换设备,直至将该集合中的交换设备的信息排序完成;
[0067]如果否,根据网络拓扑图中的标记,判断在该集合中与第一交换设备连接的第二交换设备是否为一台;
[0068]如果是,确定第一交换设备位于转发链路的首端,根据网络拓扑图中的标记及该第一交换设备转发该数据流的端口,识别该集合中与该第一交换设备连接的下一跳第二交换设备,将该第二交换设备的信息排列
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1