ネットワークスペシャリスト - SE娘の剣 -

左門至峰によるネットワークスペシャリストの試験対策サイトです。勉強方法、合格体験談、合格のコツ、過去問解説、基礎知識などの紹介します。

WAN技術

1.WANの体系

(1)レイヤごとのWANサービス

以下の各レイヤにおける、WANのサービスを述べよ。
①レイヤ1
②レイヤ2
③レイヤ3

女性指差し 

WANなので、専用線とか、広域イーサネットとか、そのあたりですね。
その通り。
①レイヤ1 ※厳密にレイヤ1というべきかは微妙
 専用線、ISDN
②レイヤ2
 広域イーサネット
③レイヤ3
 IP-VPN、インターネットVPN

※パケット交換網、フレームリレー、ATMサービスは、今では使われないし、試験でも問われないので割愛。

情報処理試験で出題されるWANは、基本的に以下の3つ。

サービスや技術 キーワード 具体例 補足
1 IP-VPN MPLS NTTコムのIP-VPNサービスなど MPLSにより、高速な通信と、グループ分けをしている
2 広域イーサネット VLAN NTT西のビジネスイーサなど タグVLANにより、異なる利用者をグループ化している
3 インターネットVPN IPsec 上記の2つは月額費用がかなり高い。そこで、ベストエフォート回線を利用し、安価にネットワークを構築する しかし、セキュリティのリスクがあるため、IPsecによって暗号化する。また、ネットワークの信頼性は上記の2つに比べると落ちる。
(2)広域イーサネットやIP-VPNと比べてインターネットVPNの特徴

 ■メリット
  ・安価
  ・広帯域
 ■デメリット
  ・品質が安定しない
  ・セキュリティ面で不安がある →IPsecで暗号化と認証
女性ほおづえ

(3)IP-VPNと広域イーサネットの違いがいまいちわかりません。

試験では、両方のネットワークが出題されますが、どちらも同じで考えています。
両者の違いのイメージとしては
・IP-VPNは全国をルータ接続する。広域イーサネットは、狭いエリアを高速スイッチで接続する。
・IP-VPNはルータを使ってL3でルーティングするのに対し、広域イーサネットは、スイッチを使ってL2でスイッチングをする。

試験での構成図を見てもらうと、IP-VPNの場合、網に接続する機器はルータで、広域イーサネットの場合はL2スイッチになっていると思う。

現実のサービスとしては、料金や帯域の違い、通信できるプロトコルの違いなどがあったが、両者の違いは少なくなってきているのが現状である。

(4)専用線と比べたIP-VPNの利点

 ※専用線と広域イーサネットの比較も同じ
❶コスト
専用線は,その企業で専用する回線ですが,IP-VPNは,通信網内は他社と設備を共用します。設備費用を割り勘することによって,専用線に比べて安価にネットワークを構築できます。
❷シンプルな構成
多くの拠点でWANを構成する際,専用線接続に比べてネットワークを構築しやすいという利点もあります。専用線の場合,1対1での回線契約になるので,他拠点すべてと接続すると,回線の契約本数が増えてしまうのです。

(5)WANを構成する要素

❶ルータ、ルータ機能を持ったFW
 WANに接続する機器の代表は、ルータである。最近だとFWに直接接続する場合もあるが、ルータ機能を持ったFWを接続している。

❷回線を接続する機器
・回線接続装置としてのONUやDSU
・メディアコンバータ(M/C、Media Converter)
 建屋をまたがって光接続をする場合には、メディアコンバータなどを設置する場合もあります。
ネットワークスペシャリスト試験の過去問(R1NW午後1問1)では、「ビル3階とビル4階には,ビル管理会社によってシングルモード光ファイバとその両端にメディアコンバータ(以下, M/Cという)が提供されている。M/Cは光-電気変換を行う装置で,1000BASE-Tの制限距離を延伸するために用いている。」とある。
インターフェースは、光のIF(たとえばLCコネクタ)とLANのIFのそれぞれが存在します。
ネットワークスペシャリストを目指す女性SEあれ? 
ONUも光回線とLANのIFを変換しますよね?
そう。ONUも広い意味ではM/Cともいえる。まあ、試験対策としては、以下と考えておけばいいだろう。
・どちらも同じく光とLANケーブルの変換をする
・ONUは言葉の通り(キャリアからの)回線を終端する
・M/Cは、主に敷地内で光とLANケーブルの変換をする。
ただ、もちろん、ONUのかわりにその辺で買ってきたM/Cをつけても正常には動作しない。ONUは回線終端装置とあり、回線からの信号を処理する仕組みが必要。わかりやすい例でいうと、PONで使われているONUの場合、グループ化や振り分けの処理なども行う。(このあたりは覚える必要は全く無し)
https://community.fs.com/jp/blog/abc-of-pon-understanding-olt-onu-ont-and-odn.html
以下、MCに関する詳しい解説がある。
https://www.allied-telesis.co.jp/products/list/convert/know.html

❸ゲートウェイ(gateway)
ゲートウェイという言葉は、ルータを指すことも多いと思います。実際、パソコンではデフォルトゲートウェイとして、ルータのIPアドレスを指定します。
しかし、本来はプロトコル変換の装置を指します。例えば、VoIPゲートウェイでは、電話線からのアナログ通信を、LANによるデジタル通信に変換します。

❹WAN回線
ISDN、光回線、ADSL、広域イーサ網など

3.広域イーサネット

女性目閉じる
社内LANがWANも含めて構成されていると思えばいいし、実際にそうである。
網内にもスイッチが存在する。

では、いくつか質問

Q1.同一セグメントで構成した場合、ブロードキャストパケットは届く?






A1.Yes 届きます。

Q2.通常のLANはイーサネットケーブルで構成されるが、広域イーサネット内は?






A2.光ケーブルで接続されます。拠点にはONU(場合によってはEAコンバータなど)からLANにつなぎます。

Q3.光ケーブルは遠くまで届くことはわかる。でも、LANということはイーサネット。伝送距離は100Mのはずだが?






A3.全て全二重通信にする。つまり、衝突検知(CSMA/CD)を行わないことで、長距離を可能にしている。

4.IP-VPNとMPLS

(1)IP-VPNとは

IP-VPNサービスは,通信事業者が提供する拠点間接続のWANサービスです。広域イーサネットでは,レイヤ2レベルでの接続を可能にしましたが,IP-VPNでは,拠点間の接続にルータを設置し,レイヤ3レベルでの接続を可能にします。
また、インターネットVPNも,レイヤ3レベルでのサービスになります。

ネットワークスペシャリスト試験の過去問(H30NW午後Ⅰ問3)に、IP-VPNについて整理されているので紹介します。

(i)IP-VPN
・IP-VPNは,通信事業者が運営する閉域IPネットワーク(以下,事業者閉域IP網という)を利用者のトラフィック交換に提供するサービスである。
・IP-VPNは,①事業者間域IP網内で複数の利用者のトラフィックを中継するのに,RFC 3031で規定された方式が用いられる
・利用者のネットワークと事業者閉域IP網との接続点において,利用者が設置するCE(Customer Edge)ルータから送られたパケットは,通信事業者のPE(Provider Edge)ルータで[  ア:ラベル ]と呼ばれる短い固定長のタグ情報が付与される。
・事業者閉域IP網内では,②タグ情報を参照して中継され,[ ア:ラベル ]は対向側の[ イ:PEルータ ]で取り除かれる。

設問2 〔WAN構成の検討〕について,(1),(2)に答えよ。
(1)本文中の下線①について,IP-VPNサービス提供のために事業者閉域IP網内で用いられるパケット転送技術を答えよ。
(2)本文中の下線②について,事業者間域IP網内の利用者トラフィック中継処理において,タグ情報を利用する目的を,25字以内で述べよ。






(1)はMPLSです。
IP-VPNサービスのキーワードはMPLSとラベルの2つです。覚えておきましょう!

(2)は、「利用者ごとのトラフィックを区別するためです」。MPLSは高速な転送を実現しますが、今回の設問は「タグ情報を利用する目的」た問われています。

(2)MPLS(Multi Protocol Label Switching)

・L2レイヤの技術
・IPヘッダの変わりにMPLSヘッダを用いてルーティングする。
・プロトコルの依存性が少ない。これがマルチプロトコルと名が付けられている理由だろう。実際に利用されているプロトコルはIPが多いだろうが、実際にはATMなどもMPLSで転送している。フレームの構成を見れば、単にヘッダを付けているだけなので、どんなプロトコルだろうが関係ないことがわかると思う。 

[IPヘッダ][ペイロード]
という従来のパケット構造に加え、MPLSタグをつける
→ [MPLSタグ][IPヘッダ][ペイロード]

・高速な処理が可能である。
女性ほおづえ

IP-VPNサービスなどで活用されているようですが。
ところで、なぜ高速になるの?
IPアドレスによるルーティングと異なる点を考えればよいでしょう。
・ロンゲストマッチによる処理が不要。
・IPアドレスは膨大な量であるが、ラベルは必要な数だけ設定すればよい。
・過去問ではIPネットワークのVPNサービスを実現する技術の一つであるMPLSの説明として、「ラベルと呼ばれる識別子を挿入することによって、IPアドレスに依存しないルーティングを実現する、ラベルスイッチング方式を用いたパケット転送技術である。(H18NW午前 問41)」と述べている。また、MPLSに関する記述として、「MPLSにおけるLSPは片方向のパスであり、両方向の通信に用いるには二つのLSPが必要である。(H19NW午前 問27)」と述べられている。

・レイヤ3のデータをラベル付けしてレイヤ2のように流す。MPLSはレイヤ2とレイヤ3の中間で動作すると考えてよいと思う。

・ラベル付けされたパケットの道筋をLSP(Label Swithched Path)という。たとえば、R1→R5→R11→R3という道筋(Path)である。

・FEC(Forwarding Equivalence Class)とは、「MPLS網内で同じあて先のパケットや同じ扱いをさせるパケットの集まり(H19NW午前 問27を活用)」である。
ひとつひとつのルーティング処理をするのではなく、FECで転送先をまとめることで、シンプルな転送処理が可能になる。

・MPLS機能を有したルータをLSR (Label Switch Router)と呼ぶ。
また、IP-VPNにおけるPEルータ(Provider Edge Router:事業者エッジルータ)、CEルータ(Customer Edge Router:顧客エッジルータ)という呼び方以外に、MPLSを処理するエッジルータとしてLER (Label Edge Router)と呼ぶ。また、IP-VPN網内のルータをPルータ(Providerルータ)と言う。

・ラベルには2つあり、1つは利用者情報を識別するVPN識別ラベル、もう一つはIP-VPN網内での経路情報のための転送ラベルである。
※VPN識別ラベルは、IP-VPN網内で転送される間は常に同じですが、転送ラベルは、網内のルータを経由するたびに付け替えられます。

・網内のルーティングは、転送ラベルを用いている
・転送ラベルの情報は、IP-VPN網内でのBGPなどによるルーティングプロトコルで決定される(要確認)
・転送ラベルは、宛先のルータ情報は入っているわけでなく、次の転送先から指示されたラベルの番号を貼る。

MPLSによるラベルを付与するイメージは、以下になります。

過去問(H28秋NW)
問9 MPLSの説明として,適切なものはどれか。
ア IPプロトコルに暗号化や認証などのセキュリティ機能を付加するための規格である。
イ L2FとPPTPを統合して改良したデータリンク層のトンネリングプロトコルである。
ウ PPPデータフレームをIPパケットでカプセル化して,インターネットを通過させるためのトンネリングプロトコルである。
エ ラベルと呼ばれる識別子を挿入することによって,IPアドレスに依存しないルーティングを実現する,ラベルスイッチング方式を用いたパケット転送技術である。






