Camada de Aplicação. Prof. Tiago Semprebom. tisemp@sj.cefetsc.edu.br www.sj.cefetsc.edu.br/~tisemp. 2: Camada de aplicação 1



Documentos relacionados
REDES DE COMPUTADORES. Prof. Evandro Cantú

FTP: protocolo de transferência de arquivos

FPROT HTTP(s), FTP, DHCP, SQUID e SAMBA. Aula 1 SENAC TI Fernando Costa

2Arquitetura cliente-servidor

Redes de Computadores e a Internet

HYPERTEXT TRANSFER PROTOCOL

Redes de Computadores Camada de Aplicação. Prof. MSc. Hugo Souza


Universidade Federal do Espírito Santo CCA UFES. Centro de Ciências Agrárias CCA UFES Departamento de Computação. Programação WEB

Web. Até a década de 1990, a Internet era utilizada. por pesquisadores, acadêmicos e universitários, para troca de arquivos e para correio eletrônico.

Correio Eletrônico e os protocolos SMTP, POP3 e IMAP

Servidor de s e Protocolo SMTP. Professor: João Paulo de Brito Gonçalves Disciplina: Serviços de Redes

Transferência de arquivos (FTP)

Camada de aplicação. Camada de aplicação

Teleprocessamento e Redes

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Redes de Computadores Aula 3

Redes de Computadores e a Internet

Redes de Computadores

10/07/2013. Camadas. Principais Aplicações da Internet. Camada de Aplicação. World Wide Web. World Wide Web NOÇÕES DE REDE: CAMADA DE APLICAÇÃO

Tecnologia de Redes de Computadores

Rede de Computadores (REC)

Cap 03 - Camada de Aplicação Internet (Kurose)

Redes de Computadores. Camada de Aplicação Profa. Priscila Solís Barreto

Disciplina de Redes de Computadores Estudo Dirigido para a Prova II Professor Dr Windson Viana de Carvalho

Servidor de s e Protocolo SMTP

Introdução à Camada de Aplicação. Prof. Eduardo

Redes de Computadores

Redes de Computadores

Camada de Aplicação. Prof. Eduardo

Universidade Federal do Rio Grande do Norte

Redes de Computadores

Capítulo 8 - Aplicações em Redes

REDES DE COMPUTADORES

Capítulo 2 Camada de aplicação

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

A Camada de Aplicação

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Rede de Computadores

Aula-28 Camada Aplicação - DNS. Prof. Dr. S. Motoyama

REC- Redes de Computadores. Capítulo 5 Camada de Aplicação

O espaço de nomes DNS Registros de recursos de domínio Servidores de nome

Redes de Computadores e a Internet

TECNOLOGIA WEB INTERNET PROTOCOLOS

Desenvolvimento Web Protocolos da Internet

DNS - Domain Name System

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

TECNOLOGIA WEB. Principais Protocolos na Internet Aula 2. Profa. Rosemary Melo

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

Redes de Computadores I

Permite o acesso remoto a um computador;

Internet e protocolos web. A Internet é uma rede descentralizada de recursos computacionais. Topologia tem de fornecer caminhos alternativos

REDES DE COMPUTADORES

Transferência de Arquivo: Protocolo FTP

Redes de Computadores

REDES DE COMPUTADORES

Capítulo 2: Camada de Aplicação

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s:

OURO MODERNO Web Designer APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

UNIVERSIDADE. Sistemas Distribuídos

REDES DE COMPUTADORES I 2007/2008 LEIC - Tagus-Park TPC Nº 2. Avaliação sumária da matéria do Capítulo 2

Resolução de Nomes e o protocolo DNS

Camada de Aplicação. DNS Domain Name System. Redes de Computadores Prof. Leandro C. Pykosz

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Redes de Computadores

Redes de computadores e a Internet. Capítulo2. Camada de aplicação

Redes de Computadores

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de Página

