ひらめの日常

プログラミングと読書と

UDPについて簡単にまとめる(TCPとの違い等)

UDPの機能

以下の二つの機能のみを持ちます。

  1. IPの層にもう一つ別のアドレッシングの層を追加する
  2. 転送中に発生し得るデータの破損を検出し、破損したデータグラムを破棄する

TCPとの違い

接続を確立しなくても使用することができる
受診時には、UDPソケットはどんなアドレスのホストからでも、複数のホストとの間でメッセージを送受信することができます。TCPでは1対1で接続を確立した後に送受信を行います。

ベストエフォート型の伝送
確実に宛先に届く保証はなく、メッセージが送信時と異なる順序で相手に届くこともあります。メッセージの欠落への対応と、並べ替えの仕組みが必要です。

UDPが使われる理由

効率が良い
わずかなデータ量しかやり取りをしないアプリケーションの場合、TCPでは接続確立段階で通信に必要なメッセージの数が少なくとも倍になります。

柔軟性を重視した時
参考した本によると、TCPによる信頼性の高いストリーム型のサービスが必要ない時に使えば、オーバーヘッドを非常に小さく抑えることができます。しかし、具体例が思い浮かばないので理解できていません。

参考

下記の本を参考にしました。

TCP/IPソケットプログラミング Java編

TCP/IPソケットプログラミング Java編