チャット機能の開発に関する次の記述を読んで,設問1〜3に答えよ。
E社は,旅行商品の企画,運営,販売を行う旅行会社である。E社の旅行商品は,自社の販売店と販売代理会社の販売店を通じて販売している。販売店に顧客が来ると,販売スタッフがE社の旅行販売システムを利用して,顧客の要望に合う旅行商品を検索し,顧客に提案している。また,顧客からの旅行商品に関する質問の回答が分からない場合,E社の販売店向けコールセンタに電話で問い合わせることになっているが,販売店からは“コールセンタに電話が繋がらない”などの苦情が出ている。
そこでE社は,販売店とコールセンタのスタッフがテキストメッセージで相互にやり取りできるチャット機能を,旅行販売システムに追加することにした。チャット機能の開発は,E社システム部門のF君が担当することになった。
〔ネットワーク構成の調査〕
F君は,チャット機能を開発するに当たり,現在のネットワーク構成を調査した。図1にF君が調査したネットワーク構成(抜粋)を示す。
図1 F君が調査したネットワーク構成(抜粋)
旅行販売システムは,2台のAPサーバと負荷分散装置から構成されている。負荷分散装置はAPサーバの負荷を分散させるために利用される。DNSサーバのAレコードには,旅行販売システムのIPアドレスとして a が登録されている。
販売代理会社の販売店のPCから旅行販売システムへの通信は,FW,ルータ,プロキシサーバを経由している。FW#3では,NAPTを行い,宛先ポートが53番ポート,80番ポート又は443番ポートで宛先ネットワークアドレスが10.10.0.0のIPパケットとその返信IPパケットだけを通信許可する設定となっている。
販売代理会社の販売店のPCがHTTPを利用して旅行販売システムにアクセスする場合,プロキシサーバはPCから受信したGETメソッドを参照して,APサーバへHTTPリクエストを送信する。一方,HTTP Over TLSを利用する場合は,プロキシサーバは旅行販売システムの機器とTCPコネクションを確立し,①PCから受信したデータをそのまま送信する。
また,販売代理会社の販売店のPCから旅行販売システムヘアクセスする場合,PCからFW#4に送信されるIPパケットの宛先IPアドレスは b となり,代理会社接続ルータからFW#1に送信されるIPパケットの送信元IPアドレスは c となる。
〔チャット機能の実装方式の検討〕
次にF君は,チャット機能の実装方式を検討した。チャット機能を実装する場合,旅行販売システムで利用している②HTTPでは実装が困難である。そこでF君は,チャット機能の実装のためにWebSocketについて調査を行った。図2にF君が調査したWebSocketを利用した通信(抜粋)を示す。
図2 F君が調査したWebSocketを利用した通信(抜粋)
WebSocketを利用すると,PCとAPサーバの間のHTTPを用いた通信を拡張し,任意フォーマットのデータの双方向通信ができる。WebSocketを利用するためには,PCからAPサーバにHTTPと同様のGETメソッドを送信する。このGETメソッドのHTTPヘッダに“Upgrade: websocket”と“Connection: Upgrade”を含めることで,PCとAPサーバの間でWebSocketの接続が確立する。接続が確立したら,PCとAPサーバのどちらからでも,テキストメッセージを送信できる。
この調査結果からF君は,IRC(Internet Relay Chat)プロトコルや新たにチャット機能専用のプロトコルを利用する場合と比較し,③WebSocketを利用することで販売代理会社のFWやルータの設定変更を少なくできると考えた。
〔チャット機能の設計レビュー〕
F君は,APサーバにチャット機能を追加するための設計を行い,上司のG課長のレビューを受けた。レビューの結果,G課長から次の2点の指摘があった。
指摘1. WebSocketはTCPコネクションを確立したままにするので,負荷分散装置を経由してチャット機能ヘアクセスすると,旅行販売システムの既存機能へのアクセスに影響がある。
指摘2. チャット機能をWebSocket Over TLSに対応させないと,販売代理会社からプロキシサーバを経由してチャット機能にアクセスできない。
F君は指摘1について,チャット機能では負荷分散装置を使わないことにし,E社データセンタ内にある機器を利用した④ほかの負荷分散方式に変更した。
次に指摘2について,WebSocketを利用した通信ではTCPコネクションを確立したままにする必要があるので,プロキシサーバのHTTP Over TLSのデータをそのまま送信する機能を利用することで,プロキシサーバ経由でチャット機能が利用できる。そこで,F君はTLS証明書をdにインストールし,チャット機能の通信をHTTP Over TLSに対応させた。
その後F君が,チャット機能を旅行販売システムに追加したことで,販売店でのチャット機能の利用が開始された。
出典:令和3年度春期 問5
設問1 〔ネットワーク構成の調査〕について,(1)〜(3)に答えよ。
(1)本文中の a 〜 c に入れる適切なIPアドレスを図1中の字句を用いて答えよ。
解答・解説
解答例
a:10.10.0.10
b:192.168.0.3
c:10.1.1.2
解説
(2)E社販売店のPC及び販売代理会社の販売店のPCが旅行販売システムにアクセスするためには,どの機器のDNS設定にE社のDNSサーバのIPアドレスを設定する必要があるか,解答群の中から全て選び,記号で答えよ。
解答群
- E社販売店のPC
- FW#1
- FW#2
- FW#3
- FW#4
- 店舗接続ルータ
- 販売代理会社の販売店のPC
- 負荷分散装置
- プロキシサーバ
解答・解説
解答例
ア,ケ
解説
(3)本文中の下線①について,プロキシサーバがPCから送信されたデータをそのまま送信するのはなぜか,30字以内で述べよ。
解答・解説
解答例
プロキシサーバはGETメソッドの内容が見えないから
解説
設問2 〔チャット機能の実装方式の検討〕について,(1),(2)に答えよ。
(1)本文中の下線②について,チャット機能をHTTPで実装するのはなぜ困難か,解答群の中から選び,記号で答えよ。
解答群
- PCはAPサーバ上のファイルを取得することしかできないから
- PCへのメッセージ送信はAPサーバ側で発生したイベントを契機として行うことができないから
- TCPコネクションを確立したままにできないから
- どのPCから送られたメッセージか,APサーバが判別できないから
解答・解説
解答例
イ
解説
(2)本文中の下線③について,FWやルータへの設定変更を少なくできるのはなぜか,WebSocketとHTTPの共通点に着目して,20字以内で述べよ。
解答・解説
解答例
同じポートを利用するから
解説
設問3 〔チャット機能の設計レビュー〕について,(1),(2)に答えよ。
(1)本文中の下線④について,どのような負荷分散方式に変更したか,20字以内で答えよ。
解答・解説
解答例
DNSラウンドロピン方式
解説
(2)本文中の d に入れる適切な機器名を,図1中の字句を用いて全て答えよ。
解答・解説
解答例
APサーバ#1,APサーバ#2
解説
IPA公開情報
出題趣旨
昨今,顧客からの問合せ対応を行うコールセンタでは,電話などの音声による問合せ対応に加え,Webやチャットによる問合せ対応が普及しつつある。
本問では,旅行販売システムへのチャット機能の追加を題材として,HTTP及びWebSocketに関する基本的な理解と応用能力について問う。
採点講評
問5では,旅行販売システムへのチャット機能の追加を題材に,HTTP及びWebSocketについて出題した。 全体として正答率はやや低かった。
設問2(2)は,正答率がやや低かった。ファイアウォールやルータが許可する通信プロトコルを制限してセキュリティを確保する際に,通信プロトコルで利用するポート番号を用いる場合があることを知っておいてほしい。
設問3(2)は,正答率が低かった。DNSラウンドロビン方式の負荷分散を用いる場合に,TLS証明書をインストールする機器を問うたが,ルータやプロキシサーバという解答が散見された。HTTP の暗号化に広く利用されているTLSについては,TLS証明書をインストールする機器の違いによって通信の暗号化範囲が異なる点を理解してほしい。