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の違いについて

Posted at

TCP (Transmission Control Protocol)について

TCP(Transmission Control Protocol)は、インターネット上でデータを確実かつ順番通りに送るためのルール(プロトコル)の一つです。

例えるなら、TCPは宅配便のサービスのようなものです。

  • 接続してから送る: 送る前に、相手に「これから送りますね」と声をかけ(コネクション確立)、準備ができてから荷物を送ります。
  • 確実に届ける: 送った荷物がちゃんと届いたかを確認し、もし届いていなければ再送します。
  • 順番通りに届ける: バラバラに送った荷物も、相手に届くときには元の順番通りに並べ替えてくれます。

このように、TCPは信頼性が高く、順番が重要なデータのやり取りに向いています。例えば、ウェブサイトの閲覧(HTTP/HTTPS)、メールの送受信(SMTP、POP3、IMAP)、ファイルのダウンロード(FTP)などで使われています。

TCPの主な特徴

  • コネクション型: 通信を始める前に、送信側と受信側の間で仮想的な接続を確立します(3ウェイハンドシェイク)。
  • 信頼性が高い: データの到達確認や再送制御などにより、データが確実に相手に届くことを保証します。
  • 順番保証: 送信したデータは、受信側で送信された順序通りに再構成されます。
  • フロー制御: 受信側の処理能力に合わせて、送信側の送信速度を調整します。
  • 輻輳制御: ネットワークの混雑状況に応じて、送信速度を調整します。

TCP(Transmission Control Protocol)は、その信頼性の高さから、様々なアプリケーションで幅広く利用されています。主な用途としては、以下のようなものがあります。

  • Webブラウジング (HTTP/HTTPS): ウェブサイトのテキスト、画像、動画などのコンテンツを正確に取得するために使われます。HTTPSはHTTPに暗号化を加えたもので、より安全な通信を実現します。
  • 電子メール (SMTP, POP3, IMAP): メールサーバーとの間でメールを送信(SMTP)、受信(POP3, IMAP)する際に、メッセージが確実に届くようにTCPが利用されます。
  • ファイル転送 (FTP, SFTP): ファイルをサーバーにアップロードしたり、ダウンロードしたりする際に、データが破損なく正確に転送されるようにTCPが使われます。SFTPはFTPに暗号化を加えたものです。
  • リモートログイン (SSH, Telnet): 遠隔のコンピュータに安全にログインして操作したり(SSH)、古いシステムでテキストベースの接続を行ったり(Telnet)する際に、コマンドや応答が正確にやり取りされるようにTCPが用いられます。
  • データベース接続: アプリケーションがデータベースサーバーと通信し、データの読み書きを行う際に、トランザクションの整合性などを保つためにTCPが利用されます。

UDP (User Datagram Protocol)について

UDP(User Datagram Protocol)は、TCPと同じくインターネット上でデータを送るためのプロトコルですが、TCPとは対照的に、高速性を重視した、よりシンプルな仕組みを持っています。

TCPを宅配便に例えるなら、UDPは手紙やメール便のようなイメージです。

  • 送るだけ: 送る前に相手との準備(コネクション確立)をせず、荷物が届いたかの確認もしません。とにかくデータを送るだけです。
  • 早く届くかも: 確認や順番の管理などをしない分、TCPよりも早く相手に届く可能性があります。
  • 届かないこともある: 途中でデータが失われたり、順番が入れ替わったりする可能性がありますが、再送は行いません。

このように、UDPは信頼性よりも速度が重要なデータのやり取りに向いています。例えば、以下のような用途で使われています。

  • 動画や音声のストリーミング
  • オンラインゲーム
  • DNS (Domain Name System)
  • VoIP (Voice over IP)

UDPの主な特徴

  • コネクションレス型: 通信を始める前に接続を確立する手続きがありません。
  • 信頼性が低い: データの到達保証や順番の保証、再送制御などがありません。
  • 高速: 事前準備や確認などの処理がないため、TCPよりも高速にデータを送信できます。
  • オーバーヘッドが小さい: ヘッダ情報などがTCPに比べて小さいため、ネットワークの負荷が低くなります。

TCPとUDPの比較

特徴 TCP UDP
接続 コネクション型 (接続確立が必要) コネクションレス型 (接続不要)
信頼性 高い (到達保証、順番保証、再送制御あり) 低い (到達保証、順番保証、再送制御なし)
速度 比較的遅い 速い
オーバーヘッド 大きい 小さい
主な用途 Webブラウジング、メール、ファイル転送 ストリーミング、オンラインゲーム、DNS

どちらのプロトコルを使うかは、アプリケーションの要件によって決まります。信頼性が重要な場合はTCP、速度やリアルタイム性が重要な場合はUDPが選択されることが多いです。

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?