1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte: 2b: Camada de Aplicação.

48
1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte: http://wps.aw.com/br_kurose_rede_1/ 2b: Camada de Aplicação

Transcript of 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte: 2b: Camada de Aplicação.

Page 1: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

1

Redes de Computadores 1

Prof. Marcelo DinizFonte: http://wps.aw.com/br_kurose_rede_1/

2b: Camada de Aplicação

Page 2: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 2

Capítulo 2: Roteiro

2.1 Princípios de aplicações de rede

2.2 A Web e o HTTP 2.3 Transferência de

arquivo: FTP 2.4 Correio

Eletrônico na Internet

2.5 DNS: o serviço de diretório da Internet

2.6 Aplicações P2P 2.7 Programação de

sockets com TCP 2.8 Programação de

sockets com UDP 2.9 Construindo um

servidor Web simples

Page 3: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 3

DNS: Domain Name System

Pessoas: muitos identificadores: CPF, nome, no. da

Identidade

hospedeiros, roteadores Internet : endereço IP (32 bit) -

usado p/ endereçar datagramas

“nome”, ex., jambo.ic.uff.br - usado por gente

P: como mapear entre nome e endereço IP?

Domain Name System: base de dados distribuída

implementada na hierarquia de muitos servidores de nomes

protocolo de camada de aplicação permite que hospedeiros, roteadores, servidores de nomes se comuniquem para resolver nomes (tradução endereço/nome) nota: função imprescindível

da Internet implementada como protocolo de camada de aplicação

complexidade na borda da rede

Page 4: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 4

DNS (cont.)

Serviços DNS Tradução de nome de

hospedeiro para IP Apelidos para

hospedeiros (aliasing) Nomes canônicos e

apelidos

Apelidos para servidores de e-mail

Distribuição de carga Servidores Web replicados:

conjunto de endereços IP para um nome canônico

Por que não centralizar o DNS?

ponto único de falha volume de tráfego base de dados

centralizada e distante manutenção (da BD)

Não é escalável!

Page 5: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 5

Root DNS Servers

com DNS servers org DNS servers edu DNS servers

poly.eduDNS servers

umass.eduDNS servers

yahoo.comDNS servers

amazon.comDNS servers

pbs.orgDNS servers

Base de Dados Hierárquica e Distribuída

Cliente quer IP para www.amazon.com; 1a aprox: Cliente consulta um servidor raiz para encontrar um

servidor DNS .com Cliente consulta servidor DNS .com para obter o

servidor DNS para o domínio amazon.com Cliente consulta servidor DNS do domínio amazon.com

para obter endereço IP de www.amazon.com

Page 6: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 6

DNS: Servidores raiz

procurado por servidor local que não consegue resolver o nome

servidor raiz: procura servidor oficial se mapeamento desconhecido obtém tradução devolve mapeamento ao servidor local

13 servidores de nome raiz em todo o mundo

a Verisign, Dulles, VAc Cogent, Herndon, VA (also Los Angeles)d U Maryland College Park, MDg US DoD Vienna, VAh ARL Aberdeen, MDj Verisign, ( 11 locations)

b USC-ISI Marina del Rey, CAl ICANN Los Angeles, CA

e NASA Mt View, CAf Internet Software C. Palo Alto, CA (and 17 other locations)

i Autonomica, Stockholm (plus 3 other locations)

k RIPE London (also Amsterdam, Frankfurt)

m WIDE Tokyo

Page 7: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 7

Servidores TLD e Oficiais

Servidores Top-level domain (TLD) : servidores DNS responsáveis por domínios com, org, net,

edu, etc, e todos os domínios de países como br, uk, fr, ca, jp.

Network Solutions mantém servidores para domínio .com NIC.br (Registro .br) para domínio .br

Servidores oficiais: servidores DNS das organizações, provendo

mapeamentos oficiais entre nomes de hospedeiros e endereços IP para os servidores da organização (e.x., Web e correio).

Podem ser mantidos pelas organizações ou pelo provedor de acesso

Page 8: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

Domínios Registrados por DPN(Domínio de Primeiro Nível)

28/09/09

2b: Camada de Aplicação 8

Page 9: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 9

Servidor de Nomes Local

Não pertence necessariamente à hierarquia

