一种SDN网络中多流传输的方法和设备与流程

文档序号:11181244阅读:327来源:国知局
本发明涉及通信
技术领域
:,尤其是涉及一种sdn网络中多流传输的方法和设备。
背景技术
::随着超高清视频(如4k带宽需求15-30mbps,8k带宽需求100-180mbps)的逐步普及,在服务器为客户端提供流媒体服务时,仅采用单条传输路径可能无法满足超高清视频传输速率的要求。采用多条路径同时为用户提供数据传输服务是解决这个问题的方法之一。mptcp(multi-pathtcp)是一种传输层的多路径传输协议,目前已经在苹果ios7系统中得到了大规模的商用。当发送端和接收端具有多个网络接口(ip地址)时,该技术可以在不同的网络接口之间同时建立多条子流(tcp链接)同时进行数据的发送,从而提高网络上空闲带宽的利用率和端到端的传输速率。sdn(softwaredefinednetwork,软件定义网络)是一种新型网络创新架构,其核心思想是将网络设备的控制层面与转发层面分离,以实现对流量的灵活控制,为核心网络以及应用的创新提供良好的平台。在sdn网络中,包括网络设备(如路由器)和sdn控制器。sdn控制器用于根据用户的配置或者动态运行的协议生成流表(flowtable),并将流表发送到网络设备。网络设备用于接收来自sdn控制器的流表,并根据该流表来匹配和处理报文。现有技术(flowdemultiplexingprotocol,fdmp)是基于mptcp的改进技术,该技术利用sdn控制器的网络状态采集功能和对传输路径精细控制的功能,实现了单ip地址、多端口主机之间通过多流进行数据传输,并实现了对每条子流传输路径的精确控制,使同一个多流连接之下多个子流之间的路径交叉最小,从而减少多条子流共享一条传输路径的可能。但是现有技术中sdn控制器的负担过大:sdn控制器作为全网的控制中心,不但要为多流连接的各个子流规划路径,又要为其他类型的连接规划路径,有可能会成为sdn网络的性能瓶颈。技术实现要素:本发明提供了一种sdn网络中多流传输的方法和设备,以解决现有技术中基于sdn网络的多流传输方案中sdn控制器负担过重的技术问题。为达到上述目的,本发明的实施例采用如下技术方案:第一方面,提供一种sdn网络中多流传输的方法,包括:服务器通过sdn控制器获取网络的网络状态信息;根据所述网络状态信息和客户端的数据发送速率需求确定多流连接所需要的子流数量和子流传输路径,为每一个子流分配对应的子流标识信息;服务器将确定的子流传输路径和对应的子流标识信息发送给sdn控制器。由服务器根据网络的状态信息完成多流连接的路径规划,sdn控制器仅为服务器提供网络状态信息,不进行多流连接的路径规划,减轻了sdn控制器的计算负担。并且由服务器根据网络的状态信息进行多流连接的路径规划,可以使得在数据传输过程中,更加高效的调整子流数量以满足客户端的发送速率需求。结合第一方面,在第一方面的第一种可能的实现方式中,所述网络状态信息包括网络拓扑和所述网络拓扑中相邻网络设备之间链路的可用带宽及时延;所述根据所述网络状态信息和客户端的数据发送速率需求确定多流连接所需要的子流数量和子流传输路径,具体为:服务器根据所述网络拓扑中链路的可用带宽和时延,计算所述网络拓扑中每条链路的代价;根据所述网络拓扑中每条链路的代价,确定第一传输路径,将所述第一传输路径加入临时路径库;并判断所述临时路径库中的传输路径的可用带宽是否大于传输速率阈值;其中,所述传输速率阈值由所述发送速率需求确定,并且所述传输速率阈值大于所述发送速率需求;如果大于则结束;否则,执行迭代步骤;所述迭代步骤具体为:根据所述所述临时路径库中的传输路径,更新所述网络拓扑中每条链路的代价;根据更新后的每条链路的代价,确定另一条传输路径,并判断所述另一条传输路径的可用带宽和所述临时路径库中的传输路径的可用带宽之和是否大于所述传输速率阈值;如果所述另一条传输路径的可用带宽和所述临时路径库中的传输路径的可用带宽之和大于所述传输速率阈值则结束;否则重复是迭代步骤直到大于为止。服务器通过sdn控制器获取sdn网络的网络状态信息,并基于sdn网络的状态信息和传输速率的阈值,规划传输路径。由于采用了带宽预估的方法来进行子流数量和子流传输路径的决策,不需要等到每条子流逐条建立之后再进行新增子流的决策,避免了多个tcp慢启动过程的等待时间,因此决策过程更加快速。在一种可能的设计中,由于网络状态的变化是一个动态的过程,网络拥塞的时候某条路径的可用带宽可能会突然减少;当某个路径上的其他数据传输结束时,该路径的可用带宽又可能会增加。因此,多流传输刚刚建立时决策的子流数量和传输路径有可能在经过一段时间之后就不再满足传输速率阈值的要求。这时,就需要对子流数量和传输路径进行动态调整。具体的,所述服务器周期性地获取多流传输的实际传输速率;当所述多流传输的实际传输速率大于删除子流传输速率阈值时,确定满足所述传输速率阈值需求的情况下,需要关闭的子流路径和子流数量;将所述关闭的子流路径和对应的子流标识信息发送给所述sdn控制器;或者,当所述多流传输的实际传输速率小于增加子流传输速率阈值时,确定满足所述传输速率阈值需求的情况下,需要增加的子流路径和子流数量;并为每一个增加的子流分配对应的子流标识信息;将增加的子流路径和对应的子流标识信息发送给所述sdn控制器。一种可能的设计中,所述服务器根据所述网络拓扑中链路的可用带宽和时延,计算所述网络拓扑中每条链路的代价,具体为:o(di,bi)=a1×di+(1-a1)/bi其中,ο(di,bi)为链路li的代价,a1为大于等于0且小于等于1的常数;di为链路li的时延,bi为链路li的可用带宽。通过计算sdn网络中每条链路的代价,可以为数据传输规划处一条最佳的传输路径,提高了数据传输的效率。第二方面,本发明实施例提供了一种sdn网络中处理多流传输的服务器,该服务器具有实现上述第一方面中服务器行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,服务器的结构中包括处理器和存储器,所述存储器用于存储支持服务器执行上述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述数据库处理设备还可以包括通信接口,用于数据库处理设备与其他设备或通信网络通信。第三方面,本发明实施例提供了一种计算机存储介质,用于储存为上述服务器所用的计算机软件指令,其包含用于执行上述方面为服务器所设计的程序。相较于现有技术,本发明提供的方案由服务器根据网络的状态信息完成多流连接的路径规划,sdn控制器仅为服务器提供网络状态信息,不进行多流连接的路径规划,减轻了sdn控制器的计算负担。并且由服务器根据网络的状态信息进行多流连接的路径规划,可以使得在数据传输过程中,更加高效的调整子流数量以满足客户端的发送速率需求。本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。附图说明图1为本发明一实施例提供的sdn网络中多流传输的系统架构;图2为本发明一实施例所提供的一种计算机设备示意图;图3为本发明一实施例提供一种sdn网络中多流传输的方法示意图;图4为本发明一实施例提供的服务器确定多流连接所需要的子流数量和子流传输路径的方法的流程图;图5为本发明一实施例提供的服务器对传输过程中动态调整子流数量和传输路径的方法流程图;图6为本发明一实施例提供的一种服务器的结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。图1描述了本发明一实施例涉及的sdn网络中多流传输的系统架构。该sdn网络中多流传输的系统架构100包括sdn控制器102、服务器104、网络设备106(如网络设备1、网络设备2和网络设备3等)以及客户端108。其中,所述客户端108可以是任何支持mptcp协议的设备,如pc、ipad以及手机等。所述网络设备106可以是sdn网络中承担数据转发功能的设备,如sdn路由器和sdn交换机等。sdn控制器是sdn网络的核心部件,通过南向接口与sdn网络中的网络设备进行通信,并对网络设备的数据转发进行集中控制,同时通过北向接口与服务器进行通信,向服务器提供网络调用的能力。本发明实施例中,sdn控制器通过南向接口的上行通道对网络设备108上报的信息进行统一监控和统计,从而获取网络状态信息。服务器104通过sdn控制器的北向接口获取sdn控制器获得的网络状态信息,并根据所述网络状态信息和客户端的数据发送速率需求确定多流连接所需要的子流数量和子流传输路径,为每一个子流分配对应的子流标识信息;服务器104将确定的子流传输路径和对应的子流标识信息通过北向接口发送给sdn控制器102。最后由sdn控制器102根据确定的子流传输路径和对应的子流标识信息,通过南向接口的下行通道向相关的网络设备108下发相应的表项。在本发明实施例中,由服务器根据网络的状态信息完成多流连接的路径规划,sdn控制器仅为服务器提供网络状态信息,不进行多流连接的路径规划,减轻了sdn控制器的计算负担。并且由服务器104根据网络的状态信息进行多流连接的路径规划,可以使得在数据传输过程中,更加高效的调整子流数量以满足客户端的发送速率需求。如图2所示,图1中的数据库处理设备可以以图2中的计算机设备(或系统)的方式来实现。图2所示为本发明实施例提供的计算机设备示意图。计算机设备200包括至少一个处理器201,通信总线202,存储器203以及至少一个通信接口204。处理器201可以是一个通用中央处理器(cpu),微处理器,特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制本发明方案程序执行的集成电路。通信总线202可包括一通路,在上述组件之间传送信息。所述通信接口204,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(ran),无线局域网(wirelesslocalareanetworks,wlan)等。存储器203可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。其中,所述存储器203用于存储执行本发明方案的程序代码,并由处理器201来控制执行。所述处理器201用于执行所述存储器203中存储的程序代码。在具体实现中,作为一种实施例,处理器201可以包括一个或多个cpu,例如图2中的cpu0和cpu1。在具体实现中,作为一种实施例,计算机设备200可以包括多个处理器,例如图2中的处理器201和处理器208。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。在具体实现中,作为一种实施例,计算机设备200还可以包括输出设备205和输入设备206。输出设备205和处理器201通信,可以以多种方式来显示信息。例如,输出设备205可以是液晶显示器(liquidcrystaldisplay,lcd),发光二级管(lightemittingdiode,led)显示设备,阴极射线管(cathoderaytube,crt)显示设备,或投影仪(projector)等。输入设备206和处理器201通信,可以以多种方式接受用户的输入。例如,输入设备206可以是鼠标、键盘、触摸屏设备或传感设备等。上述的计算机设备200可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备200可以是台式机、便携式电脑、网络服务器、掌上电脑(personaldigitalassistant,pda)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图2中类似结构的设备。本发明实施例不限定计算机设备200的类型。如图1中的服务器可以为图2所示的设备,服务器的存储器中存储了一个或多个软件模块(例如:交互模块、路径规划模块等)。服务器可以通过处理器以及存储器中的程序代码来实现软件模块,实现通过多个子流向客户端传输数据。基于如图1所示的系统架构图,为更加清楚描述客户端通过多流向客户端传输数据的过程,示例性的,图3本发明实施例介绍一种sdn网络中多流传输的方法,包括:步骤301、客户端向服务器发送数据传输的请求消息;例如,请求传输电影“阿凡达”的视频分片100。需要说明的是,客户端向服务器发送的请求消息的路径规划由sdn控制器完成,与现有技术相同,在这里不再赘述。步骤302、服务器接收客户端数据传输的请求消息,向sdn控制器请求获取网络状态信息;具体的,所述网络状态消息包括网络拓扑和所述网络拓扑中相邻网络设备之间链路的可用带宽及时延。例如,服务器可以通过sdn控制器提供的restapi类型的北向接口进行网络状态信息的查询。假设sdn控制器的ip地址为:192.168.0.1,则获取网络拓扑的接口可以为curlhttp://192.168.0.1:8080/wm/topology/links/json。步骤303、sdn控制器向服务器返回网络状态信息;具体的,sdn控制器可以通过北向接口的上行通道向服务器返回服务器请求的网络状态信息。例如,服务器端通过restapi类型的北向接口向sdn控制器发送curlhttp://192.168.0.1:8080/wm/topology/links/json查询命令的时候,sdn控制器就会向服务器返回网络拓扑信息。步骤304、服务器根据所述网络状态信息和客户端的数据发送速率需求确定多流连接所需要的子流数量和子流传输路径,为每一个子流分配对应的子流标识信息;具体的,服务器根据客户端请求消息,确定数据发送速率需求。例如,客户端希望请求“阿凡达”视频分片100,服务器接收到该请求后,确定为了达到一定的观看效果,视频发送的传输速率需求为50mbps。子流的标识信息由所述服务器的ip地址、所述服务器的端口号、所述客户端的ip地址和所述客户端的端口号确定。如,服务器192.168.1.1向客户端192.168.1.2的80端口传输数据,服务器所述网络状态信息和客户端的数据发送速率需求确定需要3条子流进行数据传输,且服务器存在1234,1235,1236等3个空闲端口,则三个子流的标识可以为(192.168.1.1,1234,192.168.1.2,80)、(192.168.1.1,1235,192.168.1.2,80)(192.168.1.1,1236,192.168.1.2,80)进行标识。需要说明的是,客户端的ip地址和端口信息可以由服务器根据步骤302中接收到的数据传输的请求消息确定。服务器根据所述网络状态信息和客户端的数据发送速率需求确定多流连接所需要的子流数量和子流传输路径,具体包括:服务器根据所述网络状态信息和客户端的数据发送速率需求为服务器向客户端发送的数据包规划从服务器到客户端的传输路径,这个传输路径可以是一条或者多条。步骤305、服务器将步骤304中确定的子流传输路径和对应的子流标识信息发送给sdn控制器,以便于sdn控制器对相关的网络设备进行配置。具体的,服务器将步骤304中确定的子流传输路径和对应的子流标识信息通过sdn控制器的北向接口发送给sdn控制器,以便于sdn控制器对相关的网络设备进行配置。sdn控制器对所有子流传输路径上的所有网络设备进行配置,以使得规划到该子流上的数据包能够在该传输路径上进行传输。例如,设置网络设备00:00:00:00:00:00:00:01,把源ip为4.3.2.1(服务器ip地址)、源端口为1234(为某条子流的标识信息)、目的ip为1.2.3.4(客户端ip地址),目的端口为1234(客户端的端口)的子流通过该网络设备的端口2转发给下一个网络设备,则相关的restapi类型的北向接口命令为:curl-d'{"switch":"00:00:00:00:00:00:00:01","name":"flow-mod-1","priority":"32768",“src-ip":“4.3.2.1",”dst-ip”:”1.2.3.4”,”src-port”:”1234”,”dst-port”:”1234”,"active":"true","actions":"output=2“}’http://192.168.0.1:8080/wm/staticflowentrypusher/json。sdn控制器接收到fault命令后,即可以通过南向接口向网络设备00:00:00:00:00:00:00:01下发相应的转发策略。步骤306、服务器把要发送的数据规划到不同的子流上,并通过步骤305设置的子流路径向客户端发送数据;客户端服务器通过不同子流传输的数据,并接收到的数据进行重新整合。步骤307、在数据传输没有完成的时候,服务器周期性的决策当前的传输路径和子流数量是否最优,并做出增加子流、减少子流或修改传输路径等决策。在一种可能的设计中,服务器周期性地获取多流传输的实际传输速率;当所述多流传输的实际传输速率大于删除子流传输速率阈值时,确定满足所述传输速率阈值需求的情况下,需要关闭的子流路径和子流数量;将所述关闭的子流路径和对应的子流标识信息发送给所述sdn控制器;或者,当所述多流传输的实际传输速率小于增加子流传输速率阈值时,确定满足所述传输速率阈值需求的情况下,需要增加的子流路径和子流数量;并为每一个增加的子流分配对应的子流标识信息;将增加的子流路径和对应的子流标识信息发送给所述sdn控制器。需要说明的是,多流传输的实际传输速率由各个子流的传输速率之和确定,具体实现中可以根据各个子流发送缓冲区的发送速率之和确定。步骤308、服务器将步骤307中确定的增加子流、减少子流或修改传输路径等决策发送给sdn控制器,以便于sdn控制器对相关的网络设备进行配置。例如,利用restapi类型的北向接口在网络设备00:00:00:00:00:00:00:01中删除步骤305中配置的名字为flow-mod-1的路由信息,相关命令为:curl-xdelete–d'{"name":"flow-mod-1"}'http://192.168.0.1:8080/wm/staticflowentrypusher/json。步骤309、服务器把要发送的数据规划到不同的子流上,并通过步骤308设置的子流路径向客户端发送数据;客户端服务器通过不同子流传输的数据,并接收到的数据进行重新整合。例如,步骤304确定了3条子流传输路径,步骤307删除1条之后获得2条子流传输路径,则服务器继续通过这2条子流传输路径向客户端发送数据。在本发明实施例中,由服务器根据网络的状态信息完成多流连接的路径规划,sdn控制器仅为服务器提供网络状态信息,不进行多流连接的路径规划,减轻了sdn控制器的计算负担。并且由服务器根据网络的状态信息进行多流连接的路径规划,可以使得在数据传输过程中,更加高效的调整子流数量以满足客户端的发送速率需求。图4为本发明实施例提供的服务器确定多流连接所需要的子流数量和子流传输路径的方法的流程图。图4为图3所示实施例的一种具体实现方式,主要涉及图3所示实施例中的步骤304和307的具体实现方式,如图4所示,该方法包括以下步骤:401、服务器通过sdn控制器开放的北向接口获取sdn网络的网络状态信息;所述网络状态信息包括网络拓扑和所述网络拓扑中相邻网络设备之间链路的可用带宽及时延。服务器获取网络状态信息的方法与图3所述实施例中的步骤302-303相同,这里不再赘述。402、服务器根据所述网络拓扑中链路的可用带宽和时延,计算所述网络拓扑中每条链路的代价;所述服务器根据所述网络拓扑中链路的可用带宽和时延,计算所述网络拓扑中每条链路的代价,具体为:o(di,bi)=a1×di+(1-a1)/bi其中,o(di,bi)为链路li的代价,a1为大于等于0且小于等于1的常数;di为链路li的时延,bi为链路li的可用带宽。403、采用最小代价路径计算算法,计算网络拓扑中从源地址(即服务器的ip地址)到目的地址(即客户端的ip地址)之间的最小代价路径,作为第一传输路径;将所述第一传输路径加入临时路径库;一种可能的设计中,服务器可以采用dijkstra算法计算最小代价路径。404、确定第一传输路径的可用带宽;具体的,确定传输路径可用带宽的具体方法是本领域技术人员熟悉的,本发明实施例对此不做限定。一种可能的设计中,按照把该路径上每条链路的最小可用带宽作为该条路径的可用带宽(即min(链路1,链路2,…,链路n)),或者综合时延、丢包等数据进行更加精确的估算。例如,某条路径上共有3个链路,可用带宽分别为20mbps,30mbps和40mbps,则按照该路径上每条链路的最小可用带宽进行估计,该条路径的可用带宽为min(20,30,40)=20mbps。405、判断临时路径库中的传输路径的可用带宽是否大于传输速率阈值;如果大于,则结束,否则进入步骤406,结束;其中,所述传输速率阈值由所述发送速率需求确定,例如,btran=λ×bneed,其中btran为传输数量阈值,bneed为发送速率需求;λ为大于1的常数,以减小传输路径可用带宽估算误差对决策结果的影响。406、结束;407、考虑临时路径库中传输路径的影响,重新确定所述网络拓扑中每条链路的代价;具体的,当临时路径库中传输路径的可用带宽小于传输速率阈值时,表明使用临时路径库中的传输路径对应的子流是无法满足发送速率的需求的,此时需要增加子流来保证传输速率的需求。由于放入临时路径库中的传输路径对应的子流已经占用了网络拓扑中相应的链路带宽,因此进一步规划其他传输路径时,需要考虑到临时路径库中传输路径对网络拓扑中链路的可用带宽的影响。重复步骤403、404、405和407直至临时路径库中的传输路径的可用带宽大于等于传输速率阈值。本发明实施例中,服务器通过sdn控制器获取sdn网络的网络状态信息,并基于sdn网络的状态信息和传输速率的阈值,规划传输路径。由于采用了带宽预估的方法来进行子流数量和子流传输路径的决策,不需要等到每条子流逐条建立之后再进行新增子流的决策,避免了多个tcp慢启动过程的等待时间,因此决策过程更加快速。由于网络状态的变化是一个动态的过程,网络拥塞的时候某条路径的可用带宽可能会突然减少;当某个路径上的其他数据传输结束时,该路径的可用带宽又可能会增加。因此,多流传输刚刚建立时决策的子流数量和传输路径有可能在经过一段时间之后就不再满足传输速率阈值的要求。这时,就需要对子流数量和传输路径进行动态调整。图5为本发明实施例提供的服务器对传输过程中动态调整子流数量和传输路径的方法流程图。步骤501、服务器周期的获取当前实际传输速率;具体的,实际传输速率可以通过测量每个子流发送缓冲区的发送速率之和获得。步骤502、判断服务器向客户端发送数据的实际传输速率是否大于删除阈值;为了避免频繁的进行子流数量和传输路径的调整,所述删除阈值一般大于数据传输速率阈值,例如可以是传输速率的1.2倍。步骤503、确定满足传输速率阈值的情况下,可以删除的传输路径和数量;当服务器向客户端发送数据的实际传输速率是否大于删除阈值时,表明当前多流传输路径的可用带宽大于客户端的实际需求,对于运营商来说网络资源存在浪费,此时可以考虑删除一部分子流。一种可能的设计中,服务器逐条预估删除当前最小传输速率路径时多流连接的总传输速率是否满足传输速率阈值要求,如果满足,则把该最小传输速率路径加入待删除路径库,继续预估删除剩余路径中最小传输速率路径时是否满足多流连接的总传输速率是否满足传输速率阈值要求,直到不满足为止。步骤504、判断实际传输速率是否小于增加阈值;为了避免频繁的进行子流数量和传输路径的调整,所述增加阈值一般小于数据传输速率阈值,例如可以是传输速率的0.8倍。步骤505、重新确定满足传输速率阈值的情况下,需要的子流数量和传输路径;具体方法如图4所述实施例所示,这里不再赘述。一种可能的设计中,服务器还进一步判断重新确定的子流数量是否大于当前子流数量,如果重新确定的子流数量大于当前子流数量,则表明即使重新进行路径规划也无法采用更少的子流数量满足传输速率阈值,则可以优先在现有路径基础上增加子流数量和传输路径。步骤506、服务器将子流调整的决策发送给sdn控制器,,以便于sdn控制器对相关的网络设备进行配置。需要说明的是,增加阈值与传输速率阈值,以及删除阈值传输速率阈值的具体取值关系,可以由客户端用户与运营商签订的服务协议确定(如sla,service-levelagreement)。本发明实施例通过对子流的数量和传输路径进行动态调整,考虑了网络状态变化对多流传输的影响,在考虑到运营商利益的情况下,有效的保证了用户服务器质量。本发明实施例还描述了上述方法实施例属于同一发明构思下的一种服务器的结构示意图。如图6所示,该服务器600用于执行图3-图5上述方法实施例中服务器的功能,包括:接收单元601,路径规划单元603和发送单元605。其中,获取单元601,用于通过sdn控制器获取网络的网络状态信息。路径规划单元603,用于根据所述网络状态信息和客户端的数据发送速率需求确定多流连接所需要的子流数量和子流传输路径,为每一个子流分配对应的子流标识信息。发送单元605,用于将确定的子流传输路径和对应的子流标识信息发送给sdn控制器。可选的,所述网络状态信息包括网络拓扑和所述网络拓扑中相邻网络设备之间链路的可用带宽及时延;所述路径规划单元603,用于根据所述网络状态信息和客户端的数据发送速率需求确定多流连接所需要的子流数量和子流传输路径,具体为:根据所述网络拓扑中链路的可用带宽和时延,计算所述网络拓扑中每条链路的代价;根据所述网络拓扑中每条链路的代价,确定第一传输路径,并判断所述第一传输路径的可用带宽是否大于传输速率阈值;其中,所述传输速率阈值由所述发送速率需求确定,并且所述传输速率阈值大于所述发送速率需求;如果大于则结束;否则,将所述第一传输路径加入临时路径库;根据所述第一传输路径,更新所述网络拓扑中每条链路的代价;根据更新后的每条链路的代价,确定另一条传输路径,并判断所述另一条传输路径的可用带宽和所述临时路径库中的传输路径的可用带宽之和是否大于所述传输速率阈值;如果所述另一条传输路径的可用带宽和所述临时路径库中的传输路径的可用带宽之和大于所述传输速率阈值则结束;否则重复该过程直到大于为止。在一种可能的实现方式中,为了实现在数据传输过程中对多流传输进行调整,所述获取单元601,还用于周期性地获取多流传输的实际传输速率;所述路径规划单元603,还用于当所述多流传输的实际传输速率大于删除子流传输速率阈值时,确定满足所述传输速率阈值需求的情况下,需要关闭的子流路径和子流数量;所述发送单元605,还用于将所述关闭的子流路径和对应的子流标识信息发送给所述sdn控制器;或者,所述路径规划单元603,还用于当所述多流传输的实际传输速率小于增加子流传输速率阈值时,确定满足所述传输速率阈值需求的情况下,需要增加的子流路径和子流数量;并为每一个增加的子流分配对应的子流标识信息;所述发送单元605,还用于将增加的子流路径和对应的子流标识信息发送给所述sdn控制器。一种的可能的设计中,所述路径规划单元603根据所述网络拓扑中链路的可用带宽和时延,计算所述网络拓扑中每条链路的代价,具体为:ο(di,bi)=a1×di+(1-a1)/bi其中,ο(di,bi)为链路li的代价,a1为大于等于0且小于等于1的常数;di为链路li的时延,bi为链路li的可用带宽。需要说明的是,所述子流标识信息由所述服务器的ip地址、所述服务器的端口号、所述客户端的ip地址和/或所述客户端的端口号确定。在本实施例中,服务器600是以功能单元的形式来呈现。这里的“单元”可以指特定应用集成电路(application-specificintegratedcircuit,asic),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到数据库处理设备600可以采用图2所示的形式。获取单元601,路径规划单元603和发送单元605可以通过图2的处理器和存储器来实现,具体的,获取单元601,和发送单元605可以通过由处理器来执行交互模块来实现,路径规划单元603可以通过由处理器来执行路径规划模块来实现。本发明实施例还提供了一种计算机存储介质,包含用于执行上述方法实施例所设计的程序。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过internet或其它有线或无线电信系统。本发明是参照本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1