ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
UDP とは
UDP(User Datagram Protocol)は TCP/IP のトランスポート層プロトコルの 1 つで、コネクションレス・信頼性なしのシンプルな仕組みです。送信側はパケット(データグラム)を一方的に投げるだけで、相手の確認応答も再送も行いません。その代わり低遅延・低オーバーヘッドで動作します。
UDP と TCP の比較
| 項目 | UDP | TCP |
|---|---|---|
| 接続形態 | コネクションレス | コネクション型(3 way handshake) |
| 信頼性 | なし(届かなくてもOK) | あり(再送・順序保証) |
| 順序保証 | なし | あり |
| フロー制御 | なし | あり(ウィンドウ) |
| 輻輳制御 | なし | あり(CUBIC / BBR 等) |
| ヘッダサイズ | 8 バイト | 20 バイト〜 |
| 用途 | DNS / VoIP / 動画 / ゲーム / QUIC | HTTP / メール / SSH / FTP |
| マルチキャスト | 可能 | 不可(1 対 1) |
UDP ヘッダ構造
| フィールド | サイズ | 意味 |
|---|---|---|
| 送信元ポート | 16 ビット | 送信側のアプリポート |
| 宛先ポート | 16 ビット | 宛先側のアプリポート |
| 長さ(Length) | 16 ビット | ヘッダ + データの合計バイト数 |
| チェックサム | 16 ビット | 誤り検出(IPv6 では必須) |
合計わずか 8 バイト。TCP の 20 バイト以上に比べてヘッダオーバーヘッドが大幅に小さく、短いデータを高頻度で送る用途に向いています。
UDP の動作モデル
- 送信側がデータをパケット化(必要なら自前で分割)
- UDP ヘッダを付け、IP に渡して送信
- 受信側は届いたパケットを受け取り、UDP ポートを見てアプリに渡す
- 欠落 / 順序逆転 / 重複は気にしない(必要ならアプリ層で対処)
送信前にハンドシェイクなどの準備がないため、最初の 1 パケットから即座にデータが流れます。
主な利用プロトコル
| 用途 | プロトコル | ポート | 理由 |
|---|---|---|---|
| 名前解決 | DNS | 53 | 1 往復で完結。再問合せは簡単 |
| IP 取得 | DHCP | 67 / 68 | ブロードキャストを使う |
| 時刻同期 | NTP | 123 | 軽量・低遅延が必要 |
| 音声通話 | SIP / RTP / VoIP | 5060 / 動的 | 古いパケットを待たず流す |
| 動画ストリーミング | RTP / SRT | 動的 | 遅延より連続性を優先 |
| オンラインゲーム | 独自プロトコル | 動的 | 低遅延が最優先 |
| 機器監視 | SNMP | 161 / 162 | 軽量 |
| Web(HTTP/3) | QUIC(UDP の上) | 443 | HoL ブロッキング回避 |
なぜ UDP を使うのか
| 強み | 説明 |
|---|---|
| 低遅延 | ハンドシェイクや再送がない。1 パケットで往復が完結することも |
| 低オーバーヘッド | ヘッダ 8 バイト、状態管理なし |
| シンプル | 実装が小さく、組み込みやリアルタイム系に向く |
| マルチキャスト / ブロードキャスト | 1 対多の配信が可能 |
| 遅延より新鮮さ | 音声 / 映像は古いデータより新しいデータを優先したい |
UDP の限界
- パケット欠落・順序逆転・重複が起こりうる
- NAT 越えやファイアウォール越えで詰まりやすい
- 輻輳制御がないため、無秩序に投げるとネットワーク全体を圧迫する
- 機密性はない — DTLS や QUIC の TLS 1.3 と組み合わせて暗号化する
QUIC と HTTP/3
近年は QUIC(IETF 標準)が UDP 上に「TCP+TLS の代替」を実装する形で広がりました。HTTP/3 は QUIC を使い、次のメリットを得ます。
- 0-RTT / 1-RTT ハンドシェイクで初回接続が高速
- マルチストリーム独立で TCP の HoL ブロッキング回避
- パケット内に TLS 暗号化を内包しているため、中間機器の干渉に強い
- IP / ポートが変わってもコネクションを維持できる(接続マイグレーション)
パケットキャプチャ例
# DNS の UDP/53 を可視化
sudo tcpdump -i any -nn 'udp port 53' -c 20
# Linux で UDP の統計
ss -u -a -n # UDP ソケット一覧
netstat -su # UDP の統計(パケット数 / 受信エラー)
UDP を使うアプリの設計時に注意すること
| 項目 | 対処 |
|---|---|
| 欠落 | シーケンス番号を独自に振り、抜けを検出。必要なら再送 or 諦める |
| MTU | 1 パケットの最大長を意識(IPv4 で約 1472 バイト前後が安全圏) |
| 輻輳 | 送信間隔を制御する / トークンバケットを自作 / QUIC の輻輳制御を借りる |
| 暗号化 | DTLS / QUIC を採用 |
| NAT / FW | UDP は接続概念がないので、長時間沈黙するとマッピングが切れる。キープアライブ送出 |
シンプルな UDP 通信のサンプル(Python)
# 送信側
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(b"hello", ("127.0.0.1", 5005))
# 受信側
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(("0.0.0.0", 5005))
data, addr = sock.recvfrom(1024)
print("from", addr, "got", data)
FAQ
Q: UDP は「信頼できない」?
A: プロトコル単体では再送しないという意味で、ネットワーク的に信頼できない訳ではありません。アプリ層で再送を組めば信頼性を確保できます(DNS は再問合せ、QUIC は再送内包)。
Q: UDP のポート番号は?
A: 1〜65535 で TCP と同じレンジを使いますが、ポート空間は別管理です。同じ番号でも TCP/53 と UDP/53 は別物(DNS は両方使う)。
Q: ブロードキャストとマルチキャストの違いは?
A: ブロードキャストは「同一サブネットの全員」、マルチキャストは「指定グループの参加者」に送ります。マルチキャストは IGMP でグループ管理。
Q: 最大データグラム長は?
A: 理論上 65,507 バイト(65535 - IP/UDP ヘッダ)ですが、ネットワーク経路のMTU 制約で分割されます。実用的には 1400〜1500 バイト未満に収めるのが無難。
関連
- トランスポート層 — 親カテゴリ
- TCP — 信頼性ありの相方
- DNS / DHCP / NTP / SNMP — UDP の代表的なアプリ層
- QUIC / HTTP/3 / DTLS
- IP / ポート番号 / OSI参照モデル
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- TCP
- UDP
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?