一种sdn网络报文发送方法及设备的制作方法

文档序号:7817750阅读:174来源:国知局
一种sdn网络报文发送方法及设备的制作方法
【专利摘要】本发明公开了一种SDN网络报文发送方法,该方法包括:SDN控制器接收SDN交换设备发来的携带待发送报文流带宽的分流表项请求报文,待发送报文流的优先级大于优先级阈值;分配一个额定带宽不小于待发送报文流带宽的专用出端口作为待发送报文流的匹配专用出端口;为待发送报文流创建分流表项,并将分流表项与匹配专用出端口携带于分流表项应答报文中发送给SDN交换设备,使得SDN交换设备根据分流表项将待发送报文流进行分流,并通过匹配专用出端口进行发送。
【专利说明】一种SDN网络报文发送方法及设备

【技术领域】
[0001] 本发明涉及通信【技术领域】,特别是涉及一种SDN网络报文发送方法及设备。

【背景技术】
[0002] SDN网络(Software Defined Network,软件定义网络)通常由SDN交换设备 (Switch)和SDN控制器(Controller)组成。其中,SDN控制器是控制中心,根据用户的配 置或者动态运行的协议生成流表发送到SDN交换设备。SDN交换设备接收SDN控制器下发 的流表,并根据流表进行报文处理,向SDN控制器上报设备的状态和事件,如接口 UP/D0WN。 在SDN交换设备和SDN控制器之间通过SDN通道(基于传输控制协议TCP或者安全套接层 SSL)进行通信。
[0003] 负载分担技术应用范围广泛,在网络领域,通过对报文流量进行分流来实现负载 分担。目前,SDN网络中SDN交换设备对接收到的报文流基于负载分担原则进行流量分流的 实现方案为,在SDN交换设备上配置至少一条不同的ACL(访问控制列表,Access Control List)匹配不同的报文流,SDN交换设备接收到报文流后,根据报文流的五元组(源/目的 IP、源/目的端口号、协议类型)或其他报文头信息与ACL进行匹配,使得SDN交换设备接收 到的至少一条报文流分别匹配不同的ACL,进入出端口不同的队列,实现报文流的分流,完 成对出端口发送队列的负载分担。如图1所示,SDN交换设备上配置4条不同的ACL:ACL1、 ACL2、ACL3和ACL4,该SDN交换设备接收到4条不同的报文流:X1、X2、X3和X4,这4条报文 流分别匹配4条不同的ACL,假设XI匹配ACL1,X2匹配ACL2,X3匹配ACL3,X4匹配ACL4, 则报文流XI进入队列1,报文流X2进入队列2,报文流X3进入队列3,报文流X4进入队列 4,通过报文流匹配ACL实现了待发送报文分流,完成对接口 R2的出端口发送队列进行负载 分担。
[0004] 但是,由于同一条报文流的报文头信息是一样的,所以使用ACL来匹配报文流进 行分流,只能对不同的报文流进行分流,无法完成对同一条报文流进行分流的任务。例如, 假设图1中SDN交换设备仅接收到报文流XI,根据ACL匹配原则,报文流XI匹配ACL1,进 入队列1进行发送,对于SDN交换设备来说,并没有实现报文分流,也就没有实现出端口发 送队列的负载分担。


【发明内容】

