WEBVTT 00:00:00.120 --> 00:00:07.950 [contagem regressiva e música 7, 6, 5, 4, 3, 2, 1] Pacotes da Internet, Roteamento e Confiabilidade 00:00:07.950 --> 00:00:13.650 Olá, meu nome é Lynn. Sou engenheira de software aqui na Spotify e sou a primeira a admitir 00:00:13.650 --> 00:00:18.970 que muitas vezes menosprezo a confiabilidade da internet. O volume extremo de informações 00:00:18.970 --> 00:00:23.170 que circulam pela internet é impressionante. Mas como é possível entregar todos esses 00:00:23.170 --> 00:00:29.080 dados ao usuário de forma confiável? Digamos que você queira ouvir uma música no Spotify. É como 00:00:29.080 --> 00:00:33.989 se o seu computador se conectasse diretamente aos servidores do Spotify, que enviariam uma música por 00:00:33.989 --> 00:00:39.410 uma linha direta e dedicada. Mas na verdade, não é assim que a internet funciona. Se a internet 00:00:39.410 --> 00:00:43.640 fosse feita de conexões diretas e dedicadas, seria impossível manter as coisas funcionando, 00:00:43.640 --> 00:00:48.050 com milhões de usuários conectados. Particularmente, porque não há garantia de que todos os cabos e 00:00:48.050 --> 00:00:52.350 computadores estejam funcionando o tempo todo. O que ocorre é que os dados viajam pela internet de forma 00:00:52.350 --> 00:00:53.350 muito menos direta. Há muitos e muitos anos, no no início dos anos 1970, eu e meu parceiro Bob Kahn começamos a 00:00:53.350 --> 00:01:01.210 trabalhar no projeto do que chamamos hoje de internet. Eu e o Bob tínhamos a responsabilidade 00:01:01.210 --> 00:01:06.870 e a oportunidade de projetar os protocolos e a arquitetura da internet. Então, persistimos 00:01:06.870 --> 00:01:14.790 na nossa participação no crescimento e na e evolução da internet por todo esse tempo e continuamos até hoje 00:01:14.790 --> 00:01:20.000 A forma como as informações são transferidas de um computador para 00:01:20.000 --> 00:01:25.500 outro é bastante interessante. Não é preciso seguir um percurso fixo. Na verdade, o percurso pode mudar 00:01:25.500 --> 00:01:30.900 no meio de uma troca de dados entre computadores. As informações na internet passam de um 00:01:30.900 --> 00:01:36.100 computador para o outro no que chamamos de pacotes de informações, e os pacotes viajam de um 00:01:36.100 --> 00:01:42.050 lugar para outro na internet de forma semelhante ao deslocamento de um carro de um ponto a outro 00:01:42.050 --> 00:01:46.360 Conforme o engarrafamento ou as condições da via, você pode escolher uma rota alternativa 00:01:46.360 --> 00:01:51.420 por opção ou por obrigação, para chegar ao mesmo lugar, toda vez que você viajar. E da mesma forma 00:01:51.420 --> 00:01:59.000 que você pode transportar todo tipo de carga no seu carro, muitos tipos de informações digitais podem 00:01:59.000 --> 00:02:03.980 ser enviados em pacotes IP, mas há um certo limite. E se, por exemplo, você precisar transportar uma 00:02:03.980 --> 00:02:10.359 nave espacial da fábrica para o local do lançamento. A nave não 00:02:10.359 --> 00:02:14.200 caberia em um caminhão. Portanto, será preciso enviá-la em vários pedaços, transportados por uma frota 00:02:14.200 --> 00:02:18.780 de caminhões. Os caminhões podem tomar caminhos diferentes e podem chegar ao destino em horários 00:02:18.780 --> 00:02:23.099 diferentes. Mas quando todas as peças tiverem chegado, você pode remontar 00:02:23.099 --> 00:02:28.109 a nave e ela estará pronta para o lançamento. Na internet, o dados funcionam da mesma forma. 00:02:28.109 --> 00:02:34.329 Se você tiver uma imagem muito grande que quiser enviar para um amigo ou para um site, 00:02:34.329 --> 00:02:40.090 essa imagem pode ser subdividida em milhões de bits de 1s e 0s, que não cabem em um único pacote. 00:02:40.090 --> 00:02:44.819 Como são dados em um computador, o computador que enviar a imagem pode desmembrá-la rapidamente em 00:02:44.819 --> 00:02:49.810 centenas ou até milhares de partes menores, conhecidas como pacotes. Ao contrário dos carros 00:02:49.810 --> 00:02:55.719 ou caminhões, esses pacotes não tem motoristas e não escolhem sua rota. 00:02:55.719 --> 00:03:00.230 Cada pacote tem um endereço de internet do ponto de origem e do destino. Computadores especiais 00:03:00.230 --> 00:03:04.650 na internet, conhecidos como rotea-dores, atuam como guardas de trânsito e mantém os pacotes em movimento 00:03:04.650 --> 00:03:09.430 pelas redes, sem contratempos. Se um rota estiver congestionada, pacotes individuais podem seguir rotas 00:03:09.430 --> 00:03:15.239 diferentes pela internet, e podem chegar ao destino em horários ligeiramente diferentes 00:03:15.239 --> 00:03:20.370 ou até fora de ordem. Vamos falar sobre como funciona essa transferência. Como parte do protocolo de internet, 00:03:20.370 --> 00:03:26.569 todo roteador monitora os diversos percursos de envio dos pacotes, e escolhe o mais viável 00:03:26.569 --> 00:03:31.169 disponível para cada dado, conforme o endereço IP do destino do pacote. 00:03:31.169 --> 00:03:37.079 O mais viável, no caso, é o que permite o menor tempo e fatores não técnicos, como políticas e relacionamentos 00:03:37.079 --> 00:03:42.120 entre empresas. Muitas vezes a melhor rota para os dados não é necessariamente a mais direta 00:03:42.120 --> 00:03:47.499 As opções de percursos garantem a tolerância da rede a falhas. Isto significa 00:03:47.499 --> 00:03:53.150 que a rede pode continuar enviando pacote, mesmo se algo terrível, desastroso, acontecer. 00:03:53.150 --> 00:03:57.700 Esta é a base para um princípio-chave da confiabilidade da internet. Mas e se você quiser 00:03:57.700 --> 00:04:04.849 solicitar dados e não receber o pacote completo? Digamos que você queira ouvir uma música. 00:04:04.849 --> 00:04:09.349 Como pode pode ter a certeza de que os dados serão entregues para que a música toque com perfeição? 00:04:09.349 --> 00:04:14.829 Conheça seu novo melhor amigo: o TCP (protocolo de controle de transmissão). O TCP gerencia o envio 00:04:14.829 --> 00:04:21.440 e o recebimento de todos os dados na forma de pacotes. Pense nele como um serviço de correios com garantia. 00:04:21.440 --> 00:04:25.530 Quando você solicita uma música no seu dispositivo, o Spotify envia um música desmembrara em muitos 00:04:25.530 --> 00:04:26.530 pacotes. Quando seu pacote chegar, o TCP gera um inventário completo e envia o reconhecimento de cada pacote 00:04:26.530 --> 00:04:31.669 recebido ao remetente. Se todos os pacotes estiverem lá, o TCP assina a entrega e o processo está 00:04:31.669 --> 00:04:37.210 concluído. [música tocando] Se o TCP contatar que algum pacote está faltando, ele não assina, ou sua 00:04:37.210 --> 00:04:42.840 música terá problemas de som trechos incompletos. Para cada pacote faltante 00:04:42.840 --> 00:04:54.819 ou incompleto, o Spotify os reenvia. Uma vez confirmada a entrega pelo TCP de todos os pacotes 00:04:54.819 --> 00:04:59.930 conforme a música solicitada, a reprodução se inicia ao final de entrega. O melhor do TCP 00:04:59.930 --> 00:05:05.930 e dos sistemas roteadores é que são escalonáveis. Eles funcionam tanto com 8 quanto com 8 bilhões de dispositivos. 00:05:05.930 --> 00:05:13.370 Na verdade, devido a esses princípios de tolerância a falhas e redundâncias, quanto mais roteadores adicionarmos, 00:05:13.370 --> 00:05:19.220 mais confiável se torna a internet. E é ótimo saber que podemos crescer em escala na internet, 00:05:19.220 --> 00:05:23.449 sem interromper o serviço para qualquer usuário. A internet é feita de centenas de milhares 00:05:23.449 --> 00:05:28.069 de redes e bilhões de computadores e dispositivos conectados fisicamente. Esses diferentes 00:05:28.069 --> 00:05:34.379 sistemas que formam a internet se conectam uns aos outros e se comunicam uns com os outros, 00:05:34.379 --> 00:05:39.280 e trabalham juntos, graças aos padrões acordados sobre como os dados são enviados pela internet. 00:05:39.280 --> 00:05:44.360 Dispositivos de computação ou roteadores pela internet permitem que todos os pacotes cheguem ao 00:05:44.360 --> 00:05:51.289 destino, onde são remontados, se necessário, na ordem correta. Isto acontece bilhões 00:05:51.289 --> 00:05:56.000 de vezes por dia, não importa se as pessoas estão enviando e-mails, visitando sites na internet, 00:05:56.000 --> 00:06:02.789 batendo papo, usando um aplicativo móvel, ou quando sensores ou dispositivos na internet se comunicam 00:06:02.789 --> 00:06:08.889 entre si.