4 pontos por GN⁺ 4 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • A internet transforma voz, vídeo e texto em padrões de eletricidade, luz e ondas de rádio e os faz atravessar equipamentos de várias operadoras independentes, entregando dados apenas com decisões locais em cada salto, sem um controlador central nem uma entidade única que conheça todo o caminho
  • A regeneração digital do telégrafo, a comutação de circuitos da rede telefônica, a comutação de pacotes, Ethernet, IP, TCP, DNS e TLS não são componentes de um projeto pronto, mas protocolos acumulados ao resolver as limitações físicas e operacionais de cada época
  • O IP cuida apenas da entrega de melhor esforço, permitindo perdas, duplicações e reordenação; o TCP faz retransmissão, restauração de ordem e controle de congestionamento nas extremidades; o DNS transforma nomes em endereços; e o TLS acrescenta autenticação e criptografia
  • Ao abrir uma página web pela primeira vez, antes da transmissão do conteúdo são necessárias várias idas e voltas para consulta DNS, conexão TCP e handshake TLS; portanto, só uma largura de banda alta não elimina a partida lenta causada pela latência
  • Graças à camada IP simples e aos padrões abertos, novos protocolos como HTTP, VPN, WebRTC e QUIC podem ser implantados sem permissão ou substituição dos roteadores existentes, e a internet continua corrigindo as limitações de cada camada sempre que novas necessidades aparecem

De sinais físicos a bits

  • A comunicação pela internet converte continuamente uma mensagem em ondas de rádio Wi-Fi, pulsos elétricos em fios de cobre e luz em fibra óptica, e a restaura na outra ponta na ordem inversa
    • Equipamentos e cabos são compartilhados por milhões de conversas, e os dados passam por equipamentos pertencentes a empresas independentes em vários países
    • Não há um computador central comandando o tráfego; cada equipamento escolhe apenas o próximo caminho
  • A internet não foi projetada de uma só vez, e comutação de pacotes, TCP, DNS e TLS foram acrescentados posteriormente para resolver problemas específicos de redes que já funcionavam
  • O princípio básico de todo enlace é que um lado altera uma grandeza física, e o outro lado a mede em um momento previamente combinado
    • Uma corda tensionada transmite vibrações mecânicas, mas o sinal enfraquece com a distância por causa do atrito e da folga
    • Fios de cobre transportam bits alterando tensão; fibras ópticas, alterando lasers; e Wi-Fi, alterando formas de ondas de rádio

A comunicação digital e os protocolos estabelecidos pelo telégrafo

  • A palavra rede originalmente significava uma malha formada pelo cruzamento de fios ou cordas; no início do século XIX passou por canais e ferrovias e, na década de 1840, passou a se referir ao sistema de fios e estações de retransmissão do telégrafo
  • Em 1844, Samuel Morse transmitiu “What hath God wrought” de Washington a Baltimore
    • O código Morse era uma rede digital que não enviava a voz em si, mas símbolos discretos na forma de pulsos elétricos curtos e longos
    • Em vez de amplificar a forma de onda enfraquecida, os repetidores identificavam a presença ou ausência de pulsos e geravam novos pulsos limpos
    • A amplificação simples também aumenta o ruído a cada trecho, mas a regeneração de símbolos discretos evita a degradação da mensagem mesmo em escala continental
  • As regras previamente compartilhadas entre emissor e receptor, com pulsos para cada caractere e procedimentos como received e repeat, são um protocolo
    • IP, TCP, DNS e TLS são iguais nesse sentido: regras acordadas publicamente para o formato das mensagens e a ordem da comunicação
  • Nas redes telegráficas, o roteamento era feito por pessoas
    • O operador da estação de retransmissão perfurava a mensagem em fita de papel e a retransmitia quando uma linha mais próxima do destino ficava livre
    • Em horários congestionados, as mensagens aguardavam em caixas de armazenamento, uma estrutura que depois foi reproduzida no armazenamento e encaminhamento eletrônico e nos roteadores
  • O primeiro cabo telegráfico transatlântico entrou em operação em agosto de 1858, mas falhou após três semanas, em meio a danos no isolamento e problemas de sobretensão
    • O cabo bem-sucedido foi instalado em 1866 pelo SS Great Eastern, em uma única peça de cerca de 4.000 km
  • Um bit é a menor unidade de informação, representando um dos dois estados, 0 ou 1
    • 1 byte, com 8 bits, expressa 256 estados e pode conter um caractere ou um número pequeno

Largura de banda e latência

  • Largura de banda é o número de bits que um enlace transporta por segundo, e latência é o tempo que um bit leva para chegar à outra ponta
  • A largura de banda pode ser aumentada reduzindo o intervalo entre transmissões de sinais ou usando vários comprimentos de onda em paralelo, mas a latência é limitada pela distância e pela velocidade da luz
    • A luz se move no vidro a cerca de 200.000 km por segundo, aproximadamente dois terços da velocidade no vácuo
    • No trecho New York–London, o limite físico inferior é de cerca de 28 ms em uma direção, e a ida e volta exige o dobro disso
  • Streaming de vídeo tolera atraso ao armazenar alguns segundos em buffer com antecedência, mas exige muita largura de banda
  • Chamadas de vídeo exigem latência baixa, mesmo que a demanda por largura de banda seja relativamente menor
  • Páginas web passam por idas e voltas de DNS, TCP e TLS antes de receber o conteúdo, portanto podem iniciar devagar mesmo em uma conexão gigabit
  • Largura de banda surge do cronograma de transmissão, e latência, do comprimento do enlace; portanto, uma não é algo que possa ser trocado pela outra

Comutação de circuitos e modems

  • Depois de 1876, a rede telefônica usou comutação de circuitos, que reserva um caminho elétrico dedicado de ponta a ponta para cada chamada
    • No início, telefonistas conectavam cabos de patch; depois, relés eletromecânicos automatizaram o processo
    • Como a voz flui continuamente durante a chamada, fazia sentido uma estrutura que usa a linha reservada de forma contínua
  • Nas décadas de 1950 e 1960, os computadores precisavam usar a rede telefônica existente, então convertiam bits digitais em sons analógicos com um modem (modulator-demodulator)
  • Modems iniciais de 300 baud, como o Bell 103, usavam FSK
    • 1 era representado por um tom contínuo de frequência alta, e 0, por um tom de frequência baixa
    • O modem do outro lado identificava a frequência ouvida e restaurava os bits
  • Antes da transmissão de dados, eram negociadas a velocidade de comunicação, a correção de erros e as características da linha
    • Depois do Hayes Smartmodem, de 1981, o alto-falante ficava ligado para que a pessoa pudesse verificar o estado da conexão, ouvindo o tom de discagem, a chamada, a troca de recursos, a negociação de modulação e o treinamento do equalizador
    • O handshake real passa por várias etapas em menos de 30 segundos
  • DSL e cabo reutilizaram as linhas telefônicas e de TV existentes como enlaces digitais sempre conectados, e a fibra óptica residencial se afastou completamente dos fios da rede de voz
  • O tráfego de computadores é em rajadas: depois de uma solicitação, há pausas enquanto se lê ou se calcula
    • Ao reservar um circuito, a capacidade fica ociosa na maior parte do tempo e outros usuários não podem utilizá-la
    • Como o caminho é fixado no início da chamada, basta um enlace intermediário cair para que toda a conexão seja encerrada
  • No início da década de 1960, o aumento de computadores de pesquisa, a natureza em rajadas da computação interativa e a necessidade das Forças Armadas dos EUA de sobreviver mesmo com a perda de alguns trechos expuseram os limites da comutação de circuitos

Comutação de pacotes e entrega de melhor esforço

  • Paul Baran concebeu a comutação de pacotes de forma independente por sobrevivência, e Donald Davies, para compartilhamento de circuitos; Davies deu a ela o nome packet
  • Mensagens são divididas em pequenas unidades, e cada pacote é composto por um cabeçalho com informações de controle, como origem e destino, e pelo payload, que são os dados reais
  • Um roteador recebe o pacote inteiro, lê o destino e o envia ao próximo enlace de acordo com sua própria tabela, executando armazenamento e encaminhamento (store-and-forward)
    • Para manter a escala, a tabela registra redes, que são faixas de endereços, em vez de hosts individuais
  • Pacotes de várias conversas usam a mesma linha de forma intercalada e são roteados de maneira independente
    • Se um roteador intermediário morrer, os pacotes seguintes podem usar outro caminho
    • Antes que as informações de falha se propaguem, eles são enviados pelo caminho antigo e se perdem; o processo de estabilização da nova rota é chamado de convergência (convergence)
  • Um dispositivo que tem endereço é um host; o lado que inicia a conversa é o cliente; e o lado que aguarda solicitações em um endereço fixo conhecido é o servidor
  • Se a velocidade de entrada for maior que a do enlace de saída, o roteador coloca os pacotes em espera na memória e, quando a fila fica cheia, descarta o excedente
  • A rede fornece apenas entrega de melhor esforço, permitindo perda, duplicação e reordenação de pacotes
    • A decisão de deixar a confiabilidade a cargo dos computadores nas extremidades, e não do centro da rede, manteve a internet simples e se tornou a base para sua expansão em escala global

ARPANET e os primeiros roteadores

  • Em 1969, a ARPA apoiou a ARPANET, a primeira rede real de comutação de pacotes, para conectar computadores de pesquisa em universidades
  • Como era difícil deixar o trabalho de comutação de pacotes a cargo de mainframes de fabricantes e sistemas operacionais diferentes, a BBN criou o IMP (Interface Message Processor)
    • O IMP era um minicomputador dedicado que dividia, roteava e remontava mensagens em pacotes
    • O mainframe de cada site se conectava ao IMP local, e os IMPs se comunicavam entre si por linhas telefônicas alugadas
    • A terminologia que distinguia o mainframe que fazia computação como Host e a infraestrutura de transmissão como IMP continua até hoje
    • O IMP foi o primeiro roteador, e roteadores sem fio domésticos seguem o mesmo padrão em que um dispositivo dedicado processa os protocolos de rede em nome dos demais
  • Em 29 de outubro de 1969, Charley Kline, da UCLA, estava digitando LOGIN para o Stanford Research Institute quando o sistema receptor falhou depois que ele enviou LO
  • Em dezembro de 1969, a ARPANET passou a ter quatro nós e, em 1973, foi expandida até Norway e London