ア:IPsecの説明です。
イ:L2TPの説明です。
ウ:PPPoEの説明です。
エ:正解選択肢です。通信事業者のIP-VPNサービスで活用されているMPLSの説明です。

■H30NW午後1問3
IP-VPNに関する出題でした。下線①はMPLS、下線②の目的は、利用者ごとのトラフィックを区別するため、です。

(i)IP-VPN
 ・IP-VPNは,通信事業者が運営する閉域IPネットワーク(以下,事業者閉域IP網という)を利用者のトラフィック交換に提供するサービスである。
 ・IP-VPNは,①事業者間域IP網内で複数の利用者のトラフィックを中継するのに,RFC 3031で規定された方式が用いられる。
 ・利用者のネットワークと事業者閉域IP網との接続点において,利用者が設置するCE(Customer Edge)ルータから送られたパケットは,通信事業者のPE(Provider Edge)ルータで【 ア:ラベル 】と呼ばれる短い固定長のタグ情報が付与される。
 ・事業者閉域IP網内では,②タグ情報を参照して中継され,【 ア:ラベル 】は対向側の【 イ:CEルータ 】で取り除かれる。

5.トンネリングプロトコル

(1)L2レイヤのトンネリングプロトコル

❶L2TP(Layer2 Tunneling Protocol)
PPTPとL2Fを合わせ、L2TP(Layer2 Tunneling Protocol)として標準化。
L2TPは暗号化機能を持たないため、IPsecで暗号化する。
過去問では、「L2TPは,イーサネットフレームが変換されたPPPフレームをカプセル化してUDPで送受信するプロトコルであり,これとIPsecを組み合わせたものがL2TP over IPsecである。(H25SC秋午後Ⅱ問2)」「PPTPとL2Fが統合された仕様で、PPPをトンネリングする(H22SC春午前2 問16の不正解選択肢より)」と述べられている。
L2TPはLayer2でIPsecはLayer3

❷PPTP(Point to Point Tunneling Protocol)
Microsoftのプロトコルで、WindowsOSで気軽にダイヤルアップによるリモートアクセスができる。
PPPヘッダとGREヘッダをつける。

ダイヤルアップネットワーク接続をイメージしてください。接続先の電話番号を入れ、RASに接続に行きます。IDパスワードで認証をして、接続をします。つまり、PPPです。
一方PPTPは,PPPをブロードバンド環境で行います。接続先としてIPアドレスを入れ、接続先のルータに接続にいきます。IDパスワードで認証、接続します。PPPの拡張と考えればよいでしょう。
・RC4を使った暗号ができるように工夫されているはず。文献によっては、PPTP単体での暗号化機能はないという表現もあり。
・PPPと同様に、ダイヤルアップが基本の使い方であるが、LAN間接続も可能。

ネットワークスペシャリスト試験の過去問では、PPTPに関して以下のように述べられている。この場合のOSは、Microsoft社のOSを指しているであろう。

現在使用しているPCのOSが標準でサポートしているVPNプロトコルのPPTPについて調べてみた。このプロトコルは,PPPパケットにGRE(Generic Routing Encapsulation)ヘッダと呼ばれるヘッダを付けてカプセル化する方式である。(H20NW午後Ⅱ問1より)

 ※要調査であるが、L2レイヤーのプロトコルであるが、IPヘッダを新たにつけているので、L3レイヤーのプロトコルではないかと感じている。

(2)L3レイヤのトンネリングプロトコル

❶IPsec
「特定のアプリケーションの通信だけではなく、あらゆるIPパケットをIP層で暗号化する(H22SC春午前2 問16の不正解選択肢より)」と述べられている。

❷GRE (Generic Routing Encapsulation)
ポート番号の概念がない。
GREに関して、このあと解説

❸IPIP
GREと大きな違いはないと思う。どちらも暗号化されない。IPIPはGREに比べてよりシンプルで、単にIPヘッダを付け替えるだけで、パフォーマンスをあまり落とさずに通信ができる。
 ・GREは[IPヘッダ][GREヘッダ][データ(元のIPヘッダ含む)]
 ・IPIPは[IPヘッダ][データ(元のIPヘッダ含む)]
メーカが気に入っているプロトコルがあり、YAMAHAではIPIPで、CiscoではGRE。

IPパケットをカプセル化する。以下の例をみてみましょう。
ipip3
PC2(192.168.1.102)からPC1にPingを打ったものをWireSharkでキャプチャしました。送信元/宛先IPアドレスのセットが2セットあります。
ipip1

以下がその詳細です。
特徴的なのは、GREではGREのヘッダがあるが、IPIPではIPIP用のヘッダがない。
ipip2

(3)GREとは

ネットワークスペシャリスト試験の過去問では、GREに関して以下の記述がある。

最初に,現在使用しているPCのOSが標準でサポートしているVPNプロトコルのPPTPについて調べてみた。このプロトコルは,PPPパケットにGRE(Generic Routing Encapsulation)ヘッダと呼ばれるヘッダを付けてカプセル化する方式である。GREを使うことによって,(ア)を転送できるので,各種のアプリケーションに対応できる柔軟性をもつ。GREはポート番号情報をもたないので,ルータ経由でインターネットに接続する場合に問題が発生することがある。この問題に対応するためには,(イ)機能をもったルータが必要になる。(H20NW午後Ⅱ問1より)






IPsecだと、OSPFのHelloパケットが送られない。そこで、GREによってHelloパケットのようなブロードキャストパケットを送信できるようにする。
これは、WAN越えでOSPFを動作させるときによく行う設定である。
それを知っている人は即答できたかもしれない。また、知らなくても、ほかの解答があまりないので、書けた人もいるだろう。
(ア)はイーサネットフレーム
(イ)はVPNパススルー(または、PPTPパススルー)

以下の過去問(H28秋NW午後Ⅱ問2)には、GREのパケット形式も含めて記載があります。

〔トンネリング技術の調査〕
ネットワーク層のプロトコルをトンネリングするプロトコルには,GRE (GenericRouting Encapsulation)があり,データリンク層のプロトコルをトンネリングするプロトコルには,L2TP (Layer 2 Tunneling Protocol)がある。
J君が調査した結果, OSPFのリンクスデート情報の交換パケットをGRE又はL2TPでカプセル化すれば,そのパケットはIPsecでカプセル化できるので,インターネットVPNでOSPFを稼働できることが分かった。
そこで. J君はまず,GREを調査した。
GREは,  RFC 1701, RFC 2784で仕様が公開されている。GREは,ネットワーク層のプロトコルのパケットをカプセル化して転送する機能をもつ。 GREでは, IPブロードキャストもIPマルチキャストパケットもカプセル化して転送できる。カプセル化とカプセル化の解除は,  GREトンネリングを行う両端の機器で行われる。IPパケットがGREでカプセル化されたときのパケット形式を,図3に示す。
180417_H28秋NW午後Ⅱ問2_図3
 IPパケットをGREでカプセル化すると,カプセル化された元のパケットの宛先への[ エ:経路 ]情報をインターネットがもたなくても,元のパケットによるエンドツーエンドの通信が可能になる。GRE利用時の通信例を図4に示す。
180417_H28秋NW午後Ⅱ問2_図4
 図3に示したカプセル化によって,図4中の,GREトンネルインタフェースのMTUは,イーサネットインタフェースのMTUよりも24バイト小さくなる。このとき,図4中のPC及びサーバのイーサネットインタフェースのMTUサイズを適切な値に変更することによって,パケットの[ オ:断片化 ]を防げる。
(4)GRE over IPsec

OSPFのHelloパケットをWANで交換するには、GREトンネルが必要になります。
※H30NW午後1問3設問2(1)でも問われました。設問は、「GRE over IPsecを利用する目的」が問われ、正解は、「OSPFのマルチキャストを通すため」です。

しかし、GREは暗号化していません。そこで、IPsecが必要です。
GRE over IPsecのパケット構造は以下です。(上記の過去問より)
ipsec
マルチキャストアドレスは宛先が224.0.0.0~などのアドレスです。

たとえば、OSPFの場合、224.0.0.5というマルチキャストアドレスを使って、同一セグメントの全てのルータへのOSPFのHelloパケットを投げます。

sef1 

ルータのIPアドレスは172.16.1.254などのIPアドレスだと思いますが、それでもいいのですか?
はい、ルータに224から始まるIPアドレスを割り当てる必要はありません。

まとめるとこうなります。OSPFのリンクステートの情報交換はマルチキャストを使います。しかし、IPsecはユニキャストしか通信できず、マルチキャストは使えません。そこでマルチキャストフレームをカプセル化するためにGREを使い、ユニキャストにします。
ネットワークスペシャリストを目指す女性SEあれ?
イメージとしては以下であってますか?
成子の考えと図(以下)
「OSPFのHelloパケットの宛先IPアドレスとして、マルチキャストアドレス(224.0.0.5)が送信されると、IPsecではこのパケットを通過させません。そこで、GREトンネルにより、IPヘッダをカプセル化し、対向のルータのIPアドレスを宛先IPアドレスとしたユニキャストパケットにします。また、対向ルータではGREヘッダを外し、元のマルチキャスト(224.0.0.5)のフレームを相手に届けます。」

これを見ると、L3SWから出したOSPFのHelloパケットを、大阪支店のL3SW2に届けるというようにみえる。でも、OSPFのマルチキャストはTTL=1、つまり同一セグメントでしか送られない。なので、これはありえない。FW1もOSPFをしゃべるルータであり、FWからのOSPFのHelloパケットがFW2に届くようにするために、GREでカプセル化をするんだ。
IPアドレスを振って構成図を書いてみるとよく分かると思う。①のL3SWから出るHelloパケットは、IPsecルータ(FW1)には届く。②のIPsecルータ(FW1)からFW2に届けるHelloは((設定しているかはさておき)トンネルIFとしては)同一セグメントであるから届けなくてはいけない。そのためにGREでカプセル化をする。
gre_over_ipsec

Q. マルチキャストということはいろいろなところにパケットが届けられるんですよね?
マルチキャストをユニキャストに変換するということは、宛先すべての数だけユニキャストパケットを作るということですか?






A. いえ、そんなことはない。上記の図を見てもらっても分かるように、相手のルータに渡すだけなので、パケットの宛先は1つである。宛先のIPアドレスは、GREの設定で明記されている。参考までにGREの設定は以下のサイトもみてほしい。

■参考
GREの設定例 みてもらうとわかるように、2つのNWを接続するという設定です。
GREを構築したところに、新しい専用のLANケーブルを接続したと考えればいいと思う。
www.infraexpert.com

ネットワークスペシャリストを目指す女性SEあれ 

ちなみに、IPsecはトンネルモードですか、トランスポートモードですか?
どちらでもできますが、トランスポートモードが一般的でしょう。
GREでトンネルを張っていますから、さらにIPsecでトンネルモードにすると、無駄にヘッダが増えるだけです。

6.PPP

(1)PPP

女性腕組み・PPP(Point to Point Protocol)という言葉のとおり、点(Point)から点(Point)への通信プロトコルである。ようは、1対1の通信で利用されるプロトコル。
・データリンク層のプロトコルである。つまり、IPアドレスなどには関与しない。
・アナログ電話やISDNでのダイヤルアップで使われたことが、皆さまには馴染み深いかもしれない。
modem

最近のパソコンではあまり見かけないが、このように、RJ11という規格のインターフェースがある。ここに電話線をつなぎ、ダイヤルアップ接続をすることが可能だ。