Capítulo 2. Camada de aplicação

CAMADA DE TRANSPORTE

1.264 Lição 11. Fundamentos da Web

Sistemas Distribuídos (DCC/UFRJ)

Redes de Computadores

Aula prática. Objetivo IPCONFIG. Prof. Leandro Pykosz Informa a configuração atual de rede da máquina;

Camada de Transporte TCP/IP e Aplicação

INTRODUÇÃO ÀS REDES DE COMPUTADORES

FTP - Protocolo. O protocolo FTP é o serviço padrão da Internet para a transferência de arquivos entre computadores.

Redes de Computadores

Redes de Computadores. Protocolos de comunicação: TCP, UDP

PTC Aula Web e HTTP 2.3 Correio eletrônico na Internet 2.4 DNS O serviço de diretório da Internet

Servidor de FTP (Protocolo de Transferência de Ficheiros)

3 Qualidade de serviço na Internet

Redes de Computadores

INTRODUÇÃO ÀS REDES DE COMPUTADORES

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Protocolos de Internet (família TCP/IP e WWW) Primeiro Técnico. Prof. Cesar

Redes de Computadores. Prof. Thiago Caproni Tavares DNS. Prof. Thiago Caproni Tavares

Módulo 11 A Web e seus aplicativos

efagundes com Como funciona a Internet

Redes de Computadores

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

REDES DE COMPUTADORES

FTP Protocolo de Transferência de Arquivos

Transcrição:

MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CAMPUS SÃO JOSÉ SANTA CATARINA Camada de Aplicação Prof. Tiago Semprebom tisemp@sj.cefetsc.edu.br www.sj.cefetsc.edu.br/~tisemp 2: Camada de aplicação 1

Parte II: Camada de Aplicação Objetivos: aspectos conceituais de implementação de protocolos de rede o o paradigma clienteservidor modelos de serviço conhecer protocolos examinando protocolos de aplicação populares protocolos específicos: o o o o o http ftp smtp pop dns programando aplicações de rede o API socket 2: Camada de aplicação 2

Aplicações e protocolos da camada de aplicação aplicação: processos distribuídos comunicantes o executam em hosts da rede no espaço de usuário o troca de mensagens para implementar aplicação o ex. email, ftp, Web protocolos da camada de aplicação o uma peça de uma aplic. o define mensagens trocadas pelas aplics e ações tomadas o usa serviços de comunicação fornecidos pelos protocolos da camada subjacente (TCP, UDP) aplicação transport rede data link physical aplicação transport rede data link physical aplicação transport rede data link physical 2: Camada de aplicação 3

Aplicações de rede: alguns jargões Processo: programa em execução. dentro do mesmo host, dois processos se comunicam usando interprocess communication (definido pelo SO). processos executando em hosts diferentes se comunicam com um protocolo da camada de aplicação user agent: processo que faz interface entre usuário acima e rede abaixo. o implementa protocolo em nível de aplicação o Web: browser o Email: leitor de e- mail o streaming audio/video: media player 2: Camada de aplicação 4

Paradigma cliente-servidor Aplic. típica de rede tem 2 peças: cliente e servidor Cliente: inicia contato com servidor tipicamente requisita serviços ao servidor, Web: cliente implementado no navegador; e-mail: em leitor de reader Servidor: aplicação transport rede data link physical provê serviço requisitado pelo cliente ex., servidor Web envia página Web requisitada, servidor e-mail entrega e-mail requisição reply aplicação transport rede data link physical 2: Camada de aplicação 5

Protocolos camada de aplicação (cont). API: aplication programming interface define interface entre aplicação e camada de transporte socket: API Internet o 2 processos se comunicam enviando dados em um socket, lendo dados de um socket Q: como um processo identifica outro processo que ele quer se comunicar? o endereço IP do host que executa outro processo o número de porta permite ao host receptor determinar a qual processo local deve ser entregue a mensagem muito mais será visto depois... 2: Camada de aplicação 6