Ethernet e redes locais

  • Redes de longa distância como a ARPANET são WANs, enquanto redes que conectam vários dispositivos dentro de um escritório são LANs
  • Robert Metcalfe projetou a Ethernet em 1973 no Xerox PARC
    • Ele se inspirou na transmissão sem permissão e no tratamento de colisões da ALOHAnet, que conectava as ilhas havaianas
    • Na Ethernet inicial, todos os computadores eram conectados a um único cabo coaxial compartilhado e recebiam todos os frames, mas processavam apenas os destinados ao próprio endereço
  • Um cabo coaxial é composto por um fio central de cobre, uma camada isolante, uma blindagem cilíndrica e uma capa externa
    • A blindagem serve como caminho de retorno e também bloqueia interferências externas
  • Quando dois dispositivos transmitem ao mesmo tempo em um meio compartilhado, ocorre uma colisão
    • O CSMA/CD escuta o meio antes de transmitir; se detectar uma colisão durante a transmissão, para imediatamente e tenta novamente após um tempo aleatório
    • Em colisões repetidas, o backoff exponencial, que dobra o intervalo de atraso, evita colisões permanentes
  • Escritórios modernos usam, em vez de cabo coaxial compartilhado, cabos de par trançado dedicados de cada dispositivo até um switch, com conectores RJ-45
    • Como cada porta tem uma linha dedicada e opera em full-duplex, com caminhos separados para envio e recebimento, em princípio não há colisões
    • O CSMA/CD deixou de ser útil na Ethernet cabeada moderna, mas o problema de contenção reaparece no Wi-Fi, que usa o ar como meio compartilhado
  • Switches e endereços MAC

    • O nome switch em redes vem de uma linhagem que inclui desvios ferroviários, chaves elétricas que comutam corrente e centrais telefônicas
    • Switches de rede modernos encaminham frames usando ASICs feitos de milhões de chaves de transistores
    • Roteadores usam endereços de rede globais, enquanto switches usam endereços locais de hardware, os endereços MAC
    • A unidade de dados da Ethernet é o frame
    • Um endereço MAC é registrado como 6 pares de números hexadecimais, totalizando 48 bits, como em 00:1A:2B:3C:4D:5E
    • Um caractere hexadecimal representa exatamente 4 bits, e dois caracteres se alinham a 1 byte, por isso é adequado para representar bits brutos de forma compacta
    • Nos endereços MAC tradicionais, os 3 primeiros pares são o OUI do fabricante, e os 3 últimos são o número de série daquela interface
    • Smartphones também têm endereços separados para os chips de Wi-Fi e Bluetooth
    • Para impedir rastreamento em locais públicos por meio de endereços fixos, sistemas operacionais modernos geram endereços MAC temporários e aleatórios durante a busca e a conexão
    • Um switch aprende automaticamente sua tabela de encaminhamento observando o MAC de origem do frame e a porta por onde ele entrou
    • Se ainda não conhece o destino, ele faz flooding para todas as outras portas
    • Se conhece o destino, encaminha apenas para aquela porta
    • A tabela de um switch é inferida passivamente a partir do tráfego local, enquanto a tabela de um roteador é preenchida por configuração manual ou por protocolos de roteamento
    • Endereços MAC só têm significado no segmento local; endereços IP são usados para trafegar entre redes

IP e a rede de redes

  • Na década de 1970, diferentes redes de pacotes, como SATNET, PRNET e Ethernet, tinham formatos, endereços e tamanhos máximos diferentes, por isso não conseguiam se comunicar diretamente
  • Vint Cerf e Bob Kahn projetaram em 1973 uma internetwork que conectava essas redes sem unificar sua estrutura interna
  • O IP é uma camada comum fina com a qual todas as redes participantes precisam concordar
    • Define um endereço IP universal e um formato universal de pacote
    • Cada rede local transporta pacotes IP colocando-os dentro de seus próprios frames
    • Roteadores não memorizam o estado das conversas nem recuperam perdas
    • Por ser sem conexão, sem etapa de configuração nem estado compartilhado entre pacotes, pode ser implementado sobre fios de cobre, fibra óptica, rádio ou satélite
  • A arquitetura em ampulheta, com vários meios físicos abaixo, várias aplicações acima e o IP no meio como um ponto comum estreito, cria interoperabilidade
  • Endereços IPv4 e correspondência pelo prefixo mais longo

    • Um endereço IPv4 tem 32 bits, ou seja, 4 octetos registrados em decimal separados por pontos, como 91.198.174.192
    • /24 é um prefixo de rede em que os primeiros 24 bits são fixos
    • A máscara de sub-rede 255.255.255.0 representa os mesmos bits fixos de outra forma
    • Um roteador faz XOR entre o destino e a rota e mascara o que vem depois do prefixo para verificar se há divergência na parte fixa
    • Quando várias rotas correspondem, ele escolhe a correspondência pelo prefixo mais longo, isto é, a rota com mais bits fixos
    • Quando não há uma rota específica, usa a rota padrão 0.0.0.0/0
    • Cada roteador não precisa conhecer o mapa inteiro da internet: basta saber os vizinhos e a direção padrão para que, por meio da mesma decisão no roteador seguinte, o pacote chegue ao destino
  • Do endereçamento classful ao CIDR

    • O endereçamento classful de 1981 fixava o tamanho das redes em três categorias
    • A Class A /8 oferecia 16.777.216 endereços, a Class B /16 oferecia 65.536 e a Class C /24 oferecia 256
    • Uma organização que precisasse de cerca de 4.000 endereços era obrigada a receber uma Class B e desperdiçar cerca de 94%, ou receber 16 Classes C e criar 16 rotas em todos os roteadores de núcleo
    • No início da década de 1990, o espaço de endereços e a memória dos roteadores estavam se esgotando rapidamente
    • O CIDR, introduzido em 1993, tornou livre a escolha do comprimento do prefixo
    • Um único /20 oferece 4.096 endereços e permite agregar blocos adjacentes em uma só rota
    • A IANA gerencia todo o espaço IPv4 e distribui grandes blocos a 5 registros regionais de internet
    • Os registros regionais entregam blocos menores aos ISPs, e os ISPs os repassam a empresas e residências
    • A delegação hierárquica, em que cada organização gerencia apenas seu próprio domínio, é o mesmo princípio de escala usado no DNS
  • TTL, ICMP, ping, traceroute

    • O TTL no cabeçalho IP indica o número de saltos restantes, não tempo, e diminui em 1 a cada roteador
    • Quando chega a 0, o pacote é descartado, impedindo que rotas incorretas façam pacotes circularem indefinidamente
    • Quando o TTL expira, o roteador envia um ICMP Time Exceeded à origem
    • O ping mede a latência até um host específico pelo tempo de ida e volta de ICMP Echo Request e Echo Reply
    • O traceroute aumenta o TTL para 1, 2, 3 e coleta as respostas Time Exceeded geradas em cada salto
    • A função de diagnóstico de rotas derivou do TTL, que originalmente foi criado para evitar loops
  • MTU e fragmentação

    • Cada link tem uma MTU, o tamanho máximo que pode transportar de uma vez; na Ethernet, ela é de 1.500 bytes
    • Roteadores IPv4 tradicionais fragmentam pacotes maiores que o próximo link em vários pedaços, que são remontados no destino
    • Isso aumenta o trabalho dos roteadores, e se apenas um fragmento se perder, é preciso reenviar todo o original
    • A abordagem moderna define don’t fragment e usa Path MTU Discovery, em que um roteador incapaz de encaminhar o pacote informa por ICMP a MTU permitida
    • Se surgir um link posterior mais estreito, o remetente reduz novamente o tamanho e converge para a menor MTU do caminho real
    • O IPv6 remove a fragmentação por roteadores e permite apenas PMTUD no lado do remetente
  • Unicast, broadcast, ARP e multicast

    • O unicast, de um remetente para um destinatário, compõe a maior parte do tráfego da internet
    • Uma sub-rede é uma vizinhança física e numérica que pode ser alcançada diretamente por endereço MAC, sem roteador, no mesmo fio ou canal sem fio
    • O broadcast é entregue a todos os hosts da sub-rede e não atravessa o limite dos roteadores
    • O DHCP distribui configurações para dispositivos que ainda não têm endereço
    • O ARP faz broadcast da pergunta “quem tem este IP?”; apenas o proprietário responde por unicast, permitindo encontrar o endereço MAC correspondente ao endereço IP local
    • O resultado fica em cache por alguns minutos
    • Para destinos fora da sub-rede, consulta-se não o endereço MAC do servidor remoto, mas o do gateway padrão
    • O multicast entrega um único pacote apenas ao grupo inscrito e é usado em IPTV, protocolos de roteamento internos etc.
    • Os cerca de 4,3 bilhões de endereços IPv4 se tornaram insuficientes, e o IPv6, que usa endereços de 128 bits, vem sendo implantado em paralelo há cerca de 20 anos e hoje transporta quase metade do tráfego

