Я использую 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