Você está na página 1de 88

unesp

UNIVERSIDADE ESTADUAL PAULISTA

REDES DE COMPUTADORES
Anotaes de Aula e Slides
8a. Edio - 2009

~2~
Camada de Aplicao

http://adriano.acmesecurity.org/redes

Adriano Mauro Cansian


adriano@acmesecurity.org

So Jos do Rio Preto

Bacharelado em Cincias da Computao


MMIX

Prefcio 2009
Este o material didtico contendo a coleo de slides e notas de aula do Curso de Redes de Computadores para o primeiro semestre de 2009, na UNESP Universidade Estadual Paulista, Campus de So Jos do Rio Preto, sob responsabilidade do Professor Adriano Mauro Cansian. Este material NO substitui o livro texto adotado no curso, devendo ser usado de modo a complement-lo, e em conjunto com outras referncias recomendadas. A principal funo destas notas de aula facilitar a realizao das anotaes dos tpicos mais importantes discutidos em sala de aula, agilizando assim o andamento do curso para os alunos.A primeira a verso foi utilizada no primeiro semestre de 1998. Esta a 8 . Edio - 2009, com aprimoramentos, novos tpicos e abordagens atualizadas Estas notas de aula podem diferir ligeiramente do material usado pelo professor durante a aula em sala. Isso porque o professor muitas vezes acaba inserindo outros materiais de ltima hora, para melhorar a qualidade e atualizar o material, visand sempre a melhor expresso dos temas aos alunos. Portanto, fortemente recomendvel que os alunos tenham este material de aula em mos durante a aula, de forma a fazer anotaes, inseres e correes conforme necessrio. Este material tem finalidade meramente educacional e totalmente GRATUITO. Estas notas de aula podem conter figuras ou textos extrados de outras fontes, as quais, quando ocorrerem, sero devidamente citadas. Os direitos autorais dos textos citados so de propriedade de seus detentores. Esta no uma obra comercial. A citao ou uso de material de outros autores, quando ocorrer, tem finalidade meramente didtica. Nem o autor, nem a UNESP, se responsabilizam por quaisquer danos diretos ou indiretos que o uso deste material possa eventualmente causar. Este material pode ser copiado livremente, desde que citadas todas as fontes, e respeitados os detentores dos direitos autorais, e desde que o material seja distribudo por inteiro e no em partes, inclusive com os prefcios. A referncia a qualquer produto comercial especfico, marca, modelo, estabelecimento comercial, processo ou servio, atravs de nome comercial, marca registrada, nome de fabricante, fornecedor, ou nome de empresa, necessariamente NO constitui ou insinua seu endosso, recomendao, ou favorecimento por parte da UNESP ou do autor. A UNESP ou o autor no endossam ou recomendam marcas, produtos, estabelecimentos comerciais, servios ou fornecedores de quaisquer espcies, em nenhuma hiptese. As eventuais marcas e patentes mencionadas so de propriedade exclusiva dos detentores originais dos seus direitos e, quando citadas, aparecem meramente em carter informativo, para auxiliar os participantes do curso, numa base de boa-f pblica. Os participantes ou outros interessados devem utilizar estas informaes por sua conta e risco, e estarem cientes desta notificao. Este material didtico no se trata de uma publicao oficial da UNESP. Seu contedo no foi examinado ou editado por esta instituio. As opinies refletem a posio do autor. So Jos do Rio Preto, SP - 24 de maro de 2009. Adriano Mauro Cansian

ii

Crditos
Estes slides para notas de aula so, em sua grande parte, baseadas nos livros textos adotados para o curso: Computer Networking: A Top-Down Approach Featuring the Internet James F. Kurose & Keith W. Ross (3a. Edio), Editora Addison Wesley Longman, e Computer Networks, 3th Edition, de Andrew S. Tanenbaum PrenticeHall (ISBN 0-13-349945-6) e em sua traduo Redes de Computadores Terceira Edio, da Editora Campus (ISBN 8535201572). Copyright (c) ADRIANO MAURO CANSIAN. dada permisso para copiar, distribuir e/ou modificar este documento sob os termos da Licena de Documentao Livre GNU, Verso 1.1 ou qualquer verso posterior publicada pela FREE SOFTWARE FOUNDATION em http://www.gnu.org/licenses/licenses.html, SEM Sees Invariantes, com os Textos da Capa da Frente sendo Curso de Redes de Computadores Prof. Adriano Mauro Cansian, e com os textos da quarta-capa sendo as pginas numeradas de ii at iv deste documento.

Contato: Adriano Mauro Cansian Professor Assistente Doutor adriano@acmesecurity.org UNESP - Universidade Estadual Paulista Campus de So Jos do Rio Preto Depto. de Cincia da Computao e Estatstica Laboratrio ACME! de Pesquisa em Segurana de Computadores e Redes Endereo: R. Cristvo Colombo, 2265 - Jd. Nazareth 15055-000 * So Jos do Rio Preto, SP. Tel. (17) 3221-2475 (laboratrio) / 3221-2201 (secretaria) http://adriano.acmesecurity.org Chave PGP: Adriano Mauro Cansian <adriano@acmesecurity.org> Key ID: 0x3893CD2B Key Type: DH/DSS Key Fingerprint: C499 85ED 355E 774E 1709 524A B834 B139 3893 CD2B

iii

ACME! STANDARD DISCLAIMER Please, read carefully.


This ACME! product is meant for educational purposes only. Any resemblance to real persons, living or dead is purely coincidental. Void where prohibited. Some assembly required. List each check separately by bank number. Batteries not included. Contents may settle during shipment. Use only as directed. No other warranty expressed or implied. Do not use ACME! while operating a motor vehicle or heavy equipment. Postage will be paid by addressee. Subject to CAB approval. This is not an offer to sell securities. Apply only to affected area. ACME! may be too intense for some viewers. Do not stamp. Use other side for additional listings. For recreational use only. Do not disturb. All models over 18 years of age. If condition persists, consult your physician. No user-serviceable parts inside. Freshest if eaten before date on carton. Subject to change without notice. Times approximate. Simulated picture. No postage necessary if mailed in the United States. Breaking seal constitutes acceptance of agreement. For off-road use only. As seen on TV. One size fits all. Many suitcases look alike. Contains a substantial amount of non-tobacco ingredients. Colors may, in time, fade. We have sent the forms which seem right for you. Slippery when wet. For office use only. ACME! Research is not affiliated with the American Red Cross. Drop in any mailbox. Edited for television. Keep cool. process promptly. Post office will not deliver without postage. List was current at time of printing. Return to sender, no forwarding order on file, unable to forward. ACME! is not responsible for direct, indirect, incidental or consequential damages resulting from any defect, error or failure to perform. At participating locations only. Not the Beatles. Penalty for private use. See label for sequence. Substantial penalty for early withdrawal. Do not write below this line. Falling rock. Lost ticket pays maximum rate. Your canceled check is your receipt. Add toner. Place stamp here. Avoid contact with skin. Sanitized for your protection. Be sure each item is properly endorsed. Sign here without admitting guilt. Slightly higher west of the Mississippi. Employees and their families are not eligible. Beware of dog. Contestants have been briefed on some questions before the show. Limited time offer, call now to ensure prompt delivery. You must be present to win. No passes accepted for this engagement. No purchase ecessary. Processed at location stamped in code at top of carton. Shading within a garment may occur. Use only in a well-ventilated are. Keep ACME! away from fire or flames. Replace with same type. Approved for veterans. Booths for two or more. Check here if tax deductible. Some equipment shown is optional. Price does not include taxes. No Canadian coins. Not recommended for children. Prerecorded for this time zone. Reproduction strictly prohibited. No solicitors. No alcohol, dogs or horses. No anchovies unless otherwise specified. Restaurant package, not for resale. List at least two alternate dates. First pull up, then pull down. Call ACME! toll free before digging. Driver does not carry cash. Some of the trademarks mentioned in this product appear for identification purposes only. Record additional transactions on back of previous stub. Unix is a registered trademark of AT&T. Do not fold, spindle or mutilate. No transfers issued until the bus comes to a complete stop. Package sold by weight, not volume. Your mileage may vary. This article does not reflect the thoughts or opinions of either myself, my company, my friends, or my cat. Don't quote me on that. Don't quote me on anything. All rights reserved. You may distribute this article freely but you may not take a profit from it. Terms are subject to change without notice. Illustrations are slightly enlarged to show detail. Any resemblance to actual persons, living or dead, is unintentional and purely coincidental. Do not remove this disclaimer under penalty of law. Hand wash only, tumble dry on low heat. Do not bend, fold, mutilate, or spindle. No substitutions allowed. For a limited time only. This ACME! article is void where prohibited, taxed, or otherwise restricted. Caveat emptor. Article is provided "as is" without any warranties. Reader assumes full responsibility. An equal opportunity article. No shoes, no shirt, no articles. Quantities are limited while supplies last. If any defects are discovered, do not attempt to read them yourself, but return to an authorized service center. Read at your own risk. Parental advisory - explicit lyrics. Text may contain explicit materials some readers may find objectionable, parental guidance is advised. Keep away from sunlight. Keep away from pets and small children. Limit one-per-family please. No money down. No purchase necessary. You need not be present to win. Some assembly required. Batteries not included. Instructions are included. Action figures sold separately. No preservatives added. Slippery when wet. Safety goggles may be required during use. Sealed for your protection, do not read if safety seal is broken. Call before you dig. Not liable for damages arising from use or misuse. For external use only. If rash, irritation, redness, or swelling develops, discontinue reading. Read only with proper ventilation. Avoid extreme temperatures and store in a cool dry place. Keep away from open flames. Avoid contact with eyes and skin and avoid inhaling fumes. Do not puncture, incinerate, or store above 120 degrees Fahrenheit. Do not place near a flammable or magnetic source. Smoking this article could be hazardous to your health. The best safeguard, second only to abstinence, is the use of a condom. No salt, MSG, artificial color or flavoring added. If ingested, do not induce vomiting, and if symptoms persist,consult a physician. Warning: Pregnant women, the elderly, and children should avoid prolonged exposure to ACME! Caution: ACME! may suddenly accelerate to dangerous speeds. ACME! contains a liquid core, which if exposed due to rupture should not be touched, inhaled, or looked at. Do not use ACME! on concrete. Discontinute use of ACME! if any of the following occurs: Itching, Vertigo, Dizziness, Tingling in extremities, Loss of balance or coordination, Slurred speech, Temporary blindness, Profuse Sweating, or Heart palpitations. If ACME! begins to smoke, get away immediately. Seek shelter and cover head. ACME! may stick to certain types of skin. When not in use, ACME! should be returned to its special container and kept under refrigeration. Failure to do so relieves the makers of ACME! , ACME! Products Incorporated, and it's parent company, ACME! Chemical Unlimited, of any and all liability. Ingredients of ACME! include an unknown glowing substance which fell to Earth, presumably from outer space. ACME! has been shipped to troops in Saudi Arabia and is also being dropped by warplanes on Iraq. Do not taunt ACME! May cause any of the aforementioned effects and/or death. Articles are ribbed for your pleasure. Possible penalties for early withdrawal. Offer valid only at participating sites. Slightly higher west of the Rockies. Allow four to six weeks for delivery. Must be 18 to read. Disclaimer does not cover misuse, accident, lightning, flood, tornado, tsunami, volcanic eruption, earthquake, hurricanes and other Acts of God, neglect, damage from improper reading, incorrect line voltage, improper or unauthorized reading, broken antenna or marred cabinet, missing or altered serial numbers, electromagnetic radiation from nuclear blasts, sonic boom vibrations, customer adjustments that are not covered in this list, and incidents owing to an airplane crash, ship sinking or taking on water, motor vehicle crashing, dropping the item, falling rocks, leaky roof, broken glass, mud slides, forest fire, or projectile (which can include, put not be limited to, arrows, bullets, shot, BB's, shrapnel, lasers, napalm, torpedoes, or emissions of X-rays, Alpha, Beta and Gamma rays, knives, stones, etc.). Other restrictions may apply. This supersedes all previous notices. The ACME! Computer Security Research.

