3 Minutes NetWorking
No.37

3Minutes NetWorking

第37回TCP/IPモデル

■ おさらい・レイヤ1〜3

インター博士

長い長いレイヤ3が終わったところで。
軽く今までの事をまとめてみよう。

ネット助手

ほんっと長かったですものね。
今までの半分はレイヤ3の話だった気がしますよ。

インター博士

ふむ。
事実なので反論のしようがないな。

ネット助手

それだけ重要ってことですか、博士?

インター博士

うむ。その通りだ。
だが、レイヤ3が長すぎたし、ネット君のことなので綺麗さっぱり忘れてると思われるので、ちょっと復習をしよう。

ネット助手

綺麗さっぱりって、そこまで忘れてませんよ。

インター博士

ほぅ。自信を持って言えるのかね?

ネット助手

…。
…。ごめんなさい、忘れてます。

インター博士

正直でよろしい。
では、どのようにデータ転送が行われるのか、復習だ。

:データ転送の復習

[Figure37-01:データ転送の復習]

インター博士

AからBへデータを転送する。
間に2つのルータがあり、それぞれはそうだなイーサネットで接続されているとしよう。

ネット助手

はい。

インター博士

まずAからBへ送るデータが作られ、レイヤ4でセグメントにカプセル化される。
そして、レイヤ3に渡されて、IPヘッダをつけて、IPパケットにカプセル化される

パケット

[Figure37-02:パケット]

ネット助手

宛先IPアドレスと、送信元IPアドレスがヘッダにはあるんですよね。

インター博士

うむ。IPアドレスはわかっているものとしよう。
次に、レイヤ2でイーサネットフレームにカプセル化するわけだ。さて、宛先であるホストBは異なるネットワークに属している

ネット助手

え〜っと、そうだとするとどうなるんでしたっけ?

インター博士

レイヤ2は物理的に接続しているデバイス間の転送を制御するのだったな。
この場合、ホストBは異なるネットワークに属しており、物理的には接続されていない。

ネット助手

ルータXが中継するんでしたよね。

インター博士

そうだ。なので、中継してもらうためにルータXにデータを送る
さて、ルータXという宛先を特定するために、何が必要だ?

ネット助手

宛先を特定する?
え〜っと、アドレスですか?

インター博士

うむ。物理的接続されているに相手に届けるため、イーサネットでは宛先MACアドレスが必要だ
さて、中継してもらうルータXのMACアドレスはどうやって知る?

ネット助手

MACアドレスを知る方法?
…。ARP!!

インター博士

よしよし。ルータXのMACアドレスを知るために、ルータXに対してARPを行う
この時使うIPアドレスはデフォルトゲートウェイのアドレスとして取得済みだ

ARP

[Figure37-03:ARP]

ネット助手

でふぉるとげーとうぇい…。
異なるネットワークへの出入り口となるデバイス、でしたよね。

インター博士

そうだ。
さて、ARPによって宛先MACアドレスを取得し、イーサネットフレームにカプセル化する

フレーム

[Figure37-04:フレーム]

ネット助手

IPパケットの前に、イーサネットヘッダとしてMACアドレスが、後ろにイーサネットトレーラとしてFCSが付け加えられるんですね。

インター博士

うむ。これがレイヤ1で電気信号化されて、10BASE-Tを伝わってルータXに転送される。
この時点での、データに付加されているアドレスは以下のようになる。

送信元〜ルータ

[Figure37-05:送信元〜ルータ]

インター博士

宛先MACアドレスを見て、ルータXはデータを受け取る。
さて、次にルータがすることはなんだ?

ネット助手

ふふふ。さすがにここ最近何回もでてましたから覚えてますよ。
宛先IPアドレスを見て、ルーティングするんですよね。

インター博士

ほほぅ、まだ揮発してなかったか。
その通り、どのルートを使って宛先に届けるか(ルーティング)を決定する。ルーティングとはどのように行うのだ?

ネット助手

宛先IPアドレスからサブネットマスクを使って宛先ネットワークアドレスを出して。ルーティングテーブルを参照して、ルートを決定する、でしたよね。

インター博士

うむうむ。非常によろしい。
今日のネット君は一味違うな。

ネット助手

へへへ。

インター博士

いつまで覚えていられるか保証の限りではないがな。

ネット助手

ぐぅ。

インター博士

さて、ルータXはルーティングの結果、ルータYにデータを転送することとなった。
なので、データの宛先を変更する必要がある。

