+ 作るログイン
図を読み込んでいます…
1 / 14
ネットワークのしくみ ― 場所を知らない相手に、なぜ届くのか / 全8章

ネットワークのしくみ 2:層 ― 封筒の入れ子

発行
アニメモ公式
版
第1版
改訂
コマ
全14

ネットワークが引き受ける仕事(線で信号を送る・隣へ渡す・最終の宛先まで運ぶ・欠けたら再送・中身の意味)を、層(レイヤー)に分けて考える理由を説明します。アプリケーション・トランスポート・インターネット・リンクの4層と、封筒の入れ子(カプセル化)、機械ごとに開ける深さの違い、7層モデルとの対応まで。

ネットワークがやることは、1つの仕組みには多すぎる

1本目で、データは「小包」になってルーターからルーターへ渡っていく、と説明しました。この作品では、その小包の中身がどうなっているのかを見ます。

データを相手に届けるまでに、ネットワークは実にたくさんの仕事をしています。

仕事例
0 と 1 を信号にして送るLAN ケーブルの電気、光ファイバーの光、Wi-Fi の電波
隣の機械へ受け渡す同じ線につながった機械のうち、どれに渡すか
遠くの最終の宛先まで運ぶルーターを何台も越えて、相手のネットワークまで
確実に届ける欠けたら送り直す、順番を揃える、どのアプリ宛かを区別する
中身の意味Web ページをください、メールを送ります

これを全部1つの仕組みでやろうとすると、とても複雑になります。しかも、Wi-Fi に替えたら全部作り直し、ということになりかねません。そこで、仕事を役目ごとに分けて考えます。

  • ネットワークのしくみ 2 / 8 ― 層:封筒の入れ子
  • 1 / 14
  • ネットワークがやることは、1つの仕組みには多すぎる
  • 線や電波で 0 と 1 を送る
  • 隣の機械へ受け渡す(MAC アドレス)
  • 遠くの最終の宛先まで運ぶ(IP アドレス)
  • 欠けたら送り直す・順番を揃える・どのアプリ宛か
  • 中身の意味(Web ページ・メール)
  • 電気の信号・隣への受け渡し・最終の宛先・欠けたら再送・中身の意味。分けて考える。

役目ごとに、層(レイヤー)に分ける

役目ごとに分けたものを層(レイヤー)と呼びます。インターネットで実際に使われている分け方(TCP/IP モデル)では、大きく4つです。

層役目代表例
アプリケーション層中身そのものHTTP(Web)、DNS、SMTP(メール)
トランスポート層どのアプリ宛か、確実に届けるかTCP、UDP
インターネット層最終の宛先まで運ぶIP
リンク層いまいる線の上で、隣へ渡すイーサネット(有線)、Wi-Fi

上の層ほど中身(人間が使うもの)に近く、下の層ほど線(物理的なもの)に近くなります。

層に分ける最大の利点は、各層が自分の役目だけに集中できることです。上の層は、下の層が「どうやって運んでいるか」を知らなくていいですし、下の層は、上の層の「中身が何か」を知らなくていいのです。

次のページから、上の層から順に、1枚ずつ荷札(ヘッダー)が付いていく様子を見ます。

  • ネットワークのしくみ 2 / 8 ― 層:封筒の入れ子
  • 2 / 14
  • 役目ごとに、層(レイヤー)に分ける
  • アプリケーション層
  • HTTP・DNS・SMTP
  • 上の層は、下の層が 「どうやって運んでいるか」 を知らなくていい。 下の層は、上の層の 「中身が何か」を 知らなくていい。
  • トランスポート層
  • TCP・UDP
  • インターネット層
  • IP
  • リンク層
  • イーサネット・Wi-Fi
  • 上の層ほど中身に近く、下の層ほど線に近い。各層は自分の役目だけをする。

アプリケーション層:中身そのもの

ブラウザで example.com を開くとき、ブラウザはまず、相手の Web サーバーに送る中身を作ります。

GET /index.html HTTP/1.1
Host: example.com

「/index.html のページをください」という依頼で、HTTP という決まりに従って書かれています。メールなら SMTP、名前から IP アドレスを引くなら DNS と、用途ごとに決まりがあります。

