Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

SSDP(エスエスディーピー)とは | 意味や読み方など丁寧でわかりやすい用語解説

SSDP(エスエスディーピー)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

シンプルサービス発見プロトコル (シンプルサービスハッケンプロトコル)

英語表記

SSDP (エスエスディーピー)

用語解説

SSDP (Simple Service Discovery Protocol) は、IPベースのネットワーク上でデバイスやサービスを自動的に発見するためのプロトコルである。このプロトコルは、ユーザーがネットワーク設定を手動で行うことなく、様々な機器が互いの存在を認識し、連携できるようにするために設計された。主にホームネットワークや小規模オフィス環境で利用されることが多く、プリンター、ネットワーク接続ストレージ (NAS)、スマートテレビ、メディアサーバーなどの家電製品やIoTデバイスが、ネットワークに接続されるだけで他のデバイスから見つけられるようにする「プラグアンドプレイ」機能の実現に不可欠な技術の一つだ。SSDPは、より広範なデバイス連携フレームワークであるUPnP (Universal Plug and Play) の中核をなす要素として広く採用されている。

SSDPの動作原理は、主にマルチキャスト通信とUDP (User Datagram Protocol) に基づいている。デバイスがネットワーク上でサービスを発見したい場合、特定のIPマルチキャストアドレスとポート番号(IPv4では239.255.255.250:1900、IPv6ではFF0x::C:1900)に「M-SEARCH」と呼ばれる探索メッセージを送信する。このメッセージは、そのマルチキャストグループに属するすべてのデバイスに到達し、特定のサービスやデバイスタイプを求めるリクエストを含む。例えば、クライアントがネットワーク上のメディアサーバーを探している場合、M-SEARCHメッセージにはメディアサーバーのサービスタイプを示す情報が格納される。このリクエストを受け取ったデバイスの中で、条件に合致するサービスを提供しているものは、送信元であるクライアントに対して直接(ユニキャストで)応答を返す。これにより、クライアントは目的のサービスがどのデバイスによって提供されているかを特定できる。

一方で、ネットワーク上のデバイスやサービスが自らの存在を他のデバイスに通知する際には、「NOTIFY」メッセージが用いられる。デバイスがネットワークに接続された際や、特定のサービスが利用可能になった際に、このNOTIFYメッセージをマルチキャストで定期的に送信する。このメッセージには、通知されるサービスの種類を示す「NT (Notification Type)」、通知の目的を示す「NTS (Notification Sub Type)」(例えば、ssdp:alive はサービスが利用可能になったことを、ssdp:byebye はサービスが停止したことを示す)、そしてサービスの一意の識別子である「USN (Unique Service Name)」などが含まれる。さらに、このサービスに関する詳細情報(XML形式の記述ファイルなど)を取得するためのURLが「Location」ヘッダに格納されており、他のデバイスはこのURLにアクセスすることで、サービスの具体的な機能や操作方法を知ることができる。NOTIFYメッセージを定期的に送信することで、デバイスはネットワーク上での自身の存在を維持し、他のデバイスは常に最新のサービスリストを把握できる。デバイスがネットワークから離脱する際には、明示的にssdp:byebyeメッセージを送信し、他のデバイスにサービスの停止を通知することが推奨される。

SSDPはHTTPのメッセージフォーマットをベースとしているが、TCPではなくUDPでメッセージを送信する。これは、信頼性よりも即時性と低オーバーヘッドを重視するためである。通常、HTTPはTCP上で動作するが、SSDPではUDP上でHTTPライクなメッセージがユニキャストまたはマルチキャストで送信されるため、これをHTTPU (HTTP over UDP) やHTTPMU (HTTP over Multicast UDP) と呼ぶこともある。これらの特性により、SSDPはネットワークリソースを効率的に使用しながら、迅速なサービス発見を可能にしている。

SSDPはUPnPアーキテクチャの不可欠な要素である。UPnPは、デバイスがゼロコンフィギュレーションでネットワークに接続し、相互運用できるようにするためのプロトコル群を指す。SSDPはUPnPの最初のステップである「発見 (Discovery)」フェーズを担当する。UPnPデバイスはまずSSDPを使用してネットワーク上の他のUPnPデバイスやサービスを発見し、その後、発見したデバイスから提供されるXML記述ファイルをHTTP経由で取得し、その機能やサービスを理解する。続いて、SOAP (Simple Object Access Protocol) を使用してサービスを制御したり、GENA (General Event Notification Architecture) を利用してイベントを受信したりする。このように、SSDPはUPnPエコシステムにおけるデバイス連携の出発点となる重要な役割を担っている。

しかし、SSDPにはセキュリティ上の課題も存在する。SSDPプロトコル自体には認証機構が含まれていないため、悪意のあるユーザーによって容易に悪用される可能性がある。特に、SSDPはインターネット上でDDoS (Distributed Denial of Service) 攻撃の一種である「リフレクション/増幅攻撃」の踏み台として利用されることがある。攻撃者は、偽装した送信元IPアドレス(攻撃対象のIPアドレス)を用いて、インターネットに公開されているSSDP対応デバイスに対してM-SEARCHリクエストを大量に送信する。SSDPの応答メッセージはリクエストメッセージよりもサイズが大きい場合があるため、この応答が偽装された送信元IPアドレス(攻撃対象)に集中することで、少量のトラフィックで大量の応答を誘導し、攻撃対象のネットワーク帯域を飽和させることが可能になる。このような攻撃を防ぐためには、インターネット境界ルーターやファイアウォールで、外部からのUDPポート1900番へのアクセスを適切にブロックするなどの対策が不可欠である。システムエンジニアを目指す上では、SSDPが提供する利便性と、それに伴うセキュリティリスクの両面を理解し、適切なネットワーク設計と運用を行うことが重要となる。

関連コンテンツ

関連IT用語