[0005] 有鉴于此,本发明提出了一种SDN网络报文发送方法及设备,有效解决了现有方 案中无法对同一条报文流进行分流发送的缺陷。
[0006] 本发明提出的技术方案是:
[0007] -种SDN网络报文发送方法,该方法包括:
[0008] SDN控制器接收SDN交换设备发来的携带待发送报文流带宽的分流表项请求报 文,待发送报文流的优先级大于优先级阈值;
[0009] 分配一个额定带宽不小于待发送报文流带宽的专用出端口作为待发送报文流的 匹配专用出端口;
[0010] 为待发送报文流创建分流表项,并将分流表项与匹配专用出端口携带于分流表项 应答报文中发送给SDN交换设备,使得SDN交换设备根据分流表项将待发送报文流进行分 流,并通过匹配专用出端口进行发送。
[0011] 一种SDN网络报文发送方法,该方法包括:
[0012] SDN交换设备接收优先级大于优先级阈值的待发送报文流,计算待发送报文流带 宽,将带宽携带于分流表项请求报文中发送给SDN控制器,使得SDN控制器为待发送报文流 分配匹配专用出端口并创建分流表项;
[0013] 接收SDN控制器发送的携带匹配专用出端口和分流表项的分流表项应答报文;
[0014] 将待发送报文流根据分流表项进行分流得到子报文流,并将子报文流通过匹配专 用出端口进行发送。
[0015] 一种SDN控制器,该SDN控制器包括:
[0016] 接收模块,用于接收SDN交换设备发来的携带待发送报文流带宽的分流表项请求 报文,待发送报文流的优先级大于优先级阈值;
[0017] 端口分配模块,用于分配一个额定带宽不小于待发送报文流带宽的专用出端口作 为待发送报文流的匹配专用出端口;
[0018] 表项创建模块,用于为待发送报文流创建分流表项;
[0019] 发送模块,用于将分流表项与匹配专用出端口携带于分流表项应答报文中发送给 SDN交换设备,使得SDN交换设备根据分流表项将待发送报文流进行分流,并通过匹配专用 出端口进行发送。
[0020] 一种SDN交换设备,该设备包括:
[0021] 接收模块,用于接收优先级大于优先级阈值的待发送报文流;
[0022] 计算模块,用于计算待发送报文流带宽;
[0023] 发送模块,用于将带宽携带于分流表项请求报文中发送给SDN控制器,使得SDN控 制器为待发送报文流分配匹配专用出端口并创建分流表项;
[0024] 接收模块,用于接收SDN控制器发送的携带匹配专用出端口和分流表项的分流表 项应答报文;
[0025] 分流模块,用于将待发送报文流根据分流表项进行分流得到子报文流;
[0026] 发送模块还用于,通过匹配专用出端口发送子报文流。
[0027] 综上,本发明提出了一种SDN网络报文发送方法及设备,在该方法中,SDN交换设 备将优先级大于优先级阈值的待发送报文流与匹配的分流表项中降序排列的每一级分流 带宽进行比较,按照分流带宽内流量通过、分流带宽外流量修改非五元组报文头信息并通 过进行报文处理,将同一报文流分成N条子报文流分别进入匹配专用出端口不同的队列进 行发送,实现了对同一条优先级大于优先级阈值的报文流在专用出端口发送队列的负载分 担,其中N为分配给优先级大于优先级阈值的报文流的专用出端口的发送队列数。

【专利附图】

【附图说明】
[0028] 图1为现有技术SDN网络报文分流原理图;
[0029] 图2为本发明技术方案流程图;
[0030] 图3为本发明SDN网络报文分流原理图;
[0031] 图4为本发明实施例流程图;
[0032] 图5为本发明实施例的SDN控制器结构图。
[0033] 图6为本发明实施例的SDN交换设备结构图。

