ユーザー・データグラム・プロトコル(UDP)は、セッションを確立したり、配信を確認したり、順序を保証したりすることなくパケットを送信する、接続非依存型のトランスポート層プロトコルです。オーバーヘッドが最小限であるため、DNS検索、VoIP、ストリーミングメディアなど、遅延に敏感なトラフィックにおけるデフォルトの選択肢となっています。また、Versa の導入環境では、SD-WANトンネルのカプセル化やSLAプロービングにも利用されています。
主なポイント
- UDPは、ハンドシェイク、確認応答、再送信を行わずにパケットを送信します。
- 8バイトのヘッダーにより、レイテンシに敏感なトラフィックにおけるオーバーヘッドを最小限に抑えます。
- UDPの上位で動作するアプリケーションは、信頼性と順序付けを自ら処理しなければならない。
- DNS、NTP、VoIP、およびストリーミングメディアは、いずれも一般的にUDPトランスポート上で動作します。
- VersaのSD-WANオーバーレイとIPsec IKEネゴシエーションは、いずれもUDP上で動作します。
このページの内容: その重要性仕組み種類UDP およびVersaよくある質問
UDPはなぜ重要なのでしょうか?
UDPが重要視される理由は、多くのネットワーク機能が、TCPに必要な接続確立のオーバーヘッドに耐えられないためです。DNS解決、リアルタイムの音声・映像通信、ネットワークテレメトリといった用途では、UDPの「送信して忘れる(fire-and-forget)」モデルが適しています。ハンドシェイクや再送信を必要としないため、パケットを最小限の遅延で配信でき、パケットの遅延が損失よりも深刻な影響を及ぼす場面において、これは極めて重要です。
また、これは基盤となる要素でもあります。DNSはUDPポート53、NTPはポート123、SNMPトラップはポート162上で動作します。SD-WANやVPNアーキテクチャにおいて、UDPのシンプルさゆえに、トンネル化されたトラフィックのカプセル化層として好んで採用されています。VXLANやIPsec IKEがUDPを利用するのは、生のIPよりもNATやファイアウォールを予測可能な形で通過できるためです。 DNSやVoIPが機能するためには、ファイアウォールルールで特定のUDPポートを開放する必要があります。
UDPとは何ですか?
UDPは、TCPと並んで、インターネットプロトコルスイートにおける2つの主要なトランスポート層プロトコルの1つです。1980年に定義されたこのプロトコルは、アプリケーションからデータを受け取り、それをUDPヘッダーで包み込み、IPに引き渡して配信させます。このヘッダーには、送信元ポート、宛先ポート、長さ、およびオプションのチェックサムの4つのフィールドが含まれており、オーバーヘッドはわずか8バイトです。
UDPは接続レスです。つまり、データ転送の前にハンドシェイクが行われず、パケットの到着確認もなく、パケットが順序通りに届く保証も、そもそも届く保証もありません。信頼性を必要とするアプリケーションは、自らそれを実装するか、あるいはパケットの損失を許容できることを受け入れる必要があります。これは、TCPに必要な状態管理や再送信ロジックを省略するという意図的なトレードオフであり、それによってUDPは「1対多」のトラフィックに必要な低遅延を実現しています。
UDPの種類
UDPにはプロトコルバージョンはありませんが、いくつかの配信モードと、注目すべき1つのバリエーションをサポートしています。ユニキャストがデフォルトの設定であり、送信者が1人、受信者が1人という形式で、DNSクエリやほとんどのアプリケーショントラフィックで使用されています。マルチキャストは、登録済みの受信者グループに一度に配信されるのに対し、ブロードキャストは、DHCPディスカバリーのように、サブネット上のすべてのホストにデータグラムを送信します。
チェックサムの扱いもIPのバージョンによって異なります。IPv4ではチェックサムはオプションとして扱われますが、IPv6では必須となっています。これは、IPv6ではIPv4で提供されていたIP層ヘッダーのチェックサムが廃止されたためです。また、別の仕様であるUDP-Lite(RFC 3828)では、チェックサムがペイロードの一部のみをカバーするように設定可能です。これは、パケットが全く届かないよりは、破損したパケットでも受け取る方が望ましいコーデックにとって有用です。
UDP およびVersa
UDPは、Versa の展開において、制御トラフィックおよびデータトラフィックの大部分を伝送します。SD-WANオーバーレイは、ブランチ、ハブ、およびコントローラー間のトラフィックを、UDPポート4790上のVXLANでカプセル化します。IPsec IKEネゴシエーション(すべての暗号化トンネルの制御チャネル)は、UDPポート500および4500上で実行されます。
管理プレーンのサービスもUDPに依存しています。DNSの検索にはポート53が、NTP/Chronyの同期にはポート123が使用され、SNMPトラップやsyslogはポート162および514を経由して送信されます。 VOSデバイスのアラーム 以下の方法により、UDP経由でDirectorへストリーミングできます ALARM_PROTOCOL=udp.Versaの アプリケーション・デリバリー・コントローラー また、UDP接続の負荷分散も直接行います。これは、ログエクスポート機能(LEF)のトラフィックに役立ちます。UDPベースのサービスが非常に多いため、 ファイアウォールの要件 開いたままにしておく必要があるUDPポートの一覧。
よくある質問
UDPとTCPの違いは何ですか?
UDPは、ハンドシェイクや受信確認、順序保証なしにパケットを送信するのに対し、TCPは接続を確立し、受信を確認し、失われたデータを再送信します。TCPはファイル転送やWebページの表示に適しており、UDPはリアルタイムの音声・動画通信やDNS検索など、完全な配信よりも速度が重視される場面に適しています。
なぜDNSやVoIPでは、TCPではなくUDPが使われているのでしょうか?
どちらにも高速な通信が求められます。DNSクエリとその再試行は、完全なTCPハンドシェイクよりも依然として高速であり、VoIPでは、音声パケットが失われた場合、送信を中断して再送信するよりも、そのままスキップする方が好まれます。UDPの接続レスモデルは、そのようなオーバーヘッドを完全に回避します。
UDPは信頼性がありますか?
それだけでは不十分です。UDPはパケットの受信確認を行わず、損失分の再送信も行わず、順序の保証もしません。信頼性が必要な場合は、DNSが再試行を行うように、その上のアプリケーションに組み込まれるか、あるいはVoIPのように、低遅延とのトレードオフとして受け入れられます。
UDPはどのポートを使用しますか?
UDPは、TCPと同じ0から65535までの範囲の16ビットのポート番号を使用してトラフィックを処理します。 よく知られているUDPポートには、DNS用のポート53、NTP用のポート123、SNMP用のポート161および162、IPsec IKE用のポート500および4500、VXLAN用のポート4789(IANAによる割り当て)、およびVersaのSD-WANオーバーレイが使用するVXLANカプセル化用のポート4790などがあります。
Versa のSD-WANは、なぜオーバーレイトラフィックにUDPを使用しているのですか?
UDPの最小限のヘッダーと接続不要な設計により、SD-WANは、追加のハンドシェイクや再送信のレイヤーを追加することなく、すでに信頼性の高いアプリケーショントラフィックをUDP上のVXLANでカプセル化することができます。また、生のIPプロトコルよりも予測可能な形でNATやファイアウォールを通過できるため、パブリックインターネットを横断するトンネルにとって重要な利点となります。
UDPに関する詳細
さらに詳しく知りたい場合は、私たちが信頼している情報源を以下にご紹介します。
| RFC 768: ユーザーデータグラムプロトコル | RFC 8085: UDP 利用ガイドライン |
|---|---|
| 1980年に策定された、UDPヘッダーの完全なフォーマットとその配信セマンティクスを定義したオリジナルのIETF仕様書。 | UDP ベースのアプリケーションに関する実践的な指針:輻輳制御、チェックサムの活用、および UDP が適している場面。 |
関連用語
UDPについて調べているなら、次はこれらもぜひチェックしてみてください。
| SD-WAN | ドメインネームシステム | インターネットプロトコルセキュリティ |
|---|---|---|
| UDP上のVXLANを用いて、ブランチおよびハブのトラフィックを暗号化されたオーバーレイでカプセル化するネットワーク構成。 | ドメイン名をIPアドレスに変換するネーミングサービス。そのクエリは、ほぼ常にUDPポート53を介して行われます。 | IKE鍵交換チャネルを備えたプロトコルスイートであり、UDPを介してすべてのSD-WANおよびサイト間トンネルのネゴシエーションを行う。 |