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
Download

UNIDADE 6