この時点で、中身には宛先の IP アドレスも、線のことも、何も書かれていません。アプリケーション層は、「何を頼むか」だけを考えています。どうやって届けるかは、下の層に任せます。

  • ネットワークのしくみ 2 / 8 ― 層:封筒の入れ子
  • 3 / 14
  • アプリケーション層:中身そのもの
  • アプリケーション層
  • GET /index.html HTTP/1.1
  • HTTP・DNS・SMTP
  • Host: example.com
  • トランスポート層
  • TCP・UDP
  • 中身(HTTP)
  • インターネット層
  • IP
  • この時点では、宛先の番号も、線のことも何も知らない
  • リンク層
  • イーサネット・Wi-Fi
  • ブラウザが書く「このページをください」。HTTP の決まりで書かれた文字。

トランスポート層:どのアプリ宛か・確実に届けるか

次に、トランスポート層が中身に荷札(ヘッダー)を付けます。図の右に、紫の「TCP」の札が増えたのがそれです。

この荷札のいちばん大事な欄はポート番号です。

欄意味
宛先ポート相手の機械の中の、どのアプリ宛か。Web サーバーなら 443
送信元ポート自分の機械の中の、どのアプリから出たか。返事を正しいタブに戻すため
通し番号どこまで届いたかを数え、欠けたら再送するため(TCP)

1台の機械の中では、Web ブラウザもメールソフトも同時に動いています。IP アドレスは「どの機械か」までしか表さないので、「その機械の中のどのアプリか」をポート番号で区別します。ポートについては、メールのしくみシリーズの1本目でも触れました。

  • ネットワークのしくみ 2 / 8 ― 層:封筒の入れ子
  • 4 / 14
  • トランスポート層:どのアプリ宛か・確実に届けるか
  • アプリケーション層
  • HTTP・DNS・SMTP
  • トランスポート層
  • TCP・UDP
  • TCP
  • 中身(HTTP)
  • インターネット層
  • IP
  • 宛先ポート
  • 443(相手の Web サーバー)
  • リンク層
  • 送信元ポート
  • 51234(自分のブラウザのタブ)
  • イーサネット・Wi-Fi
  • 通し番号
  • どこまで届いたかを数える
  • ポート番号で「相手の機械の、どのアプリ宛か」を書く。

TCP は確実に、UDP は速く

トランスポート層には、性格の違う2つの方式があります。

TCP は、確実に届けることを重視します。相手が受け取ったら「ここまで届いた」と返事をもらい、返事が来なければ送り直し、順番が入れ替わって届いたら並べ直します。Web ページやメールのように、1文字でも欠けたら困るものに使います。

UDP は、送りっぱなしです。届いたかの確認も再送もしません。そのぶん手間がなく速いです。通話やオンラインゲームのように、遅れて届くくらいなら欠けたほうがましなものや、DNS の問い合わせのように小さく1往復で済むものに使います。

ここで大事なのは、下のインターネット層(IP)は、届くかどうかを保証しないということです。途中で混雑すれば小包は捨てられることもあります。「確実に届ける」という役目は、IP ではなく、この TCP が引き受けています。役目が層ごとに分かれている例です。

  • ネットワークのしくみ 2 / 8 ― 層:封筒の入れ子
  • 5 / 14
  • TCP は確実に、UDP は速く
  • TCP
  • UDP
  • 届いたか確認・欠けたら再送・順番を揃える
  • 送りっぱなし。確認しない。そのぶん速い
  • Web・メール・ファイル
  • 通話・ゲーム・DNS の問い合わせ
  • 下の IP は「届くかどうか保証しない」。確実さは、この層が引き受ける
  • 欠けたら困るものは TCP。遅れるより欠けたほうがましなものは UDP。

インターネット層:最終の宛先まで運ぶ

次に、インターネット層が IP の荷札を付けます。図の青い札です。

欄意味
宛先 IP アドレス最終の宛先。相手のサーバー(203.0.113.10)
送信元 IP アドレス自分(192.168.1.10)。返事の宛先になる
TTL寿命。ルーターを1台越えるたびに1減り、0 になったら捨てられる

1本目で見た「バケツリレー」で、ルーターが見ているのはこの札です。ルーターは宛先 IP アドレスを見て、自分の表から「次にどこへ渡すか」を決めます。

