网络路径优化方法及SDN控制器与流程

文档序号:14351174阅读:317来源:国知局
网络路径优化方法及SDN控制器与流程

本发明实施例涉及通信领域,具体而言,涉及一种基于软件定义网络(softwaredefinednetwork,sdn)之网络路径优化方法及sdn控制器。



背景技术:

多路径传输控制协议(multipathtransmissioncontrolprotocol,简称:mptcp)的核心思想是在应用层和传输层中间加入支持多路径传输的mptcp层,将传统的tcp数据分为多个tcp子流,不同tcp子流沿不同路径传输。

mptcp是一个端到端协议,两端根据可用端口及可用ip地址来决定是否建立或增加mptcp子流,并为建立或增加的子流随机分配传输路径。而这些随机分配的一条或多条传输路径可能传输质量较差,从而影响传输效率,造成网络拥堵。



技术实现要素:

有鉴于此,本发明目的是提供一种基于软件定义网络(sdn)之网络路径优化方法,为mptcp会话的子流配置传输质量良好的传输路径,以解决网络堵塞。

本发明目的还提供一种使sdn控制器,所述sdn控制器可以为mptcp会话的子流配置传输质量良好的传输路径,以解决网络堵塞。

本发明实施例提供的一种路径优化方法,应用于sdn控制器。当该sdn控制器监测到第一网络装置和第二网络装置建立mptcp会话的握手信息时:根据所述网络拓扑,分析出所述第一网络装置和所述第二网络装置之间的多条传输路径及多个第一候选不相交路径组,每个所述第一候选不相交路径组包括从所述多条传输路径中选择的且两两之间均没有共用传输路段的至少两条候选传输路径;从多个所述第一候选不相交路径组中选择出一个相容度最高的第一不相交路径组,所述第一不相交路径组包括第一传输路径;为所述mptcp会话的第一子流配置所述第一传输路径;及生成用于所述第一子流的第一流表并下发至所述第一子流途径的转发设备中。

本发明实施例还提供了一种sdn控制器,包括第一监测模块、分析模块、选择模块、配置模块和部署模块。所述第一监测模块用于监测第一网络装置和第二网络装置建立mptcp会话的握手信息。所述分析模块用于根据所述网络拓扑,分析出所述第一网络装置和所述第二网络装置之间的多条传输路径及多个第一候选不相交路径组,每个所述第一候选不相交路径组包括从所述多条传输路径中选择的且两两之间均没有共用传输路段的至少两条候选传输路径。所述选择模块用于从多个所述第一候选不相交路径组中选择出一个相容度最高的第一不相交路径组,所述第一不相交路径组包括第一传输路径。所述配置模块用于为所述mptcp会话的第一子流配置所述第一传输路径。所述部署模块用于生成用于所述第一子流的第一流表并下发至所述第一子流途径的转发设备中。

本发明实施例之基于软件定义网络(sdn)之网络路径优化方法利用已知的开放流(openflow)技术标准协议(例如,onf-ofpi),取得网络拓扑相关信息,并为mptcp会话的子流配置优化路径,从而减轻网络拥堵。

以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。

附图说明

图1是本发明实施例之网络拓扑的示意图。

图2是本发明实施例之sdn控制器的功能模块图。

图3是本发明实施例通过福特-福克森算法遍历到的传输路径的示意图。

图4是图3之传输路径的带宽示意图。

图5是本发明实施例之路径优化方法的步骤流程图。

图6是本发明另一实施例之路径优化方法的步骤流程图。

图7是图6之路径更新步骤s408中的具体流程图。

主要元件符号说明

路径优化系统10

存储器20

处理器30

网络拓扑100

sdn控制器110

第一网络装置112

第二网络装置114

转发设备122、124、126、128、130、132、134、136、138、140

第一监测模块210

分析模块212

选择模块214

配置模块216

部署模块218

第二监测模块220

更新模块222

量化模块224

第一传输路径a

第二传输路径b

第三传输路径c

第四传输路径d

如下具体实施例将结合上述附图进一步说明本发明。

具体实施方式