iv

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Curso de Redes de Computadores 2009


Adriano Mauro Cansian adriano@acmesecurity.org

Captulo 2 Camada de Aplicao


1

unesp - IBILCE - SJRP

Captulo 2: Camada de Aplicao


Metas do captulo:
Aprender aspectos

conceituais e de http implementao de ftp protocolos de aplicao em smtp redes pop Paradigma cliente servidor dns Modelos de servio ...a programao de Aprender sobre protocolos aplicaes de rede. atravs do estudo de Programao usando sockets protocolos populares do nvel da aplicao

Conhecer... ...protocolos especficos:

Prof. Dr. Adriano Mauro Cansian

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Conceitos
Clientes, servidores, processos, sockets e outros bichos

unesp - IBILCE - SJRP

Aplicaes e protocolos da camada de aplicao


Aplicao: processos distribudos em comunicao Executam em hospedeiros no espao de usurio. Trocam mensagens para implementar aplicao Exemplo:
Correio eletrnico, transferncia de arquivos, WWW, login remoto, voz, etc...
aplicao transporte rede enlace fsica

Cliente

Servidor
aplicao transporte rede enlace fsica aplicao transporte rede enlace fsica

Cliente

Prof. Dr. Adriano Mauro Cansian

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Protocolos de aplicao
Protocolos da camada de aplicao:

No so a aplicao.
So APENAS uma parte da aplicao. Define mensagens trocadas por aplicaes, e aes as tomadas em sua resposta. Usam servios providos por protocolos de camadas inferiores.
Os processos em dois sistemas de extremidade diferentes comunicam-se entre si, trocando mensagens atravs da rede de computadores.
Um processo de emisso cria e emite mensagens na rede; um processo de recepo recebe estas mensagens

e responde possivelmente emitindo mensagens de volta. 5

unesp - IBILCE - SJRP

Como os processos trocam mensagens:


Um protocolo da camada de aplicao define como os processos

de aplicao, funcionando em sistemas de extremidade diferentes, trocam mensagens.


Um protocolo da camada de aplicao define:

Os tipos de mensagens trocadas.

Por exemplo, mensagens do pedido e mensagens de resposta.

A sintaxe dos vrios tipos de mensagem.

Os campos na mensagem, e como os campos so delineados.

A semntica dos campos.

Isto , o significado da informao nos campos.

As regras.

Determinar quando e como um processo emite e responde mensagens.


6

Prof. Dr. Adriano Mauro Cansian

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Como os processos trocam mensagens


Cliente

Servidor

unesp - IBILCE - SJRP

Aplicaes de rede: DEFINIES


Um processo um programa

que roda num host.


Dois processos no mesmo host

Um agente de usurio

se comunicam usando comunicao entre processos (interprocess comunnication), definida pelo sistema operacional (SO).
Dois processos em hosts

(UA) uma interface entre o usurio e a aplicao de rede.


WWW: browser. Correio: leitor/compositor de mensagens Streaming audio/video: tocador (player) de mdia

distintos se comunicam usando um protocolo da camada de transporte.


8

Prof. Dr. Adriano Mauro Cansian

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Paradigma cliente-servidor
Aplicao de rede tpica tem duas partes: cliente e servidor
aplicao transporte rede enlace fsica

pedido

resposta
aplicao transporte rede enlace fsica

unesp - IBILCE - SJRP

Protocolos da camada de aplicao API - Aplication Program Interface:

Interface de programao de aplicaes.

Define a interface entre a aplicao e camada

de transporte. Socket (= tomada) : API da Internet Dois processos se comunicam enviando dados para um socket , ou lendo dados de um socket.
voltaremos mais tarde a este assunto.
10

Prof. Dr. Adriano Mauro Cansian

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Comunicao pelos sockets (1)


O socket de um processo pode ser pensado como a porta do

processo:

Um processo emite e recebe mensagens da rede, atravs de seus sockets. Quando um processo quer emitir uma mensagem a um outro processo em um outro host, empurra a mensagem para fora de sua porta.
O processo supe que h um infra-estrutura de transporte no outro lado da porta, a qual transportar a mensagem at a porta do processo do destino.

11

unesp - IBILCE - SJRP

Comunicao pelos sockets (2)

12

Prof. Dr. Adriano Mauro Cansian

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Como um processo identifica outro ?


Pergunta: Como um processo pode identificaro outro processo com o qual quer se comunicar?
Endereo IP do host do outro processo.

Por enquanto: o IP ADDRESS um valor de 32-bits que identifica unicamente o sistema de extremidade. Mais precisamente:

identifica unicamente a interface (placa) que conecta esse host Internet. Ex. 200.145.9.9

Nmero de porta : permite que o hospedeiro

receptor determine para qual processo deve ser entregue a mensagem. Exemplo: Porta 80/TCP.

Ex. 200.145.9.9:80 (RFC 1700 - Portas well-known)


13

unesp - IBILCE - SJRP

De que servios de transporte uma aplicao precisa? (1)


Quando se desenvolve uma aplicao, deve-se

escolher um dos protocolos disponveis do transporte.


Como se faz esta escolha?

Estuda-se os servios fornecidos pelos protocolos disponveis do transporte, e escolhe-se o protocolo com os servios que melhor se adaptem s necessidades de sua aplicao.

14

Prof. Dr. Adriano Mauro Cansian

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

De que servios de transporte uma aplicao precisa? (2)


Perda de dados:

Temporizao:

Algumas aplicaes (por exemplo udio) podem tolerar algumas perdas. Outras (por exemplo, transferncia de arquivos, telnet) exigem transferncia 100% confivel.

Algumas aplicaes (por exemplo, telefonia em Internet, jogos interativos) requerem baixo retardo para serem viveis.

Largura de banda:
Algumas aplicaes (por exemplo , multimdia) requerem quantia mnima de banda para serem viveis. Outras aplicaes (elsticas) conseguem usar qualquer quantia de banda disponvel.

15

unesp - IBILCE - SJRP

Requisitos do servio de transporte de apls comuns


Sensibilidade temporal no no no sim, 100s mseg sim, alguns segs sim, 100s mseg sim e no

Aplicao transferncia de arqs correio documentos WWW udio/vdeo de tempo real udio/vdeo gravado jogos interativos apls financeiras

Perdas sem perdas sem perdas sem perdas tolerante tolerante tolerante sem perdas

Banda elstica elstica elstica udio: 5Kb-1Mb vdeo:10Kb-5Mb como anterior > alguns Kbps elstica

16

Prof. Dr. Adriano Mauro Cansian

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Servios providos por protocolos de transporte Internet


Servio TCP:
Orientado a conexo:

Servio UDP:

Transferncia de dados no confivel entre processos estabelecimento exigido entre remetente e receptor. cliente e servidor. No prov: estabelecimento Transporte confivel entre da conexo, confiabilidade, processos emissor e receptor. controle de fluxo, controle de Controle de fluxo: emissor no congestionamento, garantias vai afogar receptor. temporais ou de banda Controle de congestionamento: mnima. estrangular emissor quando a rede carregada. Pergunta-se: Qual o interesse No oferece: garantias temporais em ter um UDP? ou de banda mnima (QoS).
17

unesp - IBILCE - SJRP

Aplicaes Internet: seus protocolos e seus protocolos de transporte


Aplicao Correio eletrnico Acesso terminal remoto WWW Transferncia de arquivos streaming multimdia Servidor de arquivo remoto Telefonia Internet Protocolo da camada de apl smtp [RFC 821] telnet [RFC 854] http [RFC 2068] ftp [RFC 959] proprietrio (Ex: RealNetworks) NFS proprietrio (Ex: Vocaltec) Protocolo de transporte usado TCP TCP TCP TCP TCP ou UDP TCP ou UDP tipicamente UDP

18

Prof. Dr. Adriano Mauro Cansian

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Os principais protocolos de aplicao

19

unesp - IBILCE - SJRP

WWW
Pgina WWW: Consiste de objetos Endereada por um URL Universal Resource Locator. Quase todas as pginas Agente de usurio para

WWW se chama de browser:


MS Internet Explorer. Netscape Communicator.

WWW consistem de:


Servidor para WWW se

Pgina base HTML, e Vrios objetos referenciados.

chama servidor WWW:

