一种基于交换机负载的域内负载均衡方法

文档序号:8907631阅读:390来源:国知局
一种基于交换机负载的域内负载均衡方法
【技术领域】
[0001] 本发明涉及计算机网络技术领域,尤其涉及一种基于交换机负载的域内负载均衡 方法。
【背景技术】
[0002] 网络由多个自治域(AutonomousSystem,AS)构成,这些自治域内部独立运行各自 的路由算法,完成数据包的转发。连接了不同自治域的交换机位于自治域的边界,称为边界 交换机。源地址和目的地址不在同一个域的跨域流量通过域内路由算法在域内转发,从一 个边界交换机到达另一个边界交换机,然后被转发到另一个域。
[0003] 目前常用的域内路由协议是开放最短路径优先(OpenShortestPathFirst, 0SPF)协议,这一协议为流量提供域内最短路径的转发。在最短路径优先的选路算法中,负 载均衡算法通过记录最短路径的集合,将流量均分到这些最短路径上,实现负载均衡,称为 等价多路径(EqualCostMultiPath,ECMP)。这一负载均衡方法实现简单,但仅仅基于本 地信息对流量进行等价划分,不能根据路径的负载情况做出及时的调整。
[0004] 软件定义网络(SDN)是一种新型的网络架构,在这种架构中,一个AS由一个 或多个控制器和一组交换机组成,控制器决定流的转发策略,并通过控制信道(Control Channel)将策略写入转发设备(支持OpenFlow协议的交换机)。这些交换机承担数据转 发的功能,选路算法则由控制器来完成。AS中的网络信息对于域内控制器来说是透明的,控 制器可以根据域内的信息进行路由决策。
[0005] 在SDN中,支持OpenFlow协议的交换机维护一个称为流表的存储结构,流表中保 存了一组流表项,每条流表项包含匹配域、优先级、计数器、指令等信息,用于流量到达时的 匹配和转发,流表项的计数器记录了每条流表项被匹配的次数。OpenFlow协议同时支持对 于流表统计信息的查询,控制器向交换机发送查询请求,交换机会返回相应的消息。交换机 保存的统计信息范围包括流表、流表项和端口,其中端口反映了链路上的负载情况。

【发明内容】

