[contagem decrescente: 7, 6, 5, 4, 3, 2, 1] A Internet: Pacotes, encaminhamento e fiabilidade Olá, o meu nome é Lynn. Sou engenheira de software aqui no Spotify e serei a primeira a admitir que muitas vezes tomo como garantida a fiabilidade da Internet. A enorme quantidade de informação a pairar na internet é espantosa. Mas como é possível que cada pedaço de dados te sejam entregues de forma fiável? Digamos que queres ouvir uma canção no Spotify. Parece que o teu computador se liga diretamente aos servidores do Spotify, e que o Spotify te envia uma canção numa linha direta, exclusiva. Mas, na verdade, não é assim que a Internet funciona. Se a Internet fosse feita de ligações diretas e dedicadas, seria impossível manter as coisas a funcionar à medida que milhões de utilizadores fossem entrando, especialmente porque não nada nos garante que cada fio e computador esteja sempre a funcionar. Em vez disso, os dados viajam na Internet de forma muito menos direta. Há muitos anos atrás, no início dos anos 70, o meu parceiro Bob Kahn e eu começámos a trabalhar na concepção daquilo a que agora chamamos a Internet. O Bob e eu tínhamos a responsabilidade e a oportunidade de conceber os protocolos da Internet e a sua arquitectura. Por isso continuámos a participar no crescimento da Internet e na sua evolução durante todo este tempo e até aos dias de hoje. A forma como a informação é transferida de um computador para outro é bastante interessante. Ela não precisa de seguir um caminho fixo. Na verdade, o seu caminho pode mudar no meio de uma conversa entre computadores. A informação na Internet vai de um computador para outro no que chamamos um pacote de informação, sendo que um pacote viaja de um lugar para outro na Internet de forma muito parecida a como nós vamos de um lugar para outro num carro. Dependendo do congestionamento do tráfego ou das condições da estrada, poderás escolher ou ser forçado a seguir uma rota diferente para chegar ao mesmo lugar a cada vez que viajas. E apenas E assim como se pode transportar todo o tipo de coisas dentro de um carro, muitos tipos de informação digital podem também podemos enviar muitos tipos de informação digital em pacotes IP, com alguns limites. E se, por exemplo, for preciso mover um vaivém espacial do sítio onde foi construído para o local onde será lançado. O vaivém não vai caber só num camião, então é preciso desmontá-lo em peças, transportando-o recorrendo a uma frota de camiões. Todos os camiões podem seguir diferentes rotas e podem chegar ao destino em diferentes momentos, mas uma vez que todas as peças estejam no mesmo sítio, podemos montar as peças para ficar com o vaivém inteiro e ele estará pronto para o lançamento. Na Internet os detalhes funcionam de forma semelhante. Se tiveres uma imagem muito grande que queres enviar a um amigo ou carregar para um website, essa imagem pode ser composta por dezenas de milhões de bits de 1s e 0s, demasiados para enviar num só pacote. Uma vez que os dados estão num computador, o computador que envia a imagem pode rapidamente dividi-la em centenas ou mesmo milhares de partes mais pequenas, chamadas pacotes. Ao contrário dos automóveis ou camiões, estes pacotes não têm motoristas e não escolhem o seu percurso. Cada pacote tem o endereço de Internet de onde veio e para onde vai. Computadores especiais na internet, chamados routers, actuam como gestores de tráfego para manter os pacotes em movimento nas redes sem percalços. Se uma rota estiver congestionada, pacotes individuais podem percorrer rotas diferentes através da Internet e podem chegar a o destino em alturas ligeiramente diferentes ou mesmo fora de ordem. Vamos falar sobre como funciona. Como parte do protocolo da Internet, cada router mantém o registo de múltiplos caminhos para enviar pacotes, e escolhe o mais "barato" para cada pedaço de dados, com base no endereço IP de destino do pacote. Mais "barato", neste caso, não tem a ver com custos, mas com tempo e factores não técnicos tais como políticas e relações entre empresas. Muitas vezes, a melhor rota para os dados viajarem não é necessariamente a mais direta. Ter opções de caminhos torna a rede tolerante a falhas. Isto significa que a rede pode continuar a enviar pacotes mesmo se algo correr muito, muito mal. Esta é a base para um princípio-chave da internet: fiabilidade. Agora, e que pedires alguns dados e nem todos eles forem entregues? Digamos que queres ouvir uma música. Como podes ter 100% de certeza que todos os dados serão entregues para que a canção toque na perfeição? Apresentando o seu novo melhor amigo, TCP! O protocolo de controle de transmissão. O TCP gere o envio e recepção de todos os teus dados na forma de pacotes. Pensa nisto como um correio registado. Quando pedes uma canção no teu dispositivo, o Spotify envia-te a canção dividida em muitos pacotes. Quando os teus pacotes chegam, o TCP faz um inventário completo e envia em resposta um recibo por cada pacote recebido. Se todos os pacotes estiverem presentes, o TCP "assina" a entrega e está feito! [música] Se o TCP der pela falta de alguns pacotes, não assinara a entrega, caso contrário a música não soaria tão bem, ou poderiam ficar a faltar partes dela. O Spotify enviará de novo cada um dos pacotes em falta ou incompletos. Quando o TCP verificar a entrega dos muitos pacotes pedidos para a canção, a tua música começará a tocar. [música] O melhor do TCP e dos sistemas router é que são escaláveis, podendo funcionar com 8 ou com 8 mil milhões de dispositivos. Na verdade, devido a estes princípios de tolerância a falhas e redundância, quanto mais routers acrescentarmos, mais fiável a Internet se torna. O que é também ótimo é que podemos crescer e escalar a Internet sem interromper o serviço para qualquer pessoa que a esteja a utilizar. A Internet é feita de centenas de milhares de redes e milhares de milhões de computadores e dispositivos ligados fisicamente. Estes diferentes sistemas que compõem a Internet ligam-se entre si, comunicam uns com os outros, e trabalham em conjunto, usando as normas acordadas para a forma como os dados são enviados na Internet. Dispositivos de computação, ou routers, espalhados pela Internet, ajudam todos os pacotes a chegar ao destino, onde são remontados, se necessário, por ordem. Isto acontece milhares de milhões de vezes por dia, quer tu ou outras pessoas estejam a enviar um e-mail, a visitar uma página web, em vídeochamada, a usar uma app móvel, ou quando sensores ou dispositivos na Internet falam com um ao outro.