NWネットワークスペシャリスト試験 午後Ⅰ

平成22年度秋期 ネットワークスペシャリスト 午後Ⅰ 問1

事例を読んで設問の答えを考えてから、解説のポイントとIPA公式の解答例・採点講評で確認しましょう。

問題

問1 Webプロキシシステムの改善に関する次の記述を読んで、設問1~3に答えよ。 A社では半年前から、2台のプロキシサーバを用いたWebプロキシシステムを利用している。A社のネットワーク構成を、図1に示す。 図1 A社のネットワーク構成(抜粋) プロキシ1はキャッシュとURLフィルタリング用のプロキシサーバ、プロキシ2はウイルスチェック用のプロキシサーバである。PC上のブラウザはプロキシ1へアクセスし、プロキシ1はプロキシ2へアクセスする。Webプロキシシステムのアクセス順序を、図2に示す。 図2 Webプロキシシステムのアクセス順序 PC上のブラウザには、アクセスするプロキシ1のIPアドレスを定義する必要がある。A社では、定義用のファイル(以下、proxy.pacという)のURLをPCに登録している。proxy.pacはプロキシ1に格納されており、その中にプロキシ1のIPアドレスが登録されている。一方、プロキシ1には、アクセスするプロキシ2のIPアドレスが登録されている。 最近、Webサイトの応答が極めて遅くなったり、止まったりするようになった。この問題は、すべてのPCで同時に発生し、数分後には自然に解消した。この問題について、ネットワークとWebプロキシシステムを担当しているB君が、調査し改善することになった。 ログの解析から、問題が発生しているときには、プロキシ2が受け付けるTCPコネクション数が、設定の上限値まで増加していることが分かった。しかし、プロキシ1が受け付けるTCPコネクション数は上限値の半数以下であった。プロキシ1とプロキシ2の上限値は、ボトルネックとなるプロキシ2のサーバ性能から設計した値で、同一である。これらの事実から、プロキシ2の過負荷が応答性能に影響を与えていることは判明したものの、その原因は分からなかった。 〔通信プロトコルに関する調査〕 B君は、Webサイトの応答性能に関係する通信プロトコルを調査した。 HTTPクライアントとHTTPサーバ間の通信では、大量のデータを一方向に転送するバルクデータ転送と、比較的少量のデータを交互に転送する対話型データ転送とが混在している。このうち、[ア]の応答性能は、ラウンドトリップ時間の影響を受ける。ラウンドトリップ時間とは、TCPコネクションにおけるパケットの往復時間である。一方、[イ]の応答性能は、ラウンドトリップ時間のほかに、ボトルネックとなる中継路の帯域幅と、確認応答を待たずに送信できるデータ量である[ウ]によっても変化する。ラウンドトリップ時間が同じでも帯域幅を広げれば、応答性能は向上し続けると思われがちであるが、TCPの通信プロトコル上、実効転送速度は、“[ウ]÷ラウンドトリップ時間”に抑えられる。 HTTP/1.0が公開されたころのHTTPの実装では、1組のリクエストとレスポンスごとに、TCPコネクションの確立と切断が行われていた。図3に、HTTPクライアントがGETリクエストを用いて、HTTPサーバからWebページの情報を取得する際の通信シーケンス例を示す。 図3 HTTPに関する通信シーケンス例 図3において、利用者から見たHTTPサーバの応答時間(以下、TATという)は、t1~t9の総和となる。HTTPクライアントの処理に着目すると、TATは次の三つに分割できる。 ・TCPコネクションの確立完了までの時間:t1+[エ] ・TCPコネクションの確立完了から、ダウンロードの完了までの時間:[オ] ・ダウンロードの完了から、TCPコネクションの切断と情報の表示がともに完了するまでの時間:[カ]+t9 HTTP/1.1において定義されている“永続的接続(Persistent Connections)”を用いると、複数組のリクエストとレスポンスが同一のTCPコネクションの中で実行できる。これによって、通信オーバヘッドが削減される。 多くのHTTPクライアントはキャッシュをもっており、取得する情報がキャッシュにある場合、その情報の最終更新時刻を付与したGETリクエストを送信する。キャッシュの情報が最新である場合、HTTPサーバは“304 Not Modified”のレスポンスだけを返す。これによってTATが短縮される。図3のHTTPクライアントがキャッシュをもち、問合せの結果、キャッシュにある情報が最新であると確認できた場合、そのTATは、図3で示されているTATに比べて、[キ]だけ短縮される。 HTTPクライアントは、“先読み機能”を実装している場合もある。先読み機能とは、参照中のWebページに含まれるリンク情報を用いて、利用者が次に読み込む可能性のある情報を先読みし、キャッシュに蓄積しておく機能である。 〔原因の究明と対策の実施〕 B君は、プロキシ2に関する通信データを調査した。その結果、特定のWebサイト(以下、Cサイトという)にアクセスするとき、プロキシ1からプロキシ2へのTCPコネクション確立要求が大量に発生することが分かった。プロキシ2とCサイト間のTCPコネクションは一つだけで、HTTP/1.1の永続的接続が使われていた。 B君は、プロキシ1の仕様を再確認した。プロキシ1では先読み機能が実装されていた。また、設定によってこの機能を無効にすることができたが、A社では無効の設定を行っていなかった。B君は、PC上のブラウザやプロキシ2の仕様も再確認した。これらに先読み機能は実装されていなかった。B君は、次のように考えた。 Cサイトは、ほかのWebサイトへのリンク情報が多いので、プロキシ1の先読み機能が大量のTCPコネクションを発生させたと考えられる。プロキシ1の先読み機能を無効にすれば、問題は防止できそうである。無効にする作業は容易である。しかし、先読み効果がなくなるので、通常時の応答性能が悪化する可能性も否定できない。 先読み機能を有効にしたまま、プロキシサーバのアクセス順序を変更する対策も有望である。しかし、複数の作業を同時に行わなければならない。例えば、プロキシサーバのIPアドレスを入れ替え、PC側の設定を変えない場合、プロキシサーバのIPアドレスを入れ替える作業のほかに、(I)三つの変更作業が必要である。そのため、作業計画を作成し、変更作業を行う必要がある。また、この対策案では、プロキシ2のボトルネックは解消しても、(II)別のボトルネックが発生する可能性がある。 最終的に、B君は、“対策として、プロキシサーバのアクセス順序を変更したい”と上司に報告した。その際、B君は、Cサイトへのアクセスによって発生するTCPコネクションについて、対策後の状態を図4に示し、この図を用いて対策の効果を説明した。 図4 Cサイトへのアクセスによって発生するTCPコネクション(対策後) その後、B君の報告どおりに変更作業が行われ、問題は発生しなくなった。 設問1 〔通信プロトコルに関する調査〕について、(1)~(3)に答えよ。 (1)本文中の[ア]~[ウ]に入れる適切な字句を答えよ。 (2)GETリクエストを図3中の①~⑦の中から選べ。 (3)本文中の[エ]~[キ]に入れる適切な時間を、図3中のt1~t9を用いた数式で答えよ。 設問2 〔原因の究明と対策の実施〕について、(1)、(2)に答えよ。 (1)本文中の下線(I)について、三つの変更作業をそれぞれ30字以内で具体的に述べよ。 (2)本文中の下線(II)について、別のボトルネックを20字以内で述べよ。 設問3 図4について、対策後の装置名とTCPコネクションを解答欄に記入せよ。
図1 A社のネットワーク構成(抜粋)。A社内のPC、L2SW、L3SW、ファイアウォール、インターネット、Webサイト、2台のプロキシサーバの接続構成を示す図。
図1 A社のネットワーク構成(抜粋)。A社内のPC、L2SW、L3SW、ファイアウォール、インターネット、Webサイト、2台のプロキシサーバの接続構成を示す図。
図2 Webプロキシシステムのアクセス順序。PCのブラウザからプロキシ1、プロキシ2を経由してWebサイトへアクセスする順序を示す図。
図2 Webプロキシシステムのアクセス順序。PCのブラウザからプロキシ1、プロキシ2を経由してWebサイトへアクセスする順序を示す図。
図3 HTTPに関する通信シーケンス例。HTTPクライアントとHTTPサーバ間で、TCP接続の確立、GET要求、データ転送、FINとACKによる切断を行う時系列図。
図3 HTTPに関する通信シーケンス例。HTTPクライアントとHTTPサーバ間で、TCP接続の確立、GET要求、データ転送、FINとACKによる切断を行う時系列図。
図4 Cサイトへのアクセスによって発生するTCPコネクション(対策後)。対策後のPC、プロキシ2、プロキシ1、ファイアウォール、Cサイトおよび他のWebサイト間のTCPコネクションを示す構成図。
図4 Cサイトへのアクセスによって発生するTCPコネクション(対策後)。対策後のPC、プロキシ2、プロキシ1、ファイアウォール、Cサイトおよび他のWebサイト間のTCPコネクションを示す構成図。
解き方のヒントを見る