【具体实施方式】
[0034] 现有技术通过在SDN交换设备上配置至少一条ACL匹配不同的报文流,实现SDN 交换设备接收至少一条报文流时分别根据报文头信息匹配不同的ACL,进入不同的出端口 发送队列,实现报文分流,完成对出端口发送队列的负载分担。由于同一条报文流的报文头 信息(源/目的IP、源/目的端口号、协议类型、服务类型ToS、差分服务编码点DSCP等) 是相同的,现有技术如不作任何改进,不能根据ACL对同一条报文流进行分流。
[0035] 基于此,本发明提出一种SDN网络报文发送方法,SDN控制器为优先级大于优先级 阈值的待发送报文流分配一个匹配专用出端口,并为该优先级大于优先级阈值的待发送报 文流创建分流表项,使得该优先级大于优先级阈值的待发送报文流与该分流表项包含的每 一级分流带宽进行比较,执行分流带宽内流量通过、分流带宽外流量修改非五元组报文头 信息并通过的报文处理,将该优先级大于优先级阈值的待发送报文流分成N个非五元组报 文头信息互不相同的子报文流,然后将这N个子报文流分别根据ACL匹配策略通过匹配专 用出端口的N个不同发送队列进行发送,实现出端口发送队列负载分担的功能。
[0036] 对于每一个SDN交换设备,都有至少一个出端口,SDN控制器为每一个SDN交换设 备指定至少一个出端口作为专用出端口,并根据专用出端口的额定带宽为该专用出端口设 置N个发送队列,每个发送队列的额定带宽相等,N个发送队列的额定带宽之和为该专用出 端口的额定带宽。SDN交换设备的专用出端口用来发送优先级大于优先级阈值的报文流。
[0037] 本发明实施例的技术方案是:
[0038] 如图2所示,本发明一种SDN网络报文发送方法应用于SDN控制器上,对于SDN控 制器,执行以下步骤:
[0039] 步骤201 :SDN控制器接收SDN交换设备发来的携带待发送报文流带宽的分流表项 请求报文,待发送报文流的优先级大于优先级阈值。
[0040] 步骤202 :SDN控制器分配一个额定带宽不小于待发送报文流带宽的专用出端口 作为待发送报文流的匹配专用出端口。
[0041] 其中,匹配专用出端口包含N个发送队列,且每个发送队列的额定带宽相同。
[0042] 步骤203 :SDN控制器为待发送报文流创建分流表项,并将分流表项与匹配专用出 端口携带于分流表项应答报文中发送给SDN交换设备,使得SDN交换设备根据分流表项将 待发送报文流进行分流,并通过匹配专用出端口进行发送。
[0043] 其中,SDN控制器创建分流表项的方法为:
[0044] SDN控制器创建一个包含N-1级分流带宽的分流表项,每级分流带宽的动作为分 流带宽内流量通过、分流带宽外流量修改非五元组报文头信息并通过,分流表项的N-1级 分流带宽用于将待发送报文流总共分流成N个非五元组报文头信息各不相同的子报文流;
[0045] 并且,分流表项的N-1级分流带宽同时满足以下条件:N-1级分流带宽依次降序排 列,任意相邻两级分流带宽的差值不大于匹配专用出端口每个发送队列的额定带宽,第一 级分流带宽小于待发送报文流带宽,待发送报文流带宽与第一级分流带宽之差不大于匹配 专用出端口每个发送队列的额定带宽,最后一级分流带宽不大于匹配专用出端口每个发送 队列的额定带宽。
[0046] 这里,SDN创建分流表项时,关于每级分流带宽修改分流带宽外流量的非五元组报 文头信息的动作,有如下限制条件:每一级分流带宽修改的分流带宽外流量非五元组报文 头信息互不相同,且与待发送报文流未修改前的非五元组报文头信息不同,具体实现方法 有多种,在此不再一一列举,只需满足上述条件即可。
[0047] SDN控制器创建好分流表项以后,进一步根据创建的分流表项以及待发送报文流 未经修改的非五兀组报文头信息创建ACL表项,这里ACL表项是存储非五兀组报文头信息 与发送队列一一对应关系的表项,能够使得分流后的子报文流根据各自非五元组报文头信 息查询匹配的ACL表项,通过匹配的ACL表项的发送队列进行发送。
[0048] SDN交换设备接收到SDN控制器发送的分流表项应答报文后,根据分流表项应答 报文携带的分流表项对待发送报文流进行分流,具体实现方法为:
[0049] SDN交换设备将待发送报文流与分流表项的第一级分流带宽进行比较,这里的第 一级分流带宽是分流表项降序排列的第一级分流带宽;
[0050] 修改本级分流带宽外的待发送报文流的非五元组报文头信息;
[0051] 将本级分流带宽内的待发送报文流与分流表项的下一级分流带宽进行比较;
[0052] 返回执行修改本级分流带宽外的待发送报文流的非五元组报文头信息的步骤,直 至待发送报文流与分流表项的最后一级分流带宽进行比较,修改最后一级分流带宽外的待 发送报文流的非五元组报文头信息,保持最后一级分流带宽内的流量的非五元组报文头信 肩、。
[0053] 通过上述方法,SDN交换设备将待发送报文流分流为N个非五元组报文头信息互 不相同的子报文流,之后根据分流表项应答报文携带的ACL表项进行子报文流的发送。
[0054] 这里,非五元组报文头信息可以是报文流的差分服务编码点(DSCP, Differentiated Services Code Point),或者报文流的服务类型(ToS,Type of Service), 在此不再一一列举。
[0055] 通过上述方法,SDN交换设备将接收到的同一条报文流分流成N条非五元组报文 头信息互不相同的子报文流。如图3所示,SDN交换设备接收到一条报文流Y,将报文流Y 的非五元组报文头信息用A表示,SDN控制器为报文流Y创建的分流表项包含N-1级分流 带宽,分别为Bandl、Band2、…、Band N-1,每级分流带宽的动作为分流带宽内流量通过,分 流带宽外流量修改非五元组报文头信息并通过,报文流Y分别与上述N-1级分流带宽进行 比较,被分流成子报文流Y(1)、Y(2)、···、Y(N)共N条子报文流,且上述N条子报文流的非 五元组报文头信息各不相同,图中用A1、A2、…、An-1、A进行区分。分流得到的N条子报 文流分别通过ACL匹配策略进入匹配专用出端口的不同发送队列进行发送,实现了出端口 发送队列的负载分担。
[0056] 下面结合具体实施例对上述实现SDN网络报文分流的方法进行详细说明。
[0057] 目前,SDN技术中最为流行的是OpenFlow协议,以下将以OpenFlow进行举例进行 说明,需要说明的是,本申请并不排除其他能够实现SDN功能的协议。
[0058] 本实施例假设OpenFlow设备(Switch)上有五个出端口,分别是端口 1 (150M)、端 口 2(800M)、端口 3(300M)、端口 4(220M)和端口 5(400M)。OpenFlow 控制器(Controller) 将端口 2和端口 5设置为专用出端口,并将端口 2划分为8个发送队列,每个发送队列的额 定带宽为100M,将端口 5划分为8个发送队列,每个发送队列的额定带宽为50M。本实施例 以Switch设备接收到高优先级报文流A (DSCP = 9)、对报文流A进行分流发送为例对本发 明技术方案进行说明,图4为本发明实施例的流程图,如图4所示,包括以下步骤:
[0059] 步骤401 :Switch设备接收报文流A,计算报文流A的带宽,将计算得到的带宽携 带于分流表项请求报文中发送给Controller。
[0060] 本步骤中,Switch设备接收到报文流A,计算报文流A的带宽,假设本实施例中报 文流A的带宽为350M,Switch设备将报文流A的带宽值携带于分流表项请求报文中发送给 控制器,请求Controller为报文流A分配匹配专用出端口,并创建分流表项。
[0061] 步骤402 :Controller接收分流表项请求报文,为报文流A分配一个出端口额定 带宽不小于报文流A的带宽的专用出端口为报文流A的匹配专用出端口,创建分流表项,根 据创建的分流表项修改的DSCP和报文流A未经修改的DSCP创建ACL表项,将分配给报文 流A的匹配专用出端口以及创建的分流表项、ACL表项携带于分流表项应答报文中发送给 Switch。
[0062] 本步骤中,Controller接收到的分流表项请求报文中携带的报文流A的带宽为 350M,目前专用出端口有端口 2和端口 5,其中端口 2的额定带宽为800M,端口 5的额定带 宽为400M,均大于报文流A的带宽,则从中选择一个专用出端口分配给报文流A,假设选择 端口 5。
[0063] 端口 5被划分为8个发送队列,因此Controller为报文流A创建一个包含7级 分流带宽的分流表项,7级分流带宽同时满足以下条件:7级分流带宽依次降序排列,任意 相邻两级分流带宽的差值不大于端口 2每个发送队列的额定带宽,第一级分流带宽小于报 文流A的带宽,报文流A的带宽与第一级分流带宽之差不大于端口 2每个发送队列的额 定带宽,最后一级分流带宽不大于端口 2每个发送队列的额定带宽。基于上述条件,假设 Controller为报文流A创建的分流表项如表1所示。
[0064] 表 1
[0065]

