Instituto de Educação, Ciência e
Tecnologia - Alagoas
Redes de Computadores 1
Aulas 61-64
Prof. Erico Augusto
Sumário
1. Princípios de Aplicações de Rede
2. HTTP
Sumário
1.
Princípios de Aplicações de Rede
2. HTTP
3. FTP
1. Princípios de Aplicações de
Rede
Email Web Mensagem instantânea Login com computador remoto como telnet e SSH Compartilhamento de arquivos P2P Transferência de arquivos entre duas contas com dois computadores com FTP Jogos multiusuário em rede Vídeos Vídeo Conferência VoIP Algumas aplicações populares de rede são:1. Princípios de Aplicações de
Rede
●Os serviços são oferecidos nas bordas da rede
Fique atento às camadas dos dispositivos1. Princípios de Aplicações de
Rede
●Arquiteturas de Aplicação de Rede
»
Primeiro passo ao desenvolver uma nova
aplicação:
Selecionar a arquitetura O desenvolvedor pode optar por uma das 3 arquiteturas de mais utilizadas em aplicações de rede: – Arquitetura ClienteServidor – Arquitetura Peertopeer(P2P) – Arquitetura Híbrida clienteservidor/P2P1. Princípios de Aplicações de
Rede
●Arquiteturas de Aplicação de Rede
»
Arquitetura ClienteServidor
Servidor – Atende a diversas solicitações de vários outros hosts – Está sempre em funcionamento – Aguarda passivamente por solicitações de hosts usuários – Possui endereço IP fixo Cliente – Pode ou não estar continuamente em funcionamento – Solicita ativamente um recurso – Não há necessidade de endereço IP fixo1. Princípios de Aplicações de
Rede
●Arquiteturas de Aplicação de Rede
»
Arquitetura ClienteServidor
Mais características: – Clientes não se comunicam diretamente ● Dois navegadores WEB não trocam informações entre si – Arquitetura centralizada ● Facilita o gerenciamento1. Princípios de Aplicações de
Rede
●Arquiteturas de Aplicação de Rede
»
Arquitetura ClienteServidor
Mais características: – Há situações nas quais um único servidor é incapaz de atender a todas as requisições provenientes de diversos clientes ● Server farm1. Princípios de Aplicações de
Rede
●Arquiteturas de Aplicação de Rede
»
Arquitetura Peertopeer(P2P)
Não há servidor continuamente em funcionamento Hosts arbitrários trocam informações diretamente Peers estão conectados de forma intermitente e não possuem IPs fixos Vantagem: Escalabilidade Desvantagem: Gerenciamento: não há controle sobre os hosts Exemplo: Gnutella1. Princípios de Aplicações de
Rede
●
Arquiteturas de Aplicação de Rede
1. Princípios de Aplicações de
Rede
●Arquiteturas de Aplicação de Rede
»
Arquitetura Híbrida clienteservidor/P2P
Apresentam características das duas arquiteturas simultaneamente Exemplos: – Napster ● Transferência de arquivos peertopeer ● Busca de arquivos centralizada ● Pares registram conteúdo em um servidor central ● Pares consultam o mesmo servidor central para localizar conteúdo1. Princípios de Aplicações de
Rede
●Arquiteturas de Aplicação de Rede
»
Arquitetura Híbrida clienteservidor/P2P
Exemplos(Cont.): – IRCs(MSN, AOL, Yahoo): ● Chatting entre dois pares ● Detecção e localização de presença centralizada ● Usuários registram seus endereços IP com servidor central quando ficam online ● Usuários contactam servidor central para obter endereço IP dos seus parceiros1. Princípios de Aplicações de
Rede
●Comunicação entre Processos
»
Como processos que executam em sistemas finais
diferentes conseguem se comunicar?
Mensagens»
Como decidir qual dos hosts é o cliente e qual é o
servidor?
Processo cliente: inicia a comunicação Processo servidor: Espera para ser conectado»
Obs.:
– Aplicações P2P possuem processoscliente e processos servidores1. Princípios de Aplicações de
Rede
●Sockets
»
Processos enviam/recebem mensagens para/de
seus sockets
»
Socket – IP: porta
iptraf1. Princípios de Aplicações de
Rede
●Protocolos de camada de aplicação
»
Definem:
Tipos de mensagens trocadas: por exemplo – Request/Reply Sintaxe das várias mensagens – campos da mensagem e como os campos são delimitados Semântica dos campos – Significado da informação nos campos Regras para determinar quando e como um processo envia/responde mensagens1. Princípios de Aplicações de
Rede
●Protocolos de camada de aplicação
»
Protocolos de domínio público:
RFCs Permitem interoperabilidade Exemplos: – HTTP, FTP, SMTP, POP3, DNS, SNMP, TELNET»
Protocolos proprietários
Fechados Exemplo: – KaZaa1. Princípios de Aplicações de
Rede
●Protocolos de camada de aplicação
Aplicações de rede
≠
Protocolos de camada de aplicação
»
Exemplo: Web
Aplicação clienteservidor Permite que usuários obtenham documentos sob demanda Ela apresenta – Padrão para formato de arquivos – Servidores WEB – Protocolos de camada de aplicação – Browsers WEB1. Princípios de Aplicações de
Rede
●De que serviços uma aplicação necessita?
»
Transferência confiável de dados
Algumas aplicações são tolerantes a perda – Exemplos: som e vídeo»
Largura de banda
Algumas aplicações requerem uma quantidade mínima de largura de banda para funcionar de forma aceitável – Vídeo: Aplicação sensível à largura de banda Outras aplicações são elásticas»
Temporização
1. Princípios de Aplicações de
Rede
●
De que serviços uma aplicação necessita?
1. Princípios de Aplicações de
Rede
●Serviços providos pelos protocolos da camada
de transporte
»
Internet fornece dois serviços de camada de
transporte
TCP UDP1. Princípios de Aplicações de
Rede
●Serviços providos pelos protocolos da camada
de transporte
»
TCP
Orientado à conexão Transporte confiável Controle de fluxo Controle de congestionamento»
O TCP não fornece:
Temporização, garantias de largura de banda mínima1. Princípios de Aplicações de
Rede
●Serviços providos pelos protocolos da camada
de transporte
»
UDP
Transferência de dados não confiável entre o processo emissor e o processo receptor Não fornece – Configuração de conexão – Confiabilidade – Controle de fluxo – Controle de congestionamento – Temporização – Garantia de largura de banda1. Princípios de Aplicações de
Rede
Sumário
1. Princípios de Aplicações de Rede
2.
HTTP
2. HTTP
●Nomenclatura
»
Página WEB: formada por objetos
Arquivos HTML, imagens (JPEG, GIF, PNG), applets Java, arquivos de áudio, ... Páginas WEB são formadas por Arquivos HTML que incluem várias referências a objetos»
Cada objeto é endereçado por uma URL
Uniform Resource Locator – Exemplo: www.mauriciodenassau.edu.br2. HTTP
●HyperText Transfer Protocol – Visão Geral
»
Protocolo de camada de
aplicação utilizado na WWW
»
Modelo cliente/servidor
Cliente – Navegador WEB ● Efetua as solicitações Servidor – Servidor WEB ● Responde às solicitações dos clientes, enviando objetos HTTP 1.0: RFC 1945; HTTP 1.1: RFC 26162. HTTP
●HyperText Transfer Protocol – Visão Geral
»
Utiliza TCP – Passo a passo:
1. Clientes iniciam conexão TCP – Criase um socket na porta 80 2. Servidor aceita conexão TCP proveniente do cliente 3. Mensagens HTTP (mensagens de protocolo de camada de aplicação) são trocadas entre o navegador (cliente HTTP) e o servidor Web (servidor HTTP) 4. A conexão TCP é fechada»
Conexão HTTP é stateless
– Servidor não mantém informações sobre solicitações passadas2. HTTP
●Conexões HTTP
»
HTTP não persistente:
No máximo um objeto é enviado através de uma conexão TCP – HTTP 1.0»
HTTP persistente
Múltiplos objetos podem ser enviados através de uma conexão entre cliente e servidor – HTTP 1.1 utiliza persistência(por padrão)2. HTTP
Suponha que o usuário inseriu a URL: www.someSchool.edu/someDepartment/home.index 1a. cliente HTTP inicia conexão TCP ao servidor HTTP em www.someSchool.edu, porta 80 2. Cliente HTTP envia mensagem de solicitação (contendo URL) no socket TCP Mensagem indica que o cliente deseja o objeto someDepartment/home.index 1b. Servidor HTTP no host www.someSchool.edu aguarda por conexão TCP na port 80. Ele “aceita” a conexão e notifica o cliente 3. servidor HTTP recebe a mensagem de solicitação, forma a mensagem de resposta, contendo o objeto soliticado e envia essa mensagem através do socket tempo (contém texto, referências a 10 imagens jpeg )2. HTTP
5. Cliente HTTP client recebe a mensagem de resposta contendo o arquivo HTML a ser exibido. O arquivo é processado. São encontradas 10 referências aos arquivos jpg 6. Os passos 15 são repetidos para cada um dos 10 objetos jpeg 4. servidor HTTP fecha a conexão TCP tempo2. HTTP
●Modelagem do tempo de resposta
»
RoundTrip Time(RTT)
Tempo no qual um pequeno pacote é enviado do cliente para o servidor e volta para o cliente – Um RTT para estabelecer conexão TCP – Um RTT para solicitação HTTP e retorno dos primeiros bytes Total do tempo de transmissão: – Total = 2RTT + tempo de transmissão2. HTTP
●HTTP Persistente
»
Servidor mantém conexão aberta após enviar resposta
»
Mensagens HTTP subseqüentes entre mesmo socket
cliente/servidor são enviadas via essa conexão
»
Há duas versões
Sem paralelismo – Cliente solicita próxima mensagem apenas quando a mensagem atual já foi recebida ● Um RTT por mensagem Com paralelismo (HTTP 1.1) – Cliente envia solicitação assim que encontra referência a objeto2. HTTP
●Formato de mensagens HTTP
»
Há dois tipos de mensagens(RFC 2616)
Request, Response – Código ASCII GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr(carriage return e line feed extras)
Linha de solicitação: métodos GET, POST ou HEAD Linhas do cabeçalho Carriage return e line feed indicam o fim da mensagem
2. HTTP
2. HTTP
●Uploading de um formulário
»
Método POST
Dados são enviados para o servidor no corpo da mensagem»
Método GET
Dados são enviados para o servidor diretamente na URL – www.somesite.com/animalsearch?monkeys&banana ●Tipos de métodos
»
HTTP 1.0: GET, POST, HEAD
»
HTTP 1.1: GET, POST, HEAD, PUT, DELETE
2. HTTP
●
Mensagem de Reposta HTTP
HTTP/1.1 200 OK Connection close
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
linda de status (código do status do protocolo linhas do cabeçalho dados, e.g., arquivo HTML solicitado
2. HTTP
●Mensagem de Reposta HTTP
»
Códigos de status de status
200 OK – Solicitação bemsucedida e a informação é entregue com a resposta 301 Moved Permanently – Objeto requisitado foi removido permanentemente 400 Bad Request – Código genérico de erro. Indica que a solicitação não pode ser entendida pelo servidor 404 Not Found – Documento solicitado não existe no servidor 505 HTTP Version Not Supported – Versão não suportada pelo servidor2. HTTP
●
Caches WEB
»
Também chamado de servidor proxy
Entidade de rede que atende a solicitações HTTP em nome de um servidor WEB de origem
2. HTTP
●Caches WEB
»
Características
Cache WEB: possui seu próprio disco de armazenamento – Mantém cópias de objetos recentemente solicitados Exemplo: browser deseja acessar um objeto WEB 1. Browser estabelece uma conexão TCP com o cache Web e envia a ele uma requisição HTTP para um objeto 2. O cache Web verifica se há um cópia do objeto armazenada localmente. Se tiver, envia o objeto ao browser do cliente, dentro de uma mensagem de resposta HTTP.2. HTTP
●Caches WEB
»
Características
Exemplo: browser deseja acessar um objeto WEB 3. Se não tiver o objeto, o cache Web abre uma conexão TCP com o servidor de origem (com www.google.com), enviando uma solicitação HTTP do objeto para a conexão TCP. Após receber essa requisição, o servidor de origem envia o objeto ao cache WEB, dentro de uma resposta HTTP 4. Quando recebe o objeto, o cache web armazena uma cópia local e envia outra, em uma mensagem de reposta, ao browser do clienteSumário
1. Princípios de Aplicações de Rede
2. HTTP
3. FTP
●File Transfer Protocol
»
Transfere arquivos de/para host remoto
»
Modelo cliente/servidor
Cliente: lado que inicia a transferência Servidor: host remoto RFC 959; Porta(servidor): 213. FTP
●Cliente/Servidor FTP
Contacta servidor FTP na porta 21, definindo o TCP como protocolo de camada de transporte Cliente obtém autorização através de conexão de controle Cliente procura diretório remoto através do envio de comandos através da conexão de controle Quando o servidor recebe as informações para o comando de transferência de arquivos, o servidor abre a conexão de dados para o cliente Após transferir o arquivo, o servidor fecha a conexão3. FTP
●
Cliente/Servidor FTP
Servidor abre uma segunda conexão de dados TCP para transferência de um segundo arquivo
3. FTP
●Exemplos de comandos:
»
man ftp
Manual do client FTP modotexto padrão para sistemas UNIX Permite consultar os principais comandos internos que podem ser executados – get – put – cd – passive – byeBibliografia
[KUROSE, 2006] KUROSE, J; ROSS, K.. Redes de computadores e a Internet. 3ª edição. Pearson, 2006.
[CYCLADES, 2000] Cyclades. Guia Internet de Conectividade. 12ª edição.