WEBVTT 00:00:00.120 --> 00:00:02.772 [contagem decrescente: 7, 6, 5, 4, 3, 2, 1] 00:00:02.856 --> 00:00:07.876 A Internet: Pacotes, encaminhamento e fiabilidade 00:00:07.950 --> 00:00:09.820 Olá, o meu nome é Lynn. 00:00:09.840 --> 00:00:12.193 Sou engenheira de software aqui no Spotify 00:00:12.193 --> 00:00:16.881 e serei a primeira a admitir que muitas vezes tomo como garantida a fiabilidade da Internet. 00:00:17.631 --> 00:00:20.871 A enorme quantidade de informação a pairar na internet é espantosa. 00:00:20.871 --> 00:00:25.283 Mas como é possível que cada pedaço de dados te sejam entregues de forma fiável? 00:00:26.033 --> 00:00:28.540 Digamos que queres ouvir uma canção no Spotify. 00:00:28.590 --> 00:00:31.697 Parece que o teu computador se liga diretamente aos servidores do Spotify, 00:00:31.697 --> 00:00:35.091 e que o Spotify te envia uma canção numa linha direta, exclusiva. 00:00:35.311 --> 00:00:37.826 Mas, na verdade, não é assim que a Internet funciona. 00:00:38.920 --> 00:00:43.440 Se a Internet fosse feita de ligações diretas e dedicadas, seria impossível manter as coisas a funcionar 00:00:43.440 --> 00:00:47.015 à medida que milhões de utilizadores fossem entrando, especialmente porque não nada nos garante 00:00:47.015 --> 00:00:49.612 que cada fio e computador esteja sempre a funcionar. 00:00:50.045 --> 00:00:54.340 Em vez disso, os dados viajam na Internet de forma muito menos direta. 00:00:55.180 --> 00:01:01.210 Há muitos anos atrás, no início dos anos 70, o meu parceiro Bob Kahn e eu começámos 00:01:01.210 --> 00:01:04.150 a trabalhar na concepção daquilo a que agora chamamos a Internet. 00:01:04.410 --> 00:01:12.763 O Bob e eu tínhamos a responsabilidade e a oportunidade de conceber os protocolos da Internet e a sua arquitectura. 00:01:12.763 --> 00:01:17.517 Por isso continuámos a participar no crescimento da Internet e na sua evolução 00:01:17.517 --> 00:01:20.657 durante todo este tempo e até aos dias de hoje. 00:01:21.637 --> 00:01:26.654 A forma como a informação é transferida de um computador para outro é bastante interessante. 00:01:26.654 --> 00:01:30.900 Ela não precisa de seguir um caminho fixo. Na verdade, o seu caminho pode mudar 00:01:30.900 --> 00:01:33.896 no meio de uma conversa entre computadores. 00:01:33.896 --> 00:01:37.140 A informação na Internet vai de um computador para outro 00:01:37.140 --> 00:01:40.828 no que chamamos um pacote de informação, 00:01:40.828 --> 00:01:43.734 sendo que um pacote viaja de um lugar para outro na Internet 00:01:43.734 --> 00:01:46.993 de forma muito parecida a como nós vamos de um lugar para outro num carro. 00:01:47.323 --> 00:01:50.273 Dependendo do congestionamento do tráfego ou das condições da estrada, 00:01:50.273 --> 00:01:53.471 poderás escolher ou ser forçado a seguir uma rota diferente 00:01:53.471 --> 00:01:56.180 para chegar ao mesmo lugar a cada vez que viajas. E apenas 00:01:59.000 --> 00:02:03.580 E assim como se pode transportar todo o tipo de coisas dentro de um carro, muitos tipos de informação digital podem 00:02:03.580 --> 00:02:06.960 também podemos enviar muitos tipos de informação digital em pacotes IP, com alguns limites. 00:02:08.070 --> 00:02:11.895 E se, por exemplo, for preciso mover um vaivém espacial do sítio onde foi construído 00:02:11.895 --> 00:02:13.327 para o local onde será lançado. 00:02:13.327 --> 00:02:17.049 O vaivém não vai caber só num camião, então é preciso desmontá-lo em peças, 00:02:17.049 --> 00:02:19.432 transportando-o recorrendo a uma frota de camiões. 00:02:19.432 --> 00:02:23.685 Todos os camiões podem seguir diferentes rotas e podem chegar ao destino em diferentes momentos, 00:02:23.685 --> 00:02:28.479 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 00:02:28.479 --> 00:02:30.642 e ele estará pronto para o lançamento. 00:02:31.334 --> 00:02:34.175 Na Internet os detalhes funcionam de forma semelhante. 00:02:34.175 --> 00:02:39.407 Se tiveres uma imagem muito grande que queres enviar a um amigo ou carregar para um website, 00:02:39.507 --> 00:02:43.819 essa imagem pode ser composta por dezenas de milhões de bits de 1s e 0s, 00:02:43.819 --> 00:02:45.856 demasiados para enviar num só pacote. 00:02:45.856 --> 00:02:49.810 Uma vez que os dados estão num computador, o computador que envia a imagem pode rapidamente 00:02:49.810 --> 00:02:53.281 dividi-la em centenas ou mesmo milhares de partes mais pequenas, chamadas pacotes. 00:02:54.520 --> 00:02:59.439 Ao contrário dos automóveis ou camiões, estes pacotes não têm motoristas e não escolhem o seu percurso. 00:02:59.439 --> 00:03:03.342 Cada pacote tem o endereço de Internet de onde veio e para onde vai. 00:03:03.342 --> 00:03:05.120 Computadores especiais na internet, chamados routers, 00:03:05.120 --> 00:03:11.025 actuam como gestores de tráfego para manter os pacotes em movimento nas redes sem percalços. 00:03:11.675 --> 00:03:15.239 Se uma rota estiver congestionada, pacotes individuais podem percorrer rotas diferentes 00:03:15.239 --> 00:03:20.370 através da Internet e podem chegar a o destino em alturas ligeiramente diferentes 00:03:20.370 --> 00:03:21.712 ou mesmo fora de ordem. 00:03:22.999 --> 00:03:26.569 Vamos falar sobre como funciona. Como parte do protocolo da Internet, 00:03:26.569 --> 00:03:29.854 cada router mantém o registo de múltiplos caminhos para enviar pacotes, 00:03:29.854 --> 00:03:33.201 e escolhe o mais "barato" para cada pedaço de dados, 00:03:33.201 --> 00:03:36.239 com base no endereço IP de destino do pacote. 00:03:36.809 --> 00:03:41.120 Mais "barato", neste caso, não tem a ver com custos, mas com tempo e factores não técnicos 00:03:41.120 --> 00:03:43.686 tais como políticas e relações entre empresas. 00:03:44.056 --> 00:03:48.353 Muitas vezes, a melhor rota para os dados viajarem não é necessariamente a mais direta. 00:03:48.834 --> 00:03:52.363 Ter opções de caminhos torna a rede tolerante a falhas. 00:03:52.363 --> 00:03:56.909 Isto significa que a rede pode continuar a enviar pacotes mesmo se algo correr muito, muito mal. 00:03:57.700 --> 00:04:01.322 Esta é a base para um princípio-chave da internet: fiabilidade. 00:04:03.559 --> 00:04:07.704 Agora, e que pedires alguns dados e nem todos eles forem entregues? 00:04:07.704 --> 00:04:09.409 Digamos que queres ouvir uma música. 00:04:09.409 --> 00:04:14.502 Como podes ter 100% de certeza que todos os dados serão entregues para que a canção toque na perfeição? 00:04:14.829 --> 00:04:19.295 Apresentando o seu novo melhor amigo, TCP! O protocolo de controle de transmissão. 00:04:19.867 --> 00:04:23.677 O TCP gere o envio e recepção de todos os teus dados na forma de pacotes. 00:04:23.920 --> 00:04:26.600 Pensa nisto como um correio registado. 00:04:26.600 --> 00:04:31.669 Quando pedes uma canção no teu dispositivo, o Spotify envia-te a canção dividida em muitos pacotes. 00:04:32.749 --> 00:04:38.726 Quando os teus pacotes chegam, o TCP faz um inventário completo e envia em resposta um recibo por cada pacote recebido. 00:04:39.476 --> 00:04:43.481 Se todos os pacotes estiverem presentes, o TCP "assina" a entrega e está feito! 00:04:43.481 --> 00:04:49.863 [música] 00:04:49.863 --> 00:04:53.819 Se o TCP der pela falta de alguns pacotes, não assinara a entrega, 00:04:53.819 --> 00:04:58.427 caso contrário a música não soaria tão bem, ou poderiam ficar a faltar partes dela. 00:04:58.700 --> 00:05:02.700 O Spotify enviará de novo cada um dos pacotes em falta ou incompletos. 00:05:02.745 --> 00:05:07.475 Quando o TCP verificar a entrega dos muitos pacotes pedidos para a canção, 00:05:07.480 --> 00:05:09.055 a tua música começará a tocar. 00:05:09.055 --> 00:05:11.550 [música] 00:05:11.610 --> 00:05:15.122 O melhor do TCP e dos sistemas router é que são escaláveis, 00:05:15.122 --> 00:05:18.480 podendo funcionar com 8 ou com 8 mil milhões de dispositivos. 00:05:18.480 --> 00:05:21.729 Na verdade, devido a estes princípios de tolerância a falhas e redundância, 00:05:21.729 --> 00:05:25.473 quanto mais routers acrescentarmos, mais fiável a Internet se torna. 00:05:25.659 --> 00:05:28.069 O que é também ótimo é que podemos crescer e escalar a Internet 00:05:28.069 --> 00:05:30.621 sem interromper o serviço para qualquer pessoa que a esteja a utilizar. 00:05:31.649 --> 00:05:34.379 A Internet é feita de centenas de milhares de redes 00:05:34.379 --> 00:05:38.243 e milhares de milhões de computadores e dispositivos ligados fisicamente. 00:05:38.520 --> 00:05:42.232 Estes diferentes sistemas que compõem a Internet ligam-se entre si, 00:05:42.232 --> 00:05:44.000 comunicam uns com os outros, 00:05:44.000 --> 00:05:50.243 e trabalham em conjunto, usando as normas acordadas para a forma como os dados são enviados na Internet. 00:05:50.833 --> 00:05:53.877 Dispositivos de computação, ou routers, espalhados pela Internet, 00:05:53.877 --> 00:06:00.071 ajudam todos os pacotes a chegar ao destino, onde são remontados, se necessário, por ordem. 00:06:00.940 --> 00:06:03.869 Isto acontece milhares de milhões de vezes por dia, 00:06:03.869 --> 00:06:08.889 quer tu ou outras pessoas estejam a enviar um e-mail, a visitar uma página web, 00:06:08.889 --> 00:06:13.320 em vídeochamada, a usar uma app móvel, ou quando sensores ou dispositivos na Internet 00:06:13.320 --> 00:06:14.910 falam com um ao outro.