ネットワークの学習をしていると、必ず出てくるのが「OSI基本参照モデル」だよね。7つの層に分かれているけど、その中でも特に重要で、応用情報技術者試験でもよく問われるのが「トランスポート層」なんだ。今回は、このトランスポート層について、おゆかよと一緒にしっかり学んでいこう!
トランスポート層とは?その役割と位置付け
OSI基本参照モデルは、ネットワーク通信を7つの層に分けて定義しているんだ。アプリケーション層が一番上で、物理層が一番下。この中で、トランスポート層は第4層に位置しているよ。第3層のネットワーク層が「どのコンピュータにデータを送るか(IPアドレス)」を決めるのに対して、トランスポート層は「そのコンピュータのどのアプリケーションにデータを送るか(ポート番号)」を担当するんだ。
例えば、あなたがWebブラウザでホームページを見ながら、同時にメールソフトでメールを送受信しているとするよね。どちらのデータも同じコンピュータに届くけど、ウェブサイトのデータはブラウザに、メールのデータはメールソフトにちゃんと振り分けられないと困るよね?
この「アプリケーション間の通信」を制御するのが、トランスポート層の大きな役割なんだ。
ポート番号の重要性と仕組み
ポート番号は、トランスポート層がアプリケーションを識別するために使う番号だよ。例えば、Webサーバーは通常「80番ポート」で通信を待ち受けているし、HTTPS通信なら「443番ポート」を使うのが一般的だね。
ポート番号には、大きく分けて3つの種類があるんだ。
- ウェルノウンポート(0~1023番):HTTP, HTTPS, FTP, SMTPなど、特定のサービスで標準的に利用されるポート番号。
- 登録ポート(1024~49151番):特定アプリケーションのために登録されたり、一時的に使用されたりするポート番号。
- ダイナミック/プライベートポート(49152~65535番):クライアントがサーバーへ接続する際などに、OSが一時的に割り当てるポート番号。
送られてきたデータには、宛先IPアドレスと宛先ポート番号が書かれていて、トランスポート層はそのポート番号を見て、適切なアプリケーションにデータを渡すんだ。これは応用情報技術者試験でも頻出だから、しっかり覚えておこう。
TCPとUDP:信頼性と速度の選択
トランスポート層で使われる代表的なプロトコルに、TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)がある。この2つの違いを理解するのは、トランスポート層をマスターする上で最重要ポイントと言えるね!
TCP:信頼性重視の通信
TCPは、信頼性の高い通信を提供するプロトコルだよ。具体的には、以下のような特徴がある。
- コネクション指向:通信を開始する前に、送信側と受信側の間に仮想的な「接続(コネクション)」を確立する。これを「3ウェイハンドシェイク」と呼ぶよ。
- 順序制御と再送制御:送ったデータの順番がバラバラになったり、データが欠けたりしないように、送る側と受け取る側で確認し合う仕組みがある。もしデータが届かなかったら、自動的に再送してくれるんだ。
- フロー制御:受信側が処理できる以上のデータが送られないように、通信速度を調整する。
- 輻輳(ふくそう)制御:ネットワークが混雑しているときに、データ量を調整してこれ以上混雑させないようにする。
これらの機能によって、TCPは送ったデータが確実に、そして正しい順序で相手に届くことを保証するんだ。ウェブページの閲覧(HTTP/HTTPS)、ファイル転送(FTP)、メール送受信(SMTP/POP3/IMAP4)など、データが正確に届くことが重要なサービスで使われているよ。
UDP:速度重視の通信
一方、UDPはリアルタイム性や速度を重視するプロトコルだね。
- コネクションレス:TCPのように接続を確立する手順がない。いきなりデータを送るんだ。
- 信頼性保証なし:データを送っても、相手に届いたかどうかの確認や、届かなかった場合の再送は行わない。順序も保証されないよ。
「え、そんなんで大丈夫なの?」と思うかもしれないけど、データが多少失われても影響が少ない、あるいはリアルタイム性がより重要なサービスで活躍するんだ。例えば、IP電話(VoIP)、オンラインゲーム、動画ストリーミング、DNS(名前解決)などで使われているね。
「TCPは丁寧で慎重な郵便局員、UDPは『届くかどうかは知らないけど、とにかく速く送る』宅配業者」と考えると、違いが分かりやすいかもしれないね。
トランスポート層と他層との連携
トランスポート層は、その上下の層と密接に連携しながら機能しているんだ。
- 上位層(セッション層、表現層、アプリケーション層)との連携:トランスポート層は、上位層から受け取ったデータを、ネットワークで転送できる「セグメント」という単位に分割するんだ。そして、上位層のアプリケーションが要求する通信の信頼性や速度に応じて、TCPかUDPのどちらで処理するか選択するよ。
- 下位層(ネットワーク層)との連携:トランスポート層が作成したセグメントには、ポート番号などの情報(ヘッダ)が付加されて、ネットワーク層に渡される。ネットワーク層は、このセグメントをさらに「パケット」という単位にカプセル化(IPヘッダを付加)して、IPアドレスに基づいたルーティングを行うんだ。ネットワーク層が「どこにデータを送るか」を決め、トランスポート層は「その先のどのアプリケーションに渡すか」を決める、という連動だね。
この層ごとのデータの受け渡しと、それぞれの層がヘッダ情報を付加していくプロセスを「カプセル化」と呼ぶことも覚えておこう。データは下層に行くほどヘッダが追加されて大きくなり、受信側では上層に行くほどヘッダが取り除かれていくよ。
まとめ
応用情報技術者試験合格を目指すおゆかよ、トランスポート層のイメージはつかめたかな?
トランスポート層は、多数のアプリケーションが同時に通信を行う現代のネットワークにおいて、データを正確かつ効率的に届けるための、まさに「交通整理の要」だと言えるね。
今日のポイントをもう一度おさらいしておこう。
- 役割:アプリケーション間の信頼性のあるデータ転送(エンドツーエンド通信)
- 識別子:ポート番号を使用してアプリケーションを特定し、データを振り分ける
- 主要なプロトコル:
- TCP:信頼性重視(コネクション確立、再送制御、フロー制御、輻輳制御)。Web閲覧、ファイル転送など。
- UDP:速度重視(コネクションレス、信頼性保証なし)。IP電話、オンラインゲーム、DNSなど。
- 他層との連携:上位層からデータを受け取りセグメント化、下位層(ネットワーク層)にIPアドレスと連携させて渡す。
これらの知識は、応用情報技術者試験だけでなく、実際のネットワーク技術を理解する上でも非常に役に立つから、しっかり復習しておくことをおすすめするよ!




コメント