12

我正在研究获取 tcp 连接的性能参数,其中一个参数是带宽。我打算使用tcp_info从 linux 2.6 开始支持的结构,它保存有关 tcp 连接的元数据。可以使用getsockopt()函数调用 on检索信息tcp_info。我花了很多时间寻找一个很好的文档来解释该结构中的所有参数,但找不到一个。

我还测试了一个小程序来从tcp_infotcp 连接中检索值,在该连接中我发现测量的 MSS 值在大多数情况下为零。长话短说 - 是否有一个链接可以查看,其中包含完整的详细信息tcp_info以及使用这些值是否可靠。

4

1 回答 1

15

这是René Pfeiffer 对 linux tcp_info 的结构和使用的相当全面的描述,但有几点值得注意:

  • 作者需要查看随时间重复的这些数据,因为该结构中没有汇总统计信息。
  • 作者将您定向到 tcp.c 源作为任何这些数据含义的最终权威。
  • 我不确定您希望从最大分段大小中得到什么,但希望您认为它意味着其他东西。

如果您真的对带宽的精确测量感兴趣,则需要使用正在测试的系统之外的测量设备,因为即使拉动ioctls也会影响您有兴趣了解的现象。无源线嗅探器是获得真正准确结果的唯一方法。最后,根据您的应用程序,“带宽”是一个非常宽泛的保护伞,它将许多测量(例如延迟、往返时间、可变性、抖动等)归为一个类别。

于 2010-07-26T17:54:46.323 回答