最終更新2005-07-31T00:00:00+09:00この記事のURI参照http://www.7key.jp/nw/tcpip/tcp/udp.html#useUDPはTCP/IPにおけるトランスポート層のプロトコルです。ネットワーク層のプロトコルであるIPをほとんどそのまま利用した通信プロトコルとなっていまして、IPとほぼ同じ機能を上位層に対して提供しています。TCP/IPではトランスポート層のプロトコルとしてTCPも使われますが、UDPは通信に対する信頼性が低いが、TCPは信頼性が高いUDPは転送速度が高く、TCPは転送速度が低いUDPは1対多の通信にも向いているが、TCPは不向きであるのような特徴があります。このような特徴が生まれているのかを順番に見ていきましょう。TCPより信頼性が低いのはTCPではより確実に相手にデータ(セグメント)を届けるために、スリーウェイハンドシェイク、確認応答、フロー制御、輻輳制御など様々な機能を備えています。これらの信頼性を高めるための機能をUDPは一切備えていません。冒頭で「UDPはIPをほとんどそのまま利用した通信プロトコルである」と言いました。IPパケットと同じようにUDPセグメントも、相手に届いたかどうということは送信元では分かりません。途中のネットワークの状態によっては、送信した順番にUDPセグメントが相手に届く保証は一切ありませんし、途中のセグメントが届かなかったからと言って再送処理が行われるわけでもありません。ネットワーク層のプロトコルであるIPとセション層以上のプロトコルやアプリケーションとの橋渡しを行っているだけにすぎないのです。転送速度(スループット)がTCPより高いのはまずはUDPヘッダを見て下さい。TCPのヘッダが20オクテットあるのに対し、UDPヘッダは8オクテットしかありません。ヘッダが少ない分送信するデータの全体容量が減ることになりますので、TCPに比べて転送速度が高くなるのです。既述ですがUDPではスリーウェイハンドシェイクと確認応答を行いません。相手からの応答を待つ待ち時間が一切無いのです(一方的に送りつけるだけですから)。待たなくて良い分転送速度は上がりますし、余分な作業をしない分内部処理的な負荷も少なくなります。これらのことからUDPはTCPに比べ、軽量で高速なプロトコルと言えるでしょう。1対多の通信にむいているのはこれも既述ですがUDPではスリーウェイハンドシェイクを行いません。コネクションを確立しないコネクションレスと言う通信方式となります。TCPではブロードキャスト通信、マルチキャスト通信の際にも全ての端末とスリーウェイハンドシェイクを行い、コネクションを確立しなくればなりません。このことから送信元の負荷は非常に大きなものとなってしまいます(コネクションを確立するための送受信作業にウィンドウのためのバッファの確保などなど)。UDPでは余分な作業をしない分、一回の送信動作で複数相手に同じデータを送信することが簡単にできるのです。補足UDPではデータ伝送単位をデータグラムと呼びます。チェックサムは1の補数和の1の補数となります。最終更新2005-07-13T00:00:00+09:00この記事のURI参照http://www.7key.jp/nw/tcpip/tcp/udp.html#use上記のような特徴を考えるとUDPにも有用な用途がいくつもあることに気が付くと思います。DNSで使用するデータは非常に小さいデータで、複数のセグメントに分割する必要はまずありません。DNSをTCPで実現しようとするとどうなるか考えてみて下さい。相手のドメイン名からIPアドレスを確認することは再々あることですが、その度にスリーウェイハンドシェイクを使いコネクションを確立しなければなりませんし、その度に無駄な通信(SYN、ACKのやり取り)を行わなければなりません。これでは無駄が多すぎますのでDNSではUDPが使用されています。IP電話(VoIP)やストリーミング配信の際もUDPが使われます。IP電話で相手と話す際にTCPを使っていたのでは、まともな会話になりませんよね。先ほどのデータが届いていませんので再送をお願いします、まだ届きません、なんてことをやっていますとまともに会話することができませんから。多少データが欠落しようが順番が入れ替わろうが、なるべくリアルタイムに相手にデータを届けたい場合にはUDPが向いています。同時に複数の相手に対して、一斉に情報を送信したい場合にもUDPが向いています。1回の送信動作で対象となる全ての端末にデータを送信することができますので、ネットワークへの負荷も少なくなりますし、既述ですがコネクションの確立も必要ありません(ただし応答を受け取るのが難しいため、一方的に情報を送信する通信に限ります)。コネクションを確立しませんので通信相手を特定する必要もありません。通信相手がいるかいないか、ダウンしているか生きているかに関らず、最小限の動作で情報を送信することができると言うメリットがあります。このようなことからルーティング情報のやり取りやDHCPパケットの送信等に向いているプロトコルと言うことになります。UDPとはに辿り着きます。mapよりこのサイトの全体的な構造を把握できます。索引よりこのサイト内にある任意のキーワードを含んだ文書を探すことができます。この文書のURIはhttp://www.7key.jp/nw/tcpip/tcp/udp.htmlです。最終更新:2005年07月13。