ping エコーを検証するとき、ユーティリティ/ライブラリはパケットのチェックサムのみをチェックすることが多く、送信されたペイロードが返されたペイロードと一致することを実際に確認していないようです。たとえば、Wireshark の ICMP パーサーは不正なチェックサムのみをチェックし、Ruby のnet-rubyもチェックサムをチェックします。
低レベルのネットワーク ドライバーの問題をデバッグしており、受信時にデータが破損していないことを確認する必要があるため、 ICMP Echoなどの低レベルの要求を使用してドライバーをテストしたいと考えています。ただし、既存の Ping ツールでは不十分です。チェックサムがエコー応答に含まれるデータと一致する可能性がある一方で、エコー応答のデータがエコー要求のデータと一致しないことが懸念されるからです。そのため、両方に有効なチェックサムがありますが (チェックサム コードにエラーはありません)、データ受信部分にエラーがあり、ホストが送信していると考えているものをドライバーが受信していません。
エコー ペイロードをチェックして、送信したものと同じであることを確認するにはどうすればよいですか? 私が使用できるスタンドアロンの「パラノイド ping」ユーティリティがある場合、それも問題ありません。ネットワークがフラッディングしたときにのみ問題が発生するため、ping の長さと頻度を変更できる必要があるだけです。
Ruby ライブラリ/スニペットの形式で提供することをお勧めしますが、Windows で実行できるようにする限り、任意の言語またはスタンドアロン アプリを使用できます。
ありがとう!