Você está na página 1de 93
- Estacio Disciplina: PROTOCOLOS DE COMUNICACAO Redes de Computadores ea Internet 3a. Edic&o0/2005 James F. Kurose e Keith W. Ross Redes de y compatadors 4 pale - Camada de Transporte ea Intern Pearson Education http://www. pearson.com.br ISBN 9788588639188 ald ~ Comada de Transporte Rewura de rede em camadas, Ela desempenha 0 papel fundamental de fornecer servicos de comunica- ‘a0 diretamente aos processos de aplicacdo que rodam em hospedetros diferentes. A abordagem peda- gogica que adotamos neste capitulo ¢ alternar entre discussdes de principios de camada de transporte e 0 ‘modo como esses principios so implementados em protocolos existentes; como de costume, daremos par ticular énfase aos protocolos da Internet, em particular aos protocolos de camada de transporte TCP ¢ UDE Comecaremos diseutindo a relacao entre as camadas de transporte e de rede, preparando o censrio para © exame da primeira funcao importante da camada de transporte — ampliar o servico de entrega da cama- da de rede entre dois sistemas finais para um servigo de entrega entre dois processos de camada de aplica- cao que rodam nos sistemas finais. Ilustraremos essa fungdo quando abordarmos 0 UDP. protocolo de transporte nao orientado para conexdo da Internet. Entao retornaremos 20s princfpios e enfrentaremos um dos problemas mais fundamentais de redes de computadores — como duas entidades podem se comunicar de maneira confidvel por um meio que pode perder € comromper dados. Mediante uma série de cendtios cada vez mais complicados (¢ realistas!), cons- truiremos um conjunto de técnicas que os protocoles de transporte wilizam para resolver esse problema, Entio, mostraremos como esses prineipios estdo incorporados no TCP, 0 protocolo de transporte orientado para conexio da Internet. Pes: centre as camadas de aplicagdo ¢ de rede, a camada de transporte ¢ uma peca central da arqui Em seguida, passaremos para um segundo problema fundamentalmente importante em redes — 0 con- trole da taxa de transmissio de entidades de camada de transporte para cvitar ou se recuperar de congestio- namentos dentro da rede. Consideraremos as causas ¢ conseqtiéncias do congestionamento, bem como téc- nicas de controle de congestionamento comumente usadas. Apos adquirir um s6lido entendimento das questoes que estao por tris do controle de congestionamento, estudaremos como 0 TCP o aborda 3.1. Introdugio e servigos de camada de transporte Nos dois capitulos anteriores, citamos o papel da camada de transporte e os servigas que ela fornece. ‘Vamos revisar rapidamente 0 que J4 aprendemos sobre a camada de transporte 143 [7% _ Redes de computedores ¢ 0 Internet Um protocolo de camada de transporte fornece comunicacio légiea entre processos de aplicagdo que rodam em hospedeiros diferentes. Comunicacao logica nesse contexto significa que, do ponto de vista de uma aplicagao, tudo se passa como se os hospedeiros que rodam os processos estivessem conectados dire- tamente; na verdade, esses hospedeiros poderao estar em lados opestos do planeta, conectados por nume- ros0s roteadores € uma ampla variedade de tipos de enlace. Processos de aplicagao usam a comunicacao logica provida pela camada de transporte para enviar mensagens entre si, livres da preocupacéo dos deta- Thes da infra-estrutura fisica utilizada para transportar essas mensagens. A Figura 3.1 ilustra a nogdo de comunicagio logica. Nela, vemos que protocolos de camada de transporte séo implementados nos sistemas finais, mas no em roteadores de rede. No lado temetente, a camada de transporte converte as mensagens que recebe de um processo de aplicacio remetente em pacotes de camada de transporte, denominados segmentos de camada de transporte na terminologia da Internet, Isso € (possivelmente) feito fragmentando-se as mensagens da aplicagao em pedacos menores ¢ adicionando-se um cabecalho de camada de transporte a cada pedaco para criar 0 segmento de camada de transporte, A camada de transporte, entao, passa o segmento para a camada de rede no sistema final remetente, onde ele ¢ encapsulado em um pacote de camada de rede (um datagra- ma) € enviado ao destinatério. E importante notar que roteadores de rede agem somente nos campos de camada de rede do datagrama; isto 6, no cxaminam os campos do segmento de camada de transporte encapsulado com o datagrams. No lado destinatério, a camada de rede extrai do datagrama o segmento de camada de transporte e passa-o para a camada de transporte, Em seguida, essa camada processa o segmento recebido, disponibilizando os dados para a aplicacao destinataria, ‘liege “Transperta Rede Rede Rede Free de dado [nace de does] lace de dds Fisca Fes sca , fee e, ie %, ria Rece eee de dad Tice Ns SI yr ae G0 Logica, ¢ nGo fsico, entre processos de aplicaries Figura 3.1 comoda de ranspori fore coma Capitulo 3 Cameda de transporte 188) Pode haver mais de um protocolo de camada de transporte disponivel para aplicacées de rede. Por exemplo, a Intemet tem dois protocolos — TCP e UDP. Cada um deles prove um conjunto diferente de ser- vigos de camada de transporte a aplicacao que o esta chamando. 3.1.1 Relacio entre as comadas de transporte e de rede Lembre-se de que a camada de transporte se situa logo acima da camada de rede na pilha de protoco- Jos, Enquanto um protocolo de camada de transporte fornece comunicacao légica entre processos que rodam. em hospedeiros diferentes, um protocolo de camada de rede fornece comunicacio logica entre hospedeiros Essa distingao € sutil, mas importante. Vamos examiné-l com o auxilio de uma analogia com moradias. Considere duas casas, uma na Costa Leste € outra na Costa Oeste dos Estados Unidos e que, em cada uma delas, ha uma dticia de criancas, As criancas da Costa Leste sio primas das criancas da Costa Oeste € todas adoram escrever cartas umas para as outras — cada crianga escreve a cada primo uma vez por sema- nae cada carta é entregue pelo servico de correio tradicional dentro de um envelope separado. Assim, cada moradia envia 144 cartas por semana para 2 outra. (Essas criancas economizariam muito dinheiro se tives- sem e-mail!) Em cada moradia ha uma crianca responsavel pela coleta e distribuigao da correspondencia — ‘Ann, na casa da Costa Oeste, e Bill, na da Costa Leste. Toda semana, Ann coleta 2 correspondencia de seus irmios ¢ irmas e a coloca no coneio. Quando as cartas chegam a casa da Costa Oeste, também € Ann quem tem a tarefa de distribuir a correspondencia a seus irméos ¢ irmas, Bill realiza 0 mesmo trabalho na casa da Costa Leste. Nesse exemplo, o servico postal prové uma comunicacao logica entre as duas casas — ele movimenta a correspondéncia de uma casa para outra, € nio de uma pessoa para outra, Por outro lado, Ann e Bill pro- ‘yéem comunicacio légica entre os primos — eles coletam ¢ entregam a correspondéncia de seus irmaos € irmas, Note que, da perspectiva dos primos, Ann e Bill sdo 0 servigo postal, embora sejam apenas uma parte do sistema (a parte do sistema final) do processo de entrega fim-a-fim. Esse exemplo das moradias é uma analogia interessante para explicar como a camada de transporte se relaciona com 2 camada de rede: mensagens de aplicagdo = cartas em envelopes processos = primos hhospedeitos (também denominados sistemas finais) = casas, protocol de camada de transporte = Ann e Bill protocolo de camada de rede = servigo postal (incluindo os carteiros) Continuando com essa analogia, observe que Ann ¢ Bill fazem todo o seu trabalho dentro de suas res- pectivas casas; eles néo estio envolvidos, por exemplo, com a elassificagio da correspondéneia em nenhu- ‘ma central intermedisria dos correios ou com o transporte da correspondencia de uma central a outra. De ‘maneira semelhante, protocolos de camada de transporte moram nos sistemas finais, onde movimentam, 'mensagens de processos de aplicacao para a bordla da rede (isto é, para a camada de rede) e vice-versa, mas nio interferem no modo como as mensagens s40 movimentadas dentro do nuicleo da rede. Na verdade, como ilustrado na Figura 3.1, roteadores intermedirios ndo reconhecem nenhuma informacao que a cama- da de transporte possa ter anexado as mensagens da aplicagio nem agem sobre ela. Prosseguindo com nossa saga familiar, suponha agora que, quando Ann e Bill saem de férias, outro par de primes — digamos, Susan e Harvey — substitua-os ¢ encarregue-se da coleta interna da correspondén- cia c de sua entrega. Infelizmente para as duas famifias, cles no desempenham essa tarefa do mesmo modo que Ann ¢ Bill, Por serem criangas mais novas, Susan ¢ Harvey recolhem e entregam a correspondéncia com. ‘menos frequéncia e, ocasionalmente, perdem cartas (que as vezes acabam mastigadas pelo cio da farntlia) Assim, 0 par de primos Susan e Harvey nao prove 0 mesmo conjunto de servigos (isto ¢, o mesmo modelo [79S __Redes de computedores ¢ 0 Internet de servigo) oferecido por Ann e Bill. De uma maneira andloga, uma rede de computadores pode disponibi- lizar varios protocolos de transporte, em que cada um oferece um modlelo de servigo diferente as aplicacoes. Os possiveis servicos que Ann ¢ Bill podem fornecer sio claramente limitados pelos possiveis servicos que 05 correios fornecem. Por exemplo, s¢ 0 servico postal nio estipula um prazo maximo para entregar a correspondencia entre as duas casas (digamos, trés dias), nto ndo ha nenhuma possibilidade de Ann e Bill, definirem um atraso maximo para a entrega da correspondéncia entre qualquer par de primos. De maneira semelhante, os servicos que um protocolo de transporte pode fornecer sao freqientemente limitados pelo modelo de servico do protocolo subjacente da camada de rede. Se o protocolo de camada de rede nao puder dar garantias contra atraso ou garantias de largura de banda para segmentos de camada de transporte envia- dos entre hospedeiros, entio o protocolo de camada de transporte nao poderd dar essas mesmas garantias| para mensagens de aplicacio enviadas entre processos. No entanto, certos servicos paciem ser oferecidos por um protocolo de transporte mesmo quando 0 pro- tocolo de rede subjacente nao oferece o servico correspondente na camada de rede. Por exemplo, como vere ‘mos neste capitulo, um protocolo de transporte pode oferecer servico confidvel de transfertncia de dados a uma aplicagio mesmo quando o protocolo subjacente da rede nao € contfidvel, isto é, mesmo quando o pro- tocolo de rede perde, embaralha ou duplica pacotes. Como outro exemplo (que exploraremos no Capitulo 8, quando discutirmos seguranca de rede), um protocolo de transporte pode usar criptografia para garantir aque as mensagens da aplicacao nao sejam lidas por intrusos mesmo quando a camada de rede nao puder gatantir o sigilo de segmentos de camada de transporte. 3.1.2. Visio geal da camade de transport na Ineret Lembre-se de que a Internet — e, de maneira mais geral, a rede TCP/AP — disponibiliza dois protoco- los de transporte distintos para a camada de aplicacao. Um deles € 0 UDP (User Datagram Protocol — Protocolo de Datagrama de Usuario), que prove a aplicacdo solicitante um servigo nao confiével, nao orien- tado para conexo. O segundo desses protocolos € 0 TCP (Transmission Control Protocol — Protocolo de Controle de Transmissio), que prove a aplicacdo solicitante um servigo confiével, orientado para conexio. Ao projetar uma aplicacio de rede, o eriador da aplicacio deve especificar um desses dois protocolos de transporte. Como vimos nas segdes 2.7 ¢ 2.8, 0 desenvolvedor da aplicagdo escolhe entre o UDP eo TCP a0 eriar sockets. Para simplificar a terminologia, quando no contexto da Intemet, faremos alusio ao pacote de camada de transporte como um segmtento, Devemos mencionar, contudo, que a literatura da Internet (por exemplo, 05 RFCs) também se refere ao pacote de camada de transporte para TCP como um segmento, mas muitas vvezes se refere ao pacote para UDP como um daiagrama. Porém, essa mesma literatura também usa 0 termo datagrama para 0 pacote de camada de rede! Como este ¢ ur livro de introduc2o a redes de computadares, acreditamos que sera menos confuso se nos referirmos a ambos os pacotes TCP e UDP como segmentos, reservaremos o termo datagrama para o pacote de camada de rede. Antes de continuarmos com nossa breve apresentago do UDP e do TCE, ¢ util dizer algumas palavras sobre a camada de rede da Internet. (A camada de rede ¢ examinada detalhadamente no Capitulo 4.) 0 pro- tocolo de camada de rede da Internet tem um nome —IP, que quer dizer Internet Protocol. O IP prove comu- nicacéo Iogica entre hospedeiros. O modelo de servico do IP € um servigo de entrega de melhor esforco, © que significa que o IP faz o ‘melhor esforco" para levar segmentos entre hospedciros comunicantes, mas nndo dé nenhuma garantia. Em particular, o IF nao gerante a entrega de segmentos, a entrega ordenada de segmentos ¢ tampouco a integridade dos dades nes segmentos. Por essas razves, ele ¢ denomiinado um ser ‘vigo nao conflavel. Mencionamos também neste livro que cada hospedeiro tem, no minimo, um enderego de camada de rede, denominado endereco IP Examinaremos enderegamento IP detalhadamente no Capitulo 4. Para este capftulo, precisamos apenas ter em mente que cada hospedeiro tem um endereco IP. Agora que abordamos ligeiramente o modelo de servico IP, vamos resumir 0s modelos de servico pro- vidos por UDP e TCP.A responsdbilidade fundamental do UDP e do TCP ¢ ampliar o servigo de entrega IP Capitulo 3 Cameda de transporte 147) centre dois sistemas finais para um servico de entrega entre dois processos que rodam nos sistemas finsis. A ampliagio da entrega hospedeito a hospedeiro pata entrega processo a processo € denominada multiplexa- ‘4o/demultiplexagao de camada de transporte. Discutiremos multiplexagao e demultiplexacao de cama- da de transporte na proxima seco. © UDP e 0 TCP também fornecem verificagao de integridade a0 incluir campos de deteccao de erros nos cabecalhos de seus segmentos, Esses dois servicos minimos de camada de transporte — entrega de dados processo a processo € verificacio de erros — sio 0s tinicos que o UDP for- rece! Em particular, como 0 IR, o UDP ¢ um servico nao confidvel — ele nao garante que os dados envia- dos por um processo cheguem (quando chegam!) intactos co processo destinatario. O UDP sera diseutido detalhadamente na Seca0 33. O TCR, por outro lado, oferece varios servicos adicionais as aplicacées. Primeiramente, ¢ mais impor- tante, ele prové transferéncia confiavel de dados. Usando controle de fluxo, mimeros de seqdéncia, reeo- nhecimentos ¢ temporizadores (técnicas que exploraremos detalhadamente neste capitulo), o protocolo assegura que os dados sejam entregues do processo remetente a0 processo destinatario corretamente e em. ordem. Assim, o TCP converte 0 servico nao confiavel do TP entre sistemas finais em um servigo confidvel de transporte de daclos entre processos. Fle também prove controle de congestionamento. O controle de congestionamento nao € tanto um servico fornecido & aplicacao solicitante; € mais um servigo dirigido & Internet como um todo — para o bem geral. Em termos genéricos, o controle de congestionamento do TCP evita que qualquer outra conexdo TCP abarrote 05 enlaces ¢ comutadores entre hospedeiros comunicantes com uma quantidade excessiva de trafego. Em principio, 0 TCP permite que conexbes TCP trafegando por uum enlace de rede congestionado compartillhem em pe de igualdade a largura de banda daquele enlace. Isso € feito pela regulagem da taxa com a qual lado remetente do TCP pode enviar trafego para dentro da rede. 0 trafego UDR, por outro lado, no é regulado, Uma aplicagio que usa transporte UDP pode enviar tréfego a taxa que quiser, pelo tempo que quiser. Um protocolo que fornece transferencia confiavel de dados e controle de congestionamento €, neces- sariamente, complexo. Precisaremos de varias secbes para detalhar os principios da transferéncia confivel de dados e do controle de congestionamento, bem como de sexes adicionais para explicar 0 protocolo TCP Esses t6picos sio analisados nas segses 3.4 a 3.8. A abordagem escolhida neste capitulo €alternar entre prin- cipios bisicos e 0 protocolo TCP Por exemplo, discutiremos primeiramente a transferéncia confidvel de dados ‘em Ambito geral e, em seguida, como o TCP fomece especificamente a transferéncia confivel de dados. De ‘maneira semelhante, discutiremos inicialmente 0 controle de congestionamento em ambito geral e, em segui- da, como o TCP realiza 0 controle de congestionamento. Mas, antes de chegarmos a essa parte boa, vamos: examinar, primeiramente, multiplexacao/demultiplexacao na camada de transporte. 3.2 Multiplexacao e demultiplexacio Nesta secao, discutiremos multiplexacao e demultiplexacao na camada de transporte, isto €, a ampliaga0 do servigo de entrega hospedeiro a hospedeiro provido pela camada de rede para um servigo de entrega pro- cesso a processo para aplicacdes que rodam nesses hospedeiros. Para manter a discussio em nivel concreto, ‘vamos examinar esse servigo basico da camada de transporte no contexto da Internet. Enfatizamos, contudo, que o servigo de multiplexacto/demultiplexagso ¢ necessério para todas as redes de computadores. No hospedeiro de destino, a camada de transporte recebe segmentos da camada de rede logo abaixo dela e tem a responsabilidade de entregar os dados desses segmentos ao processo de aplicacao apropriado que roda no hospedeiro. Vamos examinar um exemplo. Suponha que voct esteja sentado a frente de seu computador, descarregando paginas Web enquanto roda uma sessio FTP e duas sess6es Telnet. Por conse- gutinte, voce tem quatro processos de aplicacao de rede em execucdo — dois processos Telnet, um proces- so FTP e um processo HTTP. Quando a camada de transporte em seu computador receber dados da cama- da de rede abaixo dela, precisard direcionar os dados recebidos 2 um desses quatro processos. Vamos ver agora como isso ¢ feito. [7A8___Redes de computedores ¢ 0 Internet aplicacao CR Fe) Arlieagao Fa Apleaceo Trenpore f| [SP renner Rede Rede Enlace de dador | fstoce de daa Tica Tice Legend: J rrecesso Misocker Figora 3.2 Woligleoyio demoliplnogn na comede de rorsporie Em primeiro lugar, lembre-se de que dissemos, nas segdes 2.7 ¢ 2.8, que um processo (como parte de uma aplicagao de rede) pode ter um ou mais sockets, portas pelas quais dados passam da rede para o pro- cesso e do processo para a rede, Assim, como mostra a Figura 3.2, a camada de transporte do hospedeito destinatario na verdade nao entrega dados diretamente @ um processo, mas a um socket intermedidtio. ‘Como, a qualquer dado instante, pode haver mais de um socket no hospedeiro destinatério, cada um tem ‘um identificador exclusivo. O formato do identificador depende de o socket ser UDP ou TCP, como diseu- tiremos em breve, Agora, vamos considerar como um hospedeiro destinatério direciona a porta correta um segmento de camada de transporte que chega. Cada segmento de camada de transporte tem um conjunto de campos para ssa finalidade. Na extremidade receptora, a camada de transporte examina esses campos para identificar a porta receptora e direcionar o segmento a esse socket. A tarefi de entregar os dados contidos em um seg- mento da camada de transporte 4 porta correta € denominada demultiplexago. O trabalho de reunir, no hospedeiro de origem, porcoes de dados provententes de diferentes portas, encapsullar cada porcao de dados com informagbes de cabecalho (que mais tarde sera0 usadas na demultiplexago) para eriar segmentos, € passar esses segmentos para a camada de rede € denominada multiplexagao, Note que a camada de trans- porte do hospedeiro que esta no meio da Figura 3.2 tem de demultiplexar segmentos que chegam da cama- da de rede abaixo para os processos P; ou P, acima; isso ¢ feito direcionando a porta correspondente do pro-

Você também pode gostar