[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.