当前位置: 技术问答>linux和unix
求助:根据波特率(bps)比较均匀的发送数据包的解决办法
来源: 互联网 发布时间:2016-04-07
本文导语: 各位大虾请帮忙:我现在想控制程序比较匀速的发送数据包,包大小:512bytes,波特率(bps)768kbps=768432bps,也就是说每秒钟要发送192个数据包。在这1秒钟内如果不控制的话,就会出现在每秒的前一段时间连续发送...
各位大虾请帮忙:我现在想控制程序比较匀速的发送数据包,包大小:512bytes,波特率(bps)768kbps=768432bps,也就是说每秒钟要发送192个数据包。在这1秒钟内如果不控制的话,就会出现在每秒的前一段时间连续发送完了,而后一段时间却闲着,这也不符合要求。如果用睡眠函数使得每发送一个包就睡眠一下,可是我知道windows下的时间片是10ms,而现在的间隔需要的是5.2ms,达不到要求,不知道redhat 9.0能达到这个精度的时间片不能?即使能的话,如果我们再提高一下波特率,使得系统不能提供我们所需要的时间片精度,那我们需要如何控制匀速发送数据包?希望大虾们能给小弟提供思路,若能够详细说明,更是感激不尽!
|
很简单,但不一定完全满足你的需求。漏桶leaky bucket就像漏斗,token bucket就是定时累积token,表示当前可以发送多少,如果现在来不及发送,下次可以多发。也就是说,最终结果是一段时间内平均起来是均匀的。
|
好像2.6的内核的频率是提高了的,可以达到毫秒级。当然我没有试过,你可以试一下,不过我肯定不会是最小10ms。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。