ネット助手

宛先の変更?
何のためです?

インター博士

ルータYにデータを届けるためだ。
物理的に接続している宛先へのMACアドレスの変更が必要だな。

ネット助手

あ〜、そうですね。
今のデータの宛先MACアドレスはルータX宛ですものね。

インター博士

うむ。
再びARPを行う

ARP・2

[Figure37-06:ARP・2]

インター博士

さて、これで次に受け渡しする宛先が特定できたわけだ。

ネット助手

ということは。
ルータYにデータを送るわけですね。

インター博士

そうだ。
宛先と送信元のMACアドレスを変更し、レイヤ1で電気信号化してメディアに流す。

ルータ〜ルータ

[Figure37-07:ルータ〜ルータ]

ネット助手

なるほど。これでルータYに届いたわけですね。
ルータに届いたってことはまたルーティングですよね。

インター博士

うむ。ルータYがルーティングテーブルを見ると、自分と直接接続しているネットワークだとわかる。
よって、またもやARPの出番だ。

ネット助手

今度はホストBのMACアドレスを知りたい、と。

ARP・3

[Figure37-08:ARP・3]

インター博士

そうだ。
ARPにより、宛先MACアドレスを知ったならば、あとは先ほどと同じだ。

ルータ〜宛先

[Figure37-09:ルータ〜宛先]

ネット助手

これでホストBまでデータが届いたわけですね。

■ まとめ・レイヤ1〜3

インター博士

上記の事をまとめてみると。
まず、レイヤ1は電気的なデータの転送を受け持つ。

ネット助手

ですね。

インター博士

ただし、電気信号は、誰に送るとか、どんなデータかとかは一切関知しない。
当たり前といえば当たり前だな。電気信号なんだから、メディアに沿って流れるしかない。

ネット助手

電気信号自体が、どこにいくか判断できるわけないですからね。

インター博士

うむ。
よって、レイヤ2で物理的に接続されているデバイス間での制御を行う。具体的には、まず、誰が送信を行うかだな。

ネット助手

誰が送信を行うか?

インター博士

イーサネット、IEEE802.5のようなLAN環境においては、それが必要だ。
イーサネットの場合はなんだった?

ネット助手

誰が送信を行うか…。イーサネット…。
CSMA/CD!!

インター博士

よし。CSMA/CDにより、衝突がなるべく発生しないように送信を行う方法が決定された。
そして、誰にフレームを届けるかをレイヤ2で決定する。

ネット助手

MACアドレスですね。

インター博士

そうだ。これらの制御によって、物理的に接続されているデバイス間でデータは転送される。
だがしかし、より広範囲のネットワークでは、レイヤ2だけでは役不足だ。

ネット助手

レイヤ3の登場ですか。

インター博士

レイヤ3はネットワーク間のデータ転送を制御する。
ルータにより、このネットワーク間のデータ転送を行う。

ネット助手

レイヤ3はなんか盛りだくさんでしたよね。

インター博士

レイヤ3はあくまでもネットワークとネットワークを繋ぐレイヤだ。
ネットワーク内のデータ転送はイーサネットやIEEE802.5が行う、という点を忘れないように。

ネット助手

はい。

■ TCP/IPモデル

インター博士

いよいよ、次回からはレイヤ4の説明だ。
実際は、TCPUDPという2つのプロトコルの説明が中心となる。

ネット助手

てぃーしーぴー、ゆーでぃーぴー。

インター博士

うむ。
これらのプロトコルを説明する前に、TCP/IPモデルについて話しておこう。

ネット助手

てぃーしーぴーあいぴー・もでる?
モデルってことは、OSI参照モデルみたいなモデルですか?

インター博士

以前話したとおり、OSI参照モデルはガイドラインだ。
実際の仕様はOSIモデルに沿って考え出されるが、そっくりそのままでなくてもよい

ネット助手

あ〜、なんか聞き覚えありますね。
レイヤ2のところでそんな話をしてたような。

インター博士

そうだな。
レイヤ2がIEEEではLLC副層とMAC副層に分かれてる、という話で同じ話をした。

ネット助手

そうそう。
OSI参照モデルに反してないんですか、と聞いた覚えがあります。

インター博士

うむ、そういう話をしたな。
同様に、現在のネットワークのデファクトスタンダード・プロトコル、TCP/IPも、モデルを持っている。

ネット助手