しかし、今はほとんどがRJ45と呼ばれるLANのインターフェースであり、今後使うことはないかもしれない。

では、設定方法を見てみよう。Windows7のOSを使った設定画面は以下である。
「コントロールパネル」「ネットワークの状態とタスクの表示」「新しい接続またはネットワークのセットアップ」「インターネットに接続します」「ダイヤルアップ」を洗濯します。※再度確認の必要あり
以下のように、ダイヤルアップ接続の画面が出ます。
内容はダミーを入れておりますが、LAN接続とは異なり、電話番号を入れ、ユーザIDとパスワードで認証をします。IPアドレスは、手動で設定することも、自動で付与してもらうことも可能です。ただし、この自動付与はDHCPではありません。
daialup
・過去問ではPPPに関して、「WANを介して二つのノードをダイヤルアップ接続するときに使用されるプロトコルで、リンク制御やエラー処理機能をもつもの(H20秋AP午前-問55)」と述べている。
・ネットワークスペシャリスト試験の過去問では、PPPに関して「リンク確立フェーズの後に認証プロトコルを実行することができる(H20NW午前 問33)」と述べている。ここでいう認証プロトコルはPAP(Password Authentication Protocol)とCHAP(Challenge-Handshake Authentication Protocol)である。
・PAPやCHAPは言葉の通り、パスワード認証プロトコルであり、PAPやCHAPによって、ダイヤルアップにおける認証を行う。
・PPPを拡張したのがEAP(Extensible Authentication Protocol)である。
・イーサネット上でPPPを利用するのがPPPoE(PPP over Ethernet)である。

▼接続構成
ダイヤルアップ接続を受け付ける側は、リモートアクセスサーバという専用サーバを設置し、サーバ群があるLANに接続する。
ppp

▼PPPのフレームフォーマット
項目は以下
・フラグ (1)
・アドレス(1)
・制御(1)
・プロトコル(1 or 2)
・データ(可変)
・FCS(2 or 4)
・フラグ (1)
※かっこの中はバイト数

(2)PAPとCHAP

PAPやCHAPは言葉の通り、パスワード認証プロトコルであり、PAPやCHAPによって、ダイヤルアップにおける認証を行う。

1)PAP(Password Authentication Protocol)
IDとパスワードを平文で流す

2)CHAP(Challenge Handshake Authentication Protocol)
・メッセージダイジェストを使うので、パスワードが暗号化して流れる。
・過去問ではCHAPの説明として、「PPPのリンク確立後、一定の周期でチャレンジメッセージを送信することによってユーザ認証を繰り返すプロトコルである(H17NW午前 問29)」と述べている。

(3)PPPoE

イーサネット(Ethernet)上のPPPだからPPPoE(PPP over Ethernet)です。。ATM上のPPPも存在し、PPPoAと言います。従来のインターネット接続はPPPによるダイヤルアップ接続でした。PPPであれば、ユーザ認証ができるし、どれだけ接続したかの管理(課金管理)も可能です。ところがADSLやBフレッツのように、LAN(イーサネット)で接続する場合は、ユーザ認証ができません。
女性目閉じる 

たしかにそうですね。
HUBにつなげば誰でもLANを利用が使えますから、それと同じ理屈ですね。
そこで、ユーザ認証機能を持つPPPの仕組みを、イーサネット上でり利用するために、PPPoEが使われるようになりました。
 過去問では、PPPoEに関して、「シリアル回線で使用するデータリンクのコネクション確立やデータ転送を、LAN上で実現するプロトコル(H31春SC午前2問19)(H19NW午前問 37)」と説明しています。
以下の図を見てください。
まず、Bフレッツなどのインターネットの物理的な接続構成は以下のようになっています。
jpg3
パソコンはルータやONUを経由してNTTなどのキャリアの光回線に接続されます。キャリアでは、BAS(Broadband Access Server)というPPoEを受信する装置があります。PPPのときのRAS(リモートアクセスサーバ)と同じです。そこから、ISP(プロバイダ)に接続されます。
認証の流れは以下のようになっています。
PCは通信キャリアのBASにてPPPoE接続をします。PPPoEの設定で入力した「ユーザ名@プロバイダ名」(samon@isp-1.xxx)とパスワードを送信します。NTTのように、ISPのプロバイダが選べる通信キャリアの場合は、BASにて@以降のプロバイダ名を見て、プロバイダに認証を転送します。このときのプロトコルはRadiusです。ここで認証が許可されると、インターネットにプロバイダ経由で接続されます。
pppoe2

PPPoEの処理は、PPPoEサーバであるBASとPPPoEクライアントソフトで実現します。最近のOSには、PPPoEのソフトが入っていますので、ソフトを使っている感覚は少ないかもしれません。以前の古いOSでは、フレッツ接続ツールなどの、PPPoE接続用のソフトを別途インストールしていました。
IPアドレスは、固定で割り当てることおm、自動で取得することも可能です。ただし、この自動付与の仕組みはDHCPとは異なります。

・通常のフレーム
[宛先MAC(6)][送信元MAC(6)][タイプ(2)][  データ(最大1500)  ][FCS(4)]
※タイプフィールドにはIPを示す0x0800が入る。

・PPPoEのフレーム
[宛先MAC(6)][送信元MAC(6)][タイプ(2)][PPPoEヘッダ(6)][PPPヘッダ(2)][  データ(最大1492)  ][FCS(4)]
※タイプフィールドにはPPPoEを示す8863か8864が入る。
※PPPoE用のヘッダが入ることからMTUは1500-8=1492になる。

▼PPPoEヘッダのフォーマット
・バージョン(4bit)
・タイプ(4bit)
・コード(8bit)
・セッションID(16bit)
・長さ(16bit)

■参考 PPPoEサーバの構築
Linusサーバでもできるが、IFが複数あった方が実環境に近くなるので、Ciscoルータで作成する方がいい。以下が手順の例。
PPPoEサーバ - Ciscoコンフィグ設定
C841MでPPPoEサーバを構築してみた | ワイズリマインダー

(4)インターネットに接続してみよう

では、インターネットに接続してみましょう。
自宅からフレッツ光とプロバイダの契約をし、インターネット接続を行います。
ブロードバンドルータを使うことがほとんどであるが、今回はパソコンから直接インターネットに接続をします。

Windows8の場合は以下です。「ネットワーク」を右クリックの「プロパティ」「新しい接続またはネットワークのセットアップ」「インターネットに接続します」
ここで、「ブロードバンド(PPPoE)」を選択します。
pppoe
プロバイダの情報を入力します
pppoe2
これで、「接続」ボタンを押して接続です。
IPアドレスやDNSなどのネットワーク設定は、自動で割り振られます。
以下のように、自分で設定することも可能です。(通常のLANのIPアドレス設定画面とは若干違います)
pppoe3
このように、今ではPPPoE接続によるインターネットがほとんどです。
sef4

PPPoEなんて広く使われているんですか? インターネットは会社のネットワークに接続すればできますから、PPPoEは不要です。また、友達の家のインターネットは、回線業者から送られてきたルータに接続すると、インターネットができます。
たしかに、パソコンの設定でPPPoEを使うことはほぼないでしょう。でも、ほとんどの企業では、インターネットに接続するルータやFWにてPPPoEの設定をしています。
※専用線接続により、PPPoEを使わない場合もあるが、例としては少ない。
また、回線業者から送付されてきたルータとのことですが、恐らくPPPoEの設定がされているはずです。
pppoe
PPPoEを理解する前に、その基本となる技術のPPPから理解しましょう。

7.WAN高速化装置

▼WAN高速化装置の仕組み
ネットワークスペシャリスト試験の過去問(H26NW午後1問1)には次の記載があります。

N君は, PCとFS間でのWASによるデータの高速化処理について調査した。調査の結果, WAS間では,データ圧縮機能による通信データ量の削減だけでなく,④データの送信元に対して代理応答を行ってデータをキャッシュに蓄積した後に、もう一方のWAS宛てに一括してデータを送信することによって,高速化を図っていることが分かった。

設問3(2)本文中の下線④の処理の効果がより高くなるのは,本部と支部間の通信の特性がどのような場合か。20字以内で具体的に述べよ。

WASとは、「WAN高速化装置」です。WASが何の略称かは問題文に記載されていませんが、WAN Acceleration Systemのことでしょう。

具体的には次の3つの機能です。
①(対向機器の)代理応答
  サーバーとクライアント間のやりとりであるACK(確認応答)を、対向機器に代わってWASが代行します。こうすることで、ACKの遅延の影響を削減します。
②キャッシュ蓄積
 WASのメモリやハードディスクにデータを一時保存することで、2回目以降のアクセス時の遅延を削減します。データを送る時間だけでなく、本来やりとりされるWANを越えるACK受信の待ち時間も削減されます。
③データ圧縮機能
  WASがデータを圧縮することで、高速な通信を実現します。






さて、設問の解答は以下です。
解答:
・ラウンドトリップ時間が大きい場合

 ラウンドトリップ時間に関して過去問(H22NW午後1問1)では、「ラウンドトリップ時間とは、TCPのコネクションにおけるパケットの往復時間である」と述べられています。行って帰ってくるという一周(Round)するときの旅行(Trip)というイメージで理解すればいいでしょう。
また、同じ過去問には、「帯域幅を広げれば、応答性能は向上し続けると思われがちであるが、TCPの通信プロトコル上、実効転送速度は、”ウインドウサイズ÷ラウンドトリップ時間”に抑えられる」とあります。
細かい説明はここでは割愛しますが、ようは、「いくら帯域幅を広げたり圧縮したりしても、ラウンドトリップ時間が重要だ」ということです。

▼WAN高速化装置の障害時の仕組み
ネットワークスペシャリスト試験の過去問(H20NW午後1問3)には、次の記載があります。
ここから、WAN高速化装置の配置の一例と、障害時の仕組みを知ることができます。

〔WAN高速化装置の導入〕
WAN高速化装置の接続方式は,図3に示すように,本社及び各営業所のLANと広域イーサ網の間に設置し,対向して動作するという方式である。この装置の故障時にも通信を継続するには,WAN高速化装置にはある機能が必要である。K君は,その機能を搭載した機種を選定し,ベンダから借用して,擬似的な故障を起こさせるために電源をオフにし,実際に動作を見てその機能を確認した。J氏は, K君の確認結果の報告を受け,WAN高速化装置の導入とファイルサーバの集約を順次進めた。
ネットワークスペシャリストwan高速化装置

