带宽控制方法和装置与流程

文档序号:15357751发布日期:2018-09-05 00:12阅读:178来源:国知局

本发明涉及网络传输技术领域,特别是涉及一种带宽控制方法和装置。



背景技术:

近年来,随着互联网的快速发展,以太网数据的传输得到广泛的应用,需要接入互联网的设备基本上都使用以太网传输技术。在数据传输中,很多时候需要控制传输带宽,以满足实际通道的带宽需求,不至于造成数据拥塞和错乱丢包。

在实现过程中,发明人发现传统技术中至少存在如下问题:传统的以太网传输带宽控制方法采用tcp/ip协议(transmissioncontrolprotocol/internetprotocol,传输控制协议/因特网互联协议)控制,收发双方约定传输带宽,以某个指定的带宽传输数据;这种方式需要双方进行交互,协商传输速率,但在实际以太网传输链路中,传输协议不局限于tcp/ip协议,还有udp协议(userdatagramprotocol,用户数据报协议),甚至是自定义的传输协议,收发双方根本没有任何协议指定传输速率的规则;传输带宽因此变得不可控制。



技术实现要素:

基于此,有必要针对数据传输带宽不受控的问题,提供一种带宽控制方法和装置。

为了实现上述目的,一方面,本发明实施例提供了一种带宽控制方法,包括:

测量待传输数据包的数据包长度;

基于数据包长度以及预设带宽,生成输出配比以及用于在传输过程中间隔待传输数据包的空闲数据包;输出配比为待传输数据包与空闲数据包的数据包长度比或数量比;

按照输出配比,以预设带宽将待传输数据包和空闲数据包传输至以太网。

在其中一个实施例中,测量数据包的数据包长度的步骤包括:

通过工作时钟测量数据包长度。

在其中一个实施例中,基于数据包长度以及预设带宽,生成空闲数据包的步骤包括:

根据预设带宽以及数据包长度,生成空闲数据包长度;

基于空闲数据包长度,生成空闲数据包。

在其中一个实施例中,按照输出配比,以预设带宽将待传输数据包和空闲数据包传输至以太网的步骤包括:

根据输出配比,换算得到读写控制延时值;读写控制延时值包含待传输数据包与空闲数据包的输出顺序和输出配比;

基于读写控制延时值,读取并输出待传输数据包、空闲数据包。

在其中一个实施例中,按照输出配比,以预设带宽将待传输数据包和空闲数据包传输至以太网的步骤之前还包括:

缓存待传输数据包。

在其中一个实施例中,缓存待传输数据包的步骤包括:

在预设时间内获取到预设个数的待传输数据包时,按照获取待传输数据包的先后顺序依次缓存各数据包。

在其中一个实施例中,测量待传输数据包的数据包长度的步骤之后,还包括步骤:

记录数据包长度。

另一方面,本发明实施例还提供了一种带宽控制装置,包括:

数据包长度测量模块,用于测量待传输数据包的数据包长度;

带宽配置模块,用于基于数据包长度以及预设带宽,生成输出配比以及用于在传输过程中间隔待传输数据包的空闲数据包;输出配比为待传输数据包与空闲数据包的数据包长度比或数量比;

数据包传输模块,用于按照输出配比,以预设带宽将待传输数据包和空闲数据包传输至以太网。

本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的带宽控制方法。

本发明实施例还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的带宽控制方法。

上述技术方案中的一个技术方案具有如下优点和有益效果:

通过测量待传输数据包的数据包长度;基于数据包长度以及预设带宽,生成输出配比以及空闲数据包;按照输出配比,以预设带宽将待传输数据包和空闲数据包传输至以太网;本发明实施例能够测量数据包长度和实时动态调节带宽,解决传输带宽不受控的问题,且不受限于具体的传输协议,无需人工参与,提高了带宽控制的便利性和自适应性,可避免以太网传输链路中数据拥塞导致丢包问题。

