Objetivos •Definir a camada de aplicação do TCP/IP. •Compreender a interface socket para uso das aplicações. •Identificar os diversos protocolos de aplicação do TCP/IP. Conteúdos •Detalhes da camada de aplicação. •Procedimentos de sockets. •Protocolo HTTP – Hyper Text Transport Protocol. •Protocolo FTP – File Transfer Protocol. •Protocolo DNS – Domain Name System. •Protocolo SMTP – Simple Mail Transfer Protocol. •Protocolo POP - Post Office Protocol. •Protocolo TELNET – Teletype Network. •Protocolo SNMP – Simple Network Management Protocol. •Protocolo DHCP – Dynamic Host Configuratin Protocol. UNIDADE 6 MÓDULO AVANÇADO II UNIDADE 6 cursos de Graduação ATENÇÃO! Técnicas e métodos de estudo podem facilitar sua compreensão sobre os conteúdos estudados. (1) Primitivas são regras definidas para a comunicação. 1 Introdução Nos últimos 30 anos, muitas pessoas inventaram numerosas aplicações de redes. Podemos citar, como exemplo, o correio eletrônico, a web, a transferência de arquivos e obate-papo. Sem o desenvolvimento desses aplicativos, não haveria a necessidade de projetar protocolos de rede para suportá-los. Na unidade anterior, você estudou que os protocolos da camada de aplicação, geralmente, interagem com o usuário por meio das aplicações. Como vimos, os processos na camada de aplicação acessam a camada de transporte mediante primitivas1 padronizadas de serviços com passagem de parâmetros. Cada aplicação é, então, referida na rede pelo seu endereço IP e sua porta, e são gerenciadas pelos protocolos de transporte TCP ou UDP. Assim, uma aplicação do tipo Servidor Web rodará na porta 80 de uma máquina com um determinado número IP. Nesta unidade, detalharemos um pouco mais sobre alguns dos protocolos de aplicação usados na arquitetura TCP/IP. Começaremos entendendo o funcionamento da interface de programação Socket, que é por onde as aplicações se comunicam com os protocolos da camada de transporte. Bom estudo! 2 Procedimentos De Sockets Antes de iniciarmos o estudo dos sockets, é importante conceituar protocolos da camada de aplicação para distingui-los de aplicações de rede. Um protocolo da camada de aplicação é apenas um pedaço de uma aplicação de rede. Por exemplo, uma aplicação da web consiste em muitos componentes, entre eles um padrão para formato de documentos HTML, browsers web (Internet Explorer, Firefox), servidores web (apache, IIS) e um protocolo da camada de aplicação (HTTP). Assim, o protocolo da camada de aplicação é apenas um pedaço da aplicação de rede, no caso, a aplicação web. Quando programas de aplicações em rede são escritos, eles podem atender aos requisitos de uma RFC (Requests For Coments) já estabelecidos com o conceito de portas bem conhecidas que determinam os procedimentos, tanto do lado cliente como do lado servidor. INFORMAÇÃO: A RFC é um documento que descreve os padrões de cada protocolo da internet, previamente, a serem considerados como tal. O protocolo TCP, por exemplo, está padronizado pela RFC 793. Visite o site <http://www.faqs.org/rfcs>. 86 Por exemplo, um programador que vai escrever um browser deve atender todas as regras previstas nas RFCs para tal implementação, pois ele estará se comunicando com servidores como o apache, o IIS e outros que também foram escritos levando em consideração tais regras. Contudo, se um programador deseja fazer uma aplicação para redes do tipo cliente/servidor, visando atender às necessidades internas de uma organização qualquer, ele dispõe dos procedimentos de sockets para implementá-la no protocolo TCP/IP. CRC • • • © Redes de Computadores Claretiano – Batatais UNIDADE 6 Cursos de Graduação Como já vimos, a interface socket atua entre as aplicações e os protocolos da camada de transporte. Sockets são pontos finais de comunicação criados pela aplicação cliente e pela aplicação servidora para estabelecerem uma comunicação. Para melhor entender, veja a ilustração da Figura 1. ATENÇÃO! Faça uma pausa em sua leitura e analise a figura com atenção, passo a passo, para que possa compreender melhor o assunto. Não deixe dúvidas em sua cabeça! Figura 1 Ilustração de sockets. Um procedimento de socket nada mais é que o uso de um conjunto de primitivas que interagem com a camada de transporte, ou seja, prestam serviços à camada de transporte. Observe, na Tabela 1, as primitivas usadas com procedimentos sockets. Tabela 1 Primitivas usadas com a interface de procedimentos Sockets. Primitiva Descrição da função da primitiva Socket() Cria um ponto final de comunicação socket e retorna um descritor. Bind() Registra porta local para esperar contato. Listen() Dispõe-se a receber conexão (modo passivo). Accept() Aguarda uma tentativa de conexão de um socket cliente. Esta diretiva criará um novo socket (newsocket) que aceitará a próxima conexão. Usando UDP não é executada. Connect() Usada pelo cliente para estabelecer uma conexão usando o protocolo TCP. Usando UDP somente é registrado o endereço do servidor para ser usado no destino do pacote UDP. Gethostname() Retorna o nome do host. Gethostbyname() Retorna o endereço IP a partir do nome lógico. Recv() Recebimento de dados de uma conexão TCP. Send() Envio de dados por uma conexão TCP. Recvfrom() ou recvmsg() Recebimento de dados usando UDP. Sendto() ou sendmsg() Envio de dados usando UDP. Close() Finaliza a comunicação usando TCP; fecha o socket (TCP/ UDP). • CRC Batatais – Claretiano © Redes de Computadores • • 87 UNIDADE 6 cursos de Graduação ATENÇÃO! Acompanhe a explicação contida no texto por meio da Figura 2, isso facilitará sua compreensão! Caso necessite de uma visão mais detalhada, visite a ferramenta Material do Apoio da Sala de Aula Virtual. Vamos, agora, entender como é a ordem de uso dessas primitivas. 1) Há a necessidade de o processo servidor estar ativo na máquina servidora para que os processos clientes possam conectá-lo. Isso é feito do lado do servidor com o uso da primitiva Socket(), seguida da primitiva bind(). Algumas linguagens englobam uma ou mais primitivas em um só procedimento, como na linguagem java, em que somente é executada a primitiva ServerSocket(), substituindo a Socket(), bind() e listen(). 2) O processo servidor usa, a seguir, a primitiva listen(). Isso faz com que a aplicação servidora fique verificando pacotes com destino à porta que está monitorando. 3) Em seguida, a aplicação servidora usa a diretiva accept(), informando que está pronta para receber conexões. 4) A partir desse momento, os processos clientes já podem conectá-lo usando o numero IP do servidor mais a porta que o processo servidor está monitorando. Assim, o processo cliente inicia um procedimento usando a primitiva Socket() e, em seguida, usa a primitiva connect(), que estabelecerá uma conexão TCP com o servidor ou, se for usado o UDP, o socket será marcado conectado e registrará o IP do servidor para posterior uso com as primitivas sendto() ou sendmsg(). 5) Ao perceber uma requisição de conexão vinda do cliente, o servidor da aplicação acorda o processo accept(), que estava aguardando um pedido de conexão, e este trata a conexão do cliente e cria um novo socket que ficará aguardando o próximo pedido de conexão. A partir daí, a conexão já pode ser usada para transferência de dados entre as duas aplicações. Note que esta comunicação é ponto a ponto e full-duplex. 6) A aplicação cliente, então, pode usar a primitiva send() para escrever no socket, o que significa enviar dados à aplicação servidora, bem como usar a primitiva recv() para ler do socket, o que significa receber dados da aplicação servidora em uma conexão TCP. No caso do UDP, as primitivas sendto() e sendmsg() são usadas para enviar dados e as primitivas recvfrom() e recvmsg() para recebê-los. 7) Do lado da aplicação servidora, as mesmas primitivas do item seis podem ser usadas para cada socket criado, pois uma aplicação servidora comunica com vários clientes ao mesmo tempo. 8) Ao final da comunicação, tanto o lado da aplicação cliente como o lado da aplicação servidora devem executar a primitiva Close(), que, no caso do TCP, finalizará a conexão e fechará o socket. A Figura 2 ilustra as etapas mostradas anteriormente. 88 CRC • • • © Redes de Computadores Claretiano – Batatais UNIDADE 6 Cursos de Graduação Figura 2 Ilustração da ordem de uso de primitivas sockets. A seguir, vamos detalhar alguns dos protocolos da camada de aplicação, utilizados diariamente pelos servidores e usuários de uma rede TCP/IP, especialmente na internet. 3 Protocolo HTTP – Hyper Text Transport Protocol O protocolo HTTP, da arquitetura TCP/IP, é o responsável pela transferência de hipertextos. Hoje, ele é o principal protocolo utilizado pelas pessoas na internet que navegam pela World Wide Web. Esta comunicação é do tipo Cliente/Servidor. Há vários softwares para servir e para acessar páginas com o protocolo HTTP. Os clientes (browser) mais utilizados são: Internet Explorer, Netscape e Firefox, e os servidores mais encontrados são: IIS (Internet Information Service), Apache, PWS (Personal Web Service), dentre outros. Uma página é acessada pelo browser informando sua URL (Uniform Resource Locator). Uma URL está dividida em três partes: a primeira parte representa o protocolo, neste caso, HTTP; a segunda parte indica o nome DNS da máquina hospedeira da página (servidor); e a terceira parte indica o nome local onde se encontra a página, geralmente, um arquivo. INFORMAÇÃO: Hipertexto é um sistema para a visualização de informação cujos documentos contêm referências internas para outros documentos (chamadas de hiperlinks ou, simplesmente, links), e para a fácil publicação, atualização e pesquisa de informação. O sistema de hipertexto mais conhecido atualmente é a World Wide Web. Se a terceira parte não for informada, o acesso será feito à página padrão do hospedeiro. O HTTP utiliza o serviço de transporte do protocolo TCP (confiável e com conexão). Exemplos: informando a URL http://www.claretiano.edu.br, receberemos a página padrão da máquina servidor web, do domínio claretiano.edu.br, pelo protocolo HTTP. Se digitarmos ftp://ftp.claretiano.edu.br, acessaremos os arquivos compartilhados da máquina servidor ftp, do domínio claretiano.edu. br, pelo protocolo FTP. Se informarmos a URL completa http://www.claretiano. edu.br/paginas/index.jsp, acessaremos o arquivo index.jsp, que encontra-se na máquina servidor web do domínio claretiano.edu.br. • CRC Batatais – Claretiano © Redes de Computadores • • 89 UNIDADE 6 cursos de Graduação A Figura 3 mostra o formato da URL e o uso pelos outros protocolos. Figura 3 Formato da URL. O HTTP consiste, praticamente, de um protocolo de solicitação e resposta. Dessa forma, o browser faz solicitações aos servidores e estes, por sua vez, encaminham a resposta à solicitação. A Figura 4 descreve a sequência de ações entre o cliente e o servidor. Fonte: KUROSE; ROSS, 2003, p. 67. Figura 4 Sequência de ações no protocolo HTTP. Os métodos de solicitação/resposta (request/response) aplicados a esse protocolo são mostrados a seguir: • GET – solicita a leitura de uma página da web; • PUT – solicita a guarda de uma página da web; • DELETE – solicita a remoção de página da web; • POST – solicita o acréscimo a um recurso; • HEAD – solicita o cabeçalho de uma página; • LINK – solicita a conexão de recursos; • UNLINK – solicita a desconexão de recursos feitos pelo link. O HTTP utiliza o serviço de transporte do protocolo TCP (confiável e com conexão), no qual a conexão é iniciada pelo browser por meio da interface socket do protocolo de transporte. 90 CRC • • • © Redes de Computadores Claretiano – Batatais UNIDADE 6 Cursos de Graduação O protocolo HTTP pode estabelecer dois tipos de conexões: conexões persistentes e não persistentes. Para explicarmos esses conceitos, vamos tomar uma página com um arquivo HTML (principal), e mais três objetos do tipo imagem (JPEG, GIF ou BMP), conforme mostra o código a seguir: <HEAD> <TITLE>Página Html Principal</TITLE> </HEAD> <BODY> Este é a página principal deste exemplo. Abaixo estão 3 imagens <IMG SRC=imagens/imagem1.gif> <IMG SRC=imagens/imagem2.bmp> <IMG SRC=imagens/imagem3.Jpg> </BODY> </HTML> O cliente, ao chamar a URL http://www.meusite.com.br/pagina.html, faz com que o protocolo HTTP abra uma conexão TCP para o servidor www.meusite.com.br e, em seguida, requisita o objeto pagina.html (código acima). O servidor providencia e envia o objeto pagina.html para o cliente, que recebe o objeto pagina.html e, em seguida, a conexão é encerrada. O cliente, então, abre o objeto pagina.html e verifica que há mais três objetos do tipo imagem no documento e, assim, repete todas as operações anteriores para o objeto um: imagens/imagem1.gif, e, recebido o objeto um, repete o processo para o objeto dois: imagens/imagem2.bmp, e, novamente, para o terceiro objeto: imagens/imagem3.jpg. Neste exemplo, foram usadas conexões “não persistentes” sequenciais. Poderia ter sido especificado o uso de paralelismo, modo em que o cliente abriria as três conexões para os objetos simultaneamente e, neste caso, estariam em uso conexões “não persistentes com paralelismo”. Há, ainda, o caso de conexões persistentes, quando, em uma única conexão (sem encerrá-la), são enviados todos os objetos um a um, caracterizando “persistentes sequenciais”; ou os três objetos simultaneamente, caracterizando “persistentes com paralelismo”. O protocolo HTTP pode usar conexões persistentes e não persistentes. O HTTP/1.0, definido pela RFC 1945, utiliza conexões não persistentes. Já o HTTP/1.1 utiliza conexões persistentes. A Figura 5 ilustra uma mensagem de requisição (request) típica HTTP de interação entre um cliente e um servidor web. INFORMAÇÃO: Até 1997, todos os browsers e servidores apresentavam a versão HTTP/1.0. A partir de 1998, começaram a implementar a versão HTTP/1.1, que permanece até os dias de hoje. Ambas as versões utilizam como protocolo de transporte o TCP. • CRC Batatais – Claretiano © Redes de Computadores • • 91 UNIDADE 6 cursos de Graduação Fonte: KUROSE; ROSS (2003, p. 70). Figura 5 Mensagem de requisição (request) típica HTTP. A Figura 6 ilustra uma mensagem de resposta (response) HTTP do servidor web, vista no exemplo da Figura 5. Fonte: KUROSE; ROSS (2003, p. 71). Figura 6 Mensagem de resposta (response) típica HTTP. 4 Protocolo FTP – File Transfer Protocol O FTP é um protocolo da camada de aplicação da arquitetura TCP/IP que utiliza o protocolo TCP na camada de transporte. Portanto, é uma aplicação orientada à conexão e confiável. É um protocolo que utiliza o modelo cliente/servidor e as portas 20 e 21 para a comunicação. Esse protocolo, além de ser um dos protocolos mais utilizados na transferência de arquivos e poder ser executado tanto no modo interativo quanto por outros programas, permite o compartilhamento e o intercâmbio de arquivos, bem como converte diferentes sistemas de arquivos. O protocolo implementa nível de segurança, pois exige que seja indicado usuário e senha de acesso. A porta 20 mantém a conexão de dados e serve para a efetiva transferência dos dados, e a porta 21 mantém a conexão de controle, na qual são passados os diversos comandos, conforme ilustra a Figura 7. 92 CRC • • • © Redes de Computadores Claretiano – Batatais UNIDADE 6 Cursos de Graduação Fonte: KUROSE; ROSS (2003, p. 81). Figura 7 Ilustração da utilização do protocolo FTP. A aplicação cliente FTP contém três módulos: • módulo Interface com o usuário; • módulo Interpretador de Protocolo do cliente (Cliente-PI); • módulo Processo de transferência de dados (Cliente-DTP). O módulo processo de transferência de dados (cliente-DTP) é o responsável pela comunicação com o sistema de arquivos do cliente. A aplicação servidora FTP contém dois módulos: • módulo Interpretador de Protocolo do Servidor (Servidor-PI); • módulo Processo de transferência de dados (Servidor-DTP). O responsável pela comunicação com o sistema de arquivos do servidor é o módulo Processo de transferência de dados (servidor-DTP). Não existe o módulo interface com o usuário no servidor FTP. A Figura 8 ilustra o protocolo FTP. ATENÇÃO! Analise cada figura antes de continuar a leitura do texto, pois elas são importantes para a sua compreensão! Figura 8 Ilustração do protocolo de aplicação FTP. O Windows implementa o uso do cliente FTP por meio de comandos, permitindo que um servidor de FTP possa ser acessado por intermédio de linhas de comando. Os principais comandos do protocolo FTP disponíveis na interface com o usuário são listados pela da Figura 9. • CRC Batatais – Claretiano © Redes de Computadores • • 93 UNIDADE 6 cursos de Graduação Figura 9 Principais comandos do protocolo FTP disponíveis na interface com o usuário. Para transferir um arquivo do servidor, precisamos entrar com a seguinte sequência de comandos: 1) executar o cliente ftp como mostra a Figura 9, que é um executável do diretório windows; 2) utilizar o comando open seguido do endereço IP, ou do nome DNS, do servidor. Exemplo: open 10.132.145.215 ou open ftp.serv.org.br; 3) após a conexão estabelecida, serão solicitados usuário e senha; 4) a seguir, pode-se usar o comando cd para mudar ao diretório remoto desejado, bem como o comando lcd que faz o mesmo no diretório local; PARA VOCÊ REFLETIR: Após ter estudado os protocolos HTTP e FTP, procure comparálos; estabelecendo os critérios de sua comparação. ATENÇÃO! Suas reflexões podem ser um instrumento interdisciplinar da construção dos conhecimentos. Para tanto, anote-as em seu caderno ou no Bloco de Anotações disponibilizado na Sala de Aula Virtual, pois elas poderão ser úteis futuramente. 94 5) localizado o arquivo alvo, pode-se comandar get para recebê-lo, ou mget, que recebe vários arquivos. Caso o objetivo seja enviar um ou vários arquivos, podemos utilizar o comando put ou mput. O protocolo FTP também pode ser executado usando um browser, como o Firefox ou o Internet Explorer, informando a URL desejada. Exemplo: ftp://www.site.com. br/nomedoarquivo. 5 Protocolo SMTP – Simple Mail Transfer Protocol Assim como a web, o correio eletrônico é uma das mais populares aplicações da internet. As pessoas enviam e recebem mensagens, na medida de sua conveniência, sem ter de estar coordenadas com o horário de outras pessoas. A Figura 10 mostra o sistema de correio da internet e seus componentes principais. CRC • • • © Redes de Computadores Claretiano – Batatais UNIDADE 6 Cursos de Graduação Fonte: KUROSE; ROSS (2003, p. 83). Figura 10 Ilustração dos principais componentes do correio da internet. De acordo com a figura 10, há três componentes importantes: agentes usuários, servidores de correio e o SMTP. Os agentes permitem que os usuários leiam, respondam, repassem, salvem e componham novas mensagens. Atualmente, o Eudora, Outlook Express e o Messenger da Netscape estão entre os agentes usuários com interface gráfica mais populares. Os servidores de correio formam o núcleo da infraestrutura do e-mail. Cada destinatário tem uma caixa postal localizada neles. Quando queremos acessar uma caixa postal, o servidor que contém a correspondência procede a autenticação do usuário com nome e senha. O SMTP é protocolo da camada de aplicação do correio eletrônico na internet. Ele usa o serviço confiável de transferência de dados TCP na porta 25 para transferir mensagens do servidor de correio do remetente para o servidor de correio do destinatário. Quando um servidor de correio envia correspondência, ele age como cliente SMTP. Quando recebe correspondência, como servidor SMTP. Vamos examinar um exemplo, ilustrado pela Figura 11, de troca de mensagens entre um cliente (C) e o servidor (S). O nome do host do cliente é crepes.fr e o nome do host do servidor é hamburger.edu. • CRC Batatais – Claretiano © Redes de Computadores • • 95 UNIDADE 6 cursos de Graduação Fonte: KUROSE; ROSS (2003, p. 85). Figura 11 Troca de mensagens entre o cliente (C) e o servidor (S). No exemplo da Figura 11, vimos que o cliente enviou cinco comandos: HELO (abreviação de HELLO), MAIL FROM, RCPT TO, DATA e QUIT. Os próprios nomes dos comandos já explicam as suas funções. O SMTP usa conexões persistentes, ou seja, se o servidor de correio do remetente tiver diversas mensagens para enviar ao mesmo servidor de correio do destinatário, ele poderá enviar todas as mensagens pela mesma conexão TCP. Para cada mensagem, o cliente reinicia o processo com um novo MAIL FROM e somente emite a mensagem QUIT quando todas as mensagens já tiverem sido enviadas. 6 Protocolo POP – Post Office Protocol O protocolo POP, definido pela RFC 1939, tem função de acesso ao correio eletrônico para a recuperação das mensagens que estão na caixa postal em um servidor de correio eletrônico, visto que o protocolo SMTP serve apenas para enviar as mensagens entre cliente e servidor de correio eletrônico e, também, entre servidores de correio eletrônico. Por ser simples, sua função é limitada. O protocolo POP encontra-se na versão 3, sendo chamado de POP3. A interação entre o cliente POP3 e o servidor começa quando o agente usuário abre uma conexão com o servidor de correio na porta 110. A conexão, depois de estabelecida, continua por três fases: autorização, transação e atualização. • autorização: o agente usuário envia um nome de usuário e uma senha para autenticar a leitura da correspondência do usuário; • transação: o agente usuário recupera a mensagem na sua caixa postal; • atualização: após o cliente ter dado o comando quit, que encerra a sessão POP3, o servidor apaga as mensagens que foram marcadas. 96 CRC • • • © Redes de Computadores Claretiano – Batatais UNIDADE 6 Cursos de Graduação A Figura 12 ilustra os comandos possíveis de interação entre um cliente e um servidor POP3 e as fases que a envolvem. PARA VOCÊ REFLETIR: Seria correto afirmarmos que o protocolo POP complementa o protocolo SMTP? Por quê? ATENÇÃO! Lembre-se de que suas reflexões não precisam ser entregues nas ferramentas da Sala de Aula Virtual. São, porém, importantes para o seu aprendizado, e anotálas poderá auxiliá-lo futuramente. Fonte: KUROSE; ROSS (2003, p. 93). Figura 12 Ilustração dos comandos de interação entre um cliente e um servidor POP3. 7 Protocolo DNS – Domain Name System Assim como uma lista telefônica relaciona o nome do assinante a seu número de telefone, há, na arquitetura TCP/IP, um protocolo da camada de aplicação que relaciona o nome de um domínio com vários dados desse domínio, como, por exemplo, seu endereço IP, dados de e-mail e outros dados incluídos no protocolo. Entende-se por domínio um agrupamento lógico de máquinas dentro de uma rede local. Podem haver um ou mais domínios dentro da mesma rede. Assim, o usuário, ao entrar em uma máquina, geralmente, define o domínio que quer trabalhar. Como já vimos, a camada de rede necessita do endereço IP para transmitir um datagrama pela rede; é, porém, muito mais fácil memorizarmos um nome de domínio ou um nome do servidor e-mail do que fazermos referência a seu endereço IP. O Protocolo que faz o relacionamento do domínio com os dados é chamado de DNS (Domain Name System) e usa o protocolo de transporte UDP e a porta 53 para disponibilizar seus serviços. Este protocolo trabalha em um esquema de atribuição de nomes baseados em domínios na forma de árvore inversa, ou seja, em um esquema hierárquico de domínios (Figura 13). Para que o DNS possa ser consultado, o aplicativo em uso executa um procedimento de biblioteca chamado resolvedor (resolver), cujo parâmetro passado é o objeto a ser pesquisado, como, por exemplo, o nome do domínio. • CRC Batatais – Claretiano © Redes de Computadores • • 97 UNIDADE 6 cursos de Graduação VOCÊ SABIA QUE... “Quando a internet ainda era uma ferramenta de uso militar e não possuía muitos computadores, o acesso aos nomes era possível graças a um arquivo de nome hosts.txt. Esse arquivo continha os endereços de cada nome existente. Com o crescimento da internet, esse arquivo passou a crescer de igual forma e chegou ao ponto de ser tão grande que causava atraso nas atualizações. Por volta de 1983, o esquema hoje conhecido como DNS tomou forma para resolver esse problema” (ALECRIM, 2005). O resolvedor monta um pacote do tipo UDP para um servidor de DNS local, onde o nome de um domínio, após ser resolvido, devolve as informações contidas no pacote de dados, tal como o endereço IP, que repassa para o aplicativo. A máquina conhece o seu endereço DNS para endereçar o pacote, pois, na configuração do protocolo TCP/IP, um dos parâmetros necessários é o endereço IP do servidor do DNS primário e endereço IP do DNS secundário que será usado. Os servidores DNS acham-se espalhados pelos backbones da internet. Nos primórdios da internet, estes servidores estavam concentrados em universidades dos EUA e, basicamente, eram dispostos de um nó raiz chamado root server ou servidor raiz, e um nível imediatamente inferior, no qual se encontram os TLD – Top Level Domain Names, que são formados pelos domínios de três letras como: .com, .net, .org; também conhecidos como genéricos. Com o crescimento da internet, houve a necessidade da criação de mais um nível de TLD, com duas letras, que indicassem o país e, assim, agrupassem os respectivos domínios. Cada país tem um órgão que administra os nomes de domínio daquele país. Esses novos TLD são conhecidos como .br (Brasil); .fr (França); .dt (alemanha); dentre outros. O órgão que registra domínios no Brasil é o comitê Gestor da Internet Brasileira, administrado pela FAPESP (Fundação de Amparo à Pesquisa do Estado de São Paulo). A Figura 13 mostra a árvore invertida que mencionamos. Figura 13 Esquema hierárquico de domínios. A internet é, então, constituída de vários níveis de domínios hierárquicos, cujo nó raiz está localizado nos EUA, e os nós folhas representam aqueles domínios que não mais se subdividem em subdomínios, mas que representam um agrupamento lógico de dispositivos. Um domínio pode concentrar centenas ou milhares de dispositivos. Os domínios mais altos são classificados em genéricos e países. Domínios genéricos são representados como: .com, .edu, .gov, .net, .org, .mil etc.; e domínios de países, pelas siglas como: .br, .fr,. jp, .dt, .uk etc. Cada domínio tem seu nome definido pelos níveis ascendentes entre ele e o servidor raiz, que não tem nome. Esses níveis são separados por pontos. Dessa forma, o 98 CRC • • • © Redes de Computadores Claretiano – Batatais UNIDADE 6 Cursos de Graduação domínio CLARETIANO é designado pelo nome claretiano.edu.br. Cada domínio controla os domínios de níveis hierárquicos inferiores, sem a necessidade de permissão do nível mais alto da árvore. Assim, este pode evitar os conflitos de nomes. Um servidor de domínio tem o registro do nó raiz para onde é repassada a consulta caso o nome não possa ser resolvido no próprio nível. Quando um servidor obtém uma resposta de um nome resolvido pelo nó raiz, coloca-o em cache, assim, a próxima vez que for preciso resolver o mesmo nome, já estará em cache e não haverá a necessidade de sobrecarregar o nó raiz. Os subdomínios estabelecem fronteiras organizacionais, não físicas, podendo o CLARETIANO dispor de um servidor de domínios que estabeleça um domínio para o departamento de recursos humanos, e outro para o centro de educação a distância. Nesse caso, seu servidor de DNS teria as entradas rh.claretiano.edu.br e cead.claretiano.edu.br. Uma entrada de domínio no DNS pode ser composta de um ou mais registros de recursos, dos quais o registro mais comum é o endereço IP correspondente. O registro de recursos é composto por cinco campos, conforme mostra a Figura 14. Nome do domínio Tempo de Vida Tipo Classe Valor Figura 14 Registro de recursos no domínio do DNS. ATENÇÃO! Para a construção do seu conhecimento, nesta disciplina, é importante que as tabelas e figuras sejam analisadas e compreendidas, com a finalidade de um melhor entendimento do texto apresentado. Não deixe dúvidas para trás, pois elas o impedirão de caminhar com sucesso! Nome do domínio: indica o domínio a que o registro pertence. Pode haver mais de um registro para o mesmo domínio. Tempo de vida: indica o tempo que o registro permanece válido. Tipo: indica o tipo do registro. Exemplos: • A (Address) – se o campo valor for um endereço IP; • MX (Mail Exchanger) – se o campo valor for um servidor de e-mail; • NS (Name Server) – endereço IP do servidor de nomes autoritativos para este domínio; • CNAME – apelido para algum nome de domínio real. Classe: indica a classe do domínio. Por exemplo, IN indica internet. Valor: contém o valor que será enviado de retorno. Por exemplo, o registro tipo A terá um valor que é o endereço IP que deve ser retornado. Vamos entender, agora, como acontece uma consulta ao servidor de DNS. Imagine que um nome xpto.org.br tenha que ser resolvido pelo domínio UOL. O processo resolvedor chamado por uma aplicação, rodando no domínio UOL, envia uma consulta ao servidor DNS local da rede UOL. Foi gerada uma consulta com o nome do domínio procurado, o tipo A, pois se quer o endereço, e classe IN, de internet. O DNS local nada sabe e, então, repassa para o seu nó raiz, que, no caso, é o servidor que cuida dos domínios .com. Este, também, não é capaz de traduzi-lo, repassando ao próximo nó raiz, no caso, o servidor que cuida dos domínios .br. O servidor .br conhece um subdomínio .org, para onde encaminha a solicitação. Este, por sua vez, conhece o domínio .xpto e, assim, o IP é retornado para o servidor que originou a consulta, que cuida de o repassar à aplicação solicitante, registrando-o em cache para consulta futura. • CRC Batatais – Claretiano © Redes de Computadores • • 99 UNIDADE 6 cursos de Graduação A Figura 15 ilustra essa consulta. br com org consulta de domínio uol.com.br xpto.org.br Figura 15 Ilustração da consulta de domínio pelo DNS. A Figura 16 mostra a configuração do DNS feita nas estações de trabalho, para onde o processo resolvedor enviará as solicitações de resoluções de nomes. A estação de trabalho poderá, também, relacionar nomes com seus respectivos IP em um arquivo chamado hosts, que permite que alguns nomes mais usados sejam mantidos na própria estação. ATENÇÃO! Faça uma pausa em sua leitura e analise as figuras com atenção, passo a passo, para que você possa compreender melhor o assunto. Não deixe dúvidas em sua cabeça! Um nome bastante usado neste arquivo é o localhost, que, geralmente, aponta para o endereço IP 127.0.0.1. Figura 16 Configuração DNS nas estações de trabalho. 100 CRC • • • © Redes de Computadores Claretiano – Batatais UNIDADE 6 Cursos de Graduação 8 Protocolo Telnet – Teletype Network Para o acesso e a administração remotos de máquinas, foi implementado um protocolo na arquitetura TCP/IP que oferece o serviço de terminal virtual, também conhecido como NTV – Network Virtual Terminal. Este protocolo é o telnet – Teletype Network. O protocolo telnet faz com que a operação remota ocorra como se o terminal estivesse conectado direto à máquina remota. O telnet utiliza o protocolo de transporte TCP e estabelece uma conexão confiável com a máquina remota de tal forma que os caracteres digitados são transportados e entregues no lado remoto. A aplicação cliente telnet está disponível nas máquinas que utilizam Windows, Unix, Linux, dentre outras. Uma aplicação servidora estabelece a porta 23 para oferecer tais serviços. Quando estabelecida uma conexão telnet, tanto o lado origem como o lado destino se adaptam a uma representação padrão de terminal. Além disso, transitam dados em ambas as direções simultaneamente, podendo, ainda, serem negociadas algumas facilidades adicionais, desde que ambos concordem. O telnet é um serviço básico de login remoto e não implementa criptografia dos dados. Outros serviços de login mais sofisticados a implementam, como o SSH (Secure Shell), muito utilizado em ambientes Unix e GNU/Linux. Esta aplicação servidora utiliza-se da porta 22 para prestar esses serviços, e usa o protocolo TCP na camada de transporte. O telnet implementa um dispositivo full-duplex, composto de uma unidade de apresentação representada pelo vídeo, e uma unidade de entrada representada pelo teclado. A Figura 17 ilustra um serviço de telnet disponibilizado por um servidor de terminais do Windows NT. INFORMAÇÃO: Há quatro modos de operação possíveis para clientes e servidores telnet: • Half-duplex. • Character at a time (um caracter por vez). • Line at a time (uma linha por vez). • Linemode. Figura 17 Ilustração de serviço TELNET disponibilizado por servidor no terminal Windows NT. • CRC Batatais – Claretiano © Redes de Computadores • • 101 UNIDADE 6 cursos de Graduação 9 Protocolo SNMP – Simple Network Management Protocol O gerenciamento da rede, nos primórdios, era centralizado em uma tarefa de verificação em diversos pontos das conexões. Tratava-se de uma rede em crescimento e, por meio de programas como o Ping, detectavam-se pontos de falhas. O SNMP surgiu com o propósito de realizar o monitoramento e o gerenciamento de redes como a internet. O SNMP é um software de gerenciamento de rede que permite interrogar os diversos dispositivos, tais como roteadores, pontes, comutadores e hosts, obtendo informações como seu estado, seu tráfego e outras estatísticas previstas no protocolo. O SNMT é um protocolo que está presente na maioria dos dispositivos de rede, em especial naqueles que atuam nos roteamentos principais. O processo que roda nestes dispositivos é chamado agente SNMP. O agente SNMP, então, é um processo dentro de um dispositivo gerenciado, e que mantém um banco de dados próprio com variáveis que descrevem seu estado atual e anterior e pode vir a interferir no seu funcionamento. Alguns dispositivos que não implementam um agente SNMP podem ser gerenciados por um processo chamado agente proxy SNMP, que gerencia um ou mais dispositivos desse tipo. Note que essas informações coletadas pelos dispositivos não teriam muitas finalidades se não houvesse um processo de gerenciamento centralizado. Esse processo centralizado de gerenciamento do SNMP é executado por um software apropriado, que pode ser gráfico, rodando em uma máquina, que por executar tais serviços recebe o nome de estação de gerenciamento (management stations). A estação de gerenciamento é que implementa toda a inteligência do processo, emitindo os comandos de consulta aos agentes e tratando as respostas recebidas. Dessa forma, o processo rodando nos agentes pode ser mais simples e causar o menor impacto possível na rede, e, consequentemente, pode ser implementado em muitos dispositivos de rede. A estação de gerenciamento mantém os processos que se comunicam com os diversos agentes SNMP, utilizando o protocolo SNMP, portas 161 e 162, por meio do protocolo de transporte UDP, portanto, sem conexão e não confiável. Os dados trocados entre a estação de gerenciamento e o agente SNMP são os objetos mantidos localmente pelo agente e consultados pelos gerentes. Os objetos estão localizados em um banco de dados virtual denominado MIB – Management Information Base. Cada Gerente tem sua própria MIB, com os objetos por ele controlados. Esses objetos estão agrupados em 10 categorias ou módulos, padronizados, que são de total conhecimento de uma estação de gerenciamento. Na quadro a seguir, são mostradas as dez categorias que compõem os agrupamentos de objetos gerenciados pelo protocolo SNMP. 102 CATEGORIA No DE OBJETOS System 7 Interfaces 23 Dados da Interface de rede e também do trânsito de dados. AT 3 Conversão de endereços (IP-MAC entre outros). Não usado. IP 42 Informações sobre o fluxo e trânsito de datagramas IP. ICMP 26 Informações sobre as mensagens ICMP recebidas. CRC • • • © Redes de Computadores Claretiano – Batatais DETALHES Nome do fornecedor, equipamentos. modelo, versão dos UNIDADE 6 Cursos de Graduação CATEGORIA No DE OBJETOS DETALHES TCP 19 Informações sobre o tráfego TCP. UDP 6 Informações sobre o tráfego UDP. EGP 20 Transmission 0 SNMP 29 Informações de tráfego dos protocolos de Gateway externo. Informações sobre o tráfego SNMP. Desse modo, a estação de gerenciamento pode consultar cada um dos 175 objetos mantidos pelo agente por meio de comandos de solicitações, podendo, inclusive, solicitar que o agente altere os dados de um objeto qualquer. Observe, no quadro a seguir, os comandos utilizados para esse gerenciamento. COMANDOS PORTA DETALHES Get-request 161 Solicitação de variáveis. Get-next-request 161 Solicitação da sequencial). Get-Bulk-request 161 Solicitação de muitas variáveis (tabela inteira). Set-request 161 Solicitação de atualização de uma ou mais variáveis. Inform-request 161 Descrição de MIB local, trocadas entre duas estações de gerenciamento. SnmpV2-trap 162 Relatório sobre traps, originado pelo agente. 161 Originada pelo agente em resposta aos comandos de solicitação. Response próxima variável eventos (leitura inesperados, A Figura 18 ilustra mais detalhes de uma topologia de gerenciamento do protocolo SNMP. Figura 18 Ilustração do modelo de gerenciamento SNMP. 10 Protocolo DHCP – Dynamic Host Configuration Protocol Como vimos, cada interface de rede na arquitetura TCP/IP necessita que seja atribuído um endereço IP, além de outras informações, tais como o endereço IP do Gateway Padrão, o endereço IP do servidor de DNS, a máscara de sub-rede. VOCÊ SABIA QUE... “O protocolo DHCP é tido como uma espécie de evolução de um antigo protocolo chamado BOOTP. Muito utilizado em sistemas Unix, o BOOTP permitia a configuração automática de impressoras e máquinas clientes em uma rede. Com o passar do tempo, o BOOTP se mostrava cada vez mais limitado, por não ser muito eficiente na configuração de redes grandes. Devido a isso, no início da década de 1990, o grupo IETF (Internet Engineering Task Force) trabalhou no desenvolvimento de um protocolo substituto, que fosse capaz de superar as limitações do BOOTP e que adicionasse recursos novos. Surgia então o DHCP” (ALECRIM, 2005). • CRC Batatais – Claretiano © Redes de Computadores • • 103 UNIDADE 6 cursos de Graduação O trabalho do administrador de rede para configurar todas essas interfaces e, ainda, dar manutenção toda vez que um dado desses é alterado, seja pela troca da interface, seja por mudanças nos dados, é muito cansativo, especialmente em se tratando de redes com muitas máquinas. Em vista disso, foi criado o protocolo DHCP, cuja função é passar para as máquinas clientes todos esses dados, tornando essa tarefa bem mais confiável. A aplicação servidora dos serviços de DHCP utiliza a porta 67 e o protocolo UDP na camada de transporte. Na configuração do servidor de DHCP, informamos os endereços TCP/IP das máquinas necessárias para a configuração do cliente, bem como a máscara de sub-rede. Na configuração do servidor DHCP, informamos a faixa de endereços IP que será usada na configuração dos clientes. Assim, quando um cliente é ligado e a interface de rede está configurada para obter um endereço IP, automaticamente, uma solicitação de configuração é enviada à porta 67, na qual um servidor de DHCP está à escuta. Este servidor atribuirá um endereço da faixa predeterminada para aquela interface, ficando esta apta a enviar datagramas IP. A Figura 19 mostra uma tela da configuração do TCP/IP em uma estação de trabalho usando DHCP, bem como os dados fornecidos pelo servidor para sua configuração. Figura 19 Configuração do TCP/IP em estação de trabalho usando o DHCP. 11 Considerações finais Chegamos ao final de mais uma disciplina do curso de licenciatura em Computação. Com este estudo, você teve a oportunidade de conhecer a importância das redes de computadores e os fundamentos teóricos e práticos de seu funcionamento. Esperamos que suas expectativas tenham sido satisfeitas e que tenha alcançado os objetivos pretendidos com este estudo. Sobretudo, que os conhecimentos adquiridos 104 CRC • • • © Redes de Computadores Claretiano – Batatais UNIDADE 6 Cursos de Graduação possam, efetivamente, servir de base para o prosseguimento do curso e, também, reverter em benefício de uma formação profissional de qualidade e diferenciada, que possa abrir espaço para sua atuação como profissional da área de computação. Nesse sentido, esperamos que a interação, no ambiente virtual, com seu tutor e colegas de curso, possa ter contribuído significativamente para ampliar sua compreensão dos conceitos, princípios, regras e procedimentos relativos a redes de computadores. Você pôde perceber que a importância e a complexidade desse tema ultrapassa o tempo limitado em que tivemos de desenvolver esta disciplina, de forma que não pudemos esgotar, em poucas páginas, um assunto tão vasto. É necessário, pois, que você prossiga aprofundando seus conhecimentos, mas, especialmente, que continue buscando aplicálos na prática. Não deixe de ler a bibliografia indicada ao longo deste material para que você possa construir solidamente o seu referencial teórico e embasar a sua prática profissional. Além disso, acompanhe as publicações recentes da área, que tratam desse assunto. Dessa maneira, você terá melhores condições de adquirir as competências, as habilidades e as atitudes exigidas do profissional licenciado em Computação, pois o mundo pós-moderno prefere profissionais a amadores ou a “curiosos”. • CRC Batatais – Claretiano © Redes de Computadores • • 105 Anotações