設問4 [WAN高速化装置の導入〕について,WAN高速化装置が故障しても通信を継続するために必要な機能を二つ挙げ,それぞれ25字以内で具体的に述べよ。






正解は以下です。
・自動的にケーブル接続と同じ状態になる機能
・対向側の故障を検知し,通信を継続する機能

上はバイパス機能(フェールオープン)と考えていいでしょう。
下に関して補足します。WAN高速化装置は、2台が連携して機能します。なので、相手が故障していた場合には、WAN高速化の技術を停止させるべきです。そのことを言っています。

8.その他の用語や技術

(1)単位について

ネットワークの速度として、100Mbpsや1Gbpsなどの表記を使いましたが、これらの言葉について簡単に解説します。 

(1)ビットとバイト
 ビット(bit)とは、データの最小の単位のことで、1ビットで0か1のどちらかを表現できます。また、2ビットであれば、00、01、10、11の4種類の値を表現できます。バイト(byte)という単位ですが、8ビットをまとめて1バイトといいます。鉛筆12本を1ダースと言うようなものです。たとえば、1000バイト=8000ビットになります。 また、バイトの代わりに、8を意味するオクテットを使う場合もあります。

では、問題です。

以下の単位はビットとバイトのどちらでしょうか?
①PC上の200K(キロ)のファイルの単位は、200Kビット?200Kバイト?
②100M(メガ)のLANは100Mビット?100Mバイト?






実際に設定をみてみましょう。
file
ファイルはバイトです。

nic
LANはビットです。

(2)キロ、メガ、ギガ
 我々も日常的に使う単位に、K(キロ)、M(メガ)、G(ギガ)があります。Kは1,000倍(正確には2の10乗(=1024)倍)、Mは1,0000,000倍(正確には2の20乗)倍、Gは1,000,0000,000倍(正確には2の30乗)倍です。 たとえば、1Gバイト=1000Mバイト=1000000Kバイトになります。 さらに大きな単位として、ギガの1000倍のT(テラ)や、テラの1000倍のP(ペタ)などが続きます。

(3)bps
 bps(bits per second)は、通信速度を表す際に使われる単位です。そのフルスペルにあるように、1秒(second)ごと(per)に、どれだけのビット数(bits)を伝送できるかという意味です。つまり、1秒間の伝送量をビットで表したものがbpsという単位です。

(2)SD-WAN

1)SD-WANとは
SD-WANに関しては、H30NW午後Ⅰ問1ではじめて出題されました。とはいえ、SD-WANに踏み込んだ内容は問われませんでした。
SD-WAN(Software Defined WAN)を直訳すると「ソフトウェアで定義されたWAN」です。ただ、SD-WANは「概念」であり、メーカ各社によって実装できる機能が異なります。SD-WANの定義をあまり厳密に考えず、「物理的な制約にとらわれずに、ソフトウェアで実現するWANの仮想化技術」くらいにイメージしておいてください。多少乱暴ですが、SDN(Software Defined Network)をWANに応用したものと考えてもいいでしょう。
SDNは、ソフトウェアで定義することで、自由な設計を可能にしました。SD-WANも同様で、Office365の通信だけ違う回線から接続するとか、トラフィック量をみながら回線を負荷分散することができます。

2)過去問でのSD-WAN
この過去問にあるように、SD-WANコントローラとSD-WANルータで構成される。内容はネットワークスペシャリスト試験でよくでるSDNの考えと同じである。

(1)SD-WANルータの概要
 今回使用する予定のSD-WANルータは,SDN(Software-Defined Network)によって制御されるIPsecルータである。SDNは,利用者の通信トラフィックを転送するデータプレーンと,通信装置を集中制御する【 エ:コントロール 】プレーンから構成されており,【 エ:コントロール 】プレーンのソフトウェアでデータ転送を制御する方式である。
 F社が導入するSD-WANルータの仕様を次に示す。
・SD-WANルータの設定は,SD-WANコントローラによって集中制御される。

3)実際の設定
現在のSD-WANは少し言葉が先行しているように感じる。実際には以下にあるように既存のルーティングやポリシーでできる部分が多い。
以下はインターネットブレークアウト(ローカルブレークアウト)の例である。
www.fortinet.com

office365などは莫大なセッションを張るため、ルータのセッション数の上限に達してしまったりする。そこで、拠点からインターネットに接続するときは、本社を経由せずに直接インターネット経由でOffice365に接続するのだ。
または、このあと解説するマルチホーミングも、SD-WANで実現する機能の1つであろう。

(3)マルチホーミング

ネットワークスペシャリスト試験などの情報処理技術者試験の過去問では、マルチホーミングのことを「インターネット接続において、回線冗長化構成を示す用語(H16NW午前 問37)」「インターネット接続において,複数のISPの回線を使用した冗長化構成を表す用語(H31春AP問32)」「二つのISPサービス(ISPl,  ISP2)を同時に利用するマルチホーミング(H28秋NWPM2-1)」と述べている。

マルチホーミングに関して、WANを冗長化する方法は、負荷分散装置を使う場合と、DNSラウンドロビンを使う方法があります。
過去問では、内部からインターネットの場合は負荷分散装置によって振り分ける事例が記載されています。
負荷分散装置が、PCからの通信を振り分けるのです。
逆にインターネットから内部の場合(たとえば、公開Webサーバに不特定多数の人がアクセスする),過去問では,DNSラウンドロビン+負荷分散装置にて振り分ける事例が記載されています。これは,サーバの前に負荷分散装置を置いたとしても(つまり,PC→ISP→負荷分散装置→Webサーバ),負荷分散装置でWebサーバを負荷分散できてもISPは負荷分散できません。そこで,DNSラウンドロビンが必要になります。

また,H21NW午前2問6では,マルチホーミングの構成図が記載されている。
maruti
この問題は,「図のようなルータ1とルータ2及び負荷分散装置を使ったマルチホーミングが可能な構成において,クライアントから接続先サーバ宛てのパケットに対する負荷分散装置の処理として,適切なものはどれか」であり,正解は「あて先IPアドレスはそのままで,宛先MACアドレスをルータ1又はルータ2のMACアドレスに置き換える」

WANからの内部への通信をマルチホーミングさせる方法については,過去問(H28秋NW午後Ⅱ問1)にて具体的な事案があります。

〔マルチホーミング〕
 B君は,二つのISPサービス(ISP1,ISP2)を同時に利用するマルチホーミングの構成を考えた。この構成では,  A社が負荷分散の仕組みを用意する必要がある。調査したところ,マルチホーミング用の負荷分散装置(以下,LBという)があり,この装置は,負荷分散機能の他に,DNS機能,NAT機能をもつことが分かった。
 B君はLBを利用した新たなネットワーク構成を考えた。
 A社の新ネットワーク構成を図3に,図3中のスイッチに定義されたLANの新IPアドレス空間を表2に,それぞれ示す。
H28秋NW午後2_問1図3
表2は割愛

LBを使ったマルチホーミングの概要を次に示す。
・インターネット向けのDNS機能をFWからLBへ移し,ISP2を経由してもそのDNS機能を提供できるように,ドメイン登録業者に定義の追加を依頼する。その際,ISP1,ISP2のいずれからでも同じゾーンファイルが参照されるようにする。
・LBのDNSラウンドロビン機能を使い,インターネットからA社内への通信の負荷分散を行う。(c)現行のWebサーバ用のグローバルIPアドレスに,新たなグローバルIPアドレスを加え,DNSクエリに対してそれらが交互に返るようにする。
・A社内からインターネットへの通信は,ISP1とISP2への接続ポートに対して負荷分散を行う。その際,ISPへ送信するIPパケットの送信元IPアドレスは,送信先のISPから貸与されたグローバルIPアドレスに変換されるので,FWのNAT機能をLBへ移して一元化する。
(d)LBは,通信の行きと戻りを同じISP経由にする。
・ LBからISP1のルータ及びISP2のルータヘそれぞれ定期的にping確認を行いISPの障害を検知した場合には,正常なISPだけを利用する。
(4)SIM(Subscriber Identity Module)とAPN

携帯電話にて、個別の番号を識別するもの。もともとヨーロッパにおいて、国間を移動するときに、カードを差し替えて利用できるようにしたものとか(ITホワイトボックスで見た)。
なのでSIMには、国番号も記録されている。
国番号-事業者番号-個別IDが基本的な構成。
3G携帯では、DocomoやSoftbankのW-CDMA方式とAUの方式では違うため、SIMも別であるから、SIMロック解除しても相互利用はできない。一方、LTEは方式が整うため、国の方針であるSIMロック解除がされれば、どの機種でもとりあえずは動くはずだ。

さて、過去問(H28秋NW午後Ⅰ問1)を見てみましょう。

〔LTE回線を用いたインターネット接続の検討〕
モバイルWi-Fiルータには,通信事業者が契約者を識別する情報が記録されている[ ウ:SIMカード ]が挿入されている。モバイルWi-Fiルータには,利用者IDやパスワードといった認証情報に加えて,LTE回線からインターネットのようなネットワークへのゲートウェイの指定を意味する,[ エ:APN ]の情報を設定する。
モバイルWi-Fiルータは,電源投入時に自動的にインターネット接続を開始し,グローバルIPアドレスが割り当てられる。タブレット端末がインターネット上のサーバと通信を行う際に,モバイルWi-Fiルータでは[ オ:NAPT ]によるIPアドレスとポ-ト番号の変換処理が行われる。

少し補足します。
LTEなどのモバイル接続において,契約者の識別に使うものは、SIM(subscriber identity module;加入者識別モジュール)カードです。ICカードを小さく切り取った形状です。モバイルWi-Fiルータやスマートフォンなどの機器に挿入して使います。

また、モバイルWi-Fiルータに設定する,ゲートウェイの設定項目の名称は、APN(Access Point Name;アクセスポイント名)です。一般的には接続先プロバイダのドメイン名を含む名称です。
以下はIIJの場合のAPNです。
https://www.iijmio.jp/service/manual/hdd/
ここにあるように、APNとして「iijmio.jp」を設定します。

以下は、モバイルWiFiルータにおける、APNの設定画面です。
P1080573

(5)WiMAX(Worldwide Interoperability for Microwave Access)

・過去問ではWiMAXに関して、「広帯域無線アクセス技術の一つで、最大半径50kmの広範囲において最大75Mビット/秒の通信が可能であり、周波数帯域幅を1.25~20MHz使用するという特徴をもつ(H21春AP午前-問35)」と述べている。
・無線LANはせいぜい100m程度であるが、WiMAXは最大半径50kmというとんでもない距離をカバーする。また、無線LANは基本は屋内であるが、屋外での長距離利用という点で画期的である。よって、WiMAXはADSLや光ファイバーが届かないラストワンマイルのエリアに向いている。
・KDDI系のUQコミュニケーションがサービスを提供している。WiMAXの事業者は、電波を利用するので誰でもがなれるわけではない。競争の結果、KDDI系とウィルコムの2社に権利が与えられたが、ウィルコムは経営が行き詰まり、実質UQだけ。
・速度は魅力であるが、エリアのカバー率が悪く、同様の無線サービスとしてはイーモバイルには大きく水をあけられている。技術的には次世代とのつなぎ技術である。WiMAXで全国どこでもというサービスを提供するのではなく、世間で言われるように「ラストワンマイル」向けに活用されるのが良いかもしれない。
・IEEE802.16
・WiMAXも3.9Gの規格としてITUに認定された。

(6)ISDN(Integrated Services Digital Network)

・ 過去問では、ISDNのチャンネル種別に出題があるので、以下で整理する。

過去問(H18NW午前)
問43 ISDNのチャネル種別に関する記述のうち、適切なものはどれか。
ア 一次群速度インタフェース(23B+D)のBチャネルは、チャネル速度64kビット/秒で、ユーザ情報の転送だけに用いる。
イ 一次群速度インタフェース(23B+D)のDチャネルは、チャネル速度16kビット/秒で、ユーザ情報と呼制御用信号の転送に用いる。
ウ 基本インタフェース(2B+D)のBチャネルは、チャネル速度64kビット/秒で、呼制御用信号の転送だけに用いる。
エ 基本インタフェース(2B+D)のDチャネルは、チャネル速度16kビット/秒で、ユーザ情報の転送だけに用いる。

・ファントム給電:ISDN回線は、通常の電話回線と同様に給電している。よって、停電時でも通話ができる。この給電をファントム給電といい、420mVである。
ただ、DSUの電源が落ちていると駄目だと思う。

(7)フレームリレー(FR:Frame Relay)

・過去問では、フレームリレーに関する説明として、「セルリレーの論理多重機能と同様に、1本の物理回線上で複数の相手との通信が可能である。(H19NW午前問 42)」と述べている。
・過去問では、DLCIの説明として、「フレームリレーにおける論理経路の識別子を示すもの(H16NW午前問 34)」と述べている。
・DLCI、CIRなどのキーワードがある。
・FRに関して書き出すとかなりの量になるが、今後は出題されないと思うので、あまり書くつもりはない。

