Dados los paquetes transmitidos RX/TX de ifconfig, ¿cómo puedo obtener los bytes transmitidos RX/TX?

Dados los paquetes transmitidos RX/TX de ifconfig, ¿cómo puedo obtener los bytes transmitidos RX/TX?

Estoy ejecutando Ubuntulinuxv18, y esta es la información que ifconfigarroja sobre mi NIC:

$ 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

Algunos sistemas (es decir, Linux integrado en enrutadores)sólo informar paquetes RX/TX, pero no muestra los bytes RX/TX.

¿Hay alguna forma en los sistemas operativos Linux deobtener bytes RX/TX dados paquetes RX/TX?

Creo que algunas preguntas correlacionadas serían:

  • ¿Esta equivalencia es siempre la misma (es decir, factor 1024)?
  • ¿Esta equivalencia cambia mientras se ejecuta (dinámica)?
  • ¿Esta equivalencia depende del sistema operativo? ¿O tal vez depende de la NIC?
  • ¿Existe alguna equivalencia?

Respuesta1

No existe equivalencia, los paquetes varían de tamaño dependiendo de su contenido. Sólo puedes obtener tamaños mínimos y máximos; por ejemplo, las tramas Ethernet pueden ocupar entre 72 y 1530 octetos (ignorando las tramas gigantes), por lo quenorteLos paquetes en una interfaz Ethernet representan entre 72 ×nortey 1530 ×nortebytes transmitidos.

Es posible que el ifconfigcomando en su enrutador no muestre los recuentos de bytes, pero si su enrutador ejecuta Linux, se realiza un seguimiento de esos recuentos; comoMosvycomentado, deberías poder verlos usando

ip -s link show eth0

o

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

información relacionada