CN111224820B - 一种带宽计算的方法和装置 - Google Patents
一种带宽计算的方法和装置 Download PDFInfo
- Publication number
- CN111224820B CN111224820B CN201911405857.0A CN201911405857A CN111224820B CN 111224820 B CN111224820 B CN 111224820B CN 201911405857 A CN201911405857 A CN 201911405857A CN 111224820 B CN111224820 B CN 111224820B
- Authority
- CN
- China
- Prior art keywords
- current
- data packet
- data
- index value
- preset
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种带宽计算的方法和装置,所述方法包括:接收当前数据包,并在预置数组中存储针对当前数据包的数据量记录;判断所述预置数组中是否存储有针对超时数据包的数据量记录;所述超时数据包为与当前数据包的接收时间差值大于预设时间范围的数据包;若所述预置数组中存储有针对所述超时数据包的数据量记录,则在所述预置数组中移除针对所述超时数据包的数据量记录;采用所述预置数组中所有的数据量记录,确定数据量总和,并采用所述数据量总和,计算当前带宽,实现对连续时间内带宽的计算,数据精度更高可以精确到毫秒,提升了带宽测算的准确性。
Description
技术领域
本发明涉及网络技术领域,特别是涉及一种带宽计算的方法和装置。
背景技术
在网络通信中,通常采用带宽来标识信号传输的数据传输能力、标识单位时间内通过链路的数据量、标识显示器的显示能力。
在现有技术中,带宽计算仅仅是简单地计算单位时间内传输数据的总量,缺乏连续性的数据,无法准确地测算带宽。
发明内容
鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种带宽计算的方法和装置,包括:
一种带宽计算的方法,所述方法包括:
接收当前数据包,并在预置数组中存储针对当前数据包的数据量记录;
判断所述预置数组中是否存储有针对超时数据包的数据量记录;所述超时数据包为与当前数据包的接收时间差值大于预设时间范围的数据包;
若所述预置数组中存储有针对所述超时数据包的数据量记录,则在所述预置数组中移除针对所述超时数据包的数据量记录;
采用所述预置数组中所有的数据量记录,确定数据量总和,并采用所述数据量总和,计算当前带宽。
可选地,所述判断所述预置数组中是否存储有针对超时数据包的数据量记录的步骤包括:
确定第一接收时间及当前数据包的当前接收时间;其中,所述第一接收时间为针对所述预置数组的当前最早接收时间;
结合所述当前接收时间和所述预设时间范围,确定第二接收时间,并将所述第二接收时间更新为当前最早接收时间;
采用所述第一接收时间和所述第二接收时间,确定最早接收时间差值;
若所述最早接收时间差值大于预设值,则判定所述预置数组中存储有针对超时数据包的数据量记录。
可选地,所述在所述预置数组中移除针对所述超时数据包的数据量记录的步骤包括:
确定在所述当前最早接收时间之前接收的数据包为超时数据包;
在所述预置数组中,移除针对所述超时数据包的数据量记录。
可选地,所述采用所述数据量总和,计算当前带宽的步骤包括:
确定所述当前接收时间和所述当前最早接收时间之间的时间差;
结合所述数据量总和和所述时间差,计算当前带宽。
可选地,所述在预置数组中存储针对当前数据包的数据量记录的步骤包括:
确定当前数据包的当前索引值;
若所述当前索引值不在所述预置数组的索引值范围内,判定存在数组越界的情况;
在判定存在数组越界的情况时,更新所述当前索引值,并采用所述更新后的当前索引值,在所述预设数组中存储针对当前数据包的数据量记录。
可选地,所述确定当前数据包的当前索引值的步骤包括:
计算所述当前接收时间和所述当前最早接收时间之间的索引值偏移量;
结合所述当前最早接收时间对应的索引值和所述索引值偏移量,得到当前数据包的当前索引值。
可选地,所述更新所述当前索引值的步骤包括:
结合所述当前索引值和所述索引值范围,确定在所述索引值范围内的目标索引值;
采用所述目标索引值,更新所述当前索引值;
所述采用所述更新后的当前索引值,在所述预设数组中存储针对当前数据包的数据量记录的步骤包括:
确定所述目标索引值对应的数据量记录中的第一数据量;
确定所述当前数据包的第二数据量;
采用所述目标索引值,在预设数组中存储所述第一数据量和所述第二数据量对应的数据量记录。
一种带宽计算装置,所述装置包括:
数据包接收记录模块,用于接收当前数据包,并在预置数组中存储针对当前数据包的数据量记录;
数据量判断模块,用于判断所述预置数组中是否存储有针对超时数据包的数据量记录;所述超时数据包为与当前数据包的接收时间差值大于预设时间范围的数据包;
数据量移除模块,用于若所述预置数组中存储有针对所述超时数据包的数据量记录,则在所述预置数组中移除针对所述超时数据包的数据量记录;
带宽计算模块,用于采用所述预置数组中所有的数据量记录,确定数据量总和,并采用所述数据量总和,计算当前带宽。
一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的带宽计算的方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的带宽计算的方法的步骤。
本发明实施例具有以下优点:
在本发明实施例中,通过接收当前数据包,并在预置数组中存储针对当前数据包的数据量记录,判断预置数组中是否存储有针对超时数据包的数据量记录,该超时数据包为与当前数据包的接收时间差值大于预设时间范围的数据包,若预置数组中存储有针对超时数据包的数据量记录,则在预置数组中移除针对超时数据包的数据量记录,然后采用预置数组中所有的数据量记录,确定数据量总和,并所述数据量总和,计算当前带宽,实现对连续时间内带宽的计算,数据精度更高可以精确到毫秒,提升了带宽测算的准确性。
附图说明
为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种视联网的组网示意图;
图2是本发明一实施例提供的一种节点服务器的硬件结构示意图;
图3是本发明一实施例提供的一种接入交换机的硬件结构示意图;
图4是本发明一实施例提供的一种以太网协转网关的硬件结构示意图;
图5是本发明一实施例提供的一种带宽计算的方法的步骤流程图;
图6是本发明一实施例提供的另一种带宽计算的方法的步骤流程图;
图7是本发明一实施例提供的另一种带宽计算的方法的步骤流程图;
图8是本发明一实施例提供的一种带宽计算实例的示意图;
图9是本发明一实施例提供的一种带宽计算的装置的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。
视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、VOD点播、电视邮件、个性录制(PVR)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。
为使本领域技术人员更好地理解本发明实施例,以下对视联网进行介绍:
视联网所应用的部分技术如下所述:
网络技术(Network Technology)
视联网的网络技术创新改良了传统以太网(Ethernet),以面对网络上潜在的巨大视频流量。不同于单纯的网络分组包交换(Packet Switching)或网络电路交换(CircuitSwitching),视联网技术采用Packet Switching满足Streaming需求。视联网技术具备分组交换的灵活、简单和低价,同时具备电路交换的品质和安全保证,实现了全网交换式虚拟电路,以及数据格式的无缝连接。
交换技术(Switching Technology)
视联网采用以太网的异步和包交换两个优点,在全兼容的前提下消除了以太网缺陷,具备全网端到端无缝连接,直通用户终端,直接承载IP数据包。用户数据在全网范围内不需任何格式转换。视联网是以太网的更高级形态,是一个实时交换平台,能够实现目前互联网无法实现的全网大规模高清视频实时传输,将众多网络视频应用推向高清化、统一化。
服务器技术(Server Technology)
视联网和统一视频平台上的服务器技术不同于传统意义上的服务器,它的流媒体传输是建立在面向连接的基础上,其数据处理能力与流量、通讯时间无关,单个网络层就能够包含信令及数据传输。对于语音和视频业务来说,视联网和统一视频平台流媒体处理的复杂度比数据处理简单许多,效率比传统服务器大大提高了百倍以上。
储存器技术(Storage Technology)
统一视频平台的超高速储存器技术为了适应超大容量和超大流量的媒体内容而采用了最先进的实时操作系统,将服务器指令中的节目信息映射到具体的硬盘空间,媒体内容不再经过服务器,瞬间直接送达到用户终端,用户等待一般时间小于0.2秒。最优化的扇区分布大大减少了硬盘磁头寻道的机械运动,资源消耗仅占同等级IP互联网的20%,但产生大于传统硬盘阵列3倍的并发流量,综合效率提升10倍以上。
网络安全技术(Network Security Technology)
视联网的结构性设计通过每次服务单独许可制、设备与用户数据完全隔离等方式从结构上彻底根除了困扰互联网的网络安全问题,一般不需要杀毒程序、防火墙,杜绝了黑客与病毒的攻击,为用户提供结构性的无忧安全网络。
服务创新技术(Service Innovation Technology)
统一视频平台将业务与传输融合在一起,不论是单个用户、私网用户还是一个网络的总合,都不过是一次自动连接。用户终端、机顶盒或PC直接连到统一视频平台,获得丰富多彩的各种形态的多媒体视频服务。统一视频平台采用“菜谱式”配表模式来替代传统的复杂应用编程,可以使用非常少的代码即可实现复杂的应用,实现“无限量”的新业务创新。
视联网的组网如下所述:
视联网是一种集中控制的网络结构,该网络可以是树型网、星型网、环状网等等类型,但在此基础上网络中需要有集中控制节点来控制整个网络。
如图1所示,视联网分为接入网和城域网两部分。
接入网部分的设备主要可以分为3类:节点服务器,接入交换机,终端(包括各种机顶盒、编码板、存储器等)。节点服务器与接入交换机相连,接入交换机可以与多个终端相连,并可以连接以太网。
其中,节点服务器是接入网中起集中控制功能的节点,可控制接入交换机和终端。节点服务器可直接与接入交换机相连,也可以直接与终端相连。
类似的,城域网部分的设备也可以分为3类:城域服务器,节点交换机,节点服务器。城域服务器与节点交换机相连,节点交换机可以与多个节点服务器相连。
其中,节点服务器即为接入网部分的节点服务器,即节点服务器既属于接入网部分,又属于城域网部分。
城域服务器是城域网中起集中控制功能的节点,可控制节点交换机和节点服务器。城域服务器可直接连接节点交换机,也可直接连接节点服务器。
由此可见,整个视联网络是一种分层集中控制的网络结构,而节点服务器和城域服务器下控制的网络可以是树型、星型、环状等各种结构。
形象地称,接入网部分可以组成统一视频平台(虚线圈中部分),多个统一视频平台可以组成视联网;每个统一视频平台可以通过城域以及广域视联网互联互通。
1、视联网设备分类
1.1本发明实施例的视联网中的设备主要可以分为3类:服务器,交换机(包括以太网协转网关),终端(包括各种机顶盒,编码板,存储器等)。视联网整体上可以分为城域网(或者国家网、全球网等)和接入网。
1.2其中接入网部分的设备主要可以分为3类:节点服务器,接入交换机(包括以太网协转网关),终端(包括各种机顶盒,编码板,存储器等)。
各接入网设备的具体硬件结构为:
节点服务器:
如图2所示,主要包括网络接口模块201、交换引擎模块202、CPU模块203、磁盘阵列模块204;
其中,网络接口模块201,CPU模块203、磁盘阵列模块204进来的包均进入交换引擎模块202;交换引擎模块202对进来的包进行查地址表205的操作,从而获得包的导向信息;并根据包的导向信息把该包存入对应的包缓存器206的队列;如果包缓存器206的队列接近满,则丢弃;交换引擎模202轮询所有包缓存器队列,如果满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。磁盘阵列模块204主要实现对硬盘的控制,包括对硬盘的初始化、读写等操作;CPU模块203主要负责与接入交换机、终端(图中未示出)之间的协议处理,对地址表205(包括下行协议包地址表、上行协议包地址表、数据包地址表)的配置,以及,对磁盘阵列模块204的配置。
接入交换机:
如图3所示,主要包括网络接口模块(下行网络接口模块301、上行网络接口模块302)、交换引擎模块303和CPU模块304;
其中,下行网络接口模块301进来的包(上行数据)进入包检测模块305;包检测模块305检测包的目地地址(DA)、源地址(SA)、数据包类型及包长度是否符合要求,如果符合,则分配相应的流标识符(stream-id),并进入交换引擎模块303,否则丢弃;上行网络接口模块302进来的包(下行数据)进入交换引擎模块303;CPU模块304进来的数据包进入交换引擎模块303;交换引擎模块303对进来的包进行查地址表306的操作,从而获得包的导向信息;如果进入交换引擎模块303的包是下行网络接口往上行网络接口去的,则结合流标识符(stream-id)把该包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃;如果进入交换引擎模块303的包不是下行网络接口往上行网络接口去的,则根据包的导向信息,把该数据包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃。
交换引擎模块303轮询所有包缓存器队列,在本发明实施例中分两种情形:
如果该队列是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零;3)获得码率控制模块产生的令牌;
如果该队列不是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。
码率控制模块308是由CPU模块304来配置的,在可编程的间隔内对所有下行网络接口往上行网络接口去的包缓存器队列产生令牌,用以控制上行转发的码率。
CPU模块304主要负责与节点服务器之间的协议处理,对地址表306的配置,以及,对码率控制模块308的配置。
以太网协转网关:
如图4所示,主要包括网络接口模块(下行网络接口模块401、上行网络接口模块402)、交换引擎模块403、CPU模块404、包检测模块405、码率控制模块408、地址表406、包缓存器407和MAC添加模块409、MAC删除模块410。
其中,下行网络接口模块401进来的数据包进入包检测模块405;包检测模块405检测数据包的以太网MAC DA、以太网MAC SA、以太网length or frame type、视联网目地地址DA、视联网源地址SA、视联网数据包类型及包长度是否符合要求,如果符合则分配相应的流标识符(stream-id);然后,由MAC删除模块410减去MAC DA、MAC SA、length or frame type(2byte),并进入相应的接收缓存,否则丢弃;
下行网络接口模块401检测该端口的发送缓存,如果有包则根据包的视联网目地地址DA获知对应的终端的以太网MAC DA,添加终端的以太网MAC DA、以太网协转网关的MACSA、以太网length or frame type,并发送。
以太网协转网关中其他模块的功能与接入交换机类似。
终端:
主要包括网络接口模块、业务处理模块和CPU模块;例如,机顶盒主要包括网络接口模块、视音频编解码引擎模块、CPU模块;编码板主要包括网络接口模块、视音频编码引擎模块、CPU模块;存储器主要包括网络接口模块、CPU模块和磁盘阵列模块。
1.3城域网部分的设备主要可以分为2类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和CPU模块;城域服务器主要包括网络接口模块、交换引擎模块和CPU模块构成。
2、视联网数据包定义
2.1接入网数据包定义
接入网的数据包主要包括以下几部分:目的地址(DA)、源地址(SA)、保留字节、payload(PDU)、CRC。
如下表所示,接入网的数据包主要包括以下几部分:
DA | SA | Reserved | Payload | CRC |
其中:
目的地址(DA)由8个字节(byte)组成,第一个字节表示数据包的类型(例如各种协议包、组播数据包、单播数据包等),最多有256种可能,第二字节到第六字节为城域网地址,第七、第八字节为接入网地址;
源地址(SA)也是由8个字节(byte)组成,定义与目的地址(DA)相同;
保留字节由2个字节组成;
payload部分根据不同的数据报的类型有不同的长度,如果是各种协议包的话是64个字节,如果是单组播数据包话是32+1024=1056个字节,当然并不仅仅限于以上2种;
CRC有4个字节组成,其计算方法遵循标准的以太网CRC算法。
2.2城域网数据包定义
城域网的拓扑是图型,两个设备之间可能有2种、甚至2种以上的连接,即节点交换机和节点服务器、节点交换机和节点交换机、节点交换机和节点服务器之间都可能超过2种连接。但是,城域网设备的城域网地址却是唯一的,为了精确描述城域网设备之间的连接关系,在本发明实施例中引入参数:标签,来唯一描述一个城域网设备。
本说明书中标签的定义和MPLS(Multi-Protocol Label Switch,多协议标签交换)的标签的定义类似,假设设备A和设备B之间有两个连接,那么数据包从设备A到设备B就有2个标签,数据包从设备B到设备A也有2个标签。标签分入标签、出标签,假设数据包进入设备A的标签(入标签)是0x0000,这个数据包离开设备A时的标签(出标签)可能就变成了0x0001。城域网的入网流程是集中控制下的入网过程,也就意味着城域网的地址分配、标签分配都是由城域服务器主导的,节点交换机、节点服务器都是被动的执行而已,这一点与MPLS的标签分配是不同的,MPLS的标签分配是交换机、服务器互相协商的结果。
如下表所示,城域网的数据包主要包括以下几部分:
DA | SA | Reserved | 标签 | Payload | CRC |
即目的地址(DA)、源地址(SA)、保留字节(Reserved)、标签、payload(PDU)、CRC。其中,标签的格式可以参考如下定义:标签是32bit,其中高16bit保留,只用低16bit,它的位置是在数据包的保留字节和payload之间。
参照图5,示出了本发明一实施例提供的一种带宽计算的方法的步骤流程图,该方法可以应用于视联网,如应用于视联网中节点服务器、网关服务器等,也可以应用于互联网。
具体的,可以包括如下步骤:
步骤501,接收当前数据包,并在预置数组中存储针对当前数据包的数据量记录;
在实际应用中,可以预先设置一数组,其可以用于存储数据量记录,数据量记录可以为针对数据包的数据量(数据大小)等信息的记录。
在接收到当前数据包时,可以对当前数据包进行解析,进而可以确定当前数据包的数据量,并可以在预置数组中存储该数据量的数据量记录。
步骤502,判断所述预置数组中是否存储有针对超时数据包的数据量记录;所述超时数据包为与当前数据包的接收时间差值大于预设时间范围的数据包;
为了测量连续时间内的带宽,则可以预先设置一时间范围num_buckets,该预设的时间范围可以由用户自行设置,如预设时间范围为0~1000ms,且每个数据包均有一接收时间,则在接收到当前数据包后,可以判断与当前接收包的接收时间差值大于预设时间范围的数据包,作为超时数据包,进而可以判断预置数组中是否存储有针对超时数据包的数据量记录
步骤503,若所述预置数组中存储有针对所述超时数据包的数据量记录,则在所述预置数组中移除针对所述超时数据包的数据量记录;
在具体实现中,若预置数组中存储有针对超时数据包的数据量记录,则可以获取在预置数组中移除针对超时数据包的数据量记录,若预置数组中未存储有针对超时数据包的数据量记录,则可以不进行操作。
步骤504,采用所述预置数组中所有的数据量记录,确定数据量总和,并采用所述数据量总和,计算当前带宽。
在移除针对超时数据包的数据量记录中,预置数组中仅仅存储在预设时间范围内接收到的数据包的数据量记录,则可以获取预置数组中所有的数据量记录,并可以将所有的数据量记录中数据量进行累加,确定数据量总和,进而可以采用该数据量总和来计算当前带宽。
在本发明实施例中,通过接收当前数据包,并在预置数组中存储针对当前数据包的数据量记录,判断预置数组中是否存储有针对超时数据包的数据量记录,该超时数据包为与当前数据包的接收时间差值大于预设时间范围的数据包,若预置数组中存储有针对超时数据包的数据量记录,则在预置数组中移除针对超时数据包的数据量记录,然后采用预置数组中所有的数据量记录,确定数据量总和,并所述数据量总和,计算当前带宽,实现对连续时间内带宽的计算,数据精度更高可以精确到毫秒,提升了带宽测算的准确性。
参照图6,示出了本发明一实施例提供的另一种带宽计算的方法的步骤流程图,具体可以包括如下步骤:
步骤601,接收当前数据包,并在预置数组中存储针对当前数据包的数据量记录;
步骤602,确定第一接收时间及当前数据包的当前接收时间;其中,所述第一接收时间为针对所述预置数组的当前最早接收时间;
由于存在预设时间范围,且是为了计算预设时间范围内的带宽,则随着时间的不断推进,该预设时间范围内的最早时间也在不断推进。
在具体实现中,预置数组中每个数据量记录可以存储对应的数据包的接收时间,则可以针对预置数组中的数据量记录,确定在预设时间范围内的当前最早接收时间,即第一接收时间oldest_time,并在接收到当前数据包后,可以对当前数据包进行解析,确定当前数据包的当前接收时间now_ms。
步骤603,结合所述当前接收时间和所述预设时间范围,确定第二接收时间,并将所述第二接收时间更新为当前最早接收时间;
在确定当前接收时间后,可以计算当前接收时间和预设时间范围对应的范围值的差值,然后将差值加1,得到第二接收时间new_oldest_time,进而可以将第二接收时间更新为当前最早接收时间。
需要说明的是,虽然预设时间范围内的最早时间在不断推进,但由于仅在接收到一个新的数据包时,接收到的数据量才会发生变化,所以才在接收到当前数据包时,需要更新当前最早接收时间。
例如,用户可以根据自身需求设置预设时间范围,该预设时间范围可以为0~1000ms(毫秒),确定的当前数据包的当前接收时间为1002ms,即当前数据包在1002ms时接收,然后将当前接收时间减去预设时间范围,得到2ms,2~1002ms的范围里含有1001个数值,与原先0~1000ms的范围不同,因此需要再将得到的差值加一,得到3ms,即实际的预置数组的当前最早接收时间为3ms,进而将该实际的当前最早接收时间为第二接收时间,并将该第二接收时间更新为当前最早接收时间。
步骤604,采用所述第一接收时间和所述第二接收时间,确定最早接收时间差值;
在确定第一接收时间和第二接收时间后,可以可以将第二接收时间减去第一接收时间,得到最早接收时间差值。
步骤605,若所述最早接收时间差值大于预设值,则判定所述预置数组中存储有针对超时数据包的数据量记录;
其中,预设值可以为0。
若最早接收时间差值大于预设值,则可以表征第二接收时间大于第一接收时间,即更新后当前最早接收时间与原来的当前最早接收时间,则可以判定预置数组中存储有针对超时数据包的数据量记录,若若最早接收时间差值不大于预设值,则判定预置数组中未存储有针对超时数据包的数据量记录,不进行后续的移除过程。
步骤606,若所述预置数组中存储有针对所述超时数据包的数据量记录,则确定在所述当前最早接收时间之前接收的数据包为超时数据包;
在判定预置数组中存储有针对所述超时数据包的数据量记录,则可以确定在更新后的当前最早接收时间(即第二接收时间)之前接收的数据包为超时数据包。
步骤607,在所述预置数组中,移除针对所述超时数据包的数据量记录;
在确定超时数据包后,则可以在预置数组中,移除针对超时数据包的数据量记录,即移除在第一接收时间与第二接收时间之间所存储在预置数组中的数据量记录。
步骤608,采用所述预置数组中所有的数据量记录,确定数据量总和;
由于预置数组中针对超时数据包的数据量记录已经移除,则可以获取预置数组中所有的数据量记录,将所有的数据量记录中的数据量相加,得到确定数据量总和account。
步骤609,确定所述当前接收时间和所述当前最早接收时间之间的时间差;
在具体实现中,可以将更新后的当前最早接收时间(即第二接收时间)减去当前接收时间,得到当前接收时间和当前最早接收时间之间的时间差diff,即diff=now_ms-new_oldest_time。
步骤610,结合所述数据量总和和所述时间差,计算当前带宽。
在获得时间差之后,可以将获得的数据量总和除以当前接收时间和当前最早接收时间之间的时间差,进而可以计算得到在连续时间内的当前带宽,即accumulated_count/(diff*1000)bit/s。
参照图7,示出了本发明一实施例提供的另一种带宽计算的方法的步骤流程图,具体可以包括如下步骤:
步骤701,接收当前数据包;
步骤702,确定当前数据包的当前索引值;
在接收到当前数据包后,可以确定当前数据包待在预置数组中的索引值,作为当前索引值。
在本发明一实施例中,步骤702可以包括如下子步骤:
计算所述当前接收时间和所述当前最早接收时间之间的索引值偏移量;结合所述当前最早接收时间对应的索引值和所述索引值偏移量,得到当前数据包的当前索引值。
在具体实现中,可以计算当前接收时间和当前最早接收时间之间的索引值偏移量now_offset=now_ms-oldest_time,进而可以将当前最早接收时间对应的索引值oldest_index加上索引值偏移量,得到得到当前数据包的当前索引值index,即index=oldest_index+now_offset。
步骤703,若所述当前索引值不在所述预置数组的索引值范围内,判定存在数组越界的情况;
在实际应用中,预置数组具有一索引值范围,该索引值范围可以与数组大小num_buckets相关联,当前索引值不在预置数组的索引值范围内,则可以判定存在数组越界的情况。
步骤704,在判定存在数组越界的情况时,更新所述当前索引值,并采用所述更新后的当前索引值,在所述预设数组中存储针对当前数据包的数据量记录;
在判定存在数组越界的情况时,则可以更新当前索引值,进而可以并采用更新后的当前索引值,在预设数组中存储针对当前数据包的数据量记录。
当然,若当前索引值在预置数组的索引值范围内,则可以判定存在数组越界的情况在判定不存在数组越界的情况时,则可以直接采用当前当前索引值,在预设数组中存储针对当前数据包的数据量记录。
在本发明一实施例中,所述更新所述当前索引值的步骤包括:
结合所述当前索引值和所述索引值范围,确定在所述索引值范围内的目标索引值;采用所述目标索引值,更新所述当前索引值。
在具体实现中,可以将当前索引值减去索引值范围的范围值,进而可以得到在索引值范围内的目标索引值,将该目标索引值更新当前索引值,即index=index-num_buckets。
在本发明一实施例中,所述采用所述更新后的当前索引值,在所述预设数组中存储针对当前数据包的数据量记录的步骤包括:
确定所述目标索引值对应的数据量记录中的第一数据量;确定所述当前数据包的第二数据量;采用所述目标索引值,在预设数组中存储所述第一数据量和所述第二数据量对应的数据量记录。
由于目标索引值中可能存在原始的数据量记录,则可以确定确定目标索引值对应的数据量记录中的第一数据量,并可以获取当前数据包的第二数据量,进而在目标索引值中存储第一数据量和第二数据量相加的数据量。
步骤705,判断所述预置数组中是否存储有针对超时数据包的数据量记录;所述超时数据包为与当前数据包的接收时间差值大于预设时间范围的数据包;
步骤706,若所述预置数组中存储有针对所述超时数据包的数据量记录,则在所述预置数组中移除针对所述超时数据包的数据量记录;
在具体实现中,可以采用new_oldest_time减去oldest_time的差值为n,n代表超时数据有多少,然后可以遍历从0到n,oldest_index(即最早接收时间对应的数据量记录的索引值)依次加1,并将数组索引为oldest_index中的值置为0,并不断更新oldest_index的值为oldest_index+n,直至更新oldest_time值为new_oldest_time,以在预置数组中确定超时数据包的数据量记录,并进行移除。
步骤707,采用所述预置数组中所有的数据量记录,确定数据量总和,并采用所述数据量总和,计算当前带宽。
为了使本领域技术人员能够更好地理解上述步骤,以下结合图8对本发明实施例加以示例性说明,但应当理解的是,本发明实施例并不限于此。
1、接收到数据包;
2、确定数据包大小count和接收到的时间now_ms;
3、采用统计模块对比now_ms与oldest_time;
4、在now_ms大于oldest_time时,则移除老数据,并计算当前索引值index,更新当前索引值,更新总共接收到的数量accumulated_count,计算当前时刻带宽;
5、在now_ms大于oldest_time时,丢弃此包。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图9,示出了本发明一实施例提供的一种带宽计算的装置的结构示意图,具体可以包括如下模块:
数据包接收记录模块901,用于接收当前数据包,并在预置数组中存储针对当前数据包的数据量记录;
数据量判断模块902,用于判断所述预置数组中是否存储有针对超时数据包的数据量记录;所述超时数据包为与当前数据包的接收时间差值大于预设时间范围的数据包;
数据量移除模块903,用于若所述预置数组中存储有针对所述超时数据包的数据量记录,则在所述预置数组中移除针对所述超时数据包的数据量记录;
带宽计算模块904,用于采用所述预置数组中所有的数据量记录,确定数据量总和,并采用所述数据量总和,计算当前带宽。
在本发明一实施例中,所述数据量判断模块902包括:
第一接收时间确定子模块,用于确定第一接收时间及当前数据包的当前接收时间,其中,所述第一接收时间为针对所述预置数组的当前最早接收时间;
第二接收时间确定子模块,用于结合所述当前接收时间和所述预设时间范围,确定第二接收时间,并将所述第二接收时间更新为当前最早接收时间;
最早接收时间差值确定子模块,用于采用所述第一接收时间和所述第二接收时间,确定最早接收时间差值;
超时数据包判定子模块,用于若所述最早接收时间差值大于预设值,则判定所述预置数组中存储有针对超时数据包的数据量记录。
在本发明一实施例中,所述数据量移除模块903包括:
超时数据包确定子模块,用于确定在所述当前最早接收时间之前接收的数据包为超时数据包;
超时数据包数据量移除子模块,用于在所述预置数组中,移除针对所述超时数据包的数据量记录。
在本发明一实施例中,所述带宽计算模块904包括:
时间差确定子模块,用于确定所述当前接收时间和所述当前最早接收时间之间的时间差;
当前带宽计算子模块,用于结合所述数据量总和和所述时间差,计算当前带宽。
在本发明一实施例中,所述数据包接收记录模块901包括:
索引值确定子模块,用于确定当前数据包的当前索引值;
数组越界判定子模块,用于若所述当前索引值不在所述预置数组的索引值范围内,判定存在数组越界的情况;
索引值更新子模块,用于在判定存在数组越界的情况时,更新所述当前索引值;
数据量记录存储子模块,用于采用所述更新后的当前索引值,在所述预设数组中存储针对当前数据包的数据量记录。
在本发明一实施例中,所述索引值确定子模块包括:
索引值偏移量计算单元,用于计算所述当前接收时间和所述当前最早接收时间之间的索引值偏移量;
当前索引值确定单元,用于结合所述当前最早接收时间对应的索引值和所述索引值偏移量,得到当前数据包的当前索引值。
在本发明一实施例中,所述索引值更新子模块包括:
目标索引值确定单元,用于结合所述当前索引值和所述索引值范围,确定在所述索引值范围内的目标索引值;
当前索引值更新单元,用于采用所述目标索引值,更新所述当前索引值;
所述数据量记录存储子模块包括:
第一数据量确定单元,用于确定所述目标索引值对应的数据量记录中的第一数据量;
第二数据量确定单元,用于确定所述当前数据包的第二数据量;
数据量存储单元,用于采用所述目标索引值,在预设数组中存储所述第一数据量和所述第二数据量对应的数据量记录
本发明一实施例还提供了电子设备,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上带宽计算的方法的步骤。
本发明一实施例还提供了计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上带宽计算的方法的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种带宽计算的方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种带宽计算的方法,其特征在于,所述方法包括:
接收当前数据包,并在预置数组中存储针对当前数据包的数据量记录;判断所述预置数组中是否存储有针对超时数据包的数据量记录;所述超时数据包为与当前数据包的接收时间差值大于预设时间范围的数据包;其中,所述预置数组中存储在所述预设时间范围内接收到的数据包的数据量记录;
若所述预置数组中存储有针对所述超时数据包的数据量记录,则在所述预置数组中移除针对所述超时数据包的数据量记录;
采用所述预置数组中所有的数据量记录,确定数据量总和,并采用所述数据量总和,计算当前带宽;
其中,所述在预置数组中存储针对当前数据包的数据量记录的步骤包括:
确定当前数据包的当前索引值;
若所述当前索引值不在所述预置数组的索引值范围内,判定存在数组越界的情况;
在判定存在数组越界的情况时,更新所述当前索引值,并采用所述更新后的当前索引值,在所述预置数组中存储针对当前数据包的数据量记录。
2.根据权利要求1所述的方法,其特征在于,所述判断所述预置数组中是否存储有针对超时数据包的数据量记录的步骤包括:
确定第一接收时间及当前数据包的当前接收时间;其中,所述第一接收时间为针对所述预置数组的当前最早接收时间;
结合所述当前接收时间和所述预设时间范围,确定第二接收时间,并将所述第二接收时间更新为当前最早接收时间;
采用所述第一接收时间和所述第二接收时间,确定最早接收时间差值;
若所述最早接收时间差值大于预设值,则判定所述预置数组中存储有针对超时数据包的数据量记录。
3.根据权利要求2所述的方法,其特征在于,所述在所述预置数组中移除针对所述超时数据包的数据量记录的步骤包括:
确定在所述当前最早接收时间之前接收的数据包为超时数据包;
在所述预置数组中,移除针对所述超时数据包的数据量记录。
4.根据权利要求2或3所述的方法,其特征在于,所述采用所述数据量总和,计算当前带宽的步骤包括:
确定所述当前接收时间和所述当前最早接收时间之间的时间差;
结合所述数据量总和和所述时间差,计算当前带宽。
5.根据权利要求4所述的方法,其特征在于,所述确定当前数据包的当前索引值的步骤包括:
计算所述当前接收时间和所述当前最早接收时间之间的索引值偏移量;
结合所述当前最早接收时间对应的索引值和所述索引值偏移量,得到当前数据包的当前索引值。
6.根据权利要求1或5所述的方法,其特征在于,所述更新所述当前索引值的步骤包括:
结合所述当前索引值和所述索引值范围,确定在所述索引值范围内的目标索引值;
采用所述目标索引值,更新所述当前索引值;
所述采用所述更新后的当前索引值,在所述预置数组中存储针对当前数据包的数据量记录的步骤包括:
确定所述目标索引值对应的数据量记录中的第一数据量;
确定所述当前数据包的第二数据量;
采用所述目标索引值,在预置数组中存储所述第一数据量和所述第二数据量对应的数据量记录。
7.一种带宽计算的装置,其特征在于,所述装置包括:
数据包接收记录模块,用于接收当前数据包,并在预置数组中存储针对当前数据包的数据量记录;
数据量判断模块,用于判断所述预置数组中是否存储有针对超时数据包的数据量记录;所述超时数据包为与当前数据包的接收时间差值大于预设时间范围的数据包;其中,所述预置数组中存储在所述预设时间范围内接收到的数据包的数据量记录;
数据量移除模块,用于若所述预置数组中存储有针对所述超时数据包的数据量记录,则在所述预置数组中移除针对所述超时数据包的数据量记录;
带宽计算模块,用于采用所述预置数组中所有的数据量记录,确定数据量总和,并采用所述数据量总和,计算当前带宽;
其中:所述数据包接收记录模块包括:
索引值确定子模块,用于确定当前数据包的当前索引值;
数组越界判定子模块,用于若所述当前索引值不在所述预置数组的索引值范围内,判定存在数组越界的情况;
索引值更新子模块,用于在判定存在数组越界的情况时,更新所述当前索引值;
数据量记录存储子模块,用于采用所述更新后的当前索引值,在所述预置数组中存储针对当前数据包的数据量记录。
8.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6中任一项所述的带宽计算的方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的带宽计算的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911405857.0A CN111224820B (zh) | 2019-12-30 | 2019-12-30 | 一种带宽计算的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911405857.0A CN111224820B (zh) | 2019-12-30 | 2019-12-30 | 一种带宽计算的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111224820A CN111224820A (zh) | 2020-06-02 |
CN111224820B true CN111224820B (zh) | 2023-10-13 |
Family
ID=70825940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911405857.0A Active CN111224820B (zh) | 2019-12-30 | 2019-12-30 | 一种带宽计算的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111224820B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101541099A (zh) * | 2008-03-21 | 2009-09-23 | 中兴通讯股份有限公司 | 缓冲区状态报告方法及装置、数据量设置方法 |
CN107734537A (zh) * | 2016-08-10 | 2018-02-23 | 腾讯科技(深圳)有限公司 | 网络性能参数的测量方法、发送端及接收端 |
CN108206787A (zh) * | 2016-12-17 | 2018-06-26 | 北京华为数字技术有限公司 | 一种拥塞避免方法和装置 |
CN108696407A (zh) * | 2018-06-01 | 2018-10-23 | 国网浙江宁波市奉化区供电有限公司 | 基于tcp/ip的网络连接在线监测方法及系统 |
CN110719259A (zh) * | 2019-09-12 | 2020-01-21 | 视联动力信息技术股份有限公司 | 一种数据处理方法及视联网系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848113B (zh) * | 2009-03-24 | 2012-10-10 | 鸿富锦精密工业(深圳)有限公司 | 网络装置及网络上行带宽的自动检测方法 |
JP6575529B2 (ja) * | 2014-11-27 | 2019-09-18 | 日本電気株式会社 | 可用帯域推定システム、可用帯域推定方法、受信装置及び受信装置の制御プログラム |
-
2019
- 2019-12-30 CN CN201911405857.0A patent/CN111224820B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101541099A (zh) * | 2008-03-21 | 2009-09-23 | 中兴通讯股份有限公司 | 缓冲区状态报告方法及装置、数据量设置方法 |
CN107734537A (zh) * | 2016-08-10 | 2018-02-23 | 腾讯科技(深圳)有限公司 | 网络性能参数的测量方法、发送端及接收端 |
CN108206787A (zh) * | 2016-12-17 | 2018-06-26 | 北京华为数字技术有限公司 | 一种拥塞避免方法和装置 |
CN108696407A (zh) * | 2018-06-01 | 2018-10-23 | 国网浙江宁波市奉化区供电有限公司 | 基于tcp/ip的网络连接在线监测方法及系统 |
CN110719259A (zh) * | 2019-09-12 | 2020-01-21 | 视联动力信息技术股份有限公司 | 一种数据处理方法及视联网系统 |
Non-Patent Citations (1)
Title |
---|
融合IP和HFC的多通道协同传输系统的设计和优化;郑艳伟等;《网络新媒体技术》;20131115(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111224820A (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110502259B (zh) | 服务器版本升级方法、视联网系统、电子设备及存储介质 | |
CN111193788A (zh) | 一种音视频流负载均衡方法和装置 | |
CN109617956B (zh) | 一种数据处理方法和装置 | |
CN108632559A (zh) | 一种视频数据处理方法及装置 | |
CN111211936B (zh) | 一种基于网络状态的数据处理方法和装置 | |
CN109768957B (zh) | 一种监控数据的处理方法和系统 | |
CN111224889A (zh) | 一种数据传输的方法和装置 | |
CN109151061B (zh) | 一种数据存储方法和装置 | |
CN111447407B (zh) | 一种监控资源的传输方法和装置 | |
CN111478882B (zh) | 一种终端检测的方法和装置 | |
CN110289974B (zh) | 一种数据流的处理方法、系统及装置和存储介质 | |
CN110134892B (zh) | 一种监控资源列表的加载方法和系统 | |
CN110389771B (zh) | 一种视联网客户端的升级方法和系统 | |
CN110677315A (zh) | 一种状态监控的方法和系统 | |
CN110557411A (zh) | 基于视联网的视频流处理方法及装置 | |
CN113162910B (zh) | 一种资源传输方法、装置、电子设备及存储介质 | |
CN110474956B (zh) | 视联网设备封号方法、装置、电子设备及可读存储介质 | |
CN111355927B (zh) | 基于视联网的监控设备确定方法、装置、设备及存储介质 | |
CN111225241B (zh) | 一种通信方法和装置 | |
CN110557687B (zh) | 一种组播数据包的处理方法、装置及存储介质 | |
CN111193619B (zh) | 一种日志文件的采集方法及装置 | |
CN111224820B (zh) | 一种带宽计算的方法和装置 | |
CN111131840B (zh) | 一种视频业务系统切换网络的方法及装置 | |
CN110267110B (zh) | 一种基于视联网的并发点播处理方法和系统 | |
CN110266768B (zh) | 一种数据传输方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |