.

Com a Ethernet completando 50 anos este ano, a Ars está ressurgindo esse recurso no desenvolvimento e evolução da Ethernet que foi publicado originalmente em 2011.
Embora assistir a programas de TV da década de 1970 sugira o contrário, a época não era completamente desprovida de todas as coisas que se assemelhavam aos sistemas de comunicação modernos. Claro, os modems de 50 Kbps nos quais a ARPANET rodava eram do tamanho de geladeiras, e os amplamente usados modems Bell 103 transferiam apenas 300 bits por segundo. Mas a comunicação digital de longa distância era bastante comum, em relação ao número de computadores implantados. Os terminais também podem ser conectados a mainframes e minicomputadores em distâncias relativamente curtas com linhas seriais simples ou com sistemas multidrop mais complexos. Tudo isso era bem conhecido; o que era novidade nos anos 70 era a rede local (LAN). Mas como conectar todas essas máquinas?
O objetivo de uma LAN é conectar muito mais do que apenas dois sistemas, portanto, um simples cabo de ida e volta não resolve o problema. A conexão de vários milhares de computadores a uma LAN pode, em teoria, ser feita usando topologia em estrela, anel ou barramento. Uma estrela é bastante óbvia: todo computador está conectado a algum ponto central. Um barramento consiste em um único cabo longo ao qual os computadores se conectam ao longo de sua extensão. Com um anel, um cabo passa do primeiro computador para o segundo, daí para o terceiro e assim por diante até que todos os sistemas participantes estejam conectados, e então o último é conectado ao primeiro, completando o anel.
Na prática, as coisas não são tão simples. Token Ring é uma tecnologia de LAN que usa uma topologia em anel, mas você não saberia disso olhando o cabeamento da rede, porque os computadores são conectados a concentradores (semelhantes aos switches Ethernet atuais). No entanto, o cabo de fato forma um anel, e o Token Ring usa um sistema de passagem de token um tanto complexo para determinar qual computador enviará um pacote em qual momento. Um token circula o anel e o sistema em posse do token consegue transmitir. O Token Bus usa uma topologia de barramento físico, mas também usa um esquema de passagem de token para arbitrar o acesso ao barramento. A complexidade de uma rede de tokens a torna vulnerável a vários modos de falha, mas essas redes têm a vantagem de que o desempenho é determinístico; pode ser calculado com precisão com antecedência, o que é importante em certas aplicações.
Mas, no final, foi a Ethernet que venceu a batalha pela padronização da LAN por meio de uma combinação de políticas de corpo de padrões e um design inteligente, minimalista e, portanto, barato de implementar. Ele passou a obliterar a concorrência ao buscar e assimilar protocolos de taxa de bits mais alta e adicionar sua distinção tecnológica à sua. Décadas depois, tornou-se onipresente.
Se você já olhou para o cabo de rede saindo do seu computador e se perguntou como a Ethernet começou, como ela durou tanto e como funciona, não se preocupe mais: aqui está a história.
Trazido a você por Xerox PARC
A Ethernet foi inventada por Bob Metcalfe e outros no Palo Alto Research Center da Xerox em meados da década de 1970. A Ethernet experimental do PARC funcionou a 3 Mbps, uma “taxa de transferência de dados conveniente […] bem abaixo do caminho do computador para a memória principal”, para que os pacotes não precisassem ser armazenados em buffer nas interfaces Ethernet. as ondas se propagam pelo ar.
A Ethernet usava seu cabeamento como “éter” de rádio, simplesmente transmitindo pacotes por uma linha coaxial espessa. Os computadores foram conectados ao cabo Ethernet por meio de “torneiras”, onde um orifício é perfurado no revestimento coaxial e no condutor externo para que uma conexão possa ser feita com o condutor interno. As duas extremidades do cabo coaxial – ramificação não é permitida – são equipadas com resistores de terminação que regulam as propriedades elétricas do cabo para que os sinais se propaguem por todo o comprimento do cabo, mas não sejam refletidos de volta. Todos os computadores veem todos os pacotes passarem, mas a interface Ethernet ignora os pacotes que não são endereçados ao computador local ou ao endereço de broadcast, portanto, o software só precisa processar os pacotes direcionados ao computador receptor.
Outras tecnologias de LAN usam mecanismos extensivos para arbitrar o acesso ao meio de comunicação compartilhado. Não Ethernet. Fico tentado a usar a expressão “os lunáticos dirigem o asilo”, mas isso seria injusto com o inteligente mecanismo de controle distribuído desenvolvido no PARC. Tenho certeza de que os fabricantes de mainframes e minicomputadores da época pensaram que a analogia do asilo não estava muito longe, no entanto.
Os procedimentos de controle de acesso à mídia (MAC) da Ethernet, conhecidos como “Carrier Sense Multiple Access with Collision Detect” (CSMA/CD), são baseados em ALOHAnet. Esta era uma rede de rádio entre várias ilhas havaianas montada no início dos anos 1970, onde todos os transmissores remotos usavam a mesma frequência. As estações transmitiam sempre que quisessem. Obviamente, dois deles podem transmitir ao mesmo tempo, interferindo um no outro, de modo que ambas as transmissões sejam perdidas.
Para corrigir o problema, o local central reconhece um pacote se ele foi recebido corretamente. Se o remetente não vir uma confirmação, ele tentará enviar o mesmo pacote novamente um pouco mais tarde. Quando ocorre uma colisão porque duas estações transmitem ao mesmo tempo, as retransmissões garantem que os dados cheguem eventualmente.
A Ethernet melhora o ALOHAnet de várias maneiras. Em primeiro lugar, as estações Ethernet verificam se o ether está ocioso (senso de portador) e espere se eles sentirem um sinal. Em segundo lugar, uma vez transmitido pelo meio compartilhado (acesso múltiplo), as estações Ethernet verificam a interferência comparando o sinal no fio com o sinal que estão tentando enviar. Se os dois não coincidirem, deve haver uma colisão (detecção de colisão). Nesse caso, a transmissão é interrompida. Apenas para ter certeza de que a fonte da transmissão interferente também detecta uma colisão, ao detectar uma colisão, uma estação envia um sinal de “interferência” por 32 tempos de bit.
Ambos os lados agora sabem que sua transmissão falhou, então eles iniciam as tentativas de retransmissão usando um procedimento de backoff exponencial. Por um lado, seria bom retransmitir o mais rápido possível para evitar o desperdício de largura de banda valiosa, mas, por outro lado, ter outra colisão imediatamente anula o objetivo. Assim, cada estação Ethernet mantém um tempo máximo de backoff, contado como um valor inteiro que é multiplicado pelo tempo que leva para transmitir 512 bits. Quando um pacote é transmitido com sucesso, o tempo máximo de backoff é definido como um. Quando ocorre uma colisão, o tempo máximo de backoff é dobrado até atingir 1024. O sistema Ethernet então seleciona um tempo real de backoff que é um número aleatório abaixo do tempo máximo de backoff.
Por exemplo, após a primeira colisão, o tempo máximo de recuo é 2, fazendo com que as escolhas para o tempo real de recuo sejam 0 e 1. Obviamente, se dois sistemas selecionarem 0 ou ambos selecionarem 1, o que acontecerá 50% das vezes, haverá é outra colisão. O backoff máximo torna-se então 4, e as chances de outra colisão caem para 25% para duas estações que desejam transmitir. Após 16 colisões sucessivas, um sistema Ethernet desiste e joga fora o pacote.
Costumava haver muito medo, incerteza e dúvida em torno do impacto das colisões no desempenho. Mas, na prática, eles são detectados muito rapidamente e as transmissões em colisão são interrompidas. Portanto, as colisões não desperdiçam muito tempo e o desempenho do CSMA/CD Ethernet sob carga é realmente muito bom: em seu artigo de 1976 descrevendo a Ethernet experimental de 3 Mbps, Bob Metcalfe e David Boggs mostraram que, para pacotes de 500 bytes e maiores, mais de 95% da capacidade da rede é usada para transmissões bem-sucedidas, mesmo que 256 computadores tenham dados para transmitir continuamente. Muito inteligente.
.