Protocolos da camada aplicação Definem como processos de uma aplicação trocam mensagens Mais especificamente definem Tipos de mensagens trocadas Sintaxe dos vários tipos de mensagens Ex.: campos Semântica dos campos Regras para determinar quando e como um processo envia e responde a mensagens Protocolo é um pedaço da aplicação de rede
Aplicações Necessitam dos seguintes serviços de um protocolo de transporte Transferência de dados Confiável Não confiável Banda passante Aplicações podem ser sensíveis ou não à banda passante Temporização Aplicações podem ser sensíveis ou não ao atraso
Aplicações Exemplo de aplicações (fonte: Kurose) Aplicação Perdas Banda Sensível ao atraso file transfer e-mail Web documents real-time audio/video stored audio/video jogos interativos msg instantânea sem perdas sem perdas sem perdas tolerante tolerante tolerante sem perda elástica elástica elástica áudio: 5 Kb-1 Mb vídeo:10 Kb-5 Mb igual à anterior kbps elástica não não não sim, 100 s mseg sim, segundos sim, 100 s mseg sim e não
Serviços do transporte na Internet TCP Transferência de dados confiável Orientado a conexão Controle de congestionamento Controle de fluxo UDP Transferência de dados não confiável Não orientado a conexão Sem controle de congestionamento Sem controle de fluxo
Serviços do transporte na Internet Exemplo de aplicações (fonte: Kurose) Aplicação e-mail acesso a terminais remotos Web transferência de arquivos streaming multimídia servidor remoto de arquivos telefonia via Internet Protocolo de aplicação smtp [RFC 5321] telnet [RFC 854] http [RFC 2616] ftp [RFC 959] http (Youtube) NFS sip ou proprietário (ex.: Skype) Protocolo de transporte TCP TCP TCP TCP UDP ou TCP UDP ou TCP tipicamente UDP
Aplicações DNS Transferência de arquivos (FTP) Correio eletrônico Web Compartilhamento de arquivos P2P Outras
DNS Sistema de nomes de domínio (Domain Name System) Serviço de diretórios da Internet Nomes são mais fáceis de lembrar Descrito nas RFCs 1034, 1035 e outras DNS consiste em Banco de dados distribuído implementado em uma hierarquia de nomes Protocolo da camada aplicação que permite que hospedeiros consultem o banco de dados
DNS Usa o UDP e a porta 53 Dados armazenados em ASCII Não é uma aplicação com a qual o usuário interage diretamente Complexidade nas bordas da rede
DNS Serviços providos Tradução de nomes de hospedeiros para endereços IP Apelidos de hospedeiros Nome de hospedeiro é chamado nome canônico Apelidos de servidor de correio eletrônico Pode-se obter o nome canônico a partir do apelido Distribuição de carga Realizada entre servidores replicados Conjunto de endereços IP associado a um único nome canônico Respostas do DNS contêm o conjunto de endereços É feito um rodízio na ordem dos endereços
DNS - tradução de nome para end. IP Banco de dados distribuído e hierárquico Anteriormente os hospedeiros e seus endereços eram armazenados somente em um arquivo hosts.txt Arranjo centralizado não seria escalável Ponto de falha Volume de tráfego Atraso para clientes distantes do banco de dados Dificuldade de manutenção
DNS - tradução de nome para end. IP Composto de Servidores DNS locais Três tipos (classes) de servidores de nomes Raiz De domínio de alto nível (Top-Level Domain TLD) Com autoridade
DNS - tradução de nome para end. IP Servidores de nomes raiz Treze servidores na Internet (2006) espalhados pelo mundo Servidores de nomes TLD ou de nível superior Responsáveis por domínios de alto nível Com, org, net, edu, gov, br, uk, ca etc. (genéricos e de países - ISO 3166) Servidores de nomes com autoridade Responsáveis por domínios das organizações Domínios de segundo nível
DNS - tradução de nome para end. IP Exemplo de servidores DNS (fonte: Kurose)
DNS - tradução de nome para end. IP Espaço de nomes do DNS é dividido em zonas não superpostas Zona inclui os hospedeiros administrados diretamente por um servidor Zona contém uma parte da árvore e servidores de nomes que armazenam informações referentes à zona Zona contém um servidor principal (obtêm suas informação a partir do disco) e servidores secundários (obtêm suas informações a partir do servidor principal)
DNS - tradução de nome para end. IP Exemplo de parte do espaço de nomes DNS (fonte: Tanenbaum)
Exemplo de interação entre servidores DNS (fonte: Kurose) O hospedeiro em cis.poly.edu quer o endereço IP para gaia.cs.umass.edu Servidor de nomes local da Polytechnique é dns.poly.edu Servidor de nomes com autoridade para gaia.cs.umass.edu é dns.umass.edu (erro na figura)
Exemplo de interação entre servidores DNS (fonte: Kurose) 1) Consulta ao servidor de nomes local 2) Consulta ao servidor de nomes raiz 3) Resposta com servidores TLD responsáveis por edu 4) Consulta ao servidor de nomes TLD 5) Resposta com servidor de nomes com autoridade responsável por umass.edu 6) Consulta ao servidor de nomes com autoridade
DNS - tradução de nome para end. IP Consultas podem ser Recursivas Transfere a tarefa para o servidor consultado No exemplo, de cis.poly.edu para dns.poly.edu Iterativas Servidor responde com o nome de outro servidor a ser contactado No exemplo, todas as outras consultas
DNS - tradução de nome para end. IP Uso de cache Melhora o desempenho em relação ao atraso Diminui a quantidade de mensagens DNS enviadas Qualquer servidor pode responder, mesmo que não tenha autoridade para o nome Frequentemente são feitos caches de servidores TLD Para evitar os servidores raiz
DNS - registros de recursos Banco de dados DNS é constituído de registros de recursos DNS mapeia nomes de domínios em registros de recursos Domínios possuem registros de recursos associados a eles Armazenados nos servidores de nomes
DNS - registros de recursos Campos (Name, Value, Type, TTL) Se Type A Name = nome do hospedeiro, Value = endereço IP (relay1.bar.foo.com, 145.37.93.126, A) NS Name = nome do domínio, Value = nome de um servidor de nomes com autoridade que responde a consultas relativas aos hospedeiros do domínio (foo.com, dns.foo.com, NS) CNAME Name = apelido do hospedeiro, Value = nome canônico do hospedeiro (foo.com, relay1.bar.foo.com, CNAME) MX Name = apelido do hospedeiro, Value = nome canônico do servidor de correio eletrônico (foo.com, mail.bar.foo.com, MX)
DNS - registros de recursos Formato (Name, Value, Type, TTL) (cont.) TTL Tempo de vida útil do registro Determina quando o registro deve ser removido de um cache
Exemplo de parte do DNS para cs.vu.nl (fonte: Tanenbaum)
DNS - mensagens Formato das mensagens DNS (fonte: Kurose)
Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol) Descrito na RFC 959 Usa o TCP, a porta 21 (conexão de controle) e a porta 20 (conexão de dados) Em uma mesma sessão, a cada transferência é usada uma conexão diferente de dados Mantém informações de estado Associação com conta do usuário, controle sobre o diretório corrente do usuário Limita o número de sessões que um servidor pode manter
Transferência de arquivos (FTP) Funcionamento do FTP (fonte: Kurose)
Transferência de arquivos (FTP) Comandos enviados em ASCII (7 bits) Exemplos de comandos USER <username> PASS <password> LIST RETR <filename> STOR <filename>