Ubuntuを実行していますLinuxv18でマイネットワークカード用に生成された情報は次のとおりです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要素)。
- この同等性は実行時に(動的に)変更されますか?
- これは同等のOSによって異なりますか?それともネットワークカードによって異なりますか?
- これに相当するものはありますか?
答え1
これに対応するものはなく、パケットサイズは内容によって異なります。最小サイズと最大サイズのみを取得できます。たとえば、イーサネットフレームは72〜1530オクテット(ジャンボフレームを無視)を使用できます。Nイーサネットインターフェイスのパケットは72×を表します。Nそして1530×N送信されたバイト数。
ifconfig
ルータのコマンドはバイト数を表示しないかもしれませんが、ルータがLinuxを実行している場合、これらの数は次のように追跡されます。モスビーコメントしたので、次のように見えるはずです。
ip -s link show eth0
または
head /sys/class/net/eth0/statistics/*_bytes