30代専業主婦の独学エンジニア挑戦ブログ

実務未経験の30歳の専業主婦が独学でエンジニアを目指すブログです

UDPが高速に通信できるワケ

勉強記録

現在、ネットワークの勉強をしています。
前回まではトランスポート層TCPプロトコルについて勉強しました。今回は、同じトランスポート層プロトコルであるUDPについてまとめたいと思います。

勉強に使用している本は、こちらの本です。
イラスト図解なのでとても分かりやすく、難しいかな・・と思っていたネットワークの勉強もスムーズに進んでいます。

前回、前々回でTCPプロトコルが確実にデータを届ける仕組みについてまとめました。
programming-kanamama.hatenablog.com
programming-kanamama.hatenablog.com

UDPはただデータを送るだけ

UDPTCPに比べて、とてもシンプルなプロトコルです。

ただデータを送るだけのプロトコルで、パケットが欠落したり、バッファから溢れていても構わず送信します。そのため、速度重視のVoIPや動画配信などに使用されるプロトコルです。
これらのサービスはデータが脱落しても、ノイズが入る程度なので主にUDPが使用されます。
UDPでは、パケットに当たるものをデータグラムと呼びます。

ブロードキャストとマルチキャスト

UDPには1つのパケットを複数の相手に送る機能があり、ブロードキャストとマルチキャストと呼びます。
この機能はTCPにはない機能です。

ブロードキャストは1つのネットワーク内の不特定多数の端末に対してデータを送信するときに使用します。
マルチキャストはデータ受信を希望する複数の端末に送信するときに使用されます。
この複数の端末はグループ化し、グループ用のアドレスを利用します。

UDPでも信頼性を高めるには

オンラインゲームでも速度を重視するのでUDPが使用されます。しかし、こういった場面では速度だけでなく確実にデータを届ける信頼性もそれなりに必要となります。

そのため、UDPを使用しながらデータを確実に届けたい場合には、アプリケーション層がフロー制御やパケットの再送、混雑の対策などを行う場合があります。
TCPと似た制御を効率的に行い、速度があまり落ちないようにアプリケーション層で補っています。