320 likes | 449 Views
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:
E N D
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 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 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 Redes de Computadores I – Prof. Mateus Raeder
application transport network data link physical application transport network data link physical application transport network data link physical 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 Redes de Computadores I – Prof. Mateus Raeder
application transport network data link physical application transport network data link physical application transport network data link physical Camada de aplicação • 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 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. 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. 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) é umainterface entre o usuário e a aplicação de rede. • WWW: browser. • Correio: leitor/compositor de mensagens • Streaming audio/video: tocador (player) de mídia 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 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. Redes de Computadores I – Prof. Mateus Raeder
Comunicação pelos sockets (1) Redes de Computadores I – Prof. Mateus Raeder • 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.
Como um processo identifica outro ? Redes de Computadores I – Prof. Mateus Raeder • 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)
Que serviços de transporte a aplicação precisa? Redes de Computadores I – Prof. Mateus Raeder • 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.
Que serviços de transporte a aplicação precisa? Perda de dados: • Algumasaplicações (por exemploáudio) podem toleraralgumasperdas. • Outras (porexemplo, transferência de arquivos, telnet) exigem transferência 100% confiável Temporização: • Algumasaplicações (porexemplo, telefoniaem Internet, jogosinterativos) requerembaixo retardoparaserem “viáveis”. Largura de banda: • Algumas aplicações (por exemplo , multimídia) requerem quantia mínima de banda para serem “viáveis”. • Outras aplicações (“elásticas”) conseguem usar qualquer quantia de bandadisponível. Redes de Computadores I – Prof. Mateus Raeder
Requisitos do serviço de transporte de aplicações comuns 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 Redes de Computadores I – Prof. Mateus Raeder
Aplicações Internet: seus protocolos e seus protocolos de transporte Redes de Computadores I – Prof. Mateus Raeder
Os principais protocolos deaplicação HTTP e FTP 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 Redes de Computadores I – Prof. Mateus Raeder
WWW: o protocolo http HTTP request PC running Explorer HTTP response HTTP request Server running Apache Web server HTTP response Mac running Safari Redes de Computadores I – Prof. Mateus Raeder • 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
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 que ser guardada. Caso caia servidor/cliente, suas visões do “estado” podem ser inconsistentes, devem ser reconciliadas Redes de Computadores I – Prof. Mateus Raeder
Exemplo de http (Ex: contémtexto, referências a 10 imagens jpeg) 1a. Cliente http inicia conexão TCP ao servidor http (processo) em www.inf.unisinos.br Porta 80 é padrão para servidor http. 1b. servidor http no hospedeiro www.inf.unisinos.br espera por conexão TCP na porta 80. “Aceita” conexão, avisando ao cliente 2. cliente http envia mensagem de pedido de http (contendo URL) através do socket da conexão TCP 3. servidor http recebe mensagem de pedido, formula mensagem de resposta contendo objeto solicitado (index.html), e envia mensagem via socket. ... TEMPO Redes de Computadores I – Prof. Mateus Raeder Supondo que um usuário digita a URL www.inf.unisinos.br/index.html
Exemplo de http (continuação) 4. servidor http encerra conexão TCP . 5. cliente http recebe mensagem de resposta contendo arquivo html “inicial.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 E então, continua... TEMPO 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 Redes de Computadores I – Prof. Mateus Raeder
Conexão não-persistente (1) Redes de Computadores I – Prof. Mateus Raeder O cliente HTTP inicia uma conexão TCP com o servidor. O cliente emite mensagem de requisição HTTP através do socket associado com a conexão do TCP que foi estabelecida. 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. O servidor diz ao cliente para fechar a conexão TCP. O cliente recebe a mensagem de resposta. A conexão TCP termina. Amensagem 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. As primeiras quatro etapas são repetidas então para cada um dos objetos JPEG referenciados.
Conexão não-persistente (2) Redes de Computadores I – Prof. Mateus Raeder 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ãopersiste 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.
RTT (Round Trip Time) initiate TCP connection RTT request file time to transmit file RTT file received time time Redes de Computadores I – Prof. Mateus Raeder • 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
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 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 Redes de Computadores I – Prof. Mateus Raeder