Redes de Computadores I

30
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -

description

Redes de Computadores I. Prof. Mateus Raeder. Universidade do Vale do Rio dos Sinos - São Leopoldo -. Sumário. Camada de aplicação Protocolos de aplicação HTTP FTP Exercícios. Camada de aplicação. Metas: - PowerPoint PPT Presentation

Transcript of Redes de Computadores I

Page 1: Redes de  Computadores I

Redes de Computadores I

Prof. Mateus Raeder

Universidade do Vale do Rio dos Sinos- São Leopoldo -

Page 2: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Sumário

• Camada de aplicação

• Protocolos de aplicação– HTTP– FTP

• Exercícios

Page 3: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Camada de aplicação

Metas:• Aprender aspectos

conceituais e de implementação de protocolos de aplicação em redes– Paradigma cliente

/servidor– Modelos de serviço

• Aprender sobre protocolos através do estudo de protocolos populares do nível da aplicação

Conhecer...• ...protocolos específicos:

– http– ftp– smtp– pop– dns

• ...a programação de aplicações de rede.– Programação usando

sockets

Page 4: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Camada de aplicação

• É a camada mais próxima dos usuários• Nas demais camadas, existem 1 ou 2

protocolos principais• Na camada de aplicação, existem vários

protocolos, um para cada tipo de serviço– Além disso, um serviço de rede pode fazer uso

de mais de um protocolo• Ex.: o serviço de e-mail pode utilizar os protocolos

SMTP, POP e IMAP

Page 5: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Camada de aplicação

• Aplicações de rede são a “razão de ser” de uma rede de computadores– Qual a necessidade de

projetar uma rede se não existissem aplicações que fossem usá-la?

• Aplicações de rede são distribuídas em dois ou mais sistemas finais

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

Page 6: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Camada de aplicação

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

• Aplicações comunicam-se através de troca de mensagens– Ex.: Correio eletrônico,

transferência de arquivos, WWW, login remoto, voz, etc...

– As aplicações de rede têm protocolos da camada de aplicação que definem detalhes desta comunicação via troca de mensagens

Page 7: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Protocolos de aplicação

• Protocolos da camada de aplicação:– Não são a aplicação.– APENAS uma “parte” da aplicação.– Define mensagens trocadas por aplicações e ações tomadas

em sua resposta.– Usam serviços providos por protocolos de camadas inferiores

Os processos em dois sistemas diferentes comunicam-se entre si, trocando mensagens através da rede de

computadores.Um processo de emissão cria e emite mensagens na rede;

um processo de recepção recebe estas mensagens e responde possivelmente emitindo mensagens de volta.

Page 8: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Como os processos trocam mensagens

• Um protocolo da camada de aplicação define como os processos de aplicação, funcionando em sistemas de extremidade diferentes, trocam mensagens.

• Detalhadamente, um protocolo da camada de aplicação define:– Os tipos de mensagens trocadas, por exemplo, mensagens

do pedido e mensagens de resposta.– A sintaxe dos vários tipos de mensagem, tais como os

campos na mensagem e como os campos são delineados.– A semântica dos campos, isto é, o significado da informação

nos campos.– As regras para determinar quando e como um processo emite

mensagens e responde às mensagens.

Page 9: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Aplicações de rede

• Um processo é um programa que roda num host.– Dois processos no mesmo

host se comunicam usando comunicação entre processos (interprocess comunnication), definida pelo sistema operacional (SO).

– Dois processos em hosts distintos se comunicam usando um protocolo da camada de aplicação

Um agente de usuário(UA) é uma interfaceentre o usuário e aaplicação de rede.• WWW: browser.• Correio: leitor/compositor de mensagens• Streaming audio/video:tocador (player) de mídia

Page 10: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Paradigma cliente-servidor

• Existem 2 figuras: cliente e servidor– Cliente: solicita um serviço

• Ex.: leitor de correio eletrônico

– Servidor: recebe, processa e responde• Ex.: servidor de correio

Page 11: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Camada de aplicação

• API - Aplication Program Interface:– Interface de programação de aplicações

• Define a interface entre a aplicação e camada de transporte.

• Socket (= tomada) : API da Internet– Dois processos se comunicam enviando dados

para um socket , ou lendo dados de um socket.

Page 12: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Comunicação pelos sockets (1)

• Os dois processos comunicam-se entre si emitindo e recebendo mensagens através de seus sockets.

• O socket de um processo pode ser pensado como do porta do processo:– Um processo emite e recebe mensagens da rede,

através 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 supõe que há um infra-estrutura de transporte no outro lado da porta, a qual transportará a mensagem até a porta do processo do destino.

Page 13: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Como um processo identifica outro ?

• Pergunta: Como um processo pode “identificar”o outro processo com o qual quer se comunicar?