TCP/IPがですか?

インター博士

そうだ。
TCP/IP環境で使用できるアプリケーションやプロトコルを開発するには、このTCP/IPモデルに従う必要がある。

ネット助手

ははぁ。

インター博士

TCP/IPモデルは以下のような階層構造になっている。

OSI参照モデル TCP/IPモデル
レイヤ7:アプリケーション層アプリケーション層
レイヤ6:プレゼンテーション層
レイヤ5:セション層
レイヤ4:トランスポート層トランスポート層
レイヤ3:ネットワーク層インターネット層
レイヤ2:データリンク層ネットワークインタフェース層
レイヤ1:物理層

[Table37-01:OSI参照モデルとTCP/IPモデル]

ネット助手

4層?

インター博士

うむ、レイヤ7・6・5をまとめてアプリケーション層に。
レイヤ1・2をまとめて、ネットワークインタフェース層にしている。

ネット助手

レイヤ3も名前が変わってますね。
ネットワーク層から、インターネット層に。

インター博士

そうだな。
これもまた以前話したが、TCP/IPは複数のプロトコルの集合体だ。

ネット助手

TCP/IPぷろとこる・すいーと、でしたっけ。

インター博士

その通りだ。
そして、この複数のプロトコルは、TCP/IPモデルの4層にそれぞれ以下のように配置されている。

TCP/IPモデルプロトコル
アプリケーション層HTTP
FTP
DNS
SMTP
telnetなど
トランスポート層TCP・UDP
インターネット層IP
ネットワークインタフェース層 

[Table37-02:TCP/IPプロトコル・スイート]

ネット助手

ネットワークインタフェース層には何もないですよ?

インター博士

うむ。
ネットワークインタフェース層には、イーサネットやIEEE802.5、WAN用のPPP。さらに10BASE-TやADSL、ISDNといったものがすべて入っている。

ネット助手

では、何故上の表にいれないんですか?

インター博士

これらは、TCP/IP専用というわけではないからな。
IPX/SPXでも使えるものだ。

ネット助手

なるほど。

インター博士

実際、完全にOSI参照モデルとTCP/IPモデルは一致しない
例えば、レイヤ4のTCPとUDPはレイヤ5の機能を持っていたりする。

ネット助手

へぇ。
それはなんか変な話ですね。

インター博士

確かにそうだな。
これは、OSI参照モデルはすべての通信ネットワークのモデルとして組み立てられているが、TCP/IPモデルはそうではない、という所からきている。

ネット助手


どういうことです?

インター博士

OSI参照モデルは、あくまですべての通信の「モデル」なのだよ。
実際例とは違ってくるのは多少はしょうがない。

ネット助手

ははぁ。

インター博士

さて、TCP/IPモデルの特徴は、トランスポート層ではTCP・UDPが。インターネット層ではIPが使われている、という点だ。
どのようなアプリケーションでも、これらを使用する。

ネット助手

はい、そうなりますね。

インター博士

つまりIP・TCP/UDPを使えるようにしておけば、どんなアプリケーションでも大丈夫という形なわけだ。
非常に柔軟性の高いモデルであるといえる。

ネット助手

ははぁ。
アプリケーションを作りやすい、ってことですか。

インター博士

うむ。そう考えてもらって問題はない。
この特徴が、インターネットをデファクトスタンダードへ押し上げたと考えることも可能だ。

ネット助手

アプリケーションが作りやすいと、色々なものができますものね。
そうすると、使い勝手がよくなりますしね。

インター博士

その通りだ。
現在のインターネットはもちろんTCP/IPが使われている。インターネットを考えるには、TCP/IPモデルで考えた方がわかりやすい

ネット助手

そういうもんですか?

インター博士

うむ。
もちろん、OSI参照モデルの仕組みを知っていないと、TCP/IPモデルはわからないがな。
さて、今回はこのへんにしておこう。

ネット助手

はい。

インター博士

次回はいよいよレイヤ4だ。

ネット助手

了解です。
3分間ネットワーキングでした〜♪

TCP
[Transmission Control Protocol]
UDP
[User Datagram Protocol]
ネット助手ネット君の今日のポイント
  • いままでのレイヤ1〜3の流れを忘れないでおこう。
  • インターネットではTCP/IPモデルが使われる。
  • TCP/IPモデルは4層から成り立っている。

3 Minutes NetWorking No.37

管理人:aji-ssz(at)selene.is.dream.jp