附图说明

图1为本发明带宽控制方法一个实施例的应用环境图;

图2为本发明带宽控制方法实施例1的第一流程示意图;

图3为本发明带宽控制方法实施例的第二流程示意图;

图4为本发明带宽控制方法实施例的第三流程示意图;

图5为本发明带宽控制方法实施例的第四流程示意图;

图6为本发明带宽控制方法实施例的第五流程示意图;

图7为本发明带宽控制方法实施例的第六流程示意图;

图8为本发明带宽控制方法实施例的第七流程示意图;

图9为本发明带宽控制装置实施例1的结构示意图;

图10为本发明带宽控制方法一个示例的系统连接框图;

图11为本发明带宽控制方法一个示例的数据包控制带宽输出图;

图12为本发明一个实施例中计算机设备的内部结构图。

具体实施方式

为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的首选实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

目前,不受协议控制的传输带宽变得越来越多,在这种环境下,根据以太网高速发展的要求,需要对传输带宽进行控制,以达到速率传输要求,才可避免网络拥塞甚至丢包的问题出现。

本发明实施例提供的带宽控制方法,可以应用于如图1所示的应用环境中,图1为本发明带宽控制方法一个实施例的应用环境图。其中,终端102通过网络与服务器104通过网络进行通信。终端102测量数据包长度,实时动态调节带宽,以预设带宽传输数据包至网络,避免数据拥塞导致丢包的问题。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

具体的,本发明实施例提供了一种带宽控制方法,如图2所示,图2为本发明带宽控制方法实施例1的第一流程示意图,包括:

步骤s210,测量待传输数据包的数据包长度;

具体而言,对输入的待传输数据包进行长度测量,可得到数据包长度;优选的,可利用工作时钟的时钟周期对待传输数据包进行计数,得到的计数个数可为待传输数据包的数据包长度;进一步的,在获得数据包长度后,可将该数据包长度记录到指定位置;

需要说明的是,待传输数据包可为准备传输至以太网的数据包;

数据包长度可以字节为单位进行测量或计算,例如以太网的物理特性决定了链路层数据帧的最大长度为1500字节、一个最长的ip包可能是65535字节等;

步骤s220,基于数据包长度以及预设带宽,生成输出配比以及用于在传输过程中间隔待传输数据包的空闲数据包;输出配比为待传输数据包与空闲数据包的数据包长度比或数量比;

具体而言,将输入的数据包长度,按照预设带宽生成空闲数据包以及输出配比;

需要说明的是,预设带宽可用于根据实际需要,进行带宽大小或速率进行设置,可由系统配置参数得到;具体的,如全速、断流、半速、1/4速率、1/5速率、1/8速率等;本发明实施例通过实时动态调整带宽参数达到实时调整参数,无需重启系统;

空闲数据包可为空闲无效的数据包或者空闲字符,可用于控制各待传输数据包在传输过程中的间隔;具体的,可根据待传输数据包的数据包长度以及预设带宽生成对应的空闲数据包,该空闲数据包可在传输过程中间隔待传输数据包,实现实时动态调整带宽参数,无需重启系统;

输出配比可为待传输数据包与空闲数据包的数据包长度或者数量比,可用于控制数据传输过程中的待传输数据包与空闲数据包的比例;

具体的,测量待传输数据包的数据包长度得到数据包长度l;根据数据包长度l以及预设带宽生成空闲数据包和输出配比,其中,空闲数据包的数据包长度为i;