• Endereço IP do host do outro processo.– Por enquanto: basta saber que 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

• “Número de porta” : permite que o hospedeiro receptor determine a qual processo deve ser entregue a mensagem. Exemplo: Porta 80/TCP.

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

Page 14: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Que serviços de transporte a aplicação precisa?

• Quando se desenvolve uma aplicação, deve-se escolher um dos protocolos disponíveis do transporte.– Como você faz esta escolha?

• Estuda-se os serviços fornecidos pelos protocolos disponíveis do transporte, e escolhe-se o protocolo com os serviços que melhor se adaptem às necessidades de sua aplicação.

Page 15: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Perda de dados:• Algumas aplicações (porexemplo áudio) podemtolerar algumas perdas.• Outras (por exemplo,transferência dearquivos, telnet) exigemtransferência 100%confiável

Temporização:• Algumas aplicações(por exemplo,telefonia em Internet,jogos interativos)requerem baixoretardo para serem“viáveis”.

Largura de banda:• Algumas aplicações (por exemplo , multimídia) requeremquantia mínima de banda para serem “viáveis”.• Outras aplicações (“elásticas”) conseguem usar qualquerquantia de banda disponível.

Que serviços de transporte a aplicação precisa?

Page 16: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Requisitos do serviço de transporte de aplicações comuns

Aplicação Perdas BandaSensibilidade

temporal

transferência de arqs sem perdas elástica não

correio sem perdas elástica não

documentos WWW sem perdas elástica não

áudio/vídeo de tempo real

toleranteáudio: 5Kb-1Mb | vídeo:10Kb-5Mb

sim, décimos de seg.

áudio/vídeo gravado tolerante como anterior sim, alguns seg.

jogos interativos tolerante > alguns Kbps sim, décimos de seg.

apps financeiras sem perdas elástica sim e não

Page 17: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

• Serviço TCP:– Orientado a conexão:

estabelecimento exigido entre cliente e servidor.

– Transporte confiável entre processos emissor e receptor.

– Controle de fluxo: emissor não vai “afogar” receptor.

– Controle de congestionamento: estrangular emissor quando a rede está carregada.

• Serviço UDP:– Não orientado a

conexão– Transferência de dados

não confiável entre processos remetente e receptor.

– Não provê: estabelecimento da conexão, confiabilidade, controle de fluxo, controle de congestionamento, garantias temporais ou de banda mínima.

– Pergunta-se: Qual é o interesse em ter um UDP?

Serviços providos por protocolos de transporte Internet

Page 18: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Aplicações Internet: seus protocolos e seus protocolos de transporte

AplicaçãoProtocolo da

camada de app.Protocolo de

transporte usado

Correio eletrônico smtp [RFC 821] TCP

Acesso terminal remoto

telnet [RFC 854] TCP

WWW http [RFC 2068] TCP

Transferência de arquivos

ftp [RFC 959] TCP

streaming multimídiaproprietário (Ex: RealNetworks)

TCP ou UDP

Servidor de arquivo remoto

NFS TCP ou UDP

Telefonia Internetproprietário (Ex:

Volcatec)tipicamente UDP

Page 19: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Os principais protocolos deaplicaçãoHTTP e FTP

Page 20: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

• Página WWW:– Consiste de “objetos”– Endereçada por um URL -

Universal Resource Locator.

• Quase todas as páginas WWW consistem de:– Página base HTML, e– Vários objetos

referenciados.

• URL tem duas partes:– nome de hospedeiro, e

nome de caminho: • www.inf.unisinos.br/imgs/

logo.gif

• Agente de usuário para WWW se chama de browser:– MS Internet Explorer.– Firefox.

• Servidor para WWW se chama “servidor WWW”:– Apache (domínio público).– MS Internet Information

Server (IIS).

WWW

Page 21: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

WWW: o protocolo http

• http: HyperText Transfer Protocol– Protocolo da camada de

aplicação para WWW.– Modelo cliente-servidor

• 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

PC runningExplorer

Server running

Apache Webserver

Mac runningSafari

HTTP request

HTTP request

HTTP response

HTTP response

Page 22: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

• Usa serviço de transporte TCP:– 1.) Cliente inicia conexão TCP

(cria socket) ao servidor, na porta 80.

– 2.) Servidor aceita conexão TCP do cliente.

– 3.) Troca mensagens http (mensagens do protocolo da camada de aplicação) entre browser (cliente http) e servidor WWW (servidor http).

– 4.) Encerra conexão TCP.

• http é “sem estado” (stateless)– Servidor não mantém

informação sobre pedidos anteriores do cliente.

Mais sobre o protocolo http

