Prévia do material em texto
Introdução a Redes II Tcp/Ip – A Camada de Aplicação Objetivos de aprendizagem ao término desta aula, vocês serão capazes de: • conhecer e compreender o funcionamento dos principais serviços da arquitetura TCP/iP; • entender a estrutura de nomes de domínios; • compreender o funcionamento da resolução de nomes de domínios. Caros alunos e alunas! Nessa aula, estudaremos a camada de aplicação. É nessa camada da arquitetura TCP/iP que estão os protocolos que irão prover serviços para os aplicativos que utilizamos diariamente, como navegadores e clientes de e-mails. lembre-se de que dúvidas poderão surgir no decorrer dos estudos! Quando isso acontecer, anote, acesse a plataforma e utilize as ferramentas “quadro de avisos” ou “fórum” para interagir com seus colegas de curso ou com seu tutor. Sua participação é muito importante e estamos preparados para ensinar e aprender com seus avanços. Bons estudos! 6ºAula 45 Seções de estudo 1- Os principais serviços da camada de aplicação 1- Os principais serviços da camada de aplicação 1.1. Introdução a razão da existência das redes de computadores são as aplicações. Sem elas a Internet, por exemplo, não teria sentido. Formalmente podemos definir uma aplicação de rede como um programa (ou processo) que define algum serviço que será utilizado diretamente pelo usuário ou pelo sistema operacional. Na arquitetura TCP/IP as aplicações são definidas através de protocolos descritos nas RFCs. Não existe uma padronização, como no modelo OSI, ditando como deve ser estruturada uma aplicação. Geralmente as aplicações TCP/IP adotam o modelo cliente-servidor. Nesse modelo temos uma aplicação (servidor) que provê algum serviço a outra aplicação (cliente), serviço esse que é solicitado via rede. Os servidores recebem as solicitações dos clientes pela rede, processam os pedidos e devolvem o resultado de seu processamento ao cliente. Formalmente a definição de cliente é toda aplicação que solicita um serviço. Desse modo, podemos ter uma aplicação servidora que em dado momento pode acessar outra aplicação solicitando algum serviço. Nesse momento ela se torna cliente da outra aplicação. Tome como exemplo o seu acesso a um portal de notícias. O seu navegador é um processo cliente que estará fazendo requisições ao um processo servidor, no caso um servidor de páginas. as notícias provavelmente estarão armazenadas em um banco de dados. ao acessar o portal de notícias o servidor de páginas irá buscar as notícias no banco de dados, nesse momento ele se torna uma aplicação cliente do serviço de banco de dados. Quem acessa as notícias no banco de dados é o servidor de páginas e não o seu navegador. as aplicações utilizam os protocolos TCP e UDP da camada de transporte para o envio e recepção de suas mensagens. O acesso às aplicações se dá através da utilização das portas da camada de transporte. assim, cada aplicação tem uma determinada porta específica. Na tabela 1 listamos alguns serviços com a porta e o protocolo utilizado. Tabela 1 – Serviços e portas comuns Serviço Protocolo de Aplicação Protocolo de Transporte Número da Porta Correio Eletrônico SMTP TCP 25 POP3 TCP 110 IMaP TCP 143 Login Remoto SSH TCP 22 Hipermidia/ Hipertexto HTTP TCP 80 Resolução de Nomes DNS TCP, UDP 53 Transferência de Arquivos FTP TCP 20,21 Fonte: acervo pessoal. a seguir apresentaremos algumas aplicações da arquitetura TCP/iP. 1.2. DNS 1.2.1. Nomes Hierárquicos A identificação dos hosts até agora era feita através de endereços IPs. a utilização dessa notação é recomendável para máquinas e não para os seres humanos. É mais fácil para nós guardarmos um nome do que uma série de números. E essa é a tarefa do DNS (domain name system), fazer o mapeamento de nomes para endereços IP. No início da internet os nomes utilizados eram nomes simples (flat namespace) como, por exemplo, Máquina do Zé, loja do Joaquim, etc. a sua vantagem é que os nomes são curtos e fáceis de serem lembrados. Mas tem algumas desvantagens como: • A possibilidade de conflito de nomes: como os nomes são extraídos de identificadores simples, a possibilidade de haver conflito de nomes aumenta à medida que aumenta o número de sites. Quantas máquinas com o nome de zé podem existir no universo da internet? • Uma administração central ficaria inviável: com o aumento rápido do número de sites, a carga de trabalho administrativo aumentaria grandemente, chegando ao ponto de se tornar impraticável; • Recursos computacionais: ficaria inviável manter um parque de máquinas para gerenciar o mapeamento à medida que o número de sites aumenta. Como também aumentaria o tráfego de dados. Para resolver esse problema foi feita a descentralização do mecanismo de atribuição e resolução de nomes e a utilização de nomes hierárquicos, chamados de domínios. a estrutura de nomes na internet tem o formato de uma árvore invertida (raiz virada para cima e sua copa para baixo). Os ramos inferiores à raiz são chamados de TLD (Top- Level Domain Names), como por exemplo: .com, .edu, .gov, .org, .mil, .br, .cl, .uk, etc. Os TLD que designam países são chamados de geográficos e os que não designam países (.net, .edu, .com) são chamados de GTLD (Generic Top Level Domain Names) ou oficiais, que são utilizados nos Estado Unidos onde se originou a Internet. A figura 1 ilustra a hierarquia. 46Introdução a Redes II Figura 1 – Hierarquia de nomes de domínios Fonte: acervo pessoal. Essa descentralização cria autoridade sobre subdomínios. No Brasil, a nic.br (mais precisamente a registro.br) é a responsável (autoridade) sobre todos os subdomínios abaixo de sua hierarquia. Ela delega autoridade para que empresas ou instituições abaixo dela administrem os seus subdomínios. assim, por exemplo, o subdomínio empresa.com.br é administrado por empresa. Ela pode criar vários subdomínios como, por exemplo, venda.empresa.com.br, marketing. empresa.com.br, como mostrado na figura 2. Figura 2 – Delegação de Autoridade Fonte: acervo pessoal. 1.3. Resolução de Nomes Quando uma aplicação deseja se conectar a uma máquina ela passa o nome dessa máquina. Para que a conexão seja estabelecida, primeiro deve ser encontrado o seu endereço iP. Isso fica a cargo do RESOLVER. Primeiro ele verifica se o mapeamento existe em sua memória cache. Caso não seja encontrado ele irá consultar o servidor raiz, que informará o endereço do servidor de nomes, responsável pelo subdomínio de primeiro nível. Este informará o endereço do servidor de nomes do subdomínio de segundo nível. E, assim sucessivamente, até chegar ao endereço do host pretendido ou a uma mensagem de erro informando que o host de destino não existe. 1.4. arquitetura do DNS O DNS é estruturado em dois componentes: o resolver e o servidor de nomes. O resolver que vimos anteriormente realiza as consultas aos servidores de nomes. O servidor de nomes é classificado em: • Servidores primários: responsável por manter as tabelas de resolução de nome- iP de um domínio atualizadas. Pode haver somente um servidor primário por domínio. • Servidores secundários: também chamados de slaves, mantém cópias das tabelas dos servidores primários, que são consultadas caso o servidor primário venha a falhar. Eles não fazem atualizações nas tabelas. as cópias são feitas periodicamente, sempre que o servidor primário atualizar suas tabelas. • Servidores cache-only: são servidores que apenas realizam consultas a outros servidores e mantém uma cópia em sua memória. 1.5. Hipermídia/Hipertexto Sem sombra de dúvida o serviço de hipermídia/ hipertexto, também chamado de web ou www, é o serviço que mais cresce na internet e também foi o grande responsável por sua popularização. Sua forma atrativa com imagens gráficas, cores, sons, vídeos ajudou muito a popularizar a internet. Esse serviço permite que os usuários, através de arquivos HTML (HyperText Markup Language-Linguagem de Marcação de Hipertexto),“naveguem” por páginas contendo imagens, sons, figuras, vídeos e hiperlinks que são pontos nos quais, ao se clicar, o usuário é levado a uma outra página (por isso o nome de hipertexto). O protocolo utilizado é chamado de HTTP (Hypetext Transfer Protocol - Protocolo de Transferência de Hipertexto). as aplicações clientes são chamadas de navegadores como, por exemplo, o Internet Explorer, Mozilla, FireFox, Chrome e as aplicações servidoras são chamadas de servidores WEB, como Apache e IIS da Microsoft. as páginas são endereçadas por URL (Universal Resource Locator) que são composta por duas partes: o nome do host e o nome do objeto que o cliente deseja acessar. Por exemplo: em www.unigran.br/index.html, www.unigran.br especifica o nome do servidor e /index. html especifica o caminho e o nome do objeto solicitado. 1.5.1. O Protocolo HTTP O protocolo HTTP define como os clientes acessam as páginas nos servidores. Os navegadores enviam mensagens de requisição HTTP (HTTP Request) para os servidores. O servidor recebe a requisição e reponde com mensagens de respostas HTTP (HTTP Response). O protocolo HTTP utiliza-se do protocolo TCP da camada de transporte para carregar suas mensagens. a porta utilizada para acessar o serviço é a 80. 47 Existem duas versões do protocolo HTTP, o HTTP/1.0 e o HTTP/1.1 a diferença principal entre as duas está na forma como são gerenciadas as conexões. a versão 1.0 utiliza conexões não persistentes. Para cada objeto requisitado o servidor fecha a conexão após enviar a resposta. E a versão 1.1 utiliza conexões persistentes, que utilizam somente uma conexão para trocar as mensagens. Com isso o desempenho foi aumentado, pois não é necessário abrir uma nova conexão para cada objeto a ser transferido. 1.5.1.1. Formato das Mensagens O protocolo HTTP funciona no esquema de pedido e resposta. as mensagens de pedidos (http Request) têm a seguinte estrutura: GET /diretório/objeto Host: www.site.com.br Connection: close User-agent: Mozilla/4.0 Accept-language: pt a primeira linha é o comando básico da requisição de uma página Web, e corresponde à parte da URL equivalente à localização do objeto. as outras linhas são opcionais: a segunda informa o nome do HOST onde está o objeto, a terceira informa que a conexão deverá ser fechada após o envio da resposta, a quarta indica o agente utilizado (qual navegador está sendo utilizado) e a quinta indica qual a língua preferencial (no caso, português). a mensagem de reposta (Response Request) tem o seguinte formato: HTTP/1.1 200 OK Connection: close Date: Wed, 05 Nov 2008 13:00:00 GMT Server: apache/2.0.0 (Unix) Last-Modified: Wed, 05 Nov 2008 10:00:00 GMT Content-length: 2281 Content-Type: text/html Dados.........Dados a reposta é composta por três partes: a primeira é o estado da requisição (linha 1), a segunda informações adicionais (linhas 2-7) e os dados do objeto requisitado de mais linhas. a primeira linha indica a versão do protocolo sendo usado e o código do estado da mensagem. Os códigos mais comuns são: Código Significado 200 OK Requisição processada com sucesso e o objeto solicitado está em anexo. 301 Moved Permanently O objeto solicitado foi movido para outra URL 400 Bad Request Requisição não entendida pelo servidor 404 Not Found O objeto solicitado não se encontra no servidor 505 HTTP version not supported a versão do protocolo não é suportada pelo servidor as informações adicionais esclarecem que a conexão será fechada (segunda linha), o tipo do servidor (quarta linha, no caso é um servidor Apache rodando provavelmente no sistema operacional Linux), a data da última modificação do objeto (quinta linha), o tamanho do objeto em bytes (sexta linha), o tipo do objeto que está em anexo (sétima linha, no caso é uma página HTML). Os tipos de objetos mais comuns são: Tipo Descrição text/plain arquivo no formato texto (aSCII) text/html arquivo no formato HTML Image/gif Imagem no formato gif Image/jpeg Imagem no formato JPEG application/zip arquivo compactado Faça a seguinte experiência em seu computador conectado à internet, abra o prompt de comando e digite: telnet www.unigran.br 80 depois digite: GET /index.html Nesse pequeno experimento, abrimos uma conexão TCP na porta 80 com o servidor de páginas da Unigran e fizemos uma requisição da página /index.html. São essas mensagens que o navegador recebe e, baseado nelas, monta a página que será exibida ao usuário. 1.6. Correio Eletrônico O correio eletrônico é a aplicação mais popular da internet. O correio eletrônico possui três componentes básicos: os aplicativos dos clientes (chamados de User Agent), os servidores de e-mail e os protocolos. O protocolo SMTP (Simple Mail Transfer Protocol) é utilizado no envio de e-mail entre os User Agent e os servidores de e-mail, e entre os próprios servidores de e-mail. O protocolo POP3 e IMAP é utilizado entre os servidores de e-mail e User Agent para a recepção de e-mail. Esse processo é ilustrado na figura 4. Figura 4 – Funcionamento do correio eletrônico Fonte: acervo pessoal. 48Introdução a Redes II O protocolo SMTP utiliza a porta TCP 25. as mensagens enviadas pelo protocolo são em formato ASCII. O trecho abaixo é o envio de mensagens entre um cliente e um servidor utilizando o protocolo SMTP. Servidor: 220 server.unigran.br ESMTP postfix Cliente: HELO smtp.dourados.br Servidor: 250 smtp.dourados.br Cliente: MAIL FROM: glauco@dourados.br Servidor: 250 OK Cliente: RCPT TO: glauco@unigran.br Servidor: 250 OK Cliente: DATA Servidor: 354 End data with . Cliente: Olá alunos, Cliente: Este é um teste de troca de envio de mensagens em modo manual. Cliente: . Servidor: OK: queued as B6AB65132 Cliente: QUIT Servidor: 221 bye Na primeira linha o servidor se identifica ao cliente; na segunda linha o cliente se identifica; na terceira linha o servidor informa que está tudo correto; na quarta linha o cliente indica o remetente; na sexta linha informa o destinatário; na oitava linha ele informa que iniciará a transmissão do corpo da mensagem; na nona linha o servidor informa ao cliente que encerre os dados enviando a sequência .; o cliente envia o corpo do e-mail; ao terminar o servidor informa que a mensagem foi enfileirada com o número serial B6aB65132. Nas duas últimas linhas eles encerram a conexão. O protocolo POP3 (Post Office Protocol) utiliza a porta TCP 110. Os principais comandos do POP3 são: Comando Descrição User usuário Envia o nome de usuário no processo de autenticação Pass senha Envia a senha no processo de autenticação LIST Requisita uma listagem das mensagens que estão na caixa postal RETR num Requisita o envio do e-mail número DELE num apaga a mensagem número a descrição completa do protocolo pode ser obtida no endereço http://tools.ietf.org/html/rfc1225 1.7. Transferência de arquivos a aplicação utilizada para transferência de arquivos adota o protocolo FTP (File Transfer Protocol). O protocolo FTP utiliza duas portas TCPs ao invés de uma. Por uma porta (a de número 21) trafegam dados de controle como, por exemplo, usuário e senha para autenticação e comandos. a porta 20 é utilizada para realizar a transferência dos arquivos. A figura 3 ilustra a aplicação FTP. Figura 3 – Funcionamento do Protocolo FTP Fonte: acervo pessoal. Similar ao protocolo HTTP os comandos do FTP são enviados em mensagens em formato aSCii de acordo com a tabela: Ação executada Mensagem enviada ao Servidor autenticação USER usuário PaSS senha Listar o conteúdo de um diretório LIST Enviar um arquivo para o servidor STOR arquivo Receber um arquivo do servidor RETR arquivo Informar ao servidor que envie o arquivo em formato aSCII aSCII Informar ao servidor que envie o arquivo em formato binário BINaRY Chegou o momento de relembrar o que aprendemos. Retomando a aula 1- Os principais serviços da camada de aplicação Nessaaula nos foi apresentados as principais aplicações da camada de aplicação da arquitetura TCP/iP. inicialmente aprendemos sobre o processo de resolução de nomes. Os dispositivos da internet se comunicam através de endereços iP, mas para nós humanos é mais fácil decorar nomes do que endereços. Para isso foi criado do DNS que traduz nomes de domínios em endereços iP. aprendemos sobre sua arquitetura e hierarquia distribuída de forma que cada instituição é responsável em administrar seu domínio; a isso chamamos de delegação de autoridade. a razão para isso é ter um banco de dados de domínios distribuído, pois seria impossível e também ineficiente armazenar todos os domínios da internet em um único banco de dados central. Estudamos também o serviço que prove as aplicações de hipermídia/ hipertexto, também conhecido como aplicações WEB. O serviço de transferência de arquivos e o serviço de correio eletrônico. 49 Minhas anotações Hypertext Transfer P r o t o c o l . Disponível em http://pt.wikipedia.org/wiki/ Hypertext_Transfer_Protocol. acesso em: 01/03/2013. Simple Mail Transfer Protocol. Disponível em: http://pt.wikipedia.org/wiki/Simple_Mail_Transfer_ Protocol. acesso em: 01/03/2013. File Transfer Protocol. Disponível em http:// pt.wikipedia.org/wiki/File_Transfer_Protocol. acesso em: 01/03/2013. Domain Name System. Disponível em http:// pt.wikipedia.org/wiki/Domain_ Name_System. acesso em: 01/03/2013. Post Office Protocol. Disponível em http:// pt.wikipedia.org/wiki/Post_Office_Protocol. acesso em: 01/03/2013. internet Message access Protocol. Disponível em: http://pt.wikipedia.org/wiki/internet_Message_access_ Protocol. acesso em: 01/03/2013. Vale a pena acessar YouTube. DNS - Domain Name System. Disponível em: http://www.youtube.com/watch?v=i4KMcl0tuEg. acesso em: 01/03/2013. Vale a pena assistir Vale a pena