TTL(Time To Live)は、道に迷った小包が永遠にぐるぐる回り続けないための仕組みです。ルーターの表の設定ミスで小包が輪の中を回ってしまっても、TTL が尽きれば捨てられます。8本目で、この仕組みを逆手に取った道具(traceroute)も紹介します。

  • ネットワークのしくみ 2 / 8 ― 層:封筒の入れ子
  • 6 / 14
  • インターネット層:最終の宛先まで運ぶ
  • アプリケーション層
  • HTTP・DNS・SMTP
  • トランスポート層
  • TCP・UDP
  • IP
  • TCP
  • 中身(HTTP)
  • インターネット層
  • IP
  • 宛先 IP
  • 203.0.113.10(相手のサーバー)
  • リンク層
  • 送信元 IP
  • 192.168.1.10(自分)
  • イーサネット・Wi-Fi
  • TTL
  • 64(ルーターを越えるたびに1減る)
  • 送信元と宛先の IP アドレスを書く。ルーターはここを見て次を決める。

リンク層:いまいる線の上で、隣へ渡す

最後に、リンク層が MAC の荷札を付けます。図の緑の札です。

欄意味
宛先 MAC アドレス次に受け取る機械。遠くの相手ではなく、隣のルーター(r1:r1)
送信元 MAC アドレス自分(aa:aa)
点検用の数(末尾)途中で信号が壊れていないかを確かめる

ここが大事なところです。IP の札の宛先は「最終の相手」でしたが、MAC の札の宛先は「隣」です。リンク層は、いまつながっている線の上で、隣の機械に渡すことだけを考えています。

隣に着いたら、MAC の札は役目を終えます。受け取ったルーターは MAC の札を捨て、次の区間用に新しい MAC の札を付け直します。1本目で「MAC アドレスは区間ごとに付け替わる」と書いたのは、このことです(5本目で詳しく見ます)。

  • ネットワークのしくみ 2 / 8 ― 層:封筒の入れ子
  • 7 / 14
  • リンク層:いまいる線の上で、隣へ渡す
  • アプリケーション層
  • HTTP・DNS・SMTP
  • トランスポート層
  • TCP・UDP
  • MAC
  • IP
  • TCP
  • 中身(HTTP)
  • インターネット層
  • IP
  • 宛先 MAC
  • r1:r1(隣のルーター)
  • リンク層
  • 送信元 MAC
  • aa:aa(自分)
  • イーサネット・Wi-Fi
  • 点検用の数
  • 壊れていないか確かめる(末尾)
  • 次に受け取る機械の MAC アドレスを書く。この荷札は隣に着いたら役目を終える。

最後に、0 と 1 の信号になって線を流れる

荷札が全部付いたら、小包全体が 0 と 1 の並びとして線に送り出されます。

LAN ケーブルなら電気の強弱、光ファイバーなら光の点滅、Wi-Fi やスマホの回線なら電波として、0 と 1 を表します。この部分を物理層と呼びます(TCP/IP モデルではリンク層に含めることが多いです)。

受け取る側の機械は、信号を 0 と 1 に戻し、リンク層の荷札から読み始めます。

  • ネットワークのしくみ 2 / 8 ― 層:封筒の入れ子
  • 8 / 14
  • 最後に、0 と 1 の信号になって線を流れる
  • アプリケーション層
  • HTTP・DNS・SMTP
  • MAC
  • IP
  • TCP
  • 中身(HTTP)
  • トランスポート層
  • TCP・UDP
  • 01000101 00000000 00000101 11011100 …
  • インターネット層
  • IP
  • 電気・LAN
  • 光・光ファイバー
  • 電波・Wi-Fi
  • リンク層
  • イーサネット・Wi-Fi
  • LAN ケーブルなら電気、光ファイバーなら光、Wi-Fi なら電波。これが物理層。

全体を見ると、封筒の入れ子になっている

ここまでの流れを、別の形で描き直すと、図のような封筒の入れ子になります。

中身を TCP の封筒に入れ、それを IP の封筒に入れ、それを MAC の封筒に入れる。この「上の層のデータを、下の層の荷札で包んでいく」ことをカプセル化と呼びます。