URL tem duas partes:

nome de hospedeiro, e nome de caminho:

Apache (domnio pblico). MS Internet Information Server (IIS).

adriano.acmesecurity.org/themes/noprob/logo_cnpq.png
20

Prof. Dr. Adriano Mauro Cansian

10

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

WWW: o protocolo http


http: Hypertext Transfer Protocol
Protocolo da camada de
ped

aplicao para WWW.


Modelo cliente-servidor

PC executa Explorer

ido htt p res pos ta htt p

cliente: browser que solicita, recebe (visualiza) objetos WWW. servidor: servidor WWW envia objetos em resposta a pedidos. http1.0: RFC 1945 http1.1: RFC 2068

id ed

oh

ttp

Servidor executando servidor WWW Apache

Mac executa Firefox

21

unesp - IBILCE - SJRP

Mais sobre o protocolo http:


Usa servio de transporte TCP:
1.) Cliente inicia conexo TCP (cria socket) ao servidor, na porta 80. 2.) Servidor aceita conexo TCP do cliente. 3.) Troca mensagens http (mensagens do protocolo da camada de aplicao) entre browser (cliente http) e servidor WWW (servidor http). 4.) Encerra conexo TCP.

http sem estado (stateless)


Servidor no mantm

informao sobre pedidos anteriores do cliente.

Nota

Protocolos que mantm estado so complexos! O histrico passado (estado) tem que ser mantido. Demanda recursos maiores. Statefull

22

Prof. Dr. Adriano Mauro Cansian

11

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Exemplo de http
Supomos que usurio digita a URL www.unesp.br/index.html
(Ex: contm texto, referncias a 10 imagens jpeg)

1a. Cliente http inicia conexo TCP


ao servidor http (processo) em www.unesp.br. Porta 80 padro para servidor http.

1b. servidor http no hospedeiro


www.unesp.br espera por conexo TCP na porta 80. Aceita conexo, avisando ao cliente

2. cliente http envia mensagem de


pedido de http (contendo URL) atravs do socket da conexo TCP 3. servidor http recebe mensagem de pedido, formula mensagem de resposta contendo objeto solicitado (index.html), e envia mensagem via socket.

tempo
23

unesp - IBILCE - SJRP

Exemplo de http (continuao)


4. servidor http encerra conexo TCP . 5. cliente http recebe mensagem
de resposta contendo arquivo html index.html, e visualiza html. Analisando arquivo html, encontra 10 objetos jpeg referenciados.

6. Passos 1 a 5 repetidos para


cada um dos 10 objetos jpeg

tempo E ento, continua...

24

Prof. Dr. Adriano Mauro Cansian

12

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Conexes no-persistente e persistente


No persistente: HTTP/1.0 Servidor analisa pedido, responde, and encerra conexo TCP. 2 RTTs para trazer cada objeto (RTT = round trip time) Transferncia de cada objeto sofre de partida lenta. Persistente:
Default for HTTP/1.1 Na mesma conexo TCP:

servidor analisa pedido, responde, analisa novo pedido, etc... Cliente envia pedidos para todos objetos referenciados, assim que recebe o HTML base .

Menos RTTs, e menos

partida lenta.

A maioria de browsers usa conexes TCP paralelas.


25

unesp - IBILCE - SJRP

Conexo no-persistente (1)


O cliente HTTP inicia uma conexo TCP com o servidor. O cliente emite mensagem de requisio HTTP usurio atravs do socket

associado com a conexo do TCP que foi estabelecida.


Servidor HTTP recebe o request atravs do socket associado com a

conexo estabelecida, recupera o objeto (index.html) de seu armazenamento, encapsula o objeto em uma mensagem HTTP de resposta, e emite a mensagem de resposta ao cliente atravs do socket.
O servidor diz ao cliente para fechar a conexo TCP. O cliente recebe a mensagem de resposta. A conexo TCP termina. A

mensagem indica que o objeto encapsulado um arquivo HTML. O cliente extrai o arquivo da mensagem de resposta, analisa, e encontra referncias a 10 objetos do JPEG.
As primeiras quatro etapas so repetidas ento para cada um dos

objetos JPEG referenciados.

26

Prof. Dr. Adriano Mauro Cansian

13

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Conexo no-persistente (2)


Quando o browser recebe uma pgina, mostra a pgina ao usurio.

Dois browsers diferentes podem interpretar (isto , mostrar ao usurio) um webpage de maneiras um diferentes.

O HTTP no define como uma webpage interpretada por um cliente. As especificaes do HTTP (RFC1945 e RFC2616) definem somente o protocolo de comunicao entre o programa HTTP do cliente e o programa HTTP do servidor.

Nas etapas das conexes no persistentes, cada conexo do TCP

fechada depois que o servidor envia o objeto: a conexo no persiste para outros objetos.
Cada conexo TCP transporta exatamente uma mensagem de

pedido e uma mensagem de resposta. No nosso exemplo, quando um usurio requisita uma pgina, 11 conexes TCP so geradas.
(discutir conexes paralelas)
27

unesp - IBILCE - SJRP

Round Trip Time (1)


Quantidade de tempo gasta entre cliente solicitar um arquivo

HTML at que o arquivo esteja recebido?


Tempo round-trip-time (RTT), o tempo gasto para um pacote

viajar do cliente ao servidor e ento voltar ao cliente. o tempo

de ida-e-volta.
RTT inclui os atrasos de propagao, de enfileiramento e de

processamento em routers e comutadores intermedirios.


Usurio clica num hyperlink. Isto faz com que o browser inicie uma

conexo do TCP entre o browser e o web server.


Envolve um three-way handshake: o cliente emite uma mensagem

TCP ao servidor, o servidor reconhece e responde com uma mensagem. Finalmente, o cliente confirma de volta ao servidor.

28

Prof. Dr. Adriano Mauro Cansian

14

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Round Trip Time (2)


Mais um RTT decorre aps as duas primeiras partes do

three-way handshake.

Aps ter terminado as primeiras duas partes do handshake, o cliente emite a mensagem de requisio HTTP na conexo TCP, e o TCP agrega a ltima confirmao (a terceira parte do three-way handshake) na mensagem do pedido. Uma vez a mensagem do pedido chega no usurio, o usurio emite o arquivo HTML na conexo do TCP.

Esta interao HTTP request-response gasta outro RTT. Assim, o tempo de resposta total dois RTTs mais o

tempo da transmisso do arquivo HTML pelo servidor.

29

unesp - IBILCE - SJRP

Conexo persistente (1)


Cada objeto sofre dois RTTs:

um RTT para estabelecer a conexo TCP, e um RTT para solicitar e receber um objeto.

Cada objeto sofre do partida lenta(slow start) do TCP.

Com as conexes persistentes, o servidor

deixa a conexo TCP aberta aps ter emitido uma resposta.


Os pedidos e as respostas subseqentes entre o mesmos

cliente e servidor podem ser emitidos na mesma conexo. as 10 imagens) pode ser emitido sobre uma nica conexo persistente do TCP.
30