A confiabilidade criada pelo TCP

  • O TCP implementa nas duas extremidades a confiabilidade que o IP não oferece, e os roteadores intermediários não conhecem o estado do TCP
  • Todos os bytes recebem um número, e o receptor informa via ACK qual é o próximo byte esperado
    • Dados não confirmados são retransmitidos
    • Dados que chegam fora de ordem são reordenados conforme o número e então entregues à aplicação
  • Como os dois lados lembram o estado da conversa, o TCP é orientado a conexão e tem início e fim explícitos
  • As unidades de dados por camada são quadro Ethernet, pacote IP, segmento TCP e datagrama UDP
  • Handshake de 3 vias e checksum

    • O handshake de 3 vias do TCP sincroniza os números de sequência iniciais dos dois lados
      1. O cliente envia SYN, seq=5000
      1. O servidor responde com SYN-ACK, seq=9000, ack=5001
      1. O cliente envia ACK, ack=9001
    • O checksum envia junto um valor calculado a partir dos bytes transmitidos, e o receptor recalcula esse valor para detectar danos acidentais em bits
    • Pacotes divergentes são descartados; como não há ACK, o procedimento normal de retransmissão faz a recuperação
    • Ethernet usa uma frame check sequence baseada em CRC; IP, TCP e UDP usam soma em complemento de 1
    • Isso não impede adulteração intencional por um atacante capaz de recalcular o checksum; esse papel cabe ao TLS
  • Controle de fluxo e controle de congestionamento

    • O emissor TCP mantém uma janela deslizante que limita os dados ainda não confirmados
    • A cada chegada de ACK, a janela avança, impedindo que um emissor rápido sobrecarregue um receptor lento
    • A perda é interpretada como sinal de que a fila de um roteador intermediário transbordou, e o emissor reduz a janela
    • Em outubro de 1986, um enlace de 400 m entre o Lawrence Berkeley Lab e a UC Berkeley colapsou de 32.000 bps para 40 bps quando os emissores responderam às perdas com ainda mais retransmissões
    • O controle de congestionamento de Van Jacobson reduz multiplicativamente o volume transmitido quando há perda e o aumenta com cautela quando há sucesso
    • Bilhões de conexões aplicam as mesmas regras locais, sem coordenação central, para evitar o colapso por congestionamento em redes compartilhadas
    • Se um pacote intermediário se perde, o receptor envia ACKs duplicados para o último byte contíguo recebido, e o emissor pode detectar a perda e retransmitir antes do timeout
  • Portas, sockets e UDP

    • Se o endereço IP identifica o dispositivo, a porta identifica o programa dentro desse dispositivo
    • Servidores HTTPS usam convencionalmente a porta 443
    • A combinação de endereço IP, porta e protocolo representa o endpoint de socket de uma aplicação
    • O sistema operacional do cliente toma emprestada uma porta temporária durante a conexão para distinguir o destino da resposta
    • O UDP apenas adiciona portas ao IP e não oferece estabelecimento de conexão, retransmissão nem restauração de ordem
    • TCP é adequado para dados em que a integridade é importante, como páginas web, e-mail e arquivos
    • UDP é adequado quando dados atrasados são piores que perdas, como videochamadas, jogos multiplayer e DNS
    • TCP/IP tornou-se o protocolo oficial da ARPANET em 1º de janeiro de 1983, e toda rede que concorda em transportar pacotes IP compõe a internet

