1 00:00:00,000 --> 00:00:04,884 2 00:00:04,884 --> 00:00:08,050 DOUG LLOYD: Neste vídeo nós vamos para falar sobre o Controle de Transmissão 3 00:00:08,050 --> 00:00:10,440 Protocolo TCP. 4 00:00:10,440 --> 00:00:13,290 Se você ainda não assistiu a vídeo sobre protocolo de Internet, IP, 5 00:00:13,290 --> 00:00:15,290 você pode querer fazê-lo antes de assistir a este vídeo 6 00:00:15,290 --> 00:00:18,680 porque os dois são bastante inter-relacionados. 7 00:00:18,680 --> 00:00:21,100 >> Assim, o protocolo de Internet, mais uma vez, um rápido resumo, 8 00:00:21,100 --> 00:00:22,930 que é o protocolo que se move informações 9 00:00:22,930 --> 00:00:28,210 a partir de uma máquina que envia a um receptor máquina através da rede. 10 00:00:28,210 --> 00:00:29,720 >> Então, qual é TCP? 11 00:00:29,720 --> 00:00:33,310 Embora apenas se deslocam de um envio Máquina para receber máquina, 12 00:00:33,310 --> 00:00:35,120 não é a história completa. 13 00:00:35,120 --> 00:00:38,040 Também sabemos que o nosso programa, os nossos computadores, por exemplo, 14 00:00:38,040 --> 00:00:41,000 estiver executando vários programas, e ter vários serviços 15 00:00:41,000 --> 00:00:45,140 em execução nessas máquinas. 16 00:00:45,140 --> 00:00:51,750 E assim, se queremos obter um pacote, ou informações para um programa específico, 17 00:00:51,750 --> 00:00:54,590 em uma máquina específica, precisamos de mais informações 18 00:00:54,590 --> 00:00:59,490 IP que apenas o que nos permite chegar informações a partir do ponto A ao ponto B. 19 00:00:59,490 --> 00:01:02,390 >> Assim, o TCP pode ser pensado como dirigir o pacote 20 00:01:02,390 --> 00:01:07,590 para o programa correto, ou o correto serviço, na máquina receptora. 21 00:01:07,590 --> 00:01:11,810 E por isso é importante, como você pode esperar, sei onde é suposto ir, 22 00:01:11,810 --> 00:01:14,550 e que o pacote está para ao mesmo tempo. 23 00:01:14,550 --> 00:01:18,370 E assim, com frequência, quando você fala sobre Transmission Control Protocol, TCP, 24 00:01:18,370 --> 00:01:23,900 muitas vezes você realmente ouvi-lo no contexto, TCP cortar IP, ou apenas TCP / IP. 25 00:01:23,900 --> 00:01:27,639 Estes dois protocolos são tão inter-relacionados que, eles são, basicamente, 26 00:01:27,639 --> 00:01:28,680 tratados como uma única unidade. 27 00:01:28,680 --> 00:01:31,630 Mas eles são dois protocolos distintos que fazer duas coisas separadas. 28 00:01:31,630 --> 00:01:36,690 >> Mais uma vez, IP é responsável por obter ela de uma máquina para outra. 29 00:01:36,690 --> 00:01:41,250 E TCP é responsável por começá-lo para o programa correto, 30 00:01:41,250 --> 00:01:43,490 ou o serviço correcto em uma máquina. 31 00:01:43,490 --> 00:01:45,500 E ele faz algo outra coisa que não faz IP, 32 00:01:45,500 --> 00:01:48,600 que é a entrega de garantia. 33 00:01:48,600 --> 00:01:55,060 >> Então, se nós agora par IP da máquina abordar com o número da porta assim chamada, 34 00:01:55,060 --> 00:01:58,750 e um número de porta é como um específico serviço ou utilidade, ou programa, 35 00:01:58,750 --> 00:02:00,350 é identificado numa máquina. 36 00:02:00,350 --> 00:02:03,920 Se agora temos um IP endereço acrescido de um número de porta, 37 00:02:03,920 --> 00:02:07,240 agora podemos identificar com exclusividade um determinado serviço 38 00:02:07,240 --> 00:02:09,479 rodando em uma máquina particular. 39 00:02:09,479 --> 00:02:11,920 >> Então é por isso TCP e IP são tão freqüentemente inter-relacionadas, 40 00:02:11,920 --> 00:02:14,170 porque esse número de porta por si só não faz realmente 41 00:02:14,170 --> 00:02:17,670 nada dizer, se você precisa de um número da porta, ea máquina 42 00:02:17,670 --> 00:02:19,566 que você está falando. 43 00:02:19,566 --> 00:02:24,060 Que máquina é suposto estar usando essa porta particular, por exemplo. 44 00:02:24,060 --> 00:02:28,350 >> A outra coisa que o TCP faz, como Eu disse, é que garante a entrega. 45 00:02:28,350 --> 00:02:30,810 Assim, para além especificando o número da porta, 46 00:02:30,810 --> 00:02:34,640 ele também indica quantas pacotes, o protocolo de Internet, IP, 47 00:02:34,640 --> 00:02:36,110 tem dividido os dados. 48 00:02:36,110 --> 00:02:41,200 E ordena os pacotes para que eles pode ser reconstruído na recepção 49 00:02:41,200 --> 00:02:45,820 máquina, mesmo que received-- numa ordem diferente daquela em que foram enviados. 50 00:02:45,820 --> 00:02:48,460 O que pode acontecer, porque IP é um protocolo sem conexão, 51 00:02:48,460 --> 00:02:52,610 e assim por pacotes diferentes pode levar caminhos diferentes através do sistema. 52 00:02:52,610 --> 00:02:53,660 53 00:02:53,660 --> 00:02:55,865 >> Alguns desses números de porta são muito comumente usado, 54 00:02:55,865 --> 00:02:57,990 e eles foram padronizados em todos os computadores, 55 00:02:57,990 --> 00:03:00,500 como, praticamente todos os fabricante de computadores agora. 56 00:03:00,500 --> 00:03:03,612 Então algo chamado FTP, o protocolo de transferência de arquivos, 57 00:03:03,612 --> 00:03:05,820 que é usado para transmitir arquivos, como você poderia esperar, 58 00:03:05,820 --> 00:03:10,060 a partir de uma máquina para outra, que usa a porta 21 convencionalmente. 59 00:03:10,060 --> 00:03:13,000 Email, SMTP, utiliza a porta 25. 60 00:03:13,000 --> 00:03:16,070 DNS, sistema de nomes de domínio, o que nós falou em nossa cartilha internet 61 00:03:16,070 --> 00:03:17,976 vídeo, utiliza a porta 53. 62 00:03:17,976 --> 00:03:20,100 Se você está sempre navegando a web, você está muito bem 63 00:03:20,100 --> 00:03:23,440 sempre usando a porta 80, a menos que você está navegando na web com segurança, 64 00:03:23,440 --> 00:03:26,060 navegação na web segura, usando a porta 443. 65 00:03:26,060 --> 00:03:28,610 66 00:03:28,610 --> 00:03:30,790 >> Então, qual é este processo TCP / IP? 67 00:03:30,790 --> 00:03:33,730 O que está acontecendo com ambos destes protocolos juntos? 68 00:03:33,730 --> 00:03:35,520 Bem, vamos falar sobre isso. 69 00:03:35,520 --> 00:03:39,420 Quando um programa deseja enviar dados, TCP ajuda a quebrá-lo em pedaços, 70 00:03:39,420 --> 00:03:42,700 e comunica esses pacotes para software de rede do computador. 71 00:03:42,700 --> 00:03:45,850 Por isso, leva os dados e que envolve informações em torno dele 72 00:03:45,850 --> 00:03:48,700 que indica qual porta é suposto ir para, 73 00:03:48,700 --> 00:03:52,500 e o fim de que pacote está fora de tudo. 74 00:03:52,500 --> 00:03:56,940 Então, faça um pacote de 10, dois de 10, três dos 10, e assim por diante. 75 00:03:56,940 --> 00:04:01,750 >> IP recebe os blocos de dados que foram quebradas com TCP, 76 00:04:01,750 --> 00:04:06,447 e envolve mais informações sobre onde o pacote é suposto ir. 77 00:04:06,447 --> 00:04:08,780 Podemos chamar isso de o IP camadas que cercam o pacote. 78 00:04:08,780 --> 00:04:11,210 Então, é uma espécie de, como, uma daquelas bonecas. 79 00:04:11,210 --> 00:04:14,780 Temos os dados no meio, e, em seguida, TCP em cima, 80 00:04:14,780 --> 00:04:17,920 dizendo-lhe onde o dados dentro do TCP é 81 00:04:17,920 --> 00:04:22,150 deveria ir, para que porto ou o serviço em uma máquina. 82 00:04:22,150 --> 00:04:25,110 Ao redor, que é a camada IP. 83 00:04:25,110 --> 00:04:29,230 O endereço IP, o que a máquina, está realmente ficando esta. 84 00:04:29,230 --> 00:04:32,070 >> Portanto, esse pacote que tem sido embrulhado com todas essas camadas, 85 00:04:32,070 --> 00:04:35,250 é enviado através do protocolo internet através do sistema de roteadores, obtendo 86 00:04:35,250 --> 00:04:39,960 do ponto A ao ponto B. Quando o receber máquina, ou dispositivo, recebe 87 00:04:39,960 --> 00:04:42,790 -lo, ele olha para o IP camada, ele diz, sim é isso 88 00:04:42,790 --> 00:04:45,260 meu endereço IP, por isso leva fora, tipo de rachaduras do ovo, 89 00:04:45,260 --> 00:04:47,380 e tira a camada IP. 90 00:04:47,380 --> 00:04:49,530 Em seguida, ele vê que há uma camada TCP, e ele diz, 91 00:04:49,530 --> 00:04:52,720 OK, parece que este é indo para a porta x, y ou porta. 92 00:04:52,720 --> 00:04:55,842 E, aparentemente, é packet número oito dos 15. 93 00:04:55,842 --> 00:04:56,800 Então, isso é bom saber. 94 00:04:56,800 --> 00:05:01,240 Assim, então ele pode ter essa informação, descolar a camada TCP agora, 95 00:05:01,240 --> 00:05:04,410 sabendo que é para a porta x, e é packet número oito, 96 00:05:04,410 --> 00:05:06,270 e obter os dados dentro. 97 00:05:06,270 --> 00:05:09,460 E pode preparar os dados para ser organizados de maneira correta. 98 00:05:09,460 --> 00:05:11,449 E uma vez que toda a os dados são recebidos, TCP 99 00:05:11,449 --> 00:05:13,990 pode entregá-lo para o correcto serviço, e dizer, aqui você vai. 100 00:05:13,990 --> 00:05:16,107 Aqui está os dados que você recebeu. 101 00:05:16,107 --> 00:05:17,940 Esse processo pode parecer algo assim. 102 00:05:17,940 --> 00:05:21,392 Então, vamos enviar um e-mail um emissor para um receptor. 103 00:05:21,392 --> 00:05:23,100 E digamos que este e-mail é muito pequena, 104 00:05:23,100 --> 00:05:25,975 por isso, só precisa quebrá-lo em quatro pacotes, e nós vamos chamá-los de A, 105 00:05:25,975 --> 00:05:29,460 B, C, e D. Bem, queremos avançar que primeiro pacote que acontece? 106 00:05:29,460 --> 00:05:34,491 Bem, nós levamos esse pedaço de dados, Os dados que é parte do pacote de A, 107 00:05:34,491 --> 00:05:38,500 e em torno de que vamos para envolvê-lo com uma camada TCP. 108 00:05:38,500 --> 00:05:41,670 E-mails, você pode recordar, são enviados através da porta 25, 109 00:05:41,670 --> 00:05:46,181 e nós temos quatro blocos de dados, aqui, que nós vamos estar usando, 110 00:05:46,181 --> 00:05:47,430 e esta é a primeira delas. 111 00:05:47,430 --> 00:05:50,013 Então, talvez a nossa camada TCP contém informações sobre, bem, nós estamos 112 00:05:50,013 --> 00:05:56,060 indo para a porta 25, e este é um número de pacote de quatro. 113 00:05:56,060 --> 00:05:59,280 >> Em torno disso, então agora temos tudo o que informações empacotados juntos, 114 00:05:59,280 --> 00:06:03,000 vamos dizer que queremos que ele ir, o equipamento, o que endereço IP 115 00:06:03,000 --> 00:06:04,910 é suposto a obter este pacote. 116 00:06:04,910 --> 00:06:06,604 E isso é parte da camada IP. 117 00:06:06,604 --> 00:06:08,770 E há outras informações lá também, como 118 00:06:08,770 --> 00:06:11,300 como o endereço de retorno em caso algo der errado, 119 00:06:11,300 --> 00:06:14,390 ele sabe para onde enviar informação para trás, e assim por diante. 120 00:06:14,390 --> 00:06:16,475 >> Mas a camada IP passa em torno de tudo isso. 121 00:06:16,475 --> 00:06:19,860 Essa coisa toda é empacotado em conjunto, como uma unidade grande, 122 00:06:19,860 --> 00:06:22,080 e enviado através de uma transferência IP. 123 00:06:22,080 --> 00:06:26,180 Por isso, é roteado através do roteador rede, usando o protocolo de internet. 124 00:06:26,180 --> 00:06:28,700 E o receptor recebe a coisa inteira. 125 00:06:28,700 --> 00:06:31,910 E então ele pode começar a desconstruir o que está acontecendo aqui. 126 00:06:31,910 --> 00:06:36,030 Ele olha para a camada IP, o camada exterior destes dados, 127 00:06:36,030 --> 00:06:38,560 e diz, sim, esse é o meu IP endereço para que possamos descartar isso. 128 00:06:38,560 --> 00:06:40,685 Eu posso, tipo, ignorá-lo, não é mais necessário, 129 00:06:40,685 --> 00:06:42,480 e ele pode olhar um nível mais profundo. 130 00:06:42,480 --> 00:06:47,590 Ele vê que, OK, este é dados que destina-se a ser recebidos na porta 25. 131 00:06:47,590 --> 00:06:50,560 É, aparentemente, a primeira parte de quatro. 132 00:06:50,560 --> 00:06:54,260 Então, eu vou manter isso em importa, e olhar para os dados, 133 00:06:54,260 --> 00:06:57,349 e slot-lo mais ou menos onde Eu acho que vai ir. 134 00:06:57,349 --> 00:07:00,140 Agora, devido ao protocolo de internet não é necessariamente o caso 135 00:07:00,140 --> 00:07:03,442 que o próximo pacote a receptor recebe, é de pacotes dois. 136 00:07:03,442 --> 00:07:05,150 Na verdade, o próximo coisa que o receptor recebe 137 00:07:05,150 --> 00:07:08,230 pode ser o número de pacotes três porque estes pacotes 138 00:07:08,230 --> 00:07:11,777 tomou caminhos diferentes, porque de tráfego diferente na rede. 139 00:07:11,777 --> 00:07:14,360 E assim, eu não estou indo para ir através do diagrama de construí-la 140 00:07:14,360 --> 00:07:17,560 -se outra vez, mas três pacotes movimentos, fica arrancada 141 00:07:17,560 --> 00:07:20,410 de todas as suas camadas, o Camada IP, a camada TCP, 142 00:07:20,410 --> 00:07:22,420 e os dados é colocado no lugar certo. 143 00:07:22,420 --> 00:07:25,200 E então, vamos dizer que recebe o pacote de quatro. 144 00:07:25,200 --> 00:07:29,290 >> Agora vamos dizer, é isso, é não recebe mais dados. 145 00:07:29,290 --> 00:07:30,300 O que é que vai fazer? 146 00:07:30,300 --> 00:07:32,110 IP não fazer nada para nós. 147 00:07:32,110 --> 00:07:33,260 Mas TCP faz. 148 00:07:33,260 --> 00:07:38,250 TCP sabe, bem, eu recebi um dos quatro, três de quatro, e quatro de quatro. 149 00:07:38,250 --> 00:07:41,100 Eu não estou recebendo mais dados. 150 00:07:41,100 --> 00:07:43,770 Então, alguma coisa deu errado. 151 00:07:43,770 --> 00:07:45,050 Mas eu posso garantir a entrega. 152 00:07:45,050 --> 00:07:49,300 Eu sei que pacote número dois está faltando. 153 00:07:49,300 --> 00:07:52,470 E assim TCP pode agora fazer um pedido, mais ou menos, no sentido inverso. 154 00:07:52,470 --> 00:07:55,170 Agregação de seu pedido da mesma maneira, 155 00:07:55,170 --> 00:07:57,230 e enviá-lo via IP, que, eu sei, poderia 156 00:07:57,230 --> 00:08:00,880 levar a algum tipo de loop infinito de todos descartar pacotes no caminho. 157 00:08:00,880 --> 00:08:05,580 >> Mas basta dizer que o TCP diz, eu estou faltando um pacote. 158 00:08:05,580 --> 00:08:08,670 Eu preciso enviar informações de volta ao remetente. 159 00:08:08,670 --> 00:08:12,025 Felizmente endereço IP do remetente é, tipo de, agasalhados na camada IP. 160 00:08:12,025 --> 00:08:15,780 É parte de-- é o retorno endereço no envelope. 161 00:08:15,780 --> 00:08:18,800 E dizer, eu estou faltando número do pacote dois, você pode por favor reenvie. 162 00:08:18,800 --> 00:08:20,550 Quando o remetente recebe que a informação, 163 00:08:20,550 --> 00:08:22,599 ele não tem que enviar Todo o e-mail novamente. 164 00:08:22,599 --> 00:08:25,390 Ele só precisa enviar esse indivíduo pedaço dele que estava faltando, 165 00:08:25,390 --> 00:08:27,590 para que pudéssemos enviar o número de pacotes dois. 166 00:08:27,590 --> 00:08:32,610 E quando ele recebe-lo, agora TCP diz, Eu tenho todos os quatro pedaços de dados 167 00:08:32,610 --> 00:08:34,100 que eu preciso. 168 00:08:34,100 --> 00:08:39,590 Então, eu posso montá-los juntos, e levar todo esse bloco de informações 169 00:08:39,590 --> 00:08:44,169 e passá-lo para a porta 25, onde ele será interpretado como um e-mail. 170 00:08:44,169 --> 00:08:47,010 E isso-- desta forma nós temos enviar um e-mail do emissor 171 00:08:47,010 --> 00:08:49,273 ao receptor utilizando TCP / IP. 172 00:08:49,273 --> 00:08:51,430 173 00:08:51,430 --> 00:08:54,180 Então, como eu disse, se em algum momento ao longo do caminho algo deu errado, 174 00:08:54,180 --> 00:08:56,600 TCP pode lidar com isso. 175 00:08:56,600 --> 00:09:00,010 Ele pode fazer um pedido para que o informações é enviado de volta para ele. 176 00:09:00,010 --> 00:09:01,840 E pode reconstituir a mensagem. 177 00:09:01,840 --> 00:09:05,090 E uma vez que é reconstruída a mensagem de todos os pacotes é recebida, 178 00:09:05,090 --> 00:09:10,350 então ele pode organizá-los e entregá-los para o serviço correto. 179 00:09:10,350 --> 00:09:11,990 >> Então, isso é TCP em poucas palavras. 180 00:09:11,990 --> 00:09:14,550 É assim que nós garantimos entrega de informação. 181 00:09:14,550 --> 00:09:16,540 Lembre-se do TCP freqüentemente trabalha com IP, 182 00:09:16,540 --> 00:09:18,990 Portanto, estes dois protocolos realmente andam de mãos dadas. 183 00:09:18,990 --> 00:09:22,160 Discutimos-los em vários vídeos aqui, porque eles fazem coisas diferentes, 184 00:09:22,160 --> 00:09:26,190 mas eles são tão inter-relacionados, eles normalmente você vai usá-los juntos. 185 00:09:26,190 --> 00:09:27,150 >> Eu sou Doug Lloyd. 186 00:09:27,150 --> 00:09:29,160 Este é CS50. 187 00:09:29,160 --> 00:09:31,233