机器接的是千兆网络,在速度不超过千兆的情况下如何控制其发送速率想实现一个程序,给个参数1的话就以1M/s的速度发送数据,10的话就以10M/s的速度发数据。现在只能想到发一个包sleep一下,然后慢慢的测sleep多长时间谁知道什么好点的方法么?

解决方案 »

  1.   

    一般是总量控制,方式很多,其中一种方式是根据时间流逝情况来决定发送数据量:
    1、接收到数据包后,记录当前时间->T1;
    2、然后发送比如 8K 数据,然后sleep一段时间;
    3、醒来后记录当前时间->T2;
    4、计算T2距离T1多久了,这段时间内应该发送的数据量是多少;
    2、然后发送数据 N,然后再sleep一段时间;
    3、醒来后记录当前时间->T3;
    4、计算T3距离T2多久了,这段时间内应该发送的数据量是多少;
    以上循环。