2010-07-26 2 views
8

Я работаю над получением параметров производительности tcp-соединения, а один из этих параметров - полосой пропускания. Я намерен использовать структуру tcp_info, поддерживаемую Linux 2.6, и которая содержит метаданные о подключении tcp. Информация может быть получена с помощью вызова функции getsockopt() на tcp_info. Я потратил много времени на поиск хорошей документации, которая объясняет все параметры в этой структуре, но не могла найти ее.Хорошая документация по структуре tcp_info

Также я проверил небольшую программу, чтобы получить значения от tcp_info для подключения tcp, где я нашел измеренные значения MSS в течение большей части времени равными нулю. Чтобы сделать длинный рассказ коротким: существует ли ссылка, для которой полную информацию о tcp_info, а также надежно использовать эти значения.

ответ

10

Вот fairly comprehensive write-up структуры и использования Linux tcp_info Рене Пфайфер, но есть несколько вещей, которые стоит отметить:

  • Автор нужно смотреть на эти данные неоднократных в течение долгого времени, потому что есть нет совокупной статистики в этой структуре.
  • Автор направляет вас в источник tcp.c как окончательный орган по значению любой из этих данных.
  • Я не уверен, что вы надеялись получить от максимального размера сегмента, но ожидайте, что вы подумали, что это значит что-то еще.

Если вы действительно заинтересованы в точных измерениях пропускной способности необходимо использовать измерительный прибор, который находится вне системы испытывается, как даже вытягивать ioctls будет влиять на явление вы заинтересованы в получении информации о. Пассивный сниффер - единственный способ получить действительно точные результаты. Наконец, в зависимости от вашего приложения «полоса пропускания» представляет собой очень широкий зонтик, который сглаживает многие измерения (например, латентность, время в оба конца, изменчивость, дрожание и т. Д.) В одну категорию.

Смежные вопросы