Как получить переданные RX/TX байты, если ifconfig передает пакеты?

Как получить переданные RX/TX байты, если ifconfig передает пакеты?

Я использую Ubuntu.Линуксv18, и вот какая информация ifconfigвыдается о моей сетевой карте:

$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.123  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::4a75:bbe4:742d:d77b  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:55:c7:9f  txqueuelen 1000  (Ethernet)
        RX packets 2443063  bytes 868405621 (828.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2343559  bytes 1022562153 (975.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Некоторые системы (например: встроенный Linux на маршрутизаторах)сообщать только о пакетах RX/TX, но не отображать байты RX/TX.

Есть ли способ в операционных системах Linuxполучить байты RX/TX по заданным пакетам RX/TX?

Я думаю, что некоторые взаимосвязанные вопросы будут такими:

  • Всегда ли эта эквивалентность одинакова (т.е.: множитель 1024)?
  • Изменяется ли эта эквивалентность во время работы (динамика)?
  • Зависит ли эта эквивалентность от операционной системы? Или, может быть, от сетевой карты?
  • Есть ли вообще какая-то эквивалентность?

решение1

Нет никакой эквивалентности, пакеты различаются по размеру в зависимости от их содержимого. Вы можете получить только минимальный и максимальный размеры; например, кадры Ethernet могут занимать от 72 до 1530 октетов (игнорируя кадры jumbo), поэтомунпакеты на интерфейсе Ethernet представляют собой где-то между 72 ×ни 1530 ×нпереданные байты.

Команда ifconfigна вашем маршрутизаторе может не отображать количество байтов, но если ваш маршрутизатор работает под управлением Linux, это количество отслеживается.мосвыпрокомментировал, вы должны иметь возможность увидеть их, используя

ip -s link show eth0

или

head /sys/class/net/eth0/statistics/*_bytes

Связанный контент