比較に用いる条件をそろえる

通信や応答性能、構成の改善を考える際は、判断の前提となる条件がそろっているかに注目しましょう。条件の違いによる変化と、検討している対象の違いによる変化を混同しないように整理することが大切です。

この問題で問われていること

この問題に取り組むときは、判断に関係する前提条件が、検討の途中で変わっていないかを確認しましょう。示された情報を整理し、同じ条件として扱える範囲を意識することで、考え方のずれを防ぎやすくなります。

視点

明示されている条件と、自分で補っている想定を区別し、同じ前提の下で考えているかを確かめましょう。判断の根拠を整理するときも、その根拠がどの条件に基づくものかを意識してください。

確認ポイント

  • 判断の前提となる条件を把握しているか
  • 明示されていない条件を無意識に補っていないか
  • 検討の途中で前提条件を変えていないか
正解と解説を見る

解説

TCPとHTTPの特性から応答時間を読み取り、先読みが引き起こすプロキシ2の過負荷を接続順序の変更で解消する問題です。機能上の役割を維持したまま設定を変更し、対策後の通信経路と新たなボトルネックを確認する。

問題の全体像

A社では、キャッシュとURLフィルタリングを行うプロキシ1、ウイルスチェックを行うプロキシ2の順にWebへアクセスしている。プロキシ1の先読みでプロキシ2への接続が大量に発生し、接続数の上限に達して応答が悪化した。先読みを維持しながらアクセス順序を変更するため、通信時間、設定変更、対策後の負荷を検討する。出題趣旨では、通信プロトコルの知識を生かし、利用者視点でサービスレベルを維持・向上する過程を問うとしている。

