コンピューターでデバイスを正常に見つけて、pcap_open(...)を呼び出すと、コンピューターとの間でのみパケットが送受信されますか?ネットワーク上の他のコンピューティングはどうですか?まだ送信されていないパケットが表示されますか?
1 に答える
短い答え:
依存、依存、およびいいえ。
より長い答え:
質問に答える前に、いくつかのことを理解する必要があります。まず、イーサネットネットワークで送信されるすべてのパケットに、送信元アドレスと宛先アドレスを指定するイーサネットヘッダーが含まれることを知っておく必要があります。これらのアドレスは、イーサネットネットワーク上の送信者と目的の受信者のイーサネットカードに属しています。これらはIPアドレスとは異なることに注意してください。(イーサネットアドレスの検出方法については、アドレス解決プロトコル(ARP)を参照してください)。
コンピュータは、イーサネットヘッダーの宛先アドレスが自身のイーサネットカードのアドレスと一致するパケットを受信すると、それを処理します。それ以外の場合は、破棄します。
たとえば、多数のコンピューターがハブに接続されている場合、あるコンピューターが別のコンピューターにパケットを送信すると、ハブは接続されているすべてのリンクで受信したすべてのパケットをブロードキャストするだけなので、すべてのコンピューターがそれを認識します。ただし、実際にパケットを処理するのは1台のコンピューターのみであり、それがイーサネットヘッダーで指定されたコンピューターです。
さて、pcapに。無差別モードまたは非無差別モードでパケットをキャプチャできます(より適切な用語があるかどうかはわかりません)。インターフェイスが無差別モードの場合、pcapは、宛先がパケットがそのインターフェイスの宛先と一致しません。非プロミスキャスモードでは、宛先フィールドがインターフェイスのアドレスと一致するパケットのみが表示されます。
今あなたの質問に答えるために。
コンピュータから送信されたパケットと、コンピュータ宛てのパケットが常に表示されます。ネットワークによっては、他のコンピュータから送信されたパケットが表示される場合があります。ネットワークによっては、ネットワーク上の他のコンピュータに送信されたパケットが表示される場合があります。たとえば、WiFiインターフェイスでパケットをキャプチャしている場合、他のコンピュータから送信されたパケットを確認できます(パケットは無線でブロードキャストされ、範囲内の誰もが確認できるため)。受信したすべてのパケットをブロードキャストするハブについても同じことが言えます。アダプタがプロミスキャスモードの場合、pcapはそれらを表示するため、他のコンピュータとの間で送受信されるトラフィックを確認できます。一方、コンピューターがスイッチまたはルーターに接続されている場合は、スイッチ/ルーターが他のコンピューターを送信しないため、トラフィックのみが表示されます。■トラフィック(ハブ/スイッチ/ルーターを調べて理由を確認してください)。最後に、pcapがパケットを表示する前にインターフェイスから送信する必要があるため、まだ送信されていないパケットは表示されません。