Cada ISP (ISP residencial, companhia, universidade) possui um. Também chamada do “servidor de nomes

default” Quanto um hospedeiro faz uma consulta

DNS, a mesma é enviada para o seu servidor DNS local Atua como um intermediário, enviando

consultas para a hierarquia.

Page 10: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 10

solicitantecis.poly.edu

gaia.cs.umass.edu

servidor raiz

servidor local dns.poly.edu

1

23

4

5

6

servidor oficialdns.cs.umass.edu

78

servidor TLD

Exemplo de resolução de nome pelo DNS Hospedeiro em

cis.poly.edu quer endereço IP para gaia.cs.umass.edu

consulta interativa: servidor consultado

responde com o nome de um servidor de contato

“Não conheço este nome, mas pergunte para esse servidor”

Page 11: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 11

consulta recursiva: transfere a

responsabilidade de resolução do nome para o servidor de nomes contatado

carga pesada?

Exemplo de resolução de nome pelo DNS

solicitantecis.poly.edu

gaia.cs.umass.edu

servidor DNS raiz

servidor DNS localdns.poly.edu

1

2

45

6

servidor DNS oficialdns.cs.umass.edu

7

8

servidor TLD

3

Page 12: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 12

DNS: uso de cache, atualização de dados

uma vez que um servidor qualquer aprende um mapeamento, ele o coloca numa cache local entradas na cache são sujeitas a

temporização (desaparecem depois de um certo tempo)

Servidores TLD tipicamente armazenados no cache dos servidores de nomes locais

• Servidores raiz acabam não sendo visitados com muita freqüência

estão sendo projetados pela IETF mecanismos de atualização/notificação dos dados RFCs 2136, 3007, 4033/4/5 http://www.ietf.org/html.charters/dnsext-charter.html

Page 13: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 13

Registros DNSDNS: BD distribuído contendo registros de recursos (RR)

Tipo=NS nome é domínio (p.ex.

foo.com.br) valor é endereço IP de

servidor oficial de nomes para este domínio

formato RR: (nome, valor, tipo, sobrevida)

Tipo=A nome é nome de

hospedeiro valor é o seu endereço

IP

Tipo=CNAME nome é nome

alternativo (alias) para algum nome “canônico” (verdadeiro)

valor é o nome canônico

Tipo=MX nome é domínio valor é nome do servidor

de correio para este domínio

Page 14: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 14

DNS: protocolo e mensagens

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

cabeçalho de msg identificação: ID de 16 bit

para pedido, resposta ao pedido usa mesmo ID

flags: pedido ou resposta recursão desejada recursão permitida resposta é oficial

Page 15: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 15

DNS: protocolo e mensagens

Page 16: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 16

Inserindo registros no DNS

Exemplo: acabou de criar a empresa “Network Utopia”

Registra o nome netutopia.com.br em uma entidade registradora (e.x., Registro.br) Tem de prover para a registradora os nomes e endereços

IP dos servidores DNS oficiais (primário e secundário) Registradora insere dois RRs no servidor TLD .br:

(netutopia.com.br, dns1.netutopia.com.br, NS)(dns1.netutopia.com.br, 212.212.212.1, A)

Põe no servidor oficial um registro do tipo A para www.netutopia.com.br e um registro do tipo MX para netutopia.com.br

Como as pessoas vão obter o endereço IP do seu site?

Page 17: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 17

Capítulo 2: Roteiro

2.1 Princípios de aplicações de rede

2.2 A Web e o HTTP 2.3 Transferência de

arquivo: FTP 2.4 Correio

Eletrônico na Internet

2.5 DNS: o serviço de diretório da Internet

2.6 Aplicações P2P 2.7 Programação de

sockets com TCP 2.8 Programação de

sockets com UDP 2.9 Construindo um

servidor Web simples

Page 18: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 18

Arquitetura P2P pura

sem servidor sempre ligado

sistemas finais arbitrários se comunicam diretamente

pares estão conectados de forma intermitente e mudam seus endereços IP

Três tópicos: Distribuição de arquivos Busca de informações Estudo de caso: Skype

par-par

Page 19: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 19

Distribuição de Arquivo: C/S x P2PPergunta: Quanto tempo leva para distribuir

um arquivo de um servidor para N pares?

us

