Resumo

  • Um par TALI 2.0 precisava tratar o outro extremo como versão 1.0 até receber um moni que identificasse a versão 2.0; os novos opcodes dependiam dessa evidência.
  • A RFC 3094 era uma proposta Informational da Tekelec. A nota do IESG dizia explicitamente que ela era uma alternativa ao trabalho SIGTRAN e que o IETF não havia avaliado sua solidez técnica nem sua completude.

O limite aparece antes de qualquer mensagem SS7. A RFC 3094 descreve o Transport Adapter Layer Interface (TALI), uma proposta da Tekelec para transportar sinalização entre uma rede comutada por circuitos e uma rede IP. Um Signaling Gateway poderia levar mensagens SCCP, ISUP e relacionadas ao MTP por TCP/IP, além de funções de gestão e registro dinâmico de circuitos. O documento detalha formatos, temporizadores, estados dos pares e comportamentos distintos de TALI 1.0 e 2.0. Mas uma especificação minuciosa ainda é apenas uma especificação; a própria abertura da RFC deixa isso claro.

A nota do IESG apresenta TALI como alternativa de fornecedor à tecnologia de standards track que o grupo SIGTRAN do IETF desenvolvia naquele momento. Acrescenta que o IETF não havia revisado a solidez técnica nem a completude da proposta e recomenda que usuários potenciais examinem SIGTRAN antes de decidir. Não afirma que o IETF considerou TALI defeituoso, rejeitou a tecnologia ou provou que ela nunca foi usada. A nota delimita a revisão e sugere uma comparação.

O problema de engenharia mais explícito dentro de TALI é compatibilidade retroativa. A versão 1.0 não tinha um modo simples de identificar a versão do par. A versão 2.0 reaproveita a mensagem moni (monitor): fixa doze octetos para um rótulo de versão e deixa os dados seguintes disponíveis para cada implementação. O campo de dados ainda deve ficar dentro do limite documentado de 200 octetos. moni também conserva uma função de eco que pode medir o tempo de ida e volta ou servir a tarefas locais.

Ao abrir a conexão, uma implementação 2.0 inicializa far_end_version como 1.0. Pode anunciar sua própria versão, mas não pode inferir que o outro lado tem as mesmas capacidades. Precisa examinar uma mensagem moni recebida e reconhecer a etiqueta de versão. Se a mensagem não chegar ou a etiqueta não for conhecida, o par continua sendo tratado como 1.0.

Esse estado controla três opcodes novos da versão 2.0: mgmt, xsrv e spcl. Uma implementação 1.0 os consideraria inválidos e encerraria o socket imediatamente. Por isso o nó 2.0 precisa confirmar que o par é 2.0 ou posterior antes de enviá-los. Se o outro lado for 1.0, volta às funções 1.0. A RFC também descreve receptores 1.0 ignorando os dados adicionais de moni e mantendo a troca habitual de monitor e confirmação. Compatibilidade não significa que todos entendem todas as funções; significa não enviar um opcode que o par antigo rejeitaria e, com isso, preservar uma conexão utilizável.

Isso é um limite operacional observável, não um slogan abstrato. A implementação local anuncia; o par remoto fornece uma indicação; a máquina de estados registra a observação; e a barreira de opcode decide o que pode atravessar o socket. O número de versão impresso no documento e a configuração local não substituem a declaração observada do par.

A história dos padrões ao redor exige a mesma cautela. A RFC 2719 já descrevia a arquitetura SIGTRAN. Documentos posteriores de standards track especificaram camadas de adaptação como M2UA, M3UA e SUA, e o SCTP passou a ser usado como transporte nesse trabalho. A própria RFC 3094 também discute uma pilha alternativa com SCTP. Esses registros mostram especificações relacionadas, paralelas ou posteriores; não provam que TALI foi substituído, que uma rede específica migrou ou que duas implementações interoperaram.

Publicada em abril de 2001, a RFC 3094 é Informational e declara que não define um padrão da Internet. Publicação, mecanismo especificado e limite de revisão são fatos diferentes. Nem a máquina de estados detalhada nem o aviso do IESG resolvem, por si, a questão da qualidade ou do uso. Para isso seriam necessárias implementações em execução, resultados de testes, registros operacionais ou tráfego observado.

Fontes