http://rgoya.sites.uol.com.br rgoya@uol.com.br Bibliografia Stevens, R.W. – TCP/IP Illustrated – Vol. 1 Addison-Wesley Serviços Transferência de Arquivos Correio Eletrônico Resolução de Nomes Gerenciamento de Redes Transferência de Arquivos e Acesso Remoto de Arquivos Antes das redes de computadores os dados eram transferidos obrigatoriamente via meios magnéticos como fitas e discos A possibilidade da transferência via rede originou um novo tipo de computação, em que a saída de um programa alimentava a entrada de outro O problema reside na necessidade de coordenação entre os programas Salvando Resultados Intermediários Outro problema residia no fato de que se ocorresse alguma falha, os programas precisavam ser reinicializados, pois não havia resultados intermediários para continuar o processo Assim foram criados arquivos com resultados intermediários que possibilitam recuperar o estado do sistema antes da falha Paradigmas de Transferência Interativa e em Lote Com os arquivos intermediários surgiram os primeiros programas de transferência de arquivos Alguns usavam a técnica de transferência em lote (“batch”), similar ao modo que se transmite e-mail Mais tarde passou-se a usar o modo interativo também O FTP O serviço de transferência de arquivos mais popular na Internet é o FTP (“File Transfer Protocol”) Trata-se de um protocolo de propósito geral que pode usar para copiar um arquivo arbitrário de um computador para outro Ele foi projetado para permitir a utilização interativa e em lote Conexões, Autorizações e Permissões de Arquivos O FTP requer que o usuário estabeleça uma conexão de controle a um computador remoto antes que os arquivos possam ser transferidos Para obter autorização, um usuário precisa suprir um login e um password A conexão de controle permanece até que o usuário decida fechá-la Características do FTP Permite acesso de arquivos anônimo Transferência de arquivos em ambas as direções Expansão de curingas em nomes de arquivos Tradução de nomes de arquivos (entre sistemas heterogêneos de computadores) Troca de diretórios e listagem de conteúdo Modo texto e binário de transferência Interações Cliente-Servidor no FTP
Conexão TCP entre um cliente FTP e um servidor
durante uma transferência de arquivos Apesar de que a conexão de controle permanece aberta, a conexão de dados é fechada depois que a transferência é finalizada TFTP O TFTP (“Trivial File Transfer Protocol”) é um FTP mais simples, que utiliza o UDP Somente para transferência de arquivos Não suporta interação (sem navegação por diretórios) Sem autenticação Tamanho de código menor que o FTP Correio Eletrônico E-mail (“Electronic Mail”) O correio eletrônico foi a primeira aplicação importante criada para redes de computadores (RFCs 821 e 822) A maior parte dos sistemas permite que se crie mailbox, uma caixa de correio onde se pode receber, armazenar e manipular as mensagens Eles também provêem listas de endereços de e-mail, chamados mailing lists, que facilitam a distribuição de mensagens Caixas de Correio Eletrônicas e Endereços Cada caixa de correio eletrônico tem um endereço único, que é dividido em duas partes: a primeira identifica um usuário, e a segunda identifica um computador onde está a caixa de correio mailbox@computer O remetente usa a segunda parte para selecionar o destinatário O recipiente do computador usa a primeira parte para selecionar o “mailbox” Distinção Entre Envelope e Mensagem Envelope encapsula a mensagem. Informações necessárias ao transporte Mensagem contém duas partes: cabeçalho informações de controle do usuário corpo informação endereçada ao destinatário (a) carta postal, (b) carta eletrônica Arquitetura e Serviços Consiste em dois subsistemas: Agentes usuários Programa que aceita uma variedade de comandos para composição, recebimento e resposta a mensagens Muitos agentes usuários esperam receber endereços DNS no formato Mailbox@localização, apesar de existir outras formas de endereçamento, como o X.400 Agentes de transferência de mensagens Leitura de mensagens de correio eletrônico Quando acionado, normalmente um agente usuário checa o mailbox. Em seguida ele apresenta informações referentes às mensagens lá contidas Por fim o usuário poderá executar alguns comandos de tratamento de mensagens de correio eletrônico Funções Básicas: Composição: cria mensagens e respostas Transferência: desloca a mensagem entre o remetente e o usuário Geração de relatório: informa ao remetente o que aconteceu à mensagem Exibição: converte a mensagem para que se possa lê-la Disposição: permite apagar, gravar, etcétera. Formato de Mensagem RFC 822 Consiste em: um envelope primitivo alguns campos de cabeçalho uma linha em branco e no corpo de mensagem Campos do Cabeçalho Relacionados ao Transporte Outros Campos Usados no Cabeçalho da Mensagem MIME Originalmente os e-mail carregavam apenas texto (ASCII) Para estender a funcionalidade do e- mail foi criado o MIME (“Multipurpose Internet Mail Extensions”) (RFC 1521), adequado para caracteres acentuados ou não-ASCII e que mantém algumas características do RFC 822 Cabeçalho do RFC 822 Adicionado pelo MIME Tipos e Subtipos MIME Exemplo de E-mail Multimídia Transferência de Correio
Trajetória de uma mensagem de e-mail. O programa
de transferência se torna um cliente de um servidor de e-mail remoto SMTP O SMTP (“Simple Mail Transfer Protocol”) (RFC 821) é um protocolo descrito em ASCII que realiza a transferência do correio Ele estabelece uma conexão TCP com a porta 25 da máquina destino Exemplo de Diálogo entre Servidores Problemas Algumas implementações antigas são incapazes de lidar com arquivos maiores do que 64Kbytes Diferenças de timeout entre cliente e servidor podem causar uma desconexão inesperada O ESMTP (“Extended Simple Mail Transfer Protocol”) (RFC 1425) procura contornar estes problemas Gateway de Correio Eletrônico Muitas máquinas que não estão na Internet também precisam utilizar correio eletrônico a partir de sites na Internet Outras vezes destinatário e remetente utilizam diferentes protocolos de endereçamento de correio Isto tudo é resolvido com um gateway de correio eletrônico (também chamado de “mail relay”) Esquema da Utilização do Gateway
Repare a conversão TCP <-> TP4 (protocolo de nível
4 - Transporte) Entrega Final Um protocolo simples para obter mensagens em uma caixa de correio remota é o POP3 (“Post Office Protocol”) (RFC 1225) Um mais sofisticado é o IMAP (“Interactive Mail Access Protocol”) (RFC 1064), projetado para usuários que utilizam diversos computadores Um outro é o DMSP (“Distributed Mail System Protocol”) (RFC 1056). Ele permite que os usuários façam um download de suas mensagens e se desconectem Exemplo de Utilização do POP Recursos Uma ferramenta muito valiosa são os filtros, que tomam ações sobre a s mensagens que chegam Outro recurso é o “vacation daemon”, que informa a indisponibilidade de leitura das mensagens durante um período de tempo, ou mesmo redireciona-as para outra pessoas Privacidade de Correio Eletrônico As mensagens transmitidas pelo correio eletrônico transitam por diversas máquinas até chegar ao destino Elas podem ser lidas em qualquer destas máquinas Para garantir a privacidade é necessário encriptar as mensagens PGP O PGP (“Pretty Good Privacy”) é um pacote completo para segurança de mensagens de correio eletrônico que oferece privacidade, autenticação, assinatura digital e compactação Feito por Phil Zimmermann em 1995 Utiliza RSA, IDEA e MD5 e é compactado pelo algoritmo Ziv-Lempel (zip) Gratuito PGP em Operação Exemplo de Mensagem PEM O PEM (“Privacy Enhanced Mail”) é o padrão oficial da Internet (RFCs 1421 a 1424) O gerenciamento de chaves é mais estruturado do que no PGP, e são certificados pelas autoridades de certificação as autoridades de certificação são certificadas com PCAs (“Policy Certification Authorities”) estas, por sua vez, são certificadas pela IPRA (“Internet Policy Registration Authority”) PGP x PEM Sistema de Nomes e DNS Sistema de Nomes Embora a forma binária de identificação de computadores do IP seja bastante eficiente, as pessoas tendem a preferir nomes simbólicos Existe um software que traduz um determinado nome no endereço IP equivalente Isto é extremamente benéfico, pois possibilita que se encontre máquinas mesmo se desconhecendo seu número IP Estrutura de Nomes de Computadores O DNS (“Domain Name System”) define um esquema de nomes de domínios de nomes na Internet (RFCs 1034 e 1035) Exemplos: Centro de Educação em Informática www.cei.sp.senac.br Prefeitura de Santo André www.santoandre.sp.gov.br O DNS não faz distinção entre letra maiúscula e minúscula Principais Nomes de Domínios com organização comercial edu instituição educacional gov organização do governo mil grupo militar net centro de suporte à rede org outras organizações int organização internacional código de pais um país Parte do Espaço de Nomes de Domínio da Internet Nomes de Domínios Os domínios de nomes são hierárquicos, com a parte mais significante do nome à direita Para se obter um domínio, uma organização precisa registrar com uma autoridade da Internet. Um único sufixo de domínio é designado para cada organização Estrutura Geográfica O DNS permite um registro geográfico. Exemplo: Corporation for National Research Initiatives cnri.reston.va.us Todas as universidades do Reino Unido (Inglaterra) terminam com o domínio ac.uk ac é de academic (acadêmico) e uk vem de United Kingdom (Reino Unido) No estado de São Paulo todas as entidades governamentais tem que terminar com sp.gov.br Nomes de Domínios Dentro de Uma Organização A partir do domínio particular de uma empresa é possível se construir outros para designar subdivisões Não existe um padrão Exemplo: A empresa Foobar Corporation tem o seguinte domínio foobar.com Cria as seguintes subdivisões computer.subdivision.division.foobar.com Representação Gráfica da Hierarquia DNS da Foobar A Autonomia do DNS A principal característica do DNS é autonomia O sistema hierárquico permite que cada organização administre os nomes que terminem com seu nome. Assim todos os nomes que terminam com ibm.com são de responsabilidade da IBM e os que terminam com sp.gov.br são de responsabilidade do governo do estado de São Paulo O Modelo de DNS Cliente- Servidor Quando uma aplicação precisa traduzir um nome para um endereço IP ela se torna cliente de um sistema de nomes O cliente coloca o nome numa mensagem de requisição DNS e transmite para um servidor DNS Caso ele saiba a resposta, retorna o resultado numa mensagem de reply Se não ele requisita para outro servidor DNS, ao qual esteja conectado A Hierarquia do Servidor DNS Os servidores DNS são arranjados numa hierarquia semelhante a da hierarquia de nomes Um servidor raiz (“root”) ocupa o topo da hierarquia. Este servidor contém informações suficientes para chegar aos outros servidores Cada organização escolhe como dividir os nomes entre os servidores Divisão de Domínio: Exemplo 1 Divisão de Domínio: Exemplo 2 Arquiteturas de Servidores A distribuição dos servidores tem por finalidade diminuir o tamanho deles e facilitar a administração Um usuário tende a resolver nomes de computadores locais com mais frequência do que os de computadores remotos Um usuário tende a procurar pelos mesmos computadores Os pedidos mais frequentes são retidos no servidor local Enlaces entre Servidores Apesar da relativa liberdade, os servidores obedecem a seguinte regra: um único servidor é o responsável por um dado sufixo Todos os servidores estão interligados para formar um sistema unificado Cada servidor sabe como chegar ao servidor raiz e outros servidores com autoridade sobre sobre os nomes na hierarquia Resolvendo Um Nome A tradução de um nome de domínio em um número IP é chamado de resolução de nome, e um nome é dito ser resolvido para um endereço Quando o servidor recebe um pedido sobre um nome cujo domínio está sob sua autoridade a resolução do nome é imediata Caso o contrário o servidor passa a se comportar como cliente e requisita para outro servidor segundo a hierarquia Exemplo de Resolução de Nome
(1) envia uma consulta ao servidor de nomes local pelo
nome linda.cs.yale.edu, (2) consulta servidores vizinho e depois vai para o raiz de edu, (3) vai para o servidor de yale, (4) vai para servidor do departamento de Computer Science, (5)(6)(7)(8) retorna ao requerente Otimização do Desempenho do DNS O DNS utiliza dois tipos de otimização para melhorar sua eficiência: Replicação Cada servidor raiz é replicado. Existem várias cópias pelo mundo Normalmente é utilizado o servidor que geograficamente seja o mais perto Cacheamento Cada servidor mantém um cache de nomes O nome se mantém no cache durante um tempo pré- determinado Registros de Recurso A verdadeira função do DNS é mapear nomes de domínios em registro de recursos Cada entrada na base de dados do DNS consiste de três itens: um nome de domínio, um tipo de registro (“record”) e um valor Principais Tipos de Registro Exemplo Formato: Domain name Time to live Type Class Value Utilizando o Tipo CNAME CNAME indica um nome equivalente. Um alias Ele é extremamente útil na medida em que possibilita mudar os servidores, sem que seja necessário mudar os nomes Também possibilita que um mesmo serviço tenha diversos nomes Uma Conseqüência Importante de Tipos Múltiplos Ao criar diversos tipos diferentes de nomes o DNS proporciona a possibilidade de se habilitar serviços distintos Por exemplo: um determinado servidor pode não ter um nome do tipo A, fazendo com que um ping com o nome dele resulte em uma mensagem de inexistência por outro lado ele pode ter um registro MX que fará com que uma requisição de e-mail funcione Abreviações e o DNS Localmente é possível se fazer uma abreviação dos nomes, suprimindo os sufixos Assim na Microsoft (microsoft.com) é possível se referir à máquina machine.microsoft.com apenas como machine Gerenciamento de Redes Gerenciamento da Rede (“Network Management”) O gerente da rede é a pessoa responsável por monitorar e controlar o hardware e o software do sistema O fato das redes serem muitas vezes heterogêneas e grandes fazem com que o gerenciamento da rede seja muito complicado Como a perda de pacotes é algo esperado pelo sistema, falhas intermitentes são muito difíceis de se detectar e isolar Gerenciadores e Agentes O software de gerenciamento da rede trabalha a nível de aplicação (camada 7 do modelo OSI da ISO) As estações de gerenciamento (“manager”) são servidores que trabalham com os agentes (“agent”), aplicações clientes Os agentes são instalados, ou habilitados, nos diversos dispositivos de rede para proporcionar o gerenciamento SNMP SNMP (“Simple Network Management Protocol”) é protocolo padrão usado na Internet para gerenciamento e monitoramento (RFC 1448) Define o formato das mensagens entre os agentes e os gerenciadores, assim como seu conteúdo Mantém um banco de dados local contendo variáveis que não só descrevem seu estado e histórico como também afetam sua operação O Modelo SNMP
Componentes do modelo de gerenciamento
SNMP O Protocolo SNMP O SNMP envia uma solicitação a um agente pedindo informações ou forçando-o a atualizar seu estado Ele utiliza o paradigma “Fetch-Store” O “fetch” é utilizado para buscar os valores de um dispositivo O “store” armazena ou atualiza os valores do dispositivo Tipos de Mensagem SNMP ASN.1 O SNMP se baseia no ASN.1 (“Abstract Syntax Notation One”) para codificar suas mensagens Trata-se de uma linguagem de definição de objetos de rede padronizados O que é realmente usado para definir estruturas de dados no SNMP é um sub/super-conjunto da ASN.1 chamado SMI (“Structure of Management Information”) MIB Cada objeto que o SNMP tem acesso precisa ser definido e ter um nome único O conjunto de todos os objetos gerenciados é conhecido por MIB (“Management Information Base”) Tem por objetivo oferecer uma base daquilo que uma estação de gerenciamento deve compreender Grupos de Objetos na MIB-II