《流表更新方法和流表更新装置.pdf》由会员分享,可在线阅读,更多相关《流表更新方法和流表更新装置.pdf(34页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104052685A43申请公布日20140917CN104052685A21申请号201310081828X22申请日20130314H04L12/93720130171申请人日立中国研究开发有限公司地址100190北京市海淀区科学院南路2号融科资讯中心C座北栋301申请人清华大学72发明人周烨李勇石颖吴娟金德鹏74专利代理机构中科专利商标代理有限责任公司11021代理人吴秋明54发明名称流表更新方法和流表更新装置57摘要流表更新方法和流表更新装置。根据本发明,提出了一种在多个网络节点中将基于旧规则的流表更新为基于新规则的流表的流表更新方法,包括从基于旧规则的流表和基于新规。
2、则的流表中均使用的至少一个匹配域中确定特定匹配域;选定特定匹配域中的未使用地址代替该特定匹配域中的原使用地址,来构造流表项,作为临时流表项;以及在新规则所涉及的各网络节点的流表的所述特定匹配域中使用由选定的地址构造的临时流表项,来临时实现新规则,直到旧规则所涉及的各网络节点中的基于旧规则的动作完成为止。51INTCL权利要求书1页说明书12页附图20页19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书12页附图20页10申请公布号CN104052685ACN104052685A1/1页21一种在多个网络节点中将基于旧规则的流表更新为基于新规则的流表的流表更新方法,包括从基于旧。
3、规则的流表和基于新规则的流表中均使用的至少一个匹配域中确定特定匹配域;选定特定匹配域中的未使用地址代替该特定匹配域中的原使用地址,来构造流表项,作为临时流表项;以及在新规则所涉及的各网络节点的流表的所述特定匹配域中使用由选定的地址构造的临时流表项,来临时实现新规则,直到旧规则所涉及的各网络节点中的基于旧规则的动作完成为止。2根据权利要求1所述的流表更新方法,其中,当基于旧规则的动作完成之后,将旧规则所涉及的流表项删除;在所有旧规则的流表项成功删除之后,在新规则所涉及的各网络节点上写入新规则的流表项,来替换之前写入的临时流表项,在数据包按照新规则的流表项处理之后,删除所有临时流表项。3根据权利要。
4、求1所述的流表更新方法,其中,所述网络节点是软件定义网络中的网络节点。4根据权利要求1所述的流表更新方法,其中,所述网络节点为交换机,所述旧规则是旧路径上的分组转发规则,所述新规则是新路径上的分组转发规则。5根据权利要求4所述的流表更新方法,其中,所述特定匹配域是分组转发的源地址域和/或目的地址域。6根据权利要求1所述的流表更新方法,其中,所述特定匹配域中的未使用的地址是预先设定的或者是随机选取的。7根据权利要求1所述的流表更新方法,其中,将统计得出的基于旧规则的流表和基于新规则的流表中均使用的匹配域中使用程度最小的匹配域确定为特定匹配域。8一种在多个网络节点中将基于旧规则的流表更新为基于新规。
5、则的流表的流表更新装置,包括从基于旧规则的流表和基于新规则的流表中均使用的至少一个匹配域中确定特定匹配域的单元;选定特定匹配域中的未使用地址代替该特定匹配域中的原使用地址,来构造流表项,作为临时流表项的单元;以及在新规则所涉及的各网络节点的流表的所述特定匹配域中使用由选定的地址构造的临时流表项,来临时实现新规则,直到旧规则所涉及的各网络节点中的基于旧规则的动作完成为止的单元。权利要求书CN104052685A1/12页3流表更新方法和流表更新装置技术领域0001本发明涉及软件定义网络,特别是用于软件定义网络中的流表更新方法和流表更新装置。背景技术0002基于OPENFLOW协议的软件定义网络S。
6、DN技术,其核心特点是实现数据平面和控制平面的解耦数据平面由OPENFLOW交换机、主机等组成;控制平面则是由控制器对全网进行集中式控制。具体地,各个交换机根据本地流表中的所有流表项来与数据包匹配,根据最佳匹配结果来处理数据包。控制器负责各个交换机本地流表中的所有流表项的写入、修改和删除。如果各个交换机遇到新的数据包,无法在本地流表中找到匹配结果,则将数据包通过控制平面链路上传给控制器,由控制器决定如何处理。数据包与流表项的匹配,是将数据包包头域与流表项中的匹配信息所包含的匹配域进行匹配,匹配方式包括完全匹配、最长匹配。常用的流表项匹配域包括源IP地址、目的IP地址、源MAC地址、目的MAC地。
7、址、VLAN标签、TCP端口等。0003现有文献介绍0004现有文献IMARKREITBLATT,NATEFOSTER,JENNIFERREXFORD,COLESCHLESINGERANDDAVIDWALKERABSTRACTIONSFORNETWORKUPDATEINACMSIGCOMM12,HELSINKI,FINLAND,AUGUST20120005文献I阐述软件定义网络中流表更新问题的必要性和重要性在软件定义网络中,由于路由切换、网络设备定期维修等原因,网络状态经常发生变化;控制器需要根据网络状态变化的原因,在多个交换机中进行多条流表项的更新,使其从旧规则更新至新规则。如果流表更新过程。
8、处理不恰当,可能导致网络内数据包的错误处理。文献I提出一种技术方案,给数据包打上不同的VLAN标签,以区别新、旧两套规则,并在交换机中把VLAN标签作为两套规则的流表区分标志。随后,控制器在各个交换机上写入基于新规则的流表项,此时在各交换机内仍有旧流表规则对应的流表项。最终,控制器在入口交换机上改变数据包的VLAN标签,让数据包依新规则对应的流表项进行转发,从而实现流表更新。0006在文献I中固定使用VLAN标签来区分新、旧两套规则,有如下问题1如果VLAN标签是两套规则中某些流表项的匹配信息,那么该方案不适用;2如果VLAN标签不是两套规则中任何流表项的匹配信息,例如在数据转发中一般不将VL。
9、AN标签作为流表项的匹配信息,那么可以使用该方案,然而,该方案修改了数据包的包头信息,在流表更新过程结束后无法将数据包的VLAN域改回原值,可能在后继操作中造成错误;3VLAN标签只有4096个,是一种重要网络资源,该方案将VLAN标签作为额外代价。发明内容0007为了克服现有技术的上述缺陷,提出了本发明。因此,本发明的目的是提出一种流表更新方法和流表更新装置,能够正确有效地实现流表更新,而无需使用固定包头域。说明书CN104052685A2/12页40008为了实现上述目的,根据本发明,提出了一种在多个网络节点中将基于旧规则的流表更新为基于新规则的流表的流表更新方法,包括从基于旧规则的流表和。
10、基于新规则的流表中均使用的至少一个匹配域中确定特定匹配域;选定特定匹配域中的未使用地址代替该特定匹配域中的原使用地址,来构造流表项,作为临时流表项;以及在新规则所涉及的各网络节点的流表的所述特定匹配域中使用由选定的地址构造的临时流表项,来临时实现新规则,直到旧规则所涉及的各网络节点中的基于旧规则的动作完成为止。0009优选地,当基于旧规则的动作完成之后,将旧规则所涉及的流表项删除;在所有旧规则的流表项成功删除之后,在新规则所涉及的各网络节点上写入新规则的流表项,来替换之前写入的临时流表项,在数据包按照新规则的流表项处理之后,删除所有临时流表项。0010优选地,所述网络节点是软件定义网络中的网络。
11、节点。0011优选地,所述网络节点为交换机,所述旧规则是旧路径上的分组转发规则,所述新规则是新路径上的分组转发规则。0012优选地,所述特定匹配域是分组转发的源地址域和/或目的地址域。0013优选地,所述特定匹配域中的未使用的地址是预先设定的或者是随机选取的。0014优选地,将统计得出的基于旧规则的流表和基于新规则的流表中均使用的匹配域中使用程度最小的匹配域确定为特定匹配域。0015另外,根据本发明,还提出了一种在多个网络节点中将基于旧规则的流表更新为基于新规则的流表的流表更新装置,包括从基于旧规则的流表和基于新规则的流表中均使用的至少一个匹配域中确定特定匹配域的单元;选定特定匹配域中的未使用。
12、地址代替该特定匹配域中的原使用地址,来构造流表项,作为临时流表项的单元;以及在新规则所涉及的各网络节点的流表的所述特定匹配域中使用由选定的地址构造的临时流表项,来临时实现新规则,直到旧规则所涉及的各网络节点中的基于旧规则的动作完成为止的单元。0016由此,针对软件定义网络的流表更新问题,本发明提出一种通用的技术方案,即基于两套规则来选择一个包头域,以此作为区分新、旧规则的标志;同时,在流表更新过程结束后,能够保持数据包的原有包头信息。相对于文献I中的使用固定包头域VLAN标签来作为区分标志的方案,本发明所提方案将根据新、旧两套规则来选择一个包头域或多个包头域的组合源IP、目的IP、源MAC、目。
13、的MAC、VLAN等,这就增加了本发明所提方案的通用性。另外,本发明所提方案能够实现在流表更新过程结束后恢复数据包的原有包头信息,从而避免文献I的方案中数据包在离开软件定义网络之后可能导致的各种错误处理。附图说明0017通过参考以下组合附图对所采用的优选实施方式的详细描述,本发明的上述目的、优点和特征将变得更显而易见,其中0018图1是示出了软件定义网络系统结构的图;0019图2是示出了控制器功能模块的图;0020图3是示出了交换机功能模块的图;0021图4是示出了控制器、交换机的流表存储模块的结构图;0022图5是示出了控制器、交换机中的流表信息存储格式的示意图;0023图6是示出了基于旧规。
14、则的全局流表信息存储情况的示意图;说明书CN104052685A3/12页50024图7是示出了控制器内流表更新模块的结构图;0025图8是示出了控制器内流表信息统计模块的具体内容的示意图;0026图9是示出了控制器内交换机分类模块的结构图;0027图10是示出了控制器内网络拓扑存储模块的具体内容的示意图;0028图11是示出了交换机内数据包与流表匹配模块的流程图;0029图12是示出了控制器内流表信息统计模块的流程图;0030图13是示出了控制器内交换机分类模块的流程图;0031图14是示出了本发明所提流表更新方案的流程图;0032图15是示出了算法1选择特定匹配域的流程图;0033图16是。
15、示出了算法2在匹配域中选择特殊地址的流程图;0034图17是示出了算法2中生成预设空白地址的流程图;0035图18是示出了算法2中随机选取特殊地址的流程图;0036图19是示出了算法3流表更新第1阶段的流程图;0037图20是示出了算法3流表更新第1阶段的时序图;0038图21是示出了算法4流表更新第2阶段的流程图;0039图22是示出了算法4流表更新第2阶段的时序图;0040图23是示出了算法5处理占用特殊地址的新数据流的流程图;0041图24是示出了实施例1的流表更新过程的中间状态图;0042图25是示出了实施例1中2个匹配域的可用值计算结果的图。具体实施方式0043下面结合附图124对实。
16、施例1进行说明。0044所述实施例描述当软件定义网络中发生路径切换时,对旧路径、新路径上的交换机中的流表进行更新的过程。实施例中的旧路径、新路径都以主机108为源,以主机109为目的,旧路径上的交换机顺序为“交换机102交换机103交换机104交换机105”,新路径上的交换机顺序为“交换机102交换机106交换机107交换机105”。0045图1示出了一个软件定义网络的系统结构,具体由1个控制器控制器101、6个交换机交换机102、交换机103、交换机104、交换机105、交换机106、交换机107和7个主机主机108、主机109、主机110、主机111、主机112、主机113、主机121构成。
17、。控制器101与各个交换机均有控制链路相连,用于交换控制平面信息120。所述控制链路可以是以带内方式连接的虚拟链路,也可以是以带外方式连接的物理链路。各个交换机之间通过物理链路相连,构成全局网络拓扑,总计有6条物理链路,例如物理链路114连接交换机102和交换机103。每个主机与一个交换机相连主机108与交换机102相连、主机109与交换机105相连、主机110和主机111都与交换机106相连、主机112与交换机107相连、主机113与交换机104相连、主机121与交换机107相连。0046图2示出了控制器101内部的功能模块,这些模块按照用途可以分为两部分。第一部分是控制器101的基本模块,。
18、用以实现软件定义网络的各项基本功能,包括用于存储网络拓扑信息例如物理链路信息的网络拓扑存储模块201、用于向交换机102107写入、修改流表的流表写入/修改模块202、用于进行集中算路的路由计算模块203、用于主动探说明书CN104052685A4/12页6测网络拓扑变化的网络拓扑发现模块204、用于对其他模块例如路由计算模块203、网络拓扑发现模块204进行编译和调试的编译及调试模块205、用于与交换机102107进行通信的控制平面通信模块206、用于存储交换机102107流表信息的全局流表存储模块207;第二部分则是控制器101用以实现本发明所提方案的模块,包括用于统计流表更新事件相关信息。
19、的流表更新模块208、用于分析全局流表存储模块207中信息的流表信息统计模块209、用于对待更新流表的交换机交换机102107进行分类的交换机分类模块210。本发明所提方案除了需要用到第二部分中的3个模块,也需要用到第一部分中的部分功能模块。0047图3示出了交换机102107内部的功能模块,其中控制平面通信模块301实现与控制器101之间的通信,本地流表存储模块302用于存储本地流表,交换机系统配置模块303用于实现交换机102107的相应配置工作,数据包与流表匹配模块304用于为数据包寻找适用的流表,路由转发模块305用于处理数据包。0048下面通过图4图6对流表的存储模块、存储格式进行说。
20、明,并示出实施例中的基于旧规则的全局流表信息。0049图4示出了两个流表存储模块的结构图,控制器101内全局流表存储模块207如图41所示、交换机102107内本地流表存储模块302如图42所示。全局流表存储模块207中有2个存储结构预设地址存储模块401和全局交换机流表信息404。预设地址存储模块401,包含IP地址列表402和MAC地址列表403这2部分,分别存储预设的IP、MAC地址。全局交换机流表信息404,存储了所有交换机交换机102107的本地流表信息405410,以及流表项数量统计总表411。本地流表存储模块302包括本地流表412和本地流表项数量统计表413。0050由于各个交。
21、换机交换机102107中的流表信息、流表项数量统计同时也在控制器101中进行存储,因此在交换机102107、控制器101中采用一样的流表存储格式,如图5中的表51和表52所示。表51示出了具体的流表存储格式,每一条流表项包括匹配域、执行操作、优先级这3部分。常用的匹配域包括源MAC、目的MAC、源IP、目的IP、VLAN、TCP,执行操作包括转发、丢包、上传控制器、修改等,优先级则是065536的数值值越大越优先。表52示出了流表项数量统计表的内容,包括流表项容量、现有流表项数、现有流表项数/流表项容量这3个统计结果,流表项容量指交换机能够容纳的流表项总数由交换机的具体型号决定,现有流表项数指。
22、已经写入的流表项数量,现有流表项数/流表项容量显示流表的已使用程度。0051图6示出了实施例中基于旧规则的全局流表信息存储情况。表61示出交换机102107中的流表信息总表,表62示出交换机102107的流表项数量统计总表。与路径切换相关的流表项如下交换机102的流表项1、交换机103的流表项1、交换机104的流表项1、交换机105的流表项1。这4条流表项都使用了源IP、目的IP这2个匹配域,源IP地址为1661119050主机108的IP地址,目的IP地址为1661111050主机109的IP地址。表61的信息由控制器101产生,当控制器101每次向各个交换机交换机102107写入、修改或者。
23、删除流表项,同时会在表61中添加、修改或者删除相应的流表项。0052图7示出了控制器101内流表更新模块208的结构图,包括流表更新事件统计信说明书CN104052685A5/12页7息701、旧规则的流表信息702、新规则的流表信息703这3部分。流表更新事件统计信息701的详细内容由表71示出,记录最近1天内每次流表更新事件的发生时刻、距上次时间的时间间隔、事件耗费时间;同时,根据所有事件的信息,计算流表更新事件的发生频率N次/秒、平均间隔T秒、平均耗费时间T0秒。旧规则的流表信息702的详细内容由表72示出,记录交换机索引、匹配信息、执行操作和优先级;新规则的流表信息703的详细内容由表。
24、73示出,记录交换机索引、匹配信息、执行操作和优先级。0053图8示出了控制器101内流表信息统计模块209的具体内容,由5张表构成。表81示出是否统计各个交换机交换机102107的流表信息,1表示统计,0表示不统计。基于表81的信息,表82示出各常用匹配域在已统计流表信息的交换机所有流表项中的使用频次情况,对每个常用匹配域记录使用频次,再根据已统计流表信息的交换机的流表项总数,计算“使用频次/已统计流表信息的交换机流表项总数”一值。同样基于表81的信息,表83示出各常用匹配域在已统计流表信息的交换机流表中的地址使用情况,对每个常用匹配域记录已使用地址数,再根据所辖地址总数,计算“已使用地址数。
25、/所辖地址总数”一值。表84示出各常用匹配已使用地址的具体存储结构,源IP、目的IP地址均使用24层树存储,源MAC、目的MAC地址均使用哈希表存储,VLAN、TCP均使用定长数组存储。根据表81和全局流表存储模块207中表62的信息,表85示出已统计流表信息的交换机的流表项数量情况,并计算已统计流表信息的交换机的“现有流表项数/流表项容量”一值。0054图9示出了控制器101内交换机分类模块210的结构图,具体包括待更新交换机列表901详见表91、入口交换机列表902详见表92、中间交换机列表903详见表93、出口交换机列表904详见表94。表91示出各个交换机交换机102107是否需要进行。
26、流表更新,在实施例中,交换机102107都需要更新流表;表92示出各个交换机交换机102107是否为入口交换机,在实施例中,交换机102是入口交换机;表93示出各个交换机交换机102107是否为中间交换机,在实施例中,交换机103、交换机104、交换机106、交换机107是中间交换机;表94示出各个交换机交换机102107是否为出口交换机,在实施例中,交换机105是出口交换机。0055图10示出了控制器101内网络拓扑存储模块201的具体内容,表101示出各个物理链路物理链路114119的平均延时情况。根据表101的内容,可以计算各个主机主机108113之间的端到端延时。例如,在实施例中,旧路。
27、径上交换机102与交换机105之间的端到端延时为72秒,新路径上交换机102与交换机105之间的端到端延时为51秒。0056图11示出了交换机102107内数据包与流表匹配模块304的具体匹配流程,以当数据包从主机108到达交换机102时为例。在S1101中交换机102提取数据包包头信息,在S1102中数据包与本地流表存储模块412中的所有流表项依次进行完全匹配。根据匹配结果,在S1103中进行选择判断“是否存在完全匹配的流表项”。如果S1103的判断结果为“否”,则在S1105中交换机102将数据包上传至控制器101处理,等待控制器101制定相应流表规则来处理该数据包。如果S1103的判断结。
28、果为“是”,则在S1104中再进行选择判断“是否存在多条完全匹配的流表项”。如果S1104的判断结果为“否”,则在S1107中交换机102将该条流表项作为匹配结果。如果S1104的判断结果为“是”,则在S1106中交换机102选择优先级最高的流表项作为匹配结果。在S1108中,交换机102按照匹配结果中的执行说明书CN104052685A6/12页8操作对数据包进行相应处理即可。0057图12示出了控制器101内流表信息统计模块209的具体计算流程。由于只需要对受流表更新影响的交换机交换机102107进行流表信息统计,在S1201中控制器101把交换机分类模块210的表91信息更新到流表信息统。
29、计模块209的表81中。在S1202中控制器101把全局流表存储模块207的表61中信息更新到流表信息统计模块209的表84中,即将各常用匹配域的已使用地址分别进行存储。在S1203中控制器101根据流表信息统计模块209的表84和全局流表存储模块207的表62,更新流表信息统计模块209的表82、表83、表85中相应信息。上述即完成了流表信息统计模块209内各表内容的一次计算过程。在S1204中控制器101对流表信息统计模块209内各表内容进行更新操作,每隔T秒流表更新模块208的表71中数据重新提取全局流表存储模块207的表61信息,来对流表信息统计模块209的表82、表83、表84、表8。
30、5的信息进行更新。0058图13示出了控制器101内交换机分类模块210的具体流程。在S1301中控制器101提取流表更新模块208中的表72、表73信息,即分析新、旧两套规则的流表信息。在S1302中控制器101利用流表更新模块208的表72、表73中信息来更新交换机分类模块210的表91,即确定哪些交换机需要更新流表。具体地,流表更新模块208的表72、表73中所有流表项“交换机索引”一栏中的交换机,都是需要进行流表更新的交换机。在实施例中,由于流表更新模块208中的表72、表73中8条流表项中出现了6个交换机交换机102107,则交换机分类模块210的表91中交换机102107都需要进行。
31、流表更新。在S1303中控制器101对入口交换机进行分析,假设数据包按新规则转发,根据流表更新模块208中的表73中信息,经过交换机分类模块210的表91中的第一个交换机,记为入口交换机更新交换机分类模块210的表92。在S1304中控制器101对中间交换机和出口交换机进行分析,数据包经过入口交换机之后,根据流表更新模块208的表73中信息,将途经交换机分类模块210的表91中所有其他交换机,除最后一个记为出口交换机,其他均记为中间交换机更新交换机分类模块210的表93、表94。0059下面结合图1223对实施例1中的流表更新过程进行说明。其中图14为总体流程,图13是图14中S1403的详细。
32、流程,图12是图14中S1404的详细流程,图15是图14中S1405的详细流程,图16、图17、图18是图14中S1406的详细流程,图19是图14中S1407的详细流程,图20是图14中S1407的时序,图21是图14中S1408的详细流程,图22是图14中S1408的时序,图23是图14中S1410的详细流程。在图14中,本实施例的流表更新过程分为预处理S1401S1406、阶段1S1407、阶段2S1408S1411这3部分。在S1401中控制器101触发流表更新过程开始。在S1402中控制器101对新、旧两套规则进行分析,并更新流表更新模块208的表72、表73中信息。在S1403中。
33、控制器101在交换机分类模块210中,对待更新流表的交换机进行分类,详细流程如图13所示。根据交换机分类结果,在S1404中控制器101在流表信息统计模块209中,对待更新流表的交换机中的流表信息进行分析,详细流程如图12所示。在S1405中控制器101利用算法1进行特定匹配域的选定,详细流程如图15所示。根据算法1的结果,在S1406中控制器101利用算法2进行特定匹配域中特殊地址的选定,详细流程如图16所示。根据上述2个算法的结果,在S1407中控制器101根据算法3进行流表更新第1阶段,详细流程如图19所示,时序图如图20所示。流表更新第1阶段结束后,在S1408中控制器101根据算法4。
34、进行流表更新第2阶段,说明书CN104052685A7/12页9详细流程如图21所示,时序图如图22所示。在S1409中控制器101进行“在第2阶段中该特殊地址是否被新数据流使用”的选择判断。如果S1409的判断结果为“是”,则在S1410中控制器101根据算法5对该数据流进行处理,详细流程如图23所示。如果S1409的判断结果为“否”,则在S1411中控制器101认为整个流表更新过程已完成。0060图15示出了算法1选择特定匹配域的流程图。在S1501中控制器101根据流表更新模块208的表72、表73中所有流表项的“匹配信息”一栏中的内容,来确定新、旧两套规则中所有流表项匹配信息所使用的匹。
35、配域,在本实施例中,所使用的匹配域为源IP地址、目的IP地址。根据匹配域的个数,在S1502中进行“是否只有1个匹配域”的选择判断。如果S1502的判断结果为“是”,在S1503中控制器101将其选定为特定匹配域。如果S1502的判断结果为“否”,在S1504中控制器101需要在多个匹配域中选择特定的匹配域。如果存在多个匹配域,为每个匹配域AI设定可用值CI,来表征这个匹配域的已使用程度,作为选择匹配域的指标。在本实施例中,有2个匹配域源IP地址、目的IP地址,记源IP地址为A1、目的IP地址为A2、源IP地址的可用值为C1、目的IP地址的可用值为C2。在S1505中,控制器101对每个匹配域。
36、AI进行可用值计算CINIMI。NI指AI在流表项中出现频次比例,即流表信息统计模块209中表82的“使用频次/已统计流表信息的交换机现有流表项总数”一值,该数据每隔T秒更新一次。MI指AI的已使用地址比例,即流表信息统计模块209中表83的“已使用地址数/所辖地址总数”,该数据每隔T秒更新一次。两个权重、根据如下算式计算2,101。其中,代表“所有待更新流表的交换机中现有流表项数/流表项容量”一值,数据来自流表信息统计模块209中表85,该数据每隔T秒刷新一次。在S1506中,控制器101进行“是否某个匹配域的MI1”的选择判断。如果S1506的判断结果为“是”,在S1507中控制器101记。
37、该匹配域的可用值CI。如果S1506的判断结果为“否”,在S1508中控制器101对所有匹配域的可用值进行排序。在S1509中,控制器101进行“是否对所有匹配域都有C”的选择判断。如果S1509的判断结果为“是”,则在S1510中控制器101选择2个NI值最小、次最小的匹配域AIAJ;如果S1509的判断结果为“否”,则在S1511中控制器选择可用值最小的AI作为特定匹配域。至S1512为止,控制器101已经选择出特定的匹配域,算法1结束。例如,在本实施例中,2个匹配域的相应计算结果如图25中表251所示,源IP地址的可用值为13320,目的IP地址的可用值为19970,且2个匹配域的MI均。
38、小于1,CI均为有限值,则控制器101选择可用值最小的源IP地址作为特定匹配域。0061图16示出了算法2在匹配域中选择特殊地址的流程图。根据算法1的结果,在S1601中控制器101已经知道选定的匹配域,例如,在本实施例中,源IP地址即是特定匹配域。在S1602中,控制器101进行“是否只选定1个匹配域”的选择判断。如果S1602的判断结果为“否”,则在S1603中控制器101使用2个匹配域AIAJ,在S1604中控制器101通过随机选取的方式,在每个域中选择一个地址,构成地址对AIAJ。在S1605中,控制器101进行“该地址对是否已在全局流表存储模块207的表61中出现”的选择判断。如果S。
39、1605的判断结果为“是”,则回到S1604继续随机产生地址对;如果S1605的判断结果为“否”,在S1606中控制器101将其选为特殊地址。举例说明S1603S1606,假设某次流表更新过程中,控制器101使用VLAN、目的IP地址这2个域作为特定匹配域,控制器101在S1604中通过随机选取方式产生地址对“VLAN5、目的IP地址1661111711”,该地址对在S1605说明书CN104052685A8/12页10中与全局流表存储模块207的表61中所有表项的匹配信息进行依次完全匹配,结果发现全局流表存储模块207的表61中交换机103的流表项2同样使用“VLAN5、目的IP地址1661。
40、111711”作为匹配信息,因此该地址对不能使用,继续回到S1604随机出地址对“VLAN50、目的IP地址16611111131”,在此与全局流表存储模块207的表61中所有表项进行匹配,发现“VLAN50、目的IP地址16611111131”未被使用,则在S1606中控制器101将其作为选定的特殊地址。如果S1602的判断结果为“是”,则在S1607中控制器101使用1个匹配域AI,需要选出一个特殊地址AI。在S1608中,进行“是否有预设空白地址”的选择判断,。如果S1608的判断结果为“是”,则在S1609中控制器101随机选择一个预设空白地址作为特殊地址;如果S16008的判断结果为。
41、“否”,则在S1610中控制器101以随机选择的方式选择一个未被使用地址作为特殊地址,详细流程如图18所示。其中S1608和S1609所使用的“预设空白地址”由控制器101在系统初始化时自动设定或者人工设定,其中自动设定的具体流程如图17所示。至S1611为止,已经在特定匹配域中选定特殊地址,算法2结束。例如,在本实施例中,只有1个特定匹配域,即源IP地址,因此控制器101只需在其中选择一个特殊地址,用于后继流表更新过程;控制器101以随机选择的方式,在源IP地址中选择出一个未被使用的地址1661115050,作为特殊地址。0062图17示出了算法2中使用的预设空白地址的生成方法。在S1701。
42、中,控制器101提取流表更新模块208的表71中的2个数据流表更新事件发生频率N次/秒、每次更新平均耗费时间T0秒。在S1702中,控制器101根据爱尔兰B公式计算所需预设的空白地址数N0。在S1703中,控制器101在各个常用匹配域中,只针对IP、MAC地址的4个域进行空白地址预设。在S1704中,进行“该域是否使用IP地址”的选择判断。如果S1704的判断结果为“是”,在S1705中利用控制器101定义的保留IP地址参考国际标准RFC1918作为预设地址,例如C类地址段19216800到192168255255。如果S1704的判断结果为“否”,在S1706中控制器101继续进行“该域是否。
43、使用MAC地址”的选择判断。如果S1706的判断结果为“否”,则在S1707中控制器101不再对其他匹配域进行空白地址的预设。如果S1706的判断结果为“是”,在S1708中控制器101在网络中创建若干主机,分配MAC地址,这些主机不进行任何通信,则MAC地址不在数据流中使用,可作预设空白地址。例如,在实施例中,控制器101创建主机121,为期分配MAC地址001F16152EB2,并将其作为预设空白MAC地址。在S1709中,控制器101已对IP、MAC地址相关的4个常用域进行空白地址的预设。0063图18示出了算法2中随机选取特殊地址的具体流程。在S1801中,控制器101提取已选定匹配域。
44、的信息,例如,在实施例中,已选定匹配域为源IP地址。在S1802中,进行“该域是否使用IP地址”的选择判断。如果S1802的判断结果为“否”,控制器101在S1803中随机选取该域的一个地址,再在S1804中进行“该地址是否已在对流表信息统计模块209的表84中出现”的选择判断。如果S1804的判断结果为“是”,则继续回到S1803进行随机地址选取;如果S1804的判断结果为“否”,则控制器101在S1805中将其选为特殊地址。如果S1802的判断结果为“是”,控制器101在S1806中提取对流表信息统计模块209的表84中由该域已用地址构成的24层树,例如,在实施例中,提取表84中由源IP地。
45、址中已使用地址构成的24层树。针对这颗24层树,在S1807中进行“第24层叶子节点是否张满”的选择判断。如果S1807的判断结果为“是”,控制器101在S1808中根据第24层叶子节点说明书CN104052685A109/12页11信息选择一个子网地址已使用数量最少的C类网段,并在S1809中在该网段中寻找一个空白地址作为特殊地址。如果S1807的判断结果为“否”,控制器101在S1810中选择一个未被使用的C类网段,任选其中一个子网地址作为特殊地址。在S1811中,控制器101已经在选定的特定匹配域中选出特殊地址。0064图19示出了算法3流表更新第1阶段的具体流程。根据流表更新模块208。
46、的表72和表73信息,新、旧两套规则的所有流表项都使用共同的匹配信息源IP地址1661119050目的IP地址1661111050。下文中,源IP地址1661119050用A指代,目的IP地址1661111050用B指代参考图241。基于算法1和算法2,已经选定用于流表更新过程的特定地址Z,本实施例中Z是源IP地址1661115050参考图242。在流表更新第1阶段中,首先不删除旧路径上各个交换机交换机102105的流表项,使得数据包能够继续传输在旧路径上按照旧规则传输;然后,在新路径上各个交换机交换机102、交换机105107中按照一定顺序写入以ZB为匹配信息的流表项,并在入口交换机交换机1。
47、02上通过新流表项将数据包的包头信息AB改为ZB,从而实现从旧路径到新路径的切换;接着,等待旧路径上的端到端延时,以保证旧路径上的所有数据包最终完成传输过程;最后,删除旧路径上各个交换机交换机102、交换机105107中的基于旧规则的流表项。在S1901中,控制器101基于算法1和算法2,已经选定了特定匹配域算法1,并在该域中选定了一个特殊地址算法2,来用于流表更新过程中。例如,在本实施例中,特定匹配域是源IP地址,特定地址Z。在S1902中,控制器101向中间交换机交换机106107、出口交换机交换机105写入以ZB作为匹配信息的新流表项参考图242。在S1903中,控制器101要求上述交换。
48、机即交换机105107在新流表项写入成功后向控制器返回写入成功信息。在S1904中,进行“是否每个交换机都已返回写入成功信息”的选择判断。如果S1904的判断结果为“否”,控制器101在S1905中等待其他交换机返回写入成功信息。如果S1904的判断结果为“是”,控制器101在S1906中,向入口交换机交换机102写入2条新流表项第1条是以ZB为匹配信息的流表项;第2条是以AB为匹配信息的流表项,将数据包的包头信息从AB改为ZB。这2条流表项的优先级应高于入口交换机交换机102的所有流表项的优先级,例如,在本实施例中,根据全局流表存储模块207的表61中信息,入口交换机交换机102上所有流表项。
49、的优先级最高值为12,则新写入的2条流表项的优先级可设为20参考图243。在S1907中,入口交换机交换机102在这2条流表项写入成功后向控制器101返回写入成功信息。在S1908中,根据网络拓扑存储模块201的表101中物理链路平均延时信息,控制器101可以计算旧路径的端到端延时,在等待该延时长度后,在交换机102104中删除旧规则对应的流表项,例如,在本实施例中,删除交换机102的流表项1、交换机103的流表项1、交换机104的流表项1参考图243。在S1909中,控制器101要求上述交换机交换机102104在流表项删除成功后向控制器101返回删除成功信息。在S1910中,进行“是否每个交换机都已返回删除成功信息”的选择判断。如果S1910的判断结果为“否”,控制器101在S1911中等待其他交换机返回删除成功信息。如果S1910的判断结果为“是”,则控制器101在S1912中已完成流表更新第1阶段参考图244。此时,数据包按照以ZB为匹配信息的流表项转发,已经从旧路径切换到新路径上。0065图20用时序图说明了算法3的执行过程。S2001表示控制器101向中间交换机说明书CN104052685A1110/12页12交换机106107、出口交换机交换机105写入以ZB作为匹配信息的新流表项。S200。