我正在努力获取tcp连接的性能参数,其中一个参数是带宽.我打算使用tcp_info
从linux 2.6开始支持的结构,它保存有关tcp连接的元数据.可以使用getsockopt()
函数调用来检索信息tcp_info
.我花了很多时间找到一个很好的文档来解释该结构中的所有参数,但找不到一个.
此外,我测试了一个小程序来检索tcp_info
tcp连接的值,在那里我发现大多数时间测量的MSS值为零.为了让长话短说 - 是否有一个链接可以跟随其中包含完整的详细信息tcp_info
以及使用这些值是否可靠?
以下是RenéPfeiffer对linux tcp_info的结构和使用的相当全面的描述,但有几点值得注意:
作者需要随着时间的推移重复查看这些数据,因为该结构中没有聚合统计数据.
作者将您指向tcp.c源,作为任何这些数据含义的最终权限.
我不确定你希望从最大段大小中获得什么,但是你会认为它意味着其他东西.
如果您真正对带宽的精确测量感兴趣,则需要使用在被测系统之外的测量设备,因为即使拉动ioctls
也会影响您感兴趣的现象.无源线嗅探器是获得真正准确结果的唯一途径.最后,根据您的应用,"带宽"是一个非常广泛的保护伞,它将许多测量(例如延迟,往返时间,可变性,抖动等)压缩成一个类别.