gpt4 book ai didi

c - 如何使用 C 对 TCP 和 UDP 进行基准测试?

转载 作者:可可西里 更新时间:2023-11-01 02:33:02 25 4
gpt4 key购买 nike

我想使用 C 套接字为 TCP 和 UDP 测量消息延迟吞吐量。我正在编写在不同服务器上运行的 client.c 和 server.c(问题 1:我必须这样做吗?)来完成此操作。我必须使用不同的数据包大小和多次试验进行多次测量并绘制我的结果。

对于消息延迟:发送不同大小的数据包并测量往返时间并除以 2 以获得延迟。问题 2:我发送了一个大小为 x 的数据包,然后我从 server.c 将数据包发回。所以在客户端我启动计时器,发送数据包然后等到我收到数据包然后停止计时器。 timer/2 是我的延迟? 衡量这个的步骤是什么?

对于吞吐量:问题 3:如何衡量两者的吞吐量? 执行此操作的步骤是什么?

我是使用 C 语言进行 Unix 套接字编程的初学者,所以详细信息会有所帮助,重点放在基准方面。

编辑:我不能使用已经存在的工具。我需要自己写。

谢谢!

最佳答案

问题 1:您可能可以通过使用 Google 找到现有的测试用例。但是,如果您需要处理特殊情况,那么编写您自己的情况可能是有意义的,以便您将其考虑在内。

问题2:也许在网络操作方面对“延迟”有官方定义,但我认为真正重要的是往返成本。所以我不会除以 2。往返总成本是用户(客户端)的体验。这将是他们看到的延迟。

问题 3:我认为您使用不同数据包大小的计划有利于测量吞吐量。有 another SO question与此有关。我发布了该问题的答案,并提供了一些我自己对 UDP 与 TCP 的测试得出的数据。那些可能作为“健全”检查点感兴趣。

啊 - 我忘记了一件事我要提的。如果您使用 UDP 编写一个非常简单的测试用例,它可能有点不切实际。如果直接使用UDP,则需要添加自己的错误处理、数据包验证等,这会增加成本。最终,我们发现 UDP 在大多数情况下对我们来说更快,因为我们已根据自己的使用对其进行了定制。但它肯定需要更多代码才能使一切正常工作。

关于c - 如何使用 C 对 TCP 和 UDP 进行基准测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2348957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com