Resumo

  • A RFC 871 recuperou princípios que o Network Working Group da ARPANET já havia usado para ligar computadores diferentes e permitir cooperação entre seus programas e dados.
  • A equidade entre máquinas exigia ouvir quem implementava o protocolo: dispensar o login para receber e-mail parecia econômico em um sistema, mas podia remover autenticação em outro.

O conserto parecia ter uma linha. Para não cobrar do destinatário por uma mensagem eletrônica, bastaria dispensar os comandos de login usados pelo FTP. Michael A. Padlipsky contou na RFC 871, publicada em setembro de 1982, por que a linha não passou. Certos sistemas operacionais precisavam daqueles comandos para autenticar o usuário, além de acionar a contabilidade. Uma máquina ganharia uma gentileza; outra perderia uma porta de controle. A solução descrita manteve a opção de exigir login e divulgou uma conta comum gratuita para o recebimento de correio.

Padlipsky chamou o cuidado de equidade. Quando um mecanismo parecia óbvio no computador de quem o propunha e perturbava gravemente o de um colega, o colega precisava ser ouvido. O protocolo ligava sistemas operacionais diferentes. Cada um carregava sua própria forma de conceder acesso, registrar atividade e organizar processos. O desenho de rede podia esconder essas diferenças com uma seta elegante; o programa em execução devolvia a conta à mesa.

O texto surgiu quando o modelo de referência da ISO dominava muitas apresentações sobre redes. Padlipsky argumentou que o Network Working Group da ARPANET tinha uma moldura de pensamento anterior, em grande parte tácita, construída junto com os protocolos. Em 1982 ele a organizou como uma reconstrução das decisões tomadas por quem os fizera funcionar. O passado da ARPANET não começara no dia em que alguém traçou três retângulos em papel. O diagrama servia para explicar escolhas de engenharia já praticadas.

A primeira escolha dizia respeito ao objetivo: compartilhar recursos entre computadores de tipos diferentes. Entrar remotamente em um host ajudava, mas programas e dados de máquinas distintas também precisavam cooperar. Isso exigia comunicação entre processos ativos. As conexões lógicas davam endereços reconhecíveis a essas conversas: um socket conhecido indicava um serviço, e outros números podiam abrigar experimentos. O número ajudava a encontrar uma função, além de separar fluxos de bits.

Os terminais variados traziam uma multiplicação desagradável. Se cada tipo de host tivesse que compreender cada tipo de terminal, o número de adaptações cresceria com as duas listas. O Terminal Virtual de Rede colocou uma representação comum no meio. Cada host convertia entre seu modo particular e a forma compartilhada. O mesmo raciocínio ajudava a transferência de arquivos. Em vez de ensinar todos os dialetos a todos os computadores, cada participante aprendia a falar em uma fronteira comum.

Padlipsky descreveu três grupos amplos de funções: interface com a rede, comunicação entre hosts e aplicações ou processos. Um grupo podia abrigar vários protocolos. As fronteiras permitiam alterar uma implementação sem obrigar outra a conhecer seus detalhes internos. Ele criticou a leitura de modelos de referência como uma ordem para atravessar cada caixa do desenho em toda transmissão. Se duas pessoas moram no mesmo andar, obrigá-las a descer até a portaria para conversar na volta seria excelente exercício físico; o processador não pediu essa academia.

A eficiência, portanto, incluía tempo de CPU, memória e conversões que não ajudavam o trabalho. A equidade acrescentava a integração aos sistemas operacionais em uso. Padlipsky comparou essa flexibilidade ao que considerava uma leitura rígida do modelo ISO; era sua avaliação no debate de 1982. A decisão sobre o e-mail mostra a consequência verificável: antes de eliminar uma etapa, descobrir quais serviços locais dependem dela. A conta gratuita resolveu o problema da cobrança e preservou o caminho de autenticação exigido por alguns hosts.

A RFC 871 deu nome a um modelo com três grupos e várias obrigações: compartilhar recursos, ligar processos, atribuir significado às conexões, criar representações comuns, gastar recursos com parcimônia e tratar computadores diferentes com justiça. O desenho cabia numa página. Fazer os sistemas discordantes trabalharem juntos ocupava o restante da oficina.