Você está na página 1de 11
Capitulo Camada de aplicactio plicagdes sio a razdo de ser de uma rede de computadores. Se nao fesse possivel inventar aplicacdes tues, nao hnverta necessidae de projewar provocolos de rede para suportt-lss. ‘Nos ululmos 40 anos, foram criadas numerosas aplicacoes de rede engenhosas € maravilhosas. Entre eles estao as aplicacoes clissicas de texto, que se tornaram populares na década de 1970 ¢ 1980: corteio eletronico, acesso a computa- dores remotos, transferencia de arquivo, grupos de discussio e hate-papo e também ume aplicacto que aleancout estrondoso sucesso em meatlos da década de 1990: a World Wide Web, abrangendo a navegaeio na Web, bussa € 0 comércio eetrénico, Duns aplicagées de enorme sucesso também surgiram no final do milénio — mensagem ins- tantanea com lista de amiges e compartithamento P2P de arquivos, assim como muttas aplicagbes de éudi e video, incluindo « telefonia por Internet, transmissto e compartilhamento de video, ridio via Intemet¢ televisto sobre 0 protecolo IP (IPTY). Além disso, a penetragdo crescent ce aeess0 residencial banda larga ea onipresenga de acess0 sem fo estio preparando o terreno para aplicagdes miais modernas e interessuntes no futuro, Neste capitulo estudamos os aspectos conceituais ¢ de implemeniacio de aplicacdes de rede. Comecames definindo conceitos fundamentals de eamada de aplicacio, incluindo servigos de rede exigidos per apicagdes, clientes e servidores, processos ¢ interfaces de eamada de transporte, Examinamos detathadamente vari aplica- c8es de rede, entre clas a Web, e-mail, DNS, compactilhamento de arquivos P2P e tlefonia por Interne P2P. Em segunda, abordamos desenvolvimento de aplicagio de rede por TCP e também por UDP. Em particular, estudamos 0 API socket e examinamos algumas aplieagdes cliente-servidor simples em Java. Apresentamos tam- bém vitios exereicios divertidos e interessantes dle programasio de aplicacdes no final do capitulo. ‘A camada de aplicacto € um lugar particularmente bom para iniclarmos 0 estudo de prowcolos. E terreno familiar, pois conheceimos muitas das aplicacoes que depender dos protocolos que estudaremos. Ela nos dar whoa ideia do que sao protocalos ¢ nos apresentara mnitns axSInioR qur encontraremos navamente quando estudarmos protocols de camadas de transporte, de rede e de enlace 2.1 Principios de aplicacées de rede Suponta que voce tena wma grande idea para uma nova aplicacdo de rede. Essa aplieacao sera, tlvez, umn grande servgo para a humanidade, ou agradar aseu prolessor, ou lari de voce um hiomem (ou mulher) rico), sot simplesmente sera divert desenvolvé-le. Seja qual for sta motivagio, vamos examiinar agora como trans formar aidetaem uma aplicaglo do mundo real © cerne do desenvolvimento de aplicacio de rede € esetever programas que rodem em sistemas fais dife- rentes e se comuniquem entre si pela rede. Por exemplo, na aplicigio Web hi dois programas distintos que se comunicam um com o outro: 6 programa do browser, que roda na méquina do usuario (computador de mesa laptop, PDA, telefone celular e assim por diante); € 0 programa do servidor Web, que roda na maquina do ser- vidor Web. Outro exemplo ¢ umn sistema de compartilhamento de arquivos P2P no qual hi um programa em cach maquina que participa da comunidade de compariithamento de arquivos. Nesse caso, es programas de cada iniguina podem ser semelhantes ou idénties, Portanto, 20 desenvolver sua nova aplicacdo, voce precisard escrever uin software que rode em varles sistem, finals. Esse software poderia ser cido, por exemplo, em C, Java ou Python. limportante: voce nao precisa escrever| programas que executem nes elementos do nucleo de rede, como roteadorese switches. Mesmo se quisesse, voce nao Poderiaescrever programas para esses elementos. Como aprenilemos no Capitulo | e mostramos na Figura 1-24, equi- pamentos de miicleo de rede nito funcionam na camada de aplicacto, mas em camadas mais baixas,especificamente na de rele eabaixo dela. Esse projeto bisico— a saber, canfinar osoltware de aplicacto nos sistem Finis, como mostra 4 Figura 2.1, failton o desenvolvimento ea proliferagto ripidos de uma vesia gama de aplicagdes de laternet. 2.1.1 Arquitetures de oplicacio de redo Antes de mergulhar na codificacao do software, voce devera elaborar um plano geral para a arquitetura da sua aplicacio. Tenha sempre em mente que a arquitetura de uma aplicacao ¢ distintamente diferente da arquite- ‘ura de rede (por exemplo,a arquitetura em cinco camadas da Internet que discutimos no Capitulo 1). Do pont de vista so profissonal que descavolve a a de servigos as aplicagoes. Por outro lado, a arquitetura da aplicagao € projewala pelo descavolvedor ¢ determina como a aplicagao € organizada nos varios sistemas fina. Ao escolher a arquitewura da aplicagao, o desenvolvedor provavelmente aproveitara uma das duas arqultewras mais wulizadas em aplicacoes modernas de rede: @ arqui- tequra cliente-servider ou 2 arquitetura P2P. como, a arquitctura de vede € fina ¢ prove um conjunte capecitico Em uma aruitctura cliente-servidor hé um hospedeiro sempre em funcionamento, denominado servider, que atende a requisigdes de muites outros hospederos, denominados clientes. Estes podem estar em funcionamento 8s vezes ou sempre. Ui exemplo clissico € a aplicagto Web na qual um servider Web que estd sempre em funciona- mento atende a requisicdes de browsers de hospedeiros clientes. Quando recebe uta requisicdo de um objeto de uum hospedeiro cliente, um servidor Web responde enviando o objeto requisitado a ele. Observe que, na arquitetura cliente-servdor, os clientes ni se comunicam diretamente uns com 0s outros: por exemplo, na aplicacao Web, dois browsers mio se comunicam diretamente. Cura caraceristica da arquicetura cliente-servidor & que o servidor tem tam endereso fixo, bem conhecido, denominado endlereco IP (que ciscutiremos em breve). Devido a essa caracte- ristea do servidor ¢ devido ao fato de ele estar sempre em funcionamento, um cliente sempre pode contatil, envizndo um pacore 0 enelereco do servidor. Algumas das aplicagdes mais conhecidas que empregam a arquictura cliente-servidor sto Web, FTP, Telnet e-mail, Ess arquiteura clienteservidor € mostra tat Figura 2.2(3), Em aplicagdes cliente-servidor, muitas vezes acontece de um tnieo hospedeiro servidor ser incapaz de aten- der a todas as requisigbes de seus clientes. Por exemplo, am site Web popular pode ficar rapidamente saturado se tver apenas um servidor para atender a todas as requisigbes. Por essa rato, um grande conjunto de hospe- Aeizos — as vezes coletivamente chamado data center — frequentemente € usido para eriar um servidor virtual poderoso em arquiteturas cliente-servidor. Os servigas de aplicacto baseades na arquitetura cliente-servidor S40 geralmente de infraestrutara intensiva, uma vez que requerem que os provedores de servico comprem, instalem € preservem o server farm. Alem disso, os provedores de servico devem pagar as despeses de interconexao recor- rente¢ largura de banda para enviar e receber dados para e da Intemet. Services populares como mecanisms de busca (por exemplo, © Google). comércio via Internet (por exemplo, Amazon ¢ e-Bay), e-mail haseado na Web (por exemplo, Yahoo Mail), rede social (por exemplo, MySpace € Facebook) ¢ compartlhamento de video (por exemplo, YouTube) exigem muita infraestrutura ¢ sio de fomecimento dispendioso. Em uma arguitetura P2P, ha uma confianga minima (ou nenhuma) nos servidores sempre em [un- cionamento, Em vez disso, a aplicacao utiliza a comunicacio direta entre pares de hospedeitos conectados 18? Nactnal cu Regional ede domestica Alissa EP rere a a ee ka ‘Figura 2.1. A comuticaséo de umo oplcacio ce rede ocone entre stems fincis na ccmad de aplicario alternadamente, denominados pares. Os pares nao sto de propriedade dos provedores de servico, mas 580 controlados por ustirios de computadotes de mesa ¢ laptops, sendo que a maioria dos pares se aloja em. residéncins, universidades e escrit6rios. Como os pares se comunicam sem passar por nenhum servidor dedieado, a arquitetura é denominada pat-a-par (par-to:par — P2P). Muitas das aplicagées de hoje mais populares ¢ de intenso trafego sie basendas nas arquiteturas P2P, incluindo distribuigio de arquivos (por exemplo, BitTorrent), compartilhamente de arquivo (por exemplo, eMule ¢ LimeWire), telefonia por Internet (por exemplo, Skype) ¢ IPTV (por exemplo, PPLive). Essa arquitetura estéilustrada na Figura 2.2 (b), Mencionamos que algumas aplicacées possuem arquiteturas hibridas, combinando elementos cliente- -servidor e P2P. Por exemplo, para muitas aplicacdes de mensagem instantanea, os servidores costumam ey ge (a) Arquitetura ciente-senidor Figura 2.2 (c) Aqatltun clentsenie;() aqutetro FZ? rastrear 0 endereco IP dos ussérios, mas as mensogens de usuitio para usustio sio enviadss diretamente centre 0s hospedeiros do usuario (sem passar por servidores intermedirios). Uma das caracteristicas mais fortes da arquitetura P2P € sua autoescalabilidade. Por exemplo, em uma aplicagio de compartilhamento de arquivo P2P, embora cada par geve uma carga de trabalho solicitando arquivos, cada par também acrescenta ‘apacidade de servigoao sistema dissribuindo arquivos a outros pares. Asarquiteturas P2P também possue uma boa relacio custo-benefici, visto que normalmente nao requerem uma infraestrutura de servidor sign ficativa e uma largura de banda de servidor. A fim de reduztr os custos, 0s proveddores de servico (MSN, ‘Yahoo ete) esto cada vez mais interessados em utilizar arquiteturas P2P para suas aplicacdes [Chuang 2007]. Entretanto, as futuras aplicacées P2P esto diante de trés principais desalios: 1. ISP Amygavel, A maioria dos ISPs residenciats (ncluindo 0 SL. os ISPs a cabo) foram dimensionados para uso dle largura de bancla assimstrica, ou seja, para muito mais trafego de entrada do que de safda. Mas a transmissio de video P2P e as aplicagdes de distribuicao de video transferem o trafego de saida dos servidores para ISPs residenciais, colocand, assim, una pressdo significativa nos ISPs, As futuras aplicagdes P2P precisam ser criadas para que sejam amigaveis aos ISPs [Xie, 2008] 2. Seguranca, Em razao de sua natureza altamente distribu‘da ¢ exposta, as aplicagoes P2P podem ser um 4esaiio para proteger (Loucer, 2002: Yu, 2000; Liang, 2000; Naoumov, 20U0; Uhungel, 2008), 3. Incentivos. O sucesso das futures aplicagdes P2P também depende de usuutrios participativos para ofere- cer largura de band, armazenamente ¢ recursos da computagdo as aplicagdes, um projeto desafiader de incentivo (Feldman, 2005; Piatek, 2008; Aperjis, 2008]. 2.1.2 Comancogio entre processes Antes de construir sua aplicagzo de rede, voce qunbeém precisard ter um entendiimento bisico de como programas que rodam em varios sistemas finais comunicam-se entre si. No jargao de sistemas ‘operacionais, na verdade nao sio programas, mas processos que se comunicam. Um processo pode ser imaginaclo como um programa que esta rodando dentro de um sistema final. Quando os processos esto rodando no mesmo sistema final, eles comunicam-se entre si usando comunicacto interprace: Sos, cujas regras sio determinadas pelo sistema operacional do sistema final. Porém, neste livro, na ‘estamos interessados em como se comunicam pracessos que estio no mesmo hospedeito, mas em como se comunicam processos que rodam em sistemas finais diferentes (com sistemas operacionais potencial- mente diferentes) Eles se comunicam pela troca de mensagens por meioda rede de computadores, Um processo originador cria ia mensagens para a rede; um process0 destinatirio recebe-as possivelmente responde, devolvendo outras A Figura 2.1. mostra que processos se comunicam usando a camada de aplicazio da pilha de cinco camadas da arquitewura, Processos clientes e pracessos servidores. Uma aplicacao de rede consiste em pares de processos que enviam mensagens uns para os outros por meio de uma rede. Por exemplo, na aplicagio Web, o proceso browser de um cliente troca mensagens com 0 processo de tum servidor Web, Em am sistema de comparilhamente de arquivor P2P, um arquivo ¢ wansferido de um proces 0 que es cm um por para outro que std em outto par. Para cada par de processos comunicantes normelmente rotulamos um dos dois processos de cliente ¢ 0 outro, de servider. Na Web, urn browser € um processo cliente ‘€ um servidor Web € um processo servidor. No compantitlamente dle arquives P2P, 0 par que esti enviando o arquivo € rotulado de cliente ¢ o que esta recehendo, de servider. Talvez voce ji tena abservado que, em akgumas aplicagdes, tal como compactithamento de arquivos P2P, tum processo pode ser ambos, cliente servidor. Realmente, um processo em umn sistema de compartilhamento de arquivos P2P pode carregar e descarregar arquivos. Mesmo assim, no contexto de qualquer dada sessao entre tum par de processos, ainda podemos rotular um proceso de cliente e o outro de servidor. Definimos os pracessos cliente ¢ servidor como segue No contento de uma sessdo de comunicagdo entre um par de processes, 0 processo que inicia a comunicagdo (ste ¢, 0 primeiro a contatar 0 outro no inicio da sessdo) ¢ rotulado de cliente. O processo «ue espera ser contatado para iniciar a sessde ¢ 0 Servidor. ‘Na Web, um processo do browser inicia o contato com um processo do servidor Web; por conseguinte, 0 processo do browser ¢ a cliente ¢ 0 processo do servidor Web ¢ 0 servidor. No compartilhamenta de arqui- ‘wos P2P, quando 0 Par A solicita 20 Par B 0 envio de um arquivo especifico, o Par A € cliente enquanto 0 Par B 6 0 servidor no contexto dessa sessio especifica de comunicacio. Quando nio houver possibilidede de confusa, as vezes usaremus tunbén a terminologia “ado cliente ¢ lado servidor de una aplicayio”. No final deste capitulo examinaremos passo a passo unt codigo simples para ambos os lados de aplicacoes de rede: 0 lado cliente ¢ 0 lado servidor. A interface entre o processo e o rede de computadoras. ‘Coma dissemos anteriormente, maioria das aplieagées consiste em pares de procestos comunicantes, senilo que os dois processos de eada par enviam mensagens um para o outre. Qualquer mensagem envieda dde um processo pata um outro tem de passar pela rede subjacente, Um processo envia mensagens para a rede € recebe mensagens dela através de uma interface de software denominada socket. Vames considerar tum analogia que nos auxiliara a entender processos e sockets. Um proceso € anallogo a uma casa e seu socket, a porta da casa, Quando um processo quer enviar uma mensagem a um outro proceso em outro hospedeiro, ele empurra a mensagem pela porta (socket). Esse processo emissor acmite que exista uma infraestrutura de transporte do outro lado ce sua porta que transportard a mensagem pela rece até porta do processo destinatirio, Ao chegar ao hospedeito destinatiio, a mensagem passa através da porta (Boeken) do processo receptor, que entao executa alguma agio sobre a mensagem. |A Figura 23 ilustra a comunicacao por socket entre dois processos que se comunicam pela Internet. (A Figura 23 admite que 0 protocolo de transporte subjacente usado pelos processes ¢ 0 TCP.) Como mostra «sa figura, um socket ¢ a interface entre a camada de aplicacto ¢ a de transporte dentro de uma maquina. também denominado interface de programacao da aplicacdo (application programming interface — APD entre a aplicacio ea rede, visto que o socket ¢ a interface de programacio pela qual as aplicactes de rede sto inseridas na Intemet. © desenvolvedor da apicacio contrela tudo o que existe no lado da camada de aplicaco do socket mas tem pouco controle do ledo da camada de transporte do socket. Os tnicos controles que o desenvolvedor dla apliacao tem do lado da cumada de anspor sio. (1) a escola do protocoio de wausporte e (2), tavez, a ‘apacidade de determinar alguns partmetros da camada de wransporte, tis como tamanho maximo de buffer © de segmentos (a serem aborddes no Capitulo 3), Uma vez escolhido um protocolo de transporte, (se howver «scolha) 0 desenvolvedor constr a aplicacao wsando os servcos da camada de transporte olerecidos por esse procccolo. Examinaremos sockets mals detalhadamemte nas secoes 2.7 ¢ 2.8 3 Services de transporte disponiveis pare aplicacoes LLembte-se de que uim socket € a interface entre o processo da aplicacio ¢ o protocelo de camada de trans porte. aplicagao do lado remetente envia mensagens através do socket, Do outro lade do socket, o protocolo de ‘camada de transporte tem a responsabilidade de levar as mensagens pela rede aé a “porta” do socket destinat ‘Muitas redes, inclusive a Internet, ofereceim mais de um protocolo de camada de transporte. Ao desenvolver uimit aplicacdo. voce deve escolher um dos protocolos de camada de transporte disponiveis, Como fazer esa escolha? ‘© mais provavel € que voet avalie os services provides pelos protocolos de camada de transporte disponivets escola 0 protocolo que melhor atenda As necessidades de sua aplicacio. A situagao é semelhante a escolher trem ‘ou avido como meio de transporte entre dius cidades, Voed tem de escolher wm ou outro, ¢ cada modalidade de transporte olerece servigos diferentes. Por exemplo, 0 trem ofereee a facilidade da partida da chegada no centro da cidade, ao passo que 0 avido oferece menor tempo de viagem, (Quats st0 os servicos que um protocolo da camadia de transporte pode oferecer as aplicacdes que o chammem? Podemos classficar, de manera geral, as pessivelsservicos segundo quatro dimensoes: transfereneta confiavel de dadlos, vazao, temporizacao e seguranicn ‘Transferéncio confidvel de dados ‘Como discutido no Capitulo 1, os pacotes podem se perder dentro de uma rede de computador. Um pacote pode, por exemplo, exceder um butfer em um roteador, ou ser descartado por um hospedeiro ou um roteador Hospedsio Hospedeiro ouserdor ousericer zB e casa ids eae ee (mom) eee = oS =a | =a civ —| yoni see Jue Ses Figura 2.3 ioe: opis, sada pola de tapos spate Capitulo 2 Comade de pos alguns de seus bits terem sido corrompidos. Para muitasaplicacses — como correio eletronico, transferéncia dearquivo, acesso remoto, iranferéncias de documentos da Web eaplicacdes financeiras—a perda de dads pode ter consequéncias devastadoras (no tltimo caso, para o banco e para o cliente!). Assim, para suportaressas apli- ‘eacbes, algo deve ser feito para garantir que os dados enviacos por uma exiremidade da aplicacio sejam enviados correta e completamente para 2 outra extremidade da aplieagio, Se um protocolo fornecer um serviga de rece- bimento de dados garantidos, ele fornecerd uma transferéncia confiavel de dads. Um importante servigo que © protocolo da camada de transporte pode oferecer para uma aplicacio éa transferéncia confiavel de dades processo 4 proceso, Quaid wnt protocolo de transporte oferece esse servo, 0 processo remetente pode passat seus dados para um socket e saier com absoluta confianca que 0s clades chegario sem erro-ao proceso destinatario, Quando um protocolo da camada de transporte nio oferece uma transferéncia confiével de dados, os dados ‘nviados pelo processo remetente podem nunca chegar ao processo destinattio, Iso pode ser accitive! para ap «acoes tlerantes a perda, aplicagdes de mnultimdia como audio/video em tempo real ow audio/video armazensado, que podem tolerar una quantiade de pera de dads. Nessas aplicacdes multimidia, dades perides podem resultar em uma pequena falha durante a execucao do audvovvideo — 0 que nao ¢ um preyunzo erucr Yozao No Capitulo 1 apresentamos © conceit de vazao dispontvel, que, no contexto de sessio da comunicagio centre dois processos ao longo de um caminho de rede, éa taxa 2 qual o processo remetente pode en processo destinatério, Como outras sessbes compartilhario « largura de banda no caminho da rede ¢ estio indo e voltando, a vazio disponivel pode oscilar com o tempo. Essas observacdes levam a outro servico natural que wm provocolo da camada de transpore pode oferecer, ow se}, uma Yazao disponrvel garantida a uma taxa especific. Com tal servico, a aplicacao pode solictar uma vazao garantida de r bitss, € 0 protocolo de transporte garante, ‘entio, que a vazao dispontvel seja sempre rbitss, pelo menos. Tal servigo de vazdo garantida aparece em muuitas aplicacées. Por exemplo, se uma aplicagto de celefonia por Internet codifica yor 32 bitss, ela precisa enviar dados para 4 rede € fazer com que sejain entregues na aplicacto receptora a essa mesina taxa. Se © protocolo de transporte no puder fomecer essa vazd0, «aplicacto precisara codificar a uma taxa menor (e receber vazio sufiekente para suistentar essa taxa de codificucao mats balxa) ou entao desistir, ja que receber metade da vazto de que precisa de nada adianta para essa aplicacao de telefonta por Internet. Aplicacoes que possuam neeesstdade de vazto sao ‘conhecidas camo aplieacdes sensiveis 4 largura de banda, Muitas aplicacées de multimidia existentes sto sensi- veis largura de banda, embora algumas poderao usar téenicas seapiativas de codifieagao para codifiear a wma taxa que correspond A vazie disponivel na ocasito. Embora aplicagées sensiveis & largura de banda possuam, nccessidades espectficas de vazio, a: aplicagdes elasticas podem fazer uso de qualquer quantidade minima ou iixima que por acaso esieja disponivel. Correo eetrénico, transferéneia de arquivos ¢ transferéncias Web so toxlas aplicagbes elisticas. Evidentemente, quanto mais vazio, melhor. Ha wm ditado que diz que “dinheico nunca ¢ demais", nesse caso, podemos dizer que vazio nunca € demats! Temporizocio ‘Um protocolo da camada de transporte pade também oferecer garantias de temparizacao. Como na garantia Je vara, ae gorantize de temporizaghe podem curgiram diversas sepectas e modos. Pademos citar camo exempta «Faro de que cada bit que o remetente insere no socket chega ao socket destinatiio em menos de 100 milsse- ‘gundos depois. Esse servico seria atatvo para apicasées interativas em tempo real, como telefonia por Internet, ambientes virwais, teleconferéncia ¢ jogos mulijogadores, que exigem resirigdes de temporizacae no envio de dos para garantir cicdcin, (Veja Capitulo 7, [Gauthier, 1999; Ramjec, 1994].) Longes atrazos na telsfonia por Internet, por exemplo, tender a resultar em pass artiiiais na conversagao; em um jogo multiusuirio ou ambiente virtual interativo, am longo alraco entre realizar uma acio e ver a reagto do ambiente (por exemplo, 4 reagdo de um outro jogador na outra extremiidade de wma conesao fim a fim) fz com que a aplicagdo paresa ‘menos realists, Para aplicacdes que no sao em tempo real, ¢ sempre prelervel tm alraso menor aw maior, mas ‘ao hi nenhuma limitaga esta aos arasos fim fim, Segurange Por fim, um protocolo de transporte pode oferecer uma aplicaco com um ou mais servicos de seguranga. Por ‘exemple, no hesedeiro remetente, um pretocolo de transperte pode codlficar todos os dados transmitidos pelo processo remetente ¢, no hospedeiro destinatirio, 0 protocolo da eamoda de transporte pode codificar 05 dados antes de envid-los ao processo destinatérie. Tal servigo pede oferecersgilo entre os dois processos, mesmo que os ods scjann, de algun modo, observados c ete € destinatiiv. Uin protoculo de uansporte pode, além do sigilo, fornecer outros services de seguranca, incluindo integridade dos dadbos e autenticagio do Ponto terminal, assuntos que serio abordads em detalhes no Capitulo 8. Fe os processes ru 2.1.4 Servigas de transporte provides pela Internat ALE aqui, considerames servicos de transportes que uma rede de computaclores poderia oferever em geral. ‘Vamos agora nos aprofundar mais no assunto ¢ analisar 6 tipo de suporte de aplieacao prevido pela Internet Alntemnet (¢, em umn amplo sentido, as redes TCPAP) disponibiliza dois protocolos de transporte para aplicacoes, ‘© UDP € 0 TCP. Quando voce (como wm eriador de aplicacao) cria uma nova aplicacto de rede para a Internet, uma das primeiras decisdesa ser tomada é usar o UDP ou 6 TCP. Cada um desses protecolos oferece um conjunto dilerente de servigos para as aplicagées solicitantes. A Figura 2.4 mesira os requisitos do servico para algumas aplicagdes selecionadas Services do TCP (O modelo de servico TCP inclu! um servigo orientado para conexao e um servico confiavel de transferencia de dados. Quando uma aplicacio solictta 0 TCP como seu protacolo de transporte, recebe dele ambos os servigas. HHH) Servizo orientado para conexto: © TCP faz com que o cliente © Servidor toquem informagées de controle de camada de transporte antes que as mensagens de camadla de aplicagao comecer a Muir, Ease procedimento de apresentago, por assim dizer, alerta 0 cliente eo servidor, permitindo que cles ‘se preparom para una enxurrada de pacotes. Apos a fase de apresentagdo, dizemes que existe una conexie TCP entre ¢s sockets dos dois processs. A conext ¢ fll duplex (simultinea), visto que os dois processos podem enviar mensagens um a0 outro pela conexto ao mesmo tempo. Quando termi- na de enviar mensagens, a aplicagao deve inerromper a conexto, Esse servigo € chamado de servigo ‘orientado para conexio", © nao servo “de conexao", porque os dots processes estio conectades de sum modo muito soto. No Capitulo 3, discutitemos detalhadamente sersigo ontentado para conexao € examinaremos como ele¢ implementado, WD Servico confiavel de transporte: 0s peocessos comunicantes podem confiar no TCP para a entregn de todos os dados enviados sem erro ena ordem correta. Quando um lado da aplicagao passa uma cadeia Pelco Fede de dados argu de banda Serstiidede wo areso Trost de aias Sen pra Bisa No Fal Se pn ito Nia Does WO Sempra Bis (os ip) Nio Telerin vi te/denorfaéaca Tart & prdo eyes. le Sim: ios de segundo Tada enor Teo 3 ye gut osn Sin dg os esses Teen yea Ars ts 10s Sin dis eon ‘esse insures Sen plo iso Sino Figura 24 Reise oars de de sedonodos SUE de bytes para dentro de um socket, pode contar com o TCP para entregar a mesma caulela de dados 20 socket receptor, sem falta de bytes nem bytes duplicados. (© TCP também incl um mecanismo de controle de congestionamento, umn servigo voliado a0 bem-ostar {eral da Internet e n2o 20 benelicio direto dos processos comunicantes. © mecanismo de controle de congesti namento do TCP limita a capacidade de transmissio de um provesso (cliente ou servider) quando a rede esti

Você também pode gostar