Как получить min / avg / var rtt для всех TCP-соединений в Linux? - PullRequest
4 голосов
/ 08 февраля 2012

Я пытаюсь реализовать программное обеспечение, которое отслеживает открытые TCP-соединения и классифицирует их на основе оценок времени прохождения TCP-трафика в Linux.Я ищу похожую информацию, которую программа Nettop показывает на MacOS X.

$ nettop -m tcp

Показывает список открытых подключений процессом, которому они принадлежат.Он включает в себя текущее время приема-передачи мин, среднее значение и оценки дисперсии для каждого соединения.

Для прослушивания собственных подключений программы это можно сделать примерно так, как в http://linuxgazette.net/136/pfeiffer.html, но я ищу что-токак неттоп, который показывает информацию для всех соединений на машине.На OS X, которая не требует доступа с правами root, но это нормально, если ответ таков.

Я бы предпочел Python-совместимую версию, но если она недоступна, я могу жить с C. Если есть существующая командаУтилита line, такая как nettop для Linux, также интересна.

Похожие:

  • Википедия: Алгоритм Карна

Ответы [ 2 ]

0 голосов
/ 21 июля 2015

Часть этой информации доступна в команде:

ss -i -t
0 голосов
/ 08 февраля 2012

Если вы хотите сделать это с вашим собственным кодом, вы можете посмотреть на выходные данные libpcap или tcpdump и сравнить временную метку на пакетах с соответствующей последовательностью и номерами подтверждения, а затем усреднить их за последние несколько секунд.

  • 12: 19: 39,331248 IP 10.0.60.243.ssh> 192.168.50.22.21950: P 11952 : 12180 (228)
  • 12: 19: 39,331388 IP 10.0.60.243.ssh> 192.168.50.22.21950: P 12328 : 12476 (148)
  • 12: 19: 39.380981 IP 192.168.50.22.21950> 10.0.60.243.ssh:. ack 11952 win 65535
  • 12: 19: 39,381039 IP 10.0.60.243.ssh> 192.168.50.22.21950: P 12624 : 12772 (148)
  • 12: 19: 39,381054 IP 192.168.50.22.21950> 10.0.60.243.ssh:. ack 12328 win 65159
  • 12: 19: 39,381058 IP 192.168.50.22.21950> 10.0.60.243.ssh:. ack 12624 win 64863

В среднем это составит около 50 мсек. Rtt

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