Como as informações de roteamento são criadas

  • OSPF e RIP dentro de organizações

    • Dentro de uma organização, um IGP troca informações de estado de enlaces e rotas
    • Protocolos de estado de enlace como OSPF fazem cada roteador inundar toda a rede com suas próprias informações de conexão
    • Todos os roteadores têm o mesmo mapa da topologia e calculam independentemente o caminho mais curto
    • Protocolos de vetor de distância como RIP informam aos vizinhos apenas a contagem de saltos até o destino
    • O volume trocado é pequeno, mas não há um mapa completo para verificar se o número informado pelo vizinho ainda é verdadeiro
    • Após uma falha, o processo em que as tabelas passam a refletir o novo estado é a convergência
    • OSPF converge rapidamente ao propagar mudanças reais na topologia
    • RIP pode criar loops em que dois vizinhos acreditam um no outro como rota, e os pacotes ficam indo e voltando até o TTL acabar
    • RIP trata 16 saltos como inalcançável e, apesar de várias mitigações, converge mais lentamente que OSPF, tendo sido substituído na maioria das redes de produção
  • Sistemas autônomos e BGP

    • A NSFNET começou em 1985 como um backbone que conectava várias redes acadêmicas regionais
    • No início, proibia tráfego comercial, e em 1991 removeu essa restrição
    • Após seu encerramento em 1995, o papel de backbone foi distribuído entre várias operadoras comerciais concorrentes, e a internet passou a ter uma estrutura sem proprietário único
    • A internet é composta por dezenas de milhares de sistemas autônomos (AS), como ISPs, universidades, operadoras e empresas de nuvem
    • O BGP permite que cada AS anuncie aos vizinhos os blocos de endereços alcançáveis e o caminho de AS percorrido
    • A escolha real de rotas prioriza políticas de negócio mais do que velocidade
    • O comprimento do caminho de AS é um critério de desempate aplicado depois de critérios de política como preferência local e weight
    • Operadores menores compram transit, pagando a operadores superiores pelo acesso a toda a internet
    • Redes de porte semelhante estabelecem peering sem liquidação financeira para reduzir custos de transit
    • Centenas de redes se conectam nas instalações comuns de comutação dos pontos de troca de tráfego da internet
    • DE-CIX e AMS-IX conectam cerca de 1.000 redes cada
    • Políticas de BGP geralmente preferem, nesta ordem, rotas de clientes que pagam, rotas de peers gratuitas e rotas de provedores pelos quais se paga
    • Backbones tier-1 como Lumen, Arelion e NTT fazem peering entre si e não pagam a operadores superiores

Cabos ópticos submarinos, Anycast e CDN

  • Cerca de 600 cabos ópticos submarinos transportam praticamente todo o tráfego intercontinental
  • Em 1956, o TAT-1 oferecia 36 circuitos de voz por cabos coaxiais de cobre e colocava amplificadores a cada cerca de 70 km
    • A amplificação analógica aumenta sinal e ruído juntos
  • Em 1988, o TAT-8 foi o primeiro cabo óptico transatlântico e oferecia, em dois fios de fibra de vidro, capacidade equivalente a dezenas de milhares de circuitos de voz
  • A fibra óptica usa reflexão interna total na fronteira entre um núcleo de alto índice de refração e o revestimento que o envolve
    • Diferentemente de um espelho comum, não há perda por reflexão na fronteira, permitindo guiar a luz por cerca de 100 km antes de amplificá-la
  • A multiplexação por divisão de comprimento de onda coloca o fluxo de bits de cada laser em um comprimento de onda diferente e os combina em uma única fibra
    • Os comprimentos de onda percorrem juntos um meio linear e são separados por filtros na outra extremidade
    • Sistemas reais colocam cerca de 100 comprimentos de onda em uma fibra, e cada novo comprimento de onda aumenta a vazão do vidro submarino existente em um fluxo
  • Anycast permite que servidores em vários continentes usem o mesmo IP e anunciem em cada local a mesma rota via BGP
    • O cliente chega ao servidor topologicamente mais próximo sem alterar configurações
  • CDNs usam Anycast ou DNS com reconhecimento de localização para servir conteúdo a partir de servidores próximos
    • Cloudflare e Akamai distribuem cópias de vídeos, imagens e sites pelo mundo todo
    • A forma de reduzir o limite inferior de latência imposto pela velocidade da luz é mover os dados para perto do usuário antes da solicitação
  • O BGP, em geral, confia nos anúncios dos vizinhos
    • Em 2008, a Pakistan Telecom anunciou uma rota mais específica para bloquear o YouTube no país, e essa informação se espalhou pelo mundo, fazendo muito tráfego fluir para o Paquistão e desaparecer
    • A RPKI verifica, por meio de registros assinados, a autorização para anunciar rotas de blocos de endereços

Redes privadas domésticas e NAT

  • Um roteador doméstico combina switch Ethernet, rádio Wi-Fi, DHCP, gateway padrão e distribuição de configurações de DNS
  • Blocos IPv4 privados que não são roteados na internet podem ser reutilizados repetidamente
    • 10.0.0.0/8 tem 16.777.216 endereços
    • 172.16.0.0/12 tem 1.048.576 endereços
    • 192.168.0.0/16 tem 65.536 endereços
  • O NAT mantém uma tabela que troca endereços e portas privados internos por endereços e portas públicos do roteador e devolve as respostas à conversa interna original
    • O 192.168.1.5 de casas diferentes não entra em conflito porque os pacotes não saem de cada rede privada
  • Como o NAT registra apenas conversas iniciadas internamente, ele descarta conexões externas não solicitadas
    • Para operar um servidor em casa, é necessário port forwarding, conectando uma porta externa específica a um dispositivo interno
    • Se o ISP mudar o endereço público, isso precisa ser acompanhado separadamente
    • Videochamadas P2P precisam de técnicas de travessia de NAT, como os dois lados enviarem pacotes simultaneamente
    • Uma solução temporária para a escassez de endereços acabou dividindo a internet entre servidores que recebem solicitações externas e dispositivos que apenas iniciam solicitações
  • 127.0.0.0/8 é o bloco de loopback; ele não chega até a placa de rede, e o sistema operacional o devolve ao mesmo computador
    • 127.0.0.1 é, por convenção, localhost
    • Um servidor de desenvolvimento em 127.0.0.1:3000 só é acessível a partir desse computador
  • Dispositivos têm ao mesmo tempo um endereço MAC, que representa o hardware local, e um endereço IP atribuído pela rede

