SSDP【Simple Service Discovery Protocol】
概要

UPnP(Universal Plug and Play)はパソコンなどからネットワーク上に接続されたルータやプリンタなどの周辺機器を検知できるプロトコルで、複雑な設定作業などを自動化し、「繋げばすぐに使える」状態を実現する。SSDPはLAN上でパソコンなどがネットワーク機器やデジタル家電などUPnP対応機器を探し出すために用いられる。
SSDPの通信はUDPの1900番ポートを使用し、IPv4ではマルチキャストアドレス「239.255.255.250」宛てにメッセージを送出する。TCPではなくUDPを採用するのは、接続確立の手続きを省き、探索メッセージを迅速に送出するためである。メッセージの形式はHTTPヘッダに準拠しており、「ST」(探索対象の種別)や「USN」(機器の識別子)、「LOCATION」(制御用ファイルのURL)などのヘッダ項目が用いられる。
機器を探索する側のコンピュータは、対象の種別などをヘッダに記述したM-SEARCHメッセージをマルチキャストでネットワーク上に送出する。これを受信した機器は、自らの識別情報や制御用URLを含む応答をユニキャストで返信する。探索側はこの応答をもとに機器を特定し、続くHTTP通信でXML形式のデバイス記述ファイルを取得することで、その機器の機能や提供サービスの詳細を把握できる。
SSDPにはもう一つの動作として、機器側からの能動的な通知がある。UPnP対応機器はネットワークに参加した際や一定間隔ごとに自らの存在を告げるメッセージ(ssdp:alive)をマルチキャスト送信する。ネットワークから離脱する際には別れを告げるメッセージ(ssdp:byebye)を送出する。これにより、探索要求がなくとも周囲の機器がネットワーク構成の変化を把握できる。
SSDPはセキュリティ上の問題も指摘されている。インターネット側から不正な探索リクエストを送りつけ、ネットワーク内部の機器から大量の応答を引き出して特定のサーバへ集中させる「SSDPリフレクション攻撃」がDDoS攻撃の手法として知られている。このため、ルータやファイアウォールでUDPの1900番ポートへの外部からのアクセスを遮断し、SSDPの通信をLAN内に限定することが推奨されている。