設問1(1)(ア)

本文の「比較的少量のデータを交互に転送する」という説明に着目する。相手の応答を受けて次の通信を行うため、パケットの往復時間が応答性能に影響する。公式解答例では「対話型データ転送」です。

設問1(1)(イ)

本文の「大量のデータを一方向に転送する」という説明に着目する。大量の転送では、往復時間に加えて経路の帯域幅や確認応答を待たずに送れるデータ量が転送速度を左右する。公式解答例では「バルクデータ転送」です。

設問1(1)(ウ)

空欄直前の「確認応答を待たずに送信できるデータ量」が用語の定義になっている。公式解答例では「ウィンドウサイズ(Window Size)」です。本文のモデルでは、ウィンドウサイズ分を送信して確認応答を待つため、実効転送速度はウィンドウサイズ÷ラウンドトリップ時間に抑えられる。

設問1(2)

図3で、①はSYN、サーバからのSYN・ACKを受けた直後の②は接続確立のためのACKです。その次に送信する③がWebページを要求するGETリクエストに当たる。公式解答例では「③」です。TCPの接続確立と、その後のHTTPの要求を区別して読む。

設問1(3)(エ)

HTTPクライアントの処理に着目するという条件から、URL入力完了後のt1に加え、SYNを送ってSYN・ACKを受け、②のACKを送るまでのt2を接続確立の区間とする。本文は「t1+[エ]」なので、公式解答例ではエは「t2」です。

設問1(3)(オ)

