カーネルは、プロセスが自分に属していないネットワークデータを受け取ることをどのように許可しますか? [閉鎖]

カーネルは、プロセスが自分に属していないネットワークデータを受け取ることをどのように許可しますか? [閉鎖]

ネットワークリソースを使用する場合、各プロセスにはポート番号が割り当てられます。プロセスは、指定されたポート番号でのみネットワークデータを送受信できます。

カーネルはどのようにIDS、IPS、Wiresharkのようなセキュリティプログラムが自分に属していないすべてのネットワークデータを受け取ることができますか?これを達成するには、どのシステムコールまたはライブラリルーチンが必要ですか?

ベストアンサー1

どうやって言うよりも、そうだと言う方がいい。なぜ...

ポート番号の目的は、システムですでに利用可能な受信データを制限して区別することです。したがって、rawソケットにはカーネルによって与えられた特別な権限はありません。逆に、通常の(つまり、非生のソケット)IPソケットにはアドレスがあります。特別な能力。

例えば、ステンドグラスの窓をIPと考えてみてください。ポート番号ソケットと透明ウィンドウは、生のソケットのように動作します。後者がより多くの情報を受け取るのではなく、フィルタリングされる情報が少ないということです。このたとえ話は、カーネルではなくネットワークの物理的性質であるため、これを引き起こす状況も示しています。窓が日光を得るために出て行くのと同じように、カーネルは情報を得るために出ない。日光はすでにそこにあり、システムの外から出てきます。

おすすめ記事