CN105991456A - 一种OpenFlow交换机、网络***及带宽共享方法 - Google Patents

一种OpenFlow交换机、网络***及带宽共享方法 Download PDF

Info

Publication number
CN105991456A
CN105991456A CN201510063448.2A CN201510063448A CN105991456A CN 105991456 A CN105991456 A CN 105991456A CN 201510063448 A CN201510063448 A CN 201510063448A CN 105991456 A CN105991456 A CN 105991456A
Authority
CN
China
Prior art keywords
flow
main frame
stream table
time
calculate
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.)
Granted
Application number
CN201510063448.2A
Other languages
English (en)
Other versions
CN105991456B (zh
Inventor
姚文胜
陈文华
李嫚
乔宏明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN201510063448.2A priority Critical patent/CN105991456B/zh
Publication of CN105991456A publication Critical patent/CN105991456A/zh
Application granted granted Critical
Publication of CN105991456B publication Critical patent/CN105991456B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种OpenFlow交换机、网络***及带宽共享方法。在用户网络和出口网关之间,串接OpenFlow交换机,该OpenFlow交换机包括:交换单元和控制单元;当判断交换单元的端口流量D超过预设的流量阀值D0时,控制单元计算各主机的平均流量和应该丢弃的流量总和,对于超出平均流量的主机按比例计算需要丢弃的包字节数量,并向交换单元下发流表修改消息,将流表的操作修改为丢弃动作;其中,所述比例为主机转发数据大小与平均流量的差值占应该丢弃的流量总和的比例;所述端口流量为下行端口流量或者上行端口流量。本发明实现了当网络发生拥塞时,上网用户公平共享网络带宽。

Description

一种OpenFlow交换机、网络***及带宽共享方法
技术领域
本发明涉及数据通信领域,特别涉及一种OpenFlow交换机、网络***及带宽共享方法。
背景技术
现有网络对多用户共享网络带宽导致网络拥塞处理方法一般是选择随机丢包技术,由于部分超量用户占据大量网络带宽,造成不管带宽流量大小(例如Web、P2P下载、视频、邮件等等)都会导致应用运行缓慢,导致正常用户尤其是使用低带宽应用的用户体验(例如Web)较差。例如,企业内部网络经常出现拥塞,导致部分用户上网速度慢,带宽无法动态公平共享。
软件定义网络(Software Defined Network,SDN)是一种新型网络创新架构,其核心技术是通过OpenFlow(开放流)等协议将网络设备控制面与数据面分离开来,利用SDN控制器可编程软件实现对网络的灵活管理与控制。
发明内容
本发明解决的一个技术问题是:当网络发生拥塞时,上网用户不能公平共享网络带宽。
根据本发明的第一方面,提供了一种OpenFlow交换机,包括:交换单元,用于基于流表转发各主机的数据;控制单元,用于当判断所述交换单元的端口流量D超过预设的流量阀值D0时,计算各主机的平均流量和应该丢弃的流量总和,对于超出所述平均流量的主机按比例计算需要丢弃的包字节数量,并向所述交换单元下发流表修改消息;其中,所述比例为主机转发数据大小与所述平均流量的差值占所述应该丢弃的流量总和的比例;所述端口流量为下行端口流量或者上行端口流量。
进一步,所述控制单元包括:获取模块,用于每隔设定时间t0读取交换单元的端口流量D。
进一步,所述控制单元包括:计算模块,用于计算获得所述流表的丢弃动作的存活时间ti,并将所述存活时间ti下发至所述交换单元。
进一步,所述控制单元还包括:流表修改模块,用于根据修改触发消息将相应的流表的操作由丢弃动作修改为正常转发状态;其中,所述交换单元在丢弃流量的时间达到相应的存活时间ti时,向所述控制单元发送所述修改触发消息。
进一步,所述计算模块计算获得各主机需要丢弃的包字节数量ddi和各主机对应的流表转发速率vi,并计算相应的存活时间为其中,所述流表修改模块将ddi>0的主机所对应的流表操作修改为丢弃。
进一步,所述获取模块读取所述交换单元的上行端口流表数量m;所述计算模块计算获得主机数量所述获取模块从各流表中读取相应的各主机的转发数据大小fi;所述计算模块计算各主机转发数据大小之和以及平均流量统计各主机中转发数据大于平均流量fm的流量,记为(fb1,fb2,……,fbq),其中q≥1且为整数;计算所述转发数据大小之和超过流量阀值的流量DC=f-D0,计算所述应该丢弃的流量总和和各主机需要丢弃的包字节数量以及计算获得各主机对应的流表转发速率vi v i = f i t 0 .
根据本发明的第二方面,提供了一种网络***,包括:如前所述OpenFlow交换机。
根据本发明的第三方面,提供了一种带宽共享方法,包括:当判断交换单元的端口流量D超过预设的流量阀值D0时,计算各主机的平均流量和应该丢弃的流量总和,对于超出所述平均流量的主机按比例计算需要丢弃的包字节数量,并修改流表;以及基于修改后的流表转发数据;其中,所述比例为主机转发数据大小与所述平均流量的差值占所述应该丢弃的流量总和的比例;所述端口流量为下行端口流量或者上行端口流量。
进一步,在判断交换单元的端口流量D超过预设的流量阀值D0之前,还包括:每隔设定时间t0读取交换单元的端口流量D。
进一步,还包括:计算获得所述流表的丢弃动作的存活时间ti,并将所述存活时间ti下发至所述交换单元。
进一步,还包括:根据修改触发消息将相应的流表的操作由丢弃动作修改为正常转发状态;其中,所述交换单元在丢弃流量的时间达到相应的存活时间ti时,发送所述修改触发消息。
进一步,计算获得所述流表的丢弃动作的存活时间ti的步骤包括:计算获得各主机需要丢弃的包字节数量ddi和各主机对应的流表转发速率vi,并计算相应的存活时间为其中,将ddi>0的主机所对应的流表操作修改为丢弃。
进一步,计算各主机的平均流量的步骤包括:读取所述交换单元的上行端口流表数量m,计算获得主机数量以及从各流表中读取相应的各主机的转发数据大小fi;计算各主机转发数据大小之和 f = Σ i = 1 n f i , 以及平均流量 f m = f n .
进一步,计算获得各主机需要丢弃的包字节数量ddi和各主机对应的流表转发速率vi的步骤包括:统计各主机中转发数据大于平均流量fm的流量,记为(fb1,fb2,……,fbq),其中q≥1且为整数;计算所述转发数据大小之和超过流量阀值的流量DC=f-D0,计算所述应该丢弃的流量总和和各主机需要丢弃的包字节数量以及计算获得各主机对应的流表转发速率vi v i = f i t 0 .
本发明中,在用户网络和出口网关之间,串接OpenFlow交换机,该OpenFlow交换机包括:交换单元和控制单元;当判断交换单元的端口流量(例如下行端口流量或者上行端口流量)D超过预设的流量阀值D0时,控制单元计算各主机的平均流量和应该丢弃的流量总和,对于超出平均流量的主机按比例计算需要丢弃的包字节数量,并向交换单元下发流表修改消息,将流表的操作修改为丢弃动作;其中,所述比例为主机转发数据大小与平均流量的差值占应该丢弃的流量总和的比例。本发明实现了当网络发生拥塞时,上网用户公平共享网络带宽。
进一步地,当网络发生拥塞时,本发明能够在不浪费网络带宽、不影响大部分正常用户上网情况下,针对异常用户流量调度,对超量用户的流量进行适当的限制,保证网络带宽的充分利用,从而动态地实现上网用户公平共享网络带宽。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同说明书一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1是示出根据本发明一些实施例的OpenFlow交换机的网络连接示意图。
图2是示出根据本发明一些实施例的OpenFlow协议结构图。
图3是示出根据本发明一些实施例的控制单元的结构示意图。
图4是示出根据本发明一些实施例的带宽共享方法的流程图。
图5是示出根据本发明另一些实施例的带宽共享方法的流程图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1是示出根据本发明一些实施例的OpenFlow交换机的网络连接示意图。如图1所示,OpenFlow交换机100包括:交换单元102和控制单元101;交换单元102用于基于流表转发各主机的数据;控制单元101用于当判断交换单元的端口流量D超过预设的流量阀值D0时,计算各主机的平均流量和应该丢弃的流量总和,对于超出平均流量的主机按比例计算需要丢弃的包字节数量,并向交换单元下发流表修改消息;其中,所述比例为主机转发数据大小与平均流量的差值占应该丢弃的流量总和的比例;所述端口流量为下行端口流量或者上行端口流量。
在该实施例中,可以在用户网络和出口网关(例如企业网的出口网关)之间,串接OpenFlow交换机,当判断交换单元的下行端口流量或者上行端口流量超过预设的流量阀值D0时,控制单元计算各主机的平均流量和应该丢弃的流量总和,对于超出平均流量的主机按比例计算需要丢弃的包字节数量,并向交换单元下发流表修改消息,将流表的操作修改为丢弃动作,使得交换单元按比例丢弃流量,从而当网络发生拥塞时,能够在不浪费网络带宽、不影响大部分正常用户上网情况下,针对异常用户流量调度,对超量用户的流量进行适当的限制,保证网络带宽的充分利用,从而动态地实现上网用户公平共享网络带宽。
当然,本领域技术人员可以理解,OpenFlow交换机可以是物理的交换机,也可以是虚拟的交换机。如果是虚拟交换机,则需要将虚拟交换机OVS(Open vSwitch,开放虚拟交换标准)以及基于SDN控制器编程接口实现的带宽共享模块安装到计算机上,并且该计算机带有两个网卡(或者一个网卡两个逻辑接口)。
图2是示出根据本发明一些实施例的OpenFlow协议结构图。其中,图2中“控制器”与图1中的“控制单元”类似。如图2所示,Openflow协议的每个流表中每个流条目包括三个部分:(1)匹配match(即头域),包括:入端口(ingress port)、包头(packet header)以及前一个流表(flow table)传递过来的元数据(metadata);(2)计数器(counter),用于对匹配成功的包进行计数;(3)操作(instruction),用于修改动作集(action set)或者流水线处理(pipeline processing)。OpenFlow规范中指出,每个流表、流条目、端口、队列、组以及bucket(贮体)均可以具有计数器。操作指令包括:应用动作(apply-action)、清空动作(clear-action)、写动作(write-action)、写元数据(write metadata)以及转向动作(goto),除此之外,操作指令还包括:丢弃(Drop)动作。
例如,如图1所示,假设局域网内的主机1请求外网服务器数据,其中Port1和Port2是OpenFlow交换机的两个端口。局域网内的数据由Port1输入,从Port2输出,为了保证局域网内主机数据的正常发送和接收,控制单元(例如SDN控制器)需要向交换单元下发流表。流表的数据结构可以参考图2所示。
正常情况下,局域网内某个主机1发送数据时,经过OpenFlow交换机Port1输入,从Port2输出,流表如表1所示。
表1 OpenFlow交换机的流表实例一
当主机1的数据流量过大时,通过控制单元下发消息FLOW_MOD(流表修改消息)到交换单元以修改流表的操作,把流表的操作修改为丢弃(即Drop),修改后的流表如表2所示。修改之后,主机1发送的数据将被丢弃。
表2 OpenFlow交换机的流表实例二
在该实施例中,通过控制单元将交换单元的流表的操作修改为丢弃,将数据流量过大的主机发送的数据丢弃,从而减小该主机的流量,实现对超量用户的流量进行适当的限制,保证网络带宽的充分利用,从而动态地实现上网用户公平共享网络带宽。
图3是示出根据本发明一些实施例的控制单元的结构示意图。其中,控制单元30与图1中的控制单元101类似。
在本发明的实施例中,控制单元30包括:获取模块301;其中,获取模块301用于每隔设定时间t0读取交换单元的端口流量D(例如下行端口流量或者上行端口流量)。在一个实施例中,在控制单元中设置有定时器(图3中未示出),设定时间间隔t0,控制单元每隔设定时间t0读取交换单元的端口流量D(例如端口Port2的流量),例如,控制单元可以通过getPort()方法获得端口流量。例如,控制单元在调用getPort()时,首先发送端口类型请求消息STATS_Request至交换单元,交换单元返回STATS_REPLY数据包,控制单元从返回的数据包提取计数器Counter,由于Counter可以存在于每个流表、流条目、端口、队列、组以及bucket中,端口Counter可以读取端口的流量大小,从而获得下行端口流量或上行端口流量。
在本发明的实施例中,控制单元在获得下(或上)行端口流量后,比较该下(或上)行端口流量与流量阀值的大小。若下(或上)行端口流量小于流量阀值,则获取模块继续每隔设定时间t0读取下(或上)行端口流量;若下(或上)行端口流量大于流量阀值,则进行流量控制。
在本发明的实施例中,控制单元30包括:计算模块302;其中,计算模块用于计算获得流表的丢弃动作的存活时间(lifetime)ti,并将存活时间ti下发至交换单元。
由于控制单元在将交换单元的操作修改为丢弃后,相应的主机发送的数据将被丢弃,但是该主机的流量所占带宽符合要求后,可以将该丢弃动作修改为正常转发状态,因此该丢弃动作需要一定的存活时间。因此,这里“丢弃”是指在存活时间内主机的发送和接收数据为零,即流量为零。在该实施例中,在一段时间(ti)内,源自或者到达该主机的流量为零,直到在tm(tm>ti,tm包含ti)时间内数据降至平均值,保证各主机占用的带宽相对平均,各主机能公平的使用网络带宽。
在本发明的实施例中,控制单元30还包括:流表修改模块303;该流表修改模块用于根据修改触发消息将相应的流表的操作由丢弃动作修改为正常转发状态;其中,交换单元在丢弃流量的时间达到相应的存活时间ti时,向控制单元发送修改触发消息,从而恢复对相应主机的数据的转发。当然,流表修改模块还可以将流表的操作修改为丢弃动作,或者修改为其他动作。
在本发明的实施例中,计算模块可以计算获得各主机需要丢弃的包字节数量ddi和各主机对应的流表转发速率vi,并计算相应的存活时间为其中,流表修改模块将ddi>0的主机所对应的流表操作修改为丢弃。
在该实施例中,控制单元通过计算各主机需要丢弃的包字节数量ddi和各主机对应的流表转发速率vi,进而计算获得存活时间;其中,控制单元将超额流量ddi>0的主机所对应的流表操作修改为丢弃,而对于ddi≤0的主机对应的流表操作不作修改,即ddi≤0的主机的数据将正常转发。
在本发明的实施例中,获取模块读取交换单元的上行端口流表数量m;计算模块计算获得主机数量获取模块从各流表中读取相应的各主机的转发数据大小fi(例如下行流表的转发数据大小);计算模块计算各主机转发数据大小之和以及平均流量统计各主机中转发数据大于平均流量fm的流量,记为(fb1,fb2,……,fbq),其中q≥1且为整数;计算转发数据大小之和超过流量阀值的流量DC=f-D0,计算应该丢弃的流量总和和各主机需要丢弃的包字节数量以及计算获得各主机对应的流表转发速率vi从而可以计算出存活时间ti
由于大部分应用都存在请求/响应,需要有2条流表才能完成网络数据的发送和接收,这些应用的流量在网络中占了大部分,虽然可能存在单向流表记录,但是由于单向流表应用占据的流量极少,如广播性质的数据包,因此可以通过来计算获得主机数量n,其中m为上行端口流表数量,当然,这时计算得到的主机数量n为近似值。
在一个实施例中,控制单元可以通过getFlow()读取交换单元的上行端口流表数量m,例如,如图1所示,局域网内主机在OpenFlow交换机的输入端口均为Port1,控制单元在调用getFlow()时,指定端口名称,然后发送流表类型请求消息STATS_Request到交换单元,然后交换单元返回流表类型STATS_REPLY数据包,控制单元从返回的数据包提取计数器Counter,由于OpenFlow规范中指出,每个流表、流条目、端口、队列、组以及bucket均可以具有Counter,流表Counter可以读取端口的流表数,从而可以读取获得交换单元的上行端口流表数量。
在另一个实施例中,控制单元可以根据网内的IP地址数量确定主机数量。由于发往外网的流表记录匹配字段源地址是(发送)主机地址,而目的地址则一般是通配(即外网任意地址);接收来自外网的流表记录匹配字段源地址则一般是通配,而目的地址则是(接收)主机地址。控制单元下发并记录相应的流表记录,并可据此判定这两条记录是针对一个主机的,因此控制单元可以根据发现多少个网内的IP地址,即可以确定有多少个主机。
在一个实施例中,控制单元可以在每个流表中利用getByte()读取主机的转发数据大小fi。例如,如图1所示,局域网内主机在OpenFlow交换机的输入端口均为Port1,控制单元在调用getByte()时,指定流表编号,然后发送数据类型请求消息STATS_Request到交换单元,交换单元返回STATS_REPLY数据包,控制单元从返回的数据包提取计数器Counter,由于OpenFlow规范中指出,每个流表、流条目、端口、队列、组以及bucket均可以具有Counter,流表Counter可以读取数据大小,因此控制单元可以利用getByte()读取主机的转发数据大小fi
在本发明的实施例中,用户访问外网,其首包会向控制单元(例如控制器)发送触发请求,控制单元相应地在交换单元中配置2条流表实现用户的正常访问,相应的有n个用户,则有2n个转发流表记录。控制单元以定时(可以是秒级的)方式通过get命令查询端口流量统计,当端口流量超过流量阀值时,则进一步通过get命令获取所有用户对应流表记录的流量统计情况,并对超出平均用量的用户计算按比例需要丢弃的包字节数量,可以使得总带宽恰好降到流量阀值以下,进一步换算出相应的时间,并对交换单元中相应的流表记录进行修改,将其动作修改为丢弃,存活时间设置为相应计算的时间值。达到存活时间时,交换单元发出消息到控制单元,触发控制单元使得控制单元将流表的操作再修改为正常转发,从而可以确保用户动态地公平共享带宽。在该实施例中,通过自动处理网络内异常流量,抑制导致网络拥塞的非正常流量,均衡分配网络流量,保证上网用户公平共享网络带宽,从而优化网络带宽利用率,提供稳定的网络服务,确保正常用户的用户体验,对超量的用户进行适当的抑制。
本发明还提供了一种网络***(例如如图1所示),包括:如前所述的OpenFlow交换机。
图4是示出根据本发明一些实施例的带宽共享方法的流程图。
在步骤S41,当判断交换单元的端口流量D超过预设的流量阀值D0时,计算各主机的平均流量和应该丢弃的流量总和,对于超出平均流量的主机按比例计算需要丢弃的包字节数量,并修改流表。其中,所述比例为主机转发数据大小与平均流量的差值占应该丢弃的流量总和的比例;所述端口流量为下行端口流量或者上行端口流量。
在步骤S42,基于修改后的流表转发数据。
在该实施例中,当判断交换单元的下行端口流量或上行端口流量超过预设的流量阀值D0时,计算各主机的平均流量和应该丢弃的流量总和,对于超出平均流量的主机按比例计算需要丢弃的包字节数量,并修改流表,以及基于修改后的流表转发数据。由于将流表的操作修改为丢弃动作,因此OpenFlow交换机在基于修改后的流表转发数据时,按比例丢弃流量,从而当网络发生拥塞时,能够在不浪费网络带宽、不影响大部分正常用户上网情况下,针对异常用户流量调度,对超量用户的流量进行适当的限制,保证网络带宽的充分利用,从而动态地实现上网用户公平共享网络带宽。
在本发明的实施例中,在判断交换单元的端口流量D超过预设的流量阀值D0之前,带宽共享方法还包括:每隔设定时间t0读取交换单元的端口流量D(例如下行端口流量或者上行端口流量)。
在本发明的实施例中,在获得下(或上)行端口流量后,比较该下(或上)行端口流量与流量阀值的大小。若下(或上)行端口流量小于流量阀值,则继续每隔设定时间t0读取下(或上)行端口流量;若下(或上)行端口流量大于流量阀值,则进行流量控制。
在本发明的实施例中,带宽共享方法还包括:计算获得流表的丢弃动作的存活时间ti,并将该存活时间ti下发至交换单元。
在本发明的实施例中,带宽共享方法还包括:根据修改触发消息将相应的流表的操作由丢弃动作修改为正常转发状态;其中,交换单元在丢弃流量的时间达到相应的存活时间ti时,发送修改触发消息。
在本发明的实施例中,计算获得流表的丢弃动作的存活时间ti的步骤包括:计算获得各主机需要丢弃的包字节数量ddi和各主机对应的流表转发速率vi,并计算相应的存活时间为其中,将ddi>0的主机所对应的流表操作修改为丢弃。
在本发明的实施例中,计算各主机的平均流量的步骤包括:读取交换单元的上行端口流表数量m,计算获得主机数量以及从各流表中读取相应的各主机的转发数据大小fi(例如下行流表的转发数据大小);计算各主机转发数据大小之和以及平均流量 f m = f n .
在本发明的实施例中,计算获得各主机需要丢弃的包字节数量ddi和各主机对应的流表转发速率vi的步骤包括:统计各主机中转发数据大于平均流量fm的流量,记为(fb1,fb2,……,fbq),其中q≥1且为整数;计算转发数据大小之和超过流量阀值的流量DC=f-D0,计算应该丢弃的流量总和和各主机需要丢弃的包字节数量以及计算获得各主机对应的流表转发速率vi v i = f i t 0 .
图5是示出根据本发明另一些实施例的带宽共享方法的流程图。
在步骤S501,上网用户发起上网请求。
在步骤S502,首包触发请求至控制单元,控制单元下发流表。该流表为双向流表,下发至交换单元。
在步骤S503,设置定时器。即设定时间t0
在步骤S504,获取交换单元端口流量(例如下行端口流量或上行端口流量)。
在步骤S505,判断端口流量(例如下行端口流量或上行端口流量)是否大于流量阀值。如果是,则步骤进入S507,否则进入S506。
在步骤S506,交换单元正常转发数据。
在步骤S507,进行以下步骤:
(1)通过getFlow()读取交换单元上行端口流表数量m,计算主机数量N=m/2;
(2)在每条流表中利用getByte()读取主机的下行流表的转发数据大小,计算所有主机的下行流表的转发数据大小之和以及平均流量;
(3)统计主机的下行流表转发数据大于平均流量的流量;
(4)计算下行流表转发数据大小之和超过流量阀值的流量;
(5)计算各主机应该丢弃的超额流量总和,然后计算各主机需要丢弃的包字节数量(即按比例丢弃各主机的超额流量);
(6)获取各主机对应的流表转发速率vi,计算各主机丢弃超额流量的时间ti
在步骤S508,将所有超额流量所对应的主机在OpenFlow交换机设置为丢弃动作,该主机对应的丢弃动作的存活时间为时间ti
在步骤S509,丢弃流量时间达到时间ti后,交换单元向控制单元发送修改触发消息。
在步骤S510,控制单元将流表的丢弃动作修改为正常转发状态。
在该实施例中,用户访问外网,其首包会向控制单元(例如控制器)发送触发请求,控制单元相应地在交换单元中配置2条流表实现用户的正常访问,相应的有n个用户,则有2n个转发流表记录。控制单元以定时(可以是秒级的)方式通过get命令查询端口流量统计,当端口流量超过流量阀值时,则进一步通过get命令获取所有用户对应流表记录的流量统计情况,并对超出平均用量的用户计算按比例需要丢弃的包字节数量,可以使得总带宽恰好降到流量阀值下,进一步换算出相应的时间,并对交换单元中相应的流表记录进行修改,将其动作修改为丢弃,存活时间设置为相应计算的时间值。达到存活时间时,交换单元发出消息到控制单元,触发控制单元使得控制单元将流表的操作再修改为正常转发,从而可以确保用户动态地公平共享带宽。通过自动处理网络内异常流量,抑制导致网络拥塞的非正常流量,均衡分配网络流量,保证上网用户公平共享网络带宽,从而优化网络带宽利用率,提供稳定的网络服务,确保正常用户的用户体验,对超量的用户进行适当的抑制。
至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
可能以许多方式来实现本发明的方法和***。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和***。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。

Claims (14)

1.一种OpenFlow交换机,其特征在于,包括:
交换单元,用于基于流表转发各主机的数据;
控制单元,用于当判断所述交换单元的端口流量D超过预设的流量阀值D0时,计算各主机的平均流量和应该丢弃的流量总和,对于超出所述平均流量的主机按比例计算需要丢弃的包字节数量,并向所述交换单元下发流表修改消息;
其中,所述比例为主机转发数据大小与所述平均流量的差值占所述应该丢弃的流量总和的比例;所述端口流量为下行端口流量或者上行端口流量。
2.根据权利要求1所述OpenFlow交换机,其特征在于,
所述控制单元包括:
获取模块,用于每隔设定时间t0读取交换单元的端口流量D。
3.根据权利要求1或2所述OpenFlow交换机,其特征在于,
所述控制单元包括:
计算模块,用于计算获得所述流表的丢弃动作的存活时间ti,并将所述存活时间ti下发至所述交换单元。
4.根据权利要求3所述OpenFlow交换机,其特征在于,
所述控制单元还包括:
流表修改模块,用于根据修改触发消息将相应的流表的操作由丢弃动作修改为正常转发状态;
其中,所述交换单元在丢弃流量的时间达到相应的存活时间ti时,向所述控制单元发送所述修改触发消息。
5.根据权利要求3所述OpenFlow交换机,其特征在于,
所述计算模块计算获得各主机需要丢弃的包字节数量ddi和各主机对应的流表转发速率vi,并计算相应的存活时间为
其中,所述流表修改模块将ddi>0的主机所对应的流表操作修改为丢弃。
6.根据权利要求5所述OpenFlow交换机,其特征在于,
所述获取模块读取所述交换单元的上行端口流表数量m;
所述计算模块计算获得主机数量
所述获取模块从各流表中读取相应的各主机的转发数据大小fi
所述计算模块计算各主机转发数据大小之和以及平均流量统计各主机中转发数据大于平均流量fm的流量,记为(fb1,fb2,……,fbq),其中q≥1且为整数;计算所述转发数据大小之和超过流量阀值的流量DC=f-D0,计算所述应该丢弃的流量总和和各主机需要丢弃的包字节数量以及计算获得各主机对应的流表转发速率vi v i = f i t 0 .
7.一种网络***,其特征在于,包括:如权利要求1至6任一所述OpenFlow交换机。
8.一种带宽共享方法,其特征在于,包括:
当判断交换单元的端口流量D超过预设的流量阀值D0时,计算各主机的平均流量和应该丢弃的流量总和,对于超出所述平均流量的主机按比例计算需要丢弃的包字节数量,并修改流表;以及
基于修改后的流表转发数据;
其中,所述比例为主机转发数据大小与所述平均流量的差值占所述应该丢弃的流量总和的比例;所述端口流量为下行端口流量或者上行端口流量。
9.根据权利要求8所述带宽共享方法,其特征在于,在判断交换单元的端口流量D超过预设的流量阀值D0之前,还包括:
每隔设定时间t0读取交换单元的端口流量D。
10.根据权利要求8或9所述带宽共享方法,其特征在于,还包括:
计算获得所述流表的丢弃动作的存活时间ti,并将所述存活时间ti下发至所述交换单元。
11.根据权利要求10所述带宽共享方法,其特征在于,还包括:
根据修改触发消息将相应的流表的操作由丢弃动作修改为正常转发状态;
其中,所述交换单元在丢弃流量的时间达到相应的存活时间ti时,发送所述修改触发消息。
12.根据权利要求10所述带宽共享方法,其特征在于,计算获得所述流表的丢弃动作的存活时间ti的步骤包括:
计算获得各主机需要丢弃的包字节数量ddi和各主机对应的流表转发速率vi,并计算相应的存活时间为
其中,将ddi>0的主机所对应的流表操作修改为丢弃。
13.根据权利要求8或12所述带宽共享方法,其特征在于,计算各主机的平均流量的步骤包括:
读取所述交换单元的上行端口流表数量m,计算获得主机数量 n = m 2 ; 以及
从各流表中读取相应的各主机的转发数据大小fi;计算各主机转发数据大小之和以及平均流量
14.根据权利要求13所述带宽共享方法,其特征在于,计算获得各主机需要丢弃的包字节数量ddi和各主机对应的流表转发速率vi的步骤包括:
统计各主机中转发数据大于平均流量fm的流量,记为(fb1,fb2,……,fbq),其中q≥1且为整数;计算所述转发数据大小之和超过流量阀值的流量DC=f-D0,计算所述应该丢弃的流量总和和各主机需要丢弃的包字节数量以及计算获得各主机对应的流表转发速率vi v i = f i t 0 .
CN201510063448.2A 2015-02-06 2015-02-06 一种OpenFlow交换机、网络***及带宽共享方法 Active CN105991456B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510063448.2A CN105991456B (zh) 2015-02-06 2015-02-06 一种OpenFlow交换机、网络***及带宽共享方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510063448.2A CN105991456B (zh) 2015-02-06 2015-02-06 一种OpenFlow交换机、网络***及带宽共享方法

Publications (2)

Publication Number Publication Date
CN105991456A true CN105991456A (zh) 2016-10-05
CN105991456B CN105991456B (zh) 2019-04-05

Family

ID=57037506

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510063448.2A Active CN105991456B (zh) 2015-02-06 2015-02-06 一种OpenFlow交换机、网络***及带宽共享方法

Country Status (1)

Country Link
CN (1) CN105991456B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395451A (zh) * 2017-06-19 2017-11-24 ***通信集团江苏有限公司 上网流量异常的处理方法、装置、设备及存储介质
CN107995127A (zh) * 2017-12-13 2018-05-04 深圳乐信软件技术有限公司 一种过载保护方法及装置
CN109981409A (zh) * 2019-03-26 2019-07-05 新华三技术有限公司 报文转发方法、装置及转发设备
CN110601989A (zh) * 2019-09-24 2019-12-20 锐捷网络股份有限公司 一种网络流量均衡方法及装置
CN113347107A (zh) * 2020-03-02 2021-09-03 ***通信集团浙江有限公司 基于上行报文的流量调度方法、装置及计算设备
CN114900470A (zh) * 2022-06-17 2022-08-12 中国联合网络通信集团有限公司 流量控制方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103428094A (zh) * 2013-08-12 2013-12-04 杭州华三通信技术有限公司 开放流OpenFlow***中的报文转发方法及装置
US20140241353A1 (en) * 2013-02-28 2014-08-28 Hangzhou H3C Technologies Co., Ltd. Switch controller
CN104158753A (zh) * 2014-06-12 2014-11-19 南京工程学院 基于软件定义网络的动态流调度方法及***
CN104243240A (zh) * 2014-09-23 2014-12-24 电子科技大学 一种基于OpenFlow的SDN流量测量方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140241353A1 (en) * 2013-02-28 2014-08-28 Hangzhou H3C Technologies Co., Ltd. Switch controller
CN103428094A (zh) * 2013-08-12 2013-12-04 杭州华三通信技术有限公司 开放流OpenFlow***中的报文转发方法及装置
CN104158753A (zh) * 2014-06-12 2014-11-19 南京工程学院 基于软件定义网络的动态流调度方法及***
CN104243240A (zh) * 2014-09-23 2014-12-24 电子科技大学 一种基于OpenFlow的SDN流量测量方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395451A (zh) * 2017-06-19 2017-11-24 ***通信集团江苏有限公司 上网流量异常的处理方法、装置、设备及存储介质
CN107995127A (zh) * 2017-12-13 2018-05-04 深圳乐信软件技术有限公司 一种过载保护方法及装置
CN109981409A (zh) * 2019-03-26 2019-07-05 新华三技术有限公司 报文转发方法、装置及转发设备
CN110601989A (zh) * 2019-09-24 2019-12-20 锐捷网络股份有限公司 一种网络流量均衡方法及装置
CN113347107A (zh) * 2020-03-02 2021-09-03 ***通信集团浙江有限公司 基于上行报文的流量调度方法、装置及计算设备
CN114900470A (zh) * 2022-06-17 2022-08-12 中国联合网络通信集团有限公司 流量控制方法、装置、设备及存储介质
CN114900470B (zh) * 2022-06-17 2023-10-31 中国联合网络通信集团有限公司 流量控制方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN105991456B (zh) 2019-04-05

Similar Documents

Publication Publication Date Title
CN105991456A (zh) 一种OpenFlow交换机、网络***及带宽共享方法
AU2003278942B2 (en) Per user per service traffic provisioning
EP3029896B1 (en) Qos implementation method, apparatus and system in openflow network
EP2575329B1 (en) Proportional bandwidth sharing of the excess part in a MEF Traffic Profile
US20070242675A1 (en) Dual scheduling for efficient network traffic management
CN1985482B (zh) 网络设备和业务量整形方法
CN112600684B (zh) 云业务的带宽管理及配置方法及相关装置
Cho Managing Traffic with ALTQ.
CN106063202A (zh) 取决于状态的数据转发
CN113225253B (zh) 一种报文转发方法及装置
CN108337184A (zh) 流量均衡调度方法及装置
CN110290072A (zh) 流量控制方法、装置、网络设备及存储介质
CN109379163A (zh) 一种报文转发速率控制方法及装置
WO2021052382A1 (zh) 云业务的带宽管理及配置方法及相关装置
CN107409059B (zh) 混合网络中的基于量的在线计费
Agache et al. Oh Flow, Are Thou Happy?{TCP} Sendbuffer Advertising for Make Benefit of Clouds and Tenants
Geyer et al. Practical performance evaluation of ethernet networks with flow-level network modeling
Vila-Carbó et al. Analysis of switched Ethernet for real-time transmission
US10075380B2 (en) Probabilistic metering
Luo et al. FlowStar: Fast Convergence Per-Flow State Accurate Congestion Control for InfiniBand
Zhang Burst Forwarding Network
Kaur et al. Providing deterministic end-to-end fairness guarantees in core-stateless networks
Nalawade et al. Multiport Network Ethernet Performance Improvement Techniques
Lien et al. Generalized dynamic frame sizing algorithm for finite-internal-buffered networks
Jiang et al. A distributed traffic control scheme based on edge-centric resource management

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