入れ子になっていることで、次のことが成り立ちます。

封筒どこまで有効か誰が読むか
MAC(いちばん外)隣までスイッチ、隣のルーター
IP最終の宛先まで途中のすべてのルーター
TCP相手のアプリまで相手の機械
中身(いちばん内)相手のアプリまで相手のアプリ

外側ほど近い宛先、内側ほど遠い宛先になっているのがポイントです。途中の機械は、外側の封筒だけを開けて次に渡し、内側には手を付けません。

  • ネットワークのしくみ 2 / 8 ― 層:封筒の入れ子
  • 9 / 14
  • 全体を見ると、封筒の入れ子になっている
  • MAC の封筒(隣まで)
  • IP の封筒(最終の宛先まで)
  • TCP の封筒(どのアプリ宛か・再送)
  • 中身(GET /index.html …)
  • 中身を TCP の封筒に、それを IP の封筒に、それを MAC の封筒に入れる。カプセル化。

受け取る側は、外側から1枚ずつ開けていく

相手のサーバーは、受け取った小包を外側から1枚ずつ開けていきます。

最初に MAC の札を見て、「宛先 MAC が自分だ」と確かめて開けます。次に IP の札を見て、「宛先 IP が自分だ」と確かめて開けます。次に TCP の札を見て、「宛先ポートが 443、つまり Web サーバーのアプリ宛だ」と確かめ、中身を Web サーバーのアプリに渡します。Web サーバーは中身の GET /index.html を読んで、ページを返します。

返事は、今度はサーバー側で同じようにカプセル化され、逆向きに旅をして、あなたのブラウザに届きます。

この「包む」「開ける」の対応があるので、各層は、相手の同じ層とだけ話しているように振る舞えます。TCP は相手の TCP と、IP は途中のルーターや相手の IP と、話しているわけです。

  • ネットワークのしくみ 2 / 8 ― 層:封筒の入れ子
  • 10 / 14
  • 受け取る側は、外側から1枚ずつ開けていく
  • アプリケーション層
  • HTTP・DNS・SMTP
  • トランスポート層
  • TCP・UDP
  • MAC
  • IP
  • TCP
  • 中身(HTTP)
  • インターネット層
  • IP
  • リンク層
  • 1. 開ける
  • 2. 開ける
  • 3. 開ける
  • イーサネット・Wi-Fi
  • MAC → IP → ポートの順に「自分宛か」を確かめ、中身をアプリに渡す。

機械ごとに、開ける深さが違う

途中の機械は、封筒をどこまで開けるのでしょうか。図の色の付いた段が、その機械が使う層です。

機械開ける深さ何を見て判断するか
スイッチMAC まで(L2)宛先 MAC アドレス
ルーターIP まで(L3)宛先 IP アドレス
PC・サーバー中身まですべて

スイッチは IP アドレスを見ません。ルーターは中身を見ません。 自分の役目に必要な層までしか開けないのです。

これが、このシリーズの疑問にとって大事な点です。「どうやって遠くまで届くのか」を決めているのは、IP の札を見るルーターです。そして「隣の機械へどう渡すか」を決めているのは、MAC の札を見るスイッチです。3本目でスイッチを、6本目でルーターを詳しく見ます。

  • ネットワークのしくみ 2 / 8 ― 層:封筒の入れ子
  • 11 / 14
  • 機械ごとに、開ける深さが違う
  • PC
  • スイッチ
  • ルーター
  • サーバー
  • アプリ
  • アプリ
  • アプリ
  • アプリ
  • TCP/UDP
  • TCP/UDP
  • TCP/UDP
  • TCP/UDP
  • IP
  • IP
  • IP
  • IP
  • MAC
  • MAC
  • MAC
  • MAC
  • スイッチは MAC まで。ルーターは IP まで。中身まで開けるのは両端の機械だけ。

層に分けたから、1つの層だけを差し替えられる

層に分けたもう1つの大きな利点は、1つの層だけを差し替えられることです。

家では LAN ケーブル、外ではカフェの Wi-Fi、移動中はスマホの回線。リンク層と物理層はまったく違いますが、その上の IP・TCP・HTTP は何も変わりません。だから、同じブラウザがどこでもそのまま動きます。