Qual serviço de transporte aplic. precisa? Perdas de dados algumas aplics. (ex., áudio) toleram algumas perdas outras (ex., transf. arq., telnet) requerem transferência dados 100% confiável Timing algumas aplics. (ex. telefonia Internet, jogos interativos) requerem baixo retardo para serem efetivos Largura de banda algumas aplics. (ex., multimídia) requerem quantidade mínima de bandwidth para serem efetivas outras ( elastic aplics. ) fazem uso da bandwidth que conseguem 2: Camada de aplicação 7

Requisitos de serviço transporte de aplicações Aplicação Perdas dados Bandwidth Sensível tempo transferência arq. e-mail Documentos Web real-time áudio/vídeo áudio/vídeo armazen. jogos interativos aplics. financeiras sem perdas sem perdas tolerante tolerante tolerante tolerante sem perdas elástico elástico elástico áudio: 5Kb-1Mb vídeo:10kb-5mb igual acima poucos Kbps elástico não não não sim, 100 s ms sim, poucos segs sim, 100 s ms sim e não 2: Camada de aplicação 8

Serviços do protocolo de transporte da Internet serviço TCP: orientado a conexão: necessário setup entre cliente e servidor transporte confiável entre processos emissor e receptor controle de fluxo: emissor não inunda receptor controle de congestão: reduz taxa do emissor quando rede está sobrecarregada não fornece: garantias de tempo, e largura de banda mínima serviço UDP: transferência de dados não confiável entre processos emissor e receptor não fornece: setup de conexão, confiabilidade, controle de fluxo, controle de congestão, garantias de tempo e de largura de banda 2: Camada de aplicação 9

Internet aplics.: protocolos de aplic. e transporte Aplicação e-mail acesso terminal remoto Web transferência de arq. multimídia streaming servidor de arq. remoto Internet telefonia Protocolo da camada de aplicação smtp [RFC 821] telnet [RFC 854] http [RFC 2068] ftp [RFC 959] proprietário (ex. RealNetorks) NFS proprietário (ex., Vocaltec) Protocolo transporte subjacente TCP TCP TCP TCP TCP ou UDP TCP ou UDP tipicamente UDP 2: Camada de aplicação 10

Web: protocolo http http: hypertext transfer protocol protocolo da camada de aplicação modelo cliente/servidor o cliente: navegador que requisita, recebe, e apresenta objetos Web o servidor: servidor Web envia objetos em resposta a requisições http1.0: RFC 1945 http1.1: RFC 2068 PC rodando Mozila Firefox Mac rodando IE requisição http resposta http requisição http resposta http servidor rodando servidor Web Apache 2: Camada de aplicação 11

mais protocolo http http: serviço de transporte TCP: cliente inicia conexão TCP (cria socket) com servidor, porta 80 servidor aceita conexão TCP do cliente http mensagens (msgs do protocolo da camada de aplicação) trocadas entre navegador (cliente http) e servidor Web (servidor http) conexão TCP fechada 2: Camada de aplicação 12

tempo Exemplo http Suponha usuário entra com URL www.someschool.edu/somedepartment/home.index 1a. cliente http inicia conexão TCP para servidor http (processo) em www.someschool.edu. Porta 80 é a default para servidor http. 2. cliente http envia mensagem de requisição http (contendo URL) em um socket de conexão TCP (contém texto, referências para 10 imagens jpeg) 1b. servidor http no host www.someschool.edu aguardando por conexão TCP na porta 80 aceita conexão, notificando cliente 3. servidor http recebe mensagem de requisição, forma mensagem de resposta contendo objeto requisitado (somedepartment/home.index), envia mensagem no socket 2: Camada de aplicação 13

Exemplo http (cont.) time 5. cliente http recebe mensagem contendo arquivo html, mostra html. Analisa arquivo html, encontra 10 objetos jpeg referenciados 6. Passos 1-5 repetidos para cada um dos 10 objetos 4. servidor http fecha conexão TCP. 2: Camada de aplicação 14