若l=i,则输出配比可表示待传输数据包与空闲数据包的数量比;预设带宽为全速模式时,输出配比可为1/0,待传输数据包的数量为1,空闲数据包的数量为0,即,不增加包间隔,连续将输入的数据包发走;预设带宽为断流模式时,输出配比可为0/1,待传输数据包数量为0,空闲数据包数量为1,不输出任何数据包,连续发送空闲字符;预设带宽为半速模式时,输出配比可为1/1,待传输数据包数量为1,空闲数据包数量为1,发一包待传输数据包,发一包空闲数据包,控制输出带宽减半;预设带宽为1/4速率模式时,输出配比可为1/3,待传输数据包数量为1,空闲数据包数量为3,发一包待传输数据,发3包空闲数据包,控制输出带宽为原来的1/4;以此类推,预设带宽还可为1/5速率模式、1/8速率模式等,此处不再赘述;

若l≠i,则输出配比可表示待传输数据包与空闲数据包的数据包长度比;根据预设带宽,发送一包数据包长度为l的待传输数据包,发一包数据包长度为i的空闲数据包,控制实际传输带宽为l/(l+i);

步骤s230,按照输出配比,以预设带宽将待传输数据包和空闲数据包传输至以太网。

具体而言,基于输出配比,按照读取控制,输出待传输数据包和空闲数据包给下一级,以预设带宽传输至以太网,完成带宽控制;

需要说明的是,将待传输数据包和空闲数据包传输至以太网的过程中还可进行其它处理,因此,可按照输出配比,以预设带宽将待传输数据包和空闲数据包传输至下一级,经下一级处理后再传输至以太网,完成带宽控制;

可选的,在一个示例中,可将输出配比换算成读写控制延时逻辑,将数据包读取出来,输出给下一级;具体的,在全速模式下,不需要增加空闲数据包的时钟读取延时,直接读取输出待传输数据包给下一级;在半速模式下,读取数据包长度为l的待传输数据包后,增加空闲数据等待i个时钟计数(i的时钟计数个数等于l的时钟计数个数),再读取下一个待传输数据包,严格控制两个待传输数据包之间的传输间隔,以保证平均带宽控制在1/2;

本发明实施例通过测量待传输数据包的数据包长度;基于数据包长度以及预设带宽,生成输出配比以及空闲数据包;按照输出配比,以预设带宽将待传输数据包和空闲数据包传输至以太网;能够测量数据包长度和实时动态调节带宽,解决传输带宽不受控的问题,且不受限于具体的传输协议;发送空闲数据包来实现带宽的控制,不会依赖于具体的输入数据包带宽速率,不需要增加额外的成本,有利于在以太网传输数据时按照需求控制传输带宽,同时,由软件实现自动调整,也无须过多的人工干预,软件配置方便,提高了带宽控制的便利性和自适应性,可避免以太网传输链路中数据拥塞导致丢包问题;

进一步的,本发明实施例有利于采用如fpga(field-programmablegatearray,即现场可编程门阵列)、cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)、epld(erasableprogrammablelogicdevice,可擦除可编辑逻辑器件)、spld(simpleprogrammablelogicdevice,简单可编程逻辑器件)等可编程逻辑器件实现,也可使用专用asic(applicationspecificintegratedcircuit,特定用途集成电路)芯片或dsp(digitalsignalprocessing,数字信号处理)可编程芯片来实现。

在一个具体的实施例中,参见如3,图3为本发明带宽控制方法实施例的第二流程示意图,测量数据包的数据包长度的步骤包括:

步骤s310,通过工作时钟测量数据包长度。

具体而言,可利用工作时钟对待传输数据包进行计数,达到其数据包长度;

需要说明的是,测量数据包长度可采用工作时钟的时钟周期进行计数;通过工作时钟计数的方式来测量数据包长度,可实现自动测量数据包长度,进一步增强本发明实施例带宽控制方法的灵活性,减少人工干预,软件配置方便,提高了带宽控制的便利性和适应性。

在一个具体的实施例中,如图4所示,图4为本发明带宽控制方法实施例的第三流程示意图,基于数据包长度以及预设带宽,生成空闲数据包的步骤包括:

步骤s422,根据预设带宽以及数据包长度,生成空闲数据包长度;

步骤s424,基于空闲数据包长度,生成空闲数据包。