u2d1 d2u1

uN

dN

Servidor

Rede (combanda abundante)

Arquivo, tamanho F

us: banda de upload do servidor

ui: banda de upload do par i

di: banda de download do par i

Page 20: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 20

Tempo de distribuição do arquivo: C/S

us

u2d1 d2u1

uN

dN

Servidor

Rede (combanda abundante)

F servidor envia

seqüencialmente N cópias: Tempo = NF/us

cliente i leva F/di

para o download

cresce linearmente com N(para grandes N)

= dcs = max { NF/us, F/min(di) }i

Tempo para distribuir F para N clientes usando

abordagem cliente/servidor

Page 21: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 21

Tempo de distribuição do arquivo: P2P

servidor deve enviar uma cópia: F/us

cliente i leva F/di para o download

NF bits devem ser baixados (agregado)

taxa de upload mais rápida: us + ui

dP2P = max { F/us, F/min(di) , NF/(us + ui) }i

us

u2d1 d2u1

uN

dN

Servidor

Rede (combanda abundante)

F

Page 22: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 22

0

0.5

1

1.5

2

2.5

3

3.5

0 5 10 15 20 25 30 35

N

Min

imu

m D

istr

ibut

ion

Tim

e P2P

Client-Server

Cliente/Servidor x P2P: exemplo

Taxa de upload do cliente= u, F/u = 1 hora, us = 10u, dmin ≥ us

Page 23: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 23

Distribuição de arquivo: BitTorrent

tracker: registra pares Participantes de uma torrente

torrente: grupo de pares trocando

pedaços de um arquivo

obtém listados pares

troca depedaços

peer

Distribuição de arquivo P2P

Page 24: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 24

BitTorrent (1)

arquivo dividido em pedaços de 256KB.

par que se une à torrente: não tem nenhum pedaço, mas irá acumulá-los com o

tempo registra com o tracker para obter lista dos pares,

conecta a um subconjunto de pares (“vizinhos”) enquanto faz o download, par carrega pedaços para

outros pares Pares podem entrar e sair quando o par obtém todo o arquivo, ele pode

(egoisticamente) sair ou permanecer (altruisticamente)

Page 25: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

BitTorrent (2)

Obtendo Pedaços num determinado

instante, pares distintos possuem diferentes subconjuntos dos pedaços do arquivo

periodicamente, um par (Alice) pede a cada vizinho a lista de pedaços que eles possuem

Alice envia pedidos para os pedaços que ainda não tem

Primeiro os mais raros

Enviando pedaços: toma lá, dá cá!

Alice envia pedaços para quatro vizinhos que estejam lhe enviando pedaços na taxa mais elevada

Reavalia os 4 mais a cada 10 segs

a cada 30 segs: seleciona aleatoriamente outro par, começa a enviar pedaços

o par recém escolhido pode se unir aos 4 mais

“optimistically unchoke”

2b: Camada de Aplicação 25

Page 26: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 26

BitTorrent: toma lá, dá cá!(1) Alice “optimistically unchokes” Bob

(2) Alice se torna um dos quatro melhores provedores de Bob; Bob age da mesma forma

(3) Bob se torna um dos quatro melhores provedores de Alice

Com uma taxa de upload mais alta, pode encontrar melhores parceiros de troca e obter o arquivo mais rapidamente!

Page 27: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2: Application Layer 27

P2P: busca por informação

Compartilhamento de arquivos (ex: e-mule)

O índice registra dinamicamente as localizações dos arquivos compartilhados pelos pares

Pares devem informar ao índice os conteúdos que possuem

Pares buscam no índice para descobrir onde pode encontrar os arquivos.

Mensagens instantâneas O índice mapeia os

nomes de usuários a locais.

Quando o usuário inicia uma aplicação de MI, ele deve informar ao índice qual é a sua localização atual.

Pares buscam no índice o endereço IP de um contato.

Índice no sistema P2P: mapeia informação à localização de um par(localização = endereço IP & número de porta).

Page 28: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 28

Compartilhamento de arquivos P2PExemplo Alice executa aplicação

cliente P2P no seu notebook

Periodicamente ela se conecta à Internet e recebe um novo endereço IP a cada conexão

Pede a música “Hey Jude” A aplicação apresenta

