Windows 7ホストでVirtual Boxを介してUbuntu 14.04を使用しています。 NICはUSB-Ethernetアダプタです。
これman
tcpdumpの場合「カーネルパケット削除」の原因については説明しますが、「インタフェースパケット削除」の原因については説明しません。
インターフェイスがパケットをドロップする理由を説明できる人はいますか?それとも、パケット損失の原因をどのように知っていますか?
ベストアンサー1
指摘したように、「インターフェースによって破棄されたパケット」カウンターに関する文書には何もありません。したがって、ソースコードの破棄が必要です。
~からtcpdumpのソースコード、インターフェイスドロップカウンタは次から抽出されますstats.ps_ifdrop
。
if (stats.ps_ifdrop != 0) {
if (!verbose)
fputs(", ", stderr);
else
putc('\n', stderr);
(void)fprintf(stderr, "%u packet%s dropped by interface\n",
stats.ps_ifdrop, PLURAL_SUFFIX(stats.ps_ifdrop));
~から人間pcap_stats:
ps_ifdrop
number of packets dropped by the network interface or its driver.
そしてからlibpcapのソースコード:
* "ps_ifdrop" is supported. It will return the number
* of drops the interface reports in /proc/net/dev,
* if that is available.
だからtcpdump "インタフェース消去パケット"カウンタは、キャプチャ/proc/net/dev
中に破棄されたと記録されたパケットに対応します。tcpdump
。
フィールド意味/proc/dev/net
説明ここ
下落をよりよく理解するために、まず次の統計を調べました。
ethtool -S <interface>
grep '' /sys/class/net/<interface>/statistics/*