图1是本发明实施例之网络拓扑图,所述网络拓扑100包括至少一个sdn控制器110、第一网络装置112、第二网络装置114,以及转发设备122、124、126、128、130、132、134、136、138及140。其中,第一网络装置112及第二网络装置114均具有mptcp能力,其可以是个人计算机、平板计算机、移动电话或机顶盒等电子设备。转发设备122-140可以是交换机、路由器、ap或其它网络转发装置。

本发明实施例之sdn控制器110会实时监测网络拓扑100中的mptcp信息(如建立连接、增加子流、删除子流等)。根据所监测到的mptcp信息,进行关联操作,如为mptcp会话中的子流分配或重新分配高质量的传输路径。

图2是本发明实施例之sdn控制器110的功能模块图。该sdn控制器110包括路径优化系统10、存储器20和处理器30。路径优化系统10包括第一监测模块210、分析模块212、选择模块214、配置模块216、部署模块218、第二监测模块220、更新模块222及量化模块224。所述模块210-224被配置成由一个或多个处理器(本实施例为处理器30)执行,以完成本发明实施例。本发明实施例所称的模块是完成一特定功能的计算机程序段。存储器20用于存储路径优化系统10的程序代码资料。

以下为mptcp会话第一子流的建立。

第一监测模块210,监测第一网络装置112和第二网络装置114建立mptcp会话的握手信息。该用于建立mptcp会话的握手信息包括三次握手消息,这三握手消息依次为tcpsyn消息、syn+ack消息及ack消息。这三次握手消息的字段中均携带有mp_capable选项。当第一监测模块210监测到第一网络装置112和第二网络装置114之间的这三次握手之后,则判断第一网络装置112和第二网络装置114之间正在建立mptcp连接(即mptcp会话)。

需要说明的,该第一监测模块210是采用sdn的监测方式:预先向网络拓扑100中各个转发设备(e.g.,122、124、…)下发了用于监测mptcp信息的流表,这些转发设备会对流经的信息进行监测并在监测到mptcp信息后上传或上报给sdn控制器110。

分析模块212,根据网络拓扑100(各个转发设备间的连接状态),分析出第一网络装置112和第二网络装置114之间的多条传输路径及多个第一候选不相交路径组,每个所述第一候选不相交路径组包括从所述多条传输路径中选择的两两之间均没有共用传输路段的至少两条候选传输路径。

在本实施例中,分析模块212可以根据福特-福克森(ford-fulkerson)算法,遍历出第一网络装置112和第二网络装置114之间多条传输路径(不相交路径),图3为ford-fulkerson算法推导出的4条传输路径(即a,b,c,d),该4条传输路径可以根据预设数量分为多个第一候选不相交路径组,如预设数量为每组2条候选传输路径,则可以形成(a,b)、(a,c)、(a,d)、(b,c)、(b,d)及(c,d),共6个第一候选不相交路径组;如预设数量为每组3条候选传输路径,则可以形成(a,b,c)、(a,b,d)、(a,c,d)、(b,c,d),共4个第一候选不相交路径组。需要说明的是,第一候选不相交路径组内的候选传输路径的数据可以预先设定,也可以根据传输路径的数量决定,在此不做限定。

在另一实施例中,分析模块212可以先遍历出第一网络装置112和第二网络装置114之间所有传输路径,然后根据预设每组候选传输路径的数量,形成多个第一候选不相交路径组,同一组内的候选传输路径之间均没有共用路段。

选择模块214,从多个所述第一候选不相交路径组中选择出一个相容度最高的第一不相交路径组,所述第一不相交路径组包括第一传输路径。需要说明的是,该第一传输路径即为该第一不相交路径组中的多条候选传输路径中的其中一条。

每个第一候选不相交路径组的相容度可以由多种因子所决定的,例如组内所有候选传输路径的带宽总体传输质量、组内各条候选传输路径之间的传输质量差异等。其中,第一不相交路径组内的各条候选传输路径的传输质量好且各条候选传输路径之间的传输质量相近。在一个实施例中,量化模块224被用于用于量化每个第一候选不相交路径组的相容度以得到相应的相容度值。具体为:

