Resumo

  • O RFC 1078 propôs o TCPMUX: conectar à porta TCP 1, enviar um nome de serviço seguido de CRLF e receber + ou , com possível explicação. Com +, o protocolo escolhido começa na mesma conexão; com , ela é encerrada.
  • HELP lista os serviços oferecidos pelo host. Serviços com porta própria continuam disponíveis nela e podem também aparecer no saguão. Na tabela oficial de 1987, as portas 1 a 4 ainda constavam como não atribuídas.

Números de porta eram endereços de contato para serviços TCP. Um cliente que conhecia um serviço padrão batia no número correspondente. A lista de números atribuídos, publicada em maio de 1987, punha essas entradas nos oito bits inferiores e deixava 1 a 4 vagos. O espaço numérico total de TCP era bem maior. O recurso administrado com cuidado era o conjunto pequeno de entradas conhecidas, normalmente reservado aos protocolos oficiais. Um serviço privado podia funcionar perfeitamente sem merecer uma placa individual no corredor principal.

Mark Lottor propôs uma recepção comum em novembro de 1988. Seu RFC 1078 chamou a solução de TCP Port Service Multiplexer, ou TCPMUX. Um processo atendia na porta 1. O cliente abria a conexão e enviava o nome do serviço, seguido de retorno de carro e avanço de linha. Maiúsculas e minúsculas valiam do mesmo jeito. A frase inicial era curtíssima; ela determinava quem receberia todo o restante da conversa.

A resposta começava com um caractere. + significava atendimento, possivelmente acompanhado de explicação e CRLF; em seguida começava o protocolo selecionado, na própria conexão. significava recusa, também com explicação opcional, e a conexão era fechada. O cliente já tinha chegado ao host. Faltava escolher qual sala receberia a visita.

Uma nota de implementação revelava uma divisão engenhosa do trabalho. Quando o nome procurado não existia, o multiplexador normalmente enviava a negativa. Quando a conversa era aceita, a positiva normalmente vinha do serviço acionado. A recepção sabe quem consta da agenda; o profissional da sala confirma que assume o cliente. Nome na lista e processo pronto para conversar são fatos diferentes.

Havia também um painel de orientação. HELP era reservado: a resposta apresentava uma lista em várias linhas, um nome por linha, e depois encerrava a conexão. Consultar o painel era uma visita separada da sessão com qualquer serviço. Os nomes já registrados na tabela oficial de protocolos e serviços mantinham exatamente seus significados. O atendente podia encaminhar a visita, mas não trocar a placa de uma sala por outra.

As entradas tradicionais continuavam abertas. Um serviço com número de porta atribuído precisava seguir disponível ali; oferecê-lo também pelo TCPMUX era escolha local. O cliente que já conhecia o número entrava pelo caminho antigo. O saguão novo beneficiava principalmente serviços futuros e protocolos privados que não tinham uma atribuição oficial para si.

Esses protocolos precisavam batizar-se com algum cuidado. Lottor recomendava um nome com grande chance de ser único, como um prefixo com o nome da organização, e permitia um sufixo para indicar a versão. Se dois escritórios se chamam apenas “arquivo”, o atendente terá uma tarde longa. Um nome mais distinto poupa portas erradas. O registro preservava os nomes oficiais; os privados cuidavam das próprias colisões.

O funcionamento inteiro cabe numa visita: discar um número, dizer um nome, receber um sinal e então conversar com o serviço ou encerrar. HELP mostra a lista daquele host. A proposta deu a vários serviços uma entrada compartilhada sem mexer na numeração das portas já conhecidas. Porta 1 virou recepção; o resto do prédio continuou atendendo.