逆も同じです。HTTP が新しい版になっても、下の IP やイーサネットを作り直す必要はありません。

もし層に分けず、全部を1つの仕組みにしていたら、Wi-Fi が出てきたときに、ブラウザからメールソフトまで全部書き換えることになっていたはずです。層に分けたことが、インターネットがこれだけ多様な機械と回線を1つにまとめられた理由です。

  • ネットワークのしくみ 2 / 8 ― 層:封筒の入れ子
  • 12 / 14
  • 層に分けたから、1つの層だけを差し替えられる
  • アプリケーション層
  • HTTP・DNS・SMTP
  • トランスポート層
  • LAN ケーブル
  • Wi-Fi
  • TCP・UDP
  • インターネット層
  • 上の3層は何も変わらない。 だから同じブラウザが、家でも外でも動く
  • IP
  • リンク層
  • イーサネット・Wi-Fi
  • LAN ケーブルを Wi-Fi に替えても、ブラウザも IP も書き換えなくていい。

教科書の「7層」との対応

ネットワークの教科書では、OSI 参照モデルという7層の分け方がよく出てきます。インターネットで実際に使われているのは4層の TCP/IP モデルですが、呼び名として7層の番号が今もよく使われるので、対応を押さえておきます。

OSI(7層)TCP/IP(4層)代表例・機器
7 アプリケーション・6 プレゼンテーション・5 セッションアプリケーション層HTTP、DNS
4 トランスポート(L4)トランスポート層TCP、UDP、ポート番号
3 ネットワーク(L3)インターネット層IP、ルーター
2 データリンク(L2)リンク層MAC アドレス、スイッチ
1 物理(L1)(リンク層に含む)ケーブル、光、電波

現場では「L2 スイッチ」(MAC を見るスイッチ)、「L3」(IP の話)、「L4」(ポートの話)のように、番号で層を呼ぶことがよくあります。この3つだけ覚えておけば十分です。

  • ネットワークのしくみ 2 / 8 ― 層:封筒の入れ子
  • 13 / 14
  • 教科書の「7層」との対応
  • 7〜5(アプリ・表現・セッション)
  • → アプリケーション層
  • 4 トランスポート(L4)
  • → トランスポート層(TCP・UDP)
  • 3 ネットワーク(L3)
  • → インターネット層(IP)・ルーター
  • 2 データリンク(L2)
  • → リンク層(MAC)・スイッチ
  • 1 物理(L1)
  • → 線・光・電波
  • 現場では L2(MAC)・L3(IP)・L4(ポート)の呼び方だけ覚えればいい。

まとめ:層と封筒の入れ子

この作品で見たことをまとめます。

層荷札に書くもの宛先の範囲
アプリケーション中身(GET /index.html)相手のアプリ
トランスポートポート番号、通し番号相手の機械の中のアプリ
インターネットIP アドレス、TTL最終の相手(ルーターが見る)
リンクMAC アドレス隣の機械(スイッチが見る)

データは上から順に荷札で包まれ(カプセル化)、受け取る側で外から順に開けられます。途中の機械は、自分に必要な層までしか開けません。

冒頭の疑問に引きつけると、遠くまで運ぶ仕組み(IP)と、隣へ渡す仕組み(MAC)は、別の層に分かれている、というのがこの作品の結論です。次の作品では、いちばん下の「隣へ渡す」、MAC アドレスとスイッチを見ていきます。

  • ネットワークのしくみ 2 / 8 ― 層:封筒の入れ子
  • 14 / 14
  • まとめ:層と封筒の入れ子
  • アプリケーション層
  • HTTP・DNS・SMTP
  • トランスポート層
  • TCP・UDP
  • MAC
  • IP
  • TCP
  • 中身(HTTP)
  • インターネット層
  • IP
  • 内側ほど遠くまで届く宛先(IP は最終まで)、 外側ほど近い宛先(MAC は隣まで)
  • リンク層
  • イーサネット・Wi-Fi
  • 次の作品では、いちばん下の「隣へ渡す」、MAC アドレスとスイッチを見る。

0 件のコメント

読み込み中…

権利侵害・不適切な内容の連絡: [email protected]