(8)オーバーレイネットワーク(overlay network)

ネットワークスペシャリスト試験の過去問ではオーバーレイネットワークのことを
「ピアツーピアを実現する場合ように、既存のIPネットワーク上に目的に合わせて構築する仮装ネットワーク(H20NW午前 問6)」と述べている。

物理的なネットワーク以外に、P2Pでファイル共有するための仮想ネットワーク空間をつくることや、SoftEtherによるVPN、CDNなどもそれに該当するであろう。概念なので、明確な線引きは無いと考える。

(9)イントラネット・エクストラネット

イントラネット(Intranet)は社内ネットワークのことで、エクストラネット(Extranet)は企業をまたいだネットワークです。ECやEDIなどがその代表例です。企業間の接続にはVPNやSSLによる暗号化通信がよく利用されます。
①EC(Electronic Commerce:電子商取引)
 ECには、企業(Business)間での電子取引であるB to Bや、企業と消費者(Customer)の商取引であるB to Cがあります。最近ではオークションサイトでの取引など,消費者間での取引(C to C)も増えています。
②EDI
 EDI(Electronic Data Interchange:電子データ交換)に関して過去問(H28春AP午前問72)には「ネットワークを介して,商取引のためのデータをコンピュータ(端末を含む)間で標準的な規約に基づいて交換すること」と述べられています。

(10)アナログ電話、ISDN、ADSLの仕組みについて

・どれも同じ2Wの電話線(銅線)を利用する。
・電気信号を送受信してデータを流す。
・アナログ電話の場合、アナログで電気信号を送受信する。
つまり、1V 2V 3Vと電圧を変化させるとそのまま1V 2V 3Vとして受け取る。
・ISDNやADSLの場合、デジタル信号として送受信するので、5V以上は1、それ以外は0などと取り決めがあって、その変化をつかって010111というデジタル信号を送る。
・アナログもデジタルも利用している線も仕組みも基本的には一緒だが、上記の点が異なる。
・アナログは4kHzまで、ISDNは320kHzまで、ADSLはかなりの高周波数まで利用する。が、ISDNとADSLの周波数帯が一部重複するので、ノイズが発生する。

◆参考情報
f(周波数)=v(速度)÷λ(波長)

アナログ電話線を使った全二重通信

AさんとBさんが縄を持ってます。両方から波を送れますか?
送れますよね。周波数(波長)を変えれば、干渉せずに両方から送れますね。
それと一緒で、アナログ電話線を使って、全二重通信はできます。
ただ、周波数(波長)が同じであれば、干渉します。きちんと伝えられません。

・アナログ電話
上りと下りで分けるほどの周波数帯が無いので、そのまま送受信してます。当然干渉します。でも、自分が送ったデータをマイナスして受信するので、相手の声もきちんと伝わります。

・ISDN
ピンポン伝送しています。卓球のピンポンと同様に、交互に送信ですね。
TCM(Time Compression Multiplexing)とも言うそうですがTDMですね。

・ADSL
上りと下りの周波数を分けているので、干渉しないですね。

・LAN
物理的な線を分けてます。12が送信36が受信です。SDM(空間分割多重)ですね。

HTTP(HyperText Transfer Protocol)

1.HTTP(HyperText Transfer Protocol)とは

❶WWWとWeb
webの英単語そのものの意味は「クモの巣」である。
WWW(World Wide Web)は世界中に張りめぐらされたクモの巣のようなネットワークである。WWWは仕組みや概念を表すものである。WWWサーバやWWWクライアント(主にブラウザ)、URLを利用することで、HTMLというと統一したフォーマットにて簡単に情報の発信と閲覧ができるようにする仕組みである。

❷HTTPとは
HTTP(HyperText Transfer Protocol)とは,インターネットの基本となるプロトコルです。Yahoo!などのWebサイトを閲覧する場合は、このHTTPというプロトコルが利用されます。
Web閲覧はHTTPと考えればいいのですが、URLを入力するときに、http://~ で始めることから、なじみ深いことでしょう。

HTTP(HyperText)の意味ですが、通常のテキスト文書よりすごい(super)だけでなく、とびぬけてすごいという意味のハイパー(Hyper)です。
基本的にはHTML(Hyper Text Markup Language)という言語でWebサーバのコンテンツは作られますが、確かにリンクや画像や動画なども記載できるので、ハイパーな言語であるとも感じます。

❸HTTPのバージョン
HTTPプロトコルにはいくつかのバージョンがあります。
主流はいまだにHTTP/1.1ですが、HTTP/2が2015年、HTTP/3が2018年にRFCとして文書化されています。

2と3については追々書くとして、http/1.0と1.1について。
http/1.0は一つのTCPコネクション(=3wayハンドシェーク)にて、1つのHTTP Requestしか送れません。
通常、Webページには複数の画像などもあるため、たくさんのRequestを送ります。その都度TCPコネクションをはるのは無駄です。
そこで、HTTP/1.1では、1つのTCPコネクションで複数のHTTP Requestが送れるようになりました。

❹HTTPSとは
https(HTTP over SSL/TLS)とは、そのフルスペルの通り、HTTPをSSLやTLSを使うことで、暗号化して安全に通信を行うことです。
最近ではGoogle検索もhttpsによる暗号化通信になりました。
オンラインバンキング使うと、https://~で始まるURLが表示され、バーの部分が緑色になったりします。また、証明書の確認もできます。
※以下は三菱東京UFJ銀行のオンラインバンキングのサイトを開いた画面です。
UFJ

❺【参考】HTTPのプロセス
HTTPの通信をパケットキャプチャしてみると、以下のような流れがわかる。
1)Client→Server GET /index.html HTTP/1.1 ←1.1はHTTPのバージョン。旧バージョンは1.0
2)Client←Server HTTP/1.1 200 Document follows ← 応答コード200(OK)
3)Client←Server HTMLデータ
2


あれ?
3way-handshakeは無いのですか?
いや。あるよ。厳密には、上記の1)~3)の前後にも、TCP/IPのオーバーヘッドが間に入る。
X)Client→Server 3way-handshake SYN
X)Client←Server 3way-handshake SYN,ACK
X)Client→Server 3way-handshake ACK
1)Client→Server GET /index.html HTTP/1.1
2)Client←Server HTTP/1.1 200 Document follows
X)Client→Server ACK
3)Client←Server HTMLデータ

2.httpのリクエストとレスポンス

(1)HTTPのリクエストとレスポンス

以下の図で考えます。PCのブラウザから、http://nw.seeeko.comというサイトを閲覧したとします。このとき、Webサーバに対して、「ページを表示してください」とお願いするのがHTTPリクエストです。それに対して、WebサーバからPCのブラウザに対し、実際のページの情報(文字や画像、動画など)を返すのが、HTTPレスポンスです。

過去問(H25SC秋午後Ⅱ問1)にリクエストとレスポンスの具体例があるので掲載する。
見てもらうと分かるが、リクエストはGETなどで情報を取得に行く。
レスポンスは、「200 OK」などの、HTTPのステータスコードからはじまる。

❶リクエスト

