⑨ネットワーク基礎

TCPとUDPの違いを徹底解説【3ウェイハンドシェイク・ポート番号・HTTPとHTTPSの仕組み】

⑨ネットワーク基礎
記事内に広告が含まれています。

「HTTPとHTTPSの違いは?」「TCPとUDPはどう使い分けるの?」この記事ではWebエンジニアが必ず知っておくべきTCPとUDP、そしてHTTP・HTTPSの仕組みを解説します。

TCPとUDPの違い

比較項目TCPUDP
正式名称Transmission Control ProtocolUser Datagram Protocol
接続の確立3ウェイハンドシェイクで確立接続なし(コネクションレス)
信頼性高い(データ到達・順序を保証)低い(到達・順序を保証しない)
速度遅い(確認応答のオーバーヘッド)速い(オーバーヘッドが少ない)
主な用途Web・メール・ファイル転送・SSHDNS・動画ストリーミング・ゲーム・VoIP
プロトコル例HTTP・HTTPS・FTP・SMTP・SSHDNS・DHCP・NTP・QUIC

TCPの3ウェイハンドシェイク

TCPで通信を始める前に、送受信双方が「準備OK?」を確認し合う手順が3ウェイハンドシェイクです。

クライアント                サーバー
    |                         |
    |--- SYN(接続要求)----→  |
    |                         |
    |←-- SYN-ACK(承認)---   |
    |                         |
    |--- ACK(確認応答)----→  |
    |                         |
    |====通信開始===========  |

ポート番号と主要プロトコル

ポート番号プロトコル用途
20・21FTPファイル転送
22SSH安全なリモートログイン
25SMTPメール送信
53DNS名前解決(TCP・UDP両方)
80HTTPWeb通信(暗号化なし)
443HTTPSWeb通信(TLS暗号化あり)
3306MySQLMySQLデータベース
5432PostgreSQLPostgreSQLデータベース

HTTPとHTTPSの違い

HTTPは通信内容が平文(暗号化なし)のため、盗聴・改ざんのリスクがあります。HTTPSはTLS(Transport Layer Security)で通信を暗号化するため、パスワードやクレジットカード情報を安全に送れます。

# Linuxで使用中のポートを確認
ss -tlnp          # TCP listening ポート一覧
ss -ulnp          # UDP listening ポート一覧
nmap localhost     # ローカルの開放ポートスキャン

# 特定ポートへの接続テスト
curl -v http://example.com:80
nc -zv example.com 443  # netcat でポート接続確認

# curlでHTTPS通信の詳細確認
curl -v https://example.com 2>&1 | grep -E "TLS|SSL|cipher"

「なぜかAPIにつながらない」というトラブルで、ファイアウォールが443番ポートを閉じていただけということが実務では珍しくありません。ss -tlnpでサーバー側のポートが開いているか、ファイアウォールのルールを確認するのが先決です。

hobbyshift管理人

まとめ

  • TCPは信頼性重視(Web・SSH・メール)、UDPは速度重視(DNS・ストリーミング)
  • TCP通信は3ウェイハンドシェイクで接続確立してからデータ送受信を開始する
  • ポート番号は通信の種類を区別するために使われる(80=HTTP・443=HTTPS・22=SSH)
  • HTTPSはTLSで暗号化された安全なHTTP通信。現代のWebサイトでは必須

コメント

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