ifconfig RX / TXトランスポートパケットが与えられた場合、RX / TXトランスポートバイトをどのように取得しますか?

ifconfig RX / TXトランスポートパケットが与えられた場合、RX / TXトランスポートバイトをどのように取得しますか?

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

関連情報