Redes de Computadores Camada de Aplicação Prof. MSc. Hugo Souza Percorrendo o caminho. . . • É a camada que dispõe a programação para as aplicações de rede através dos protocolos de aplicação; • Provém a implantação da arquitetura de redes com o modelo Cliente-Servidor com requisições req e respostas aos pedidos com resp; • Também provém a implantação da arquitetura Peer-2Peer; • Infraestrutura voltada para os serviços de internet, com aplicações diversas e o gerenciamento de mensagens de texto, imagens, e arquivos, etc.; Percorrendo o caminho. . . • Mas na verdade, o que é uma aplicação de rede? • É um software que possibilita a execução de processos comuns na rede entre os hospedeiros que enviam e recebem dados através de uma interface entre o usuário “parte de cima” e a rede “parte de baixo”; • Utilizam protocolos finais que compatibilizam a linguagem da rede para a linguagem do usuário final, como parte da aplicação; • O browser depende de quem para traduzir as informações? • Será que o MSN deve possuir protocolos para que as mensagens cheguem aos usuários? Percorrendo o caminho. . . • Aplicações de rede que usamos todos os dias; Percorrendo o caminho. . . • Para que haja comunicação é necessário alguém pedir primeiro: “Eu quero que alguém para varrer a rua!” para receber uma resposta: “Temos 3 garis hoje!”; • Alguém solicita e outro alguém serve; • Na web, no caso, o WWW quem pede algum site é chamado de cliente, e na maioria dos casos e quem inicia o processo de conexão partindo de um certo dispositivo em uma certa rede; • Para receber o recurso solicitado é necessário averiguar se o destinatário recebeu o pedido. Neste caso o servidor confirma o pedido e emite um “Ok!”; • Os processos enviam e recebem dados através de conexões denominadas sockets; Percorrendo o caminho. . . Percorrendo o caminho. . . • Como havíamos falado antes, um cliente e um servidor buscam fornecer um serviço de internet através de conexões. Essas conexões são formuladas através de objetos indexados em Unirform Resource Locator; • Esses objetos são divididos em “pedaços” distintos para identificar o fornecimento de um recurso disponibilizado pela rede e o mapeamento que precisa ser realizado para garantir a organização baseada em “caminhos” que facilitem o acesso : objeto • protocolo://máquina/caminho/recurso Percorrendo o caminho. . . • Exemplificando, teríamos o seguinte endereço de URL: protocolo servidor • http://www.facol.com/facol2010/downloads/trab2011. doca recurso • O que temos aqui? • Neste caso temos o chamado “hospedeiro” + “caminho”; o Percorrendo o caminho. . . • O protocolo HTTP, também conhecido como protocolo da internet estabiliza o modelo cliente-servidor utilizando-se de objetos durante as conexões orientadas pelo TCP tramitando pedidos e respostas desses objetos; • O cliente inicia a conexão TCP ao servidor pela porta 80. O servidor aceita a conexão TCP do cliente através de mensagens HTTP via browser e posteriormente o servidor Web (servidor HTTP) encerra conexão TCP; • Conexões persistentes e não persistentes; Percorrendo o caminho. . . • O HTTP persistente é caracterizado pelo o envio de múltiplos objetos sobre uma única conexão TCP entre cliente e servidor - HTTP/1.1 no seu modo default; • Usa somente um RTT para envio de objetos; • O servir deixa a conexão aberta após o envio da resposta; • O HTTP não persistente é caracterizado pelo o envio de um objeto em uma conexão TCP - HTTP/1.0 em conexões não persistentes; • Usa dois RTT para o envio de dados (pedido e resposta);; • Cada objeto enviado é criada uma nova conexão; Percorrendo o caminho. . . • Devido as conexões, as transmissões e recepções de dados demandam tempo entre a movimentação dos pacotes. Esse tempo é denominado Round Trip Time (RTT); • Um RTT indica o tempo de resposta para iniciar a conexão TCP, com um pedido HTTP e o retorno dos primeiros bytes da resposta HTTP, durante a transmissão de um determinado arquivo; 2RTT + • Tempo de transmissão • Percorrendo o caminho. . . Inicia a conexão TCP RTT Solicita o arquivo RTT Arquivo recebido Tempo para transmitir o arquivo Percorrendo o caminho. . . GET = pedido GET /somedir/page.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:pt dados. . . dados. . . dados. . . Percorrendo o caminho. . . • O estado de atividade ou inatividade da conexão atual tem uma manutenção provida pelo cookie - arquivo do cookie mantido no host do usuário e gerenciado pelo browser do usuário; • Dados da conexão em um dado momento podem ser reaproveitados - login, senha, etc.; • “ID” que o usuário possui em um site; • “dados” de visita as sites no histórico, etc; • Privacidade? Percorrendo o caminho. . . • O protocolo File Transfer Protocol, também conhecido como FTP é o responsável por prover o serviços de transferência de arquivos através de conexões “separadas” para estabelecer um controle dos dados que estão trafegando pela rede; • Utiliza duas portas principais: • Porta 21: Estabelecimento da conexão com requisição e resposta do cliente com o servidor; • Porta 20: Após a conexão está assegurada, o envio do arquivos é realizado nesta porta; • Como? Percorrendo o caminho. . . Controle da conexão TCP – Porta 21 Conexão,dos dados TCP – Porta 20 • O cliente contata o servidor através do prot. TCP – Porta 21; • O TCP estabelece uma conexão com controle entre cliente-servidor; • Após a conexão está “garantida” o servidor verifica o status; • O dado é enviado pelo prot. FTP – Porta 20 por uma conexão de dados; • O cliente envia uma resposta afirmando que o dado foi recebido; Percorrendo o caminho. . . • Os dados das conexões são enviados/recebidos pelo canal de controle e canal dos dados através de quatro possíveis padrões: • Texto ASCII: Utilização de caracteres em 8 bits representativos antes,durante e após a transmissão. Inviável para dados numéricos binários e pontos flutuantes; • Modo imagem: Também chamado de modo binário, é representado em blocos de bytes para obter um controle mais seguro; • Modo local: Transmissão Peer-to-Peer sem a necessidade de conversão para ASCII – direto; Percorrendo o caminho. . . • Quando mandamos hypertexto + arquivos para nossos amigos, será que essa mensagem precisa ter algum controle? • No caso de e-mails, temos a “gerência das mensagens” enviadas e recebidas com dois protocolos chamados de servidores de e-mails; • Conceito de fila de mensagens, ordem, tamanho, etc.; • Clientes que enviam para servidores diferentes com funções diferentes; • A pessoa não envia um e-mail de um computador diretamente para outro e vice-versa; Percorrendo o caminho. . . • O protocolo Simple Mail Transfer Protocol utiliza os conceitos de orientação por conexão para controlar o fluxo de mensagens, receptores e emissores de mensagens em três fases de transferência; • Handshaking; • Transferências de mensagens; • Encerramento; • As mensagens são representadas em textos ASCII de 7 bits - utiliza a porta 25; • SMTP: entrega/armazenamento no servidor do receptor; Percorrendo o caminho. . . 1) Fabiana utiliza sua aplicação de rede para compor uma mensagem “para” [email protected]; 4) O cliente SMTP envia a mensagem de Fabiana através 2) O Microsoft Outlook de Fabiana envia a da conexão TCP; mensagem para o seu servidor de correio; 5) O servidor de correio de José A mensagem é colocada na fila de mensagens; coloca a mensagem na caixa 3) O lado cliente do SMTP abre uma conexão de entrada de José TCP com o servidor de correio de José; 6) José chama o seu Mozilla Thunderbird para ler a mensagem; 2 user mail server 4 mail 5 server 6 user Percorrendo o caminho. . . • Outros protocolos de Correio Eletrônico são os protocolos de Acesso ao Correio: POP e o IMAP; • Complementando o serviço de entrega de mensagens, a função dos protocolos de Acesso é recuperar as mensagens do servidor e torná-las em filas para os usuários;; • Post Office Protocol: Autorização entre aplicação<>servidor; • Internet Mail Access Protocol: Códigos de acesso as mensagens; SMTP Agente gente de usuário SMTP POP3 ou IMAP Agente de usuário Percorrendo o caminho. . . • Finalmente, se pensarmos que as mensagens são enviadas e recebidas através de redes e dispositivos, como será que os dados são identificados através de hypetexto? • O protocolo Domain Name System (DNS) é o responsável por mapear os endereços dos objetos formulados através de URLS e convertê-los para endereços IPS; • Protocolo conhecido por “resolver” nomes de “dispositivos” na internet; • Utiliza o protocolo UDP para efetivar conexão; • Organizado em servidores para obtenção de acesso; Percorrendo o caminho. . . . (root) com edu net Apple cisco sourceforge support www org download mil br org tre ufpe facol gov ... fieb uol ftp www mail www2 fr sesc www us ... gov rj pms Hierarquia dos servidores www Percorrendo o caminho. . . Hospedeiro secretaria.facol.net requer endereço IP de educacao.edu 1. secretaria.facol.net contata servidor DNS local, serv-net.facol.net; 2. serv-net.facol.net contata servidor raiz, se necessário; Servidor de nomes raiz 2 4 5 3 Servidor local Servidor oficial serv-net.facol.net educacao.edu 1 6 3. Servidor raiz contata Requisitante servidor oficial educação secretaria.facol.net .edu, se necessário; www.ministerio.educacao.edu Percorrendo o caminho. . . • A Web provém uma “linguagem” comum para conversação entre os dispositivos através das aplicações de rede; • HTML; • HTTP, HTTPS; • FTP; • DNS; • Dúvidas?; • Lista de exercícios: Unidade II disponível no site; http://hugovlsouza.com