連載第9回
|
|
UDPという選択肢 |
UDPを利用する代表的アプリケーションの1つは、音楽や動画のストリーミング配信です。こういったアプリケーションはリアルタイムにデータを受け取らなければならないので、通信処理の途中でデータをため込んでしまうTCPとはあまり相性が良くありません。その点、UDPは余計なことをせずに、どんどんデータを渡してくれますので、リアルタイムに音楽や動画を再生しやすいのです。
ではデータが抜けたり誤りがあった場合はどうするのでしょうか? 音楽や動画の場合、まず、音や映像がどんどん進んでゆくため、多少抜けたり誤りがあっても人間には気付きにくいという特性があります。さらに正常に受け取れなかったデータは、その前後のデータを基にそれらしいデータを予測して作り出し、不自然ではないようにつなぐこともできるので、そんなに大きな影響は出ません。こうしてみると、通信の正確性に欠けるというUDPの弱点は、ストリーミング配信では大きな問題にはならないことが分かると思います。
もう1つUDPを使う代表的なプログラムにDNS(参照:覗いてみればディープな世界 DNS)があります。DNSサーバはたくさんの問い合わせを処理する必要があるため、通信処理はなるべくシンプルであることが求められます。通信開始や終了の手続きが不要で、また再送処理を行わないUDPはこの目的にかなっています。こんな理由から、DNSの問い合わせには原則としてUDPを使います。なお状況によっては問い合わせにTCPを使用することもあります。
なかなかスルドイ質問です。UDPとIPの間には、実はあまり差がありません。IPの通信機能をプログラムから直接利用しようと思うと面倒が多いので、ちょっと工夫を凝らして使いやすくしたものがUDPといってもいいくらいです。具体的には、IPにはないポート番号という考え方がUDPには加わっています。そのほかの通信の信頼性などはIPのそれと同等です。そのためUDPを使うときには、それが本当にUDPに向いているか、十分に注意する必要があります。
UDPのパケットは図1のようにとてもシンプルです。ここまでシンプルなのは、先にも出たとおり、多くはIPの機能をそのまま使っているからです。
図1 UDPパケットの構造。とてもシンプル |
図のピンク色の部分は、通信をコントロールするための情報、いわゆるヘッダです。またブルーの部分が実際に送ろうとするデータが入ります。IPにあったオプションはありません。
ヘッダには4つのフィールドがあり、それぞれ2バイトの長さがあります。またデータの長さは任意で、不要ならばなくても構いません。
UDPの弱みを知っておく |
UDPには通信を始める手続きがないため、どっちが先に通信を始めようとしたのかをはっきり見定めるのがとても難しいプロトコルです。
通信を監視して外部からの攻撃を防ぐファイアウォールという装置では、例えばTCPなら「外部から通信を開始した(=外部から接続しようとした)ときは接続を許可しない」といったルールを決めて内部を守ります。こうしておけば、外部からの接続(侵入)は防ぐけど、内部の人が外部につなぐことは許可できるからです。
しかしUDPはどちらから通信を始めたか分からないため、このスタイルでルールを決めることができません。そのため普通は「どっちが通信を始めたかを問わず一切禁止」といった形のルールを決めることになります。
こういった事情から、会社などではネットワークの管理方針として、UDPを使った通信を許可していない場合が少なからずあります。このようにUDPにはTCPと違っていろんな制約がある可能性が高いことも知っておくとよいでしょう。
確実だけど…… |
|
|
関連リンク | |
連載:TCP/IPアレルギー撲滅ドリル【超実践編】(上位レイヤ編) 連載:インターネット・プロトコル詳説 連載:ルータの仕組みを学ぼう ホストのネット接続は正しく行われているか? 〜netstatによるネットワーク設定の確認〜 |
「Master of IP Network総合インデックス」 |
- 完全HTTPS化のメリットと極意を大規模Webサービス――ピクシブ、クックパッド、ヤフーの事例から探る (2017/7/13)
2017年6月21日、ピクシブのオフィスで、同社主催の「大規模HTTPS導入Night」が開催された。大規模Webサービスで完全HTTPS化を行うに当たっての技術的、および非技術的な悩みや成果をテーマに、ヤフー、クックパッド、ピクシブの3社が、それぞれの事例について語り合った - ソラコムは、あなたの気が付かないうちに、少しずつ「次」へ進んでいる (2017/7/6)
ソラコムは、「トランスポート技術への非依存」度を高めている。当初はIoT用格安SIMというイメージもあったが、徐々に脱皮しようとしている。パブリッククラウドと同様、付加サービスでユーザーをつかんでいるからだ - Cisco SystemsのIntent-based Networkingは、どうネットワークエンジニアの仕事を変えるか (2017/7/4)
Cisco Systemsは2017年6月、同社イベントCisco Live 2017で、「THE NETWORK. INTUITIVE.」あるいは「Intent-based Networking」といった言葉を使い、ネットワークの構築・運用、そしてネットワークエンジニアの仕事を変えていくと説明した。これはどういうことなのだろうか - ifconfig 〜(IP)ネットワーク環境の確認/設定を行う (2017/7/3)
ifconfigは、LinuxやmacOSなど、主にUNIX系OSで用いるネットワーク環境の状態確認、設定のためのコマンドだ。IPアドレスやサブネットマスク、ブロードキャストアドレスなどの基本的な設定ができる他、イーサネットフレームの最大転送サイズ(MTU)の変更や、VLAN疑似デバイスの作成も可能だ。
|
|