DNS: usando nomes em vez de números

  • No início da ARPANET, o grupo de Elizabeth Feinler, do Stanford Research Institute, gerenciava manualmente todos os nomes e endereços em um único HOSTS.TXT
    • Cada computador baixava o arquivo periodicamente, e dispositivos não registrados eram, na prática, impossíveis de encontrar
    • Com o crescimento da rede, a capacidade de edição de um único escritório e um único ponto de download se tornaram gargalos
  • Paul Mockapetris projetou em 1983 o DNS baseado em delegação
    • en.wikipedia.org segue, da direita para a esquerda, a hierarquia root, org, wikipedia.org, en
    • O namespace é dividido em zones, nas quais cada organização gerencia seus servidores autoritativos
  • Dispositivos delegam consultas a resolvedores recursivos, como os do ISP ou o 1.1.1.1 da Cloudflare
    1. O root informa os nameservers de .org
    2. .org informa os servidores autoritativos de wikipedia.org
    3. O servidor autoritativo da Wikipedia responde com 91.198.174.192 e um TTL de 3.600 segundos
  • O TTL do DNS, diferentemente da contagem de saltos do IP, é a vida útil do cache em segundos
    • Navegadores, sistemas operacionais e resolvedores recursivos armazenam respostas em cache, fazendo com que nomes populares sejam resolvidos imediatamente em locais próximos
    • O cache reduz a carga sobre o DNS superior, mas cria uma inércia em que valores antigos permanecem durante o TTL após uma mudança de endereço
  • Ao comprar um domínio, o registrar registra um registro NS que aponta os nameservers autoritativos na zone de um registry, como .com
    • O zone file do domínio contém registros A para IPv4 e registros AAAA para IPv6, entre outros
    • Cloudflare, Route 53, o registrar ou servidores operados diretamente podem assumir o DNS autoritativo
    • DNS com reconhecimento de localização pode devolver endereços de datacenters diferentes conforme o local da consulta
  • Segurança e privacidade no DNS

    • O DNS inicial confiava na primeira resposta que chegasse e correspondesse à consulta
    • Em 2008, Dan Kaminsky divulgou o risco de envenenamento de cache explorando as 65.536 possibilidades do ID de transação de 16 bits
    • Se um atacante enviar, antes da resposta real, uma resposta falsificada com o ID correto e informações de nameserver malicioso, o resolvedor pode armazenar informações falsas em cache pelo TTL definido pelo atacante
    • DNSSEC faz com que cada zone anexe assinaturas criptográficas aos registros e que o resolvedor valide a cadeia até a root key em que confia
    • A assinatura de uma resposta falsificada não é validada e a resposta é descartada
    • DNSSEC garante autenticidade e integridade, mas não criptografa a consulta em si
    • DoT e DoH colocam consultas DNS, respectivamente, dentro de TLS ou HTTPS, impedindo que observadores no caminho leiam o domínio consultado

A interface de usuário adicionada pela web

  • Até o fim dos anos 1980, IP, TCP, Ethernet e DNS já estavam completos, mas para acessar informações era preciso conhecer o sistema de destino e ferramentas de linha de comando
  • Tim Berners-Lee propôs em 1989, no CERN, um sistema de compartilhamento de documentos e colocou a World Wide Web em operação em 1991
  • A web usa três componentes simples
    1. HTML conecta palavras ou elementos de um documento a outros documentos na internet
    2. A URL indica protocolo, servidor e caminho, como https, en.wikipedia.org, /wiki/Internet
      • A porta padrão do HTTPS é 443, e a do HTTP é 80, portanto podem ser omitidas
    3. HTTP troca solicitações e respostas sobre TCP, como GET /page
      • 200 OK significa sucesso, 404 Not Found significa ausência do documento, e 500 Internal Server Error significa falha interna do servidor
  • Como URL é construída sobre DNS, HTTP sobre TCP e TCP sobre IP, não foi necessário trocar os roteadores existentes para a nova web
  • IP, TCP, DNS e HTTP são definidos em RFCs, que qualquer pessoa pode ler e implementar gratuitamente
    • As RFCs começaram em 1969 como memorandos em que desenvolvedores da ARPANET pediam comentários
    • A IETF padroniza protocolos da internet desde 1986
    • As portas 80 e 443 também são convenções registradas pela RFC junto à IANA
  • O NCSA Mosaic colocou imagens dentro dos documentos em 1993, e o Netscape Navigator, da mesma equipe, popularizou a web nas casas em 1994

TLS: trocando segredos em links públicos

  • Os protocolos iniciais da internet enviavam bytes em texto claro, de modo que roteadores, ISPs e redes intermediárias podiam ler ou alterar o conteúdo
  • Criptografia de chave pública cria um par de chave pública e chave privada usando operações fáceis de calcular, mas cuja inversão é, na prática, difícil
    • Dados criptografados com a chave pública só podem ser descriptografados com a chave privada
    • Assinaturas criadas com a chave privada podem ser verificadas com a chave pública
    • Na prática, a assinatura é feita sobre um hash calculado a partir de todos os bytes, em vez da mensagem inteira, vinculando também a detecção de alterações
    • Além de RSA, ECDSA e Ed25519 também oferecem o contrato de assinatura com chave privada e verificação com chave pública
  • O problema de um atacante se passar por um banco e apresentar sua própria chave pública é resolvido com certificados
    • As chaves públicas das autoridades certificadoras incluídas previamente no navegador garantem o vínculo entre a identidade do servidor e sua chave pública
    • A cadeia de assinaturas é validada do certificado do servidor, passando por autoridades certificadoras intermediárias, até uma root confiável
    • Se a cadeia não chegar a uma root, o navegador exibe um aviso de segurança em tela cheia
  • A Netscape criou o SSL em 1994, que depois foi padronizado como TLS
    • O TLS fica entre TCP e HTTP
  • Diffie–Hellman e chaves de sessão

    • No handshake TLS, o navegador envia ClientHello, os conjuntos de cifras suportados e um key share público; o servidor responde com o conjunto de cifras escolhido, o certificado e um key share assinado
    • Em um exemplo pequeno usando as constantes públicas g=5, p=23:
    • O navegador calcula A=5⁶ mod 23=8 com o valor secreto a=6
    • O servidor calcula B=5¹⁵ mod 23=19 com o valor secreto b=15
    • O navegador calcula 19⁶ mod 23=2, e o servidor calcula 8¹⁵ mod 23=2, obtendo a mesma chave de sessão
    • Um espião vê g, p, A e B, mas, em tamanhos reais, é difícil resolver o problema do logaritmo discreto para obter os valores secretos
    • Navegadores modernos usam trocas baseadas em curvas elípticas, que oferecem segurança equivalente com números menores
    • Operações de chave pública são lentas demais para aplicar a todos os bytes, então são usadas apenas na troca de chaves; depois disso, usa-se uma chave simétrica rápida, que criptografa e descriptografa com a mesma chave
    • O cadeado do HTTPS significa que dispositivos intermediários podem ver com quem você está se comunicando, quando e a quantidade de dados, mas não conseguem ler o conteúdo

