0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

トランスポート層:TCPとUDPの違い

Last updated at Posted at 2025-06-25

追記していく

TCP(Transmission Control Protocol)

品質重視の通信プロトコル。

送ったデータが相手側にきちんと届いたか、その都度確認しながら通信するため、信頼性は高いが通信速度は低いという特徴がある。

理解のポイント

  • トランスポート層に属するプロトコルでインターネットなどに利用
  • データ転送時に欠けがある場合でも、シーケンス番号とACK(確認応答)を用いた再送制御 (リトランスミッション)という仕組みがある
  • 例を挙げると会話のキャッチボール↓

送り手は相手から「受け取った」と返事がくれば安心する。
もし、返事が来なければきちんと届いてないんだな。
もう一度送ろう(再送制御)という流れになる。

UDP(User Datagram Protocol)

速度重視の通信プロトコル。

送ったデータを相手に届いたかを確認しないで通信するやり方。確認作業(ACK)を省略するので、転送速度は高いが信頼性が低いという特徴がある。

理解のポイント

  • 接続の確立なし(コネクションレス)で即データを送信
  • 相手の受信確認(ASK)を取らない、投げっぱなしの通信
  • データが欠けても再送せずに次に進む
  • 音声通話、動画配信、オンラインゲームなどリアルタイム通信に向いている

データが多少欠けても音や映像が一瞬飛ぶだけなので許容される

もしTCPとUDPがなかったら?

データ通信のルールがなくなる

TCPとUDPはどちらもどのようにデータを運ぶのかを決めるプロトコル。
これがないと、

  • 誰に向けて送るのかも決めれない
  • 一度にどれだけ送る目安もない
  • データが壊れたかどうかもわからない
  • 順番がバラバラになっても修正されない

インターネットが成り立たないレベルの問題

OSIモデルの第4層が崩壊

トランスポート層がなくなるとアプリケーション自体がデータの分割・順序管理・再送・エラー処理などの転送処理をすべて担うことになる。

処理内容 本来の担当 トランスポート層がない場合
データの分割 TCPがやる アプリが自前で分割
パケット順の管理 TCPのシーケンス番号 アプリが順番を記録・並べ替える
欠損検知 TCPのACKで確認 アプリが送信・受信のログを比較
再送処理 TCPの再送制御 アプリが「届いてない」と判断し再送
エラー検出 TCPヘッダのチェックサム アプリが自前で整合性確認

TCPやUDPがあるから、アプリは本来の機能(UIや処理)に集中できる

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?