Apost||a de kedes de Computadores rof 1|ago nenr|que 4 Bimestre
1 Serv|os oferec|dos pe|a Internet s ap||caes
A lnLerneL ou mals generlcamenLe as redes 1C/l provem um canal de comunlcao lglco enLre um processo cllenLe rodando em uma mqulna cllenLe e um processo servldor rodando em uma mqulna servldora permlLlndo que as apllcaes dlsLrlbuldas Lroquem lnformaes enLre sl ara usar esLe canal de comunlcao os programas de apllcao Lm uma porLa cllenLe aLraves da qual o servlo e sollclLado e uma porLa servldora que reLorna o servlo requlslLado CuanLo ao Llpo de servlo sollclLado pelas apllcaes rede podemos Ler ervlo Llpo pedldo/resposLa(requesL/reply) ervlo Llpo fluxo de dados Lempo real(audlo/vldeo sLreamlng) A paglnao na Web e um exemplo de servlo Llpo pedldo/resposLa onde um processo cllenLe sollclLa uma lnformao e um processo servldor fornece a lnformao sollclLada no h resLrles de Lempo enLre o pedldo e a resposLa enLreLanLo e necessrlo que a lnformao LransmlLlda se[a llvre de errosuma conversa Lelefnlca vla lnLerneL e um exemplo de fluxo de dados em Lempo real nesLe caso h resLrles Lemporals na Lransmlsso por ouLro lado um pequeno sllnclo ocaslonado por um erro ou ruldo pode no ser um problema grave para o enLendlmenLo geral da conversa ara esLes dols Llpos de requlsles de servlos a lnLerneL dlspe de dols Llpos de servlos de LransporLe orlenLado a conexo e no orlenLado a conexo 11 Serv|o garant|do e or|entado a conexo C servlo garanLldo e orlenLado a conexo Lem o nome de1C ( 1ransmlsslon ConLrol roLocol) Cuando uma apllcao usa o servlo orlenLado a conexo o cllenLe e o servldor Lrocam pacoLes de conLrole enLre sl anLes de envlarem os pacoLes de dados lsLo e chamado de procedlmenLo de esLabeleclmenLo de conexo ( handshaklng) onde se esLabelecem os parmeLros para a comunlcao or exemplo mensagens 1C so Lrocadas enLre as parLes de uma lnLerao WWW para esLabelecer a conexo enLre o cllenLe e o servldor uma vez concluldo o handshaklng a conexo e dlLa esLabeleclda e os dols slsLemas Lermlnals podem Lrocar dados C servlo de Lransferncla garanLlda que assegura que os dados Lrocados so llvres de erro o que e conseguldo a parLlr de mensagens de reconheclmenLo e reLransmlsso de pacoLes or exemplo quando um slsLema Lermlnal 8 recebe um pacoLe de A ele envla um reconheclmenLo quando o slsLema Lermlnal A recebe o reconheclmenLo ele sabe que o pacoLe que ele envlou fol correLamenLe recebldo caso A no recebe conflrmao ele assume que o pacoLe no fol recebldo por 8 e reLransmlLe o pacoLe Alem das caracLerlsLlcas clLadas o 1C lnLegra alnda um servlo de conLrole de fluxo que assegura que nenhum dos lados da comunlcao envle pacoLes rpldo demals pols uma apllcao em um lado pode no consegulr processar a lnformao na velocldade que esL recebendo e um servlo de conLrole de congesLo a[uda a prevenlr congesLlonamenLos na rede 12 Serv|o no garant|do e no or|entado a conexo no servlo no orlenLado a conexo no h handshaklng quando um lado de uma apllcao quer envlar pacoLes ao ouLro lado ele slmplesmenLe envla os pacoLes Como o servlo no e garanLldo Lambem no h reconheclmenLo de forma que a fonLe nunca Lem cerLeza que o pacoLe fol recebldo pelo desLlnaLrlo 1ambem no h nenhum conLrole de fluxo ou congesLo Como o servlo e mals slmples os dados podem ser envlados mals rapldamenLe na lnLerneL o servlo no garanLldo e no orlenLado a conexo Lem o nome de uu (user uaLagram roLocol) As apllcaes mals famlllares da lnLerneL usam o 1C como por exemplo 1elneL correlo eleLrnlco Lransferncla de arqulvos e WWW 1odavla exlsLem vrlas apllcaes usam o uu lnclulndo apllcaes emergenLes como apllcaes mulLlmldla voz sobre lnLerneL udlo e vldeo conferncla 121 Caracter|st|cas Gera|s do rotoco|o UD C proLocolo uu e um proLocolo de camada 4 (de LransporLe) no modelo Cl que se caracLerlza por ser mals slmples que o 1C o ouLro proLocolo da camada 4 LnquanLo o 1C se preocupa com a conexo e a chegada correLa dos dados no desLlno o uu por ser mals slmples no Lem a mesma preocupao porLanLo ele no verlflca o receblmenLo dos dados pelo desLlno (Lambem no possul o servlo de reenvlo) no ordena as mensagens ou se[a elas vo sendo agrupadas conforme vo chegando no conLrola o fluxo de lnformaes e no verlflca a lnLegrldade dos dados para o desLlno As posslbllldades de o desLlno no receber os dados so vrlas como por exemplo perder os dados dupllcar os dados ou agrupar de forma errada Lssa slmpllcldade do uu pode parecer prlmelra vlsLa um pouco esLranha e provavelmenLe um lelgo dlrla se exlsLe um proLocolo como o 1C que garanLe a chegada correLa dos dados no desLlno para que usarmos o uu? A resposLa e fcll por que se o proLocolo e slmples ele Lambem e menor enLo devemos ver lsLo como ganho de velocldade na Lransmlsso e recepo de dados algo que nos dlas aLuals se Lorna cada vez mals lmporLanLe L claro que em mulLas das vezes o pacoLe pode no chegar ao desLlno mas Lambem devemos avallar que s valer a pena envlar pacoLes uLlllzando o uu quando esLe for pequeno nesLe caso menor que 312k8 Cu se[a no ser em uma Lransferncla de arqulvos como em um download usual que ser recomendado a uLlllzao do uu como melo de LransporLe" uma ouLra caracLerlsLlca lmporLanLe do uu e nesLe ponLo semelhanLe ao 1C e que ele se basela em porLas para a Lroca de lnformaes desLa forma e aLrlbulda uma porLa ao desLlno e uma porLa a orlgem
Cs campos porta de or|gem e porta de dest|no especlflcam que porLas que sero uLlllzadas na comunlcao C campo tamanho descreve quanLos byLes Ler o pacoLe compleLo C campo checksum e opclonal e faz uma soma verlflcadora para garanLlr que os dados esLaro llvres de erros 2 Nc|eo da Internet C nucleo da rede e formado pela malha de roLeadores responsvel por lnLerllgar as redes enLre sl formando as llgaes lnLerredes ou lnLerneL no nucleo da rede as lnformaes Lrafegam na forma de pacoLes de dados chamados de daLagramas Lm cada roLeador os daLagramas que chegam nos enlaces de enLrada so armazenados e encamlnhados (sLoreand forward) aos enlaces de salda segulndo de roLeador em roLeador aLe seu desLlno C proLocolo l e o responsvel por esLabelecer a roLa pela qual segulr cada daLagrama na malha de roLeadores da lnLerneL LsLa roLa e consLrulda Lendo como base o endereo de desLlno de cada pacoLe conhecldo como endereo l Como vlsLo anLerlormenLe os servlos de LransporLe da lnLerneL aLraves dos proLocolos 1C e uu provem o servlo de comunlcao flmaflm enLre as porLas dos processos de apllcao rodando em dols dlferenLes slsLemas Lermlnals ( hosLs) ara lsLo o 1C e uu usam os servlos do proLocolo l a qual prov um servlo de comunlcao para os daLagramas enLre os dols compuLadores remoLos envolvendo cada roLeador da rede no camlnho enLre o compuLador orlgem e o desLlno da comunlcao 3 rotoco|os que Ut|||zam o UD Como dlLo anLerlormenLe o proLocolo uu e slmples se comparado ao 1C enLo somenLe alguns proLocolos uLlllzam o uu para LransporLe de dados que so o 1l1 ( 1rlvlal llle 1ransfer roLocol ) nM ( lmple neLwork ManagemenL roLocol) uPC ( uynamlc PosL ConLrol roLocol) un (uomaln name ervlce) 31 1I1 LsLe proLocolo e semelhanLe ao l1 porem sem conflrmao de receblmenLo pelo desLlno ou reenvlo L comumenLe usado por admlnlsLradores de rede ao se fazer o download do lC (lnLerneLwork CperaLlonal ysLem) de um roLeador ou do arqulvo de lnlclallzao 32 SNM L uLlllzado para conflgurar dlsposlLlvos como swlLches ou roLeadores e permlLe que esLes envlem o seu sLaLus C problema e que os hackers uLlllzam esLe proLocolo para obLer lnformaes sobre o slsLema como as Labelas de roLeamenLo As ulLlmas verses do nM podem fazer crlpLografla md3 porem a malorla alnda usa verses anLlgas que passa o password em formaLo de LexLo
33 DnC L uLlllzado em redes que sofrem consLanLes alLeraes na Lopologla e o admlnlsLrador no pode verlflcar o l (lnLerneL roLocol) de cada mqulna devldo a enorme quanLldade enLo o roLeador dlsLrlbul ls auLomaLlcamenLe para as esLaes Como esLa aLrlbulo e felLa com a uLlllzao do uu caso ha[a algum problema o usurlo Ler que pedlr o reenvlo ou relnlclar a mqulna C unlco problema Lecnlco desLe proLocolo e que como os ls so aLrlbuldos aleaLorlamenLe flca mals dlflcll para o admlnlsLrador Ler conLrole sobre o que cada hosL esL fazendo 34 DNS um LraduLor dos nomes na rede na qual cada l pode ser correspondldo com um nome nesLe caso lmaglnemos que um usurlo esLe[a acessando a lnLerneL e dese[a lr para ouLra pglna Lle dlglLa o endereo no campo aproprlado e enLra e a pglna por acaso no abrlr por no Ler reconhecldo o endereo o problema poder Ler sldo no envlo ou resposLa do servldor de nomes uLlllzando o uu e enLo o usurlo LenLar de novo acessar a pglna e provavelmenLe consegulr Agora lmaglne que lsLo fosse felLo com o 1C provavelmenLe esLa falha no ocorrerla porem o Lempo gasLo para o compuLador saber qual l se refere quele nome serla lnlmaglnvel para as necessldades aLuals 4 - Portas TCP e portas UDP
Agora [ conhecemos algumas caracLerlsLlcas dos proLocolos 1C e uu [ podemos
enLender o concelLo de porLas ara uma compreenso mals fcll usaremos o segulnLe exemplo uponha que nesLe momenLo voc esLe[a usando um navegador de lnLerneL um cllenLe de emall e um sofLware de comunlcao lnsLanLnea 1odas essas apllcaes fazem uso da sua conexo lnLerneL mas como o compuLador faz para saber quals os dados que perLencem a cada programa? lmples pelo numero da porLa que cada um uLlllza or exemplo se voc esL usando um programa de l1 (llle 1ransfer roLocol) a conexo lnLerneL e felLa pela porLa 1C 21 que e uma porLa convenclonada a esLe proLocolo e esLlver balxando arqulvos pelo 8lL1orrenL uma das porLas que vo de 6881 6889 esLar sendo uLlllzada para Lal aLlvldade Compare seu compuLador a um predlo Ao chegar uma correspondncla e necessrlo saber a qual aparLamenLo enLregla e no envelope esLlver escrlLo que o desLlno e o aparLamenLo numero 123 onde reslde lulano basLa fazer a enLrega Lm seu compuLador o concelLo e o mesmo basLa subsLlLulr a correspondncla pelo pacoLe de dados o aparLamenLo pela porLa e o lulano pelo programa no enLanLo e lmporLanLe frlsar que um apllcaLlvo pode uLlllzar mals de uma porLa Ao Lodo e posslvel usar 63336 porLas 1C e uu comeando em 1 1anLo no proLocolo 1C como no uu e comum o uso das porLas de 1 a 1024 [ que a apllcao desLas e padronlzada pela lAnA (lnLerneL Asslgned numbers AuLhorlLy)
ue acordo com essa enLldade els algumas das porLas 1C mals uLlllzadas 21 l1 23 1elneL 23 M1 80 P11 110 C3 143 lMA 443 P11 L graas ao concelLo de porLas que voc consegue uLlllzar vrlos servlos ao mesmo Lempo na lnLerneL no enLanLo lsso Lambem pode represenLar um perlgo razo pela qual e lmporLanLe Ler conLrole sob o Lrfego de dados nas porLas 1C e uu C uso de flrewalls por exemplo a[uda a lmpedlr que apllcaes mallclosas uLlllzem porLas aberLas no compuLador para aLlvldades pre[udlclals Alem dlsso um admlnlsLrador de redes pode fazer conflguraes manuals para que deLermlnadas porLas flquem bloqueadas lmpedlndo a conexo de apllcaLlvos que fazem uso desLas - Sockets A comunlcao enLre processos de sofLware Lornouse lndlspensvel nos slsLemas aLuals C mecanlsmo mals uLlllzado aLualmenLe para posslblllLar comunlcao enLre apllcaes e chamado sockeL Algumas llnguagens de programao por exemplo o !ava oferece os segulnLes modos de uLlllzao de sockeLs o modo orlenLado a conexo que funclona sobre o proLocolo 1C ( 1ransmlsslon ConLrol proLocol ou proLocolo de conLrole de Lransmlsso) e o modo orlenLado a daLagrama que funclona sobre o proLocolo uu (user uaLagram roLocol ou proLocolo de daLagrama de usurlos) Cs dols modos funclonam sobre o proLocolo l (lnLerneL roLocol) Cada um desses modos Lem sua apllcabllldade e possuem vanLagens e desvanLagens em sua uLlllzao 1 Sockets 1C]I C processo de comunlcao no modo orlenLado conexo ocorre da segulnLe forma C servldor escolhe uma deLermlnada porLa e flca aguardando conexes nesLa porLa C cllenLe deve saber prevlamenLe qual a mqulna servldora (hosL) e a porLa que o servldor esL aguardando conexes e nenhum problema ocorrer o servldor acelLa a conexo gerando um sockeL em uma porLa qualquer do lado servldor crlando asslm um canal de comunlcao enLre o cllenLe e o servldor 1lplcamenLe o comporLamenLo do servldor e flcar em um loop aguardando novas conexes e gerando sockeLs para aLender as sollclLaes de cllenLes 2 Sockets UD]I ockeLs uu/l so mulLo mals rpldos que sockeLs 1C/l o mals slmples porem menos conflvels Lm uu no Lemos o esLabeleclmenLo de conexo sendo que a comunlcao ocorre apenas com o envlo de mensagens uma mensagem e um daLagrama que e composLo de um remeLenLe (sender) um desLlnaLrlo ou recepLor (recelver) e a mensagem (conLenL) Lm uu caso o desLlnaLrlo no esLe[a aguardando uma mensagem ela e perdlda 21 Mu|t|cast C proLocolo uu suporLa o envlo de uma mensagem para um grupo de desLlnaLrlos ao lnves de um unlco desLlnaLrlo lsLo e denomlnado mulLlcasL um grupo mulLlcasL e especlflcado por um endereo l de classe u" (224001 aLe 239233233234 lncluslve) e uma porLa uu Classes l deflnem ranges de endereos C endereo 224000 e reservado e no deve ser uLlllzado da mesma forma que o 239233233233 6 1raba|ho 4 8|mestre uemonsLrar aLraves de uma llnguagem de programao o funclonamenLo das conexes 1C(CrlenLado a conexo) e uu(no orlenLado a conexo) uLlllzando sockeLs uever mosLrar rodando a demonsLrao(ofLware) e devldamenLe comenLado o que cada bloco ou llnha de codlgo faz Ia|or 2 ( Lste traba|ho poder ser fe|to em sa|a de au|a nas prox|mas au|as correntes) Mals deLalhes ser expllcado em sala de aula