/proc/net/udpは、イーサネットプラグと私のアプリケーション間で発生するすべてのドロップを計算しますか?

/proc/net/udpは、イーサネットプラグと私のアプリケーション間で発生するすべてのドロップを計算しますか?

/proc/net/udpLinuxには「drops」列があります。

cat /proc/net/udp
  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode ref pointer drops
16151: 00000000:CB53 00000000:0000 07 00000000:00000000 00:00000000 00000000  1000        0 39947169 2 ffff88084c108080 0

ソケットの削除カウンタが0の場合、正当なUDPパケットの送信者とアプリケーションの間で発生する削除が私のボックスの外で発生していると確信できますか?、一部のスイッチやルーターなどで?

それとも、私のネットワークカードドライバがカウンタに影響を与えず、何らかの理由で自動的にパケットをドロップしているのでしょうか?

Windowsでは、受信バッファにまだ多くのスペースがある場合でもパケットが破棄される可能性があることを知っていますが、Linuxにも同様の状況があるかどうかはわかりません。

ベストアンサー1

いいえ。

パケットは、ユーザーソケットに逆多重化される前に失われる可能性があります。

これは、カーネルが何らかの理由でネットワークカードからパケットを十分に高速に読み取れない場合に発生します。

ネットワークカードはポートごとに失われたパケット数をカウントしません。少なくとも必ずしもそうではありません/proc/net/udp

2015年にパケットロスを詳しく紹介した文書がありましたが、興味深く見たのかと思います。 https://access.redhat.com/sites/default/files/attachments/20150325_network_performance_tuning.pdf

おすすめ記事