Formato de mensagens http: requisição dois tipos de mensagens http: requisição, resposta mensagem de requisição http: o ASCII (formato legível para ser-humano) linha de requisição (comandos GET, POST, HEAD) linhas de cabeçalho GET /somedir/page.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr (extra carriage return, line feed) Carriage return, line feed indicam fim da mensagem 2: Camada de aplicação 15

Mensagem de formato http: resposta linha de status (código do protocolo código do status frase do status) linhas de cabeçalho dados, ex., arquivo html requisitado HTTP/1.0 200 OK Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998... Content-Length: 6821 Content-Type: text/html dados dados dados dados dados... 2: Camada de aplicação 16

Simulando um cliente http 1. Dê um telnet para seu servidor Web favorito: telnet www.eurecom.fr 80 Abre conexão TCP para porta 80 (default do servidor http). 2. Digite uma requisição http GET: GET /~ross/index.html HTTP/1.0 3. Veja a msg de resposta do servidor http! Teclando isso (pressione Enter 2 vezes), você envia uma requisição GET ao servidor http 2: Camada de aplicação 17

Interação usuário-servidor: cookies Servidor HTTP é stateless (não tem estado), permitindo que engenheiros desenvolvam servidores de alto desempenho (escalável) Porém site pode desejar identificar usuários (para restringir acesso ou mostrar conteúdo) HTTP usa cookies (RFC 2109) Sabe-se que páginas visitou, horários em que ordem 2: Camada de aplicação 18

Cache Web (servidor proxy) Atende requisições HTTP em nome de um servidor Web de origem Possui próprio disco, onde mantém cópias de objetos acessados recentemente 2: Camada de aplicação 19

ftp: protocolo p/ transfer. de arquivos usuário no host interface cliente de FTP FTP de usuário sistema de arq. local file transfer transfere arquivo de/para host remoto modelo cliente/servidor o cliente: lado que inicia transferência o servidor: host remoto ftp: RFC 959 servidor ftp: porta 21 servidor FTP sistema de arquivos remoto 2: Camada de aplicação 20

ftp: conexões separadas para controle e dados cliente ftp contacta servidor ftp na porta 21, especificando TCP como protocolo de transporte duas conexões TCP abertas em paralelo: o controle: troca comandos e respostas entre cliente e servidor. controle fora da banda o dados: arquivo de dados de/para servidor cliente FTP conexão de controle TCP porta 21 conexão de dados TCP porta 20 Comandos simples: servidor FTP enviados como texto ASCII usando canal de controle 2: Camada de aplicação 21

ftp comandos, respostas Exemplos de comandos: enviados como texto ASCII usando canal de controle USER nomeusuário PASS senha LIST retornaumalistade arquivos no diretório corrente RETR pega arquivo STOR nomearquivo armazena arquivo no host remoto Exemplos de código de retorno código de status e frase (como no http) 331 Username OK, password required 125 data connection already open; transfer starting 425 Can t open data connection 452 Error writing file 2: Camada de aplicação 22

Correio Eletrônico Três grandes componentes: agentes de usuário servidores de correio simple mail transfer protocol: smtp Agente de Usuário a.k.a. leitor de correio compor, editar, ler mensagens de correio ex. Thunderbird, Outlook mensagens de saída e chegando são armazenadas no servidor servidor de correio SMTP servidor de correio agente de usuário agente de usuário SMTP SMTP agente de usuário fila de mensagens de saída caixa de correio do usuário servidor de correio agente de usuário agente de usuário agente de usuário 2: Camada de aplicação 23

Correio Eletrônico: servidores de correio 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) protocolo smtp entre servidores de correio para transferir mensagens de correio o cliente: servidor de correio que envia o servidor : servidor de correio que recebe servidor de correio SMTP servidor de correio agente de usuário agente de usuário SMTP SMTP agente de usuário servidor de correio agente de usuário agente de usuário 2: Camada de aplicação 24