当每个所述第一候选不相交路径组包括两条候选传输路径时,以其中一个第一候选不相交路径组为例进行说明:这个第一候选不相交路径组的相容度值(compatibilityvalue,cv)为:这个第一候选不相交路径组内的两条候选传输路径带宽之和与这两条候选传输路径带宽之比的乘积,其中,这两条候选传输路径带宽之比恒不大于1。以(c,d)组为例:从图4中得知,候选传输路径c的可用带宽(availablebandwidth,abc)为150,候选传输路径d的可用带宽(abd)为20,故:cv(c,d)=(abc+abd)*(abc/abd)=(150+20)*(20/150)=22.61。

当每个所述第一候选不相交路径组包括至少三条候选传输路径时,以其中一个第一候选不相交路径组为例进行说明:这个第一候选不相交路径组的相容度值为:这个第一候选不相交路径组内的至少三条候选传输路径两两之间的相容度的平均值。以(a,b,d)组为例:cv(a,b,d)=(cv(a,b)+cv(a,d)+cv(b,d))/3。

通过量化模块224可得到,如果预设数量为每组2条候选传输路径时,(a,b)、(a,c)、(a,d)、(b,c)、(b,d)及(c,d)的6个第一候选不相交路径组中,(a,b)组成的第一不相交路径组的相容度值最高。

通过量化模块224块得到,如果预设数量为每组3条候选传输路径时,(a,b,c)、(a,b,d)、(a,c,d)、(b,c,d)的4个第一候选不相交路径组中,(a,b,c)组成的第一不相交路径组的相容度值最高。

因此,如果预设数量为每组2条候选传输路径时,选择模块214从6个第一候选不相交路径组中选择出第一不相交路径组(a,b)。该第一不相交路径组中包括第一传输路径a和第二传输路径b。如果预设数量为每组3条候选传输路径时,选择模块214从4个第一候选不相交路径组中选择出第一不相交路径组(a,b,c)。该第一不相交路径组中包括第一传输路径a、第二传输路径b及第三传输路径c。

配置模块216,为所述mptcp会话的第一子流配置第一传输路径a。第一传输路径a可以是根据传输质量从第一不相交路径组中的多条候选传输路径中选择而出,该第一传输路径a在第一不相交路径组中质量最优。

部署模块218根据开放流(openflow)协议,生成用于第一子流的第一流表并下发至第一子流途径的转发设备中。在本实施例中,该第一流表根据第一传输路径a生成并下发到第一传输路径a途径的转发设备(122、132、138、134及140)中。

以下为mptcp会话第二子流的建立。

第一监测模块210,监测用于在所述mptcp会话中加入第二子流的握手信息。该增加第二子流的握手信息包括三次握手消息。该三次握手消息的字段中均携带有mp_join选项。

配置模块216,为所述第二子流配置所述第二传输路径b。由于在第一子流的建立中,选择模块214选择出第一不相交路径组,该第一不相交路径组还包括第二传输路径b,因此,当第一监测模块210监测到加入第二子流的握手信息后,配置模块216会直接为第二子流配置第二传输路径b。

部署模块218,生成用于所述第二子流的第二流表并下发至所述第二子流途径的转发设备中。在本实施例中,该第二流表根据第二传输路径b生成并下发到第二传输路径b途径的转发设备(122、128、134、130及140)中。

以下为mptcp会话第三子流的建立。

如图3所示的4条传输路径,如果预设数量为每个第一候选不相交路径组包括2条候选传输路径时,在建立第一子流时得到的相容度最高的第一不相交路径组,不能为该第三子流提供具体的传输路径。

第一监测模块210,监测用于在所述mptcp会话中加入第三子流的握手信息。该增加第三子流的握手信息包括三次握手消息。该三次握手消息的字段中均携带有mp_join选项。

分析模块212,根据所述网络拓扑,分析出所述网络拓扑中与所述第一传输路径a及所述第二传输路径b均不相交的多条第三候选传输路径。如图3所示,所述多条第三候选传输路径包括传输路径c和d。