uma lista de outros parceiros que possuem uma cópia de Hey Jude.

Alice escolhe um dos parceiros, Bob.

O arquivo é copiado do PC de Bob para o notebook de Alice: HTTP

Enquanto Alice está baixando a música, outros usuários podem estar pegando arquivos do seu computador.

O parceiro de Alice é tanto um cliente Web como um servidor Web temporário.

Todos os parceiros são servidores = altamente escalável!

Page 29: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 29

P2P: diretório centralizado

Projeto original do Napster

1) Quando um parceiro conecta ele informa ao servidor central o seu: endereço IP conteúdo

2) Alice consulta sobre a música “Hey Jude”

3) Alice solicita o arquivo a Bob

servidor de diretóriocentralizado

parceiros

Alice

Bob

1

1

1

12

3

Page 30: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 30

P2P: problemas com diretório centralizado Ponto único de falha Gargalo de

desempenho Violação de Direitos

Autorais

a transferência de arquivo é descentralizada, mas a localização do conteúdo é altamente centralizada.

Page 31: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 31

Inundação de consultas

Completamente distribuído Sem servidor central

Protocolo de domínio público

Vários clientes Gnutella implementam o protocolo

Rede sobreposta: grafo Aresta entre pares X e Y

se existe uma conexão TCP

Todos os pares ativos e arestas formam a rede de sobreposição

Aresta não é um enlace físico

Um par vai estar conectado tipicamente com < 10 vizinhos na rede de sobreposição

Page 32: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 32

Inundação de consulta

Consulta

Item achado

Consulta

Consulta

Item achado

Consulta

Consulta

Item ach

ado

Transferência arq:HTTP

Mensagem de consulta enviada pelas conexões TCP existentes Pares repassem mensagem de consulta Resposta sobre item encontrado enviada pelo caminho reverso

Escalabilidade:Inundação com escopo limitado

Page 33: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 33

Gnutella: junção do Par

1. Um par X se juntando deve encontrar algum outro par na rede Gnutella: usa lista de pares candidatos

2. X tenta criar conexões TCP com os pares na lista seqüencialmente até estabelecer conexão com Y

3. X envia mensagem Ping para Y; Y repassa a mensagem Ping

4. Todos os pares recebendo a mensagem Ping respondem com uma mensagem Pong

5. X recebe várias mensagens Pong. Ele pode então estabelecer conexões TCP adicionais

Saída do par: veja problema no livro texto!

Page 34: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 34

Overlay Hierárquico

Cada parceiro é um líder de grupo ou está alocado a um líder de grupo Conexão TCP entre

cada par e o seu líder de grupo

Conexões TCP entre alguns pares de líderes de grupos

O líder de um grupo mantém registro sobre o conteúdo de todos os seus filhos

ordinary peer

group-leader peer

neighoring re la tionshipsin overlay network

Page 35: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2: Application Layer 35

Estudo de caso P2P: Skype

inerentemente P2P: comunicação entre pares de usuários.

protocolo proprietário da camada de aplicação (inferido através de engenharia reversa)

overlay hierárquico com SNs

Índice mapeia nomes dos usuários a endereços IP; distribuído através dos SNs

Skype clients (SC)

Supernode (SN)

Skype login server

Page 36: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2: Application Layer 36

Pares como intermediários (relays) Problema quando

tanto Alice como Bob estão atrás de “NATs”. O NAT impede que um

par externo inicie uma chamada com um par interno

Solução: Intermediário é escolhido,

usando os SNs de Alice e de Bob.

Cada par inicia sessão com o intermediário

Pares podem se comunicar através de NATs através do intermediário

Page 37: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 37

Capítulo 2: Roteiro

2.1 Princípios de aplicações de rede

2.2 A Web e o HTTP 2.3 Transferência de

arquivo: FTP 2.4 Correio

Eletrônico na Internet

2.5 DNS: o serviço de diretório da Internet

2.6 Aplicações P2P 2.7 Programação de

sockets com TCP 2.8 Programação de

sockets com UDP 2.9 Construindo um

servidor Web simples

Page 38: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 38

Programação com sockets

API Sockets apareceu no BSD4.1 UNIX

em 1981 são explicitamente

criados, usados e liberados por apls

paradigma cliente/servidor dois tipos de serviço de

