ここで障害のあるイーサネットコントローラーを修正するために無駄にしようとしていたので、マシンでtcpdumpを実行してみました。
tcpdumpは、pingアプリケーションが送信していると考えていたICMPパケットの一部が、同じマシン上で実行されていても、実際にはワイヤ上で送信されていなかったことを検出できることは興味深いことに気付きました。これらのtcpdumpの結果をここに再現しました。
14:25:01.162331 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 1, length 64
14:25:02.168630 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 2, length 64
14:25:02.228192 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 2, length 64
14:25:07.236359 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 3, length 64
14:25:07.259431 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 3, length 64
14:25:31.307707 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 9, length 64
14:25:32.316628 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 10, length 64
14:25:33.324623 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 11, length 64
14:25:33.349896 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 11, length 64
14:25:43.368625 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 17, length 64
14:25:43.394590 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 17, length 64
14:26:18.518391 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 30, length 64
14:26:18.537866 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 30, length 64
14:26:19.519554 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 31, length 64
14:26:20.518588 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 32, length 64
14:26:21.518559 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 33, length 64
14:26:21.538623 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 33, length 64
14:26:37.573641 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 35, length 64
14:26:38.580648 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 36, length 64
14:26:38.602195 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 36, length 64
seq番号が数回ジャンプすることに注意してください...これは、pingアプリケーションが実際にボックスを出ていないパケットを示します。
それは私の質問に私をもたらします:tcpdumpはどのようにICMPパケットが実際に出ていなかったことを検出できましたか?どういうわけか、ワイヤ上にあるものを直接監視できますか?
これが実現する場合は、カーネルの一部とインターフェイスし、ネットワークコントローラーの標準部分であるハードウェアとインターフェイスすることによるものと想定しています。
それでも、それはかなりクールです!それが実際にtcpdumpが機能する方法ではない場合、誰かがソフトウェアで欠落パケットをどのように検出したかを説明できますか?