Simple Service Discovery Protocol

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
SSDP
Название Simple Service Discovery Protocol
Уровень (по модели OSI) Сеансовый
Семейство TCP/IP
Порт/ID 1900/UDP

Простой протокол обнаружения сервисов (англ. Simple Service Discovery Protocol, SSDP) — сетевой протокол, основанный на наборе протоколов Интернета, служащий для объявления и обнаружения сетевых сервисов. SSDP позволяет обнаруживать сервисы, не требуя специальных механизмов статической конфигурации или действий со стороны серверов, таких как DHCP или DNS. Данный протокол является основой протокола обнаружения Universal plug-and-play (UPnP) и предназначен для использования в домашних сетях и в малом бизнесе. Описание протокола SSDP, написанное компаниями Microsoft и Hewlett-Packard подавалось в 1999 году в качестве черновика интернет-стандарта (Internet draft) в IETF. Предложение истекло в апреле 2000,[1] но SSDP был включен в состав стека протоколов UPnP и реализация SSDP попала в стандарт UPnP.[2][3]

SSDP описывает механизм, согласно которому сетевые клиенты могут обнаружить различные сетевые сервисы. Клиенты используют SSDP без предварительной конфигурации. SSDP поддерживает обнаружение при помощи мультикаста, уведомления от серверов и маршрутизацию. Данная служба включает обнаружение UPnP-устройств в домашней сети. Например, телевизор с поддержкой DLNA/UPNP находит медиа-серверы в локальной сети с использованием этого протокола. Домашние маршрутизаторы обнаруживаются компьютерами, как правило, также с помощью SSDP (для отображении информации о маршрутизаторах и медиа-серверах в «Сетевом окружении» эти устройства также должны поддерживать протокол HTTP, так как SSDP сообщает устройствам http-ссылку на страницу управления устройством).

Транспортный протокол и адресация[править | править код]

SSDP является текстовым протоколом, основанным на HTTPU, с применением XML. Для передачи сообщений он использует датаграммы UDP. Сервисы анонсируются отправкой сообщений на выделенные мультикаст адреса на UDP порт 1900. В сетях IPv4 используется мультикаст-адрес: 239.255.255.250[4]. В сетях с поддержкой IPv6 также используются адреса: FF01::C, FF02::C, FF05::C (ff0X::c, где X выбирается в зависимости от типа анонса)[5][6]:

  • 239.255.255.250 (Сети IPv4, адрес типа site-local)
  • [FF02::C] (Сети IPv6, адрес link-local)
  • [FF05::C] (Сети IPv6, адрес site-local)
  • [FF08::C] (Сети IPv6, адрес organization-local)
  • [FF0E::C] (Сети IPv6, глобальная адресация)

Дополнительно реализации могут использовать специальный мультикаст адрес источника, полученный от локального префикса маршрутизации IPv6, с групповым идентификатором C (десятичное число 12).

В протоколе SSDP используется HTTP метод NOTIFY для анонсирования появления или удаления сервисов (или информации о присутствии) для всех участников мультикаст группы. Клиентское устройство, желающие узнать о появлении сервисов в сети использует запрос с методом M-SEARCH, ответы на который присылаются отправителю запроса на его собственный адрес (unicast).

В операционных системах семейства Windows для нормального функционирования «Службы Обнаружения SSDP» никаких других служб не требуется. От работы этого сервиса зависит «Узел универсальных PnP-устройств» (Universal Plug and Play Device Host).

Реализации SSDP IPv6 от Microsoft (в Windows Media Player и в сервере) используют «link-local» адреса. Для уведомлений о событиях и подписки используется порт 2869 (ранее также использовался порт 5000)[7].

Использование в DDoS атаках[править | править код]

В 2014 неожиданно обнаружили, что SSDP использовался в DDoS атаках типа «Атака отражения и усиления при помощи SSDP» (SSDP reflection attack with amplification). Многие устройства, в том числе бытовые маршрутизаторы имели изъян в программном обеспечении UPnP, который позволял атакующему направлять ответы с порта 1900 на произвольный адрес в сети Интернет. В случае использование ботнета из многих тысяч подобных устройств, атакующий мог создать большой поток пакетов, достаточных для занятия пропускной полосы и насыщения каналов передачи данных атакуемой площадки, что приводит к отказу в обслуживании для обычных пользователей.[8][9][10]

См. также[править | править код]

Ссылки[править | править код]

Примечания[править | править код]

  1. IETF draft revision 3 (outdated and expired)
  2. UPNP Device Architecture 1.1. UPnP Forum (15 октября 2008). Архивировано 7 ноября 2015 года.
  3. UPnP Device Architecture v2.0. upnp.org (February 20, 2015). Архивировано 7 ноября 2015 года.
  4. Internet Multicast Addresses. IANA (22 июня 2010).
  5. UPnP Device Architecture V1.1 (англ.).
  6. Internet Protocol Version 6 Multicast Addresses. IANA. Проверено 10 августа 2010.
  7. Microsoft Knowledge Base Article 832017
  8. Guide to DDoS Attacks, pg 8
  9. UDP-Based Amplification Attacks.
  10. SSDP generates 100 Gbps DDoS