Protocolos que mantêm “estado”são complexos!História passada (estado) tem queser guardada.Caso caia servidor/cliente, suasvisões do “estado” podem serinconsistentes, devem serreconciliadas

Page 23: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Exemplo de http

Supondo que um usuário digita a URL www.inf.unisinos.br/index.html

1a. Cliente http inicia conexão TCPao servidor http (processo) emwww.inf.unisinos.brPorta 80 é padrão para servidor http.

2. cliente http envia mensagem depedido de http (contendo URL)através do socket da conexão TCP

1b. servidor http no hospedeirowww.inf.unisinos.br espera por conexão TCP na porta 80. “Aceita” conexão, avisando ao cliente

3. servidor http recebe mensagem depedido, formula mensagem de respostacontendo objeto solicitado(index.html), e envia mensagem viasocket.

TEMPO

(Ex: contém texto,referências a 10imagens jpeg)

...

Page 24: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Exemplo de http (continuação)

TEMPO

4. servidor http encerra conexão TCP .

5. cliente http recebe mensagemde resposta contendo arquivohtml “inicial.html”, e visualizaHtml. Analisando arquivo html,encontra 10 objetos jpegreferenciados.

6. Passos 1 a 5 repetidos paracada um dos 10 objetos jpeg

E então, continua...

Page 25: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

• Não persistente:– HTTP/1.0– Servidor analisa pedido,

responde, e encerra conexão TCP.

– 2 RTTs para trazer cada objeto (RTT = round trip Time tempo de viagem de ida e volta)

• Persistente:– Default for HTTP/1.1– Na mesma conexão TCP:

• servidor analisa pedido, responde, analisa novo pedido, etc...

– Cliente envia pedidos para todos objetos referenciados, assim que recebe o HTML base .

– Menos RTTs.– Consexão é encerrada

depois de determinado tempo sem uso

Conexões não-persistente e persistente

Page 26: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Conexão não-persistente (1)1. O cliente HTTP inicia uma conexão TCP com o servidor.2. O cliente emite mensagem de requisição HTTP através do

socket associado com a conexão do TCP que foi estabelecida.3. Servidor HTTP recebe o request através do socket

associado com a conexão estabelecida, recupera o objeto /ai/inicial.html de seu armazenamento, encapsula o objeto em uma mensagem HTTP de resposta, e emite a mensagem de resposta através do socket.

4. O servidor diz ao cliente para fechar a conexão TCP.5. O cliente recebe a mensagem de resposta. A conexão TCP

termina. A mensagem indica que o objeto encapsulado é um arquivo HTML. O cliente extrai o arquivo da mensagem de resposta, analisa, e encontra referências a 10 objetos do JPEG.

6. As primeiras quatro etapas são repetidas então para cada um dos objetos JPEG referenciados.

Page 27: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Conexão não-persistente (2)

• Cada conexão TCP transporta exatamente uma mensagem de pedido e uma mensagem de resposta. No nosso exemplo, quando um usuário requisita página, 11 conexões TCP são geradas.

• Nas etapas das conexões não persistentes, cada conexão do TCP é fechada depois que o servidor envia o objeto: a conexão não persiste para outros objetos.

• Quando o browser recebe uma página, mostra a página ao usuário. Dois browsers diferentes podem interpretar (isto é, mostrar ao usuário) um Web page de maneiras um diferentes. O HTTP não tem nada ver como um Web page é interpretado por um cliente.

• As especificações do HTTP (RFC1945 e RFC2616) definem somente o protocolo de comunicação entre o programa HTTP do cliente e o programa HTTP do servidor.

Page 28: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

RTT (Round Trip Time)

• Definição: tempo que um pacote leva para ser enviado e retornar ao cliente;

• Tempo de resposta:– Um RTT para iniciar a

conexão TCP;– Um RTT para enviar

requisição HTTP e receber os primeiros bytes da resposta;

• Tempo de transmissão do arquivo– Total: 2RTT + tempo de

transmissão

time to transmit file

initiate TCPconnection

RTT

requestfile

RTT

filereceived

time time

Page 29: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

• Problemas do HTTP não persistente:– Gasta 2RTT para cada objeto– OS deve alocar recursos para cada conexão TCP– Browsers costumam abrir conexões paralelas

• HTTP persistente– Servidor deixa as conexões abertas após enviar a resposta– Mensagens HTTP seguintes são enviadas usando esta

conexão

Conexão persistente

Page 30: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Conexão persistente

• Persistente sem paralelismo– Cliente envia nova requisição apenas quando a mensagem

anterior tiver sido recebida– Um RTT para cada objeto referenciado

• Persistente com paralelismo– Padrão no HTTP/1.1– Cliente envia requisições no momento em que encontra

objetos referenciados– Pouco maior que um RTT para todos os objetos

referenciados