Solaris のシステム管理 (ネットワークサービス)

NCA アーキテクチャー

NCA が機能するためには、次のコンポーネントが必要です。

カーネルモジュール ncakmod は、Web ページのキャッシュをシステムメモリー内に保持します。このモジュールは、ソケットインタフェースを介して Web サーバー httpd と通信します。プロトコルファミリータイプは PF_NCA です。

また、カーネルモジュールは、すべての HTTP キャッシュヒットを記録するログ機能も備えています。NCA ロギングは、HTTP データをバイナリ形式でディスクに書き込みます。NCA には、バイナリログファイルを共通ログ形式 (CLF) に変換するユーティリティーが用意されています。

次の図に、通常のデータフローと、NCA が有効になっている場合のデータフローを示します。

図 2–1 NCA サービスのデータフロー

このフロー図は、カーネル内の NCA 層を介して行われるクライアント要求のデータフローを示しています。

NCA から httpd への要求フロー

次に、クライアントと Web サーバー間の要求フローを示します。

  1. クライアントから Web サーバーに対して HTTP 要求が発行されます。

  2. ページがキャッシュ内にある場合は、カーネル内キャッシュの Web ページが返されます。

  3. ページがキャッシュ内にない場合は、Web サーバーに要求が送信され、ページが取得または更新されます。

  4. ページがキャッシュされているかどうかは、HTTP 応答で使用される HTTP プロトコルのセマンティクスによって異なります。そのあと、ページがクライアントに返されます。HTTP 要求ヘッダーに Pragma:No-cache が含まれている場合、ページはキャッシュされません。