Camadas de Sessão, Apresentação e Disciplina: IF66B Redes de Computadores 2018/1 Universidade Tecnológica Federal do Paraná Câmpus Curitiba 1 / 43
Roteiro 1 2 3 4 5 2 / 43
Modelo OSI Sessão Cuida dos processos que controlam a transferência dos dados, cuidando dos erros e administrando registros das transmissões. Serviços: Controle de diálogo (quem deve transmitir em cada momento); Gerenciamento de tokens (impede operações críticas de serem executadas ao mesmo tempo); Sincronização (permite que uma transmissão continue do ponto onde parou). 7 6 5 4 3 2 1 OSI Apresentação Sessão Transporte Rede Enlace de dados Física 3 / 43
Modelo OSI Apresentação Serve como o tradutor de dados para a rede: está ligada à semântica e à sintaxe das informações transmitidas. Gerencia estruturas de dados abstratas: Para que dois computadores possam se comunicar, as estruturas de dados a serem trocados podem ser definidas de maneira abstrata, com uma codificação padrão que será usada durante a conexão. É responsável pela compressão e criptografia dos dados. 7 6 5 4 3 2 1 OSI Apresentação Sessão Transporte Rede Enlace de dados Física 4 / 43
Modelo OSI Engloba protocolos que realizam a comunicação fim-a-fim entre aplicações/processos de diferentes computadores. Contém muitos protocolos comumente necessários pelos usuários; Frequentemente nos referimos às camadas de Sessão, Apresentação e simplesmente como : As funções dessas três camadas são implementadas de modo bem integrado. 7 6 5 4 3 2 1 OSI Apresentação Sessão Transporte Rede Enlace de dados Física 5 / 43
/ Algumas aplicações de rede E-mail; Web; Mensagens instantâneas; Login remoto; Compartilhamento de arquivos ; Jogos de rede multi-usuários; Vídeo-clipes; Voz sobre IP; Videoconferência em tempo real; Computação paralela em larga escala; Etc. 6 / 43
/ Criando uma aplicação de rede Programas que executam em diferentes sistemas finais e comunicam-se através da rede. Ex.: servidor Web se comunica com o navegador; Programas não relacionados ao núcleo da rede: Dispositivos do núcleo da rede não executam aplicações de usuários; nos sistemas finais permitem rápido desenvolvimento e disseminação. 7 / 43
/ Arquiteturas das aplicações Cliente-servidor; Peer-to-peer (); Híbrido de cliente-servidor e. 8 / 43
/ Arquitetura das aplicações / Arquitetura cliente-servidor Servidor: Sempre ligado; Endereço IP permanente; Escalabilidade. Cliente: Comunica-se com o servidor; Pode estar conectado intermitentemente; Pode ter endereços IP dinâmicos; Não se comunica diretamente com outros clientes. 9 / 43
/ Arquiteturas das aplicações / Arquitetura pura Não há servidor sempre ligado; Sistemas finais arbitrários se comunicam diretamente; Pares estão conectados intermitentemente e mudam endereços IP; Exemplo: Gnutella; Altamente escalável; Porém, difícil de gerenciar. 10 / 43
/ Arquiteturas das aplicações / Arquitetura híbrida de cliente-servidor e Napster: Transferência de arquivos ; Busca de arquivos centralizada: Pares registram conteúdo no servidor central; Pares consultam o mesmo servidor central para localizar conteúdo. Instant messaging: Conversa entre usuários ; Localização e detecção de presença centralizadas: Usuários registram o seu endereço IP junto ao servidor central quando ficam online; Usuários consultam o servidor central para encontrar endereços IP dos contatos. 11 / 43
/ comunicação Processo: programa que executa num hospedeiro Processos no mesmo hospedeiro se comunicam usando comunicação entre processos definida pelo sistema operacional (SO); hospedeiros distintos se comunicam trocando mensagens através da rede. Processos Processo cliente: processo que inicia a comunicação; Processo servidor: processo que espera para ser contatado. Nota: aplicações com arquiteturas possuem processos clientes e processos servidores. 12 / 43
/ Sockets Os processos enviam/recebem mensagens para/dos seus sockets; Um socket é análogo a uma porta: Processo transmissor envia a mensagem através da porta; O processo transmissor assume a existência da infraestrutura de transporte no outro lado da porta que faz com que a mensagem chegue ao socket do processo receptor. 13 / 43
/ Sockets 14 / 43
/ Endereçando os processos Para que um processo receba mensagens, ele deve possuir um identificador; Cada host possui um endereço IP único de 32 bits; Pergunta: o endereço IP do host no qual o processo está sendo executado é suficiente para identificar o processo? Resposta: não, muitos processos podem estar executando no mesmo host; O identificador inclui tanto o endereço IP quanto os números das portas associadas com o processo no host.; Exemplo de números de portas: Servidor : 80; Servidor de : 25. 15 / 43
/ camada de aplicação Definem tipos de mensagens trocadas; Definem sintaxe dos tipos das mensagens: campos presentes nas mensagens e como são identificados; Definem semântica dos campos: significado da informação nos campos; Definem regras para quando os processos enviam e respondem às mensagens. camada de aplicação Protocolos de domínio público: Definidos em RFCs; Permitem interoperação; Ex.: e SMTP. Protocolos proprietários: Ex.: KaZaA. 16 / 43
/ Que serviço de transporte uma aplicação precisa? Perda de dados: Algumas aplicações (Ex.: áudio) podem tolerar algumas perdas; Outras (Ex.: transferência de arquivos, Telnet) requerem transferência 100% confiável. Temporização: Algumas aplicações (Ex.: jogos interativos) requerem baixo atraso para serem viáveis. Largura de banda: Algumas aplicações (Ex.: multimídia) requerem quantia mínima de banda para serem viáveis ; Outras aplicações ( aplicações elásticas ) conseguem usar qualquer quantia de banda disponível. 17 / 43
/ Requisitos do serviço de transporte de apls comuns Perdas Banda Sensibilidade temporal Transferência de arquivos Sem perdas Elástica Não Sem perdas Elástica Não Documentos WWW Sem perdas Elástica Não Áudio: 5 kbps - 1 mbps Áudio/vídeo de tempo real Tolerante Vídeo: 10 kbps - 5 mbps Sim, 100 ms Áudio/vídeo gravado Tolerante Como o anterior Sim, alguns segundos Jogos interativos Tolerante >alguns kbps Sim, 100 ms financeiras Sem perdas Elástica Sim e não 18 / 43
/ Internet e seus protocolos Protocolo de aplicação Protocolo de transporte usado eletrônico SMTP [RFC 2821] TCP Acesso terminal remoto Telnet [RFC 854] TCP WWW [RFC 2616] TCP Transferência de arquivos [RFC 959] TCP Streaming multimídia Proprietário (Ex.: RealNetworks) TCP ou UDP Telefonia Internet Proprietário (Ex.: Dialpad) Tipicamente UDP 19 / 43
/ Protocolo Páginas Web consistem de objetos; Objeto pode ser um arquivo HTML, uma imagem JPEG, um applet Java, um arquivo de áudio; Páginas Web consistem de um arquivo HTML base que inclui vários objetos referenciados; Cada objeto é endereçável por uma URL; Exemplo de URL: www.someschool.edu /somedept/pic.gif (nome do hospedeiro) (nome do caminho) 20 / 43
/ Protocolo Hypertext Transfer Protocol Protocolo da camada de aplicação da Web; Modelo cliente/servidor. Cliente: browser que pede, recebe, visualiza objetos Web; Servidor: servidor Web envia objetos em resposta a pedidos. 1.0: RFC 1945; 1.1: RFC 2068. 21 / 43
/ Protocolo 22 / 43
/ Protocolo Usa serviço de transporte TCP: Cliente inicia conexão TCP (cria socket) ao servidor, porta 80; Servidor aceita conexão TCP do cliente; Mensagens (mensagens do protocolo da camada de aplicação) trocadas entre browser (cliente ) e servidor Web (servidor ); Encerra conexão TCP. é sem estado : Servidor não mantém informação sobre pedidos anteriores do cliente. Protocolos que mantêm estado são complexos! História passada (estado) tem que ser guardada; Caso caia servidor/cliente, suas visões do estado podem ser inconsistentes, devem ser reconciliadas. 23 / 43
/ : o protocolo de transferência de arquivos Transferir arquivo de/para hospedeiro remoto; Modelo cliente/servidor: Cliente: lado que inicia transferência (pode ser de ou para o sistema remoto); Servidor: hospedeiro remoto. : RFC 959; Servidor : porta 21. 24 / 43
/ : o protocolo de transferência de arquivos Cliente contata servidor na porta 21, especificando o TCP como protocolo de transporte; O cliente obtém autorização através da conexão de controle; O cliente consulta o diretório remoto enviando comandos através da conexão de controle; Quando o servidor recebe um comando para a transferência de um arquivo, ele abre uma conexão de dados TCP para o cliente; Após a transmissão de um arquivo o servidor fecha a conexão. 25 / 43
/ : o protocolo de transferência de arquivos Servidor mantém o estado : diretório atual, autenticação anterior. 26 / 43
/ Eletrônico Três grandes componentes: 1 Agentes de usuário (UA); 2 Servidores de correio; 3 Simple Mail Transfer Protocol (SMTP). 1 Agente de Usuário: Também conhecido como leitor de correio ; Compor, editar, ler mensagens de correio; Ex.: Outlook, Thunderbird; Mensagens de saída e entrada são armazenadas no servidor. 27 / 43
/ Eletrônico 2 Servidores de correio: Caixa de correio contém mensagens de chegada (ainda não lidas) p/ usuário; Fila de mensagens contém mensagens de saída (a serem enviadas). 3 Protocolo SMTP entre servidores de correio para transferir mensagens de correio: Cliente: servidor de correio que envia; Servidor: servidor de correio que recebe. 28 / 43
/ Eletrônico SMTP Usa TCP para a transferência confiável de mensagens do correio do cliente ao servidor, porta 25; Transferência direta: servidor remetente ao servidor receptor; Três fases da transferência: Handshaking; Transferência das mensagens; Encerramento. Interação comando/resposta: Comandos: texto ASCII; Resposta: código e frase de status. 29 / 43
/ Protocolos de acesso ao correio SMTP: faz entrega/armazenamento no servidor do receptor; Protocolo de acesso ao correio: recupera do servidor: POP: Post Office Protocol [RFC 1939] Autorização (agente servidor) e transferência. : Internet Mail Access Protocol [RFC 1730] Mais comandos (mais complexo); Manuseio de mensagens armazenadas no servidor. : Hypertext Transfer Protocol Gmail, Hotmail, Yahoo! Mail, Webmail, etc. 30 / 43
/ (Domain Name System) Pessoas possuem muitos identificadores: CPF, nome, RG. Hospedeiros, roteadores: Endereço IP (32 bits) usado p/ endereçar pacotes; nome, ex.: www.cs.vu.nl/~ast/ usado por pessoas. Pergunta: como mapear entre nome e endereço IP? 31 / 43
/ (Domain Name System) Domain Name System: Base de dados distribuída implementada na hierarquia de muitos servidores de nomes; Protocolo de camada de aplicação permite que hospedeiros, roteadores, servidores de nomes se comuniquem para resolver nomes (tradução endereço/nome); Função imprescindível da Internet implementada como protocolo de camada de aplicação (complexidade na borda da rede); Roda sobre UDP e usa a porta 53; Especificado nas RFCs 1034 e 1035. 32 / 43
/ (Domain Name System) Servidor de nomes : Por que não centralizar o? Ponto único de falha; Volume de tráfego; Base de dados centralizada e distante; Manutenção da base de dados; Não é escalável; Nenhum servidor mantém todos os mapeamentos nome-para-endereço IP. 33 / 43
/ (Domain Name System) Servidor de nomes : Servidor de nomes local: Cada provedor, empresa tem servidor de nomes local (default); Pedido de hospedeiro vai primeiro ao servidor de nomes local; Quando não consegue resolver o nome, procura um servidor raiz. Servidor raiz: Procura servidor oficial se mapeamento for desconhecido; Obtém tradução; Devolve mapeamento ao servidor local. 34 / 43
/ (Domain Name System) Exemplo de : usuario.utfpr.edu.br requer o endereço IP de www.cs.columbia.edu 1 Contata servidor local, dns.utfpr.edu.br; 2 dns.utfpr.edu.br contata servidor raiz, se necessário; 3 Servidor raiz contata servidor oficial, cs.columbia.edu, se necessário. 35 / 43
/ Compartilhamento de arquivos Vamos analisar um exemplo: 1 Alice executa a aplicação cliente em seu computador; 2 Conecta-se à Internet, obtém um novo endereço IP para cada conexão; 3 Procura por uma música; 4 A aplicação exibe outros pares que possuem uma cópia da música; 5 Alice escolhe um dos pares, Bob; 6 O arquivo é copiado do PC de Bob para o PC de Alice por ; 7 Enquanto Alice faz o download, outros usuários copiam o arquivo a partir do PC de Alice; 8 O par de Alice pode ser classificado tanto como um cliente Web, quanto como um servidor Web transiente; 9 Todos os pares são servidores = altamente escaláveis! 36 / 43
/ Compartilhamento de arquivos / Diretório centralizado: Napster Projeto original Napster : 1 Quando um par se conecta, ele informa ao servidor central o seu endereço IP e conteúdo; 2 Alice procura pela música; 3 Alice requisita o arquivo de Bob. 37 / 43
/ Compartilhamento de arquivos / Diretório centralizado: Napster Problemas do Napster : Ponto único de falhas; Gargalo de desempenho; Infração de copyright. Transferência de arquivo é descentralizada, mas a localização de conteúdo é altamente centralizada. 38 / 43
/ Compartilhamento de arquivos / Diretório distribuído: Gnutella Totalmente distribuído; Sem servidor central; Protocolo de domínio público; Muitos clientes Gnutella implementando o protocolo. 39 / 43
/ Compartilhamento de arquivos / Diretório distribuído: Gnutella Mensagem de consulta é enviada pelas conexões TCP existentes; Os pares encaminham a mensagem de consulta; QueryHit (encontro) é enviado pelo caminho reverso. 40 / 43
/ Compartilhamento de arquivos / Explorando heterogeneidade: KaZaA Cada par é um ĺıder de grupo ou está atribuído a um ĺıder de grupo: Conexão TCP entre o par e seu ĺıder de grupo; Conexões TCP entre alguns pares de ĺıderes de grupo. O ĺıder de grupo acompanha o conteúdo em todos os seus discípulos. 41 / 43
/ Compartilhamento de arquivos / Explorando heterogeneidade: KaZaA Cada arquivo possui um hash e um descritor; O cliente envia a consulta de palavra-chave para o seu ĺıder de grupo; O ĺıder de grupo responde com os encontros: Para cada encontro: metadata, hash, endereço IP. Se o ĺıder de grupo encaminha a consulta para outros ĺıderes de grupo, eles respondem com os encontros; O cliente então seleciona os arquivos para download: Requisições usando hash como identificador são enviadas aos pares que contêm o arquivo desejado. 42 / 43
1 Exercícios para entrega via Moodle (até 06/06). 43 / 43