Encapsulamento e VPN

  • Cada camada envolve os dados da camada superior com seu próprio cabeçalho
    • Uma requisição HTTP entra em um record TLS, em um segmento TCP, em um pacote IP e em um frame Ethernet ou Wi-Fi
    • Switches e roteadores processam apenas os cabeçalhos externos de que precisam
  • VPN não criptografa o stream de uma aplicação, mas o pacote IP inteiro, colocando-o como payload de um novo pacote com o endereço do servidor VPN
    • O ISP vê apenas tráfego criptografado enviado e recebido do servidor VPN
    • Os sites visitados veem o endereço do servidor VPN em vez do endereço do usuário
    • O operador da VPN assume a posição que antes era ocupada pelo ISP, então ela muda o ponto de confiança em vez de acrescentar segurança de forma absoluta
  • O uso original de uma VPN é conectar um notebook remoto à rede privada da empresa, fazendo-o funcionar como se estivesse conectado diretamente no escritório

O que realmente acontece quando você clica em um link

  1. O navegador extrai o nome do host de https://en.wikipedia.org e procura o endereço via DNS
  2. Abre uma conexão TCP na porta 443 do endereço obtido e realiza o handshake de três vias
  3. No handshake TLS, valida a cadeia de certificados e negocia uma chave de sessão
  4. Envia uma requisição GET /wiki/Internet criptografada
  5. O TCP reordena, retransmite e remonta o HTML que chegou em dezenas de pacotes IP; o TLS descriptografa; e o navegador interpreta e desenha na tela
  • Diagnóstico de falhas por etapa

    • Se nenhum site abre, verifique os trechos anteriores ao DNS, como Wi-Fi, roteador e link do ISP
    • É possível enviar um ping para um endereço conhecido, como 1.1.1.1, para confirmar se você consegue alcançar fora da rede local
    • Se outros sites funcionam, mas um nome específico não é resolvido, o problema está no cache DNS ou nos registros desse site
    • Se o DNS funciona, mas a conexão TCP expira, é um problema no servidor ou em uma rede intermediária; use traceroute para verificar os hops alcançados
    • Um aviso de certificado em tela cheia indica falha na validação da cadeia de certificados TLS
    • Se toda a comunicação teve sucesso e você recebeu HTTP 500, a requisição chegou intacta até o servidor e falhou internamente no servidor
    • DNS, TCP e TLS exigem, cada um, uma latência de ida e volta antes do primeiro byte de conteúdo; por isso, mesmo em uma conexão rápida, a resposta inicial pode ser lenta
  • Cabeçalhos de pacotes e visibilidade por camada

    • A requisição de exemplo tem um cabeçalho IPv4 de 20 bytes e um cabeçalho TCP de 20 bytes
    • O cabeçalho IP contém o comprimento total, flags de fragmentação, TTL, o número de protocolo 6 que significa TCP, checksum e os endereços de origem e destino
    • O cabeçalho TCP contém a porta temporária de origem 54211, a porta de destino 443, número de sequência, número de ACK, flags, tamanho da janela e checksum
    • Roteadores intermediários leem apenas o cabeçalho IP e não abrem as informações TCP após os 20 bytes nem o payload criptografado
    • O TLS criptografa o payload, mas não criptografa os cabeçalhos IP e TCP necessários para a entrega; portanto, o destino da comunicação e o volume de dados podem ser observados

A estrutura em camadas da internet

  • Ethernet, Wi-Fi e fibra nas camadas de enlace e física movem quadros e bits em um meio local
  • O IP na camada de rede roteia pacotes, hop a hop, através de redes independentes
  • TCP e UDP na camada de transporte oferecem entrega por programa, confiabilidade ou baixo overhead
  • O TLS na camada de segurança criptografa a conexão e autentica a outra parte
  • HTTP e DNS na camada de aplicação fornecem o significado para o usuário: requisições de documentos e consultas de nomes
  • De baixo para cima, cada camada oculta as limitações da camada imediatamente abaixo
    • A camada de enlace oculta os problemas físicos de cabos compartilhados e meios sem fio
    • O IP oculta as fronteiras entre redes de proprietários diferentes
    • O TCP oculta perdas, duplicações e mudanças de ordem
    • O TLS impede espionagem e adulteração
    • O HTTP simplifica todo o processo em requisições e respostas
  • O modelo OSI de 1984 definiu sete camadas, separando física e enlace de dados e distinguindo sessão, apresentação e aplicação
    • A internet real usou a arquitetura TCP/IP, que foi implantada primeiro, mas termos do OSI como switching de layer 2, roteamento de layer 3 e reconhecimento de aplicações de layer 7 permaneceram no setor