Uma webpage inteira (no exemplo, o arquivo HTML base e

Prof. Dr. Adriano Mauro Cansian

15

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Conexo persistente (2)


Duas verses de conexes persistentes: sem pipelining (paralelismo) e com pipelining.

Sem pipelining: o cliente emite um pedido novo somente quando a resposta precedente foi recebida. Com pipelining: o cliente emite um pedido assim que encontrar uma referncia.
o default para HTTP/1.1. Somente um RTT para todos os objetos solicitados.

31

unesp - IBILCE - SJRP

Mensagem http de requisio (1)


Dois tipos de mensagem http: pedido, resposta Mensagem de pedido http: ASCII (formato legvel por humanos)
linha do pedido (comandos GET, GET /dir/page.html HTTP/1.1 POST, HEAD) User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg linhas do Accept-language:fr cabealho Carriage return, (carriage return (CR), linefeed (LF) adicionais) line feed indica fim de mensagem
32

Prof. Dr. Adriano Mauro Cansian

16

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Mensagem http de requisio (2)

33

unesp - IBILCE - SJRP

Mensagem http de resposta (1)


linha de status (protocolo, cdigo de status, frase de status) linhas de cabealho HTTP/1.1 200 OK Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 ... Content-Length: 6821 Content-Type: text/html dados dados dados dados ...

dados, p.ex., arquivo html solicitado

34

Prof. Dr. Adriano Mauro Cansian

17

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Mensagem http de resposta (2)

Formato geral de uma mensagem de RESPOSTA

35

unesp - IBILCE - SJRP

Cdigos de status da resposta http


Aparecem na primeira linha da mensagem de resposta cliente-servidor. Alguns cdigos tpicos:
200 OK

Sucesso. Objeto pedido segue mais adiante nesta mensagem. Objeto pedido mudou de lugar, nova localizao especificado mais adiante nesta mensagem (Location:) Mensagem de pedido no entendida pelo servidor. Documento pedido no se encontra neste servidor. Verso de http do pedido no aceita por este servidor.
36

301 Moved Permanently

400 Bad Request

404 Not Found

505 HTTP Version Not Supported

Prof. Dr. Adriano Mauro Cansian

18

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

HTML (HyperText Markup Language)


HTML: uma linguagem simples para hipertexto comeou como verso simples de SGML construo bsica: cadias de texto anotadas Construtores de formato operam sobre cadeias <b> .. </b> bold (negrito) <H1 ALIGN=CENTER> ..ttulo centrado .. </H1> <BODY bgcolor=white text=black link=red ..> .. </BODY> Vrios formatos listas de bullets, listas ordenadas, listas de definio tabelas Frames Etc... Etc...
37

unesp - IBILCE - SJRP

Formulrios e interao bidirecional Integrao com banco de dados


Formulrios transmitem Formulrios processados usando

informao do cliente ao servidor. HTTP permite enviar formulrios ao servidor. Resposta enviada como pgina HTML dinmica.

scripts CGI (programas que executam no servidor WWW) CGI - Common Gateway Interface scripts CGI escondem acesso a diferentes servios servidor WWW atua como gateway universal

cliente WWW

GET/POST formulrio resposta: HTML

servidor WWW

Sistema de informao
38

Prof. Dr. Adriano Mauro Cansian

19

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Interao usurio-servidor: autenticao


Meta da autenticao: controle de acesso aos documentos do cliente servidor.
Sem estado: cliente deve apresentar

servidor

msg de pedido http comum 401: authorization req. WWW authenticate: msg de pedido http comum + Authorization:line msg de resposta http comum

autorizao com cada pedido.


Autorizao: tipicamente nome e

senha.

authorization: linha de

cabealho no pedido. Se no for apresentada autorizao, servidor nega accesso, e coloca no cabealho da resposta
WWW authenticate:

Browser guarda nome e senha para evitar que sejam pedidos ao usurio a cada acesso.

msg de pedido http comum + Authorization:line msg de resposta http comum


39

tempo

unesp - IBILCE - SJRP

Interao usurio-servidor: cookies


Servidor envia cookie ao

cliente
resposta http comum+

servidor

cliente na msg de resposta


Set-cookie: 1678453
Cliente apresenta cookie

msg de pedido http comum

Set-cookie: # Ao especfica msg de resposta http comum do cookie cookie: # Ao especfica msg de resposta http comum do cookie cookie: #
40

nos pedidos posteriores


cookie: 1678453
Servidor casa cookie-

msg de pedido http comum

apresentado com a info guardada no servidor. Autenticao. Lembrando preferncias do usurio, opes anteriores, etc

msg de pedido http comum

Prof. Dr. Adriano Mauro Cansian

20

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Interao usurio-servidor: GET condicional


cliente
Meta: no enviar objeto se

servidor
objeto no modificado

msg de pedido http


If-modified-since: <date>

cliente j tem (no cache) verso atual. Cliente: especifica data da cpia no cache no pedido http
If-modified-since: <date>
Servidor: resposta no contm

resposta http
HTTP/1.0 304 Not Modified

msg de pedido http


If-modified-since: <date>

objeto se cpia no cache atual:


HTTP/1.0 304 Not Modified

resposta http
HTTP/1.1 200 OK

objeto modificado

<data>
41

unesp - IBILCE - SJRP

Cache WWW (servidor-procurador)


Meta: atender pedido do cliente sem envolver servidor de origem. (Proxy)
Usurio configura browser:

acessos WWW via procurador (proxy). Cliente envia todos pedidos http ao procurador.

cliente
ped ido

Servidor de origem

Se objeto est no cache do procurador, este o devolve imediatamente na resposta http. Seno, solicita objeto do servidor de origem, armazena e depois devolve resposta http ao cliente.

htt res p pos ta htt p ttp oh did pe

Servidor proxy
p

id ed

oh

ttp

ido htt res p pos ta htt p

ped

cliente

Servidor de origem
42

Prof. Dr. Adriano Mauro Cansian

21

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Por que usar cache WWW ?


Suposio: cache est prximo do cliente (por
exemplo na mesma rede).
Internet pblica

Servidores de origem

Tempo de resposta

menor: cache mais prximo do cliente Diminui trfego aos servidores distantes,

enlace de accesso 2 Mbps rede da instituio LAN 10 Mbps

Muitas vezes o gargalo o enlace (link) que liga a rede da instituio ou do provedor at a Internet.

cache da instituio
43

unesp - IBILCE - SJRP

FTP: o protocolo de transferncia de arquivos


transferncia do arquivo

usurio na estao

Interface cliente do usurio FTP FTP

FTP servidor sistema de arquivos remoto

sistema de arquivos local

Transferir arquivo de/para hospedeiro remoto Modelo cliente/servidor

cliente: lado que inicia transferncia (pode ser de ou para o sistema remoto) servidor: hospedeiro remoto FTP - File Transfer Protocol: definido pelo RFC 959 Servidor FTP: porta 21

44

Prof. Dr. Adriano Mauro Cansian

22

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

FTP: conexes separadas para controle e dados


Cliente FTP chama servidor ftp

na porta 21, especificando TCP como protocolo de transporte.

So abertas duas

conexes TCP paralelas:


Controle: troca comandos, respostas entre cliente, cliente servidor. FTP controle fora da banda Dados: dados de arquivo de/ para servidor. Servidor ftp mantm estado: diretrio corrente, e autenticao realizada.

conexo de controle TCP, porta 21

conexo de dados TCP, porta 20

servidor FTP

45

unesp - IBILCE - SJRP

FTP: conexes separadas para controle e dados

Richard Stevens, TCP/IP Illustrated Vol. 1 Fig. 27.5


46

Prof. Dr. Adriano Mauro Cansian

23

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

FTP: comandos e respostas


Comandos tpicos:
Enviados em texto ASCII

Cdigos de retorno tpicos


cdigo e frase de status (como

pelo canal de controle. USER nome PASS senha


LIST devolve lista de

arquivos no diretrio corrente


RETR arquivo recupera

(l) arquivo remoto STOR arquivo armazena (escreve) arquivo no host remoto.

para http). 331 Username OK, password required 125 data connection already open; transfer starting 425 Cant open data connection 452 Error writing file

47

unesp - IBILCE - SJRP

Correio Eletrnico
de Trs grandes componentes: usurio servidor Agentes de usurio: Mail de correio User Agent - MUA. SMTP Agente de transporte: Servidores de correio Mail SMTP Transport Agent - MTA. SMTP Protocolo de correio: servidor Simple Mail Transfer de correio Protocol - SMTP. agente de usurio agente

fila de mensagens de sada caixa de correio do usurio


agente de usurio

servidor de correio

agente de usurio

agente de usurio

agente de usurio

48

Prof. Dr. Adriano Mauro Cansian

24

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Correio Eletrnico
MUA - Agente de Usurio Conhecido como leitor de email. o lado cliente. Compor, editar, ler mensagens de correio Exemplo: Eudora, Outlook, elm, Pegasus, Netscape Messenger, etc... Mensagens de sada e chegada so armazenadas no servidor.
servidor de correio
agente de usurio

fila de mensagens de sada caixa de correio do usurio


agente de usurio

SMTP SMTP SMTP


servidor de correio
agente de usurio

servidor de correio

agente de usurio

agente de usurio

agente de usurio

49

unesp - IBILCE - SJRP

Correio Eletrnico: servidores de correio


Servidores de correio
Caixa de correio contm
servidor de correio
agente de usurio agente de usurio

mensagens de chegada (ainda no lidas) p/ usurio. Fila de mensagens contm mensagens de sada (a serem enviadas). Protocolo SMTP entre servidores para transferir mensagens de correio. Cliente: servidor de correio que envia Servidor: servidor de correio que recebe.

SMTP SMTP SMTP


servidor de correio
agente de usurio

servidor de correio

agente de usurio

agente de usurio

50

Prof. Dr. Adriano Mauro Cansian

25

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Correio Eletrnico: SMTP [RFC 821]


Usa TCP para a transferncia confivel de mensagens de

correio do cliente ao servidor. Usa porta 25/TCP Transferncia direta: servidor remetente ao servidor receptor Trs fases da transferncia: Handshaking (cumprimento). Transferncia das mensagens Encerramento Interao comando/resposta Comandos: texto ASCII Resposta: cdigo e frase de status

Mensagens precisam ser em ASCII de 7-bits.


51

unesp - IBILCE - SJRP

Interao SMTP tpica


S: C: S: C: S: C: S: C: S: C: C: C: S: C: S: 220 doces.br HELO consumidor.br 250 Hello consumidor.br, pleased to meet you MAIL FROM: <ana@consumidor.br> 250 ana@consumidor.br... Sender ok RCPT TO: <bernardo@doces.br> 250 bernardo@doces.br ... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Voce gosta de chocolate? Que tal sorvete? . 250 Message accepted for delivery QUIT 221 doces.br closing connection
52

Prof. Dr. Adriano Mauro Cansian

26

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Experimente voc mesmo uma interao SMTP com seu servidor predileto !
telnet nomedoservidor.algumlugar.br 25 Observe a resposta 220 do servidor Entre comandos HELO, MAIL FROM, RCPT TO,

DATA, QUIT, HELP. Estes comandos permite que voc envie correio sem usar um cliente (leitor de correio). Basta conhecer o formato das mensagens do protocolo.

53

unesp - IBILCE - SJRP

SMTP - finalizando
SMTP usa conexes persistentes. SMTP requer que a mensagem

Comparao com http


HTTP: pull (puxar). E-mail: push (empurrar). Ambos tem interao

(cabealho e corpo) sejam em ASCII de 7-bits.


Algumas cadeias de

caracteres no so permitidas numa mensagem (p.ex., CRLF.CRLF). Assim, a mensagem pode ter que ser codificada (normalmente em base-64 ou quoted printable).
Servidor SMTP usa

comando/resposta, e cdigos de status em ASCII.


HTTP: cada objeto

CRLF.CRLF para reconhecer o final da mensagem.

encapsulado em sua prpria mensagem de resposta. SMTP: mltiplos objetos de mensagem enviados numa mensagem de mltiplas partes.
54

Prof. Dr. Adriano Mauro Cansian

27

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Formato de uma mensagem de e-mail


SMTP: protocolo para trocar mensagens de correio RFC 822: padro para formato de mensagem de texto: Linhas de cabealho, p.ex.,
To: From: Subject: diferentes dos comandos de smtp!

cabealho

linha em branco

corpo

Corpo

a mensagem, somente de caracteres ASCII . Termina com um . ponto


55

unesp - IBILCE - SJRP

Formato de uma mensagem: extenses para multimdia


MIME: multimedia mail extension, RFC 2045, 2056 Linhas adicionais no cabealho da mensagem declaram tipo do

contedo MIME. verso MIME mtodo usado para codificar dados tipo, subtipo de dados multimdia, declarao parmetros Dados codificados
From: ana@consumidor.br To: bernardo@doces.br Subject: Imagem de uma bela torta MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data

56

Prof. Dr. Adriano Mauro Cansian

28

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Tipos MIME
Content-Type: tipo/subtipo; parmetros Text
sub-tipos exemplos: plain,

Audio
Sub-tipos exemplos : basic

html charset=iso-8859-1, ascii

(8-bit codificado mu-law), 32kadpcm (codificao 32 kbps).

Image
sub-tipos exemplos : jpeg,

Application
Outros dados que precisam ser

gif

Video
sub-tipos exemplos : mpeg,

processados por um leitor para serem visualizados. subtipos exemplos : msword, octet-stream

quicktime
57

unesp - IBILCE - SJRP

Tipo Multiparte
From: ana@consumidor.br To: bernardo@doces.br Subject: Imagem de uma bela torta MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain caro Bernardo, Anexa a imagem de uma torta deliciosa. --98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data --98766789-58

Prof. Dr. Adriano Mauro Cansian

29

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Protocolos de acesso ao correio


agente de usurio

SMTP

SMTP

POP3 ou IMAP
servidor de correio do receptor

agente de usurio

servidor de correio do remetente

SMTP: entrega/armazenamento no servidor do receptor. Protocolo de accesso ao correio: recupera do servidor.

POP: Post Office Protocol [RFC 1939] Autorizao (agente <-->servidor) e transferncia IMAP: Internet Mail Access Protocol [RFC 1730] Mais comandos e mais opes (mais complexo). Manuseio de msgs armazenadas no servidor Atravs de HTTP: Hotmail , Yahoo! Mail, Webmail, etc. (no exatamente um protocolo de e-mail e sim um mecanismo)

59

unesp - IBILCE - SJRP

Protocolo POP3
Fase de autorizao
comandos do cliente:

user: declara nome pass: senha servidor responde +OK -ERR

S: C: S: C: S: C: S: S: S: C: S: S: C: C: S: S: C: C: S:

+OK POP3 server ready user ana +OK pass faminta +OK user successfully logged list 1 498 2 912 . retr 1 <message 1 contents> . dele 1 retr 2 <message 1 contents> . dele 2 quit +OK POP3 server signing off
60

on

Fase de transao, cliente:


list: lista nmeros das msgs retr: recupera msg por

nmero

dele: apaga msg quit

Prof. Dr. Adriano Mauro Cansian

30

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

DNS: Domain Name System (1)


Pessoas:
Possuem muitos identificadores: CPF, nome, no. de Passaporte, RG, etc... Dispositivos na Internet:

Dispositivos Internet (hosts, roteadores, etc...) usam nmeros. Endereo IP (32 bits): usado para enderear datagramas. Nome : usado por humanos.

www.unesp.br = 200.145.9.9

Como mapear entre nome e endereo IP?


61

unesp - IBILCE - SJRP

DNS: Domain Name System (2)


(1) Uma base de dados distribuda implementada em

uma hierarquia de muitos servidores de nomes (nameservers). (2) Um protocolo da camada de aplicao que permite que os hosts e os servidores de nomes se comuniquem, de modo a fornecer o servio de traduo resolver nomes. Resolver = traduzir nome em endereo
Os servidores de nomes (nameservers) so freqentemente mquinas de Unix que rodam o software Berkeley Internet Name Domain (Bind). O protocolo do DNS funciona sobre UDP e usa a porta 53.
62

Prof. Dr. Adriano Mauro Cansian

31

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Servidores de nomes DNS


Por qu no centralizar o DNS? Ponto nico de falha. Volume de trfego. Base de dados centralizada seria distante. Dificuldade de Manuteno da BD. No escalvel!
Nenhum servidor mantm

todos os mapeamento nomepara-endereo IP. Servidor de nomes local:

Cada provedor, empresa ou instituio tem servidor de nomes local (default) Pedido DNS de um host vai primeiro ao servidor de nomes local. Para o host: guarda nome, endereo IP dele. Pode realizar traduo nome/ endereo para este nome.

Servidor de nomes autoritativo:


63

unesp - IBILCE - SJRP

DNS: Servidores raiz (root servers)


Procurado por servidor

local que no consegue resolver o nome. Servidor raz: Procura servidor autoritativo se mapeamento for desconhecido. Obtm traduo. Devolve mapeamento ao servidor local. Existem cerca de uma dzia de servidores raz no mundo.
64

Prof. Dr. Adriano Mauro Cansian

32

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Exemplo simples do DNS


Host rock.ai.unesp.br requer endereo IP de www.cs.columbia.edu 1. Contata servidor DNS local, ns.ai.unesp.br 2. ns.ai.unesp.br contata servidor raiz, se necessrio 3. Servidor raiz contata servidor autoritativo cs.columbia.edu, se necessrio
2 5 3

servidor de nomes raiz 4

servidor local
ns.ai.unesp.br

servidor autoritativo

cs.columbia.edu

solicitante
rock.ai.unesp.br

www.cs.columbia.edu

65

unesp - IBILCE - SJRP

Exemplo de DNS
Servidor raz:
Pode no conhecer o

servidor de nomes raz 2 7 6 3

servidor de nomes autoritativo. Pode conhecer servidor de nomes intermedirio: a quem contactar para descobrir o servidor de nomes autoritativo.

servidor local
ns.ai.unesp.br

servidor intermedirio saell.cc.columbia.edu 5 4 servidor autoritativo cs.columbia.edu

solicitante
rock.ai.unesp.br

www.cs.columbia.edu
66

Prof. Dr. Adriano Mauro Cansian

33

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

DNS: consultas iteradas


Consulta recursiva:
Transfere a

servidor de nomes raz consulta interativa 4 7

responsabilidade de resoluo do nome para o servidor de nomes contatado. Carga pesada?

servidor local
ns.ai.unesp.br

Consulta iterada:
Servidor consultado

servidor intermedirio saell.cc.columbia.edu 5 6 servidor autoritativo cs.columbia.edu

responde com o nome de um servidor de contato. No conheo este nome, mas pergunte para esse servidor

solicitante
rock.ai.unesp.br

www.cs.columbia.edu
67

unesp - IBILCE - SJRP

DNS: uso de cache, atualizao de dados


Uma vez um servidor qualquer aprende um

mapeamento, ele o coloca numa cache local. Futuras consultas so resolvidas usando dados da cache Entradas no cache so sujeitas a temporizao (desaparecem depois de certo tempo) ttl = time to live (sobrevida) Esto sendo projetados pela IETF mecanismos de atualizao/notificao dos dados

RFC 2136
http://www.ietf.org/html.charters/dnsind-charter.html

68

Prof. Dr. Adriano Mauro Cansian

34

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Registros DNS
DNS: BD distribuda contendo resource records (RR) formato RR: (nome,
valor, tipo, sobrevida)

Tipo=NS

nome domnio (p.ex. foo.com.br) valor endereo IP de servidor de nomes autoritativo para este domnio

69

unesp - IBILCE - SJRP

DNS: protocolo, mensagens


protocolo DNS: mensagens pedido e resposta, ambas com o mesmo formato de mensagem

70

Prof. Dr. Adriano Mauro Cansian

35

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

DNS: protocolo, mensagens


campos nome, tipo num pedido RRs em resposta ao pedido registros para servidores autoritativos info adicional relevante que pode ser usada

71

unesp - IBILCE - SJRP

Compartilhamento de arquivos
Aplicaes P2P

72

Prof. Dr. Adriano Mauro Cansian

36

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Compartilhamento de arquivos P2P


Exemplo: Alice executa a aplicao cliente P2P em seu notebook. Intermitentemente conecta-se Internet;

Obtm novo endereo IP para cada conexo.

Procura por um determinado arquivo de uma msica. A aplicao exibe outros peers que possuem uma cpia da msica. Alice escolhe um dos pares: Bob. O arquivo copiado do PC de Bob para o notebook de Alice:

por exemplo via HTTP.

Enquanto Alice faz o download: outros usurios fazem upload da mquina de Alice.
O peer Alice tanto um cliente Web como um servidor Web transiente.

Todos os pares so servidores = altamente escalveis!

unesp - IBILCE - SJRP

Modelo Cliente / Servidor


Modelo mais usado na Internet.

Dependente de servidores bem configurados em com informao acessvel.

No explora o potencial de computao

distribuda proveniente da Rede.

A existncia de um ou milhares de computadores indiferente na interao de um usurio tpico com a rede.

PCs clientes com capacidade considervel ficam

escondidos, formando um exrcito com alto potencial.

Prof. Dr. Adriano Mauro Cansian

37

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Definio de sistema P2P (1)

unesp - IBILCE - SJRP

Definio de sistema P2P (1)


Classe de aplicaes que leva vantagem

de recursos disponveis nas bordas da rede. Quais recursos?


Armazenamento. Tempo de CPU. Bandwidth. Contedo. Presena humana.

Prof. Dr. Adriano Mauro Cansian

38

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Questes Fundamentais:

unesp - IBILCE - SJRP

Caractersticas P2P (1)


istemas distribudos sem controle S

centralizado ou organizao hierrquica. oftware executado em cada peer S equivalente em funcionalidade. uantidade explosiva e exponencial Q de adeptos.

Prof. Dr. Adriano Mauro Cansian

39

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Caractersticas P2P (2)


Cada participante age como cliente e

servidor ao mesmo tempo (servent). Cada cliente paga a sua participao fornecendo acesso a (alguns de) seus recursos.

Peering.

unesp - IBILCE - SJRP

Caractersticas P2P (3)


Sem coordenao central. Sem banco de dados central. Sem local nico de falha ou gargalo. Nenhum ponto (peer) tem viso global do sistema. Comportamento global definido por interaes

locais. Todos os dados e servios so acessveis de qualquer ponto. Pontos so autnomos. Pontos e conexes no so confiveis.

Prof. Dr. Adriano Mauro Cansian

40

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Principais vantagens
scalabilidade E

No h gargalo para crescimento. No h ponto de falha nico. Auto-configurao / configurao dinmica.

obustez R

lexibilidade F

unesp - IBILCE - SJRP

Comparao entre Roteadores e sistemas P2P


Descobrem e mantm topologia. No so clientes nem servidores. Continuamente falam uns com os outros. So inerentemente tolerantes a falhas. So autnomos.

Prof. Dr. Adriano Mauro Cansian

41

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Teste P2P
O sistema aceita conectividade varivel e

endereos IP temporrios? O sistema d uma autonomia significativa aos computadores na borda da rede? Os ns podem trocar informaes livremente entre si, sem arbitragem central?

unesp - IBILCE - SJRP

Sistemas P2P: Requisitos


Descoberta de recursos/servios. Baseada em: nome, endereo, rota, mtrica, etc... Roteamento Roteamento de aplicao: contedo, interesse, etc... Roteamento entre super-ns: Kazaa, Morpheus,... Roteamento baseado em capacidade (bandwidth) Robustez e tolerncia a falhas (n e enlace). Armazenamento distribudo e atualizaes. Escalabilidade Confiana nos pares (autenticao, autorizao) Monitoramento de vizinhos.

Prof. Dr. Adriano Mauro Cansian

42

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

P2P X Redes de Cobertura (Overlay)


Overlay Rede virtual: rede sobre outra rede (IP). Os enlaces so conexes entre ns da rede. P2P freqentemente utilizada para criar overlays. Oferecendo servios que poderiam ser implementados na camada IP. Estratgia muito til para implantao. Em certos casos, pode contornar barreiras

econmicas.

Exemplo: IP era um overlay (sobre a rede de telefonia)

Nem todos os overlays so P2P (AKAMAI).

unesp - IBILCE - SJRP

Redes Overlay
enlace virtual

Rede Overlay

enlace fsico

Rede Fsica

Prof. Dr. Adriano Mauro Cansian

43

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Modelos de Sistemas P2P


(Classificao 1)
Modelo Centralizado ndice global mantido por um autoridade central. Contato direto entre clientes e provedores.
Exemplo: Napster.

Modelo Descentralizado

Sem ndice global (sem coordenao global)


Exemplos: Gnutella, Freenet.

Modelo Hierrquico

Introduo dos super-ns (super-nodes ou super-peers). Mistura dos modelos centralizado e descentralizado
Exemplos: KaZaA, Morpheus.

unesp - IBILCE - SJRP

Modelos de Sistemas P2P


(Classificao 2)
Centralized Service Location (CSL) Busca centralizada Exemplo: Napster Flooding-based Service Location (FSL) Busca baseada em inundao Exemplo: Gnutella
Distributed Hash Table-based Service Location (DHT)

Busca baseada em tabela de hash distribuda Exemplos: Azureus, CAN, Pastry, Tapestry, Chord.

Prof. Dr. Adriano Mauro Cansian

44

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Modelos de Sistemas P2P


(Classificao 3)
Modelo Centralizado

Napster, intant mesengers (ICQ, MSN, etc...)

Modelo Descentralizado e Estruturado DHT. Bittorrent. Modelo Descentralizado e No Estruturado. Super-Ns: KaZaA Inundao: Gnutella

unesp - IBILCE - SJRP

Aplicao: Troca de Mensagens


IM (Instant Messaging) Aplicao popular na Internet, pela facilidade de

enviar mensagens on-line.

Exemplos:
MSN Messenger (http://messenger.msn.com) Yahoo! Messenger (http://messenger.yahoo.com) ICQ (http://web.icq.com) Jabber (http://ww.jabber.org)

Prof. Dr. Adriano Mauro Cansian

45

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Aplicao: Compartilhamento de Arquivos


Aplicao de maior sucesso na Internet.

Permite usurios compartilharem diretamente seus arquivos, msicas, vdeos, etc... Pode apresentar problemas de violao de direitos. rea de armazenamento. Disponibilidade de informaes. Anonimato. Gerenciamento.

Caractersticas

unesp - IBILCE - SJRP

Compartilhamento: Aplicaes
Napster (http://www.napster.com) KaZaA (http://www.kazaa.com) Gnutella (http://www.gnutella.com) BearShare (http://www.bearshare.com) LimeWire (http://www.limewire.com) Freenet (http://www.freenetproject.org) Imesh (http://www.imesh.com) Morpheus (http://www.morpheus.com) Grokster (http:// www.grokster.com) Bittorent (http://www.bittorent.com)

Prof. Dr. Adriano Mauro Cansian

46

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Aplicaes: Computao Distribuda


Idia de aproveitar recursos computacionais ociosos

no nova. Grade Computacional (Grid)

Soluo de computao distribuda para engenharia e cincias, baseada em compartilhamento de recursos em larga escala. Semelhanas e diferenas com P2P.

SETI@Home (http://setiathome.ssl.berkeley.edu) The Search for Extraterrestrial Intelligence Usurios executam partes da busca.

unesp - IBILCE - SJRP

SETI@Home

Prof. Dr. Adriano Mauro Cansian

47

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Questes de Projeto P2P

unesp - IBILCE - SJRP

Questo: endereamento
Comunicao P2P pura necessita de conexes diretas

entre os peers. Barreiras de endereamento/proteo impedem essa comunicao direta.


DNS: s traduz os endereos das mquinas que o administrador da rede quer revelar. Firewall: bloqueia a comunicao de entrada/sada da rede, de acordo com critrios de segurana. NAT (Network Address Translation): traduz endereos de rede interna (ex.: 10.0.1.1, 172.16.4.22, 192.168.0.4) em endereos pblicos (ex.: 200.249.188.1, 150.161.2.1) Proxy: interpem-se na comunicao fim a fim (http) para filtrar pginas indesejveis.

Prof. Dr. Adriano Mauro Cansian

48

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Contornando o DNS
Cadastro prprio Napster, ICQ, Groove Endereos IP de membros da rede.

Gnutella, KaZaA, Overnet SETI@Home.

Endereos IP de servidores fixos.

unesp - IBILCE - SJRP

Contornando o Firewall: KaZaA (normal)


Cliente KaZaA na sua rede
Cliente responde ao pedido com o arquivo solicitado

4 3

Cliente inicia a conexo com o cliente que tem o arquivo

Cliente KaZaA na rede remota

Lista de Arquivos

Rede KaZaA
Cliente envia a lista dos arquivos compartilhados para a rede Rede informa o ID do cliente para buscar o arquivo

Cliente procura arquivo disponvel na rede

Operao normal do KaZaA verso 2

Prof. Dr. Adriano Mauro Cansian

49

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Contornando o Firewall: KaZaA


(bloqueio entrada)
Cliente KaZaA na sua rede
Cliente inicia a conexo e envia o arquivo

Cliente KaZaA na rede remota

X
Lista de Arquivos

Cliente inicia a conexo com o cliente que tem o arquivo e bloqueado

3 2
Cliente procura arquivo disponvel na rede

Cliente envia a lista dos arquivos compartilhados para a rede Rede comunica o cliente do bloqueio

Rede KaZaA
Rede informa o ID do cliente para buscar o arquivo

Cliente informa a rede que o outro est bloqueado

Operao quando o KaZaA bloqueado (porta 1214 na entrada)

unesp - IBILCE - SJRP

Contornando o Firewall: KaZaA


(bloqueio entrada e sada)
Cliente KaZaA na sua rede
Cliente inicia a conexo e envia o arquivo

Cliente KaZaA na rede remota

1
Lista de Arquivos

X
X

Cliente inicia a conexo com o cliente que tem o arquivo e bloqueado

4 3
Rede informa o ID do cliente para buscar o arquivo Cliente procura arquivo disponvel na rede

Cliente envia a lista dos arquivos compartilhados para a rede

2 6
Rede comunica o cliente do bloqueio

Rede KaZaA

Tenta sair nas portas:


1214/TCP BLOQUEADA 1215/TCP BLOQUEADA MUITAS OUTRAS/TCP BLOQUEADA Tenta centenas de portas, incluindo: 80, 53, 1024, etc

Cliente informa a rede que o outro est bloqueado

Operao quando o KaZaA bloqueado (porta 1214 entrada/sada)

Prof. Dr. Adriano Mauro Cansian

50

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Contornando o NAT (situao)


NATs so projetados para o modelo cliente/

servidor.

Clientes iniciam (active open) a conexo com servidores bem conectados com endereos estveis e nomes DNS. Mquinas internas podem iniciar conexo com mquinas externas. Mquinas externas NO podem iniciar conexo com mquinas internas (mesmo sabendo endereo IP e porta).

Assimetria:

unesp - IBILCE - SJRP

Contornando NAT (tcnicas)


http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt

Intermediao (relaying). Conexo reversa Uma mquina tem endereo IP vlido. Perfurao de buracos UDP (hole punching)

Variao: predio no nmero de porta Requer sincronizao precisa de pacotes SYN e predio do prximo nmero de porta

Abertura simultnea de conexo TCP

Uso do protocolo Midcom


http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt

Prof. Dr. Adriano Mauro Cansian

51

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Questo: Conectividade
Heterogeneidade de conexes dos peers Tecnologia / capacidade (banda) / assimetria. Muitos peers em conexes de baixa capacidade e

alta instabilidade. Poucos peers em conexes de alta capacidade e baixa instabilidade. Indcios de que as redes P2P apresentem caractersticas Small World

Distribuies de lei de potncia (Power Law)

unesp - IBILCE - SJRP

Questo: Escalabilidade
benefcio imediato da descentralizao. Limitaes da escalabilidade:

Quantidade de operaes centralizadas. Manuteno de estado (usurios/aplicaes), etc... Em um sistema P2P, o nmero de servidores aumenta com o nmero de clientes. Napster, Gnutella, Freenet

P2P mais escalvel que cliente/servidor.

Problemas de escalabilidade em P2P

Sistemas P2P estruturados (DHT) so escalveis.

Prof. Dr. Adriano Mauro Cansian

52

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Questo: Roteamento
Localizar informao em rede grande, voltil e

distribuda no simples.
Localizao e busca de informao dependem

do roteamento utilizado.
Abordagens comuns:

Modelo Centralizado Modelo por Inundao Modelo de Super-Ns Modelo DHT

unesp - IBILCE - SJRP

Modelo Centralizado
Diretrio central

Iron Maiden ?

Prof. Dr. Adriano Mauro Cansian

53

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Modelo por Inundao

unesp - IBILCE - SJRP

Modelo por Inundao

Prof. Dr. Adriano Mauro Cansian

54

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Modelo de Super-Ns

Super-Ns

unesp - IBILCE - SJRP

Modelo DHT
Hash Estrutura de dados importantes para desenvolvimento. Hash distribudo na escala da Internet Importante para sistemas distribudos grandes. Sistemas P2P. Espelhamento de servidores Web.

Prof. Dr. Adriano Mauro Cansian

55

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

DHT: Funcionamento
Funo de hash mapeia objeto para um

identificador nico.

Ex: hash(Aquarela do Brasil) 8045

Faixa de resultados da funo de hash

distribuda pela rede.

unesp - IBILCE - SJRP

DHT: Funcionamento
Cada n deve conhecer pelo menos uma

cpia do objeto que foi colocado na sua faixa de hash.


Localizao dos objetos

Ns armazenam os objetos que so mapeados para a sua faixa de hash. Ns armazenam apontadores para os objetos na sua faixa.

Prof. Dr. Adriano Mauro Cansian

56

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

DHT: Roteamento
Para cada objeto, o n (os ns) cuja faixa

cobre o objeto deve ser alcanvel por um caminho curto.

De qualquer outro n.

Em geral, qualquer funo aleatria de hash

boa suficiente.

Padro SHA-1 (coliso praticamente impossvel)

unesp - IBILCE - SJRP

DHT: Idia Bsica

Prof. Dr. Adriano Mauro Cansian

57

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

DHT: Idia Bsica

insere (K1,V1)

unesp - IBILCE - SJRP

DHT: Idia Bsica

insere (K1,V1)

Prof. Dr. Adriano Mauro Cansian

58

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

DHT: Idia Bsica

unesp - IBILCE - SJRP

Aplicaes mais populares

118

Prof. Dr. Adriano Mauro Cansian

59

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Naspter
Primeiro programa de compartilhamento

massivo de arquivos atravs de P2P. Shawn Fanning.


Primeira verso: 1999 Popularidade: incio de 2000. Pico: 2001 8 M users/dia 20 M msicas / dia. No incio de 2001 no resistiu a uma srie de aes legais e o servio foi fechado em maro.
Batalha judicial com a RIAA*

Novembro de 2002 direitos para a Roxio.

* Recording Industry Association of America.

unesp - IBILCE - SJRP

Naspter simplificado
Quando um par se conecta, ele informa ao

servidor central:

Endereo IP. Contedo.

Alice procura por Hey Jude. Servidor central informa onde existe este

arquivo. Alice requisita o arquivo de Bob.

Prof. Dr. Adriano Mauro Cansian

60

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Napster: funcionamento
1. Cliente se conecta com servidor e envia a sua 2. 3. 4. 5.

lista de arquivos compartilhados. Cliente envia palavras-chave para fazer busca na lista completa. Cliente testa taxa de transmisso dos pares que tm o arquivo solicitado (ping). Peers respondem (pong). O arquivo transferido diretamente entre os pares.

unesp - IBILCE - SJRP

P2P: diretrio centralizado

Prof. Dr. Adriano Mauro Cansian

61

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Napster: funcionamento (1)

usurios

unesp - IBILCE - SJRP

Napster: funcionamento (2)

pedidos e resultados

usurio

Prof. Dr. Adriano Mauro Cansian

62

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Napster: funcionamento (3)

usurio

unesp - IBILCE - SJRP

Napster: funcionamento (4)

recupera arquivos

usurio

Prof. Dr. Adriano Mauro Cansian

63

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Napster - Problemas
Servidor centralizado Ponto nico de falhas. Pode usar o DNS para balancear carga entre servidores. Sujeito a congestionamentos. Sob controle total do Napster.
Apenas iluso de liberdade.

Nenhuma segurana: Sem criptografia. Sem autenticao. Sem privacidade (identidade revelada).

unesp - IBILCE - SJRP

Gnutella (1)
Sistema de busca totalmente distribudo.

Protocolo aberto.

Busca baseada em inundao (flooding). Histria:

14/03/2000: Disponibilizado sob licena pblica GNU no servidor web da Nullsoft (pertencente AOL). Retirado apenas algumas horas depois. Tarde demais: muitos usurios fizeram download. O protocolo Gnutella foi descoberto atravs de engenharia reversa. Outros clientes foram disponibilizados e Gnutella comeou a se popularizar.

Prof. Dr. Adriano Mauro Cansian

64

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Gnutella (2)
A sua principal caracterstica a busca

distribuda.
Problema: Trfego gerado = Escalabilidade. Despertou grande interesse na comunidade

acadmica.

No depende de servidor central. Problema inicial: descobrir algum n que est na rede. Depois, j est na rede.

unesp - IBILCE - SJRP

Protocolo Gnutella
Compartilhamento sobre uma rede de overlay Ns mantm conexes TCP abertas. Mensagens so difundidas (inundadas) ou ento propagadas de volta. Protocolo:
Propagao de volta PONG QUERY HIT GET, PUSH

Inundao Participao Consulta Transferncia de arquivos PING QUERY

N a n

Prof. Dr. Adriano Mauro Cansian

65

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Query flooding: Gnutella


Rede de cobertura: grafo. Aresta entre o par X e o Y se no h uma

conexo TCP Todos os pares ativos e arestas esto na rede de sobreposio. Aresta no um enlace fsico Um determinado par ser tipicamente conectado a < 10 vizinhos na rede de sobreposio.

2 - 131

unesp - IBILCE - SJRP

Gnutella: protocolo
Mensagem de consulta (query) enviada pelas conexes TCP existentes Os pares encaminham a mensagem de consulta. QueryHit (encontro) enviado pelo caminho reverso.

Para resolver problemas de escalabilidade: flooding de alcance limitado.

Prof. Dr. Adriano Mauro Cansian

66

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Gnutella: conectando pares


Para conectar o par X, ele precisa encontrar algum

outro par na rede Gnutella: utiliza a lista de pares candidatos.


X seqencialmente, tenta fazer conexo TCP com

os pares da lista, at estabelecer conexo com Y.


X envia mensagem de ping para Y;

Y encaminha a mensagem de ping aos vizinhos.

Todos os pares que recebem a mensagem de ping

respondem com mensagens de pong.


X recebe vrias mensagens de pong.

Ele pode ento estabelecer conexes TCP adicionais.

unesp - IBILCE - SJRP

Gnutella: Mecanismo de busca


1 2 7 A 4

Passos: 1. N 2 inicia busca do arquivo A


6

Prof. Dr. Adriano Mauro Cansian

67

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Gnutella: Mecanismo de busca


A 1 2 A 7 4

Passos: 1. N 2 inicia busca do arquivo A. 2. Envia mensagens a vizinhos.

unesp - IBILCE - SJRP

Gnutella: Mecanismo de busca


A 1 2 4 A 7

Passos: 1. N 2 inicia busca do arquivo A. 2. Envia mensagens a vizinhos. 3. Vizinhos encaminham mensagem.

Prof. Dr. Adriano Mauro Cansian

68

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Gnutella: Mecanismo de busca


A:7 1 2 7 4 A

A:5

Passos: 1. N 2 inicia busca arquivo A. 2. Envia mensagens a vizinhos. 3. Vizinhos encaminham mensagem. 4. Ns com arquivo A enviam mensagem de resposta.

unesp - IBILCE - SJRP

Gnutella: Mecanismo de busca


1 2 7 4 A:7

A:5

A 6

Passos: 1. N 2 inicia busca arquivo A. 2. Envia mensagens a vizinhos. 3. Vizinhos encaminham mensagem. 4. Ns com arquivo A enviam. mensagem de resposta. 5. Mensagem de resposta propagada de volta.

Prof. Dr. Adriano Mauro Cansian

69

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Gnutella: Mecanismo de busca


1 2 7 A:7 A:5 4

Passos: 1. N 2 inicia busca arquivo A. 2. Envia mensagens a vizinhos. 3. Vizinhos encaminham mensagem. 4. Ns com arquivo A enviam mensagem de resposta. 5. Mensagem de resposta propagada de volta.

unesp - IBILCE - SJRP

Gnutella: Mecanismo de busca


download A
1 2 4 7

Passos: 1. N 2 inicia busca arquivo A. 2. Envia mensagens a vizinhos. 3. Vizinhos encaminham mensagem. 4. Ns com arquivo A enviam mensagem de resposta. 5. Mensagem de resposta propagada de volta. 6. Arquivo A transferido.

Prof. Dr. Adriano Mauro Cansian

70

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Gnutella - Comentrios
Verses mais novas do protocolo Gnutella

utilizam conceito de super-ns para minimizar o trfego de inundao.

unesp - IBILCE - SJRP

KaZaA
Software proprietrio. Tentativa de implementar reputao. Protocolo FastTrack Outros clientes

Verso pirata: KaZaA Lite Morpheus, Grokster Descentralizada e no estruturada. Hierrquica: Baseada em super-ns (supernodes).

Arquitetura:

Prof. Dr. Adriano Mauro Cansian

71

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Explorando heterogeneidade: KaZaA


Cada par ou um lder de

grupo ou est atribudo a um lder de grupo.


Conexo TCP entre o par

e seu lder de grupo.


Conexes TCP entre

alguns pares de lderes de grupo.


O lder de grupo

acompanha o contedo em todos os seus discpulos.

unesp - IBILCE - SJRP

KaZaA funcionamento (1)


Cada arquivo possui um hash e um descritor. O cliente envia a consulta de palavra-chave para o

seu lder de grupo.


O

lder de grupo responde com os matches:

Para cada match: metadata, hash, endereo IP. Se o lder de grupo encaminha a consulta para

outros lderes de grupo, eles respondem com os encontros. O cliente ento seleciona os arquivos para download

Requisies HTTP usando hash como identificador so enviadas aos pares que contm o arquivo desejado.

Prof. Dr. Adriano Mauro Cansian

72

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

KaZaA funcionamento (2)

145

unesp - IBILCE - SJRP

Artifcios do KaZaA
Limitaes em uploads simultneos. Requisita enfileiramento. Incentiva prioridades. Realiza downloads em paralelo.

2 - 146

Prof. Dr. Adriano Mauro Cansian

73

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

BitTorrent
Bram Cohen Abril de 2001. Procolo aberto. Descentralizado. Modelo hbrido. DHT (Kademlia). Implementado pelo Azureus (atual Vuze)

147

unesp - IBILCE - SJRP

BitTorrent (2)
Tracker.

Peer cria um arquivo de metadata: .torrent contendo um hash do que vai ser compartilhado. Envia para o tracker servidor supernode. Clientes buscam informaes dos compartilhamento nos trackers.
Tambm possibilidade de operao trackerless e multitracker.

Clientes:

BitTorrent, Torrent, rTorrent, KTorrent, BitComet DHT Vuze (Ex-Azureus) suporta trackerless (incompatvel com DHT, apesar de que desenvolveu o DHT primeiro).
148

Prof. Dr. Adriano Mauro Cansian

74

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

BitTorrent- funcionamento

149

unesp - IBILCE - SJRP

Programao com sockets


Como funcionam as aplicaes cliente/servidor

150

Prof. Dr. Adriano Mauro Cansian

75

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Programao com sockets

API Sockets
Surgiu em BSD4.1 UNIX, 1981 Explicitamente criados, usados

e liberados por aplicaes.


Paradigma cliente/servidor Dois tipos de servio de

transporte via API Sockets


Datagrama no confivel Fluxo de bytes, confivel

151

unesp - IBILCE - SJRP

Programao com sockets usando TCP


Socket: uma porta entre o processo de aplicao e um protocolo de transporte fim-a-fim (UDP ou TCP) Servio TCP: transferncia confivel de bytes de um processo para outro
controlado pelo programador de aplicao controlado pelo sistema operacional controlado pelo programador de aplicao controlado pelo sistema operacional

processo socket TCP com buffers, variveis

processo socket TCP com buffers, variveis

internet

estao ou servidor

estao ou servidor
152

Prof. Dr. Adriano Mauro Cansian

76

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Programao com sockets usando TCP


Cliente deve contactar servidor: Quando cliente cria socket: TCP do cliente estabelece conexo ao Processo servidor deve antes servidor TCP estar em execuo Quando contactado pelo cliente, Servidor deve antes ter criado servidor TCP cria socket novo socket (porta) que aguarda processo servidor poder se contato do cliente comunicar com o cliente. Permite que o servidor Cliente contacta servidor por: converse com mltiplos Criar socket TCP local ao clientes. cliente Especificar endereo IP, ponto de vista da aplicao nmero de porta do processo TCP prov transferncia servidor confivel, ordenada de bytes (tubo) entre cliente e servidor
153

unesp - IBILCE - SJRP

Programao com sockets usando TCP


Exemplo de aplicaao clienteservidor: Cliente l linha da entrada padro (fluxo doUsurio), envia para servidor via socket (fluxo paraServidor). Servidor l linha do socket. Servidor converte linha para letra maiscula, e devolve para o cliente. Cliente l linha modificado do socket (fluxo doServidor), imprime-a
Input stream: seqncia de bytes para dentro do processo. Output stream: seqncia de bytes para fora do processo.

pparaServidor

doUsurio

socket do cliente
154

Prof. Dr. Adriano Mauro Cansian

doServidor

77

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Interaes cliente/servidor com socket: TCP


Servidor
(roda em idHosp)

Cliente

cria socket, porta=x, para receber pedido: socketRecepo = ServerSocket () aguarda chegada de setup pedido de conexo socketConexo = socketRecepo.accept() l pedido de socketConexo escreve resposta para socketConexo fecha socketConexo

TCP da conexo

cria socket, abre conexo a idHosp, porta=x socketCliente = Socket() Envia pedido usando socketCliente

l resposta de socketCliente fecha socketCliente 155

unesp - IBILCE - SJRP

Exemplo: cliente Java TCP (1)


import java.io.*; import java.net.*; class ClienteTCP { Contm classe para streams de I/O Contm classes para suporte a rede

public static void main(String argv[]) throws Exception { String frase; String fraseModificada; Cria fluxo de entrada Cria socket de cliente, conexo ao servidor Cria fluxo de sada anexado ao socket BufferedReader doUsuario = new BufferedReader(new InputStreamReader(System.in)); Socket socketCliente = new Socket(idHosp", 6789); DataOutputStream paraServidor = new DataOutputStream(socketCliente.getOutputStream());

156

Prof. Dr. Adriano Mauro Cansian

78

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Exemplo: cliente Java TCP (2)


Cria fluxo de entrada ligado ao socket BufferedReader doServidor = new BufferedReader(new InputStreamReader(socketCliente.getInputStream())); frase = doUsuario.readLine(); Envia linha ao servidor L linha do servidor paraServidor.writeBytes(frase + '\n'); fraseModificada = doServidor.readLine(); System.out.println(Do Servidor: " + fraseModificada); socketCliente.close(); } }
157

unesp - IBILCE - SJRP

Exemplo: servidor Java TCP (1)


import java.io.*; import java.net.*; class servidorTCP { public static void main(String argv[]) throws Exception { String fraseCliente; StringfFraseMaiusculas; ServerSocket socketRecepcao = new ServerSocket(6789); while(true) { Socket socketConexao = socketRecepcao.accept(); BufferedReader doCliente = new BufferedReader(new InputStreamReader(socketConexao.getInputStream()));

Cria socket para recepo na porta 6789

Aguarda, no socket para recepo, o contato do cliente Cria fluxo de entrada, ligado ao socket

158

Prof. Dr. Adriano Mauro Cansian

79

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Exemplo: servidor Java TCP (2)


Cria fluxo de sada, ligado ao socket L linha do socket Escreve linha para o socket } } Final do lao while. Volta ao incio e aguarda conexo de outro cliente DataOutputStream paraCliente = new DataOutputStream(socketConexo.getOutputStream()); fraseCliente= doCliente.readLine(); fraseEmMaiusculas= fraseCliente.toUpperCase() + '\n'; paraClient.writeBytes(fraseEmMaiusculas); }

159

unesp - IBILCE - SJRP

Programao com sockets usando UDP


UDP: no tem conexo entre cliente e servidor. No tem handshaking Remetente coloca explicitamente endereo IP e porta do destino. Servidor deve extrair endereo IP, porta do remetente do datagrama recebido Dados transmitidos podem ser recebidos fora de ordem, ou perdidos.

ponto de vista da aplicao UDP prov transferncia no confivel de grupos de bytes (datagramas) entre cliente e servidor

160

Prof. Dr. Adriano Mauro Cansian

80

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Interaes cliente/servidor com socket: UDP


Servidor
(executa em idHosp)

Cliente
cria socket, = socketCliente DatagramSocket() cria, enderea (idHosp, porta=x, envia pedido em datagrama usando socketCliente

cria socket, porta=x, para pedido que chega: socketServidor = DatagramSocket()

l pedido do socketServidor escreve resposa ao socketServidor especificando endereo IP, nmero de porta do cliente

l resposa do socketCliente fecha socketCliente

161

unesp - IBILCE - SJRP

Exemplo: cliente Java UDP (1)


import java.io.*; import java.net.*; class clienteUDP { public static void main(String args[]) throws Exception { BufferedReader do Usuario= new BufferedReader(new InputStreamReader(System.in)); DatagramSocket socketCliente = new DatagramSocket(); InetAddress IPAddress = InetAddress.getByName(idHosp"); byte[] dadosEnvio = new byte[1024]; byte[] dadosRecebidos = new byte[1024]; String frase = doUsuario.readLine(); dadosEnvio = frase.getBytes();
162

Cria fluxo de enrada Cria socket de cliente Traduz nome de hospedeiro para endereo IP usando DNS

Prof. Dr. Adriano Mauro Cansian

81

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Exemplo: cliente Java UDP (2)


Cria datagrama com dados para enviar, comprimento, endereo IP, porta DatagramPacket pacoteEnviado = new DatagramPacket(dadosEnvio, dadosEnvio.length, IPAddress, 9876); socketCliente.send(pacoteEnviado); DatagramPacket pacoteRecebido = new DatagramPacket(dadosRecebidos, dadosRecebidos.length); socketCliente.receive(pacoteRecebido); String fraseModificada = new String(pacoteRecebido.getData()); System.out.println(Do Servidor:" + fraseModificada); socketCliente.close(); } }
163

Envia datagrama ao servidor L datagrama do servidor

unesp - IBILCE - SJRP

Exemplo: servidor Java UDP (1)


import java.io.*; import java.net.*; class servidorUDP { public static void main(String args[]) throws Exception { DatagramSocket socketServidor = new DatagramSocket(9876); byte[] dadosRecebidos = new byte[1024]; byte[] dadosEnviados = new byte[1024]; while(true) { DatagramPacket pacoteRecebido = new DatagramPacket(dadosRecebidos, dadosRecebidos.length); socketServidor.receive(pacoteRecebido);
164

Cria socket para datagramas na porta 9876

Aloca memria para receber datagrama Recebe datagrama

Prof. Dr. Adriano Mauro Cansian

82

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Exemplo: servidor Java UDP (2)


String frase = new String(pacoteRecebido.getData());

Obtm endereo IP e No. de porta do remetente

InetAddress IPAddress = pacoteRecebido.getAddress(); int port = pacoteRecebido.getPort(); String fraseEmMaiusculas = frase.toUpperCase();

Cria datagrama p/ enviar ao cliente

dadosEnviados = fraseEmMaiusculas.getBytes(); DatagramPacket pacoteEnviado = new DatagramPacket(dadosEnviados, dadosEnviados.length, IPAddress, porta);

socketServidor.send(pacoteEnviado); Escreve } datagrama para o socket } Fim do lao while. } Volta ao incio e aguarda chegar outro datagrama.

165

unesp - IBILCE - SJRP

Captulo 2: Sumrio
Requisitos do servio de

aplicao:

Confiabilidade, banda, retardo.

Paradigma cliente-servidor. Modelo de servio do

transporte orientado a conexo, confivel da Internet: TCP. Modelo no confivel: datagramas UDP.

166

Prof. Dr. Adriano Mauro Cansian

83

UNESP - IBILCE - SJRP - Curso de Redes de Computadores

Captulo 2

unesp - IBILCE - SJRP

Captulo 2: Sumrio
Mais importante - aprendemos de protocolos:
Troca tpica de mensagens em

pedido/resposta:

Cliente solicita info ou servio. Servidor responde com dados, e cdigo de status. Cabealhos: campos com informaes sobre dados (metadados). Dados: informao sendo comunicada.

Formatos de mensagens:

167

Prof. Dr. Adriano Mauro Cansian

84

Você também pode gostar