OSI基本参照モデル
通信の機能を7階層に分け、各層の役割と相互関係を整理する参照モデル。トランスポート層は、通信網の品質の違いを補い、端から端までのデータ転送を上位層に提供する。
イマシルちゃんの解説
荷物を届けるときは、品物を包む人、行き先を決める人、車を走らせる人がいるよね。
みんなが役割と受け渡し方を決めておけば、違う車に替わっても仕事を続けやすいんだ。
途中の道路の事情を、荷物を頼んだ人が全部知る必要はないよ。
それぞれの担当が引き受ける範囲を決めると、全体を考えやすくなるんだ。
より深い解説
階層に分ける目的
OSI基本参照モデルはISO/IEC 7498-1やITU-T X.200で定められた、通信機能を整理する枠組みである。一つの通信プロトコルの名前ではなく、異なるシステムの通信機能を共通の観点で説明するために使う。
各層は、下位層のサービスを利用し、上位層へサービスを提供する。下位層の内部を変えても、受け渡しの条件を保てば、上位層への影響を抑えやすい。
各層の役割
| 層 | 名称 | 主な役割 |
|---|---|---|
| 7 | アプリケーション層 | 利用者の目的に応じた通信サービスを提供する |
| 6 | プレゼンテーション層 | データの表現形式の違いを調整する |
| 5 | セッション層 | 対話の進行や同期を管理する |
| 4 | トランスポート層 | 通信網の違いを補い、端から端までの転送を提供する |
| 3 | ネットワーク層 | 宛先への経路選択と中継を行う |
| 2 | データリンク層 | 隣接する機器間でフレームを扱い、伝送誤りの検出などを行う |
| 1 | 物理層 | 電気・光・電波などでビット列を伝送する |
表現形式の変換や対話制御は、実際のTCP/IPの実装ではアプリケーション側のプロトコルに含まれることも多い。モデル上の層と、製品内の独立したプログラムが必ず一対一になるわけではない。
トランスポート層の位置付け
途中の通信網では、パケットの損失や順序の入替わりなどが起こり得る。上位層が通信網ごとに異なる処理を作り込まなくて済むよう、必要な品質を満たす転送サービスを提供するのが、この層の役割である。
TCPは、順序管理や再送によって信頼性のある転送を提供する。一方、UDPはデータグラム単位の簡素な転送を提供し、TCPと同じ信頼性の仕組みを備えない。「この層なら、すべてのプロトコルが必ず再送する」とは判断しない。
| 区別する機能 | 主に対応する層 |
|---|---|
| 通信網をまたいで宛先へ中継する | ネットワーク層 |
| 一つのリンク上でフレームを区切る | データリンク層 |
| 通信の両端で順序や到着を管理する | トランスポート層 |
データを包んで渡す
送信側では、上位層のデータに下位層の制御情報を付けて渡す。この操作をカプセル化という。受信側では、対応する制御情報を処理して上位へ渡す。
例として、HTTPのデータをTCPのセグメントに入れ、そのセグメントをIPパケットへ入れ、さらにイーサネットのフレームで運ぶ。途中のルータでは、リンク用の制御情報を付け替えて次のリンクへ転送する。
モデルを使って切り分ける
通信障害を調べる際は、信号が届くか、同じLAN内で転送できるか、宛先への経路があるか、目的のサービスが応答するかを順に確認できる。層を意識すると、同じ「つながらない」でも調べる対象を絞れる。