図3では、②のACK送信後に③のGETリクエストを送り、サーバからのデータ受信と確認応答を経て⑤の位置でダウンロードが完了する。この区間に含まれるのはt3、t4、t5です。公式解答例では「t3+t4+t5」です。採点講評では、オ~キの正答率が低かったとして、通信シーケンスを読み解く力を求めている。

設問1(3)(カ)

ダウンロード完了後は、サーバのFIN、それに対する⑥のACK、クライアントの⑦のFIN、サーバのACKという切断の流れを追う。この切断処理がt6、t7、t8に当たり、その後の表示完了までがt9です。本文は「[カ]+t9」なので、公式解答例ではカは「t6+t7+t8」です。

設問1(3)(キ)

本文では、キャッシュが最新ならサーバは「304 Not Modified」のレスポンスだけを返すとしている。更新の有無を問い合わせる通信は必要だが、Webページ本体の転送は不要になる。図3では、それによって省かれる区間がt4とt5であり、公式解答例では短縮時間は「t4+t5」です。接続確立や切断の時間まで省くとは考えない。

設問2(1)(①)

対策後はPC→プロキシ2→プロキシ1→Webサイトの順になる。プロキシ1はWebサイトへアクセスする側になるため、従来の接続先であるプロキシ2の定義を削除する。公式解答例では「プロキシ1上のプロキシサーバの定義を削除する」としている。30字以内の答案では「プロキシ1の接続先プロキシの定義を削除する」と、削除する設定を具体的に示す。

設問2(1)(②)

対策後、PCからの要求を受けたプロキシ2はプロキシ1へアクセスする。このため、公式解答例では「プロキシ2のプロキシサーバとしてプロキシ1を定義する」としている。変更するのはアクセス順序と接続先の設定であり、プロキシ1のキャッシュ・URLフィルタリングと、プロキシ2のウイルスチェックという機能上の役割は維持される。IPアドレスを入れ替えても装置名や機能が入れ替わるわけではありません。30字以内の答案では「プロキシ2の接続先にプロキシ1を定義する」と示す。

設問2(1)(③)

本文では、PCにproxy.pacのURLを登録し、そのファイルをプロキシ1に格納している。IPアドレスを交換してPC側の設定を維持すると、従来プロキシ1へ向いていたアクセス先はプロキシ2になるため、同じURLでファイルを取得できるよう格納先も移す必要がある。公式解答例では「proxy.pacをプロキシ1からプロキシ2に移す」であり、この答案は30字以内に収まる。ファイル内の従来のプロキシ1のIPアドレスも、交換後はプロキシ2を指します。採点講評では、変更不要なファイアウォール、DNS、PCに関する誤答が目立ったとしている。

設問2(2)

アクセス順序を変えると、プロキシ1の先読みで発生する多数のTCPコネクションはプロキシ2を経由せず、ファイアウォールを通ってWebサイトへ向かう。その結果、プロキシ2の過負荷を解消しても、ファイアウォールの処理が新たな制約になる可能性がある。公式解答例では「ファイアウォールの処理能力」であり、20字以内に収まる。採点講評では、環境変更によって通信特性がどう変わるかを理解する必要があるとしている。

設問3

図4の空欄の装置名は、PC側から「プロキシ2」「プロキシ1」とする。公式解答例では、CサイトへのアクセスによるTCPコネクションをPC↔プロキシ2、プロキシ2↔プロキシ1、プロキシ1↔ファイアウォールの各区間に描いている。先読みによる複数のTCPコネクションは、プロキシ1↔ファイアウォールに描く。ファイアウォールからCサイト及びほかのWebサイトへの接続は問題図に示されている。先読み機能を持つのは引き続きプロキシ1なので、先読みの接続はプロキシ2を通らず、その受付接続数の増加を抑えられる。採点講評では、本文の内容を正しく図示する必要があるとしている。

学習のポイント

TCPシーケンスの時間区分と、プロキシの機能・接続順序・IPアドレスを区別した設定変更を重点的に学ぶ。

出典:独立行政法人 情報処理推進機構(IPA)平成22年度秋期 ネットワークスペシャリスト試験 午後Ⅰ 問1(公式資料:問題冊子(PDF) / 解答例 / 採点講評)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針