Correio Eletrônico: SMTP [RFC 2821] usa tcp para a transferência confiável de msgs do correio do cliente ao servidor, porta 25 interação comando/resposta (texto ASCII, código e frase de status) Necessidade dos dados (áudio, vídeo, imagens, etc) sejam codificados para ASCII e depois decodificado para binário SMTP é utiliza conexões persistentes Interação smtp típica S: 220 atlas.das.ufsc.br C: HELO glorioso S: 250 Hello glorioso, pleased to meet you C: MAIL FROM: <montez@das.ufsc.br>... C: QUIT S: 221 closing connection 2: Camada de aplicação 25

Experimente você uma interação smtp : telnet smtp.das.ufsc.br 25 veja resposta 220 do servidor entre comandos HELO, MAIL FROM, RCPT TO, DATA, QUIT estes comandos permite que você envie correio sem usar um cliente (leitor de correio) 2: Camada de aplicação 26

Protocolos de accesso ao correio agente da Maria SMTP SMTP POP3 ou IMAP agente do José servidor de correio da Maria servidor de correio do José SMTP: entrega/armazenamento no servidor do receptor SMTP não usa servidores internediários para enviar mensagens (ex. servidores em lados opostos do mundo) protocolo de accesso ao correio: recupera do servidor o POP3: Post Office Protocol [RFC 1939] autorização (agente <-->servidor) e transferência as claras. Não permite baixar msg em qualquer PC o IMAP: Internet Mail Access Protocol [RFC 1730] mais comandos (mais complexo) manuseio de msgs armazenadas no servidor o HTTP: Hotmail, Yahoo! Mail, Webmail, etc. 2: Camada de aplicação 27

DNS: Domain Name System Pessoas: muitos identificadores: o CPF, nome, no. da identidade o o Olá meu nome é 035.254.245-35 Olá Meu nome é Pedro hospedeiros, roteadores Internet o endereço IP (32 bit) - usado p/ endereçar datagramas o nome o sj.cefetsc.edu.br - usado por gente o Roteadores preferem endereços IP (hierárquicos) o Pessoas preferem nomes de hospedeiros Pergunta: como mapear entre nome e endereço IP? 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) Executam software BIND o o obs: função imprescindível da Internet implementada como protocolo de camada de aplicação complexidade na borda da rede 2: Camada de aplicação 28

DNS Protocolo da camada de Aplicação (função interna da internet) - UDP e porta 53 Especificado nas RFCs 1034 e 1035 e atualizado em outras RFCs. Utilizado por outras entidades da camada de aplicação: HTTP, SMTP e FTP para traduzir nomes para endereços IP. DNS adiciona mais um atraso para as aplicações (veremos como amenizar este atraso). Outros serviços: apelidos para hospedeiros (nome canônico) realy1.westcoast.enterprise.com (enterprise.com ou www.enterprise.com) o apelido para o servidor de e- mails Ex. pedro@hotmail.com o Distribuição da carga Requisições para um endereço, o rodízio de DNS redistribui o tráfego entre os servidores replicados. (ex. servidores de e- mail com muitos usuários) 2: Camada de aplicação 29

Servidores de nomes DNS Por que não centralizar o DNS? ponto único de falha volume de tráfego banco de dados centralizada e distante manutenção (da BD) Não é escalável! Nenhum servidor mantém todos os mapeamentos nome-endereço IP servidor de nomes local: o cada provedor, empresa tem servidor de nomes local (default) o pedido DNS do host vai primeiro ao servidor de nomes local servidor de nomes oficial (com autoridade): o p/ host: guarda nome, endereço IP dele o pode realizar tradução nome/endereço para este nome 2: Camada de aplicação 30

