Uma breve história do Chaosnet

Decidimos fazer outra viagem ao passado das redes. Desta vez, falaremos sobre o Chaosnet, um protocolo de rede específico usado na década de 1970 pelas máquinas Lisp. O artigo foi baseado em uma nota no TwoBitHistory, que expandimos e complementamos com nossas próprias descobertas e ilustrações.



Se usarmos dig para enviar uma solicitação ao DNS sobre um site, por exemplo, it-grad.ru, obteremos algo assim:



$ dig it-grad.ru






A linha de seção de resposta contém informações sobre um registro do tipo A.



Vamos dar uma olhada no campo "IN". Talvez alguém pense que "IN" é uma desculpa: it-grad.ru IN (interno) A e tem um endereço IP 212.116.122.3. De fato, "IN" significa "Internet". Esta é a aula de gravação .



Uma questão natural surge: que outras opções podem existir? Como você pode acessar um host que não está na Internet? Pode parecer que IN é geralmente o único significado que faz sentido no mundo moderno. Além disso, se você "quebrar" o mesmo it-grad.ru e indicar explicitamente que deseja obter um registro com uma classe diferente de IN, o servidor DNS retornará um erro. Vamos fazer outra solicitação e ver o que acontece ao especificar explicitamente uma classe. Por exemplo, HS (Hesóide). O servidor retornará o status SERVFAIL.



$ dig -c HS it-grad.ru






Outras classes, exceto IN, praticamente não são usadas no mundo moderno. Mas isso não significa que eles não existam: por exemplo, existem HS ou CH. HS é reservado para uso no Serviço de Informação Hesóide, em homenagem a um poeta grego antigo. Mas a classe CH é reservada para as necessidades do herói do artigo, Chaosnet. No momento, é apenas de valor histórico, memorial.





Outras classes de DNS



Hoje, o mundo pertence ao TCP / IP. Este protocolo (junto com o UDP) gerencia a grande maioria das conexões de rede. Mas, como você pode ver, em alguns lugares ainda há vestígios de outro sistema há muito desaparecido, e isso é notável à sua maneira. O que é o Chaosnet? O que foi e por quem foi usado? Por que ele afundou no esquecimento? Vamos descobrir.



Tudo começou no MIT



O Chaosnet foi criado pela equipe do Laboratório de Inteligência Artificial do MIT na década de 1970. Era um produto "complementar" do design de uma máquina que poderia executar a linguagem de programação Lisp com mais eficiência do que os computadores de uso geral.



Lisp é uma criação do professor do MIT e vencedor do Prêmio Turing de 1971, John McCarthy . Ele é o fundador da programação funcional e o autor do termo (condenado em alguns círculos) "inteligência artificial". O





próprio John McCarthy



A versão mais antiga do Lisp é considerada o intérprete de 1958 para o IBM 704. Na verdade, é uma das mais antigas linguagens de programação atuais ao lado do Fortran.



A primeira menção pública ao Lisp (versão 1) remonta a 1960. E em 1962, uma versão 1.5 avançada e aprimorada estava pronta. O Lisp incluiu uma tonelada de ferramentas e funções encontradas na grande maioria das linguagens de programação modernas.



Foi o primeiro idioma a implementar a coleta de lixo e o gerenciamento automático de memória. Ele ganhou imensa popularidade e amor entre os programadores que trabalham com IA. Aqui está apenas um exemplo famoso: SHRDLU, um programa de Terry Winograd que permitia que um computador falasse em linguagem natural e resolvesse problemas simples de lógica. Foi escrito em DEC PDP-6 usando as linguagens Lisp e Micro Planner.





Exemplo ilustrativo de SHRDLU



O único problema de Lisp era sua velocidade. As operações mais simples levaram o dobro do tempo em outros idiomas, porque as variáveis ​​foram verificadas duas vezes, tanto em tempo de execução quanto em tempo de compilação. O coletor de lixo funcionou por mais de um segundo no então IBM 7090, que estava à disposição do MIT. O problema de desempenho foi extremamente grave: os programadores de IA criaram sistemas que interagiam com o usuário em tempo real.



No final da década de 1970, foi decidido construir um computador especial para o Lisp, levando em consideração todos os recursos do idioma. O computador precisava ter mais memória e um conjunto compacto de instruções adequadas para o Lisp. Supunha-se que um circuito elétrico independente seria usado para verificação de tipo, e isso aceleraria bastante o código. Outra peculiaridade das máquinas Lisp era que não havia como dividir o tempo do processador: programas ambiciosos usavam todos os recursos do computador sem deixar rasto. Cada usuário foi "atribuído" a uma unidade central de processamento separada. Veja como os funcionários do Lisp Machine Group descreveram as perspectivas de trabalhar com esse computador:

Lisp Machine — . , . , . , , . . , , , , , .
Obviamente, o termo "computador pessoal" em relação às máquinas Lisp é usado em um sentido ligeiramente diferente do que estamos acostumados agora.





Máquina Lisp





Foto promocional do terminal



