CN105450521B - 一种软件定义的多路径网络流实时动态优化方法 - Google Patents
一种软件定义的多路径网络流实时动态优化方法 Download PDFInfo
- Publication number
- CN105450521B CN105450521B CN201511021471.1A CN201511021471A CN105450521B CN 105450521 B CN105450521 B CN 105450521B CN 201511021471 A CN201511021471 A CN 201511021471A CN 105450521 B CN105450521 B CN 105450521B
- Authority
- CN
- China
- Prior art keywords
- network
- message
- controller
- path
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000005457 optimization Methods 0.000 title claims abstract description 27
- 238000012544 monitoring process Methods 0.000 claims description 12
- 230000005641 tunneling Effects 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 4
- 238000005259 measurement Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 34
- 230000000875 corresponding effect Effects 0.000 description 11
- 230000009471 action Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种软件定义的多路径网络流实时动态优化方法,应用于广域网中,包括:在广域网中部署多路径网络流实时动态优化的控制器、智能软件定义的网络设备、用户端和服务器,其中控制器和网络设备构成控制面和交换面分离的多路径网络架构,用户端在多路径网络架构下通过实时动态优化的多路径网络流路径访问服务器;网络设备自主地对网络进行网络状态的测量,并实时或者近实时地上传网络状态信息给控制器;控制器存储多路径网络架构的网络拓扑结构,并且实时更新网络拓扑结构,并计算各个网络流在新的网络拓扑结构下的优选路径和对应的流表,并且将对应的流表下发至网络设备,提高了网络链路的传输效率。
Description
技术领域
本发明属于网络通信技术领域,尤其涉及一种软件定义的多路径网络流实时动态优化方法。
背景技术
随着急剧膨胀的网络规模,类型丰富多样的网络应用,因特网的结构和功能日趋复杂,而网络管控能力日益减弱,特别作为网络的核心的软件定义的网络设备不堪重负,软件定义网络(Software Defined Network,SDN)的思想和架构应运而生。
SDN明确定义在网络控制层与转发层分离的思想体系,将控制逻辑集中在专有设备上,而转发逻辑则按分布方式进行部署,各尽所能、各施其责,网络系统的灵活性和可扩展性得到充分体现。但是,SDN仅提供了一个开源框架,具体功能和实现细节有待发展,如控制器保存的网络拓扑只反应网络设备的连接状况,仅能针对断开连接的网络设备切换链路;而当链路出现显著性延时或丢包率时,则不能进行链路选择或优化,未能解决高延时和高丢包率链路的问题,显著影响用户的体验。因此,需要一种软件定义的多路径网络流优化方法,解决现有技术存在的上述技术问题。
发明内容
本发明要解决的技术问题是提供一种软件定义的多路径网络流实时动态优化方法,提高了链路的传输效率,增强了用户体验。
本发明采用的技术方案是:
一种软件定义的多路径网络流实时动态优化方法,应用于广域网中,包括:多路径网络架构构建步骤:在所述广域网中部署多路径网络流实时动态优化的控制器、智能软件定义的网络设备、用户端和服务器,其中所述控制器和所述网络设备构成控制面和交换面分离的多路径网络架构,所述用户端在所述多路径网络架构下通过实时动态优化的多路径网络流路径访问所述服务器;实时监控步骤:所述网络设备自主地对网络进行网络状态的测量,并实时或者近实时地上传网络状态信息给控制器;所述控制器存储所述多路径网络架构的网络拓扑结构,并且根据所述网络设备上传的当前网络状态信息,结合预先定义或者缺省定义的网络应用场景特性信息,实时更新所述网络拓扑结构,并计算各个网络流在新的网络拓扑结构下的优选路径和对应的流表,并且将对应的流表下发至所述网络设备。
优选地,所述实时监控步骤之后,所述方法,还包括:所述控制器接受所述用户端的注册请求;所述用户端向所述控制器请求发送第一报文;所述控制器同意请求后,为所述用户端指定所述网络设备中的一台,并且计算所述用户端至所述服务器的最优路径;所述用户端对所述第一报文进行第一隧道操作后,将所述第一报文发送至所述网络设备;所述网络设备接收到所述第一报文后,对所述第一报文进行第二隧道操作后查找是否存有所述第一报文的流表;若所述网络设备存有所述第一报文的流表,则所述网络设备根据所述第一报文的流表转发所述第一报文,直至所述第一报文到达所述服务器;所述服务器收到所述第一报文后,按照所述用户端发送所述第一报文至所述服务器的路径返回第二报文至所述用户端。
优选地,所述网络设备查找是否存有所述第一报文的流表之后,所述方法,还包括:若所述网络设备不存有所述第一报文的流表,则所述网络设备将所述第一报文转发至所述控制器,所述控制器计算所述用户端与服务器之间的最优路径和所述第一报文的流表,并将所述第一报文的流表发送至所述网络设备。
优选地,所述控制器计算所述第一报文的流表,具体包括:所述控制器根据所述网络设备上传的当前网络状态信息和所述网络应用场景特性信息计算所述第一报文的流表。
优选地,所述控制器为所述用户端指定所述网络设备中的一台,具体包括:
所述控制器根据所述当前网络状态信息和所述网络应用场景特性信息向所述用户端指定一台网络设备;或者,所述控制器根据IP地址相似度,或者网络可用带宽为所述用户端指定一台网络设备。
优选地,所述网络设备对所述第一报文进行第二隧道操作,具体包括:所述网络设备对所述第一报文先后进行解报头操作和加报头操作。
优选地,所述服务器按照所述用户端发送所述第一报文至所述服务器的路径返回第二报文至所述用户端,具体包括:所述网络设备对所述第二报文进行加报头操作后,按照所述用户端发送所述第一报文至所述服务器的路径返回所述第二报文至所述用户端。
优选地,所述服务器收到所述第一报文后,按照所述用户端发送所述第一报文至所述服务器的路径返回第二报文至所述用户端,还包括,邻近服务器的邻近网络设备透明代理步骤:所述邻近网络设备接收到所述第一报文时,保存所述第一报文的源IP地址和源TCP端口至专门列表,并将所述第一报文中的源IP地址和源TCP端口替换为所述邻近软件定义网络设备的IP地址和指定端口号;所述邻近软件定义网络设备接收到所述第二报文时,根据所述第二报文的目的TCP端口号在所述专门列表中搜索对应表项替换所述第二报文中的目的IP地址和目的TCP端口号。
采用以上技术方案,本发明至少具有以下效果:本发明提供的软件定义的多路径网络流实时动态优化方法,通过拓展网络设备和所述控制器的功能,提高了高延时和高丢包率链路的传输效率,增强了用户体验。
附图说明
图1为本发明第一实施例软件定义的多路径网络流实时动态优化方法的流程图;
图2为本发明第二实施例软件定义的多路径网络流实时动态优化方法的示意图;
图3为本发明第三实施例软件定义的多路径网络流实时动态优化方法的流程图;
图4为图2所示软件定义的多路径网络流实时动态优化方法中控制器与用户端交互的流程图;
图5为图3所示软件定义的多路径网络流实时动态优化方法中控制器更新流表规则的示意图;
图6为本发明第四实施例软件定义的多路径网络流实时动态优化方法中网络设备转发报文时报文头部变化的示意图;
图7为图1所示软件定义的多路径网络流优化方法中控制器实时监控的示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加明白,以下参照附图并举实施例,对本发明做进一步的详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不限定于本发明。
第一实施例
如图1所示,本实施例提供的软件定义的多路径网络流实时动态优化方法,应用于广域网中,具体步骤包括:多路径网络架构构建步骤S10:在广域网中部署多路径网络流实时动态优化的控制器,智能软件定义的网络设备、用户端和服务器,其中控制器和网络设备构成控制面和交换面分离的多路径网络架构,用户端在多路径网络架构通过实时动态优化的多路径网络流路径访问服务器。还包括,实时监控步骤S20:网络设备自主地对网络进行网络状态的测量,并实时或者近实时地上传网络状态信息给控制器;控制器存储该多路径网络架构的网络拓扑结构,并且根据网络设备上传的当前网络状态信息,结合预先定义或者缺省定义的网络应用场景特性信息,实时更新网络拓扑结构,并计算各个网络流在新的网络拓扑结构下的优选路径和对应的流表,并且将对应的流表下发至网络设备。
具体地,本实施例在云端部署了1个控制器Floodlight和多个智能软件定义的网络设备OVS构建上述多路径网络架构,并且针对scp和http服务进行系统测试,特别地为scp测试场景部署了1个专用云端服务器服务器,另外部署了需要访问网络业务的用户端,用户端在多路径网络架构下通过实时动态优化的多路径网络流路径访问服务器,本实施例的目的是为用户端提供报文转发的路径,维护多路径网络流的优化选择。
上述网络是指Internet,在该网络中部署控制器和智能软件定义的网络设备旨在建立起控制面和交换面分离的多路径网络架构。其中控制器具有用户端管理功能、网络设备管理功能和流表优化管理功能。网络设备管理功能是指控制器存储有多路径网络架构的网络拓扑结构,并且定时向网络设备下达收集网络状态信息的命令;控制器接收到网络设备上传的网络状态信息时,更新延时表;当发现网络设备出现增加或者移除的情况时,更新存储的网络拓扑结构。流表优化管理功能是指生成和维护供网络设备转发用户端报文的流表。
网络设备具有的功能包括隧道操作、流表操作、透明代理和网络监测功能。网络监测功能是指网络设备接收到控制器下发的网络状态信息收集命令时,测量与其他网络设备之间的网络延时和丢包率并上传控制器(参见图2)。另外,透明代理是指邻近服务器的网络设备对接收的报文进行地址和端口号替换的处理,即当该网络设备接收到用户端发来的报文时,保存报文的源IP地址和源TCP端口至专门列表,并将其替换为当前网络设备的IP地址和指定端口号;而当该网络设备接收到服务器发来的报文时,根据报文的目的端口号在专门列表中搜索对应表项替换报文的目的IP地址和目的TCP端口号。
用户端具有的功能包括控制器注册和报文代理功能。控制器注册是指用户端访问服务器时向控制器注册以使用本实施例中的多路径网络架构。
第二实施例
如图2、图3和图5所示,实时监控步骤S20之后,本实施例的多路径网络流实时动态优化方法,还包括:步骤S100:控制器Floodlight接受用户端的注册请求;步骤S30:用户端向控制器请求发送第一报文;步骤S40:控制器同意请求后,向用户端指定一个网络设备OVS,并且计算用户端Client与服务器Server之间的最优路径;步骤S50:用户端对第一报文进行第一隧道操作后,将第一报文发送至网络设备;步骤S60:网络设备接收到第一报文后,对第一报文进行第二隧道操作后查找是否存有第一报文的流表;步骤S80:若网络设备存有第一报文的流表,则网络设备根据第一报文的流表转发第一报文直至服务器;步骤S90:服务器收到第一报文后,按照用户端发送第一报文至服务器的路径返回第二报文至用户端。
本实施例中需要用到网络设备的流表操作,网络设备对转发的报文进行流表匹配,匹配成功则正常转发,匹配失败则摘录报文相关信息上传控制器,以便控制器进行流表的计算和更新(参见第三实施例)。
第一实施例中提到的控制器具有的用户端管理功能是指接收到用户端注册信息时,搜索与用户端的IP相似度高的邻近网络设备应答用户端,IP相似度表明用户端与该网络设备地理位置最靠近,并维护当前用户端发起的业务连接。
作为优选地,控制器向用户端指定一个网络设备,具体包括:控制器根据IP地址相似度向用户端指定一个网络设备。
本实施例中用户端对第一报文进行第一隧道操作是指用户端的报文代理功能,具体地,用户端利用控制器应答的邻近网络设备的IP地址对第一报文进行协议字段编码为253的隧道操作,由此完成第一隧道操作后,定向发送至该近邻网络设备。
可以看出,本实施例在SDN开源架构上,为业务访问的用户端拓展实现最优路径选择和按最优路径转发,包括沿最优路径路返回服务器返回的数据包。
第三实施例
如图3和图5所示,在步骤S60:网络设备查找是否存有第一报文的流表之后,本实施例的多路径网络流实时动态优化方法,还包括:步骤S70:网络设备不存有第一报文的流表,则网络设备将第一报文转发至控制器,控制器重新计算用户端与服务器之间的最优路径和第一报文的流表后,将第一报文的流表发送至网络设备。控制器生成流表功能是指控制器接收到网络设备上传不匹配的第一报文时,根据该第一报文的源IP地址判断,若该用户端属于已注册的用户端,则为用户端计算到达服务器的最优路径,否则忽略上传的第一报文。
本实施例中用到控制器维护流表的功能,是指控制器更新延时表、更新存储的网络拓扑结构、或者发现网络状态或者应用场景特性变化时,根据当前网络拓扑结构、网络状态信息和应用场景特性信息,重新计算生成第一报文的新流路径,并更新第一报文的流表。
第四实施例
如图6所示,用户端对所第一报文进行第一隧道操作,具体包括:用户端对第一报文进行加报头操作。
另外,服务器收到第一报文后,按照用户端发送第一报文至服务器的路径返回第二报文至用户端,还包括邻近服务器的邻近网络设备透明代理步骤:邻近网络设备接收到第一报文时,保存第一报文的源IP地址和源TCP端口至专门列表,并将第一报文中的源IP地址和源TCP端口替换为邻近网络设备的IP地址和指定端口号;邻近网络设备接收到第二报文时,根据第二报文的目的TCP端口号在专门列表中搜索对应表项替换第二报文中的目的IP地址和目的TCP端口号。
此外,网络设备对第一报文进行第二隧道操作,具体包括:网络设备对第一报文分别进行解报头操作和加报头操作。网络设备接收到用户端发来的第一报文时,先进行解报头再进行加报头操作;2)接收到服务器发来的第二报文时,只进行加报头,按照用户端发送第一报文至服务器的路径返回第二报文至用户端。隧道操作所涉及的IP报头协议字段编码均为253。
下面结合具体实施例对本发明的多路径网络流优化方法进行详细描述。本实施例展示了基于SDN的多路径网络流优化方法。
实施例1:控制器功能的实现
实施例1.1:控制器中用户端管理功能的实现:
如图2和5所示,用户端向控制器发送注册请求之后,控制器会为用户端建立一个新的用户端记录,查询本地网络设备列表,根据IP相似度获取地理位置最靠近用户端的网络设备的IP地址。
用户端记录包含用户端的IP地址、链路条数、链路对象数组LinkElement和链路中流的名称数组。其中链路条数,即本用户端现有的链路条数,使用链路源IP,目的IP来标识。LinkElement中记录链路的每跳,分别是什么角色,例如第一跳,第二跳,最后一跳等;链路中流的名称数组,这样做使更改链路或者删除查询更为方便,每个网络设备有来回两个流表项,记录方式为先记录第一跳的两个流表为数组的0,1号元素,第二跳的两个流表为数组的2,3号元素,以此类推。
实施例1.2:控制器中网络设备管理功能的实现:
如图5所示,每个网络设备与控制器连接后,控制器会为每一个网络设备建立一个网络设备对象。
实施例1.3:控制器中流表优化管理功能的实现:
为了实现最短路径的计算,如图5所示,控制器必须维护一个延时表。该延时表是一个二维表,每行每列分别表示一个网络设备,行列的交界处表示两者互相通信的延时时间或者丢包率。链路更新计时器达到预定间隔时间后,控制器获取所有的网络设备列表,将网络设备列表保存并下发至各个网络设备,网络设备根据网络设备列表去获取与网络设备表中各个网络设备的延时时间和丢包率,并上传给控制器。控制器收到上述数据后更新延时表(参见图2)。控制器根据每个用户端的链路记录去计算新的最短路径,若得到新的最短路径不同于原来的路径,且新的最短路径相比于之前的链路在性能方面优越性超过预定义的阈值,则更新最优路径,并重新生成新的流表后下发至网络设备。网络设备得到新的流表之后执行新的转发规则,完成链路切换。
实施例2:网络设备功能的实现。
实施例2.1:网络设备中流表功能的实现:
用户端访问服务器,先在控制器中注册,获得最靠近用户端的网络设备的IP地址,并将第一报文定向至该网络设备。网络设备对该第一报文进行流表匹配和隧道形式的转发,当该第一报文到达邻近服务器的邻近网络设备时进行源地址和源端口号替换,并且记录下来,服务器沿第一报文发来的路径返回第二报文。
结合图6,用时序图来描述整个报文的变化过程:
S401 用户端C向控制器发送请求;
S402 控制器根据用户端C要访问的服务器S,返回离C最近的网络设备A的IP地址,并且控制器会生成最有路径和流表规则,并且将流表规则下发至每一个网络设备,除了第一个网络设备A和最后一个网络设备Z,中间的每一个网络设备的流表规则都相同。
S403 用户端C发出的第一报文将会被虚拟网卡捕获到,并且为该第一报文添加一个报头,从而报文将会被定向至最近A:
A|C|S|C|Port_C|Port_S|HTTP |
S404 第一个A收到来自C的第一报文,先查看有无报头,没有则正常转发,有则解报头,解开后第一报文变成:
S|C|Port_C|Port_S|HTTP |
S405 A对解封的第一报文进行流表匹配,匹配流表规则之后A会为第一报文添加一层报头,第一报文变为:
Z|C|S|C|Port_C|Port_S|HTTP |
S406 Z收到来自A的第一报文,先查看有无报头,没有则正常转发,有则解报头,解开后第一报文变成:
S|C|Port_C|Port_S|HTTP |
S407 Z对解封的第一报文进行流表匹配,匹配流表规则之后执行对应动作,会生成一个唯一TCP端口号,替换第一报文源端口,记录TCP五元组,并用Z的IP替换第一报文的源IP,将替换后的第一报文发至服务器,替换后,第一报文变为:
S|Z|Port_Z|Port_S|HTTP |
S408 S收到第一报文后,处理数据之后将响应的第二报文返回给Z,Z收到第二报文,报文为:
Z|S|Port_S|Port_Z|HTTP |
S409 邻近服务器的邻近Z收到服务器返回第二报文后,匹配端口号找到第二报文对应的TCP五元组,做相应替换后将第二报文转发,第二报文格式变为:
A|Z|C|S|Port_C|Port_S|HTTP |
S410 A收到服务器返回的第二报文后,先查看有无报头,没有则正常转发,有则解报头,解开后第二报文变成:
C|S|Port_C|Port_S|HTTP |
S411 A对解封的第二报文进行流表匹配,匹配流表规则之后A会为第二报文添加一层报头并转发回到用户端,完成整个过程,第二报文变为:
C|S|Port_S|Port_C|HTTP |
实施例2.2:网络设备中隧道功能的实现:
如图6所示,隧道功能是通过在原有报文的外层添加IP头部实现,使报文能够发送到流表规则中指定的目的地址,从而实现多路径网络流量定向的功能。到达目的后,添加的IP头部解掉,得到原报文进行下一步操作,整个过程类似穿过一个隧道。
添加报头是通过重写网络设备中的mod_nw_dst动作(修改目的IP)的函数而实现的。网络设备中的动作都是由OpenFlow协议规定的,如果想要对通过新增动作来实现添加报头功能,必须对OpenFlow协议作出较大的改动,这样会缩小本系统的适用范围,因而本发明选择了重写已有动作来实现添加报头功能。
网络设备使用Linux内核的sk_buff结构体来存储报文,该结构体预留了一部分空间便于之后插入头部信息,该预留空间由sk_buff的head指针和data指针指示,添加IP头部前,首先保存MAC头部,然后移动这两个指针腾出空间,最后填充IP头部的各个字段。
解报头就是剥除报文的外层IP头部,从而能够查看到报文的内层IP头部,该头部有报文想要真正到达的目的地址IP。
在本发明中约定IP头部中协议号为253的报文是由用户端或者网络设备添加了外层IP头部的报文。因此网络设备收到报文时,首先检查IP头部中的协议号,若为253,则执行解报头操作。剥除外层IP头部前,首先移动sk_buff的data指针,缩小空间,然后用MAC头部覆盖原外层IP头部。
实施例2.3:网络设备中透明代理的实现:
参见图6,透明代理是为了使服务器返回的第二报文也能沿着控制器指定的第一报文的发送路径返回。本系统中的透明代理是针对TCP连接的,由于不能对服务器做改动,因而不能像多路径网络架构的虚拟网卡一样通过添加外层报头来实现第一报文的重定向,透明代理可以很好的解决这个问题。当服务器计算出最优路径之后,它会给最有路径上的每一跳网络设备下发流表规则,最有路径上的最后一跳网络设备就作为一个透明代理。当用户端发起的TCP连接上带有syn标志的第一报文到达透明代理时,第一报文的TCP五元组(源IP、目的IP、源端口号、目的端口号和协议号)被保存下来,透明代理会使用此五元组生成哈希值,再为其分配一个随机而且唯一的介于2000~65535之间的端口号。之后用此端口号替换第一报文的源端口,用这个网络设备的IP替换第一报文的源IP,这样就可以确保服务器返回的第二报文一定可以到达这个网络设备。同属于一个TCP连接的报文的五元组是相同的,因此生成的哈希值也相同,因此可以使用此哈希值查找之前为该TCP连接分配的端口号。当服务器返回的第二报文到达透明代理时,使用第二报文的目的端口号查找关联的五元组,并替换第二报文的对应字段。然后对第二报文添加外层报头,这样第二报文就可以沿着指定的路径返回用户端。透明代理功能是通过重写mod_tp_src动作(修改TCP源端口号)的函数实现的。
实施例2.4:网络设备中网络监测的实现:
网络监测使用控制器定期下发的各个网络设备的IP来测量本机与其他各个网络设备之间的延时时间和丢包率,并可将测量结果上传给控制器。
网络监测实现为网络设备db-server进程的一个线程,它会定期检测网络设备是否与控制器建立或者断开了连接。当网络设备使用set-controller命令连接控制器时,会将控制器的IP以共享内存的方式保存下来,当网络设备检测到与控制器的连接已建立时,会使用此IP与控制器额外建立一条TCP连接,该连接专门用于控制器下发IP和网络设备上传测量结果。控制器会定期下发每个网络设备的IP,网络设备收到后会测量与其他每个网络设备的延时时间和丢包率,并上传给控制器。网络设备会构造ICMP报文发送每一个其他网络设备,根据返回的报文数量和时间来计算延时时间和丢包率。当网络设备使用del-controller命令断开与控制器的连接时,额外的TCP连接也会断开,并删除之前保存的控制器的IP,参看图7。
实施例3:用户端的功能实现。
实施例3.1:用户端中与控制器交互功能的实现:
用户端向控制器发送注册请求之后,控制器会为用户端建立一个新的用户端对象,查询本地网络设备列表,根据IP相似度获取地理位置最靠近网络设备的IP地址。具体细节描述可以参看实施例1.1。
实施例3.2:用户端中报文代理功能的实现:
用户端设定好默认路由表,让第一报文都由虚拟网卡处理。将发往目的地的第一报文都重定向到虚拟网卡(tun设备)中,虚拟网卡得到第一报文后为第一报文添加一个新的包头(IP应由控制器提供在新包头IP头协议项中使用253,为了在网络设备中起到识别的作用),然后由真实网卡发出。第一报文的发送使用libnet库,从tun设备中得到的第一报文包含IP头以上的所有报文数据。将这段数据作为新的IP数据包的荷载数据。
实施例4:系统云端实现。
如图2所示的用户端访问服务器的过程,控制器选择最优路径经过3个网络设备到达服务器,没有出现报文不匹配的情况,网络设备在控制器的控制下定时上传链路状态,获得流表更新,下面介绍整个访问过程。
用户端发起通信,向控制器注册,控制器根据IP相似度获取最靠近用户端的网络设备的IP地址,返回用户端,用户端利用该IP地址封装第一报文发至网络设备。封装的时候第一报文的头部必须包括值为253的协议字段,以便网络设备识别并解封装。
网络设备收到第一报文之后首先查找流表,若匹配成功,执行第二隧道操作并转发。当第一报文转发至邻近服务器的邻近网络设备时,该邻近网络设备的透明代理保存第一报文的源IP地址和源端口号,以邻近网络设备的IP地址和专门生成的端口号替换源IP地址和源端口号,将第一报文转发至服务器。服务器应答生成第二报文返回该邻近网络设备,其透明代理根据该第二报文的目的端口号查找记录,并以记录中的IP地址和端口号替换第二报文目的IP地址和目的端口号,继而第二报文经隧道处理并转发回到用户端。
通过具体实施方式的说明,应当可对发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。
Claims (7)
1.一种软件定义的多路径网络流实时动态优化方法,其特征在于,应用于广域网中,包括:
多路径网络架构构建步骤:在所述广域网中部署多路径网络流实时动态优化的控制器、智能软件定义的网络设备、用户端和服务器,其中所述控制器和所述网络设备构成控制面和交换面分离的多路径网络架构,所述用户端在所述多路径网络架构下通过实时动态优化的多路径网络流路径访问所述服务器;
实时监控步骤:所述网络设备自主地对网络进行网络状态的测量,并实时或者近实时地上传网络状态信息给控制器;所述控制器存储所述多路径网络架构的网络拓扑结构,并且根据所述网络设备上传的当前网络状态信息,结合预先定义或者缺省定义的网络应用场景特性信息,实时更新所述网络拓扑结构,并计算各个网络流在新的网络拓扑结构下的优选路径和对应的流表,并且将对应的流表下发至所述网络设备;
其中,在所述实时监控步骤之后,所述方法,还包括:
所述控制器接收所述用户端的注册请求;
所述用户端向所述控制器请求发送第一报文;
所述控制器同意请求后,为所述用户端指定所述网络设备中的一台,并且计算所述用户端至所述服务器的最优路径;
所述用户端对所述第一报文进行第一隧道操作后,将所述第一报文发送至所述网络设备;
所述网络设备接收到所述第一报文后,对所述第一报文进行第二隧道操作后查找是否存有所述第一报文的流表;
若所述网络设备存有所述第一报文的流表,则所述网络设备根据所述第一报文的流表转发所述第一报文,直至所述第一报文到达所述服务器;
所述服务器收到所述第一报文后,按照所述用户端发送所述第一报文至所述服务器的路径返回第二报文至所述用户端。
2.根据权利要求1所述的软件定义的多路径网络流实时动态优化方法,其特征在于,所述网络设备查找是否存有所述第一报文的流表之后,所述方法,还包括:若所述网络设备不存有所述第一报文的流表,则所述网络设备将所述第一报文转发至所述控制器,所述控制器计算所述用户端与服务器之间的最优路径和所述第一报文的流表,并将所述第一报文的流表发送至所述网络设备。
3.根据权利要求2所述的软件定义的多路径网络流实时动态优化方法,其特征在于,所述控制器计算所述第一报文的流表,具体包括:
所述控制器根据所述网络设备上传的当前网络状态信息和所述网络应用场景特性信息计算所述第一报文的流表。
4.根据权利要求1至3中任一项所述的软件定义的多路径网络流实时动态优化方法,其特征在于,所述控制器为所述用户端指定所述网络设备中的一台,具体包括:
所述控制器根据所述当前网络状态信息和所述网络应用场景特性信息向所述用户端指定一台网络设备;或者,
所述控制器根据IP地址相似度,或者网络可用带宽为所述用户端指定一台网络设备。
5.根据权利要求1所述的软件定义的多路径网络流实时动态优化方法,其特征在于,所述网络设备对所述第一报文进行第二隧道操作,具体包括:
所述网络设备对所述第一报文先后进行解报头操作和加报头操作。
6.根据权利要求1所述的软件定义的多路径网络流实时动态优化方法,其特征在于,所述服务器按照所述用户端发送所述第一报文至所述服务器的路径返回第二报文至所述用户端,具体包括:
所述网络设备对所述第二报文进行加报头操作后,按照所述用户端发送所述第一报文至所述服务器的路径返回所述第二报文至所述用户端。
7.根据权利要求1所述的软件定义的多路径网络流实时动态优化方法,其特征在于,所述服务器收到所述第一报文后,按照所述用户端发送所述第一报文至所述服务器的路径返回第二报文至所述用户端,还包括,邻近服务器的邻近网络设备透明代理步骤:
邻近网络设备接收到所述第一报文时,保存所述第一报文的源IP地址和源TCP端口至专门列表,并将所述第一报文中的源IP地址和源TCP端口替换为所述邻近网络设备的IP地址和指定端口号;
所述邻近网络设备接收到所述第二报文时,根据所述第二报文的目的TCP端口号在所述专门列表中搜索对应表项替换所述第二报文中的目的IP地址和目的TCP端口号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511021471.1A CN105450521B (zh) | 2015-12-31 | 2015-12-31 | 一种软件定义的多路径网络流实时动态优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511021471.1A CN105450521B (zh) | 2015-12-31 | 2015-12-31 | 一种软件定义的多路径网络流实时动态优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105450521A CN105450521A (zh) | 2016-03-30 |
CN105450521B true CN105450521B (zh) | 2019-10-25 |
Family
ID=55560323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511021471.1A Active CN105450521B (zh) | 2015-12-31 | 2015-12-31 | 一种软件定义的多路径网络流实时动态优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105450521B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105956707A (zh) * | 2016-05-09 | 2016-09-21 | 王君岳 | 一种油藏监测系统的优化方法 |
TW201803314A (zh) | 2016-06-29 | 2018-01-16 | 日本電氣股份有限公司 | 伺服器、開關、通信系統、通信方法及記錄媒體 |
US9985870B2 (en) * | 2016-07-29 | 2018-05-29 | Nanning Fugui Precision Industrial Co., Ltd. | Network service method and system based on software defined networking |
TWI623223B (zh) * | 2016-08-02 | 2018-05-01 | Chunghwa Telecom Co Ltd | 支援多樣性架構元件之軟體定義網路控制器 |
CN107948232B (zh) * | 2016-10-13 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 基于Hook API的代理实现方法、数据传输方法、装置及系统 |
CN109787801B (zh) | 2017-11-15 | 2022-01-21 | 华为技术有限公司 | 一种网络服务管理方法、装置和系统 |
CN109039893B (zh) * | 2018-09-03 | 2021-09-03 | 北京红云融通技术有限公司 | 一种基于广域ip网络的数据交换网络及方法 |
CN113839858A (zh) * | 2020-06-23 | 2021-12-24 | 中兴通讯股份有限公司 | 通信方法及通信设备 |
CN112217680B (zh) * | 2020-10-19 | 2022-12-02 | 中国信息通信研究院 | 基于软件定义广域网的控制器能力基准测试方法和装置 |
CN112311697B (zh) * | 2020-10-26 | 2022-05-24 | 新华三大数据技术有限公司 | 一种路径配置方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2672668A1 (en) * | 2012-06-06 | 2013-12-11 | Juniper Networks, Inc. | Creating searchable and global database of user visible process traces |
CN103731307A (zh) * | 2013-12-30 | 2014-04-16 | 浙江大学 | 一种针对多业务的标准化数据面动态重构方法 |
CN104253749A (zh) * | 2014-09-18 | 2014-12-31 | 华南理工大学 | 一种基于软件定义网络架构的用户端分布式路径计算方法 |
CN104363084A (zh) * | 2014-11-28 | 2015-02-18 | 杭州华三通信技术有限公司 | 一种链路状态同步方法及装置 |
CN104518993A (zh) * | 2014-12-29 | 2015-04-15 | 华为技术有限公司 | 云化网络通信路径的分配方法、装置及系统 |
CN104579977A (zh) * | 2014-12-23 | 2015-04-29 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种sdn控制器的带约束多路径路由方法及系统 |
CN105119840A (zh) * | 2015-09-01 | 2015-12-02 | 华东师范大学 | 基于sdn使用胖树拓扑结构的数据中心网络负载均衡方法 |
-
2015
- 2015-12-31 CN CN201511021471.1A patent/CN105450521B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2672668A1 (en) * | 2012-06-06 | 2013-12-11 | Juniper Networks, Inc. | Creating searchable and global database of user visible process traces |
CN103731307A (zh) * | 2013-12-30 | 2014-04-16 | 浙江大学 | 一种针对多业务的标准化数据面动态重构方法 |
CN104253749A (zh) * | 2014-09-18 | 2014-12-31 | 华南理工大学 | 一种基于软件定义网络架构的用户端分布式路径计算方法 |
CN104363084A (zh) * | 2014-11-28 | 2015-02-18 | 杭州华三通信技术有限公司 | 一种链路状态同步方法及装置 |
CN104579977A (zh) * | 2014-12-23 | 2015-04-29 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种sdn控制器的带约束多路径路由方法及系统 |
CN104518993A (zh) * | 2014-12-29 | 2015-04-15 | 华为技术有限公司 | 云化网络通信路径的分配方法、装置及系统 |
CN105119840A (zh) * | 2015-09-01 | 2015-12-02 | 华东师范大学 | 基于sdn使用胖树拓扑结构的数据中心网络负载均衡方法 |
Non-Patent Citations (1)
Title |
---|
Wenfeng Xia等.A Survey on Software-Defined Networking.《IEEE COMMUNICATION SURVEYS & TUTORIALS》.2014,第17卷(第1期),第27-51页. * |
Also Published As
Publication number | Publication date |
---|---|
CN105450521A (zh) | 2016-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105450521B (zh) | 一种软件定义的多路径网络流实时动态优化方法 | |
US8942238B2 (en) | Apparatus and method for establishing tunnels between nodes in a communication network | |
US9515920B2 (en) | Name-based neighbor discovery and multi-hop service discovery in information-centric networks | |
WO2016165492A1 (zh) | 一种实现业务功能链的方法和装置 | |
CN107113241B (zh) | 路由确定方法、网络配置方法以及相关装置 | |
CN109039919B (zh) | 转发路径确定方法、装置、系统、计算机设备及存储介质 | |
EP2911348A1 (en) | Control device discovery in networks having separate control and forwarding devices | |
CN105553680A (zh) | 基于网络特征创建虚拟接口的系统和方法 | |
US10164862B2 (en) | Communication system, control device, communication method and program | |
ES2620082T3 (es) | Identificación de rutas tomadas a través de una red de dispositivos interconectados | |
EP2933979A1 (en) | Dht-based control network implementation method and system, and network controller | |
US20110051738A1 (en) | Method, system and device for maintaining routes | |
CN106470158B (zh) | 报文转发方法及装置 | |
US20220217087A1 (en) | Service routing method and apparatus | |
JP6928076B2 (ja) | パケット監視 | |
JP2020527918A (ja) | データフロー伝送 | |
CN113810287B (zh) | 一种基于ndn和sdn的数据检索与推送方法 | |
JP2018536345A (ja) | ファイアウォールクラスタ | |
CN111147372B (zh) | 下行报文发送、转发方法和装置 | |
CN105530185A (zh) | 覆盖路由网络、基于覆盖路由网络的路由方法及路由器 | |
CN107547283A (zh) | 分布式聚合组的管理方法及装置 | |
CN107070790A (zh) | 一种路由学习方法及路由设备 | |
CN105227458B (zh) | Trill isis的路由计算方法及装置 | |
JP5648560B2 (ja) | トラフィックエンジニアリング装置、トラフィックエンジニアリング方法およびプログラム | |
CN110022263A (zh) | 一种数据传输的方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |