■ おさらい・レイヤ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アドレスはデフォルトゲートウェイのアドレスとして取得済みだ。
[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を行う。
[Figure37-06:ARP・2]
さて、これで次に受け渡しする宛先が特定できたわけだ。
ということは。
ルータYにデータを送るわけですね。
そうだ。
宛先と送信元のMACアドレスを変更し、レイヤ1で電気信号化してメディアに流す。
[Figure37-07:ルータ〜ルータ]
なるほど。これでルータYに届いたわけですね。
ルータに届いたってことはまたルーティングですよね。
うむ。ルータYがルーティングテーブルを見ると、自分と直接接続しているネットワークだとわかる。
よって、またもやARPの出番だ。
今度はホストBのMACアドレスを知りたい、と。
[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の説明だ。
実際は、TCPとUDPという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層から成り立っている。