Supunha-se que os usuários não trabalhariam diretamente com um computador, mas com terminais especiais. Cada usuário receberá energia dedicada e o próprio computador estará na sala de computadores, para não incomodar todo o escritório com os sons dos cálculos. Os processadores terão acesso ao sistema de arquivos e dispositivos periféricos, como impressoras, por meio de uma LAN de "controle totalmente distribuído" de alta velocidade. Foi assim que Chaosnet nasceu. Seus criadores são Thomas Knight ( biografia em russo ) e Jack Holloway.



O Chaosnet era um padrão de ferro e um protocolo de software. Em termos de equipamento, esse padrão era semelhante ao da Ethernet, e o protocolo do software acabou por trabalhar na Ethernet. Mas, diferentemente do TCP / IP, era suposto gerenciar exclusivamente redes locais. Um dos funcionários do Laboratório de Inteligência Artificial do MIT disse que, ao desenvolver o Chaosnet, o foco principal era escrever um protocolo que, dentro de uma pequena rede, apresentasse melhores resultados do que seus "concorrentes".



A velocidade era crítica porque o Chaosnet era o link intermediário entre o processador Lisp e o sistema de arquivos. Atrasos na rede afetariam a velocidade das operações básicas. Para garantir o desempenho máximo, o Programa de Controle de Rede, que foi usado no Arpanet, foi tomado como base (e aprimorado). O Chaosnet, como o TCP / IP moderno, usou reconhecimentos de pacotes de mensagens, o que reduziu o número total de pacotes transmitidos em 30 a 50%.



O Chaosnet também poderia passar sem algoritmos de roteamento, já que a maioria dos hosts na rede Lisp estava conectada por um único fio curto (CATV, cabo coaxial). David Moon, do Lisp Machine Group, escreveu que o esquema de roteamento do Chaosnet “é baseado no pressuposto de que a rede é simples o suficiente para haver apenas alguns caminhos curtos. Esquemas complexos não são necessários aqui ". Como resultado, o programa de controle Chaosnet pesava metade do que o programa de controle de rede da Arpanet.



O protocolo Chaosnet também tinha outros recursos. Portanto, o comprimento do endereço era de apenas 16 bits, que é metade do comprimento do endereço IPv4. Uma abordagem perfeitamente razoável, considerando que o Chaosnet era destinado apenas a redes locais. Os primeiros 8 bits apontaram para a sub-rede e os segundos para um host específico.



Chaosnet também não usou números de porta. Em vez disso, um processo que "desejava" conectar-se a outro processo em um computador diferente fazia uma solicitação que especificava o "nome do contato" do destino. Geralmente, o nome de um serviço específico. Por exemplo, um host pode tentar se conectar a outro host usando o nome do contato TELNET. Isso é muito semelhante ao TCP: por exemplo, a porta 80 pode ser acessada "por nome" HTTP.



A classe CH DNS, Chaosnet, foi adicionada ao DNS em 1986. Substituiu outra classe, a CSNET (Rede de Ciência da Computação). Agora é difícil descobrir exatamente por que o Chaosnet conseguiu seu lugar no DNS. Havia outras famílias de protocolos que, por algum motivo, não foram adicionadas a ele. Por exemplo, Paul Mockapetris, um dos principais arquitetos do DNS, escreveu que se destinava originalmente a incluir a classe de protocolo de rede Xerox no sistema de nomes de domínio. Mas, por razões desconhecidas, isso não aconteceu. E o Chaosnet pode ter sido adicionado apenas porque a maior parte do trabalho no Arpanet e na Internet foi realizada na BBN Technologies. Os funcionários desta empresa estavam intimamente associados ao MIT e provavelmente ouviram muito sobre o Chaosnet.



As máquinas Lisp foram inicialmente um sucesso comercial vendido pela Symbolics e Lisp Machines Inc. Mas com o tempo, a necessidade deles desapareceu. Eles foram substituídos por microcomputadores, que podiam funcionar com o Lisp, mas sem circuitos especiais. Então o TCP / IP entrou em cena, no qual as deficiências da Arpanet foram corrigidas e o Chaosnet perdeu sua relevância.



Fantasma do passado



Infelizmente, não há muitas informações sobre o Chaosnet no momento. O RFC 675, que é essencialmente a primeira versão do TCP / IP, foi publicado em 1974. Chaosnet apareceu um ano depois. O TCP / IP acabou conquistando o mundo e o Chaosnet não se desenvolveu. É possível que algumas práticas do Chaosnet tenham influenciado o desenvolvimento do TCP / IP, mas não há evidências para apoiar ou refutar isso. Curiosidade: A versão original do Manifesto GNU menciona suporte ao protocolo Chaosnet.



Várias implementações do Chaosnet e links interessantes:





O único traço perceptível do Chaosnet na rede mundial de computadores é a classe CH DNS. Nada mais é do que o espectro de um protocolo de rede alternativo no mundo do vitorioso TCP / IP. Um artefato engraçado da arqueologia digital. Mas é um lembrete "vivo" de que a Internet não apareceu da noite para o dia e o TCP / IP não é a única maneira de conectar computadores.



É também uma razão para pensar no fato de que "Internet" está longe de ser a palavra mais legal que poderia ser usada para batizar nosso sistema de comunicação global.



All Articles