O que é o protocolo RTSP? #
RTSP, ou Real-Time Streaming Protocol, é um protocolo de comunicação de rede projetado principalmente para controlar e entregar mídia de streaming, como conteúdo de áudio e vídeo, pela Internet. Funciona como uma estrutura para comunicação cliente-servidor, permitindo que os clientes solicitem e controlem a transmissão em tempo real de dados de mídia dos servidores. O RTSP é frequentemente usado em conjunto com outros protocolos de streaming, como o RTP (Real-Time Transport Protocol), para entregar conteúdo multimídia de forma eficiente.
Para usar o RTSP, um cliente inicia uma sessão enviando solicitações a um servidor de mídia. Essas solicitações podem incluir ações como reproduzir, pausar, parar e gravar, permitindo que os usuários interajam com a mídia de streaming. O RTSP fornece um meio flexível de acesso e controle de conteúdo multimídia, tornando-o um componente vital de aplicações como videoconferência, sistemas de vigilância IP e serviços de streaming online. É importante observar que, embora o RTSP gerencie o aspecto de controle do streaming, a transmissão real de dados pode ser tratada por um protocolo separado como o RTP, que funciona em conjunto com o RTSP para garantir a entrega contínua de mídia.
Quais indústrias usam RTSP? #
RTSP (Real-Time Streaming Protocol) é usado em vários setores e aplicações que envolvem streaming e controle de mídia em tempo real. Algumas das indústrias e setores que comumente usam RTSP incluem:
Entretenimento e mídia : Serviços de streaming online, plataformas de vídeo sob demanda e transmissões ao vivo usam RTSP para entregar conteúdo de áudio e vídeo aos usuários.
Videoconferência e Telecomunicações : Muitos sistemas de videoconferência e aplicativos de telecomunicações utilizam RTSP para permitir a comunicação de vídeo e áudio em tempo real entre os participantes.
Segurança e vigilância : câmeras de segurança e sistemas de vigilância baseados em IP geralmente utilizam RTSP para transmitir feeds de vídeo ao vivo, permitindo monitoramento e controle remotos.
Jogos : As plataformas de jogos online podem usar RTSP para transmitir conteúdo do jogo, como partidas ao vivo ou experiências interativas.
Educação : Plataformas de e-learning e salas de aula virtuais utilizam RTSP para transmitir conteúdo educacional ao vivo ou pré-gravado, facilitando o aprendizado remoto.
Saúde : Aplicações de telemedicina e assistência médica remota podem usar RTSP para consultas em vídeo em tempo real e compartilhamento de imagens médicas.
Indústria e Manufatura : O monitoramento e controle remoto de processos industriais podem utilizar RTSP para transmissão de vídeo e compartilhamento de dados, a fim de aumentar a eficiência operacional.
Aeroespacial e Defesa : O RTSP pode ser empregado em aplicações de defesa para transmissões de vídeo em tempo real provenientes de veículos aéreos não tripulados (VANTs) e sistemas de vigilância.
Varejo e Marketing : Algumas empresas varejistas utilizam RTSP para demonstrações de produtos ao vivo, publicidade em vídeo e engajamento interativo com o cliente.
Transporte : Sistemas de transporte público, como estações de metrô e aeroportos, podem usar RTSP para transmissões de vídeo ao vivo para fins de segurança e informações aos passageiros.
Internos do protocolo RTSP #
Vamos analisar os aspectos internos do protocolo RTSP enquanto usado por trás de um balanceador de carga.
1. O cliente inicia uma conexão RTSP baseada em TCP com o VIP no lado de entrada do balanceador de carga, geralmente servido na porta 554.
2. O cliente e o servidor trocam mensagens de cabeçalho OPTIONS, SETUP e DESCRIBE para concordar com os mecanismos de entrega RTP e RTCP, entre outros parâmetros.
3. O cliente envia um pacote PLAY para instruir o serviço virtual a iniciar a entrega dos quadros RTP e RTCP baseados em UDP, contendo os dados e o controle, respectivamente.
4. Em seguida, o backend inicia a entrega RTP baseada em UDP (ou TCP), e o balanceador de carga pode ter conhecimento desse tráfego (se o dNAT estiver sendo usado) ou não (se o DSR estiver sendo usado).
Como carregar o balanceamento RTSP? #
O balanceamento de carga RTSP (Real-Time Streaming Protocol) pode ser um desafio devido à natureza estável das conexões RTSP. As conexões RTSP geralmente consistem em vários fluxos intercalados e mantêm o estado da sessão, tornando necessário o uso de técnicas especializadas de balanceamento de carga. Normalmente, uma vez estabelecida a sessão RTSP, o servidor negocia quatro portas UDP dinâmicas com o cliente (duas para áudio e outras duas para vídeo).
Aqui estão as etapas que você pode seguir para balancear a carga do RTSP de maneira eficaz:
Balanceamento de carga de reconhecimento de protocolo #
Implante um balanceador de carga, como RELIANOID, que conhece comunicações baseadas em protocolo. No caso de RELIANOID, é capaz de compreender e gerenciar TCP, UDP ou ambos ao mesmo tempo no mesmo serviço virtual.
Métodos de balanceamento de carga de baixa latência #
O balanceamento de carga de camada 4 com métodos transparentes e de baixa latência, como Direct Server Return (DSR) ou DNAT/DNAT sem estado, é o mais adequado para balanceamento de carga RTSP.
Persistência da sessão #
Como o RTSP é um protocolo com estado, é necessário manter a persistência da sessão entre clientes e back-ends. Persistência por IP de origem seria necessário configurar no serviço virtual L4.
Verificações de saúde #
O verificador de integridade pré-carregado check_real é capaz de realizar conexões RTSP fictícias com os servidores de backend para verificar sua disponibilidade.
root@nois-ee-01:~# /usr/local/relianoid/app/libexec/check_real --help [...] Este plugin testa o serviço REAL no host especificado. Uso: check_real -H host [-e expect] [-p port] [-w warning] [-c crit] [-t timeout] [-v] Opções: -h, --help Imprimir tela de ajuda detalhada -V, --version Imprime informações da versão --extra-opts=[seção][@arquivo] Lê opções de um arquivo ini. Consulte https://www.monitoring-plugins.org/doc/extra-opts.html para uso e exemplos. -H, --hostname=ADDRESS Nome do host, endereço IP ou soquete unix (deve ser um caminho absoluto) -p, --port=INTEGER Número da porta (padrão: 554) -u, --url=STRING Conecte-se a este url -e, --expect=STRING String esperada na primeira linha da resposta do servidor (padrão: RTSP/1.) -w, --warning=DOUBLE Tempo de resposta para resultar em status de aviso (segundos) -c, --critical =DUPLO Tempo de resposta para resultar em status crítico (segundos) -t, --timeout=INTEGER Segundos antes do tempo limite da conexão expirar (padrão: 10) -v, --verbose Mostrar detalhes para depuração de linha de comando (a saída pode ser truncada pelo sistema de monitoramento) Este plugin tentará abrir uma conexão RTSP com o host. As conexões bem-sucedidas retornam STATE_OK, recusas e tempos limite retornam STATE_CRITICAL, outros erros retornam STATE_UNKNOWN. Conexões bem-sucedidas, mas mensagens de resposta incorretas do host resultam em valores de retorno STATE_WARNING. [...]
Alta disponibilidade do serviço virtual RTSP #
Com um cluster com estado, como está incluído em RELIANOID Load Balancer, o serviço virtual RTSP seria protegido contra um único ponto de falha, pois permite configurar dois nós diferentes que interoperam entre eles para fornecer um serviço RTSP totalmente confiável.
Segurança do serviço virtual RTSP #
Balanceadores de carga, como RELIANOID, geralmente são capazes de aplicar algumas regras de segurança aos serviços virtuais. No que diz respeito a RELIANOID, o módulo IPDS permite incluir proteções DoS, listas negras em tempo real (RBL) e listas negras pré-carregadas e personalizadas para serviços de balanceamento de carga RTSP.