Sei sulla pagina 1di 25

ModeloCliente/Servidor

AmaioriadasaplicaesdaInternetutilizamomodelode interaochamadocliente/servidor.

Clienteumprograma(software)executadoemumhost quesolicitainformaesaoutroprograma,normalmente atravsdarede.Exemplosdeprogramacliente:navegador Web(InternetExplorer,Firefox). Servidorumprogramaqueficaemespera,aguardando solicitaesdeclientesequeforneceosdadossolicitados quandorecebeumasolicitaodeumcliente(Ex.de servidor:servidoresWebApacheeIIS).

MarceloZ.Silva/BSIRedesI

ModeloCliente/Servidor

MarceloZ.Silva/BSIRedesI

ModeloCliente/Servidor

Outrosexemplosdeaplicaesqueutilizamomodelo cliente/servidor:

Email(SMTP) Transfernciadearquivos(FTP) Terminalremoto(telneteSSH) Sistemadenomes(DNS) Bancosdedados(SQL) etc

MarceloZ.Silva/BSIRedesI

ModeloCliente/Servidor

Caractersticasdeprogramasdotipocliente:

Iniciaasolicitao; Aguardapelaresposta; Normalmenteinteragecomumnmeropequenode servidoresaomesmotempo; passivo(aguardasolicitaesdosclientes); Quandorecebeumasolitao,processaaeenviaresposta; Podeinteragircomumgrandenmerodeclientesao mesmotempo.


MarceloZ.Silva/BSIRedesI 4

Caractersticasdeprogramasdotiposervidor:

ModeloPeertoPeer(P2P)

Outromodelodeinteraoentrehostsemumaredeo chamadoPeertoPeer(PontoaPonto),freqentemente abreviadocomoP2P. Osprogramasqueoperamutilizandoessemodeloso,ao mesmotempo,clienteeservidor. ExemplodeservioP2P:compartilhamentodearquivos.

MarceloZ.Silva/BSIRedesI

ModelodeCamadasTCP/IP

MarceloZ.Silva/BSIRedesI

ProtocolosdaCamadadeTransporte

OsserviosqueoprotocoloIP,dacamadaderede,no fornecepodemseroferecidospelosprotocolosdacamadade transporte(camada4). Osdoisprincipaisprotocolosdacamadadetransportedo modeloTCP/IPso:


TCPTransmissionControlProtocol UDPUserDatagramProtocol

Aseguirsomostradososformatosdessesdoisprotocolos:

MarceloZ.Silva/BSIRedesI

PacoteTCP

MarceloZ.Silva/BSIRedesI

PacoteUDP

MarceloZ.Silva/BSIRedesI

Encapsulamento(Exemplo)

MarceloZ.Silva/BSIRedesI

10

Encapsulamento(Exemplo)

MarceloZ.Silva/BSIRedesI

11

Encapsulamento(Exemplo)

MarceloZ.Silva/BSIRedesI

12

Portas

Comocitadoanteriormente,clienteseservidoresso programasemexecuoemumhost.Clientesrequisitam informaeseosservidoresasfornecem,comonoexemplono qualumnavegadorweb(clienteweb)requisitaumapgina webaumservidorweb. Muitasvezesosservidoresoferecemdiversostiposde servios,emumamesmamquina,atravsdediferentes protocolos.Ex:


Web(HTTP) Email(SMTP) Nomes(DNS) etc


MarceloZ.Silva/BSIRedesI 13

Portas

Oscomputadoresdeusuriosacessandoaredenormalmente executamdiversosprogramaserecebemvriosfluxosde dadossimultaneamentecomo,porexemplo,carregardiversas pginassimultaneamenteenquantobaixaarquivoseparticipa dechats; Assim,demodoapermitirquetenhamosdiversosfluxos simultneosdeinformaesvindosdediversosservidorespara diversosclientesnocomputadordousurio,existemasPortas. Portassonmerosqueidentificamumcanaldedados entredoishoststrocandoinformaespelarede.

MarceloZ.Silva/BSIRedesI

14

ConexesTCPeUDP

UmaconexoentredoiscomputadoresutilizandoTCP/IP(ou UDP/IP)dadaporquatroinformaes:

EndereoIPdoservidor PortaTCPouUDPdoservidor EndereoIPdocliente PortaTCP/UDPdocliente


IP:200.10.10.2 Porta:80 Cliente IP:70.11.12.13 Porta:X Servidor

MarceloZ.Silva/BSIRedesI

15

PortasEfmeras

Antesdeocorreratrocadeinformaes,apenastrsdasquatro informaesnecessriasestoprestabelecidas:

OendereoIPdoservidor AportaTCPouUDPdoservidor OendereoIPdocliente

Aquartainformao(portadocliente)definidaaleatoriamentee serveeexisteapenasduranteumatrocadeinformaes.Sehouver novatroca,onmerodaportaserprovavalmentediferente. Essaportaaleatriautilizadatemporariamentepelocliente chamadadeportaefmera(ephemeralport).Pelousodo comandonetstatanpodeseverconexesTCPabertas,comsuas portasutilizadas.


