[发明专利]流簇交换路由机制OpenFlow组表选择方法有效
申请号: | 201810143048.6 | 申请日: | 2018-02-11 |
公开(公告)号: | CN108337168B | 公开(公告)日: | 2021-01-05 |
发明(设计)人: | 郭志强;董晓东;陈胜;周晓波;李克秋 | 申请(专利权)人: | 天津大学 |
主分类号: | H04L12/721 | 分类号: | H04L12/721;H04L12/751;H04L12/803;H04L12/933 |
代理公司: | 天津市北洋有限责任专利代理事务所 12201 | 代理人: | 刘国威 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 交换 路由 机制 openflow 选择 方法 | ||
1.一种流簇交换路由机制OpenFlow组表选择方法,其特征是,步骤如下:
1)软件定义网络控制平面的控制器感知底层网络拓扑,计算源网络设备到目的网络设备之间的多条可达路径;
2)控制器将可达路径上交换机的每个可达出端口都作为组表项的动作桶,并以组表项的形式下发到每个交换机上;
3)初始化上次到达时间哈希表:该哈希表记录每个流当前最后一个包到达交换机的时间;
4)初始化上次离开时间哈希表:该哈希表记录每个流当前最后一个包的出端口;
5)初始化超时值timeout:该超时值用于区分不同的流簇,要大于负载均衡多条并行路径的最大延时差;
6)当交换机的端口接收到数据包时,根据包括入端口、源IP地址、目的IP地址、源端口、目的端口的五元组计算该包的哈希值hash_key,并记录该包到达交换机的时间arrive_time;
7)如果上次到达时间哈希表中不存在关键字为hash_key的记录,则将关键字hash_key对应的记录到达添加到上次到达时间哈希表中;从该包对应的组表项的动作桶集中随机选择一个动作桶指示的端口作为出端口output_port,将关键字hash_key对应的记录output_port添加到上次离开时间哈希表中,并执行下面的步骤11,否则,执行下面的步骤8;
8)从上次到达时间哈希表中获得关键字hash_key对应的该包所属流的上一个包到达交换机的时间记录last_time,更新上次离开时间哈希表中关键字hash_key对应的记录为到达时间,如果到达时间arrive_time减去上一个包到达交换机的时间last_time后得到的时间值大于等于timeout成立,则执行下面的步骤9;否则,执行下面的步骤10;
9)从该包对应的组表项的动作桶集中随机选择一个动作桶指示的端口作为出端口output_port,将关键字hash_key对应的记录output_port添加到上一包出端口last_output_port哈希表中,并执行下面的步骤11;
10)从last_output_port哈希表中获得关键字hash_key对应的该包所属流的上一包的出端口记录作为output_port,执行下面的步骤11;
11)将该包从交换机的端口号为output_port的端口发往下一跳,执行步骤6。
2.如权利要求1所述的流簇交换路由机制OpenFlow组表选择方法,其特征是,具体步骤是:
1)底层网络拓扑中,TCP发送端为IP:10.0.0.1,Port:3301,TCP接收端为IP:10.0.0.2,Port:3302,收发端之间的可达路径有两条,分别为:和
2)软件定义网络控制器将组表项下发到每个交换机上,下发到交换机S1组表项如下所示:
group_id=1,type=select,selection_method=flowlet_switching,bucket=output:2,bucket=output:3
3)初始化last_arrive_time哈希表:该哈希表记录每个流当前最后一个包到达交换机的时间;
4)初始化last_outout_port哈希表:该哈希表记录每个流当前最后一个包的出端口;
5)初始化超时值timeout:该超时值用于区分不同的流簇,要大于负载均衡多条并行路径的最大延时差;
6)发送端发往接受端的数据包在交换机S1上根据组表选择算法进行以下处理
6.1.1)交换机S1接收到发送端的第一个数据包,根据五元组计算该包的hash值为hash_key,五元组是:入端口=1、源IP地址=10.0.0.1、目的IP地址=10.0.0.2、源端口=3301、目的端口=3302;
6.1.2)last_arrive_time哈希表中不存在关键字为100的记录,则将关键字100对应的记录arrive_time=867674us添加到last_arrive_time哈希表中,执行下面的步骤6.1.3;
6.1.3)从该包匹配的组表项动作桶集中随机选择一个动作桶指示的端口作为出端口output_port=2,将关键字100对应的记录output_port=2添加到last_output_port哈希表中,将该包从交换机的2号端口发出;
6.2.1)交换机S1接收到发送端的第二个数据包,根据五元组计算该包的hash值,记录该包到达交换机的时间arrive_time;
6.2.2)从last_arrive_time哈希表中获得关键字100对应第一个包到达交换机的时间记录last_time=867674us,更新last_arrive_time哈希表中关键字100对应的记录为arrive_time=868125us;因为arrive_time减去last_time等于451,451小于500成立,所以执行下面的步骤6.2.3;
6.2.3)从last_output_port哈希表中获得关键字100对应的第一个包的出端口记录output_port=2,将该包从交换机的2号端口发出;
6.3.1)交换机S1接收到发送端的第三个数据包,根据五元组计算该包的hash值为,记录该包到达交换机的时间arrive_time;
6.3.2)从last_arrive_time哈希表中获得关键字100对应第二个包到达交换机的时间记录,更新last_arrive_time哈希表中关键字100对应的记录为arrive_time;因为arrive_time减去last_time等于512,512大于500成立,所以执行下面的步骤6.3.3;
6.3.3)从该包匹配的组表项动作桶集中随机选择一个动作桶指示的端口作为出端口output_port=3,将关键字100对应的记录output_port=3添加到last_output_port哈希表中;将该包从交换机的3号端口发出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810143048.6/1.html,转载请声明来源钻瓜专利网。