transporte via API Sockets datagrama não confiável fluxo de bytes, confiável

uma interface (uma “porta”), local ao

hospedeiro, criada por e pertencente à

aplicação, e controlado pelo SO, através da qual um processo de aplicação pode tanto enviar como receber mensagens para/de outro processo de

aplicação (remoto ou local)

socket

Meta: aprender a construir aplicações cliente/servidor que se comunicam usando sockets

Page 39: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 39

Programação com sockets usando TCPSocket: uma porta entre o processo de aplicação e um

protocolo de transporte fim-a-fim (UDP ou TCP)Serviço TCP: transferência confiável de bytes de um

processo para outro

processo

TCP combuffers,

variáveis

socket

controlado pelodesenvolvedor de

aplicação

controladopelo sistemaoperacional

estação ouservidor

processo

TCP combuffers,

variáveis

socket

controlado pelodesenvolvedor deaplicação

controladopelo sistemaoperacional

estação ouservidor

internet

Page 40: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 40

Cliente deve contactar servidor

processo servidor deve antes estar em execução

servidor deve antes ter criado socket (porta) que aguarda contato do cliente

Cliente contacta servidor para:

criar socket TCP local ao cliente

especificar endereço IP, número de porta do processo servidor

Quando cliente cria socket: TCP cliente cria conexão com TCP do servidor

Quando contatado pelo cliente, o TCP do servidor cria socket novo para que o processo servidor possa se comunicar com o cliente permite que o servidor

converse com múltiplos clientes

Endereço IP e porta origem são usados para distinguir os clientes (mais no cap. 3)

TCP provê transferência confiável, ordenada de bytes

(“tubo”) entre cliente e servidor

ponto de vista da aplicação

Programação com sockets usando TCP

Page 41: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 41

Comunicação entre sockets

Page 42: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 42

Capítulo 2: Roteiro

2.1 Princípios de aplicações de rede

2.2 A Web e o HTTP 2.3 Transferência de

arquivo: FTP 2.4 Correio

Eletrônico na Internet

2.5 DNS: o serviço de diretório da Internet

2.6 Aplicações P2P 2.7 Programação de

sockets com TCP 2.8 Programação de

sockets com UDP 2.9 Construindo um

servidor Web simples

Page 43: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 43

Programação com sockets usando UDPUDP: não tem “conexão”

entre cliente e servidor não tem “handshaking” remetente coloca

explicitamente endereço IP e porta do destino

servidor deve extrair endereço IP, porta do remetente do datagrama recebido

UDP: dados transmitidos podem ser recebidos fora de ordem, ou perdidos

UDP provê transferência não confiável de grupos de bytes (“datagramas”) entre cliente e servidor

ponto de vista da aplicação

Page 44: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 44

Interações cliente/servidor usando o UDP

fechasocketCliente

Servidor (executa em nomeHosp)

lê resposta dosocketCliente

cria socket,socketCliente = DatagramSocket()

Cliente

cria, endereça (nomeHosp, porta=x,envia pedido em datagramausando socketCliente

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

lê pedido dosocketServidor

escreve resposta ao socketServidorespecificando endereçoIP, número de porta do cliente

Page 45: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 45

Exemplo: Cliente Java (UDP)

UDP

Page 46: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 46

Servidor UDP

Page 47: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 47

Capítulo 2: Roteiro

2.1 Princípios de aplicações de rede

2.2 A Web e o HTTP 2.3 Transferência de

arquivo: FTP 2.4 Correio

Eletrônico na Internet

2.5 DNS: o serviço de diretório da Internet

2.6 Aplicações P2P 2.7 Programação de

sockets com TCP 2.8 Programação de

sockets com UDP 2.9 Construindo um

servidor Web simples

Page 48: 1 Redes de Computadores 1 Prof. Marcelo Diniz Fonte:  2b: Camada de Aplicação.

2b: Camada de Aplicação 48

Servidor Web Simples

Funções do servidor Web: Trata apenas um pedido HTTP por vez Aceita e examina o pedido HTTP Recupera o arquivo pedido do sistema de

arquivos do servidor Cria uma mensagem de resposta HTTP

consistindo do arquivo solicitado precedido por linhas de cabeçalho

Envia a resposta diretamente ao cliente.