CN102368729B - 一种在非实时系统上精确网络限速的方法 - Google Patents
一种在非实时系统上精确网络限速的方法 Download PDFInfo
- Publication number
- CN102368729B CN102368729B CN2011102869910A CN201110286991A CN102368729B CN 102368729 B CN102368729 B CN 102368729B CN 2011102869910 A CN2011102869910 A CN 2011102869910A CN 201110286991 A CN201110286991 A CN 201110286991A CN 102368729 B CN102368729 B CN 102368729B
- Authority
- CN
- China
- Prior art keywords
- thread
- send
- time
- non real
- message
- 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
Images
Abstract
本发明提供了一种在非实时系统上精确网络限速的方法,用于处理非实时系统上的精确网络限速,所述方法为:步骤1,创建一个检查线程;步骤2,利用所述检查线程检测非实时系统的时钟,为数据报文发送线程提供精确控制时钟。所述步骤1之前还包含如下步骤:设置检查非实时系统时钟的时间间隔和报文发送速度,并创建一个信号量,该信号量用于触发报文发送线程发送数据。所述步骤2为:启动检查线程,当所述检查线程检查到所述非实时系统的时钟到达所述时间间隔时,释放所述信号量;发送线程被唤醒,计算发送份额,发送报文;当发送数据份额用完后,再次等待信号量;当检测到信号量时重复上述步骤。本发明的网速控制精度可以达到100微秒。
Description
技术领域
本发明涉及互联网通信技术领域,具体涉及一种在非实时系统上精确网络限速的方法。
背景技术
如今,互联网通信发展十分迅速,用户数和应用日益增长,网络流量也快速增加。因此为保证准确地为用户分配带宽,为每个用户提供良好的上网体验,需要能够按设定的带宽精确地对用户进行限速。
现有技术的网络限速方案采用按限速单位(如用户)统计流量,设定一个时间段能使用的流量额度。当统计的流量达到限额时则丢掉报文,等到下一个时间段有流量额度可用时,再继续发送报文。当在使用路由器等网络设备管理流量时,因为设备的实时性比较高,所以采用这种限速策略限速效果没有问题。
但在很多应用场景里对流量的管理则是使用主机系统进行的,因为主机系统的实时性能比较差,使用select函数和usleep函数等唤醒机制的精度只能达到10ms,因此当在这种应用场景中采用上述策略实现的网络限速在较大时间粒度下(10ms)是均匀的,但是在更小的时间粒度内则会很不均匀。例如:10ms内的流量份额,可能会在10ms内的前2ms报文就发完了,而后面剩余的8ms网络便会空闲,这就造成瞬间网络带宽占用很高问题。因此现有技术的限速方法在这种非实时系统中无法满足对网络带宽占用精度要求比较高的环境。
本发明的目的就是解决非实时系统的网络数据发送精确限速的问题。
发明内容
本发明的目的在于,为解决现有技术的网络限速方法应用在非实时系统中并不能解决精确网络限速的问题,从而提供一种在非实时系统上精确网络限速的方法。
为了实现上述目的,本发明提供一种在非实时系统上精确网络限速的方法,该方法用于处理非实时系统上的精确网络限速问题,所述方法为:
步骤1,用于创建一个检查线程的步骤。
步骤2,用于利用所述检查线程检测非实时系统的时钟,为数据报文发送线程提供精确控制时钟的步骤。
可选的,所述步骤1之前还包含如下步骤:设置检查非实时系统时钟的时间间隔和报文发送速度,并创建一个信号量,该信号量用于触发报文发送线程发送数据。
采用上述可选步骤后所述步骤2进一步包含如下子步骤:
启动检查线程,当所述检查线程检查到所述非实时系统的时钟到达所述时间间隔时,释放所述信号量。
发送线程被唤醒,计算发送份额,发送报文;当发送数据份额用完后,再次等待信号量。
当检测到信号量时重复上述步骤,直至所有数据报文发送结束。
其中,上述步骤所述采用信号量触发发送线程的策略可用采用网络通信方式加上系统时钟检查方式的策略替换;其中,所述网络通信方式加上系统时钟检查方式的策略为数据报文发送线程监听一个网络端口,当检查线程检查到所述非实时系统的时钟到达所述时间间隔时,向数据报文报文发送线程监听的端口发送一个报文,唤醒该线程,执行发送份额计算及发送报文。
可选的,所述检查线程采用死循环的方式循环检查所述非实时系统的时钟;所述非实时系统设置有多颗CPU;所述数据报文发送线程为多个。
进一步优化的,当所述发送线程为多个时当检查线程发现所述非实时系统的时钟到达所述时间间隔值后逐个释放发送线程等待的信号量。
可选的,所述检查线程和发送线程间通过IPC信号量机制同步。,所述发送线程根据所述报文发送速度和时间间隔计算每个时隙内应该发生的数据量。
所述的份额为:本次时间间隔内应该发送的数据量,所述时间间隔是指当前时间与上次发送数据时记录的时间的差值,其计算公式为:份额=(带宽/8)/(1秒/时间间隔)。
与现有技术相比,本发明由一个系统时钟检查线程为其它数据报文发送线程提供精确的时钟,精度可以达到微秒量级,其缺点是一颗CPU的占用率始终是100%,不过目前的服务器配置的都是多颗多核CPU,使用该方法后,并不会影响应用服务的性能,因此占用一颗CPU而实现为其他多个报文发送线程提供精确的时钟是值得的。此外,本发明还通过系统信号量的方式唤醒数据发送线程,不会出现延时情况,可以保证数据发送速度控制的精确性。综上所述,本发明的优势在于由独立的定时线程提供定时服务,精度可以达到100微秒,比现有技术精度提高100倍以上。可以保证限速更准确、均匀。
附图说明
图1是本发明的非实时系统上精确网络限速的方法检查线程(即实施例的定时线程)流程示意图;
图2是本发明的数据报文发送线程流程示意图。
具体实施方式
下面结合附图和具体的实施方式对本发明的内容进一步详细描述。
为了保证精确、均匀地发送报文,本发明提供了在非实时系统上精确网络限速的方法,包括以下步骤:
步骤1,系统中有一个或多个线程处理数据报文发送(以下称发送线程),用一个系统时钟检查线程为发包线程提供精确的定时;检查线程和发送线程间通过IPC信号量机制同步。检查的时间间隔根据报文发送的精度要求预先设定(如500微秒)。
步骤2,检查线程循环检查系统时钟,到设定时间间隔后,释放信号量;(因为一直循环运行,所以称做忙等方式)。
步骤3,发送线程在有可用流量份额时,循环发送报文,发送份额用光后,等待信号量。
步骤4,检查线程释放信号量后,发送线程被唤醒,根据当前系统时间重新计算发送份额,发送报文。
所述的步骤(2)具体为:
定时线程循环检测系统时钟,当发现系统时钟到达预先设定时间间隔值后逐个释放发包线程等待的信号量。
所述的步骤(4)具体为:发包线程被唤醒后,按预先设定的带宽和已经流逝时间计算本次数据发送可用份额,按计算的份额量发送报文。所谓的流逝时间是指当前时间与上次发送数据时记录的时间的差值。发送份额计算公式为:份额=(带宽/8)/(1秒/时间间隔)。
本发明技术方案的实施具体步骤如下:
实施例1
如图1所示,具体描述如下。
步骤101,提供数据下载服务的缓存系统,对每个连接限制带宽10M。
步骤102,系统为每个连接建立报文发送线程(以下称发送线程)发送用户下载的内容,用一个系统时钟检查线程为发包线程提供精确的定时(以下称定时线程);定时(检查)线程和发包线程间通过网络通信方式进行同步,每个发送线程监听一个网络端口。定时的时间间隔根据报文发送的精度要求预先设定(本实例为2毫秒)。
步骤103,定时线程,线程循环检查系统时钟,每到1毫秒,设置下次超时时标,同时向发送线程发送一个网络报文。
步骤104,发包线程计算本次时间间隔内应该发送的数据量,循环发送报文,然后从10M额度中减去本次已经发送的数据量,当本次应发送的份额用完后,等待接收网络端口上的数据。
其中,所述的份额为:本次时间间隔内应该发送的数据量,这里的时间间隔是指当前时间与上次发送数据时记录的时间的差值。其计算公式为:份额=(带宽/8)/(1秒/时间间隔)。例如:带宽为10Mbps,距离上次发送数据的时间间隔为500微秒,那么本次时间间隔内发送的份额为:(10*1024*1024/8)/(1000000/500)=655字节。当剩余数据不足655字节时,按照实际字节数发送。
步骤105,定时线程释放发送网络报文后,发包线程接收到数据被唤醒,根据当前系统时间重新计算本次应发送的数据份额,然后执行数据发送。
实施例2:
采用本发明的技术方案并采用信号量触发发送流程的步骤如下:
步骤201,HFC加速系统,从有线网络向用户下推数据,对IPQAM限制下行带宽38M;步骤202,系统为每个IPQAM建立线程通过IPQAM向用户下推数据(以下称发包线程)。用一个系统时钟检查线程为发包线程提供精确的定时(以下称定时线程);定时线程和发包线程间通过IPC信号量机制同步。定时的时间间隔根据报文发送的精度要求预先设定(本实例为500微秒)。
步骤203,定时线程,线程循环检查系统时钟,每到500微秒,设置下次超时时标,同时释放信号量。
步骤204,发包线程每个时隙应该发送的数据量,循环发送报文,然后从38M额度中减去本次发包数据量,当本次应发送份额用完后,等待信号量。
步骤205,定时线程释放信号量后,发包线程被唤醒,根据当前系统时间重新计算本次应发送的数据份额,执行报文发送。其中,所述的份额为:本次时间间隔内应该发送的数据量,这里的时间间隔是指当前时间与上次发送数据时记录的时间的差值。其计算公式为:份额=(带宽/8)/(1秒/时间间隔)。例如:带宽为10Mbps,距离上次发送数据的时间间隔为500微秒,那么本次时间间隔内发送的份额为:(10*1024*1024/8)/(1000000/500)=655字节。当剩余数据不足655字节时,按照实际字节数发送。
上述两个实施例所述的发包线程执行报文发送的详细流程如图2所示,当发送线程计算本次发送份额后,根据情况判断是否可以发送数据。当判断条件成立时,按照计算的份额发送数据;当判断条件不成立时,记录本次计算的份额,并继续等待唤醒,在下次被唤醒后,如果满足发送条件,将当前份额与上次份额累加后一起发送。
本发明的在非实时系统上精确网络限速的方法,也可以用在其它需要精确定时的环境。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (7)
1.一种在非实时系统上精确网络限速的方法,该方法用于处理非实时系统上的精确网络限速问题,所述方法为:
步骤1,用于创建一个检查线程的步骤;
步骤2,用于利用所述检查线程检测非实时系统的时钟,为数据报文发送线程提供精确控制时钟的步骤;
所述步骤1之前还包含如下步骤:
设置检查非实时系统时钟的时间间隔和报文发送速度,并创建一个信号量,采用所述信号量触发报文发送线程发送数据;
所述步骤2进一步包含如下子步骤:
启动检查线程,当所述检查线程检查到所述非实时系统的时钟到达所述时间间隔时,释放所述信号量;
发送线程被唤醒,计算发送份额,发送报文;当发送数据份额用完后,再次等待信号量;
当检测到信号量时重复上述步骤,直至所有数据报文发送结束;
所述的份额为:本次时间间隔内应该发送的数据量,所述时间间隔是指当前时间与上次发送数据时记录的时间的差值,其计算公式为:份额=(带宽/8)/(1秒/时间间隔)。
2.根据权利要求1所述的在非实时系统上精确网络限速的方法,其特征在于,所述采用信号量触发报文发送线程的策略可用采用网络通信方式加上系统时钟检查方式的策略替换;
其中,所述网络通信方式加上系统时钟检查方式的策略为数据报文发送线程监听一个网络端口,当检查线程检查到所述非实时系统的时钟到达所述时间间隔时,向数据报文发送线程监听的端口发送一个报文,唤醒该线程,执行发送份额计算及发送报文。
3.根据权利要求1所述的在非实时系统上精确网络限速的方法,其特征在于,所述检查线程采用死循环的方式循环检查所述非实时系统的时钟。
4.根据权利要求1所述的在非实时系统上精确网络限速的方法,其特征在于,所述非实时系统设置有多颗CPU;所述发送线程为多个。
5.根据权利要求4所述的在非实时系统上精确网络限速的方法,其特征在于,所述发送线程为多个时,当检查线程发现所述非实时系统的时钟到达所述时间间隔值后,逐个释放发送线程等待的信号量。
6.根据权利要求1所述的在非实时系统上精确网络限速的方法,其特征在于,所述检查线程和发送线程间通过IPC信号量机制同步;
所述的时间间隔根据报文发送的精度要求进行设定。
7.根据权利要求1所述的在非实时系统上精确网络限速的方法,其特征在于,所述发送线程根据所述报文发送速度和时间间隔计算每个时隙内应该发生的数据量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102869910A CN102368729B (zh) | 2011-09-23 | 2011-09-23 | 一种在非实时系统上精确网络限速的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102869910A CN102368729B (zh) | 2011-09-23 | 2011-09-23 | 一种在非实时系统上精确网络限速的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102368729A CN102368729A (zh) | 2012-03-07 |
CN102368729B true CN102368729B (zh) | 2013-11-27 |
Family
ID=45761279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102869910A Active CN102368729B (zh) | 2011-09-23 | 2011-09-23 | 一种在非实时系统上精确网络限速的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102368729B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104348748B (zh) * | 2014-06-20 | 2018-07-13 | 珠海市君天电子科技有限公司 | 一种限制网速的方法及系统 |
CN104486239A (zh) * | 2014-12-16 | 2015-04-01 | 安徽皖通邮电股份有限公司 | 一种控制radius报文发送速率的方法 |
CN110572465B (zh) * | 2019-09-12 | 2022-04-15 | 浙江齐治科技股份有限公司 | 一种报文传输方法及装置 |
CN112087398A (zh) * | 2020-08-28 | 2020-12-15 | 西安万像电子科技有限公司 | 一种视频帧的发送方法、装置、设备及存储介质 |
CN112235032B (zh) * | 2020-09-17 | 2021-10-12 | 中国科学院西安光学精密机械研究所 | 基于时间服务的高光谱成像仪1553b总线通信方法 |
CN113068277B (zh) * | 2021-03-18 | 2022-07-26 | 国网浙江省电力有限公司宁波供电公司 | 一种基于5g模组的电力系统通讯网关 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790522A (en) * | 1994-10-07 | 1998-08-04 | International Business Machines Corporation | Method and system for performing traffic congestion control in a data communication network |
CN1630236A (zh) * | 2004-05-14 | 2005-06-22 | 吴晓蓉 | 非实时局域网广播通讯方法 |
CN1975680A (zh) * | 2006-11-27 | 2007-06-06 | 浙江大学 | 基于Java的进程间异步通信的实现方法 |
CN101072147A (zh) * | 2007-06-20 | 2007-11-14 | 重庆邮电大学 | 工业以太网协议分析及现场测试仪 |
CN101788919A (zh) * | 2010-01-29 | 2010-07-28 | 中国科学技术大学苏州研究院 | 片上多核处理器时钟精确并行仿真系统及仿真方法 |
-
2011
- 2011-09-23 CN CN2011102869910A patent/CN102368729B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790522A (en) * | 1994-10-07 | 1998-08-04 | International Business Machines Corporation | Method and system for performing traffic congestion control in a data communication network |
CN1630236A (zh) * | 2004-05-14 | 2005-06-22 | 吴晓蓉 | 非实时局域网广播通讯方法 |
CN1975680A (zh) * | 2006-11-27 | 2007-06-06 | 浙江大学 | 基于Java的进程间异步通信的实现方法 |
CN101072147A (zh) * | 2007-06-20 | 2007-11-14 | 重庆邮电大学 | 工业以太网协议分析及现场测试仪 |
CN101788919A (zh) * | 2010-01-29 | 2010-07-28 | 中国科学技术大学苏州研究院 | 片上多核处理器时钟精确并行仿真系统及仿真方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102368729A (zh) | 2012-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102368729B (zh) | 一种在非实时系统上精确网络限速的方法 | |
Qian et al. | Profiling resource usage for mobile applications: a cross-layer approach | |
Qian et al. | Characterizing radio resource allocation for 3G networks | |
JP5185879B2 (ja) | サービス連続性を維持しつつパッシブ光ネットワークにおける電力消費量を低減するための方法および装置 | |
US9838293B2 (en) | Throughput test method and apparatus | |
CN102404170B (zh) | 报文丢失检测方法、装置、及系统 | |
CN102457413B (zh) | 发现节点中的节能方法 | |
CN101610145A (zh) | 一种实现分布式系统的同步控制的方法和系统 | |
WO2016000659A1 (zh) | 一种统计信息获取方法及装置 | |
CN101699419B (zh) | 数据传输方法以及使用该方法的通用串行总线主机控制器 | |
WO2016182772A1 (en) | Uplink performance management | |
CN103338158A (zh) | 一种goose报文传输时延抖动抑制方法 | |
CN102014047B (zh) | 一种在随机报文长度下恒定速率发送报文的方法及装置 | |
WO2013097196A1 (zh) | 一种传输链路检测方法、装置以及系统 | |
Bergstrom et al. | The distributed open network emulator: Using relativistic time for distributed scalable simulation | |
CN103490995B (zh) | 报文发送方法和装置 | |
CN116225198A (zh) | 一种cpu负载控制方法及系统 | |
WO2017011981A1 (zh) | 一种流表项的定时处理方法及装置 | |
CN110198228A (zh) | 一种故障监控方法、装置、服务器及存储介质 | |
CN102447595B (zh) | 多处理单元网源通路检测方法 | |
CN106034347B (zh) | 一种无线通讯管理方法及装置 | |
CN112714466B (zh) | 服务质量测量方法、装置及用户平面功能 | |
CN112994820B (zh) | 一种光纤链路检测方法及装置 | |
RU2703159C1 (ru) | Способ и система измерения статистики трафика сети по n-секундным интервалам | |
CN106559861A (zh) | 蓝牙设备数据传输方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |