PS1, SRT e RIST¶
Protocolos peer de transmissão confiável: os pacotes perdidos são retransmitidos a pedido do receptor, por isso os três têm um buffer de recepção e uma reserva de banda para a retransmissão. A escolha do protocolo e o cálculo da banda e da latência são descritos em Protocolos Peer de transmissão confiável e Planejamento da largura de banda, da latência e das portas, e a criptografia, em Criptografia de fluxos.
Cada protocolo determina à sua maneira o lado que estabelece a conexão: com PS1 é sempre o receptor que se conecta; com SRT o lado é escolhido por uma configuração; com RIST decorre dos endereços. Isso decide onde é preciso uma porta aberta e onde basta uma conexão de saída.
PS1¶
Um protocolo de desenvolvimento próprio (PS1 (Perfect Stream)). A conexão é sempre estabelecida pelo receptor, por isso a entrada se conecta ao emissor enquanto a saída escuta uma porta. Não há modo de escolha do lado.
Entrada¶
Campo |
Finalidade |
Valores |
|---|---|---|
Address (source host) |
O host emissor ao qual o receptor se conecta. Campo obrigatório. |
um endereço ou um nome de host |
Port |
A porta do emissor. Campo obrigatório. |
1–65535 |
«Usuário», «Senha» |
As credenciais que o receptor apresenta ao emissor; este as confronta com sua própria lista de logins (Usuários / Logins). Um login vazio significa autorização pelo endereço IP do receptor. O valor deve ter menos de 32 bytes: um mais longo o próprio receptor rejeita, sem enviar a solicitação, e a entrada permanece em erro. Em vez da digitação manual está disponível a entrada automática do Meshwork — veja abaixo. |
vazio por padrão |
Passphrase |
A frase-senha de criptografia; deve coincidir com a do emissor. O protocolo não reconhece uma divergência: a conexão será estabelecida, mas o fluxo não será analisado como MPEG-TS — no texto do erro o nó lembra se deste lado há uma frase definida. |
10–64 bytes ou vazio |
Start timeout (s) |
Quanto esperar pela resposta do emissor à solicitação de autorização. Sem resposta, o receptor se reconecta. |
5–3600, padrão 10 |
Play timeout (s) |
Quanto tempo uma conexão em funcionamento pode ficar em silêncio antes que o receptor a considere rompida. É o tempo de reação a uma falha da fonte. |
5–3600, padrão 10 |
Latency (ms) |
A latência de recepção solicitada: a janela de eliminação do jitter e de retransmissão. O valor é um pedido: o emissor o limita com seu próprio buffer e mostra a grandeza acordada nas estatísticas da entrada. A referência são quatro tempos de ida e volta; fluxos de baixa taxa de bits precisam de mais, para que caibam pacotes suficientes na janela. |
250–10000, padrão 3000 |
RTT (initial estimate) (ms) |
A estimativa inicial do tempo de ida e volta, apenas para os primeiros segundos após conectar: depois o receptor o mede por si mesmo e ajusta as retransmissões. Zero aqui não significa «automático» — ele está simplesmente abaixo do limite admitido. |
40–10000, padrão 300 |
Entrada automática do Meshwork. Em uma entrada PS1 o login e a senha podem ser omitidos: o botão «Usar a entrada automática do meshwork» muda a entrada para a autorização de domínio, na qual as credenciais são formadas automaticamente e renovadas a cada reconexão, e não é preciso criar uma conta no emissor (Peers e segredos). É necessário um domínio do nó. A troca inversa — «Mudar para a entrada manual…» — limpa a entrada automática e pede confirmação.
Saída¶
Campo |
Finalidade |
Valores |
|---|---|---|
Listening port |
A porta que o emissor escuta. Campo obrigatório; pode ficar em zero — o nó escolherá uma porta livre ao salvar, enquanto o botão ao lado a escolhe de imediato. |
1–65534 |
Bind interface |
A interface na qual a porta é escutada; escolhida na lista de interfaces do nó. Um valor vazio significa qualquer interface. Uma interface ausente no nó não é considerada erro: nesse caso a saída escuta todas as interfaces, como com o campo vazio. |
qualquer uma por padrão |
Passphrase |
A frase-senha de criptografia; deve coincidir com a dos receptores. |
10–64 bytes ou vazio |
Latency (ms) |
O buffer do emissor: o limite de latência que ele está disposto a conceder aos receptores e o tamanho do seu próprio buffer de retransmissão. Cada receptor recebe no máximo esse valor menos um segundo, por isso a reserva para todo o enlace é definida aqui. |
a partir de 3000, padrão 6000 |
Trace |
Registro de conexões e recusas no log do fluxo. |
desativado por padrão |
SRT¶
Um protocolo aberto baseado em UDP (SRT). O lado que estabelece a conexão é escolhido pela configuração «Listen mode» — e essa mesma configuração muda o sentido de vários campos, por isso ela é definida primeiro.
«Listen mode» está desativado por padrão em uma entrada: a entrada se conecta por si mesma ao emissor (caller). Em uma saída, ao contrário, está ativado: a saída escuta uma porta e distribui o fluxo a quem se conecta (listener). A maioria dos campos a janela mostra em ambos os modos, mesmo quando não têm efeito no modo atual; apenas dois ficam ocultos — «Enable billing» na saída e a proposta de entrada automática do Meshwork na entrada.
Entrada¶
Campo |
Finalidade |
Valores |
|---|---|---|
Listen mode |
Desativado — a entrada se conecta ao endereço e à porta indicados. Ativado — a entrada escuta uma porta e aguarda uma conexão. |
desativado por padrão |
Address |
Com «Listen mode» desativado — o host de origem ao qual a entrada se conecta; aqui também é admitido um nome de host. Com o modo ativado — o único endereço do qual uma conexão é aceita, e ele é indicado em forma numérica: um nome de host ou um erro de digitação não serão reconhecidos e equivalem à ausência de restrição, tal como um campo vazio. |
um endereço ou um nome de host |
Port |
A porta: a remota ao conectar-se a uma fonte, a local em modo de escuta. Campo obrigatório. Em modo de escuta a porta pode ficar em zero — o nó escolherá uma livre. |
1–65535 |
Bind interface |
A interface: em modo de escuta a porta é escutada nela; ao conectar-se a uma fonte, dela parte a conexão de saída. Escolhida na lista de interfaces do nó. |
qualquer uma por padrão |
«Usuário», «Senha» |
Ao conectar-se a uma fonte, a partir deles é formado um identificador de fluxo (stream ID) apresentado ao emissor. Em modo de escuta é usado apenas o login — é o identificador que quem se conecta é obrigado a apresentar: a comparação é exata, sobre a cadeia inteira (SRT: autorização por login e senha em software de terceiros). |
vazio por padrão |
Passphrase |
A frase-senha da criptografia da conexão. Ambos os lados devem definir a mesma frase ou ambos deixar o campo vazio. Ao conectar-se a uma fonte, a divergência é conhecida pela recusa do parceiro: a entrada passa ao estado de espera pelo administrador e provoca um alerta. Em modo de escuta a conexão simplesmente não se estabelece e a entrada continua aguardando. |
10–79 bytes ou vazio |
AES key length |
O comprimento da chave de criptografia. Só atua quando há uma frase-senha definida. |
AES-128 (padrão), AES-192, AES-256 |
Latency (ms) |
A janela durante a qual o receptor retém os pacotes, dando ao protocolo tempo para a retransmissão. Quanto maior a janela, mais profunda a restauração e maior a latência de ponta a ponta; a referência prática são três a quatro tempos de ida e volta. |
a partir de 120, padrão 1000 |
Loss max TTL |
O limite superior de tolerância ao desordenamento de pacotes: dentro desses limites o receptor escolhe por si mesmo quanto esperar por um pacote atrasado antes de considerar uma lacuna como perda e pedir uma retransmissão. O valor é aumentado em caminhos onde os pacotes realmente se desordenam — isso evita retransmissões desnecessárias. Zero desativa o mecanismo: qualquer lacuna é imediatamente contada como perda. |
a partir de 0, padrão 0 |
Overhead (%) |
A reserva de banda acima da taxa de bits do fluxo que o protocolo pode gastar em retransmissões. Atua enquanto «Max bandwidth» for zero. |
5–100, padrão 25 |
Max bandwidth (B/s) |
Um limite rígido da velocidade de envio em bytes por segundo. A reserva em porcentagem atua apenas com zero: então o limite é deduzido da taxa de bits medida e dessa reserva. O valor −1 remove a restrição, um valor positivo define o limite diretamente — e em ambos os casos a reserva em porcentagem deixa de atuar. |
a partir de −1, padrão 0 |
Connect timeout (ms) |
O silêncio admissível do parceiro, após o qual a conexão é considerada rompida. Para o lado que estabelece a conexão é também o tempo limite da própria conexão. |
a partir de 0, padrão 3000 |
Disable TSBPD |
Desativa a entrega dos pacotes segundo suas marcas de tempo: os pacotes são entregues assim que chegam. A latência é mínima, mas do lado SRT já não há nivelamento nem ordenação — e a configuração Latency deixa de governar a entrega. É empregado em nós de recepção densos, onde a sincronização é assumida pelo buffer de jitter do nó (Sincronização). |
desativado por padrão |
Uma entrada em modo de escuta aceita uma conexão: enquanto o receptor estiver ocupado com uma fonte, uma segunda não se conectará. Para aceitar várias fontes, adicionam-se várias entradas (Redundância de fontes e distribuição).
A entrada automática do Meshwork está disponível aqui também, ao conectar-se a uma fonte: ela substitui o login e a senha pelo identificador de fluxo do domínio (Peers e segredos). No modo de espera de conexões essa possibilidade não existe, mas uma conexão de um nó do mesmo domínio também é aceita ali — pelo identificador de domínio, além da verificação habitual.
Saída¶
Os campos de criptografia e as configurações do enlace são os mesmos da entrada. As diferenças:
Campo |
Finalidade |
Valores |
|---|---|---|
Listen mode |
Ativado — a saída escuta uma porta e vários receptores se conectam a ela, cada um com sua própria autorização. Desativado — a saída se conecta por si mesma ao endereço indicado e entrega o fluxo a um único receptor. |
ativado por padrão |
Address |
O endereço do receptor. Obrigatório quando «Listen mode» está desativado; no modo de espera de conexões não é utilizado. |
um endereço ou um nome de host |
Port |
A porta local em modo de escuta (pode ficar em zero — o nó escolherá uma livre) ou a porta do receptor ao conectar. Campo obrigatório. |
1–65534 |
Bind interface |
A interface: em modo de escuta a porta é escutada nela; ao conectar-se a um receptor, dela parte a conexão de saída. |
qualquer uma por padrão |
Meshwork peer auth |
Autorização de domínio em vez de um identificador de fluxo — ao conectar-se a um receptor do mesmo domínio (Peers e segredos). Ao contrário da entrada, aqui isto é um interruptor comum e em modo de escuta ele também é exibido, embora não tenha efeito. |
desativado por padrão |
SRT stream id |
O identificador de fluxo que a saída apresenta a um receptor ao conectar-se a ele. Em modo de escuta não é utilizado — ali quem se conecta é que apresenta o identificador. |
vazio por padrão |
Enable billing |
Somente ao conectar-se a um receptor: antes da conexão, a saída pede permissão ao servidor de faturamento. Uma recusa ou a indisponibilidade do servidor param a saída até a intervenção de um administrador — o fluxo não sai sem autorização. Em modo de escuta o campo não é exibido: ali cada conexão é autorizada separadamente. |
desativado por padrão |
Packets per datagram |
Quantos pacotes TS são colocados em uma mensagem SRT. Sete pacotes preenchem os 1316 bytes padrão; um valor menor reduz ligeiramente a latência ao custo de uma sobrecarga bem maior. A alteração reabre a saída. |
1–7, padrão 7 |
Trace |
Registro de conexões, recusas e desconexões dos receptores no log do fluxo. |
desativado por padrão |
RIST¶
Um protocolo aberto baseado em RTP/RTCP com retransmissão por NACK (RIST). O RIST não tem apenas um peer: tanto a entrada quanto a saída trabalham com uma lista de peers, o que dá redundância por vários caminhos e distribuição a vários destinatários ao mesmo tempo.
O perfil Main coloca os dados e o canal de serviço em uma única porta, e somente nele a criptografia funciona. O perfil Simple ocupa duas portas consecutivas, por isso a porta base deve ser par, e a frase-senha não tem efeito neste perfil.
A lista de peers¶
Os peers são definidos na tabela «Peers RIST»: uma linha é um peer, e as colunas são Address, Port, Interface e Weight. O rótulo da coluna traz uma indicação sobre seu uso habitual, e ele difere entre a entrada e a saída: na entrada, Address (multicast) e Interface (unicast); na saída, Address e Interface (multicast). O botão «Adicionar peer» acrescenta uma linha e «Excluir peer» a remove; uma tabela vazia é acompanhada do texto «Ainda não há peers.» Um zero nas colunas Port e Weight é exibido como célula vazia.
Coluna |
Finalidade |
Valores |
|---|---|---|
Address |
O endereço do peer. Na entrada é o endereço do qual o fluxo é recebido: um grupo multicast torna a entrada membro do grupo, e uma célula vazia significa recepção unicast — e então o socket é vinculado ao endereço da coluna Interface. Na saída é o endereço do destinatário, e ele é obrigatório. Não se podem misturar grupos multicast e endereços unicast em uma mesma lista. |
um endereço |
Port |
A porta do peer. Obrigatória em cada linha. No perfil Simple a porta deve ser par — a porta vizinha é ocupada pelo canal de serviço. |
1–65535 |
Interface |
A interface. Na entrada ela é necessária na recepção unicast — é precisamente ao seu endereço que o receptor é vinculado; na recepção multicast ela é apenas verificada. Na saída ela define a interface de envio para um grupo multicast, ao passo que para unicast não tem efeito: a interface é escolhida pela tabela de roteamento. |
um nome de interface ou seu endereço |
Weight |
A política de caminhos na transmissão. Zero significa duplicação: ao peer é enviado cada pacote — isso é a redundância do enlace. Um valor positivo ativa a distribuição de carga entre os peers com pesos positivos, proporcionalmente a eles. Na recepção o valor não tem efeito. |
a partir de 0, padrão 0 |
Uma entrada RIST entra no catálogo do domínio apenas pelos peers com endereço multicast; a recepção unicast não é anunciada ali (Catálogo comum de recursos).
O salvamento é bloqueado enquanto a tabela não estiver preenchida: «Adicione ao menos um peer.», «Cada peer deve ter uma porta de 1 a 65535.», «Cada peer deve ter um endereço.» — na saída; «Cada peer deve ter um endereço (multicast) ou uma interface (unicast).» — na entrada. Outras três mensagens repetem as verificações do nó, para não serem encontradas como um salvamento recusado: «No perfil Simple a porta de cada peer deve ser par.», «Um peer unicast em uma entrada precisa de uma interface de vínculo.» e «Todos os peers devem ser ou multicast ou unicast — não se pode misturar.»
As duas últimas mensagens aparecem somente quando em todas as linhas há endereços e não nomes de host: o navegador não consegue resolver um nome e o tipo do endereço é desconhecido antes disso. Em uma tabela preenchida com nomes, ambas as restrições serão verificadas apenas pelo nó — como um salvamento recusado.
As listas desta tabela não podem ser descompassadas: cada edição reconstrói por inteiro as quatro listas. Uma configuração que chegou ao nó à margem da interface e já está descompassada é exibida por completo — as células que faltam ficam vazias — e o salvamento permanece bloqueado até que a linha seja completada; depois disso as listas são alinhadas.
Entrada¶
Campo |
Finalidade |
Valores |
|---|---|---|
RIST profile |
O formato de transmissão. Main — uma única porta, com criptografia disponível. Simple — duas portas consecutivas, sem criptografia. |
Simple, Main (padrão) |
Allowed peer IP |
O único endereço do qual uma conexão é aceita; os demais são rejeitados com um registro no log. Um campo vazio permite a conexão de qualquer endereço. É um único endereço, não uma lista, uma máscara ou um intervalo. |
vazio por padrão |
Passphrase |
A frase-senha de criptografia; deve coincidir em ambos os lados. O comprimento não é limitado, mas apenas os primeiros 127 bytes são levados em conta. Atua somente no perfil Main. |
vazio por padrão |
Session timeout (ms) |
Quanto tempo um peer pode ficar em silêncio antes que a sessão seja rompida. Um valor menor acelera a detecção de um caminho falho; um pequeno demais provoca rompimentos em um enlace instável. |
a partir de 100, padrão 2000 |
Recovery RTT min (ms), Recovery RTT max (ms) |
Os limites nos quais se encaixa o tempo de ida e volta medido ao calcular o intervalo das solicitações de retransmissão. Eles não definem o tamanho do buffer de recuperação — este é fixo. |
a partir de 10; padrão 50 e 500 |
Trace |
Registro dos eventos dos peers no log do fluxo. Alterar a configuração reinicia a entrada. |
desativado por padrão |
Saída¶
A mesma tabela de peers, o mesmo perfil, a mesma frase-senha e as mesmas configurações de recuperação. As diferenças:
Campo |
Finalidade |
Valores |
|---|---|---|
Auth type |
None — a conexão é aceita de qualquer peer. Embedded — o peer é autorizado por endereço IP conforme a lista de logins do nó (Usuários / Logins); um endereço desconhecido é rejeitado. |
None (padrão), Embedded |
Packets per datagram |
Quantos pacotes TS são colocados em um datagrama. Sete pacotes preenchem os 1316 bytes padrão. A alteração reabre a saída. |
1–7, padrão 7 |