[0006] 本发明的目的在于针对现有技术的不足,提供一种基于交换机负载的域内负载均 衡方法,该方法能够根据域内交换机负载为跨域流量选路,在优先保证域内流量的情况下, 合理地调度域间流量,将域间分流到负载较轻的交换机,最终实现负载均衡的目的。
[0007] 本发明的目的是通过以下技术方案来实现的:一种基于交换机负载的域内负载均 衡方法,包括如下步骤:
[0008] (1)计算域内交换机负载的估计值,该步骤包括以下子步骤:
[0009] (1. 1)控制器通过控制信道,向域内的每一个交换机依次发送P0RT_STATS_ REQUEST消息,查询域内交换机每一个端口的统计信息,所述P0RT_STATS_REQUEST消息在 OpenFlow协议中定义;
[0010] (1. 2)交换机收到P0RT_STATS_REQUEST消息后,通过控制信道向控制器发送 PORT_STATS_REPLY消息,所述PORT_STATS_REPLY消息在OpenFlow协议中定义;控制器在tn时刻收到第i个交换机的消息,第i个交换机共有k个端口,记录交换机历史收到的包总 娄
,loac^为第i个交换机第j个端口历史收到的包总数,所述历史为从
交换机最近一次清空统计数据开始,直至、时刻的时间段,
[0011] (1. 3)将交换机i在时间间隔t内的负载记为 ,所述t为 获取统计信息的最小间隔,tjPtn_i为相邻两次获取统计信息的时刻;
[0012] (1. 4)每间隔时间间隔T,计算一次交换机负载的平均值,当前1"时刻交换机负载 平均值3 >其中Tm和Tm为相邻两次计算平均值的时 刻;
[0013] (1. 5)用指数平滑法对交换机负载进行估计,得到交换机Tm时刻负载的估计值为 ,,a为平滑指数,aG(〇,1);
[0014] (2)计算域内负载均衡路径,该步骤包括以下子步骤:
[0015] (2. 1)记录域内每一台边界交换机的编号,并记录其连接其他域的端口号以及所 连接的域的编号;
[0016] (2.2)对于域内每一对连接了不同域的端口对,计算以其中一个端口a所连接的 域A经过本域C转发到另一端口b所在的交换机,再经该交换机转发到端口b连接的域B 的路径中所有交换机的瓶颈负载,具体如下:
[0017] (2.2. 1)将域内所有交换机的瓶颈负载X设为无穷大,即到达该交换机的所有路 径的负载的最大值为无穷大,将端口a所属的交换机s的瓶颈负载Xs更新为,,并将交换 机s加入队列,s的在队标记设为TRUE;
[0018] (2. 2. 2)当队列不为空时,每次从队首取一个交换机记为p,取出交换机p后将p 的在队标记设为FALSE ;
[0019] (2. 2. 3)比较X# ,并记录其较大值记为x;
[0020] (2. 2. 4)对于每一台与交换机p相连的交换机q,如果x<Xq,则更新XqSX,并将 q的上一跳标记为P;
[0021] (2. 2. 5)如果交换机q的在队标记为FALSE且q不是目的端口b所在的交换机,则 将交换机q加入队列,并将q的在队标记设为TRUE;
[0022] (2.2.6)重复步骤(2.2. 2)_(2. 2. 5),直到队列为空,得到路径内每个交换机的瓶 颈负载;
[0023] (2.3)对于每一对起始端口相同且目的域相同的端口对,找出到达目的端口瓶颈 负载最小的路径,并根据路径上每台交换机记录的上一跳交换机编号记录整条路径,该路 径即为域内负载均衡路径;
[0024] (3)实现跨域流量的调度,该步骤包括以下子步骤:
[0025] (3. 1)监听本域交换机向控制器发送的PACKET_IN消息,所述PACKET_IN消息在 OpenFlow协议中定义,如果流量的源地址和目的地址都不是本域,且源地址和目的地址位 于不同域,认为这是跨域流量请求,对这条流量进行调度,否则按照域内最短路径为其选 路;
[0026] (3. 2)对于跨域流量请求,寻找域内以收到流量请求的端口为起点、有到达目的域 的路径的其他端口为终点的域内负载均衡路径;
[0027] (3. 3)对于域内负载均衡路径上每一台交换机,发送增加流表项命令,其匹配域设 置为跨域流量的源地址和目的地址,转发动作设为从连接路径下一跳交换机的端口发出; 在流表项超时删除前,该源地址和目的地址的跨域流量都按照步骤3. 2所述的域内负载均 衡路径转发,从而为跨域流量寻找负载较轻的转发路径,在保证域内流量按最短路径转发 的同时,实现负载均衡。
[0028] 本发明的有益效果是,本发明根据域内交换机的统计信息估计交换机负载,为跨 域流量寻找负载较轻的转发路径,在保证域内流量按最短路径转发的同时,实现负载均衡 的效果。
【附图说明】
[0029]图1是跨域流量转发示意图;
[0030] 图2是基于交换机负载的域内负载均衡方法的流程图;
[0031] 图3是交换机负载估计值示意图;
[0032] 图4是路径计算算法执行结果示意图。
【具体实施方式】
[0033] 下面以图1所示的拓扑为例,描述本发明。本发明方法能够在OpenFlow1. 0或者 OpenFlow1.0以上的更高版本中实现。本发明一种基于交换机负载的域内负载均衡方法, 包括以下步骤:
[0034]步骤1:计算域内交换机负载的估计值,该步骤包括以下子步骤:
[0035] 1. 1、域A、B、C的控制器分别通过控制信道,向其域内的每一个交换机依次发送 PORT_STATS_REQUEST消息,查询域内交换机每一个端口的统计信息,所述P0RT_STATS_ REQUEST消息在OpenFlow协议中定义;
[0036] 1. 2、交换机收到P0RT_STATS_REQUEST消息后,通过控制信道向控制器发送P0RT_ STATS_REPLY消息,所述P0RT_STATS_REPLY消息在OpenFlow协议中定义;控制器在tn时刻 收到第i个交换机的消息,第i个交换机共有4个端口,记录交换机历史收到的包总数:
[0037]
[0038] 1. 3、将交换机在时间间隔t内的负载记为:
[0039]
[0040]所述t为获取统计信息
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1