В Linux есть возможность отображать статистику протокола с помощью netstat -s. Результат выглядит примерно так:
Отрывок:
7487 times unabled to send RST due to no memory
TCPDSACKIgnoredOld: 817
TCPDSACKIgnoredNoUndo: 7246527
TCPSpuriousRTOs: 4583587
TCPSackShifted: 15825
TCPSackMerged: 455582
Но они накапливаются по всем сетевым интерфейсам. Есть ли способ увидеть эту статистику для каждого интерфейса? Я знаю, что в /sys/class/net/$INTERFACE/statistics
, но не смогли найти никаких связанных с протоколом.
Netstat -s - это более интуитивно понятное отображение /proc/net/netstat
. Счетчики в нем глобальные, а не на интерфейс. Чтобы получить такую информацию, вам нужно будет использовать / написать инструмент мониторинга с использованием libpcap.
Код, который собирает эту статистику, вызывается в различных связанных кодовых путях TCP / UDP / IP и увеличивает MIB SNMP.
Информация об интерфейсе или каких-либо свойствах соединения, таких как порт или IP-адрес, не хранится, это всего лишь базовый счетчик времени, когда был введен кодовый путь.
netstat -s
просто читает эти счетчики.