GET /javarhino/ HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg,
image/pjpeg, application/×-shockwave-flash., */*
Accept-Language: ja
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.1; SVl)
Host: D.D.D.D
Connection: Keep-Alive

※後述しますが、1行目はHTTPリクエスト行です。HTTPリクエスト行には、GETやPOSTなどのメソッドが記載されます。また、/javarhino/はURLのパスになります。HOSTは接続先(Webサーバ)のIPアドレスです。本来は、IPアドレス:ポート番号の表記ですが、80の場合は省略されます。

❷レスポンス

HTTP/1.1 200 OK
Content-Type: text/html
Connection: Keep-Alive
Server: Apache
Content-Length: 12e
<html><head></head><body><appletarchiveR"exploit.jar"
code="exploit.class" width="1" height="1"></applet></body></html>
(2)実際のパケットを見てみましょう。

図で書いたようなhttp://nw.seeeko.comのサイトにアクセスした場合のリクエストとレスポンスです。
①HTTPリクエスト
GETの記載が確認できることでしょう。
HTTPリクエスト
②HTTPレスポンス
200 OKが見えることでしょう。
HTTPレスポンス

(3)Apacheのログ

参考として、Apacheのログを見てみましょう(正しくはProxyサーバのログ)。H30秋SC午後Ⅱ問2の記述です。

4:[04/Sep/2018:14:31:15+0900] "GET http://yyyy/dl/samplebun.zip HTTP/1.1" 200 89331

  "http://zzzz/2018/ne/bunrei.html" "▲▲"|

注記2 プロキシサーバが取得したログのうち,日時,リクエストのメソッド,リクエストのURL,リクエストのプロトコルとバージョン,要求元PCに送信したレスポンスのHTTPステータスコード,要求元PCに送信したレスポンスメッセージのサイズ,リクエストのRefererヘッダの値,及びリクエストのUser
Agentヘッダの値を示す。

 注記2に記載がありますが、補足します。
①日時:+0900は、世界の標準時刻GMT(実際にはUTC)と9時間のズレがあることを意味します。
②リクエストのメソッド:正確に説明すると長くなりますが、GETメソッドはデータを取得、POSTはデータを送信と考えてください。
③リクエストのURL:接続するURLです。
④リクエストのプロトコルとバージョン:HTTP/1.1はHTTPのバージョンです。HTTP2.0もありますが、最も普及しているのが1.1のバージョンです。
⑤要求元PCに送信したレスポンスのHTTPステーテスコード:HTTPのステータスコードで、200は通信が成功したことを意味します。
⑥要求元PCに送信したレスポンスメッセージのサイズ:データのバイト数です。今回の通信は89331バイトであることがわかります。
⑦リクエストのRefererヘッダの値:""の中のURLはリファラなので、アクセス元のURLが記載されます。直接アクセスした場合は、-の表記がされます。
⑧リクエストのUser-Agentヘッダの値:注記5にも記載があるユーザエージェントで、PCのOSやブラウザの情報が記載されます。PCごとに異なる情報が記載されます。

(4)HTTPリクエストやレスポンスの構成

では、このHTTPリクエストやレスポンスの構成はどうなっているでしょうか。分かりやすいHTTPレスポンスを例に記載します。
HTTP
このように、HTTPレスポンス行(またはHTTPリクエスト行)、HTTPヘッダ、1行の空白を空けてHTTPメッセージボディの3つの部分で構成されます。HTTPメッセージボディは、実際のHTMLファイルが入っています。
HTTPリクエスト行には、GETやPOSTなどのメソッドが記載されます。HTTPレスポンス行には、200OKなどのステータスコードが記載されます。
実際のパケットの例は以下です。
pcap

みなさんも時間があればみてほしい

(5)User-Agent

HTTPリクエストヘッダにはUser-Agentというフィールドががあります。これはブラウザのバージョンなどの情報が記載されていて、OSもわかります。このフィールドを見れば、接続した端末がPCなのかスマホ(たとえばiPhone)なのかがわかり、Webサーバ側でそれに基づいて最適なページを表示することができます。
Burp Suiteで、User-Agentを変えてみるといいだろう。→やってみると、意外に楽しい。

curlコマンド(Windowsでもたたける)に、-A, –user-agentでユーザエージェントを指定できる。たとえば、以下
curl -A "user1" http://xxxx

C&Cサーバなどでは、マルウェアに仕込んだUser-Agentでしか応答しないようになっている。これにより、調査目的でアクセスがあっても、悪意がある行動がばれない。

ではここで、情報処理安全確保支援士の試験の過去問(R1秋SC午後2問2)をみてみよう。

2.社内から社外への通信を中継するプロキシサーバに記録されたログから, PC-Sが,正体不明の宛先(以下,サイトUという)に,①User-Agentヘッダフィールドの値が"curl/7.64.0"のHTTPリクエストを繰り返し送信していることが確認された。

設問1(1)図3中の下線①について,ログに記録されたUser-Agentヘッダフイールドの値からはマルウェアによる通信であると判定するのが難しいケースがある。それはどのようなケースか。 50字以内で述べよ。






この問題にあるように、User-Agentヘッダフイールドの値は、ブラウザによって変化する。マルウェア(おそらくexeファイル)がC&Cサーバに通信する場合、exeファイルはブラウザではないので、特有なUser-Agentになることだろう。しかし、この会社と同じUser-Agentを使えば、Proxyサーバのログにて、User-Agentによって、マルウェアであることを判断するのは難しくなる。

解答例:User-Agentヘッダフイールドの値がA社で利用しているWebブラウザを示す値であるケース 

3.HTTPのステータスコード

ステータスコードは、HTTPサーバからの返信であるHTTPレスポンスに含まれる3桁の数字です。
このレスポンスコードを見ると、処理結果が分かります。
また、HTTPのステータスコードは、RFCで規定されている。

コード 意味
100番台 処理中  
200番台 正常終了 200 OK(正常終了)
300番台 さらに追加の処理が要求される状態 301 MOVED PREMANENTLY:恒久的なリダイレクト
302 Found (一時的な)リダイレクト
※301はPREMANENTLY(永遠に)とあるように、ドメイン移行などにより恒久的な転送の場合に使います。一方の302(302 Found)は、サーバの一時的な負荷上昇などによるリダイレクトの場合に使います。
400番台 クライアント側エラー 401 Unauthorized(認証に失敗)
404 Not Found(指定されたページが無い)
500番台 サーバ側エラー 503 Service Unavailable(サービス利用不可)

※CGIのスクリプトがエラーになるなど

過去問(H25SC秋午後Ⅱ問1)を見てみよう。

過去問(H25SC秋午後Ⅱ問1)
・IPアドレスC.C.C.Cに対して,MさんのPCは次の2種類のリクエストだけを送信していた。
 ―http://C.C.C.C/config.binへのGETリクエスト(9月26日12:28)
 ―http://C.C.C.C/gate.phpへのPOSTリクエスト(9月26日12:28以降,5分おき)
・上記のURL,及びIPアドレスC.C.C.Cの80番ポートに④ブラウザでアクセスを試行してみたところ,当該サーバは稼働していないようであった。

設問2(3) 図7中の[ a ]に入れる適切な数字を答えよ。また,図7中の下線④について,ブラウザでアクセスを試行した際の最も適切なレスポンスを解答群から選び,記号で答えよ。

解答群
 ア 204 No Content 
 イ 404 Not Found
 ウ 503 Service Unavailable 
 エ レスポンスなし






ネットワークスペシャリストを目指す女性SEえっとー 

結構迷いますね~
そうだね。正解は、エである。
サーバが稼働していないということは、応答メッセージを返すことができない。
利用者には「このページは表示できません」と、クライアントのブラウザが表示することになる。

■リダイレクト
また、リダイレクトに関しても、よく出題されるので覚えておきましょう。
リダイレクトとは,「(方向を)変える」という意味です。HTTPヘッダを見てください。

HTTPレスポンス

HTTP/1.1 302 Found
(中略)
Location: http://www.example.com/

HTTPステータスコードの「302 Found」はリダイレクトを意味します。
そして、Locationヘッダで指定されたURIに(方向を変えて=リダイレクトして)アクセスします。この仕組みにより,WEBサーバにアクセスすると,自動的に別のサーバの転送します。WebサイトのURLが変更した場合や、ネットワークスペシャリスト試験で問われるような、SSOにおいて、認証サーバに自動転送する際などに利用されます。

4.HTTPのメソッド

(1)メソッドについて

・HTTP1.1はRFC2616で規程され、Webを閲覧するためのGET、掲示板への書き込みのためのPOSTなど、合計8つのメソッドがある。
・メソッドは「OPTIONS」「GET」「HEAD」「POST」「PUT」「DELETE」「TRACE」「CONNECT」がある。
・GETは受信は文字通り「取得する」から、Webサーバから、コンテンツを取得します。Web閲覧がこれに値します。逆にWebサーバに送信するのがPUT。これとは別にPOSTというのがあり、過去問で問われています。
では、POSTとは何でしょう。
Webアプリケーションを作られた方は、METHOD="GET" あるいはPOSTなどの記載をされたこともあるでしょう。GETでもPOSTでも、どちらもできることはほぼ同じです。

(2)GETとPOSTの違い

1



なぜ2つあるのですか?
HTTPの昔のバージョン(HTTP/0.9)には、GETしかなかったとのことですよね。だったらGETだけで十分では?
それは、GETでは文字数制限などの問題があります。
POSTはその問題を改良したのです。
なので、掲示板にデータを書き込むなどの処理には、GETではなくPOSTがよく使われます。
違いとしてよく話をされるのは2つでしょう。

❶送信方法
 GETはURLに引数を記載します。
例えば、http://xxx.seeeko.com/index.asp?id=aaa
一方、POSTはURLに引数を記載せず、HTTPのデータの中に記載します。なのでURLは以下のようになる。
http://xxx.seeeko.com/index.asp

❷キャッシュされるか
 GETの応答はキャッシュされ、POSTの応答はキャッシュされません。(キャッシュには、ブラウザでキャッシュする場合や、プロキシサーバでキャッシュする場合があります)。ようは、POSTの場合、URLの情報以外にHTTPのデータの中に情報があって、同じURLでも応答が異なります。であるから、キャッシュすることは適切ではないのです。

多少乱暴な言い方ですが、分かりやすく考えてもらうと、以下になります。
・GETはデータを取得する。(WEBの閲覧)
・POSTはデータを送信する。(掲示板への書き込みなど)

・おさらいとして、H21NW午前2問10を解いてみましょう。

過去問(H21NW午前2問10)
 問10 HTTPのGETメソッドとPOSTメソッドに関する記述のうち,適切なものはどれか。

ア GETの実装は必須であるが,POSTはオプションである。
イ GETはサーバへの送信,POSTはサーバからの応答である。
ウ POSTの応答はキャッシュされるが,GETはキャッシュされない。
エ POSTはサーバのCGIを起動できるが,GETは起動できない。






アは正解である。必須はGETとHEADのみ。セキュリティの問題から、WebサーバではTRACEメソッドを無効にします。設定は、httpd.confで行います。必須のメソッドでは無いので、無効にできます。
イは、GETもPOSTもサーバへの送信で利用される
ウは逆
エどちらも起動できる。

・H21NW午後1問2では、プロキシに接続するためのメソッドであるCONNECTメソッドが穴埋めで問われた。

Webメールで利用するHTTPSでは、PCは[ オ ]メソッドを利用してプロキシサーバへ接続先を指定し、SSLセッションをASPサーバとの間で確立する。

以下のに当てはまる字句を答えよ。

過去問(H23AP問9設問1)
(2)特に,会員情報の登録処理や注文処理のような重要な処理を実行するページには[ a ]メソッドでアクセスするようにし,そのhiddenパラメタに秘密情報(ページトークン)が挿入されるように,前のページを自動生成する。実行ページでは,その値が正しい場合だけ処理を行う。もし[ a ]メソッドの代わりに[ b ]メソッドでアクセスすると,秘密情報をURLに付加して送信することになるので,ここでは利用を避けるべきである。また,HTMLフォームで<form>タグを用いる場合,メソッド属性の指定を省略すると[ a ]メソッドと解釈されるので,適切に指定する必要がある。

女性腕組み
さきほどの解説を見ていただくと、簡単に解けるかもしれません。
また、メソッドはいくつかありますが、基本的にはこの2つを覚え、テスト対策としましょう。






正解:a POST b GET

5.HTTP/2

❶HTTPによるWeb閲覧の復習
・HTTPで通信をするには、3wayハンドシェークを行った上でTCPコネクションを確立する必要がある。
・Webサイトは、1つのページであっても、index.htmlファイルなどページに加え、画像ファイルやCSSファイルなど、いくつものファイルで構成されている。それらを全て取得して、ページが表示される。

❷HTTP1.1の問題点
・1つのTCPコネクションで取得できるのは、1つのファイルのみ
(しかも、ファイルの取得が完了しないと、次のファイルを取得しない)
※過去問(R1秋AP午後問5)の図3が参考になります。HTTP1.1では、ファイルを順番に取得し、前のファイルの取得が終わらないと次を取得しない。
→これがHTTP通信の遅延の原因の一つです。
・(参考)GoogleChromeやIE8では1つのブラウザからのTCPコネクションの最大数は6に制限されています。
ネットワークスペシャリストを目指す女性SEあれ



そんな制限を無くしてしまえば、通信が高速化されるのでは?
このような制限は一般的です。それに、昔は2つだったので、6というのはとても増えたと言える。
そして、あまり増やしても、サーバへのTCPコネクション確立要求が増えすぎて、サーバエラー(503)になる。

❸HTTPパイプライン機能
上記の問題点を解決するために、HTTP1.1では、HTTPパイプライン機能があります。これは、複数のファイルを同時に取得することができます。
ですが、これも万能ではありません。リクエストの順番とレスポンスの順番が正しくないと、次のパケットが送られません(HoLブロッキング)。
という事情などもあり、多くのブラウザでは標準では機能が有効になっていません。

❹HTTP/2
・1つのTCPコネクションで複数のファイルを同時にやりとりできるようにしたのがHTTP/2です。HTTPパイプラインの課題であったHoLブロッキングも解消しています。
・注意点は、TLSが必須です。
※HTTP2の通信をパケットキャプチャで見せたいのですが、HTTP/2ではSSLが必須であり、複数のファイルをやりとりしている様子がわかりにくいと思います。

❺参考:用語解説   ソケット
HTTPなどのTCPの通信では3ウェイハンドシェークによりTCPコネクションを確立する。TCPコネクションは、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号で管理され、この4つの組み合わせ情報をソケット(※この言葉は無理して覚える必要がない)と言う。
見方を変えると、ソケットという通信路(TCPコネクション)が確立されたら、その上をアプリケーションが通信していると思ってもらえばいい。たとえば、PCが2つのブラウザを立ちあげ、1つめのブラウザはGoogle,もう一つはYahooを見ていたとする。1つめのブラウザがGoogleを見たときに、その結果を2つめのブラウザに返さないのは、通信を(IPアドレスだけではなく、ポート番号を含めた)ソケットで管理しているからである。
socket
ネットワークスペシャリストを目指す女性SEあれ? 


TCPコネクションとソケットは同じものと考えていいですか?
1つのTCPコネクションに1つのソケットが対応するので、概念としては同じ。ただ、言葉の意味そのものは、厳密には別。TCPコネクションを”識別”するための情報がソケットだと思えばいいだろう。

❻過去問
R1秋AP午後問5の抜粋をみながらHTTP2を復習しましょう。

問5 HTTP/2に関する次の記述を読んで,設問1~4に答えよ。

 (中略)

〔性能テストの結果〕
 G君は,多数のWebブラウザ(以下,ブラウザという)からのアクセスをシミュレートする負荷テストツールを用いて,開発した新システムの性能テストを行った。
 性能テストの結果,同時アクセス数が,  32ユーザを超えるとアクセスエラーが発生した。ただし,エラー発生時のサーバのCPU,メモリ,ネットワーク回線の使用率は全て10%以下,ディスクのI/O負荷率は20%以下であった。また,レスポンスタイムは,写真を一覧表示するページ(以下,一覧ページという)の表示が最も長く3.0秒だったが,一枚の写真を拡大表示するページなどの他のページの表示は1.0秒であった。

[同時アクセス数改善に向けた調査]
 G君は,同時アクセス数の要件を満たせない原因を確認するために,ブラウザの開発者用ツールを用いて,ブラウザが一覧ページの表示に必要なファイルをどのように受信しているか調査した。G君が調査したファイルの受信状況(抜粋)を図2に示す。なお,ブラウザとサーバはHTTP/1.1 over TLS(HTTPS)で通信していた。

問5‗図2
図2 ファイルの受信状況(抜粋)


 次に,G君がサーバのログを調査したところ,TCPコネクションを確立できないという内容のログが多く残っていた。この結果からG君は,TCP/IPでサーバとブラウザが通信を行うために必要なサーバの[ a ]が枯渇し,新たなTCPコネクションを確立できなくなったと考えた。また,サーバの[ a ]の最大数は128に設定されていた。
 この二つの調査結果から,①ブラウザが採用する複数のファイルを並行して受信するための手法によって,同時アクセス数が制限されてしまっていることが分かった。

設問1 〔同時アクセス数改善に向けた調査〕について,(1),(2)に答えよ。
 (1)本文中の[ a ]に入れる適切な字句を解答群の中から選び,記号で答えよ。
   解答群
    ア IPアドレス   イ ソケット   ウ プロセス   エ ポート
 (2)本文中の下線①について,図2の調査で分かった,複数のファイルを並行して受信するための手法とは,どのような手法か。25字以内で述べよ。

さて、設問の前に。ここではサーバのソケットの最大数が128に設定されている。あまりたくさんにすると、サーバのスペック(メモリなど)がオーバし、サーバーエラーを繰り返してしまうからである。
通常で考えると、ポート番号が取り得る値は、2バイト(=16ビット)なので、かなりの数が受け入れられるはずであるが、制限が厳しいなあという印象。設問を簡単にするためにしている工夫であろう。





設問1(1)空欄aにはイのソケットが入る。ソケットの言葉は上で説明した通り。

(2)図2をみよう。これはあるブラウザでの調査ということであるから、1台のサーバがどのようにTCPコネクションを確立しているかがわかる。
この場合、4つのコネクションを同時に確立していることがわかる。具体的には、image001.jpg、image005.jpg、image009.jpg、image013.jpgのファイルを並行して受信している。

解答例:同時に複数のTCPコネクションを確立する手法

補足すると、 32ユーザを超えるとエラーになるのは、これが原因の一つということである。
もうお分かりだと思うが、1つのPCが4つのコネクションを接続し、32ユーザが同時に接続すると、ソケットの上限の128に達することから、それ以上の通信がアクセスエラーになる。

〔レスポンスタイム改善に向けた調査〕
 G君は,一つのTCPコネクション内における,ブラウザとサーバの間の通信を調査した。HTTP/1.1 over TLS を用いてブラウザとサーバが通信するとき,ブラウザからサーバの[ b ]番ポートに対して[ c ]を送信し,サーバから[ d ]を返信する,最後にブラウザから[ e ]を送信することでTCPコネクションが確立する。その後TLSハンドシェイクを行い,ブラウザはHTMLファイルや画像ファイルなどをサーバヘ要求し,サーバは要求に応じてブラウザヘファイルを送信している(図3)。また,G君が利用したブラウザでは,HTTPパイプライン機能はオフになっていた。
問5_図3
図3 G君が調査したブラウザとサーバ間の通信(抜粋)


 G君は,この結果から,②TCPコネクション内での画像ファイルの取得に掛かる時間が長くなり,多くの画像データを含む一覧ページではレスポンスタイムが長くなると考えた。

設問2 本文及び図3中の[ b ]~[ e ]に入れる適切な字句を解答群の中から選び,記号で答えよ。
   解答群
    ア 25        イ 110         ウ 443
    エ ACK       オ ACK/FIN        カ FIN
    キ SYN       ク SYN/ACK       ケ TCP

設問3 本文中の下線②について,  TCPコネクション内での画像ファイルの取得に時間が掛かる要因は何か。解答群の中から選び,記号で答えよ。
   解答群
    ア 画像ファイルの取得ごとにTCPコネクションを確立している。
    イ 画像ファイルを圧縮せずに取得している。
    ウ 画像ファイルを一つずつ順番にサーバに要求し取得している。
    エ 複数の画像ファイルをまとめて取得している。






設問2
b ウ:443 c キ:SYN d ク:SYN/ACK  e エ:ACK

設問3
問題文には、「②TCPコネクション内での画像ファイルの取得に掛かる時間が長くなり」とあります。この要因を考えます。正解は、ウの「画像ファイルを一つずつ順番にサーバに要求し取得している。」ことです。1つのソケットでファイルを順番に取得します。1つのファイルが正常に取得し終わったら、次のファイルを取得します。

ちなみにアですが、画像のファイルの取得ごとにTCPコネクションを確立しているわけではありません。図にあるように、1つのコネクション上で複数のファイルを取得できます。

〔HTTP/2を用いた新システムの開発〕
 G君が調査結果を上司のH課長に報告したところ “HTTP/2の利用を検討すること” とのアドバイスを得た。HTTP/2では,③一つのTCPコネクションを用いて,複数のファイルを並行して受信するストリームという仕組みなど,多くの新しい仕組みが追加されていることが分かった。
 そこで,  G君は新システムのWebサーバにHTTP/2の設定を行い,再度性能テストを実施した。その結果,新システムが図1の性能要件を満たしていることが確認できた。
 その後,新システムの開発は完了し,E社は写真のインターネット販売を開始した。

設問4 本文中の下線③について,(1),(2)に答えよ。
(1)複数のファイルを並行して受信可能となることで,ブラウザのどのような待ち時間がなくなるか。20字以内で答えよ。
(2)HTTP/2の採用によって,新システムが許容できる最大の同時アクセス数は幾つになるか答えよ。ここで,新システムにアクセスする全てのブラウザがHTTP/2を利用し,一つのTCPコネクションを用いてアクセスするものとする。






解答例
設問4
(1) 前の画像ファイルの受信完了待ち
(2) 128

1つのブラウザが1つのTCPコネクションを用いれば、ソケットが128なので、最大128の同時アクセスが可能である。

6.X-Forwarded-For

(1)XFFとは

ネットワークスペシャリストの過去問(R1NW午後Ⅰ問2)を見ましょう。

・WAFサービスは,アクセスを許可したHTTPリクエストの送信元IPアドレスを,HTTPヘッダのX-Forwarded-Forヘッダフィールド(以下,XFFヘッダという)に追加する。

ここで、HTTPヘッダが何だったかは、思い出してください。上の記事のHTTPリクエストやレスポンスの構成」に記載しています。
XFF(X-Forwarded-For)は,HTTPヘッダのフィールド(項目)の一つです。
XFFにより、接続元(クライアント)のIPアドレス情報を追加できます。たとえば、皆さんにも馴染み深いプロキシサーバ経由でインターネットに接続する構成で考えます。構成図は以下です。

192.168.1.11のPCから、Proxyサーバ経由でWebサーバに通信します。

 この場合、Proxyサーバが、PCからのHTTPリクエストのXFFヘッダにPCのIPアドレスを追加します。そして、WebサーバにHTTPリクエストを転送します。以下がそのHTTPヘッダの例です。PCのIPアドレス192.168.1.11が追記されていることが分かります。

GET / HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: ja
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.1; SVl)
X-Forwarded-For: 192.168.1.11 ←Proxyサーバが追加したPCのIPアドレス
Host: nw.seeeko.com
Connection: keep-alive
(2)XFFの目的

LBやProxyサーバにて、このフィールドに、接続元(クライアント)のIPアドレス情報を追記することができます。
追記するかは設定次第なので、たとえばProxyサーバのsquidであれば、forwarded_for on と設定します。もちろんOFFにしてIPアドレスを追記しないことも可能です。
 
この点は、過去問(H24SC午後Ⅰ問4)にて、LBの機能として「また,HTTPヘッダフィールドとしてX-Forwarded-Forヘッダフィールドを追加可能であるが,現在は利用していない」とあります。
一般的にはどっちが多いと思いますか?
ネットワークスペシャリストを目指す女性SEあれ?



ログを取るためにはONですか?
企業側は取られたくないですよね。社内情報が漏えいしますから。通常は,PCのIPアドレスを見せないようにするため,OFFにすることが多いです。

過去に、X-Forwarded-Forに関する出題が何度かされています。
LBに限らずProxyサーバでもそうであるが、IPアドレスが変換される場合がある。たとえば、Proxyサーバからの通信であれば、送信元IPアドレスは全てProxyになり、実際に通信する端末のIPアドレスは分からない。LBもLBにて振り分けた場合に、送信元IPアドレスをLBにしてしまうと、サーバにはすべてLBからの通信に見える。
そこで、HTTPヘッダフィールどに、X-Forwarded-Forとして、IPアドレス変換をする前の端末のIPアドレスをセットするのである。

(3)過去問をみてみましょう。

過去問(H28SC秋午後1問3)を見てみましょう。もともとは多段プロキシの問題だったのですが、わかりにくいので私にて変更してあります。

過去問(H28SC秋午後1問3)
ある企業のネットワークは、プロキシサーバを経由し、FWからインターネットにアクセスします。しかし、①FWの通信ログだけでは送信元PCが特定できない。
そこで、プロキシでは、HTTPヘッダとして[ d ]ヘッダフィールドを追加するように設定し、FWでは、[ d ]ヘッダフィールドをログに出力するように設定した。

設問(1) 本文中の下線①について、FWのログだけでは送信元PCが特定できない理由を、30字以内で述べよ。
(2)本文中の[ d ]に入る適切な字句を答えよ。






(1)送信元IPアドレスがプロキシのIPアドレスとなるから
(2)X-Forwarded-For

実際にSquidによるプロキシサーバを使ってXFFを設定した様子は以下です。
プロキシサーバ(Squid)の設定

7.Webサーバを立ててみよう

「百聞は一見に如かず」です。まずはやってみましょう。
sef5



でも、サーバなんて持っていません。
今は便利になりました。VMwareなどで仮想サーバを立ててもいいのですが、今回はWindows8のOSの標準機能で作りましょう。従来はサーバに入っていたIISがクライアント端末にも入っています。
とても簡単にWebサーバが作れます。

▼IISのインストール
 コントロールパネル「プログラムと機能」「Windowsの機能の有効化または無効化」からIIS(インターネット インフォメーション サービス)をインストール。

再起動すれば、Webサービスなどが利用できる。

■WindowsでWebサーバ
Windows10の場合
検索などで、「Windowsの機能」>「インターネットインフォメーションサービス」
>「World Wide Webサービス」の「HTTP共通機能」
と「Web管理ツール」>「IIS管理コンソール」
にチェックを入れる。
もちろん、このあたりの一式をチェック入れてもいい。

再起動する。

http://127.0.0.1 で、MSのサイトが表示されれば、サーバ構築完了。
となりのPCからみてみよう。

※パーソナルFWや、ウイルス対策ソフトでブロックされる可能性があるので注意。

「管理ツール」(検索しましょう)の中に「インターネットインフォメーションサービス(IIS)マネージャがある。
ここで、Webサーバの起動、停止をしたり、コンテンツの配置場所の設定などができる。

●コンテンツの置き場所
デフォルトでは、C:\inetpub\wwwroot あたりにコンテンツが入っている。
「Hello」とでも記載したindex.htmlファイルを作成し、上記のフォルダに入れる。
http://127.0.0.1で 「Hello」の文字が見えるかを確認!

▼サイト構築
ためにしに、メモ帳で「こんにちは」と入力し、ファイル名をindex.htmlとしてみよう。
本当はHTMLのフォーマットで書くべきなんですが、ここはこれでよしとします。
拡張子はtxtではなく、htmlにしましょう。作成したファイルは、C:\inetpub\wwwrootに入れます。このフォルダがWebサーバのフォルダです。
memo
▼Webサーバにアクセスしてみよう。
ブラウザを使って、自分のIPアドレスにhttpでアクセスしてみましょう。
http://192.168.1.100/index.html
web
このように表示されます。とても簡単ですね。
是非とも、違うパソコンからやってみましょう。

8.WebDAV(Web Distributed Authoring and Versioning)

過去問では「HTTPを使って、Webサーバのコンテンツのアップロードや更新を可能にするプロトコル(H21NW午前 問12)」「HTTPを拡張したプロトコルを使って,サーバ上のファイルの参照や作成,削除及びバージョン管理が行える」とある。

Webサーバの代表的なソフトであるIISやApacheには、WebDAVの機能が組み込まれている。
1



これってFTPでできますよね。
わざわざHTTPでやるメリットはありますか?
確かにFTPでできる。でも、WebDAVを好む人が結構多い。
一つは、FWでHTTPは空いているが、FTPは閉じられている場合にも使える。
また、ブラウザベースで全てができて、ドラッグ&ドロップも使える。共有フォルダのような使い方ができるので、便利ではあります。

9.HTMLとXML

▼1.マークアップ(Markup Language)言語とは
HTML(HyperText Markup Language)とXML(eXtensible Markup Language)は、どちらもマークアップ言語です。
マークアップ言語に関して、過去問(H25年春IP問69)では「マークアップ言語では,画面表示や印刷などを目的に,文章の内容だけでなく,文書構造やレイアウト情報,文字のフォント及びサイズなどを指定する記述を直接埋め込むことができる」とあります。
HTMLがマークアップ言語の代表です。<font>などのタグを使うことで、色や文字の大きさなどを指定することができます。

▼2.HTMLとXMLの違い
Webのページ作成に利用されるHTMLとXMLの違いについてです。eXtensibleは拡張可能という意味ですから、XMLはHTMLの拡張であるとイメージしてもらえばいいでしょう。
XMLに関して、応用情報技術者試験のシラバスでは、「HTML の機能に加えて,独自にタグを定義することができる機能を備え,主にインターネットを介したデータ交換に利用されている」と述べられています。
また、過去問(H23秋AP午前問71)では、「インターネットを利用した企業間取引において,取引データをそのまま起票したり,社内文書に変換したりすることが容易にできる」とあります。XMLを使うと、EXCELなどへの変換が容易に行えるので便利ですね。

さて、両者の違いは何でしょうか。
次の過去問(H24春IP)を見ながら確認をしましょう。

過去問(H24春IP)
問67 HTMLに関する記述として,適切なものはどれか。
ア タグを使ってWebページの論理構造やレイアウトが指定できるマークアップ言語である。
イ ブラウザで動作する処理内容を記述するスクリプト言語である。
ウ ブラウザとWebサーバとの間で行う通信のプロトコルである。
エ 利用者が独自のタグを定義してデータの意味や構造を記述できるマークアップ言語である。






選択肢アがHTMLの説明で、HTMLは「タグを使ってWebページの論理構造やレイアウトが指定できるマークアップ言語」です。
選択肢エがXMLの説明で、XMLは「利用者が独自のタグを定義してデータの意味や構造を記述できるマークアップ言語」です。
ちなみに、選択肢イはJavaScriptです。

過去問(H19秋AD午前)
問45 HTMLによるハイパテキストの特徴として,適切なものはどれか。
ア 文書情報を扱うので,画像ファイルへのリンクはできない。
イ リンクは階層構造なので,別のテキストに移動する場合は一度最上位の階層まで戻らなければならない。
ウ リンクは双方向の情報をもつので,テキスト間を自由に行き来できる。
エ リンクをクリックすることによって,指定されたテキストに移動できる。






【正解】エ 

過去問(H19春AD午前)
問22 HTMLとXMLの特徴を比較した記述のうち,適切なものはどれか。
ア HTMLでは属性値をすべて二重引用符(")又は一重引用符(')で囲む必要があるが,XMLではその必要はない。
イ HTMLではユーザが独自に要素を定義できるが,XMLでは言語仕様で決められた要素だけが有効である。
ウ HTMLでは要素によっては終了タグを省略できるが,XMLでは開始タグと終了タグで内容を囲むか,空要素の形式で記述する必要がある。
エ HTMLでは要素名の大文字と小文字を区別するが,XMLでは区別しない。






【正解】ウ 

過去問(H24秋FE午前)
問8 XMLの特徴として,最も適切なものはどれか。
ア XMLでは,HTMLに,Webページの表示性能の向上を主な目的とした機能を追加している。
イ XMLでは,ネットワークを介した情報システム間のデータ交換を容易にするために,任意のタグを定義することができる。
ウ XMLで用いることができるスタイル言語は,HTMLと同じものである。
エ XMLは,SGMLを基に開発されたHTMLとは異なり,独自の仕様として開発された。






【正解】イ

過去問(H23秋AP午前)
問71 インターネットを利用した企業間取引において,取引データをそのまま起票したり,社内文書に変換したりすることが容易にできるマーク付け言語はどれか。
ア HTML   イ SGML   ウ UML   エ XML






正解はエのXMLです。
XMLは、問題文にあるような拡張性の高いマークアップ(マーク付け)言語です。

10.Ajax

・Ajax (Asynchronous JavaScript + XML)は、エイジャックス(またはアジャックス)と読む。Asynchronousは非同期という意味で、クライアント側とサーバ側が非同期。
リッチクライアントの技術の一つ。

たとえば、キーボード入力に合わせた検索候補を表示する場合を考えます。従来であれば、検索の候補を表示するのであれば、文字が入力された都度、サーバ側に通信をする必要がありました。毎回問い合わせていては、高速な処理が実現できません。
 Ajaxは、毎回サーバに通信をすることなく、非同期に通信する仕組みを使ってこれらの処理を実現できます。

・過去問(H24秋AP午前問32)えは、Ajaxについて、「JavaScript などのスクリプト言語を使って, Webブラウザに組み込まれているサーバとの非同期通信機能を利用する技術であり,地図の高速なスクロールや,キーボード入力に合わせた検索候補の逐次表示などを実現するもの」と述べられています。
AjaxがJavaScriptを活用している点は、Ajaxのフルスペルからも分かります。

・旧来のシステムは、クライアントサーバ(C/S)型のシステムが多かった。
クライアントにシステムをインストールし、クライアント側で多くの処理をする形態である。最近では、WEBアプリケーションが多く、クライアント側にはブラウザしかないというアプリケーションが増えていた。リッチクライアントは両者の中間に位置するものだ。WEBアプリケーションは、WEBであるためにソフトの配布がとても簡単である。しかし、操作性はC/Sシステムには到底及ばない。そこで、FlashやAjaxなどの最新のWEB技術を使って、操作性を高めたのがリッチクライアントである。

・H21NW午後1問2では、ajaxが穴埋めで問われた。

JavaScriptの非同期通信の機能による、画面遷移が起こらない動的なユーザインターフェースを実現する[ ア ]と呼ばれる技術を使ったWebメールの評判が高い。

ここで、非同期通信という言葉がひっかかってはいないか。Webアプリケーションは、処理するたびにサーバに接続にいくので、“同期”と考えられる。一方、JavaScriptでは、クライアント側でのみ処理をするので、都度サーバに問い合わせする必要がない。よって、“非同期”という見方ができる。

11.WebSocket

過去問(H28秋AP午前問7)では、「WebSocketによって実現できる」こととして、「クライアントのWebブラウザとサーバ間で双方向の通信をすること」と述べられています。
クライアントとサーバ間の通信は、双方向と言えど、クライアントからの接続要求があってできることがほとんどです。たとえば、サーバからのアクションで、クライアントのブラウザに情報を送ることは簡単ではありません。
WebSocketによって、両者に通信路を作り、双方向の通信を容易に実現することができます。

 WebSocketは専用のプロトコルを使用しますが、最初にWebサーバに通信をする際はHTTPを使ってハンドシェイクの要求を送ります。その後、WebSocketのプロトコルに切り替えます。

別の過去問をみてみましょう。

過去問(H28秋NW午前Ⅱ)
問15 チャットアプリケーションのようなWebブラウザとWebサーバ間でのリアルタイム性の高い双方向通信に利用されているWebSocketプロトコルの特徴はどれか。
ア WebブラウザとWebサーバ間で双方向通信を行うためのデータ形式はXMLを使って定義されている。
イ WebブラウザとWebサーバ間でリアルタイム性の高い通信を実現するためにRTPを使用する。
ウ WebブラウザとWebサーバとの非同期通信にはXMLHttpRequestオブジェクトを利用する。
エ Webブラウザは最初にHTTPを使ってWebサーバにハンドシェイクの要求を送る。






ア:XMLを使っていません。
イ:RTPではなく、専用プロトコルです。
ウ:WebSocketはリアルタイム通信に利用されます。
エ:正解選択肢です。

正解:エ

12.RSS

過去問(H26AP春午前問35)では、RSSに関して「Webページの見出しや要約などのデータについて,XMLを使って更新を通知するためのフォーマット」と述べられている。

たとえば、Yahoo!ニュースでは、以下のRSSがあり、登録することで、最新の更新情報をブラウザ上で確認することができる。
http://headlines.yahoo.co.jp/rss/list

RSSのフルスペルに関しては、RDF site summaryやRich Site summaryなどのいくつかがある。

13.【演習問題】PCがHTTPサーバと通信するときのフレーム

考えてもらうために、あえて漠然とした問題にしています。学習の理解を深めることを目的として、想像力を働かせて答えてください。

Q.LAN内にあるPC(10.1.1.101)からインターネットのWebサーバ(web.example.com)にアクセスするときに、PCから流れるフレームをパケットをすべて答えよ。PCは電源を入れた直後とする。

ネットワークスペシャリストを目指す女性SE待ってよ 

PCからインターネットへのHTTPパケットだけじゃないのですか?
PCが電源を入れたばかりと考えよう。





まず、WebサーバのIPアドレスを知らない。だから、DNSサーバに問い合わせに行く。
DNSサーバがLAN内にあると仮定して(外にあるなら別のパケットが必要になるが、ここでは説明は割愛)、PCのネットワーク設定を確認して、設定してDNSサーバ(10.1.1.53)にweb.example.comのIPアドレスを問い合わせようとする。

しかし、DNSサーバにアクセスするには、フレームレベルではMACアドレスが必要。であれば、ARPによってDNSサーバのMACアドレスを解決する(パケット①)。そうしてDNSサーバにアクセス(パケット②)し、サーバのIPが203.0.113.80であることがわかったとする。

次に、PCの動きであるが、203.0.113.80に通信しようとすると、自分の10.1.1.101/24とは別セグメントであるため、デフォルトゲートウェイ(10.1.1.254)に通信しようとする。そのためには、このデフォルトゲートウェイのMACアドレスを知る必要があり、ここでもARPパケットを送る(パケット③)。

そして、最後に、PCからインターネットへのHTTPパケットを送る(パケット④)。が、フレームレベルだと、宛先MACアドレスはデフォルトゲートウェイになる。
http