TCPとUDP:使い分け
コネクション指向のTCPとコネクションレスのUDPの違い、およびそれぞれのセキュリティ上の意味を学びます。
「TCPとUDP:使い分け」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
トランスポート層
TCPとUDPは、トランスポート層(OSI Layer 4)における2つの主要なプロトコルです。これらは、異なるホスト上のアプリケーション間でデータを送信する方法を定義します。
TCP: Transmission Control Protocol
TCPはコネクション指向のプロトコルです。データを送信する前に、3ウェイハンドシェイクによって接続を確立します。TCPは、データの到達、順序、エラーチェックを保証します。
用途: HTTP/HTTPS、SSH、SMTP、FTPなど、信頼性が必要なアプリケーションです。
3ウェイハンドシェイク
TCP接続の確立手順:
- クライアントがSYN(synchronize)を送信します
- サーバーがSYN-ACK(synchronize-acknowledge)で応答します
- クライアントがACK(acknowledge)を送信します
これで接続が確立されます。このハンドシェイクは、SYN flood攻撃の標的になります。
TCPの特徴
TCPは次の機能を提供します:
- 信頼性 — 失われたパケットを再送します
- 順序制御 — パケットを正しい順序に再構成します
- フロー制御 — 受信側が処理しきれない量のデータを送ることを防ぎます
- 輻輳制御 — ネットワークの容量に合わせて通信を調整します
UDP: User Datagram Protocol
UDPはコネクションレスのプロトコルです。最初に接続を確立せず、データグラムを送信します。到達、順序、確認応答は保証されません。
用途: DNS、VoIP、動画ストリーミング、オンラインゲーム、DHCPなど、完全性よりも速度が重視されるアプリケーションです。
UDPの特徴
UDPは高速で軽量です:
- 接続確立のオーバーヘッドがありません
- 再送による遅延がありません
- レイテンシが低くなります
- 必要に応じて、アプリケーション側で信頼性を処理する必要があります(例: UDP上のQUIC)
TCPとUDPの比較
主な違い:
- TCP: 信頼性があり、順序制御を行い、低速で、コネクション指向です
- UDP: 高速で、信頼性を保証せず、コネクションレスで、オーバーヘッドが小さいです
QUIC(HTTP/3)は、最新のWebパフォーマンス向けに独自の信頼性機能を備え、UDPを使用します。
TCPのセキュリティ上の影響
TCPのハンドシェイクには、次のようなセキュリティ上のリスクがあります:
- SYN flood: 攻撃者がハンドシェイクを完了しないまま大量のSYNパケットを送信し、サーバーのリソースを枯渇させます
- TCPセッションハイジャック: 攻撃者がシーケンス番号を予測し、確立済みのセッションにデータを挿入します
UDPのセキュリティ上の影響
UDPには接続状態がないため、次の攻撃が可能になります:
- UDP増幅DDoS: 攻撃者が被害者のIPを偽装し、少量のリクエストを開放されたUDPサービスへ送信して、容量の大きな応答を被害者へ送り返させます
- DNS増幅: 1つの小さなDNSリクエストによって、はるかに大きな応答を発生させることができます
一般的なポート番号
知っておくべき主要なポート:
- TCP 22 — SSH
- TCP 80 — HTTP
- TCP 443 — HTTPS
- UDP 53 — DNS
- UDP 67/68 — DHCP
- TCP 3306 — MySQL
- TCP 3389 — RDP
アクティブな接続を確認する
ssまたはnetstatを使用して、開いているポートと接続を確認します:
ss -tulnp
# -t TCP, -u UDP, -l listening, -n numeric, -p show processクイックチェック: TCPとUDP
コンピューターからドメイン名を解決するためにDNSクエリを送信します。どのプロトコルが使用されますか?
レッスンのまとめ
TCPは、3ウェイハンドシェイクを使用して信頼性のある順序付き配信を行うため、HTTP、SSH、SMTPに適しています。UDPは高速でコネクションレスであるため、DNS、VoIP、ストリーミングに適しています。それぞれに固有のセキュリティ上の影響があり、TCPはSYN floodやセッションハイジャックに対して脆弱で、UDPは増幅攻撃に悪用される可能性があります。
よくある質問
「TCPとUDP:使い分け」レッスンは無料ですか?
はい。「TCPとUDP:使い分け」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「TCPとUDP:使い分け」で何を学びますか?
コネクション指向のTCPとコネクションレスのUDPの違い、およびそれぞれのセキュリティ上の意味を学びます。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「TCPとUDP:使い分け」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- IPアドレスとサブネット
- TCPとUDP:使い分け
- DNS:ドメインがIPに解決される仕組み
- HTTPとHTTPSの基礎