具体而言,可根据测量得到的待传输数据包的数据包长度以及预设带宽,计算得到空闲数据包长度;根据该空闲数据包长度生成空闲数据包;

具体的,可对预设带宽与待传输数据包的数据包长度求差,得到空闲数据包长度;基于空闲数据包长度,可生成若干个空闲数据包。

在一个具体的实施例中,参见图5,图5为本发明带宽控制方法实施例的第四流程示意图,按照输出配比,以预设带宽将待传输数据包和空闲数据包传输至以太网的步骤包括:

步骤s532,根据输出配比,换算得到读写控制延时值;读写控制延时值包含待传输数据包与空闲数据包的输出顺序和输出配比;

步骤s534,基于读写控制延时值,读取并输出待传输数据包、空闲数据包。

具体而言,可基于输出配比换算得到的读写控制延时值进行读取输出待传输数据包以及空闲数据包;

需要说明的是,读写控制延时值可由输出配比换算得到,可包括待传输数据包与空闲数据包的输出顺序和输出配比;依据读写控制延时值,将数据包读取出来,输出给下一级;具体的,在全速模式下,不需要增加空闲数据包的时钟读取延时,直接读取输出待传输数据包给下一级;在半速模式下,读取数据包长度为l的待传输数据包后,可发送数据包长度为i的空闲数据包或者增加空闲数据等待i个时钟计数(i的时钟计数个数等于l的时钟计数个数),再读取下一个待传输数据包,严格控制两个待传输数据包之间的传输间隔,以保证平均带宽控制在1/2;可选的,本发明实施例输出配比的输出顺序可为先读取输出待传输数据包再发送空闲数据包,或,先发送空闲数据包再读取输出空闲数据包,或,以待传输数据包安插在若干个空闲数据包中间的顺序进行发送;

本发明实施例根据读写控制延时值,依次发送待传输数据包和空闲数据包来实现带宽的控制,不会依赖于具体的输入数据包带宽速率,不需要增加额外的成本,有利于在以太网传输数据时按照需求控制传输带宽,同时,由软件实现自动调整,也无须过多的人工干预,软件配置方便,提高了带宽控制的便利性和自适应性,可避免以太网传输链路中数据拥塞导致丢包问题。

在一个具体的实施例中,如图6所示,图6为本发明带宽控制方法实施例的第五流程示意图,按照输出配比,以预设带宽将待传输数据包和空闲数据包传输至以太网的步骤之前还包括:

步骤s612,缓存待传输数据包。

具体而言,在获取到输入的待传输数据包后,可将待传输数据包进行缓存,以便后续的读取与传输;优选的,可将待传输数据包存储至编程芯片内部存储器中,例如fifo(firstinputfirstoutput,先入先出队列)存储器、ram(random-accessmemory,随机存取存储器)等

在一个具体的实施例中,参见图7,图7为本发明带宽控制方法实施例的第六流程示意图,缓存待传输数据包的步骤包括:

步骤s714,在预设时间内获取到预设个数的待传输数据包时,按照获取待传输数据包的先后顺序依次缓存各数据包。

具体而言,当短时间内获取到若干个待传输数据包时,可按照获取待传输数据包的先后顺序依次缓存各数据包,有利于后续依次读取待传输数据包;

需要说明的是,预设时间可根据实际需要进行设置,具体的,可为1s(second,秒)、0.01s或0.001s等;

预设个数可根据实际需要进行设置,具体的,可为2个以上、3个以上等;

当突发性的接收到多个数据包时,应依次存入存储器中,以便后续以正确的顺序读取待传输数据包,确保读取输出数据包的准确性,保障带宽控制的精确传输。

在一个具体的实施例中,如图8所示,图8为本发明带宽控制方法实施例的第七流程示意图,测量待传输数据包的数据包长度的步骤之后,还包括步骤:

步骤s812,记录数据包长度。

