スポンサーリンク

【応用情報技術者試験】ネットワーク理解のためにまずはOSI基本参照モデルを理解しよう(トランスポート/アプリケーション層)

OSI基本参照モデル:7つの層で通信を整理 ネットワーク

IPで宛先のネットワークへ届けたデータを、端末内のどの通信処理へ渡すか。その橋渡しを担うのがトランスポート層です。この記事ではTCP・UDP・ポート番号を整理し、HTTPやメールなどアプリケーション層のプロトコルにつなげます。

L4:TCPとUDPの役割

トランスポート層は端末間のデータ通信を上位へ提供します。信頼性の確保方法はプロトコルで違い、全てが到達確認や再送を持つわけではありません。

項目 TCP UDP
通信前の接続 接続状態を確立して管理 UDP自体の接続確立手順はない
提供するデータ 順序付けられたバイトストリーム データグラム単位
再送・順序制御 確認応答・シーケンス番号などで制御 UDP自体にはない
利用例 HTTP/1.1・HTTP/2、SMTP、SSHなど 一般的なDNSの問合せ、音声通話の一部、QUICなど

UDPは「品質が悪い通信」という意味ではありません。必要な制御を上位で実現する設計もあります。逆に、TCPを使えば回線障害や相手停止があっても必ずアプリケーションの処理が成功する、という保証にはなりません。

TCP:接続・順序・再送・流量を制御する

通常の接続確立ではSYN→SYN+ACK→ACKという3ウェイハンドシェイクを行います。これは専用の物理回線を予約する仕組みではありません。

シーケンス番号とACKで受信済みの範囲を確認し、必要に応じて再送します。ACKは受信側TCPが受け取ったことの情報で、相手のアプリケーションが保存や処理を完了したことまで意味しません。

TCPは順序を整えたバイト列を渡します。送信側で1回書き込んだ内容が、受信側でも必ず1回の読取りで同じ長さになるわけではなく、メッセージの区切りはアプリケーションで設計します。

受信側の余裕に合わせるフロー制御と、ネットワークの混雑に対応する輻輳制御も区別しましょう。TCPは誤りを検出して再送する仕組みを持ちますが、チェックサムで壊れたビットを直接訂正するわけではありません。

UDP:必要な制御を用途に合わせる

UDPにはTCPのような再送・順序制御・輻輳制御は備わっていません。その分、状態管理などの負担が小さい構成にできますが、常にTCPより高速・低遅延と断定するものではありません。アプリケーションは混雑への配慮や必要な再送などを設計します。

ブロードキャスト対応はIPの版やネットワーク条件にもよります。IPv6にはブロードキャストがないため、「UDPならどの環境でもブロードキャスト」とは考えません。

HTTP/3はQUICを使い、QUICはUDP上で動きます。QUICが信頼性のあるストリームや接続制御などを実現するため、「Webは必ずTCP」「UDP上なら再送や接続が絶対にない」という理解は不十分です。

セグメント・パケット・フレーム

EthernetでTCPを運ぶ例では、アプリケーションデータ→TCPセグメント→IPパケット→Ethernetフレームと包みます。UDPではUDPデータグラムがIPのデータ部に入ります。資料によってパケットを広い意味で使う場合もあるため、どの層の単位かを確認します。

ポート番号:端末内の通信の窓口

TCP・UDPのポート番号は16ビットで、値の範囲は0〜65535です。通信を識別するときは、番号だけでなくTCPかUDPか、送信元/宛先IPとポートの組も見ます。ポート番号だけから、実際に動くプログラムや安全性を断定できません。

分類 範囲
System/ウェルノウン 0〜1023(0は予約)
User/登録ポート 1024〜49151
Dynamic/Private 49152〜65535

これはIANAの分類です。各範囲の全番号が登録済みという意味ではなく、OSが一時ポートに使う実際の範囲は設定などによって異なります。

HTTP通信の往復例

例として、PCの192.168.1.100:50000からWebサーバ192.168.1.5:80へTCPで接続したとします。応答はサーバの80番からPCの50000番へ戻ります。この例では同一LAN内・NATなしとします。クライアント側まで80番を使うわけではありません。

IPv4のアドレスとポートを並べるなら192.168.1.5:80、IPv6なら[2001:db8::1]:443のようにアドレス部分を角括弧で囲む形式を使います。

L7:具体的なサービスの通信手順

アプリケーション層は、Web・メール・名前解決などのサービスの通信規約を扱います。画面やアプリ全体がそのまま一つの層、という意味ではありません。TCP/IPの説明では、OSIの上位3層相当をまとめてアプリケーション層として扱うこともあります。

プロトコル 代表的な使用先ポート 役割・注意
DNS UDP/TCP 53 名前に対応する各種レコードの問合せ。IPへの変換だけではない
HTTP TCP 80 暗号化を伴わないHTTPの代表値
HTTPS TCP 443、HTTP/3では通常UDP 443 TLSやQUICを使ったHTTP。TLS全般の専用番号ではない
FTP TCP 21:制御。能動モードのデータ接続で通常20 受動モードでは別途指定したデータポートを使う。SFTPとは別方式
SMTP TCP 25:主にメールサーバ間配送 利用者からの送信は587や暗黙TLSの465などを使い分ける
POP3 TCP 110、暗黙TLSでは995 メールの受信・取出し
IMAP TCP 143、暗黙TLSでは993 サーバ上のメールの参照・管理。送信そのものはSMTPなどが担当
SNMP UDP 161:要求など、162:通知の代表値 マネージャとエージェントで機器情報を扱う。版と保護設定も確認
SSH TCP 22 暗号化した遠隔操作。ホスト鍵による接続先確認と利用者認証も大切
NTP UDP 123 時刻同期

上は一般的な使用例です。設定や拡張で異なる場合もあります。平文用の番号でもSTARTTLSなどで保護する方式があり、番号だけで暗号化の有無を決めつけないようにします。

確認問題

①UDP上で動く通信は、上位も含めて必ず再送しないでしょうか。②IMAPはメールの送信を担当するでしょうか。③HTTPSの応答がPCに戻る宛先ポートは必ず443でしょうか。

解答・解説を見る

①いいえ。QUICなど上位で信頼性のある通信を実現する例があります。②いいえ。IMAPはメールの参照・管理、送信はSMTPなどです。③いいえ。通常はその接続でクライアントが使ったポートへ戻ります。

7階層とプロトコルをまとめて復習する

TCP・UDPがL4、IPがL3、HTTPやDNSがアプリケーション層という関係を確認しましょう。各層の役割と機器・プロトコルをまとめるなら、対応するnote教材へ進めます。

note:OSI基本参照モデル 完全攻略を読む

公式資料:IANAのサービス名・ポート番号一覧

公式仕様:HTTP/3(RFC 9114)

関連用語と解説記事

コメント