SSDP
Cabeçalhos como HOST, MAN, ST, USN e LOCATION compõem o SSDP usado pelo UPnP. Um dispositivo envia `ssdp:alive` para 239.255.255.250:1900 e um control point envia `M-SEARCH`; a resposta aponta para uma descrição XML. Em comparação com mDNS/DNS-SD, SSDP usa semântica própria semelhante a HTTP e tipos UPnP. Integra TVs, roteadores e mídia, mas expõe serviços por multicast e já foi usado em amplificação DDoS; não deve ser publicado na Internet.
SSDP é o mecanismo de descoberta usado na arquitetura UPnP. Ele permite que dispositivos anunciem sua presença e que pontos de controle pesquisem dispositivos e serviços sem cadastro prévio. As mensagens têm aparência de HTTP, com linha inicial e cabeçalhos, mas são transmitidas por UDP e possuem métodos próprios. Um dispositivo envia NOTIFY com `NTS: ssdp:alive` para anunciar. Ao sair, envia `ssdp:byebye`. Um control point envia `M-SEARCH * HTTP/1.1` com `MAN: "ssdp:discover"`, `ST` definindo o alvo e `MX` indicando a janela máxima de resposta. Em IPv4, o grupo conhecido é 239.255.255.250 na porta 1900. O dispositivo responde por unicast ao endereço de origem. Cabeçalhos comuns incluem HOST, CACHE-CONTROL, LOCATION, NT ou ST, NTS, SERVER e USN. LOCATION aponta para uma URL HTTP que entrega a descrição XML do dispositivo raiz. Essa descrição contém tipos, serviços, ícones e URLs de controle, eventos e descrição de serviço. A descoberta não carrega toda a capacidade. A OCF/UPnP documenta que SSDP não tem como objetivo consultas avançadas; o control point usa a descrição e ações do serviço. Um MediaServer DLNA anuncia UPnP e oferece ContentDirectory. Uma TV anuncia renderer. Um roteador pode anunciar InternetGatewayDevice. Aplicações usam para localizar dispositivos. Em casa inteligente, Home Assistant descobre algumas TVs, roteadores, players e dispositivos legados. SSDP é diferente de mDNS. mDNS usa formato DNS e DNS-SD com PTR/SRV/TXT; SSDP usa mensagens de estilo HTTP, UUIDs, tipos URN e URL de descrição. Ambos usam multicast e escopo local. Podem coexistir. O custo de SSDP é simplicidade de UPnP. A limitação é tráfego, segurança e interoperabilidade desigual. Muitos dispositivos implementam versões incompletas. Anúncios podem ser duplicados. O cache usa `max-age`. O control point precisa expirar. `ssdp:update` existe em versões. O USN combina UUID e tipo. O UUID deve identificar o dispositivo de forma estável. O control point não deve confiar apenas no nome amigável. A URL LOCATION pode apontar para host e porta. O cliente precisa validar tamanho, XML e redirecionamentos para evitar SSRF e parser attacks. Um dispositivo malicioso na LAN pode anunciar URL para serviço interno. Restringir. SSDP é connectionless. Mensagens podem perder. Dispositivos repetem anúncios e control points repetem busca. `MX` distribui respostas aleatoriamente para evitar rajada, mas implementações ruins respondem imediatamente. Em redes grandes, isso cria pico. Multicast não atravessa roteadores por padrão. Reflectors e proxies são raros e podem ampliar superfície. A descoberta entre VLANs deve ser feita por proxy específico ou integração manual, não abrindo 1900 para tudo. SSDP exposto à Internet foi usado em ataques de reflexão e amplificação. Roteadores devem bloquear entrada e saída indevidas na WAN. UPnP IGD também pode abrir portas via controle; discovery e controle são funções separadas, mas ambos exigem política. Desativar UPnP no roteador quando não necessário. Se necessário para consoles, limitar à LAN confiável e usar implementação atualizada. A descoberta não autentica. O protocolo de controle UPnP clássico possui limitações de segurança. Produtos modernos podem usar outras camadas.
- Permite descoberta automática de dispositivos e serviços UPnP sem servidor central, facilitando TVs, mídia, roteadores e equipamentos legados.
- Anúncios e busca ativa oferecem detecção rápida de entrada e saída, com cache para reduzir consultas constantes.
- LOCATION separa descoberta da descrição detalhada, mantendo mensagens multicast relativamente pequenas.
- Tipos, UUIDs e serviços UPnP fornecem modelo comum usado por DLNA e grande base de dispositivos de consumo.
- É simples de implementar em redes pequenas e possui ferramentas e bibliotecas maduras em sistemas de mídia e automação.
- Não possui autenticação nem criptografia; qualquer nó local pode anunciar serviços falsos ou enumerar dispositivos.
- Multicast fica restrito à sub-rede e atravessar VLANs exige relay ou solução específica, reduzindo isolamento.
- Exposição de UDP 1900 na Internet permite reflexão e amplificação DDoS; roteadores e dispositivos mal configurados são risco.
- Implementações UPnP são inconsistentes, com XML inválido, anúncios duplicados, URLs erradas e suporte parcial a versões.
- O ecossistema de controle clássico usa SOAP/GENA e pode ser pesado ou inseguro comparado a protocolos modernos com pareamento e identidade.