Ich verwende UbuntuLinuxv18, und dies sind die Informationen, die ifconfig
ich über meine Netzwerkkarte erhalte:
$ 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
Einige Systeme (z. B. eingebettetes Linux auf Routern)nur RX/TX-Pakete melden, aber keine RX/TX-Bytes anzeigen.
Gibt es unter Linux-Betriebssystemen eine Möglichkeit,RX/TX-Bytes aus gegebenen RX/TX-Paketen abrufen?
Ich denke, einige damit verbundene Fragen wären:
- Ist diese Äquivalenz immer gleich (z. B. Faktor 1024)?
- Ändert sich diese Äquivalenz während der Ausführung (dynamisch)?
- Ist diese Äquivalenz betriebssystemabhängig? Oder vielleicht NIC-abhängig?
- Gibt es überhaupt eine Gleichwertigkeit?
Antwort1
Es gibt keine Äquivalenz, die Größe der Pakete variiert je nach Inhalt. Es gibt nur minimale und maximale Größen. Beispielsweise können Ethernet-Frames zwischen 72 und 1530 Oktette belegen (Jumbo-Frames werden ignoriert).NPakete auf einer Ethernet-Schnittstelle repräsentieren irgendwo zwischen 72 ×Nund 1530 ×Nübertragene Bytes.
Der ifconfig
Befehl auf Ihrem Router zeigt möglicherweise nicht die Byte-Anzahl an, aber wenn Ihr Router Linux verwendet, werden diese Zählungen verfolgt.Moskitokommentiert, sollten Sie sie sehen können mit
ip -s link show eth0
oder
head /sys/class/net/eth0/statistics/*_bytes