TCP/IP通信プロトコルの4階層モデルにおいて、UDPとTCPは共にクライアントや利用者とサーバー間の通信チャネルを構築するプロトコルである。
両者は同じくトランスポート層(第3層)に位置し、利用するアプリケーション(メール受送信、ウェブサイト閲覧、動画視聴、音声など)によって使い方も通信品質も異なる。
関連商品:S5860-20SQ(20x10Gb SFP+、4x25Gb SFP28)|164,697円
目次
TCPとUDP、定義から見る違い
UDPとは
UDPとは、User Data Protocolの略語で、高速通信を重視する通信プロトコルである。
UDPはコネクションレス型通信プロトコル(事前のやり取りなしで通信を開始させる)として、動画配信、音声通話、モニター監視などのリアルタイム的な分野で活用される。高速通信を実現した代わりに、パケットロスによる低い信頼性が出てくる。
図1:TCP/IP4階層モデルにおけるUDPとTCP
TCPとは
TCPとは、Transmission Control Protocolの略語で、高い信頼性で安定した通信を重視する通信プロトコル。
TCPはコネクション型通信プロトコル(事前のやり取りを確認した上で通信を開始させる)として、ウェブサイト閲覧、ファイル転送などのデータ完全性が求められるアプリケーションで実用される。安全かつ安定した高信頼性のデータ転送を実現した一方、転送速度は今ひとつで、UDPより劣っている。
TCPとUDP、構造から見る違い
TCPパケットには、3ウェイハンドシェイクの通信動作をサポートする情報が含まれる。例えば、受信確認や返事を記す「ACK」、通信を要求する「SYN」、パケット通信の順番を示す「シーケンス番号」などが付いているため、相当な負荷がかかる。
図2:UDPとTCPの構造的違い
UDPパケットには、送信元ポート番号と宛先ポート番号が含まれるが、確認応答、再送制御などの情報は存在しないため、通信にかかった負荷もTCPより軽い。
TCPとUDP、動作から見る違い
UDPと比べて、安全かつ安定した通信を果たしたTCPの動作は複雑で持続的な通信が必要である。
3ウェイハンドシェイクによるTCP通信伝送路の確立
TCPに基づくデータ通信を実行する前に、受送信両側間のコネクション成立が必須となる。そのコネクションの確立を実現した手順は「3ウェイハンドシェイク」と呼ばれる。
◉ SYNパケット(Synchronize Packet):コネクション確立の前に、クライアントからサーバーに送られるパケットで、最初の接続の申し入れである。◉ ACK番号(ACKnowledgement):確認応答番号で、宛先に応答を返すために送る信号パケットである。
図3:3ウェイハンドシェイク通信動作の手順
UDPの通信動作
事前の通知や前触れもなく、通信を開始するのはUDPの特徴である。そのため、通信の品質を引き換えにリアルタイムの高速通信を実現した。
図4:UDPの通信動作の手順
UDPとTCP、データ転送に必要なポート番号の違い
ポート番号とは、通信相手を特定するために用いられる番号で、アプリケーションによって変わる。例えば、ウェブサイトを閲覧していると同時に音声電話をする場合に、データを分類して正しいアプリケーションに送り届ける。
いわば、正しいデータを正しいアプリケーションに届けるために利用する識別番号である。
下記の図に示すように、クライアント側でポート番号がランダムに割り当てられるが、対応サーバー側ではプロトコルによって特定のポート番号が割り当てられる。そのポート番号に基づき、宛先を識別して受送信する。
図5:アプリケーションによる異なるポート番号
UDPとTCP、違いを図表で求めると
プロトコル |
UDP |
TCP |
通信 |
コネクションレス型 |
コネクション型 |
転送速度 |
高速 |
低速 |
信頼性 |
低い |
高い |
対応/上位プロトコル |
DNS、DHCP、SNMPなど |
HTTP、POP、FTPなど |
実用例 |
音声通話、動画視聴など |
ウェブサイト閲覧、メール受送信など |
メリット・特徴 |
1、オーバーヘッドが少ない 2、パケットロスによる低い信頼性 3、高速なデータ転送 |
1、オーバーヘッドが大きい 2、高信頼性:データ欠落が発生しない 3、低速だが安定したデータ転送 |