ソケットを介してIPCを実行するプロセスの問題を調査しています。ソケットはローカルマシンのNICのIPで提供され、接続は別のプロセスからローカルマシンのNICのIPに行われます。ローカルマシン上。
これにより、少なくともWiresharkがパケットを認識できる程度にWindowsネットワークスタックがドロップダウンすることを期待していました。ただし、そうではないようです。したがって、ソケットIPCはスタックの上位で発生します[Windowsイベントトレース(ETW)機能がトラフィックをIPフレームとして認識するかどうかを確認するのは興味深いでしょう]と結論付けることができます。これはそうではありません。この質問には重要ではありません(これはスタックオーバーフローではないため)。
WinPcap/Npcapは、ネットワークスタックのどこで「ライブ」になり、パケットをリッスンしてwiresharkに渡しますか?
私は最新のWindowsOSバージョン(クライアント:7以降、10以降、サーバー:2008以降、2012以降、2016以降)に焦点を当てています。具体的には、このクライアントはWindows10です。
パケットをスタックに送信するのではなく、パケットをホストに「ループバック」するという決定がネットワークスタックのどこで行われるのかを事実上知りたいのです。
ありがとう
高速ループバックが有効になっていない限り、IP層にあり、TCP層にあります。Microsoftネットワークスタックがインストルメントされていないため、NetworkMonitorやWiresharkなどのアプリケーションは機能しません。ループバックトラフィックをキャプチャします。
"TCPループバックインターフェイスのデフォルトの動作は、ローカルTCPトラフィックをAFD(本質的にカーネルモード表現)を含むほとんどのネットワークスタックを介して移動することですユーザーモードのTCPソケット)、およびTCPおよびIPプロトコル層)に対応する層。
別の方法として、Microsoftメッセージアナライザーを使用してWindowsフィルタリングプラットフォーム(WFP)レイヤーでキャプチャできる場合があります。
https://blogs.msdn.Microsoft.com/winsdk/2014/08/15/rejoice-we-can-now-capture-loopback-traffic/