Как программно извлечь счетчики TCP / IP для каждого соединения TCP? - PullRequest
4 голосов
/ 03 апреля 2012

В прошлой жизни я работал над инструментом, который в основном мог отслеживать эту информацию:

src_ip, dst_ip, src_port, dst_port, bytes_sent, bytes_received, packages_sent, packet_received, packet_retransmitted, bytes_retransmitted

Для каждого активного TCP-соединения на машине.В то время (около 2008 г.) это основывалось на патче ядра для расширения счетчиков, отслеживаемых ядром.Я думал, что слышал, что он был интегрирован в ядро ​​несколько лет назад.Но это было навсегда, и я забыл детали.

Жизнь обвела меня полным кругом, и я снова хочу написать такой инструмент, но я не могу вспомнить, как получить доступ к этим счетчикам / настроить linuxпоэтому он отслеживает эту информацию.

Возможно, есть какой-то способ использовать netstat для этого - но я пока не смог получить информацию счетчика в этом интерфейсе.

В любом случаедостаточно, чтобы ядро ​​отслеживало эту информацию и экспортировало достаточно разумные числа.Я надеюсь, что для этого не нужно запускать IPTables.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2013

Вы можете использовать инструмент linux conntrack для статистики потока.

Я думаю, что это инструмент, который вы использовали раньше.

0 голосов
/ 03 апреля 2012

Вы можете получить некоторую информацию для каждого сокета через /proc/net/tcp. Другая глобальная информация может быть повторена через /proc/net/snmp. Тем не менее, я не думаю, что ядро ​​отслеживает bytes_sent, bytes_received, packet_sent, packet_received, packet_retransmitted, bytes_retransmitted для каждого сокета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...