質問: 普通、TCP/UDPのポート番号を見てどのプロセスが処理を行うかが 決定され、プロセスへのパケットの受け渡しが行われるかと思います。 この考えを前提にすると、TCP/UDP以外の通信はどのプロセスが 処理を行うのかを判断できない=OSが処理を行う と考えられると思っているのですが、正しい理解でしょうか? 例えばICMPの通信はTCP/UDPを用いずにIPパケットの次ICMPのデータ部分が来るので、 PING応答を処理しているのはOSと思ってよいでしょうか。 また、Wiresharkなどはすべての通信を確認できると思いますが、 上記の理解だけでは動作原理が説明できないように思います。 何か別の仕組み(OSが提供する機能など)があるのでしょうか。
回答: ICMPやIPルーティングのためのプロトコルは、OSの中のネットワーク管理が処理するはずです。 Wiresharkなどは、PCAPというOSのAPIを使っています。 詳しくは知りませんが、IPパケットの送受の時にコールバックされるんだと思います。 Windowsだと標準でPCAPが無いので、Wiresharkインストール時にWinPCAPもインストールされます。