Skip to content

Entrega de reserva

Uma única estação num grupo multicast é um ponto único de falha: a máquina desliga, a interface de rede dela cai, o processo trava — e o grupo fica em silêncio até alguém intervir. O push de reserva elimina esse ponto sem nenhum controle externo. Várias estações recebem o mesmo sinal e o enviam para o mesmo grupo. Uma transmite, as outras escutam o grupo e ficam em silêncio. Quando o grupo silencia, uma delas começa a transmitir sozinha.

As estações não informam nada umas às outras e não sabem umas das outras. Cada uma decide apenas pelo que ouve no grupo: por isso o esquema funciona entre máquinas que não têm nenhuma ligação entre si — basta uma rede em comum.

Ative a reserva

Em cada estação — a aba Saída, o bloco Pushes, um push com o protocolo MPEG-TS/UDP ou MPEG-TS/RTP para o endereço do grupo (como criá-lo está na página Entrega para a rede).

Campo O que define Padrão
Push de reserva o push envia para o grupo só enquanto nenhum outro emissor é ouvido nele desativado
Janela de assunção, ms quanto tempo o grupo deve ficar em silêncio para o push começar a transmitir 1000

Dois pushes de reserva para um grupo: um transmite, o outro aguarda

A chave Push de reserva aparece só quando o campo Host contém o endereço de um grupo multicast — IPv4 de 224.0.0.0 a 239.255.255.255 ou IPv6 começando com ff. Um endereço unicast não tem grupo em comum, não há o que escutar, e a reserva ali é impossível. Um nome de host no lugar do endereço também não serve: é preciso o próprio endereço.

Em todo o resto é um push comum: o mesmo TTL de multicast, a mesma Interface de saída, as tabelas de saída e a linha de estatística.

Como a estação decide se transmite

A regra é uma só para todas:

  • outro emissor é ouvido no grupo — o push fica em silêncio;
  • o grupo fica em silêncio por mais tempo que a janela de assunção — o push começa a transmitir;
  • transmitindo, o push ouve outro emissor — o push silencia, e o grupo fica com quem está sendo ouvido.

A estação distingue sozinha os próprios pacotes dos alheios: um pacote que volta para ela do grupo não é tomado por outro emissor. Um segundo push da mesma estação para o mesmo grupo já é outro emissor, assim como uma máquina vizinha.

Depois de um início — partida da estação, edição do push, ativação — o push primeiro fica em silêncio por uma janela: se outra estação já estiver transmitindo, a nova não entra no grupo antes de ouvi-la.

Um push em silêncio continua preparando o stream, então a assunção não espera um quadro-chave nem as tabelas de serviço: os primeiros pacotes depois da janela já são um stream completo.

Que janela definir

A janela é ao mesmo tempo o tempo de reação e a única coisa que define a precedência entre as estações.

  • O congelamento que o espectador vê numa falha é aproximadamente igual à janela de assunção: é o tempo que o grupo fica em silêncio antes de a reserva assumi-lo. O padrão é 1000 ms: um stream ao vivo são centenas de pacotes por segundo, e um segundo de silêncio é uma falha, não jitter de rede. Uma janela menor que 200–300 ms vai começar a disparar com os travamentos breves da estação que transmite.
  • A janela mais curta vence. Se as estações partem ao mesmo tempo ou ambas silenciaram, a primeira a transmitir é a que tem a janela mais curta; as outras a ouvem e ficam em reserva.
  • Janelas diferentes para estações diferentes. Com janelas iguais, estações que sobem ao mesmo tempo podem passar o grupo de uma para outra algumas vezes antes de uma se firmar. A estação principal recebe uma janela mais curta, a de reserva uma mais longa, por exemplo 500 e 2000 ms.

Dois esquemas

  • Reserva em todas as estações. A estação que volta depois de uma falha ouve que o grupo está ocupado e aguarda: o grupo não volta para trás, e não há congelamento extra. Uma estação passa a transmitir só quando a que está transmitindo falha.
  • A principal sem reserva, as outras com reserva. A estação principal transmite sempre. Enquanto ela está viva, as de reserva ficam em silêncio; quando ela volta depois de uma falha, a de reserva a ouve e silencia — o grupo volta para a principal. Cada retorno é mais uma comutação para o espectador.

Reserva em todas as estações é a escolha padrão: a comutação acontece só numa falha.

O que a rede precisa oferecer

As estações precisam ouvir o grupo para o qual transmitem.

  • Um mesmo segmento ou roteamento multicast. Cada estação entra no grupo pela mesma interface pela qual envia; os pacotes de outra estação precisam chegar até ela. Defina em todas as estações a Interface de saída para a rede de mídia explicitamente.
  • IGMP snooping. A estação se inscreve no grupo como um receptor, e um switch com IGMP snooping entrega a ela os pacotes da vizinha. Sem inscrição — por exemplo, numa porta onde um filtro corta o multicast — a estação não vai ouvir a vizinha.
  • O TTL precisa levar os pacotes de uma estação até a outra se houver roteadores entre elas.
  • O mesmo sinal na entrada. A reserva substitui o emissor, não o conteúdo: as estações recebem a mesma fonte e entregam as mesmas tabelas de saída; do contrário, depois da comutação o receptor verá outro stream.

O que verificar

Num push de reserva, a linha de estatística ao vivo mostra o status de reserva ao lado do status geral:

  • Transmitindo — o push está enviando para o grupo agora;
  • Em espera — outro emissor é ouvido no grupo, o push está em silêncio.

Silêncio em reserva não é erro: o status geral continua Enviando, as reconexões não crescem. A taxa de um push em espera é zero — pacotes que não foram para a rede não contam como enviados; pela taxa e pelo contador de bytes se vê qual estação estava transmitindo. Os contadores são explicados na página Monitoramento da entrega.

Um grupo saudável é exatamente uma estação com o status Transmitindo.

  • As duas transmitem por mais tempo que a janela — as estações não se ouvem: verifique a Interface de saída, o IGMP snooping e os filtros nas portas, o TTL.
  • Ninguém transmite, todas Em espera — há um terceiro emissor no grupo: outro push, outra máquina. A estação escreve o endereço dele no próprio log ao passar para a espera.
  • Status Erro num push de reserva — a estação não conseguiu entrar no grupo na interface definida; o motivo está na linha de estatística.

O que vem a seguir