选择模块214,从多个所述第三候选传输路径(即c,d)中选择出一个与第一传输路径a及所述第二传输路径b相容度最高的第三传输路径c。

在本实施例中,通过量化模块224可知,(cv(a,b)+cv(a,c))/2>(cv(d,b)+cv(d,c))/2。即,相比于第四传输路径d,第三传输路径c具有与第一传输路径a及所述第二传输路径b更高的相容度。

配置模块216,为所述第三子流配置所述第三传输路径c。

部署模块218,生成用于所述第三子流的第三流表并下发至所述第三子流途径的转发设备中。在本实施例中,该第一流表根据第三传输路径c生成并下发到第三传输路径c途径的转发设备(122、124、126及140)中。

以下为建立mptcp会话第三子流的另一实施例。

如图3所示的4条传输路径,如果预设数量为每个第一候选不相交路径组包括3条候选传输路径时,在建立第一子流时得到的相容度最高的第一不相交路径组,可以为该第三子流提供第三传输路径c。

第一监测模块210,监测在所述mptcp会话中加入加入第三子流的握手信息。

配置模块216,为所述第三子流配置所述第三传输路径c。该第三传输路径c来自于第一不相交路径组中。

部署模块218,生成用于所述第三子流的第三流表并下发至所述第三子流途径的转发设备中。

以下为mptcp子流的删除及更新(1)。

第二监测模块220,监测所述mptcp会话中每个子流的传输质量。在本实施例中,第二监测模块220可以根据多个因子评测每个子流的传输质量。所述因子包括往返延时(round-triptime,rtt)、丢包率(packetlostratio)、可用带宽(availablebandwidth)与接收窗口(receivingwindow,rwin),但不以此为限。

在一实施例,第二监测模块220可以对每个子流的传输质量进行趋势分析。当分析出其中一个子流的传输质量持续下滑并预设阀值的,则通知配置模块216删除该子流。

配置模块216,当其中一个子流的传输质量低于一个预设阀值时,为该传输质量低于所述预设阀值的子流重新配置传输路径,或删除该传输质量低于所述预设阀值的子流。如果mptcp会话当前包括第一子流、第二子流和第三子流时,当第二子流的传输质量低于第一预设阀值,则删除该第二子流,或者为该第二子流重新配置新的其它传输路径,例如将第二子流的传输路径由第二传输路径b重新配置为传输质量更高的第四传输路径d(每条传输路径的传输质量是动态变化的,假设此时第四传输路径d的传输质量优于第三传输路径c)。

部署模块218,根据重新配置操作或删除操作,生成相应的第四流表并下发至与所述第四流表关联的转发设备中。当重新配置操作被实施时,第四流表下发至第四传输路径d上的转发设备及通知第二传输路径b上的转发设备删除第二流表(当然,流表也可以设置老化机制)。当删除操作被实施时,触发第二传输路径b上的两端的转发设备(122、140)向第一网络装置112和第二网络装置114发送rst消息和fin消息。

以下为mptcp子流的删除及更新(2)。

如果对第二子流的删除操作被实施,更新模块222会对所述mptcp会话中的其余子流(即剩余的第一子流和第三子流)的传输路径进行更新:依据所述其余子流(第一子流和第三子流)的数量及所述网络拓扑,分析出与该数量匹配的多个第二候选不相交路径组;从多个所述第二候选不相交路径组中选择出一个相容度最高的第二不相交路径组;依据所述第二不相交路径组,为所述其余子流重新配置相应的传输路径;及根据更新策略生成相应的第五流表下发至相应的转发设备中。

本发明实施例之基于软件定义网络(sdn)之网络路径优化方法利用已知的开放流(openflow)技术标准协议(例如,onf-ofpi),取得网络拓扑相关信息,并为mptcp会话的子流配置优化路径,从而减轻网络拥堵。

在一个实施例中,sdn控制器还可以建立一个信息连接表,所述信息连接表用于记录所述mptcp会话中的子流信息,所述子流信息包括子流令牌信息、协议号、源地址、源端口号、目的地址及目的端口号。

