DOUG LLOYD: Se você assistiu nosso vídeo internet primer, Deixei um pouco de um cliffhanger falando sobre a internet e como é um sistema de protocolos. Bem, vamos falar sobre o primeiro desses protocolos que na verdade compreende a Internet. E, curiosamente, é chamado Protocolo Internet, que geralmente se referem como IP. Assim, a internet, como eu disse, é uma rede interligada, uma internet, que é realmente apenas várias redes tecidos juntos e concordando alguma forma para comunicar uns com os outros. O que é isso de alguma forma eu estou falando? Bem, este é o Protocolo de Internet. Esta informação é dita como transmitidos a partir do ponto A ao ponto B. E esta é uma espécie de condição de aderir à rede da Internet é concordar em seguir esta protocolo, quando as necessidades de informação de ser transferida do ponto A ao ponto B. Então, no fim de que vídeo iniciador internet, Mostrei esta imagem de que era a internet. E em pequena escala, isto é na verdade, provavelmente bastante precisa. Isso pode ser como três redes realmente falar uns com os outros. Mas é um pouco enganador. E a razão é um pouco enganosa é porque-- se eu apenas numerar as redes de uma questão de conveniência aqui e vamos nos livrar de tudo o resto e se concentrar apenas no networks-- É um pouco enganador, porque implica que todos os três têm rede uma ligação a um outro. Um está ligado a dois. Dois está ligado a três. E três é ligado a uma. E quando eu falo sobre uma conexão aqui, eu sou falando de um físico, conexão com fio. Nós temos wireless. Mas é realmente impraticável para dados a serem transmitidos via rádio ao longo de um grande escala. E assim, em algum momento, nós realmente confiar em fios de telefone technology-- com fio, fios de fibra óptica, diversas tecnologias que está se conectando fisicamente ponto A ao ponto B. E em pequena escala como isto-- isso pode ser preciso, mas como a imagem fica um pouco maior, vamos agora imaginar que temos seis diferentes redes. Se isso é verdade, agora temos algo como isto para todas as redes para ser ligada a qualquer outra rede. E se você olhar, cada rede tem cinco setas ligadas a ele. Então, tudo está conectado para todas as outras redes. Nós só temos seis redes aqui, e já olhar para o quanto a fiação temos que empregar, certo? E a internet é composta por muito mais do que seis redes. Não podemos dar ao luxo de ligar cada rede para cada outra rede, especialmente considerando alguns dos estas redes abrangem oceanos, certo? Se nós estamos tentando conectar-se uma rede na Ásia ou na Europa, nós vamos ter que abrangem um oceano inteiro. Nós vamos precisar usar fios em algum momento, mas queremos minimizar o número de fios que realmente usar. Nós não queremos para enviar uma milhão de fios através do oceano, porque eles custam milhões de dólares cada para se deitar. E tão rapidamente, que não seria capaz para dar mais a Internet. Então nós temos que ter outra caminho para cada rede para falar com todos os outros rede ou então nós têm partes da Internet que estão desconectados a partir de outras partes da Internet. E isso não é o que queremos. Mas nós não queremos ter todos eles ligados entre si. E é aí que os roteadores voltar em jogo. Podemos usar routers da seguinte maneira. E se em vez de cada rede estar fisicamente ligado a todas as outras redes, nós tinha essas peças intermediárias, onde as redes foram ligados a esses intermediários, que estão ligados a algumas redes. Então, ao invés de ter um conectar-se dois, três, quatro, cinco, seis, talvez um conecta a um roteador, que talvez se conecta a um ou dois desses redes, mas também talvez liga a outra routers, que também irá se conectar a essas outras redes. E o trabalho do roteador é-- ele contém informações chamada uma tabela de roteamento que dita que fazer Eu vou, se eu ver um endereço IP particular? Se eu vejo um endereço de IP de partida com quatro, eu estou indo para ir por este caminho. Se eu visto endereço IP começando com a 12, eu estou indo para ir por esse caminho. Nós não precisa estar conectado fisicamente a rede número quatro ou número de rede 12 neste exemplo. Nós só sabemos geral onde queremos ir. E se você pensar sobre isso, este é o tipo de semelhante ao conceito de recursão que falamos quando nós estávamos falando sobre isso em C. Eu não estou indo para conectá-lo exatamente para onde você quer ir. Eu só vou para movê-lo um passo mais perto de onde você quer ir. E eu vou deixar alguém lidar com solução do restante do problema. Eu só vou resolver este pequeno pedaço de o problema e adiar o resto a outra pessoa. Assim, informações de roteamento é, na verdade, semelhante ao tipo de recursão. Se isso é um conceito que você entenda bem, talvez essa analogia ajudaria. Então, vamos dar uma olhada Neste exemplo a rede novamente e assumir que, uma vez mais, vamos usar esses mesmos seis redes, um a seis. Então vamos apenas dizer que cada Endereço IP em uma rede começa com um ponto alguma coisa. E vamos dizer que há alguma outra coisa que trata de como todos os sistemas está conectado à rede um. Nós só se preocupam sobre como conectar todos essas redes em conjunto de uma internet. Assim, cada dispositivo que é ligados à rede de um tem um endereço IP que começa com um ponto e, em seguida, três outros números. Esta é uma generalização a maneira como as coisas realmente funcionam. É um pouco mais preciso do que isso. Mas isso deve dar-lhe uma idéia geral do que a Internet Protocolo está realmente fazendo. Portanto, este foi o diagrama que tínhamos antes. Este foi o sistema que não era sustentável. Mesmo seis, isso pode ser OK. Mas se chegarmos a 10 ou 20 ou 50, nós somos vai ser deitado um monte de fios. E 50 não é ainda também até mesmo a ponta do iceberg como para o número de redes que têm. Portanto, este modelo é insustentável. Não podemos ficar com este. Então, vamos em vez adoptar este modelo onde nos livramos de todos os fios entre a redes e nós adicionamos roteadores. Então estas caixas amarelas representam roteadores. E seu trabalho é para mover informação geral mais perto de onde é suposto ir. E talvez estas são as conexões que essas redes têm. E talvez estas são as tabelas que são incorporados nos roteadores. Então, se nós apenas começar por olhar na rede de um, por exemplo, basicamente o que ele diz é se Eu nunca ver um endereço que não começa com um um-- isso é o que o ponto de exclamação ou um estrondo ninguém lá, não vou um-- passá-lo a um roteador. E a partir daí, o roteador pode tomar uma decisão. O roteador diz que se eu ver um, eu sou vai se mudar para um número de rede. Essa é a seta verde em direção a o deixou fora desse top box esquerda. Se eu ver um dois-- que é o tipo de seta título ao topo à direita em direcção o network-- roxo se eu ver um endereço IP começando com um dois, Eu estou indo para ir para a rede dois. Se eu vejo um três, quatro, cinco, ou um six-- isso é que seta vermelha saindo da parte superior esquerda router-- Eu não sou ligado a três, quatro, cinco, seis ou. Mas eu sei alguém que é ou que é um pouco mais perto de lá. Então, eu só vou dizer, cada vez que vejo um endereço IP começando com três, quatro, cinco, ou seis, eu sou apenas vai enviá-lo para o roteador. Então, eu vou movê-lo um pouco mais perto onde é suposto ir e deixá- que tratam roteador com o problema. E como você pode se você see-- queria fazer uma pausa aqui e trace-- você pode chegar a todos os outros pontos em a rede a partir de onde você estiver. Todos os seis redes ainda pode ligar-se a todas as outras redes mas eles não são fisicamente mais conectado. Eles são agora estes passos intermediários. Agora, é claro que há uma trade off de velocidade, certo? Se um foi directamente conectada a seis, não queremos tem que passar por dois roteadores ao longo do caminho. Por isso, pode ser capaz de obter o conexão um pouco mais rápido. Mas talvez isso trade-off vale a pena, certo? Se ele vai ser tão caro em termos de custo real, dólares e centavos, para fisicamente fio Todas estas redes, talvez um pouco de um desaceleração na velocidade está OK. Nós podemos tolerar isso. Então, novamente, nesse exemplo, eram apenas falando, nenhuma das redes conectar-se diretamente uns com os outros todos. Não poderia ter been-- talvez nesse Exemplo que poderíamos ter feito isso para que talvez rede um e dois foram conectada diretamente. E isso seria OK. Algumas redes são fisicamente ligado a outras redes. Mas eles não são todos ligados uns aos outros. Eles contam com o routers-- em particular, este example-- para distribuir a comunicação do ponto A ao ponto B. Em pequena escala, como o que estamos falando de aqui-- Nesta configuração, na verdade, pode ser mais ineficientes do que apenas ter conexões diretas. Mas em grande escala, nós podemos dimensionar o sistema muito melhor. Ele realmente vai reduzir a nossa custo da infra-estrutura de rede ter roteadores intermediários, cujo trabalho é para mover o tráfego do remetente para o receptor, a partir do ponto A para o ponto B, em oposição a fiação todos em conjunto. Então, vamos dar uma olhada um exemplo de informação viajar usando este protocolo Internet. Vamos dizer que eu sou fisicamente localizado na IP 1.208.12.37 então eu existir em algum lugar por um rede. E eu quero enviar uma mensagem para você. E você está em cinco rede em 5.188.109.14. O seu endereço de IP, especificamente, não faz importa, mas neste exemplo particular nós estamos falando sobre essa generalização de que o protocolo de internet é tudo cerca de. Você está na rede de cinco, e eu sou por um rede. Como você pode ver, não estamos ligados uns aos outros em tudo. Então eu começar a sair. E eu quero enviar-lhe uma mensagem. E assim de alguma forma eu me comunico essa mensagem para o roteador. O roteador é o que na verdade, tem o endereço IP. E está olhando para onde que é suposto ir. Nós estamos indo para cinco algo dot. Então agora eu vou começar usando meu-- ou o roteador, em vez disso, vai começar a usar o seu tabela de roteador para passar informações junto. Ele vê que não é um cinco, por isso, diz que eu vou passá-lo para esse cara. Então esse cara tem que tomar uma decisão. Onde é que eu vou ir? Bem, não é uma pergunta, então eu não tenho vai mover-se para a rede. E não é um dois. Eu não estou indo para mover para os dois rede. Ela começa com um cinco. Eu não estou ligado a cinco, este router diz. E então eu só vou passá-lo para-- Eu estou indo para ir por este caminho. Este é o lugar onde grupos de três e fours e cincos e sixes ir. E eu vou deixar esse negócio cara com ele. Eu vou pegar um pouco mais perto para onde é suposto ir. Eu sei que é suposto ir em que direção geral. Mas talvez esse cara pode lidar com isso. ESTÁ BEM. Então esse cara parece. Ele diz, OK, este IP endereço começa com um cinco. Bem, eu estou ligado a três e seis, então eu não posso passar a mensagem diretamente onde ele precisa ir. Mas que outro roteador ali, eu sei se eu enviá-lo quatros e cincos, ele pode lidar com aqueles. Por isso, passa adiante no caminho. E, em seguida, este router diz, bem, eu sou conectado a redes de quatro e cinco. Então, sim, eu posso ajudá-lo. Vou levar o seu endereço IP que começa com um cinco. Eu vou dar para a rede cinco. A rede de cinco vai fazer algum trabalho em seu fim e dar a mensagem para você. E agora nós temos com sucesso transmitiu uma mensagem de mim para você que usa o protocolo Internet. Novamente, para fins muito generalizada de ilustração, como o que está acontecendo. Mas isso é muito bonito como o Protocolo de Internet funciona. Os routers sabem geralmente onde enviá-lo e irá enviá-lo um passo ao longo do forma, consegui-lo cada vez mais perto para o seu destino até que um roteador está fisicamente conectado à rede ou o endereço ou o que quer em questão e dá-lo lá. Agora, em geral, exceto para realmente, realmente pequenas, pequenas mensagens, ele não está indo para enviá-lo como um grande bloco de dados. Se eu estou enviando-lhe uma email-- um tempo muito longo e-mail, dizer-- não vai levar todo esse e-mail, empacotá-lo em uma bola ou um pacote ou qualquer outra coisa, e enviar que todo coisa para baixo da rede. Em primeiro lugar, o envio de informações ao longo da rede é caro. Ele não se somam. E, quanto maior o pedaço, o mais caro é para mover a cada passo do caminho. E se há alguma forma uma desaceleração e, em seguida, há este tipo de como giant-- se você está dirigindo na estrada e não há esse caminhão gigante tipo de bloqueando o caminho e você não pode obter em torno dele em ambos pista porque é tipo de se espalhar. Ele retarda todo mundo para baixo por trás dele. Mas os carros pequenos, se eles foram todos os carros pequenos, eles podem ser capazes de se movimentar, se essa analogia tipo de ajuda um pouco. Então, um grande bloco no sistema pode todo mundo realmente lento mais baixo. E assim o IP vai fazer é dividir esses dados em pacotes. Vai levar este grande de e-mail ou transferência de FTP ou uma transferência de arquivo, ou talvez eu estou fazendo um solicitar a um navegador web porque eu quero uma foto do gato. E ele vai levar isso pedido ou que o email ou o arquivo e dividi-lo em vários pedaços e enviar todas as peças separadamente. Então, na verdade, eu estou enchendo a rodovia com um monte de carros pequenos, que podem todos mover em vez de um grande caminhão que poderia, se algo der errado, estrangular o tráfego para todos os outros. Outro efeito colateral isto é, se há algum tipo de catástrofe fracasso e algo der errado eo pacote é descartado. Algo está falhou eo mensagem não pode ser comunicada. O roteador talvez tivesse muita coisa acontecendo em. Não poderia conciliar tudo. E por isso só literalmente deixou cair. Isso é uma espécie de analogia, certo? Tem um monte de coisas acontecendo. Ele está passando informações do ponto A ao ponto B. Nós não somos os únicos dois as pessoas na internet, por isso tem de processar uma grande quantidade de tráfego. E se ele não tem mãos suficientes e ele não consegue descobrir o que está fazendo, ele só poderia jogar alguma coisa. Assim pode fazer outra coisa. Tem muita coisa acontecendo. Se tivéssemos a nossa mensagem como um enorme bloquear e foi isso que foi suprimido, agora temos de enviar a mensagem novamente. E agora estamos possivelmente fazendo com que o tráfego de novo. E corremos o risco de que bloco enorme que está sendo deixado cair novamente. Mas, se os dados de foram divididos em pacotes e nós deixamos cair um daqueles, é muito menos dispendioso para enviar que pacote mais uma vez ao contrário ao inteiro coisa mais uma vez. Então IP é responsável por obter informações a partir do ponto A ao ponto B e também a quebrar informações em pequenos pedaços de modo que a rede não está excessivamente tributados. IP é também conhecido como um protocolo sem conexão. Não é necessariamente um caminho definido do emissor para o receptor, ou vice- -versa. Agora, neste exemplo, nós falamos sobre, há, na verdade, é apenas uma maneira para chegar a todas as redes. Portanto, neste particular, ilustração, há, na verdade, é definido a partir de um caminho ponto A ao ponto B. Mas nós podemos mudar isso apenas fazendo uma modificação para os dois routers à esquerda, adicionando este condição para as tabelas de roteamento. Agora note que a partir de o roteador superior esquerda, na verdade existem duas maneiras de lidar com um quatro ou o endereço de IP de cinco. Ele pode ir para baixo para o canto inferior esquerdo router, ou pode ir para a direita, para o roteador certo. Ele tem várias opções. E este é, na verdade, tipo de uma coisa boa porque torna a nossa rede mais ágil. Se é para example-- como uma espécie de GPS. Se você já esteve dirigindo na estrada e de repente seu GPS avisa você que o tráfego está à frente, você quer evitá-lo se você puder. E assim você pode recalcular o percurso. E uma rede router, em Além de ter informações sobre o local onde os pacotes devem ir ou onde os dados devem ir, há também este tipo de pulso geral sobre o estado da sua rede local. O que vai acontecer se eu enviar que por este caminho contra este caminho? E assim, tendo em conta o tráfego pesado situações na rede, talvez As coisas vão ficar mais uma encaminhado uma maneira ineficiente ou mais geralmente forma ineficiente, porque se formos a maneira regular, lá vai ser um monte de tráfego. A auto-estrada está completamente encravado. Então, talvez o que vamos fazer é em vez disso tomar estradas laterais, que normalmente levaria um muito mais tempo, mas ninguém da realmente usar essas estradas laterais. E assim podemos rota nossos pacotes que maneira. Portanto, não todos os pacotes de um pedaço grande de dados pode tomar o mesmo caminho de do início ao fim. E a nossa rede torna-se muito mais responsivo se as nossas tabelas de roteamento para permitir que existe para ser múltiplas opções para onde ir. Nós não estamos dependendo de que um caminhão em movimento para fora do caminho. Podemos sair da rodovia na próxima saída e tomar um caminho diferente. E assim, o Internet Protocol espécie de faz um pouco disso também. Então, isso é o básico de o Protocolo da Internet. Mas há mais uma questão de lidar, que é o que acontece se nós não descartar um pacote? Como sabemos que vamos para enviar esse pacote de novo? Certo? Bem, Protocolo Internet não garante a entrega. Nós vamos ser, dependendo em um outro protocolo para lidar com essa chamada Transmission Control Protocol, TCP. E nós estamos indo falar sobre Control Transmission Protocolo no próximo vídeo. Eu sou Doug Lloyd. Este é CS50.