今回は、 とにかく早くデータを送り届けるプロトコル「UDP」についてです。
「UDP」は「User Datagram Protocol」の略で、「TCP」と同様トランスポート層(Layer4)のプロトコルです。
(OSI参照モデルについてはコチラ → OSI参照モデル )
(「TCP」についての説明は最後にリンクを載せておきます。)
「UDP」の最大の役割は、通信相手に早くデータを送り届けるということです。その代わり、信頼性(確実に相手にデータを届けること)には欠けます。
TCPとUDPのどちらを使うかは、アプリケーションによって決められます。
UDPを使うアプリケーションといえば、ストリーミング、IP電話(VoIP)など、動画配信、音声通話を行うものが多いですね。
ただし、これらのアプリケーションは、遅延、ジッタ、パケットロスに弱いです。
ジッタとは”ゆらぎ”のことで、音声が詰まって聞こえたり、間延びして聞こえたりすることです。
これを防ぐために、音声パケットなどは通常、QoS(Quality of Service)という技術を用いて、通常のデータよりも優先的に運ぶようにネットワークを実装します。
また、DHCP、ARPといったプロトコルもUDPでサポートされています。
これらのプロトコルはブロードキャストを行うため、UDPを使用します。
(TCPは通信相手とコネクションを確立するため、ユニキャストでした。)
さっきから、「UDP」は、通信は早いが信頼性に欠けると言ってきたのは、
UDPはTCPのように、通信開始前にコネクションを確立したり、確認応答を行ったりはしないからです。
以上、「UDP」の特徴をまとめると、
・コネクションレスである。
・信頼性はない。
・速度は早い。
・1対多の通信が容易。(ブロードキャスト、マルチキャストの通信に向いている。)
「TCP」はその逆と言えます。
TCPとUDP、どちらが良い、悪いとかではなく、適切なアプリケーションに対して、適切な方法で通信を行っていると言えます。
========関連リンク集=====================================
コメント