【权利要求】
1. 一种SDN网络报文发送方法,其特征在于,该方法包括: SDN控制器接收SDN交换设备发来的携带待发送报文流带宽的分流表项请求报文,所 述待发送报文流的优先级大于优先级阈值; 分配一个额定带宽不小于所述待发送报文流带宽的专用出端口作为所述待发送报文 流的匹配专用出端口; 为所述待发送报文流创建分流表项,并将所述分流表项与所述匹配专用出端口携带于 分流表项应答报文中发送给所述SDN交换设备,使得所述SDN交换设备根据所述分流表项 将所述待发送报文流进行分流,并通过所述匹配专用出端口进行发送。
2. 根据权利要求1所述的方法,其特征在于,所述匹配专用出端口包含N个发送队列, 且每个发送队列的额定带宽相同。
3. 根据权利要求1或2所述的方法,其特征在于,所述为所述待发送报文流创建分流表 项,具体包括以下步骤: 所述SDN控制器创建一个包含N-1级分流带宽的分流表项,每级分流带宽的动作为分 流带宽内流量通过、分流带宽外流量修改非五元组报文头信息并通过,所述N-1级分流带 宽用于将所述待发送报文流总共分流成N个非五元组信息各不相同的子报文流; 所述N-1级分流带宽依次降序排列,任意相邻两级分流带宽的差值不大于所述每个发 送队列的额定带宽,第一级分流带宽小于所述待发送报文流带宽,所述待发送报文流带宽 与第一级分流带宽之差不大于所述每个发送队列的额定带宽,最后一级分流带宽不大于所 述每个发送队列的额定带宽。
4. 根据权利要求3所述的方法,其特征在于,该方法进一步包括: 所述SDN控制器根据所述分流表项以及所述待发送报文流未经修改的非五元组报文 头信息创建访问控制列表ACL表项,所述ACL表项是存储非五兀组报文头信息与发送队列 一一对应关系的表项,使得分流后的子报文流根据非五元组报文头信息进入对应的发送队 列进行发送。
5. -种SDN网络报文发送方法,其特征在于,该方法包括: SDN交换设备接收优先级大于优先级阈值的待发送报文流,计算所述待发送报文流带 宽,将所述带宽携带于分流表项请求报文中发送给SDN控制器,使得SDN控制器为所述待发 送报文流分配匹配专用出端口并创建分流表项; 接收所述SDN控制器发送的携带所述匹配专用出端口和所述分流表项的分流表项应 答报文; 将所述待发送报文流根据所述分流表项进行分流得到子报文流,并将子报文流通过所 述匹配专用出端口进行发送。
6. 根据权利要求5所述的方法,其特征在于,所述分流表项包含N-1级分流带宽并按降 序排列,所述N为所述匹配专用出端口包含的发送队列数,每个发送队列的额定带宽相同。
7. 根据权利要求5或6所述的方法,其特征在于,所述将所述待发送报文流根据所述分 流表项进行分流,具体包括以下步骤: 所述SDN交换设备将待发送报文流与所述分流表项的第一级分流带宽进行比较,所述 第一级分流带宽是所述分流表项降序排列的第一级分流带宽; 修改本级分流带宽外的待发送报文流的非五元组报文头信息; 将本级分流带宽内的待发送报文流与所述分流表项的下一级分流带宽进行比较; 返回执行修改本级分流带宽外的待发送报文流的非五元组报文头信息的步骤,直至待 发送报文流与所述分流表项的最后一级分流带宽进行比较,修改最后一级分流带宽外的待 发送报文流的非五元组报文头信息。
8. 根据权利要求5所述的方法,其特征在于,该方法进一步包括: 所述SDN交换设备还接收到SDN控制器为所述待发送报文流创建的ACL表项,所述ACL 表项是存储非五兀组报文头信息与发送队列 对应关系的表项; 所述通过所述匹配专用出端口进行发送,具体包括以下步骤: SDN交换设备根据所述子报文流的非五元组报文头信息查询所述ACL表项,根据匹配 的ACL表项的发送队列发送所述子报文流。
9. 一种SDN控制器,其特征在于,该控制器包括: 接收模块,用于接收SDN交换设备发来的携带待发送报文流带宽的分流表项请求报 文,所述待发送报文流的优先级大于优先级阈值; 端口分配模块,用于分配一个额定带宽不小于所述待发送报文流带宽的专用出端口作 为所述待发送报文流的匹配专用出端口; 表项创建模块,用于为所述待发送报文流创建分流表项; 发送模块,用于将所述分流表项与所述匹配专用出端口携带于分流表项应答报文中发 送给所述SDN交换设备,使得所述SDN交换设备根据所述分流表项将所述待发送报文流进 行分流,并通过所述匹配专用出端口进行发送。
10. 根据权利要求9所述的控制器,其特征在于,所述端口分配模块为所述待发送报文 流分配的匹配专用出端口包含N个发送队列,且每个发送队列的额定带宽相同。
11. 根据权利要求9或10所述的控制器,其特征在于,所述表项创建模块创建分流表项 时进一步用于, 创建一个包含N-1级分流带宽的分流表项,每级分流带宽的动作为分流带宽内流量通 过、分流带宽外流量修改非五元组报文头信息并通过,所述N-1级分流带宽用于将所述待 发送报文流总共分流成N个非五元组信息各不相同的子报文流; 所述N-1级分流带宽依次降序排列,任意相邻两级分流带宽的差值不大于所述每个发 送队列的额定带宽,第一级分流带宽小于所述待发送报文流带宽,所述待发送报文流带宽 与第一级分流带宽之差不大于所述每个发送队列的额定带宽,最后一级分流带宽不大于所 述每个发送队列的额定带宽。
12. 根据权利要求11所述的控制器,其特征在于,所述表项创建模块进一步用于: 根据所述分流表项以及所述待发送报文流未经修改的非五元组报文头信息创建访问 控制列表ACL表项,所述ACL表项是存储非五兀组报文头信息与发送队列 对应关系的 表项,使得分流后的子报文流根据非五元组报文头信息进入对应的发送队列进行发送。
13. -种SDN交换设备,其特征在于,该设备包括: 接收模块,用于接收优先级大于优先级阈值的待发送报文流; 计算模块,用于计算所述待发送报文流带宽; 发送模块,用于将所述带宽携带于分流表项请求报文中发送给SDN控制器,使得SDN控 制器为所述待发送报文流分配匹配专用出端口并创建分流表项; 接收模块,用于接收所述SDN控制器发送的携带所述匹配专用出端口和所述分流表项 的分流表项应答报文; 分流模块,用于将所述待发送报文流根据所述分流表项进行分流得到子报文流; 所述发送模块还用于,通过所述匹配专用出端口发送所述子报文流。
14. 根据权利要求13所述的设备,其特征在于,所述接收模块接收的分流表项包含N-1 级分流带宽并按降序排列,所述N为所述匹配专用出端口包含的发送队列数,每个发送队 列的额定带宽相同。
15. 根据权利要求13或14所述的设备,其特征在于,所述分流模块进一步包括: 带宽比较子模块,用于将待发送报文流与所述分流表项的第一级分流带宽进行比较, 所述第一级分流带宽是所述分流表项降序排列的第一级分流带宽; 信息修改子模块,用于修改本级分流带宽外的待发送报文流的非五元组报文头信息; 所述带宽比较子模块还用于,将本级分流带宽内的待发送报文流与所述分流表项的下 一级分流带宽进行比较。
16. 根据权利要求13所述的设备,其特征在于,所述接收模块还用于,接收SDN控制器 为所述待发送报文流创建的ACL表项,所述ACL表项是存储非五元组报文头信息与发送队 列 对应关系的表项; 所述发送模块进一步用于,根据所述子报文流的非五元组报文头信息查询所述ACL表 项,根据匹配的ACL表项的发送队列发送所述子报文流。
【文档编号】H04L12/803GK104283805SQ201410581537
【公开日】2015年1月14日 申请日期:2014年10月27日 优先权日:2014年10月27日
【发明者】张庆军 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1