QUIC e a evolução contínua da internet

  • Como as camadas dependem apenas da interface inferior, trocar fios de cobre por fibra óptica ou Wi-Fi não exige alterar as aplicações
  • O HTTP/3 implementa confiabilidade e criptografia juntas com QUIC sobre UDP, em vez de TCP
  • No stream único de bytes ordenados do TCP, se um pacote de uma requisição multiplexada é perdido, requisições não relacionadas também ficam esperando atrás dela
    • O QUIC fornece streams confirmados por ACK de forma independente para cada requisição, fazendo com que a perda interrompa apenas aquele stream
  • Se o handshake TLS é executado em sequência após o handshake TCP, são necessárias duas idas e voltas antes dos dados HTTP
    • O QUIC combina configurações de transporte e criptografia em um único handshake e, ao revisitar um servidor lembrado, pode começar sem uma ida e volta adicional
  • Uma conexão TCP fica vinculada à combinação de IP e porta, mas o QUIC mantém a conexão mesmo quando um celular muda de Wi-Fi para rede celular e o endereço muda
  • O IP apenas entrega o payload por porta, sem limitar o protocolo interno
    • SSH usa shell remoto, SMTP usa e-mail, MQTT usa publicação/assinatura para dispositivos IoT restritos, WebRTC usa áudio e vídeo diretos entre navegadores, e engines de jogos usam protocolos UDP personalizados que descartam atualizações de posição antigas
    • O Google implantou o QUIC de forma proprietária entre o Chrome e seus próprios servidores; depois, a IETF o padronizou como HTTP/3, sem exigir mudanças na infraestrutura existente da internet
  • Mesmo após o esgotamento dos endereços IPv4, a migração para IPv6 ainda está em andamento por causa do custo de substituir camadas de base; vídeo em tempo real, jogos em nuvem e colaboração remota continuam pressionando os limites de latência
  • Satélites de órbita baixa estão competindo com cabos submarinos em latência de ida e volta, e protocolos futuros também surgirão por meio de novos compromissos quando as aplicações atuais colidirem com os limites das camadas existentes

1 comentários

 
GN⁺ 4 시간 전
Comentários do Hacker News
  • Em comparação, este texto também tinha uma estrutura muito boa: https://explained-from-first-principles.com/internet/

  • Pelas diretrizes, talvez seja deselegante deixar só esse tipo de elogio, mas foi realmente um texto excelente. Ele explica de forma útil e bem organizada como as redes surgiram e como funcionam, amarrando tudo em uma narrativa interessante
    Há quem diga que foi escrito por LLM, mas mesmo que tenha sido, isso não importa. Texto bom é texto bom

    • A primeira animação também deveria incluir um servidor hospedando a plataforma de mensagens. Ou então seria melhor trocar esse exemplo por uma aplicação P2P
    • Acordei de manhã e isso me veio à cabeça, então um humano compôs algo parecido com um haicai
      “Já existiam klingon e élfico. Agora surgiu o idioma de LLM.”
  • O conteúdo em si pode muito bem ter sido escrito inteiramente pelo autor, mas comparando o estilo do texto principal com o dos comentários do autor, tenho certeza de que passou por uma revisão considerável com IA
    Isso não quer dizer necessariamente que seja algo ruim, mas também é injusto tratar como paranoicas as pessoas que perceberam isso

  • O primeiro grande pedido recebido pelo Digital PDP-1 foi para usá-lo no trabalho de mensagens com fita perfurada da ITT: https://www.eejournal.com/article/gordon-bell-1934-2024-gran...

  • Quero equilibrar as reações negativas. Li só as primeiras seções, mas o texto explica muito bem como vários conceitos evoluíram a partir de pontos de partida simples
    Ele condensa em um único texto muitos conceitos que aprendi trabalhando como engenheiro de software, por meio de pesquisa e tentativa e erro. Espero que Faza continue produzindo e compartilhando textos assim

    • O objetivo destes textos era explicar como evoluíram coisas que hoje tomamos como óbvias. Enquanto escrevia, eu mesmo aprendi muita coisa nova e também descobri pontos em que meu entendimento era incompleto
      Eu sentia que o material existente ou se concentrava apenas nos detalhes técnicos, ou simplificava demais os conceitos para que qualquer pessoa pudesse acompanhar. Por isso, tentei fazer uma explicação detalhada, mas não difícil de acompanhar
      No começo eu pensava em usar só texto e diagramas, mas depois percebi que com simulações dava para explicar muito melhor
  • A estrutura e a forma de escrever do texto são excelentes e lembram o trabalho de Bartosz Ciechanowski: https://ciechanow.ski
    Também fiquei curioso sobre qual stack foi usada nos elementos interativos do texto e se, refazendo hoje, ele escolheria tecnologias diferentes

    • No início, eu criei um site estático com Astro e escrevi o conteúdo em arquivos Markdown, sem planejar incluir elementos interativos
      Depois descobri que o Astro suportava MDX, que permite inserir componentes JavaScript personalizados. As animações iniciais foram feitas com JavaScript puro, SVG e transições em CSS, mas, à medida que as simulações ficaram mais complexas, comecei a usar React para gerenciamento de estado
  • Dois comentários relativamente inofensivos aqui foram marcados como [dead]. Se forem realmente comentários de bots, fico curioso sobre o que permite identificá-los

    • Tenho a impressão de que a maioria dos posts de blog no HN e uma parte considerável dos comentários são escritos principalmente por IA. Mas esse tipo de coisa sempre existiu na internet anônima, de uma forma ou de outra
  • Depois de carregar a página, se você ativar o modo avião, as animações que ainda não tinham entrado na tela não são reproduzidas. É um comportamento estranho

    • Sou o autor. Antes, as simulações só eram baixadas no momento em que entravam na área visível com o scroll
      Agora já publiquei uma correção para baixar todas as simulações no carregamento da página e reproduzi-las quando entram na tela
  • As reações aqui estão negativas demais. Dei uma olhada em várias partes, e as animações eram agradáveis, o texto era fácil de ler, e o conteúdo não parecia material gerado de baixa qualidade
    O contexto histórico do telégrafo foi interessante, e a diferença entre largura de banda e latência também foi tratada com cuidado. Ainda assim, o texto é longo demais, então parece improvável que um leitor sem familiaridade com o assunto vá até o fim

    • Achei que o material existente era excessivamente didático no sentido escolar ou superficial demais, e quis ajudar qualquer pessoa a entender os conceitos em detalhe. Por isso, tentei explicá-los de um jeito mais interessante
    • É fácil descartar os outros para se sentir superior. Isso é ainda mais comum no HN, porque leva tempo ler e avaliar um texto longo de verdade e então oferecer uma crítica construtiva, então quanto mais apressada a reação, maior a chance de ela ser negativa ou fora de contexto