Baixe o app para aproveitar ainda mais
Prévia do material em texto
21/03/2024 1 REDES DE COMPUTADORES: APLICAÇÃO E TRANSPORTE Camada e Protocolos de aplicação Camada de aplicação Metas: • Aprender aspectos conceituais e de implementação de protocolos de aplicação em redes – Paradigma cliente /servidor – Modelos de serviço • Aprender sobre protocolos através do estudo de protocolos populares do nível da aplicação Conhecer... • ...protocolos específicos: – http – ftp – smtp – pop – dns • ...a programação de aplicações de rede. – Programação usando sockets 1 2 21/03/2024 2 Camada de aplicação • É a camada mais próxima dos usuários • Nas demais camadas, existem 1 ou 2 protocolos principais • Na camada de aplicação, existem vários protocolos, um para cada tipo de serviço • Além disso, um serviço de rede pode fazer uso de mais de um protocolo • Ex.: o serviço de e-mail pode utilizar os protocolos SMTP, POP e IMAP Camada de aplicação • Aplicações de rede são a “razão de ser” de uma rede de computadores – Qual a necessidade de projetar uma rede se não existissem aplicações que fossem usá-la? • Aplicações de rede são distribuídas em dois ou mais sistemas finais application transport network data link physical application transport network data link physical application transport network data link physical 3 4 21/03/2024 3 Camada de aplicação application transport network data link physical application transport network data link physical application transport network data link physical • Aplicações comunicam-se através de troca de mensagens – Ex.: Correio eletrônico, transferência de arquivos, WWW, login remoto, voz, etc... – As aplicações de rede têm protocolos da camada de aplicação que definem detalhes desta comunicação via troca de mensagens Protocolos de aplicação • Protocolos da camada de aplicação: – Não são a aplicação. – APENAS uma “parte” da aplicação. – Define mensagens trocadas por aplicações e ações tomadas em sua resposta. – Usam serviços providos por protocolos de camadas inferiores Os processos em dois sistemas diferentes comunicam-se entre si, trocando mensagens através da rede de computadores. Um processo de emissão cria e emite mensagens na rede; um processo de recepção recebe estas mensagens e responde possivelmente emitindo mensagens de volta. 5 6 21/03/2024 4 Como os processos trocam mensagens • Um protocolo da camada de aplicação define como os processos de aplicação, funcionando em sistemas de extremidade diferentes. • Detalhadamente, um protocolo da camada de aplicação define: – Os tipos de mensagens trocadas, por exemplo, mensagens do pedido e mensagens de resposta. – A sintaxe dos vários tipos de mensagem, tais como os campos na mensagem e como os campos são delineados. – A semântica dos campos, isto é, o significado da informação nos campos. – As regras para determinar quando e como um processo emite mensagens e responde às mensagens. Aplicações de rede • Um processo é um programa que roda num host. – Dois processos no mesmo host se comunicam usando comunicação entre processos (interprocess comunnication), definida pelo sistema operacional (SO). – Dois processos em hosts distintos se comunicam usando um protocolo da camada de aplicação Um agente de usuário (UA) é uma interface entre o usuário e a aplicação de rede. • WWW: browser. • Correio: leitor/compositor de mensagens • Streaming audio/video: tocador (player) de mídia 7 8 21/03/2024 5 Paradigma cliente-servidor • Existem 2 figuras: cliente e servidor • Cliente: solicita um serviço • Ex.: leitor de correio eletrônico • Servidor: recebe, processa e responde • Ex.: servidor de correio Camada de aplicação • API - Aplication Program Interface: – Interface de programação de aplicações • Define a interface entre a aplicação e camada de transporte. • Socket (= tomada) : API da Internet – Dois processos se comunicam enviando dados para um socket , ou lendo dados de um socket. 9 10 21/03/2024 6 Comunicação pelos sockets • Os dois processos comunicam-se entre si emitindo e recebendo mensagens através de seus sockets. • O socket de um processo pode ser pensado como a porta do processo: • Um processo emite e recebe mensagens da rede, através de seus sockets. • Quando um processo quer emitir uma mensagem a um outro processo em um outro host, empurra a mensagem para fora de sua porta. • O processo supõe que há um infra-estrutura de transporte no outro lado da porta, a qual transportará a mensagem até a porta do processo do destino. Como um processo identifica outro ? • Pergunta: Como um processo pode “identificar”o outro processo com o qual quer se comunicar? • Endereço IP do host do outro processo. • Por enquanto: basta saber que o IP ADDRESS é um valor de 32-bits que identifica unicamente o sistema de extremidade. Mais precisamente, identifica unicamente a interface (placa) que conecta esse host à Internet. Ex. 200.145.9.9 • “Número de porta” : permite que o hospedeiro receptor determine a qual processo deve ser entregue a mensagem. Exemplo: Porta 80/TCP. • Ex. 200.145.9.9:80 (Ver RFC 1700 - Portas well-known) 11 12 21/03/2024 7 Que serviços de transporte a aplicação precisa? • Quando se desenvolve uma aplicação, deve-se escolher um dos protocolos disponíveis do transporte. • Como você faz esta escolha? • Estuda-se os serviços fornecidos pelos protocolos disponíveis do transporte, e escolhe-se o protocolo com os serviços que melhor se adaptem às necessidades de sua aplicação. Perda de dados: • Algumas aplicações (por exemplo áudio) podem tolerar algumas perdas. • Outras (por exemplo, transferência de arquivos, telnet) exigem transferência 100% confiável Temporização: • Algumas aplicações (por exemplo, telefonia em Internet, jogos interativos) requerem baixo retardo para serem “viáveis”. Largura de banda: • Algumas aplicações (por exemplo , multimídia) requerem quantia mínima de banda para serem “viáveis”. • Outras aplicações (“elásticas”) conseguem usar qualquer quantia de banda disponível. Que serviços de transporte a aplicação precisa? 13 14 21/03/2024 8 Requisitos do serviço de transporte de aplicações comuns Aplicação Perdas Banda Sensibilidade temporal transferência de arqs sem perdas elástica não correio sem perdas elástica não documentos WWW sem perdas elástica não áudio/vídeo de tempo real tolerante áudio: 5Kb-1Mb | vídeo:10Kb-5Mb sim, décimos de seg. áudio/vídeo gravado tolerante como anterior sim, alguns seg. jogos interativos tolerante > alguns Kbps sim, décimos de seg. apps financeiras sem perdas elástica sim e não Serviços providos por protocolos de transporte Internet • Serviço TCP: • Orientado a conexão: estabelecimento exigido entre cliente e servidor. • Transporte confiável entre processos emissor e receptor. • Controle de fluxo: emissor não vai “afogar” receptor. • Controle de congestionamento: estrangular emissor quando a rede está carregada. • Serviço UDP: • Não orientado a conexão • Transferência de dados não confiável entre processos remetente e receptor. • Não provê: estabelecimento da conexão, confiabilidade, controle de fluxo, controle de congestionamento, garantias temporais ou de banda mínima. • Pergunta-se: Qual é o interesse em ter um UDP? 15 16 21/03/2024 9 Aplicações Internet: seus protocolos e seus protocolos de transporte Aplicação Protocolo da camada de app. Protocolo de transporte usado Correio eletrônico smtp [RFC 821] TCP Acesso terminal remoto telnet [RFC 854] TCP WWW http [RFC 2068] TCP Transferência de arquivos ftp [RFC 959] TCP streaming multimídia proprietário (Ex: RealNetworks) TCP ou UDP Servidor de arquivo remoto NFS TCP ou UDP Telefonia Internet proprietário (Ex: Volcatec) tipicamente UDP Prof. Márcio Garcia Martins marciog@unisinos.br Para anotar: ao enviar e-mail sempre coloque o seguinte prefixo no assunto [RC:AT-ano-semestre] – Nome do aluno 17 18 Slide 1: REDES DE COMPUTADORES: APLICAÇÃOE TRANSPORTE Slide 2: Camada de aplicação Slide 3: Camada de aplicação Slide 4: Camada de aplicação Slide 5: Camada de aplicação Slide 6: Protocolos de aplicação Slide 7: Como os processos trocam mensagens Slide 8: Aplicações de rede Slide 9: Paradigma cliente-servidor Slide 10: Camada de aplicação Slide 11: Comunicação pelos sockets Slide 12: Como um processo identifica outro ? Slide 13: Que serviços de transporte a aplicação precisa? Slide 14: Que serviços de transporte a aplicação precisa? Slide 15: Requisitos do serviço de transporte de aplicações comuns Slide 16: Serviços providos por protocolos de transporte Internet Slide 17: Aplicações Internet: seus protocolos e seus protocolos de transporte Slide 18
Compartilhar