【问题标题】:How to measure how fast I'm sending the UDP datagrams?如何测量我发送 UDP 数据报的速度?
【发布时间】:2012-07-24 05:02:53
【问题描述】:

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

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

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

我这样做的原因是我想获得可以连续发送到路由器的 UDP 数据报的最大突发大小(给定传出链路的特定带宽限制),而不会丢弃任何数据报。知道如何做一些测试来得到这个吗?

【问题讨论】:

    标签: sockets udp


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多