具体而言,在测量待传输数据包的数据包长度后,可记录数据包长度,将其保存到指定位置,以便后续步骤的调用。

应该理解的是,虽然图2-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

另一方面,本发明实施例还提供了一种带宽控制装置,参见图9,图9为本发明带宽控制装置实施例1的结构示意图,包括:

数据包长度测量模块910,用于测量待传输数据包的数据包长度;

带宽配置模块920,用于基于数据包长度以及预设带宽,生成输出配比以及用于在传输过程中间隔待传输数据包的空闲数据包;输出配比为待传输数据包与空闲数据包的数据包长度比或数量比;

数据包传输模块930,用于按照输出配比,以预设带宽将待传输数据包和空闲数据包传输至以太网。

进一步的,本发明实施例还可包括:数据包缓存模块,用于缓存待传输数据包;数据包长度记录模块,用于记录数据包长度;

其中,数据包长度测量模块可包括工作时钟测量单元,用于通过工作时钟测量待传输数据包的数据包长度;

带宽配置模块可包括空闲数据包长度获取单元以及空闲数据包生成单元;空闲数据包长度获取单元用于根据预设带宽以及数据包长度,生成空闲数据包长度;空闲数据包生成单元用于基于空闲数据包长度,生成空闲数据包;

数据包传输模块可包括读写控制延时值获取单元以及读取输出数据包单元;读写控制延时值获取单元用于根据输出配比,换算得到读写控制延时值;读取输出数据包单元用于基于读写控制延时值,读取并输出待传输数据包、空闲数据包;

需要说明的是,关于带宽控制装置的具体限定可以参见上文中对于带宽控制方法的限定,在此不再赘述。上述带宽控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

为方便理解本发明实施例的具体实施流程,以一个具体的实施示例进行阐述,如图10、11所示,图10为本发明带宽控制方法一个示例的系统连接框图,图11为本发明带宽控制方法一个示例的数据包控制带宽输出图;

获取到待传输的数据包1和数据包2,采用工作时钟测量数据包1、2的数据包长度,得到l1和l2;将接收到的数据包1、2依次写到内部存储器中,如fifo、ram等;按照数据包长度l1、l2以及预设带宽,计算得到空闲包的数据包长度i1、i2,生成包含l1、l2、i1以及i2的输出配比;根据输出配比,按照读取控制,依次读取l1长度的数据包1,然后发送i1长度的空闲包1,再读取l2长度的数据包2,再发送i2长度的空闲包2,依次输出数据包给下一级,进而传输至以太网,完成带宽控制;其中,数据包对应上述待传输数据包,空闲包对应上述空闲数据包。

本发明实施例可通过测量待传输数据包的数据包长度;基于数据包长度以及预设带宽,生成输出配比以及空闲数据包;按照输出配比,以预设带宽将待传输数据包和空闲数据包传输至以太网;能够测量数据包长度和实时动态调节带宽,不需要增加额外的成本,有利于在以太网传输数据时按照需求控制传输带宽,同时,由软件实现自动调整,也无须过多的人工干预,软件配置方便,提高了带宽控制的便利性和自适应性,解决传输带宽不受控的问题,且不受限于具体的传输协议,可避免以太网传输链路中数据拥塞导致丢包问题;

进一步的,通过数据包动态缓存以及利用工作时钟进行数据包长度的测量,可实时配置传输带宽,以达到控制实际输出的数据传输带宽,增强带宽控制的灵活性,减少人工干预,软件配置方便。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示,图12为本发明一个实施例中计算机设备的内部结构图。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种带宽控制方法。

本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

该计算机设备,其处理器执行程序时,通过实现如上述各实施例中的任意一种带宽控制方法,从而能够实时动态调节带宽,无需人工参与,提高了带宽控制的便利性和自适应性,解决传输带宽不受控的问题,且不受限于具体的传输协议,可避免以太网传输链路中数据拥塞导致丢包问题。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种带宽控制方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1