MarceloZ.Silva/BSIRedesI 16

PortasBemConhecidas

DiversosserviosdaInternetsobastanteutilizados(WWW,Email, FTP,telnetetc)eporissoosservidoresdessesserviosutilizamum nmerodeportafixoparaoservio. EssesnmerosdeportasfixossoconhecidoscomoPortasBem Conhecidas(WellKnownPorts). Algumasportasbemconhecidas:


HTTP(WWW):Porta80/TCP Email(SMTP):Porta25/TCP Telnet:Porta23/TCP POP3:Porta110/TCP

MarceloZ.Silva/BSIRedesI

17

ProtocoloIPRev.

OprotocoloIP,noprovosseguintesservios:

Garantiadeentrega:odatagramaIPenviadopodeser simplesmenteperdidooudescartado,semqueoprotocolo IPnotifiqueessefato; Integridadedosdados:osdadosdeumdatagramaIP podemestarcorrompidos(estragados); Ordemdeentrega:doisdatagramas,AeB,queforam enviadosnessaordem,podemchegarcomaordemtrocada (BedepoisA); Checagemdeunicidade:possvelquemltiplascpiasde ummesmodatagramasejaentregueaodestinatrio.
MarceloZ.Silva/BSIRedesI 18

DiferenasTCPeUDP

PrincipaisdifererenasentreTCPouUDP:

TCPorientadoaconexoeoUDPnoutilizaconexes

Antesdehavertrocadedadosentredoishostsnecessrioqueocliente abraumaconexoentreelesatravsdeumaseqnciachamada handshakeTCP(descritoaseguir); OTCPprovdiversosserviosadicionaisqueoUDPnoprovmas, justamenteporisso,elemaiscomplexo(emaislento)queoUDP. CasohajaaperdadeumpacoteTCPnocaminhoeelenochegarao destino,osistemaTCPdoremetenteprovidenciaoreenviodopacote perdido.OUDPnotemessafuncionalidade. NmerosdeseqncianocabealhoTCPpermitemqueoreceptordos pacotesordeneosmesmocasocheguemforadeordem.OUDPtambm nopossuiesserecurso.
MarceloZ.Silva/BSIRedesI 19

TCPpesado

TCPconfivel

OspacotesTCPsoordenados

PortasTCPeUDP

OsprincipaiscamposdeumcabealhoTCPouUDPso:

Portadedestino(destinationport):identificaoserviodo servidoraoqualsedesejaconectar(ex:porta80WWW) Portadeorigem(sourceport):identificaaportadocliente aserutilizadapeloservidorpararesponderarequisio feita.

MarceloZ.Silva/BSIRedesI

20

Localhost

Arede128.0.0.0/8especialenoapareceemusona Internet. Elareservadacomolocalnetetodososhostsdessarede sotratadoscomolocalhost,especialmenteoendereo 127.0.0.1. Qualquerconexoparaesseendereoretornadaparao prpriocomputadordeorigem. Ex:ocomandoping 127.0.0.1respondidopelolocalhost

MarceloZ.Silva/BSIRedesI

21

HandshakeTCP

AocontrriodoprotocoloUDP,oprotocoloTCPorientadoa conexo.IssosignificaqueantesdetrocardadosoTCP necessitaabrirumaconexo. Essaconexoestabelecidaatravsdeumasequncia chamadaTCPhandshake(apertodemoTCP)emostrada aseguir. Essaseqnciaenvolveatrocadetrspacoteseporisso chamadodethreewayhandshake(apertodemoemtrs etapas). Opacoteinicialdohandshakechamadopacotede sincronizaoetemobitSYNligado.
MarceloZ.Silva/BSIRedesI 22

HandshakeTCP

t e m p o

MarceloZ.Silva/BSIRedesI

23

EstadosdasPortasTCP

OprotocoloTCPorientadoaconexo,oquesignificaqueantesde havertrocadedadosnecessrioqueumcomputadorestabelea umaconexoTCPcomoutroatravsdohandshakeTCP; QuandoumprogramaaceitareceberconexoemumaportaTCP (servidor)dizemosqueessaportaestemmodoLISTEN (OUVINDO); Quandohumaconexoestabelecidaaconexopassapara ESTABLISHED(ESTABELECIDA); OcomandonetstatadoWindowsedosUnixmostraoestadodas conexes.

MarceloZ.Silva/BSIRedesI

24

Sockets
##EchoServer importsocket host='' port=50000 backlog=5 size=1024 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.bind((host,port)) s.listen(backlog) while1: client,address=s.accept() data=client.recv(size) ifdata: client.send("Vocedisse:") client.send(data) client.close()
MarceloZ.Silva/BSIRedesI 25

Potrebbero piacerti anche