FE EXAM

トランスポート層(OSI参照モデル 第4層)

OSI参照モデルの第4層で、端末間の信頼性ある通信を担う層。

DIAGRAM
第4層
TCP(確実)
UDP(高速)
OSI参照モデル(7階層)7アプリケーション層Application6プレゼンテーション層Presentation5セッション層Session4トランスポート層Transport3ネットワーク層Network2データリンク層Data Link1物理層Physical端末から端末へ、確実 or 高速で届けるTCP(確実・確認あり)送信側受信側データ送信受け取った!(確認応答)→ 失敗なら再送UDP(高速・確認なし)送信側受信側どんどん送る(確認しない=速い)ポート番号でアプリごとに振り分け1台のPCIP: 192.168.1.5Webブラウザポート 80/443メールポート 25名前解決ポート 53
解説

📌
トランスポート層とは

端末から端末へ、データを過不足なく届ける送信側受信側届いたか確認しながら通信できる

トランスポート層とは、OSI参照モデル(=通信の役割を7つの層に分けて整理した世界共通の考え方)の第4層で、送信側の端末と受信側の端末の間で、データを過不足なく・正しい順序で届けるための信頼性を担う層です。

下のネットワーク層(IP)は「宛先まで運ぼうと努力する」だけで、途中でデータが欠けたり順番が入れ替わったりしても直してくれません。そこをカバーするのがトランスポート層です。必要に応じて抜けたデータを再送したり、順番を並べ直したりします。ここで扱うデータの単位をセグメントと呼びます。

身近な例で考えると、大事な書類を「配達確認付き」で送る郵便に似ています。普通郵便(IP)は届いたか分かりませんが、配達確認付き(TCP)なら相手が受け取ったかどうかを確認でき、届かなければ送り直せます。上の図解で第4層(赤くハイライト)がこの役割です。

📌
TCP/UDPの違い

トランスポート層にはTCPUDPという性格の異なる2つのプロトコルがあり、用途に応じて使い分けます。

項目TCPUDP
正式名称Transmission Control ProtocolUser Datagram Protocol
接続コネクション型(事前に握手)コネクションレス型(握手なし)
信頼性高い(再送・順序整列あり)低い(届く保証なし)
速度やや遅い(確認の手間)速い(確認しない)
用途Web・メール・ファイル転送動画配信・音声通話・DNS

両者の違いは「確実さ」と「速さ」のどちらを優先するかです。
TCP:通信前に相手と握手(コネクション確立)し、届いたか確認しながら送る。1ビットも欠けてはいけないWebページやメール向き
UDP:握手も確認もせず投げっぱなしで送る。多少欠けても困らない動画・音声のように、止まらず速いことが大事な用途向き

身近な例では、TCPは「受領印をもらう書留」、UDPは「ポストに投函するだけのチラシ」のような関係です。確実さが要るなら書留(TCP)、とにかく速く大量に届けたいならチラシ(UDP)、と覚えると区別しやすいでしょう。

📌
ポート番号の役割

同じPC内のどのアプリ宛てかをポートで区別1台のPCWeb:443メール:25DNS:53

ポート番号とは、1台のコンピュータの中で動いている複数のアプリ(通信プログラム)を区別するための番号です。IPアドレスが「どのPCか」を表すのに対し、ポート番号は「そのPCの中のどのアプリ宛てか」を表します。

同じPCがWebもメールも同時に使えるのは、ポート番号で通信を仕分けているからです。よく使われる番号はウェルノウンポート(0〜1023の予約番号)として決まっています。
80 / 443:Web(HTTP / HTTPS)
25:メール送信(SMTP)
53:名前解決(DNS)

身近な例で考えると、マンションの「部屋番号」に似ています。建物の住所(IPアドレス)まで届いた郵便を、最後に部屋番号(ポート番号)で各家庭に届けるイメージです。IPアドレスとポート番号をセットにすることで、世界中のどのアプリにも正しくデータを届けられます。

📌
TCPの3ウェイハンドシェイク

クライアントサーバ① SYN② SYN-ACK③ ACK接続確立(コネクション確立)

TCPは実際にデータを送る前に、3回のやり取り(3ウェイハンドシェイク)で相手との接続を確立します。この事前の握手こそが「確実に届く」というTCPの信頼性の基盤です。

3つのステップの意味は次のとおりです。
① SYN(Synchronize=同期):クライアントが「接続してもいいですか?」と要求を送る
② SYN-ACK(SYN + Acknowledge=了解):サーバが「いいですよ、あなたの要求も受け取りました」と返す
③ ACK(Acknowledge):クライアントが「了解しました、では始めます」と確認を返す

なぜ3回必要なのか。2回では「クライアントが送れて、サーバが受け取れる」しか確認できません。3回目のACKでサーバは「クライアントが自分の返事を受け取れる」を確認でき、両方向の通信路が正常かを確かめられます。身近な例では、電話をかけるとき「もしもし(SYN)→ はい(SYN-ACK)→ 聞こえますか(ACK)」と確認してから本題に入るのと同じ感覚です。

📌
コネクション型とコネクションレス型

TCP(コネクション型)送信側受信側3回握手→接続確立UDP(コネクションレス型)送信側受信側握手なしでいきなり送信確認応答なし(届かなくても再送しない)

TCPとUDPの最も根本的な違いが「コネクション型」と「コネクションレス型」という考え方です。コネクション(=通信路・接続)を事前に確立するかどうかで、信頼性と速度が大きく変わります。

2つの方式を比較すると次のとおりです。
コネクション型(TCP):データを送る前に3ウェイハンドシェイクで接続を確立し、通信が終わったら接続を切断する。「この部屋はあなた専用です」と席を確保してから話す電話のイメージ
コネクションレス型(UDP):事前の接続確立なしにいきなりデータを送る。「ポストに投函」のように、受け取ってもらえたかどうか確認しない

コネクションを確立することにはオーバーヘッド(余分な手間・時間)がかかります。動画のリアルタイム配信など、多少のデータ欠けより遅延がないことを優先したい場合はUDPが向いています。一方、ファイル転送やWebページの読み込みなど1バイトも欠けてはいけない場合はTCPを選びます。用途に応じてトランスポート層のプロトコルを選ぶ、というのがこの層の設計の肝です。

練習問題
Q1.OSI参照モデルのトランスポート層(第4層)の役割として最も適切なものはどれか。
Q2.TCPとUDPの違いに関する説明として最も適切なものはどれか。
Q3.ポート番号の役割として最も適切なものはどれか。

関連コンテンツ