NCA が機能するためには、次のコンポーネントが必要です。
カーネルモジュール: ncakmod
Web サーバー: httpd
カーネルモジュール ncakmod は、Web ページのキャッシュをシステムメモリー内に保持します。このモジュールは、ソケットインタフェース (ファミリータイプは PF_NCA) を介して Web サーバー httpd と通信します。
また、カーネルモジュールは、すべての HTTP キャッシュヒットを記録するログ機能も備えています。NCA ロギングは、HTTP データをバイナリ形式でディスクに書き込みます。NCA には、バイナリログファイルを共通ログ形式 (CLF) に変換するユーティリティが用意されています。
次の図に、通常のデータフローと、NCA が有効になっている場合のデータフローを示します。
以下に、クライアントと Web サーバー間の要求フローを示します。
クライアントから Web サーバーに対して HTTP 要求が発行されます。
ページがキャッシュ内にある場合は、カーネル内キャッシュの Web ページが返されます。
ページがキャッシュ内にない場合は、Web サーバーに要求が送信され、ページが取得または更新されます。
ページがキャッシュされているかどうか、またクライアントに返されるかどうかは、HTTP 応答で使用される HTTP プロトコルのセマンティクスによって異なります。 HTTP 要求に「Pragma:No-cache」ヘッダーが含まれている場合、ページはキャッシュされません。
多くの Web サーバーは AF_INET ソケットを使用します。デフォルトでは、NCA は AF_NCA ソケットを使用します。この状況に対応するために、置き換え用のライブラリが用意されています。新しいライブラリは標準ソケットライブラリ libsocket.so の前にロードされます。bind() ライブラリ呼び出しは新しいライブラリ ncad_addr.so の用意するものが呼び出されます。
/etc/nca/ncakmod.conf ファイル内で状態が有効に設定されていれば、Solaris 9 リリースに付属している Apache は、このライブラリを呼び出すように設定されています。IWS または Netscape サーバーで新しいライブラリを使用する場合は、「NCA ソケットユーティリティライブラリのロード方法」 を参照してください。