DNS: Servidores raiz procurado por servidor local que não consegue resolver o nome servidor raiz: o procura servidor oficial se mapeamento desconhecido o o obtém tradução devolve mapeamento ao servidor local 13 servidores raiz no mundo 2: Camada de aplicação 31

Exemplo simples do DNS host manga.ic.uff.br requer endereço IP de www.cs.columbia.edu 1. Contata servidor DNS local, pitomba.ic.uff.br 2. pitomba.ic.uff.br contata servidor raiz, se necessário 3. Servidor raiz contata servidor oficial cs.columbia.edu, se necessário 2 servidor local (default) pitomba.ic.uff.br 1 6 solicitante manga.ic.uff.br 5 3 servidor de nomes raiz 4 servidor oficial cs.columbia.edu www.cs.columbia.edu 2: Camada de aplicação 32

Exemplo de DNS Servidor raiz: pode não conhecer o servidor de nomes oficial pode conhecer servidor de nomes intermediário: a quem contatar para descobrir o servidor de nomes oficial servidor local pitomba.ic.uff.br 1 2 8 solicitante manga.ic.uff.br 7 3 6 servidor de nomes raiz servidor intermediário saell.cc.columbia.edu 4 5 servidor oficial cs.columbia.edu www.cs.columbia.edu 2: Camada de aplicação 33

DNS: consultas interativas servidor de nomes raíz consulta recursiva: transfere a responsabilidade de resolução do nome para o servidor de nomes contatado consulta interativa: servidor consultado responde com o nome de um servidor de contato Não conheço este nome, mas pergunte para esse servidor 1 2 3 servidor local pitomba.ic.uff.br 8 solicitante manga.ic.uff.br 4 7 consulta interativa servidor intermediário saell.cc.columbia.edu 5 6 servidor oficial cs.columbia.edu www.cs.columbia.edu 2: Camada de aplicação 34

DNS: uso de cache, atualização de dados uma vez que um servidor qualquer aprende um mapeamento, ele o coloca numa cache local o futuras consultas são resolvidas usando dados da cache o entradas na cache são sujeitas a temporização (desaparecem depois de um certo tempo) ttl = time to live (sobrevida) 2: Camada de aplicação 35

Programação com sockets Meta: aprender a construir aplicações cliente/servidor que se comunicam usando sockets socket API Sockets apareceu no BSD4.1 UNIX em 1981 são explicitamente criados, usados e liberados por apls paradigma cliente/servidor dois tipos de serviço de transporte via API Sockets o datagrama não confiável o fluxo de bytes, confiável uma interface (uma porta ), local ao hospedeiro, criada por e pertencente à aplicação, e controlado pelo SO, através da qual um processo de aplicação pode tanto enviar como receber mensagens para/de outro processo de aplicação (remoto ou local) 2: Camada de aplicação 36

Programação com sockets usando TCP Socket: uma porta entre o processo de aplicação e um protocolo de transporte fim-a-fim (UDP ou TCP) Serviço TCP: transferência confiável de bytes de um processo para outro processo socket TCP com buffers, variáveis internet processo socket TCP com buffers, variáveis controlado pelo programador de aplicação controlado pelo sistema operacional estação ou servidor estação ou servidor 2: Camada de aplicação 37

Programação com sockets usando TCP Cliente deve contactar servidor processo servidor deve antes estar em execução servidor deve antes ter criado socket (porta) que aguarda contato do cliente Cliente contacta servidor para: criar socket TCP local ao cliente especificar endereço IP, número de porta do processo servidor Quando cliente cria socket: TCP do cliente estabelece conexão com TCP do servidor Quando contatado pelo cliente, o TCP do servidor cria socket novo para que o processo servidor possa se comunicar com o cliente o permite que o servidor converse com múltiplos clientes ponto de vista da aplicação TCP provê transferência confiável, ordenada de bytes ( tubo ) entre cliente e servidor 2: Camada de aplicação 38