如何衡量我发送UDP数据报的速度有多快?

时间:2012-07-25 17:25:44

标签: sockets udp

关于使用带有C套接字编程的sendto(),我有两个关于实际发送速度的问题。

  1. 我做了一个小插槽编程,我正在连续发送UDP数据报,在for循环中每个sendto动作之间没有间隔(暂停)。使用clock_gettime()获取经过的时间并计算实际发送速率是否合理?究竟影响发送速度的是CPU的频率,还是我正在使用的网络接口?我的理解是它应该是两者中较慢的一个?并使用clock_gettime(),我可以得到一个相当好的估计这个发送速度?假设我们得到这个发送速度并由S表示。

  2. 假设我正在通过100Mbps以太网网络接口从PC向路由器发送UDP数据报。路由器的实际到达率是多少?对于一种情况,如果S大于100Mbps,那么到达率将在100Mbps左右,对吧?如果S大于100Mpbs,则到达率应为S,对吗?或者它应该仍然是100Mbps?我有点困惑。

  3. 我这样做的原因是我希望获得UDP数据报的最大突发大小,我可以将其连续发送到路由器(给定传出链路的某个带宽限制)而不丢弃任何数据报。知道怎么做一些测试才能得到这个吗?

1 个答案:

答案 0 :(得分:0)

一百万件事影响速度和丢包。我建议您编写一个C程序,它可以改变发送速度,行长度等,测量速度和丢弃数据包,并将结果输出到您可以绘制的内容,例如csv文件。