在一个实施例中,sdn控制器还可以监测第一网络装置或第二网络网络发出的其它信息,如add_addr消息、remove_addr消息。

图5是本发明实施例之网络路径优化方法的步骤流程图。该方法的执行可以为如图2所示的sdn控制器110,也可以是支持本方法的任意其它控制器。下面以sdn控制器为执行主体进行示例性描述。

步骤s300,监测第一网络装置112和第二网络装置114建立mptcp会话的握手信息。

步骤s302,根据网络拓扑100,分析出第一网络装置112和第二网络装置114之间的多条传输路径及多个第一候选不相交路径组,每个所述第一候选不相交路径组包括从所述多条传输路径中选择的两两之间均没有共用传输路段的至少两条候选传输路径。

步骤s304,从多个所述第一候选不相交路径组中选择出一个相容度最高的第一不相交路径组,所述第一不相交路径组包括第一传输路径。

步骤s306,为所述mptcp会话的第一子流配置第一传输路径。第一传输路径可以是根据传输质量从第一不相交路径组选择而出。

步骤s308,生成用于第一子流的第一流表并下发至第一子流途径的转发设备中。

步骤s300-s308用于mptcp会话的建立及第一子流的建立。

步骤s310,监测用于在所述mptcp会话中加入第二子流的握手信息。

步骤s312,为所述第二子流配置所述第二传输路径。

步骤s314,生成用于所述第二子流的第二流表并下发至所述第二子流途径的转发设备中。

步骤s310-s314用于mptcp会话的建立及第二子流的建立。

步骤s316,监测用于在所述mptcp会话中加入第三子流的握手信息。

步骤s318,判断步骤s304中的第一不相交路径组是否包括第三传输路径。如果不包括,进入步骤s320;如果包括,进入步骤s324。

步骤s320,根据所述网络拓扑,分析出所述网络拓扑中与所述第一传输路径及所述第二传输路径均不相交的多条第三候选传输路径。

步骤s322,从多个所述第三候选传输路径中选择出一个与第一传输路径及所述第二传输路径相容度最高的第三传输路径。

步骤s324,为所述第三子流配置所述第三传输路径。

步骤s326,生成用于所述第三子流的第三流表并下发至所述第三子流途径的转发设备中。

步骤s316-s326用于mptcp会话的建立及第三子流的建立。

本发明实施例并不限制第一、第二及第三子流的建立,参照第二子流和第三子流的建立,可以进一步建立第四子流、第五子流、…。

图6是本发明实施例之网络路径优化方法的步骤流程图。

步骤s400、监测所述mptcp会话中每个子流的传输质量。

步骤s402、判断是否存在至少一个子流的传输质量低于一个预设阀值。

如果有,进入步骤s404;如果没有,返回步骤s400。

步骤s404、为该传输质量低于所述预设阀值的子流实施处理操作,该处理操作包括重新配置传输路径,或删除子流。当实施删除操作时,进入步骤s406;当实施重新配置操作时,进入步骤s410。

步骤s406、根据删除操作生成相应的第四流表并下发至与所述第四流表关联的转发设备中。

步骤s408、对所述mptcp会话中的其余子流的传输路径进行更新。该步骤s408包括步骤s500-s506。

如图7所示,步骤s500、依据所述其余子流的数量及所述网络拓扑,分析出与该数量匹配的多个第二候选不相交路径组。步骤s502、从多个所述第二候选不相交路径组中选择出一个相容度最高的第二不相交路径组。步骤s504、依据所述第二不相交路径组,为所述其余子流重新配置传输路径。步骤s506、根据重新配置操作生成相应的第五流表下发至相应的转发设备中。返回步骤s400。

步骤s410、根据重新配置策略生成相应的第四流表并下发至与所述第四流表关联的转发设备中。返回步骤s400。

需要说明的是,上文所述实施例,并不构成对发明保护范围的限定。任何在本发明的精神和原则内所作的修改,等同替换和改进等,均应包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1