Rede de Computadores (REC) Aula 04 Camada de Aplicação Prof. Jackson Mallmann dcc2jm@joinville.udesc.br
Exemplos de requisição via telnet. iniciar / executar / cmd (Windows) telnet endereço telnet 192.168.1.3 telnet 192.168.1.3 80 telnet www.udesc.br 80 telnet www.vivaolinux.com.br telnet www.vivaolinux.com.br 80 telnet mail.yahoo.com.br 25 telnet pop.yahoo.com.br 110
Objetivos: Conceitual: desenvolvimento de aplicações de rede Modelos de serviço da camada de transporte Paradigma cliente-servidor Paradigma peer-to-peer Aprender sobre protocolos examinando protocolos da camada de aplicação populares: HTTP FTP SMTP/POP3/IMAP DNS
Rede de computadores x aplicações de rede x protocolos da camada de aplicação. Exemplo de aplicações de rede: Correio Eletrônico, Web, Mensagem instantânea, Telnet, Jogos Multiusuários em rede, VOIP... Antes de desenvolver uma aplicação que envolva comunicação em rede, precisamos definir algumas particularidades: ARQUITETURA COMUNICAÇÃO ENTRE PROCESSOS DEFINIÇÃO DO PROTOCOLO NECESSIDADES ESPECIFICAS
1 - Princípios de aplicações de rede Arquiteturas de aplicação de rede - ARQUITETURA CLIENTE SERVIDOR (Um hospedeiro (servidor) sempre em funcionamento. Exemplo: servidor WEB. Cliente não se comunica com cliente. - ARQUITETURA P2P (Host se comunica com host. Não há servidor. Vantagem: não precisa de um servidor sempre ligado. Desvantagem: Difícil gerenciar aplicações P2P. Exemplo: Gnutella - ARQUITETURA HÍBRIDA (CLIENTE/SERVIDOR E P2P): Programas de mensagem instantânea.
2 - Como haverá a comunicação entre os processos? Processo: programa executado num hospedeiro Dentro do mesmo hospedeiro: dois processos se comunicam usando comunicação interprocesso (definido pelo OS) Processos em diferentes hospedeiros se comunicam por meio de troca de mensagens Processo cliente: processo que inicia a comunicação Processo servidor: processo que espera para ser contatado O processo de um sistema operacional precisa se comunicar com o processo de outro SO. Utiliza socket (interface entre o processo de aplicação e o protocolo da camada de transporte). Nota: aplicações com arquiteturas P2P possuem processos cliente e processos servidor
Utilização do socket
3 Protocolo camada de aplicação Os tipos de mensagens trocadas (Requisição ou Resposta) A sintaxe dos vários tipos de mensagens Semântica dos campos Regras Exemplo: para implementar um navegador, seguir a RFC 2616. http://www.ietf.org/ PROTOCOLOS PROPRIETÁRIOS (Novell IPX/SPX)
4 Quais os serviços que uma aplicação necessita? Transferência de dados confiável Exemplo: correio eletrônico / Mensagem Instantânea / Transferência de Arquivos / Aplicações Financeiras. Não pode haver perda de pacotes. Transferência de dados tolerantes a perda. Exemplo: Aplicações Multimídia. Largura de Banda Exemplo: Desenvolvimento de uma aplicação VOIP em uma rede com pequena largura de banda. Baixa velocidade. Temporização Atrasos fim-a-fim seja pequeno (poucos milissegundos, ou menos). Multimídia.
Funcionamento da WEB e HTTP
Web (World Wide Web) Arquitetura Cliente Servidor. Funcionamento. Página Web consiste de objetos. Objeto pode ser arquivo HTML, imagem JPEG, Java applet, arquivo de áudio Arquivo HTML base, incluindo vários objetos referenciados. Cada objeto é endereçado por uma URL.
Cliente Web - URL (Uniform Resource Locators) - Funcionamento. - Plug-in. - Exemplos de softwares clientes.
Servidor Web Funcionamento. Utilização de Cookies: O que os cookies podem trazer: Autorização Cartões de compra Recomendações Estado de sessão do usuário (Web e-mail) Cookies e privacidade: Cookies permitem que sites saibam muito sobre você Você pode fornecer nome e e-mail para os sites Mecanismos de busca usam redirecionamento e cookies para saberem mais sobre você Companhias de propaganda obtêm informações por meio dos sites Estados: O servidor não mantém informação sobre os pedidos passados pelos clientes Documentos Web Estáticos e Dinâmicos. Exemplos de softwares servidor.
HyperText Transfer Protocol HTTP Especifica as mensagens que os clientes podem enviar aos servidores e que respostas eles receberão. (RFCs 1945 e 2616) OSI
Funcionamento HTTP - Comunicação via TCP / porta default: 80. (Por que TCP? Porta 80?) PROGRAMA DE E-MAIL BROWSER WWW PROGRAMA DE FTP SMTP HTTP FTP Porta 25 Porta 80 Porta 20 e 21 TCP
HTTP não persistente No máximo, um objeto é enviado sobre uma conexão TCP O HTTP/1.0 utiliza HTTP não persistente HTTP persistente Múltiplos objetos podem ser enviados sobre uma conexão TCP entre o cliente e o servidor O HTTP/1.1 utiliza conexões persistentes em seu modo padrão
Formato da Requisição HTTP
WEB Cache - Funcionamento. - Gerenciamento do Cache.