CCNA学習108日目|Network Fundamentals(第1回)TCP/UDP比較

CCNA学習108日目のNetwork Fundamentals(第1回)アイキャッチ画像。TCPとUDPの違いを比較し、信頼性重視のTCPと高速性重視のUDPの特徴を図解した学習用サムネイル 資格学習ログ

本日からは、CCNA学習の中でも土台となる Network Fundamentals の内容に入り、今回は TCP と UDP の違い について整理しました。どちらもトランスポート層を代表するプロトコルですが、考え方はかなり異なります。ひとことで言えば、TCP は正確さ重視、UDP は速さ重視 です。まずはこの大きな違いをつかむことが、理解の入口になると感じました。

1. TCP とは何か

TCP は Transmission Control Protocol の略で、コネクション型で信頼性の高い通信を行うプロトコルです。通信を始める前に接続を確立し、送ったデータが相手に届いたかを確認しながら進めるため、多少遅くなっても「正しく届くこと」を重視する方式といえます。

TCP の重要な性質としては、次のような点があります。

  • 通信前に接続を確立する
  • 受信確認(ACK)を使う
  • 届かなければ再送する
  • データの順序を整える
  • 重複データを除きやすい
  • チェックサムで破損確認を行う

これらの仕組みがあるため、TCP は紛失・重複・順番の入れ替わり・破損といった問題に対応しやすく、信頼性の高い通信に向いています。

2. UDP とは何か

UDP は User Datagram Protocol の略で、コネクションレス型の軽量な通信プロトコルです。TCP のように事前の接続確立を行わず、基本的には必要最小限の処理でデータを送るため、まず速く届けることを重視した方式です。

UDP の重要な性質としては、次のような点があります。

  • 接続確立をしない
  • 受信確認(ACK)をしない
  • 再送制御をしない
  • 順序保証をしない
  • 軽量で高速
  • 遅延を小さくしやすい

そのため UDP は、多少の欠損があっても、まず速く届けたい通信に向いています。

TCPとUDPの全体比較を示した図。TCPのコネクション型・ACKあり・再送あり・順序制御ありと、UDPのコネクションレス型・ACKなし・再送なし・順序保証なしの違いを整理している
TCPは正確さ重視、UDPは速さ重視。まずはこの全体像をつかむと、両者の違いが理解しやすくなります。

3. TCP はなぜ信頼性が高いのか

TCP の信頼性を支えている中心的な仕組みは、番号付け・確認応答・再送です。
画像でも、TCP の仕組みとして 接続確立、ACK、再送、順序制御、チェックサム が整理されていました。 Source

まず、通信前には 3ウェイハンドシェイク によって接続を確立します。さらに、受信側は届いたデータに対して ACK を返し、送信側は ACK が返ってこなければ再送を行います。

また、TCP では順序制御により、受信側がデータを正しい順番に並べ直しやすく、重複データの扱いにも対応しやすくなっています。さらにチェックサムによって破損検出も行えるため、「多少時間がかかっても正確に届ける」 という役割に適しています。

4. UDP はなぜ速いのか

UDP が速い理由は、確認・再送・接続確立などの手順を省いているからです。
TCP のような細かな制御を行わないぶん、UDP はオーバーヘッドが小さく、シンプルにデータを送りやすくなります。その結果、遅延を小さくしやすく、リアルタイム性が重視される通信で使いやすくなります。

ただし、その代償として、

  • 一部パケットが失われる可能性がある
  • 順番が乱れる可能性がある
  • 重複する可能性がある

といった点には注意が必要です。つまり UDP は、「完璧さ」よりも「スピード」を優先する通信方式と考えると理解しやすいです。

TCPが信頼性を高める仕組みとUDPが高速な理由、さらにWeb、VoIP、動画配信、オンラインゲーム、DNSなどの用途例をまとめた図
TCPは接続確立・ACK・再送・順序制御で信頼性を高め、UDPは手順を減らすことで低遅延かつ高速な通信を実現します。

5. connection-oriented と connectionless

TCP と UDP を整理するときに大切なのが、
TCP = connection-oriented
UDP = connectionless
という考え方です。

TCP は通信前に接続を確立してからデータをやり取りするため、connection-oriented と呼ばれます。一方の UDP は、相手と事前に接続を作らず、そのままデータを送るため connectionless です。

6. TCP と UDP はどんな用途で使い分けるか

TCP が向くのは、正確に届くことが重要な通信です。
TCP の用途例として Web(HTTP/HTTPS) や 正確なデータ転送 があります。ファイル転送やWeb閲覧のように、「欠けずに正しい順序で届くこと」が大切な場面では TCP が向いています。

一方で UDP が向くのは、多少の欠損よりも速さが重要な通信です。
UDP の用途例として VoIP(音声通話)動画配信(ライブ配信など)オンラインゲームDNS があります。リアルタイム性が求められる場面では、少しの欠損よりも遅延の少なさが重要になるため、UDP が選ばれやすくなります。

まとめ

今回のポイントは、TCP は正確さ重視、UDP は速さ重視 という違いをしっかり押さえることです。TCP は接続確立、ACK、再送、順序制御、チェックサムなどによって信頼性を高めています。一方の UDP は、そうした手順を省くことで軽量かつ高速に動作し、低遅延が求められる通信に向いています。どちらが優れているというよりも、用途に応じて使い分けることが大切だと理解できました。

コメント

タイトルとURLをコピーしました