1 00:00:00,120 --> 00:00:02,772 [contagem decrescente: 7, 6, 5, 4, 3, 2, 1] 2 00:00:02,856 --> 00:00:07,876 A Internet: Pacotes, encaminhamento e fiabilidade 3 00:00:07,950 --> 00:00:09,820 Olá, o meu nome é Lynn. 4 00:00:09,840 --> 00:00:12,193 Sou engenheira de software aqui no Spotify 5 00:00:12,193 --> 00:00:16,881 e serei a primeira a admitir que muitas vezes tomo como garantida a fiabilidade da Internet. 6 00:00:17,631 --> 00:00:20,871 A enorme quantidade de informação a pairar na internet é espantosa. 7 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? 8 00:00:26,033 --> 00:00:28,540 Digamos que queres ouvir uma canção no Spotify. 9 00:00:28,590 --> 00:00:31,697 Parece que o teu computador se liga diretamente aos servidores do Spotify, 10 00:00:31,697 --> 00:00:35,091 e que o Spotify te envia uma canção numa linha direta, exclusiva. 11 00:00:35,311 --> 00:00:37,826 Mas, na verdade, não é assim que a Internet funciona. 12 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 13 00:00:43,440 --> 00:00:47,015 à medida que milhões de utilizadores fossem entrando, especialmente porque não nada nos garante 14 00:00:47,015 --> 00:00:49,612 que cada fio e computador esteja sempre a funcionar. 15 00:00:50,045 --> 00:00:54,340 Em vez disso, os dados viajam na Internet de forma muito menos direta. 16 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 17 00:01:01,210 --> 00:01:04,150 a trabalhar na concepção daquilo a que agora chamamos a Internet. 18 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. 19 00:01:12,763 --> 00:01:17,517 Por isso continuámos a participar no crescimento da Internet e na sua evolução 20 00:01:17,517 --> 00:01:20,657 durante todo este tempo e até aos dias de hoje. 21 00:01:21,637 --> 00:01:26,654 A forma como a informação é transferida de um computador para outro é bastante interessante. 22 00:01:26,654 --> 00:01:30,900 Ela não precisa de seguir um caminho fixo. Na verdade, o seu caminho pode mudar 23 00:01:30,900 --> 00:01:33,896 no meio de uma conversa entre computadores. 24 00:01:33,896 --> 00:01:37,140 A informação na Internet vai de um computador para outro 25 00:01:37,140 --> 00:01:40,828 no que chamamos um pacote de informação, 26 00:01:40,828 --> 00:01:43,734 sendo que um pacote viaja de um lugar para outro na Internet 27 00:01:43,734 --> 00:01:46,993 de forma muito parecida a como nós vamos de um lugar para outro num carro. 28 00:01:47,323 --> 00:01:50,273 Dependendo do congestionamento do tráfego ou das condições da estrada, 29 00:01:50,273 --> 00:01:53,471 poderás escolher ou ser forçado a seguir uma rota diferente 30 00:01:53,471 --> 00:01:56,180 para chegar ao mesmo lugar a cada vez que viajas. E apenas 31 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 32 00:02:03,580 --> 00:02:06,960 também podemos enviar muitos tipos de informação digital em pacotes IP, com alguns limites. 33 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 34 00:02:11,895 --> 00:02:13,327 para o local onde será lançado. 35 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, 36 00:02:17,049 --> 00:02:19,432 transportando-o recorrendo a uma frota de camiões. 37 00:02:19,432 --> 00:02:23,685 Todos os camiões podem seguir diferentes rotas e podem chegar ao destino em diferentes momentos, 38 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 39 00:02:28,479 --> 00:02:30,642 e ele estará pronto para o lançamento. 40 00:02:31,334 --> 00:02:34,175 Na Internet os detalhes funcionam de forma semelhante. 41 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, 42 00:02:39,507 --> 00:02:43,819 essa imagem pode ser composta por dezenas de milhões de bits de 1s e 0s, 43 00:02:43,819 --> 00:02:45,856 demasiados para enviar num só pacote. 44 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 45 00:02:49,810 --> 00:02:53,281 dividi-la em centenas ou mesmo milhares de partes mais pequenas, chamadas pacotes. 46 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. 47 00:02:59,439 --> 00:03:03,342 Cada pacote tem o endereço de Internet de onde veio e para onde vai. 48 00:03:03,342 --> 00:03:05,120 Computadores especiais na internet, chamados routers, 49 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. 50 00:03:11,675 --> 00:03:15,239 Se uma rota estiver congestionada, pacotes individuais podem percorrer rotas diferentes 51 00:03:15,239 --> 00:03:20,370 através da Internet e podem chegar a o destino em alturas ligeiramente diferentes 52 00:03:20,370 --> 00:03:21,712 ou mesmo fora de ordem. 53 00:03:22,999 --> 00:03:26,569 Vamos falar sobre como funciona. Como parte do protocolo da Internet, 54 00:03:26,569 --> 00:03:29,854 cada router mantém o registo de múltiplos caminhos para enviar pacotes, 55 00:03:29,854 --> 00:03:33,201 e escolhe o mais "barato" para cada pedaço de dados, 56 00:03:33,201 --> 00:03:36,239 com base no endereço IP de destino do pacote. 57 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 58 00:03:41,120 --> 00:03:43,686 tais como políticas e relações entre empresas. 59 00:03:44,056 --> 00:03:48,353 Muitas vezes, a melhor rota para os dados viajarem não é necessariamente a mais direta. 60 00:03:48,834 --> 00:03:52,363 Ter opções de caminhos torna a rede tolerante a falhas. 61 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. 62 00:03:57,700 --> 00:04:01,322 Esta é a base para um princípio-chave da internet: fiabilidade. 63 00:04:03,559 --> 00:04:07,704 Agora, e que pedires alguns dados e nem todos eles forem entregues? 64 00:04:07,704 --> 00:04:09,409 Digamos que queres ouvir uma música. 65 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? 66 00:04:14,829 --> 00:04:19,295 Apresentando o seu novo melhor amigo, TCP! O protocolo de controle de transmissão. 67 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. 68 00:04:23,920 --> 00:04:26,600 Pensa nisto como um correio registado. 69 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. 70 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. 71 00:04:39,476 --> 00:04:43,481 Se todos os pacotes estiverem presentes, o TCP "assina" a entrega e está feito! 72 00:04:43,481 --> 00:04:49,863 [música] 73 00:04:49,863 --> 00:04:53,819 Se o TCP der pela falta de alguns pacotes, não assinara a entrega, 74 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. 75 00:04:58,700 --> 00:05:02,700 O Spotify enviará de novo cada um dos pacotes em falta ou incompletos. 76 00:05:02,745 --> 00:05:07,475 Quando o TCP verificar a entrega dos muitos pacotes pedidos para a canção, 77 00:05:07,480 --> 00:05:09,055 a tua música começará a tocar. 78 00:05:09,055 --> 00:05:11,550 [música] 79 00:05:11,610 --> 00:05:15,122 O melhor do TCP e dos sistemas router é que são escaláveis, 80 00:05:15,122 --> 00:05:18,480 podendo funcionar com 8 ou com 8 mil milhões de dispositivos. 81 00:05:18,480 --> 00:05:21,729 Na verdade, devido a estes princípios de tolerância a falhas e redundância, 82 00:05:21,729 --> 00:05:25,473 quanto mais routers acrescentarmos, mais fiável a Internet se torna. 83 00:05:25,659 --> 00:05:28,069 O que é também ótimo é que podemos crescer e escalar a Internet 84 00:05:28,069 --> 00:05:30,621 sem interromper o serviço para qualquer pessoa que a esteja a utilizar. 85 00:05:31,649 --> 00:05:34,379 A Internet é feita de centenas de milhares de redes 86 00:05:34,379 --> 00:05:38,243 e milhares de milhões de computadores e dispositivos ligados fisicamente. 87 00:05:38,520 --> 00:05:42,232 Estes diferentes sistemas que compõem a Internet ligam-se entre si, 88 00:05:42,232 --> 00:05:44,000 comunicam uns com os outros, 89 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. 90 00:05:50,833 --> 00:05:53,877 Dispositivos de computação, ou routers, espalhados pela Internet, 91 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. 92 00:06:00,940 --> 00:06:03,869 Isto acontece milhares de milhões de vezes por dia, 93 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, 94 00:06:08,889 --> 00:06:13,320 em vídeochamada, a usar uma app móvel, ou quando sensores ou dispositivos na Internet 95 00:06:13,320 --> 00:06:14,910 falam com um ao outro.