O que é DNS,
SMTP e SNM?
O DNS (Domain Name System) e um esquema de
gerenciamento de nomes, hierárquico e distribuído. O DNS define a sintaxe dos nomes
usados na Internet, regras para delegação de autoridade na definição de nomes, um
banco de dados distribuído que associa nomes a atributos (entre eles o endereço IP) e um
algoritmo distribuído para mapear nomes em endereços. O DNS e especificado nas RFCs 882,
883 e 973. As aplicações normalmente utilizam um endereço IP de 32 bits no sentido de
abrir uma conexão ou enviar um datagrama IP. Entretanto, os usuários preferem
identificar as maquinas através de nomes ao invés de números. Assim e necessário um
banco de dados que permita a uma aplicação encontrar um endereço, dado que ela conhece
o nome da maquina com a qual se deseja comunicar.
Um conjunto de servidores de nomes mantém o
banco de dados com os nomes e endereços das maquinas conectadas a Internet. Na realidade
este e apenas um tipo de informação armazenada no domain system (sistema de domínios).
Note que e usado um conjunto de servidores interconectados, ao invés de um único
servidor centralizado. Existem atualmente tantas instituições conectadas a Internet que
seria impraticável exigir que elas notificassem uma autoridade central toda vez que uma
maquina fosse instalada ou trocasse de lugar. Assim, a autoridade para atribuição de
nomes e delegada a instituições individuais.
Os servidores de nome formam uma árvore,
correspondendo a estrutura institucional. Os nomes também adotam uma estrutura similar.
Um exemplo típico e o nome chupeta.jxh.xyz.br. Para encontrar seu endereço Internet,
pode ser necessário o acesso a ate quatro servidores de nomes. Inicialmente deve ser
consultado um servidor central, denominado servidor raiz, para descobrir onde esta o
servidor br. O servidor br e o responsável pela gerência dos nomes das
instituições/empresas brasileiras ligadas a Internet. O servidor raiz informa como
resultado da consulta o endereço IP de vários servidores de nome para o nível br (pode
existir mais de um servidor de nomes em cada nível, para garantir a continuidade da
operação quando um deles para de funcionar). Um servidor do nível br pode então ser
consultado, devolvendo o endereço IP do servidor xyz.
De posse do endereço de um servidor xyz e
possível solicitar que ele informe o endereço de um servidor jxh, quando, finalmente,
pode-se consultar o servidor jxh sobre o endereço da maquina chupeta. O resultado final
da busca e o endereço Internet correspondente ao nome chupeta.jxh.xyz.br Cada um dos
níveis percorridos e referenciado como sendo um domínio. O nome completo
chupeta.jxh.xyz.br e um nome de domínio. Na maioria dos casos, não e necessário ter
acesso a todos os domínios de um nome para encontrar o endereço correspondente, pois os
servidores de nome muitas vezes possuem informações sobre mais de um nível de domínio
o que elimina uma ou mais consultas.
Além disso, as aplicações normalmente tem
acesso ao DNS através de um processo local (servidor para as aplicações e um cliente
DNS), que pode ser implementado de modo a guardar os últimos acessos feitos, e assim
resolver a consulta em nível local. Essa abordagem de acesso através de um processo
local, simplifica e otimiza a tarefa das aplicações no que tange ao mapeamento de nomes
em endereços, uma vez que elimina a necessidade de implementar, em todas as aplicações
que fazem uso do DNS, o algoritmo de encaminhamento na arvore de domínios descrito
anteriormente. O DNS não se limita a manter e gerenciar endereços Internet.
Cada nome de domínio e um no em um banco de
dados, que pode conter registros definindo varias propriedades. Por exemplo, o tipo da
maquina e a lista de serviços fornecidos por ela. O DNS permite que seja definido um
alias (nome alternativo) para o no. Também e possível utilizar o DNS para armazenar
informações sobre usuários, listas de distribuição ou outros objetos. O DNS e
particularmente importante para o sistema de correio eletrónico. No DNS aso definidos
registros que identificam a maquina que manipula as correspondências relativas a um dado
nome, identificado assim onde um determinado usuário recebe suas correspondências. O DNS
pode ser usado também para definição de listas para distribuição de correspondências
O que é SMTP?
O SMTP (Simple Mail Transfer Protocol) e o
protocolo usado no sistema de correio eletrônico na arquitetura Internet TCP/IP. Um
usuário, ao desejar enviar uma mensagem, utiliza o modulo interface com o usuário para
compor a mensagem e solicita ao sistema de correio eletrónico que a entregue ao
destinatário. Quando recebe a mensagem do usuário, o sistema de correio eletrónico
armazena uma copia da mensagem em seu spool (área do dispositivo de armazenamento), junto
com o horário do armazenamento e a identificação do remetente e do destinatário.
A transferencia da mensagem e executada por
um processo em background, permitindo que o usuário remetente, após entregar a mensagem
ao sistema de correio eletrónico, possa executar outras aplicações. O processo de
transferencia de mensagens, executando em background, mapeia o nome da maquina de destino
em seu endereço IP, e tenta estabelecer uma conexão TCP com o servidor de correio
eletrónico da maquina de destino.
Note que o processo de transferencia atua
como cliente do servidor do correio eletrónico. Se a conexão for estabelecida, o cliente
envia uma copia da mensagem para o servidor, que a armazena em seu spool. Caso a mensagem
seja transferida com sucesso, o servidor avisa ao cliente que recebeu e armazenou uma
copia da mensagem. Quando recebe a confirmação do recebimento e armazenamento, o cliente
retira a copia da mensagem que mantinha em seu spool local. Se a mensagem, por algum
motivo, não for transmitida com sucesso, o cliente anota o horário da tentativa e
suspende sua execução. Periodicamente o cliente acorda e verifica se existem mensagens a
serem enviadas na área de spool e tenta transmiti-las.
Se uma mensagem não for enviada por um
período, por exemplo de dois dias, o serviço de correio eletrónico devolve a mensagem
ao remetente, informando que não conseguiu transmiti-la. Em geral, quando um usuário se
conecta ao sistema, o sistema de correio eletrónico e ativado para verificar se existem
mensagens na caixa postal do usuário. Se existirem, o sistema de correio eletrónico
emite um aviso para o usuário que, quando achar conveniente, ativa o modulo de interface
com o usuário para receber as correspondências. Uma mensagem SMTP divide-se em duas
partes: cabeçalho e corpo, separados por uma linha em branco. No cabeçalho são
especificadas as informações necessárias para a transferencia da mensagem.
O cabeçalho e composto por linhas, que
contem uma palavra-chave seguida de um valor. Por exemplo, identificação do remetente
(palavra-chave "to:" seguida do seu endereço), identificação do
destinatário, assunto da mensagem, etc... No corpo soa transportadas as informações da
mensagem propriamente dita. O formato do texto e livre e as mensagens são transferidas no
formato texto. Os usuários do sistema de correio eletrónico são localizados através de
um par de identificadores. Um deles especifica o nome da maquina de destino e o outro
identifica caixa postal do usuário.
Um remetente pode enviar simultaneamente
varias copias de uma mensagem, para diferentes destinatários utilizando o conceito de
lista de distribuição (um nome que identifica um grupo de usuários). O formato dos
endereços SMTP e o seguinte: nome_local@nome_do_dominio onde o nome_do_dominio identifica
o domínio ao qual a maquina de destino pertence (esse endereço deve identificar um grupo
de maquinas gerenciado por um servidor de correio eletrónico). O nome local identifica a
caixa postal do destinatário. O SMTP especifica como o sistema de correio eletrónico
transfere mensagens de uma maquina para outra.
O modulo interface com usuário e a forma
como as mensagens são armazenadas não são definidos pelo SMTP. O sistema de correio
eletrónico pode também ser utilizado por processos de aplicação para transmitir
mensagens contendo textos.
O que é SNMP?
O sistema de gerenciamento de rede da
arquitetura Internet TCP/IP opera na camada de aplicação e baseia-se no protocolo SNMP
(Simple Network Management Protocol). Os padrões que definem a estrutura de gerenciamento
de redes Internet aso descritos nos documentos RFC-1155 (Structure Of Management
Information), RFC-1156 (Management Information Base) e RFC-1157 (Simples Network
Management Protocol). Como no esquema de gerenciamento OSI, os processos que implementam
as funções de gerenciamento Internet atuam como agentes ou gerentes.
Os agentes coletam junto aos objetos
gerenciados as informações recolhidas pelos clientes, com o objetivo de detectar a
presença de falhas no funcionamento dos componentes da rede (hosts, gateways, processos
executando os protocolos de comunicação, etc...), para que possam ser tomadas
providencias no sentido de contornar os problemas que ocorrem como conseqüência das
falhas. Um objeto gerenciado representa um recurso que pode ser um sistema hospedeiro
(estação de trabalho, servidor de terminais, etc...), um gateway ou um equipamento de
transmissão (modem, pontes, concentradores, etc...).
Cada objeto gerenciado e visto como uma
coleção de variáveis cujo valor pode ser lido ou alterado. O gerente envia comandos aos
agentes, solicitando uma leitura no valor das variáveis dos objetos gerenciados (get e
response), ou modificando seu valor (put). A modificação do valor de uma variável pode
ser usada para disparar indiretamente a execução de operações nos recursos associados
aos objetos gerenciados (por exemplo, uma reiniciação). Na troca de informações entre
o gerente e o agente, aso aplicados mecanismos de autenticação para evitar que usuários
não autorizados interfiram no funcionamento da rede. A troca de mensagens entre o gerente
e o agente e definida pelo protocolo SNMP. O SNMP define o formato e a ordem que deve ser
seguida no intercâmbio de informações de gerenciamento.
As informações sobre os objetos gerenciados
aso armazenados na MIB (Management Information Base), que contem informações sobre o
funcionamento dos hosts, dos gateways, e dos processos que executam os protocolos de
comunicação (IP, TCP, ARP, ...). A MIB e especificada em ASN.1. O funcionamento do SNMP
baseia-se na troca de operações que permitem que o gerente solicite que o agente lhe
informe, ou modifique, o valor de uma variável de um objeto na MIB. O SNMP define também
uma operação (trap), que permite que um agente informe ao gerente a ocorrência de um
evento especifico. Com o objetivo de permitir o uso do esquema de gerenciamento OSI em
redes que adotam a arquitetura Internet TC/IP, foi definido o protocolo de gerenciamento
CMOT (CMIP Over TCP/IP). O CMOT utiliza o serviço CMIS (Common Management Information
Service) e o protocolo CMIP (Common Management Information Protocol) funcionando sobre uma
conexão TCP/IP. O CMOT e descrito na RFC-1095.
Para que serve o DNS? Basicamente ele faz
troca de nome por numero. E é exatamente isso. Você da um nome para ele e ele fala o
endereço IP (números) correspondente aquele nome. Para que serve isso? Pacotes IP tem de
ser endereçados por números, mas é extremamente incomodo para seres humanos decorar
números. A solução foi usar um serviço que fizesse a tradução de um para outro.
Quando você faz uma conexão com
www.shareware.com o seu browser faz uma conexão com um servidor DNS pedindo o endereço
IP correspondente a string "www.shareware.com". O DNS tenta resolver isso
localmente, mas se não conseguir propaga a consulta para outros servidores DNS ate
conseguir (ou não) a resposta, e então retorna o endereço para o browser que continua a
conexão. Os nomes no estilo aaa.bbbbbb.cc.dddd.e aso conseqüência da estrutura
hierárquica usada na distribuição dos nomes, e essa estrutura é usada para melhorar a
eficiência na busca.