このページでは、OSI基本参照モデルの7層とTCP/IPの4層、MACアドレス・IPアドレス・ポート番号の役割、ネットワークをまたぐ通信の流れがわかります。
- 一言で言うと:
- 違うメーカーや世代の機器どうしでも話が通じるように、通信の約束ごと(プロトコル)を階層に分けて標準化した話
- 標準化のためのモデルがOSI基本参照モデル(7層)、実際にインターネットで使われているのがTCP/IP(4層)
7層の地図(OSI基本参照モデル)→ 実際のセット(TCP/IPプロトコルスイート)→ 3つの住所(MACアドレス・IPアドレス・ポート番号)→ ネットワークをまたぐ通信
覚え方の軸
- 7層は、下から「物・デ・ネ・ト・セ・プ・ア」
- 物理 → データリンク → ネットワーク → トランスポート → セション → プレゼンテーション → アプリケーション
- 下の4層(1〜4)が下位層、上の3層(5〜7)が上位層
- TCP/IPの4層は、OSIの7層をまとめ直したもの
- 1・2層 → ネットワークインタフェース層、3層 → インターネット層、4層 → トランスポート層、5〜7層 → アプリケーション層
- 住所は層ごとに3つある
- データリンク層はMACアドレス(隣の機器まで)、ネットワーク層はIPアドレス(最終の宛先まで)、トランスポート層はポート番号(その機器の中のどのアプリか)
- 例えば、MACアドレスは「次に渡す配達員」、IPアドレスは「届け先の住所」、ポート番号は「その家の中の誰宛てか」
- ネットワークをまたぐと、MACは付け替え、IPは最後まで同じ
- 同じネットワークの中はデータリンク層の通信、ネットワークを越えるのはネットワーク層の通信
- ヘッダは、上の層から順に外側へ付いていく
- データ → TCPヘッダ(セグメント)→ IPヘッダ(パケット)→ MACヘッダ(フレーム)
OSI基本参照モデル:通信を7つの層に分ける
- OSI基本参照モデル:
- OSIは、Open System Interconnectionの略
- 異なる設計思想や世代のシステムとの通信を、円滑に行うことを目的に標準化された
- プロトコルの単機能化と、交換の容易さを目的として、7つの層に分けている
- 階層化の利点:
- 一部の階層の技術が変わっても、その階層だけ取り替えればよいので、コストを最小にできる
- 例えば、ケーブルを光ファイバに変えても(物理層)、メールソフト(アプリケーション層)は作り直さなくてよい
各層の役割(★)
| 層 | 名前 | 役割 | 例 |
|---|---|---|---|
| 7(上位層) | アプリケーション層 | やりとりされたデータの意味内容を直接扱う。アプリケーションごとに特化したプロトコル | SMTP(メール)、HTTP(Webアクセス) |
| 6(上位層) | プレゼンテーション層 | データの表現形式を管理する。文字コードや圧縮の種類などのデータの特性を決める | − |
| 5(上位層) | セション層 | 通信の目的に合わせて、データの送受信管理をする。コネクション確立やデータ転送のタイミング管理を行い、特性の違う通信の差を吸収する | − |
| 4(下位層) | トランスポート層 | エラーの検出・再送などのデータ転送の制御で、通信の品質を保証する。ポート番号で、ノード内のアプリケーションを特定する | TCP、UDP |
| 3(下位層) | ネットワーク層 | エンドツーエンド(送信元から最終の宛先まで)のやりとりを決める。ここのアドレスは、通信の最初から最後まで一貫している | IP |
| 2(下位層) | データリンク層 | 同じネットワークにつながった隣接ノード間の通信を決める | HDLC手順、MACフレームの規格 |
| 1(下位層) | 物理層 | システムの物理的・電気的な性質を決める。デジタルデータを、電流の波形や電圧の高低にどう割り付けるか、ケーブルの抵抗、コネクタピンの形状など | − |
- ネットワーク層とデータリンク層のアドレスの違い:
- MACアドレスなどのデータリンクアドレスは、ローカルネットワークの中だけで有効
- だから、ネットワークを越えるときは付け替える必要がある
- ネットワーク層のアドレス(IPアドレス)は、通信の最初から最後まで同じ
- 7層の覚え方:
- 下から「物・デ・ネ・ト・セ・プ・ア」
- 上から「ア・プ・セ・ト・ネ・デ・物」(「アプセトネデブ」)
プロトコルとサービス
- N層:
- OSI基本参照モデルで、それぞれの階層のこと
- エンティティ:
- N層にある、通信機器などの実体
- プロトコル:
- N層に属するエンティティどうし(同じ層どうし)が、相互に通信をするための取り決め
- 例えば、送り手のトランスポート層と、受け手のトランスポート層の間の約束
- サービス:
- 上の層は下の層を使いながら通信するので、異なる階層のエンティティどうしが通信する窓口が必要
- この窓口を下位層が提供する機能のこと
- サービスアクセスポイント:
- N層がN+1層にサービスを提供する接点(窓口)
- プロトコルに沿うことの利点:
- プロトコルに沿った仕様で製品を作れば、異なるベンダの機器でも通信できる
- プロトコルとサービスの例え:
- プロトコルは、日本の社長とアメリカの社長が「英語で話そう」と決める約束(同じ立場どうし)
- サービスは、社長が秘書に「この手紙を出しておいて」と頼む窓口(上と下の立場)
TCP/IPプロトコルスイート:インターネットで使う4層のセット(★)
- プロトコルの相性:
- 1つの通信システムは、物理層からアプリケーション層まで、いろいろなプロトコルを組み上げて作る
- 「ネットワーク層がこれなら、トランスポート層はこれにするとトラブルがない」という相性がある
- プロトコルスイート:
- 同じ団体が作ったプロトコルは、セットで使われることが多い。このセットのこと
- TCP/IPプロトコルスイート:
- IPを中心に組まれた、最も代表的なプロトコルスイート
- 独自の階層モデル(4層)を持つ
- TCPとIP:
- TCPもIPも独立したプロトコル
- IPはOSIのネットワーク層、TCPはトランスポート層に当たる
TCP/IPの階層
| TCP/IPの層 | OSIの層 | 実装例 |
|---|---|---|
| アプリケーション層 | アプリケーション層、プレゼンテーション層、セション層(5〜7層) | HTTP、SMTP、FTP、DHCP、DNS、SNMP、POP3、Telnet |
| トランスポート層 | トランスポート層(4層) | TCP、UDP |
| インターネット層 | ネットワーク層(3層) | IP、ICMP など |
| ネットワークインタフェース層 | データリンク層、物理層(1〜2層) | イーサネット |
① TCP/IPの通信
- パケット:
- TCP/IPでは、データをパケットという単位に区切り、各パケットにヘッダを付けて送る
- パケット交換方式:
- TCP/IPでは、パケット交換方式でデータのやりとりをする(後の「交換方式」で扱う)
- ヘッダ:
- 各階層ごとに付けられ、次の階層へ渡される
- その階層で必要な送信元、送信先、大きさ、順番など、パケット自体の情報が入っている
- IPヘッダやTCPヘッダの中身は、後で詳しく扱う
ヘッダ付加のイメージ
- トランスポート層:
- ポート番号で通信するためのTCPヘッダを付ける
- ネットワーク層:
- IPアドレスで通信するためのIPヘッダを付ける
- データリンク層:
- MACアドレスで通信するためのMACヘッダを付ける
- ヘッダを付けたものの呼び名:
- TCPヘッダを付けたものはTCPセグメント
- IPヘッダを付けたものはIPパケット
- MACヘッダを付けたものはMACフレーム、またはイーサネットフレーム
- ヘッダ付加の例え:
- 手紙(データ)を「部署名を書いた封筒(TCP)」に入れ、それを「住所を書いた封筒(IP)」に入れ、さらに「次の配達所宛ての袋(MAC)」に入れる。受け取った側は、外側から順に開ける
② 3つのアドレス(★)
- MACアドレス:
- イーサネットやFDDIで使う物理アドレス
- データリンク層で使い、同じネットワークにつながった隣接ノード間の通信で、相手を識別する
- MACは、Media Access Controlの略
- MACアドレスの構成:
- 長さは6バイト(48ビット)
- 先頭24ビットがOUI(ベンダID)、後ろ24ビットが固有製造番号(製品に割り当てた番号)
- MACアドレスの管理:
- 機器が固有に持つ番号なので、必ず一意に決まるようにIEEEが管理している
- IPアドレス:
- ネットワーク層のプロトコルIPで使う、ノードを特定するためのアドレス
- ポート番号:
- トランスポート層で、ノード内のアプリケーションを識別するための番号
- 指定できる範囲は、TCPやUDPごとに0〜65535
- ウェルノウンポート(well-known ports):
- 0〜1023の番号。FTPやHTTPなど、よく使われるアプリケーションのポート番号
ウェルノウンポートの代表例(★)
| プロトコル | ポート番号 |
|---|---|
| SSH | TCP 22 |
| Telnet | TCP 23 |
| SMTP | TCP 25 |
| DNS | UDP 53 |
| HTTP | TCP 80 |
| POP3 | TCP 110 |
| NTP | UDP 123 |
| IMAP4 | TCP 143 |
| SNMP | UDP 161 |
| SNMP Trap | UDP 162 |
| HTTPS | TCP 443 |
- ポート番号の覚え方:
- 20番台は「SSH 22 → Telnet 23 → SMTP 25」と、遠隔操作とメール送信
- HTTPは80、HTTPSは443、POP3は110、IMAP4は143
- セキュリティ分野の攻撃でも、SMTPの25番(OP25B)、DNSのUDP 53番・NTPのUDP 123番(リフレクタ攻撃)が出てくる
③ ネットワーク間の通信
- ネットワーク間の通信の基本:
- 同じネットワークにつながったノード間は、データリンク層の通信
- ネットワークを越えたノード間は、ネットワーク層の通信
- 例(ノードA → ノードB):
- ノードBは、ノードAのデータリンク層の通信が届く範囲の外にあるので、直接は通信できない
- 「ノードA → ルータA → ルータB → ノードB」の順に、パケットを届ける
- そのため、ノードAには、宛先であるノードBのIPアドレスと、ルータAのMACアドレスが必要
- 流れ:
- まず、ルータAにパケットを届ける。同じデータリンク層の範囲なので、MACアドレスを使う
- ルータAは、宛先IPアドレスに届けるため、ルータBに転送する
- ルータBからノードBへも同じ
- 宛先アドレスの変わり方:
- 宛先IPアドレスは、最初から最後までノードBのまま
- 宛先MACアドレスは、ルータA → ルータB → ノードBと、区間ごとに付け替わる
- 例え:
- 東京から大阪の友だちに荷物を送る。伝票の届け先(IPアドレス)はずっと「大阪の友だち」。でも、トラックの行き先(MACアドレス)は「近くの集配所 → 大阪の集配所 → 友だちの家」と区間ごとに変わる
混同しやすいペア
- 上位層 / 下位層
- 上位層は、5〜7層(セション、プレゼンテーション、アプリケーション)
- 下位層は、1〜4層(物理、データリンク、ネットワーク、トランスポート)
- プレゼンテーション層 / セション層
- プレゼンテーション層は、データの表現形式(文字コード、圧縮)を決める
- セション層は、コネクション確立やデータ転送のタイミングを管理する
- トランスポート層 / ネットワーク層
- トランスポート層は、通信の品質を保証し、ポート番号でアプリを特定する(TCP、UDP)
- ネットワーク層は、エンドツーエンドの通信を決め、IPアドレスで宛先を特定する(IP)
- ネットワーク層 / データリンク層
- ネットワーク層は、最初から最後まで一貫したアドレス(IPアドレス)で、ネットワークを越えて届ける
- データリンク層は、ローカルネットワーク内だけで有効なアドレス(MACアドレス)で、隣の機器まで届ける
- プロトコル / サービス
- プロトコルは、同じ層のエンティティどうしの取り決め
- サービスは、下位層が上位層に提供する窓口の機能
- OSI基本参照モデル / TCP/IP
- OSI基本参照モデルは、7層。標準化のためのモデル
- TCP/IPは、4層(アプリケーション、トランスポート、インターネット、ネットワークインタフェース)。実際に使われているプロトコルスイート
- インターネット層 / ネットワークインタフェース層
- インターネット層は、OSIのネットワーク層に当たる(IP、ICMP)
- ネットワークインタフェース層は、OSIのデータリンク層と物理層に当たる(イーサネット)
- TCPセグメント / IPパケット / MACフレーム
- TCPセグメントは、TCPヘッダを付けたもの
- IPパケットは、IPヘッダを付けたもの
- MACフレーム(イーサネットフレーム)は、MACヘッダを付けたもの
- MACアドレス / IPアドレス / ポート番号
- MACアドレスは、データリンク層。隣接ノードを識別する(6バイト、IEEEが管理)
- IPアドレスは、ネットワーク層。ノードを特定する
- ポート番号は、トランスポート層。ノード内のアプリケーションを識別する(0〜65535)
- OUI / 固有製造番号
- OUIは、MACアドレスの先頭24ビット。ベンダID
- 固有製造番号は、後ろ24ビット。製品に割り当てた番号
- ウェルノウンポート / それ以外のポート
- ウェルノウンポートは、0〜1023。よく使われるアプリケーション用
- それ以外は、1024〜65535
- 宛先IPアドレス / 宛先MACアドレス(ネットワーク間の通信)
- 宛先IPアドレスは、最後まで変わらない(最終の宛先)
- 宛先MACアドレスは、区間ごとに付け替わる(次の機器)