Prof. Macˆedo Firmino
Camada de Aplica¸c˜ao
Introdu¸c˜ao
Aplica¸c˜oes de rede s˜ao a raz˜ao de ser de uma rede de computadores.
Entre elas est˜ao o correio eletrˆonico, acesso a computadores remotos, transferˆencia de arquivos, mensagem instantˆanea, VOIP, jogos em rede e Web.
Exemplos de aplica¸c˜oes e protocolos dispon´ıveis para o usu´ario:
Aplica¸c˜oes Protocolos
Protocolos de Suporte DNS, DHCP, SNMP...
E-mail STMP, IMAP, POP, ...
Web HTTP, HTTPS, ...
Compartilhamento de arquivos FTP, TFTP, FTPS, ...
Mensagem instantˆanea MSNMS, Yahoo! Messenger Protocol, IRC, ...
Login remoto SSH, VNC, RDP...
Texto Telnet, ...
Telefonia via Internet Skype protocol, RTP, ...
Arquiteturas de Aplica¸c˜ao
A arquiteturas de aplica¸c˜ao especifica como a aplica¸c˜ao ´e organizada nos sistemas finais.
Elas s˜ao projetada pelo desenvolvedor da aplica¸c˜ao.
Existem basicamente os seguintes tipos de arquitetura:
Cliente-servidor;
Peer-to-peer (P2P).
H´ıbrida (cliente-servidor/P2P)
Servidor:
E um programa que oferece servi¸cos aos´ clientes.
Quando ´e inicializado, o programa servidor abre portas de entrada para receber solicita¸c˜oes.
Deve rodar sem interrup¸c˜oes, esperando solicita¸c˜oes dos clientes.
Utilizar endere¸co IP fixo e real e portas conhecidas.
Cliente:
E um programa que solicita os servi¸cos´ de um servidor.
Arquitetura P2P
No P2P puro, os sistemas finais comunicam-se diretamente. Ou seja, n˜ao h´a um servidor sempre funcionando no centro da aplica¸c˜ao.
Nesta arquitetura, nenhuma m´aquina participante precisa estar sempre em funcionamento. Al´em disso, umhost participante pode mudar o seu endere¸co IP cada vez que for ligado.
Esta arquitetura ´e utilizada por exemplo em programas de compartilhamento de arquivos (por exemplo, Gnutella).
Por´em, alguns programas P2P quase sempre usam um sistema hibrido (por exemplo, o MSN e BitTorrent). Isto ´e, utilizam servidores para registrar os usu´arios on-line, registra seu endere¸co IP, registrar arquivos dispon´ıveis, monitorar conversa¸c˜ao, etc.
A Internet utiliza o endere¸co IP para identificar uma entidade na rede.
Entretanto, as pessoas preferem usar nomes em vez de endere¸cos n´umeros.
Al´em disso, enviar correio eletrˆonico para [email protected] significa que, se o servidor de correio de macedo alterar o endere¸co IP, o endere¸co de correio eletrˆonico de macedo ter´a de mudar.
Deste modo, foi introduzidos nomes para identificar m´aquinas, portanto, ´e necess´ario algum tipo de mecanismo para converter os nomes em endere¸cos de rede. Este sistema foi chamado de DNS (Domain Name System).
Protocolo DNS
A essˆencia do DNS ´e a cria¸c˜ao de um esquema hier´arquico de
atribui¸c˜ao de nomes e de um sistema de bancos de dados distribu´ıdos para implementar esse esquema de nomenclatura.
Para evitar ambiguidades, os nomes atribu´ıdos `as m´aquinas devem ser cuidadosamente selecionado. Pois, os nomes devem ser ´unicos porque os endere¸cos tamb´em o s˜ao.
O DNS utiliza o protocolo de transporte UDP na porta 53 (ou TCP na porta 53 quando uma resposta for superior a 512 bytes).
Os nomes n˜ao fazem distin¸c˜ao entre letras mai´usculas e min´usculas.
Portanto, “edu”, “Edu” e “EDU” tˆem o mesmo significado.
Em um espa¸co de nomes hier´arquico, todo nome ´e dividido em v´arias por¸c˜oes. A hier´arquia do dom´ınio descende da direita para a esquerda.
Estas por¸c˜oes s˜ao separadas por pontos, por exemplo, ifrn.edu.br;
br: o nome mais a direita ´e chamado de dom´ınio de n´ıvel superior;
edu: ´e uma subdivis˜ao do dom´ınio “br” (chamado de subdom´ınio)
ifrn: ´e uma subdivis˜ao do dom´ınio “edu.br”
hostname: ´e o nome do dom´ınio que tem um endere¸co IP associado.
Por exemplo,www.ifrn.edu.br
Protocolo DNS
Existem dois tipos de dom´ınios (espa¸cos de nome) de n´ıvel superior:
Os dom´ınios gen´ericos: “com” (comercial), “edu” (institui¸c˜oes educacionais), “gov” (institui¸c˜oes governamentais), “int“ (certas organiza¸c˜oes internacionais), “mil” (´org˜aos das for¸cas armadas), “net”
(provedores de rede), “org” (organiza¸c˜oes sem fins lucrativos) e etc;
Os dom´ınios de pa´ıses: “br” (Brasil), “us” (Estados Unidos), “eu”
(Uni˜ao Europ´eia), “ar” (Argentina) e etc.
com org net gov br us cn eu
com edu ifrn
O DNS define trˆes tipos de servidores:
Servidor raiz: n˜ao armazena nenhuma informa¸c˜ao sobre os dom´ınios, mas delega sua autoridade a outros servidores, mantendo referˆencia a esses servidores.
Servidor de nome prim´ario: cria, armazena e atualiza arquivos sobre a zona para a qual recebeu autoridade. Ele constr´oi um banco de dados, denominado arquivos de zona, e mant´em nele informa¸c˜oes relativas ao seu dom´ınio.
Servidor de nome secund´ario: ´e um servidor debackup das informa¸c˜oes de zona. Ele informa todos os dados sobre uma zona de um outro servidor (prim´ario ou secund´ario) previamente armazenados.
Protocolo DNS - Resolvendo Nomes
O DNS ´e uma aplica¸c˜ao cliente-servidor. Umhost que precisa transformar um nome em endere¸co IP, ou vice-versa, aciona uma aplica¸c˜ao cliente DNS chamada resolver.
O resolver faz uma consulta DNS ao servidor de DNS mais pr´oximo.
Se este servidor possui o mapeamento, ele entrega a consulta ao resolver. Caso contr´ario, ele entrega a consulta a outros servidores DNS para que algum deles resolva o nome em IP ou vice-versa.
A resolu¸c˜ao pode ocorrer de duas formas:
Recursiva.
Iterativa.
Cliente www.greenpeace.org ?
Servidor ifrn.edu.br
Servidor edu.br Servidor br
Servidor raiz
Servidor org
Servidor greenpeace.org
Host www.greenpeace..org 2
3
4 5
7 6 9 8
10
11 1
12
Protocolo DNS - Resolvendo Nomes (Recursiva)
Nesta busca, se o servidor tem autoridade sobre o nome do dom´ınio solicitado, ele verifica a sua base de dados e responde. Caso
contr´ario, o servidor retransmite a consulta para outro servidor (usualmente um servidor DNS pai) e aguarda a resposta.
O servidor pai responde se ele tiver autoridade sobre o dom´ınio. De outro modo, ele retransmite a consulta para outro servidor.
Quando a consulta for resolvida, a resposta retorna, at´e finalmente chegar at´e ao cliente solicitante.
Cliente Servidor ifrn.edu.br
Servidor edu.br Servidor br
Servidor raiz
Servidor org
Servidor greenpeace.org
Host www.greenpeace..org 1
2
3 4
5 6
7 8
9 10
11 12
Protocolo DNS - Resolvendo Nomes (Iterativa)
Se o servidor local tiver autoridade sobre o nome solicitado, ele responde. Caso n˜ao, o servidor local retorna uma resposta ao cliente contendo o endere¸co IP de outro servidor DNS que o servidor local acha que talvez tenha condi¸c˜oes de responder `a consulta do cliente.
Assim, o cliente repete a consulta, desta vez perguntando ao servidor DNS sugerido pelo servidor local.
Se o novo servidor puder resolver, o endere¸co ´e retornado. Caso contr´ario, esse servidor envia ao cliente o endere¸co IP de outro servidor DNS para uma nova pesquisa.
Quando um servidor solicita um mapeamento a outro servidor DNS e recebe resposta, ele armazena essa informa¸c˜ao na mem´oria cache antes de envia-l´a ao cliente.
Se o mesmo ou outro cliente solicitar o mesmo mapeamento, esse servidor verifica no cache e resolve o problema.
O mecanismo decache aumenta a velocidade da resolu¸c˜ao, mas o servidor n˜ao pode armazenar o mapeamento por um longo per´ıodo de tempo, sen˜ao o mapeamento ficar´a desatualizado.
Protocolo DNS
No Brasil uma organiza¸c˜ao chamada Registro.br detem autoridade sobre dom´ınios .br. Os pre¸cos de alguns dom´ınios:
Dom´ınio NOM.BR (pessoa f´ısica): R$ 30,00 pelo per´ıodo m´ınimo de 3 anos e R$ 9,00 para cada ano adicionado durante o processo de registro ou renova¸c˜ao.
Dom´ınio COM.BR pelo per´ıodo de 1 ano: R$ 30,00.
O Protocolo DHCP (Dynamic Host Configuration Protocol) ´e um protocolo da camada de aplica¸c˜ao que oferece configura¸c˜ao dinˆamica de informa¸c˜oes da rede, por exemplo:
Endere¸cos IP dehost; M´ascara da rede;
Endere¸co do Roteador (Gateway) da rede;
Endere¸cos dos servidores de nome (DNS) da rede.
O DHCP usa um modelo cliente-servidor, no qual o servidor DHCP mant´em o gerenciamento centralizado das informa¸c˜oes da rede.
Protocolo DHCP
Dependendo da implementa¸c˜ao o servidor DHCP oferece dois tipos de aloca¸c˜ao de endere¸cos IP (banco de dados):
Manual: ´e associado o endere¸co MAC do cliente e um endere¸co IP. Por conseguinte, apenas os clientes cujo MAC consta nesta lista poder˜ao receber os endere¸cos IPs reservados para eles;
Autom´atica: o cliente obt´em um endere¸co de um espa¸co de endere¸cos poss´ıveis, especificado pelo administrador.
00:11:22:33:44:55
00:11:22:33:44:56 00:11:22:33:44:57 00:11:22:33:44:58 Alguém pode me passar
as informações da rede?
MAC IP 00:11:22:33:44:55 192.168.0.1 00:11:22:33:44:56 192.168.0.2 192.168.0.10 - 192.168.0.200
Gateway 192.168.0.254 Servidor DNS 192.168.0.253 Máscara da rede 255.255.255.0
As informações da rede
Protocolo DHCP
Quando um cliente DHCP envia uma solicita¸c˜ao embroadcast. O servidor DHCP ir´a receber e verificar a sua base de dados est´atica. Se houver algum registro est´atico correspondente ao endere¸co MAC do cliente, o seu endere¸co IP ´e informado ao cliente. Por outro lado, se n˜ao houver registro na base de dados est´atica, o servidor seleciona um endere¸co IP no conjunto de endere¸cos e atribui este endere¸co ao cliente.
Os endere¸cos da atribui¸c˜ao autom´atica s˜ao tempor´arios. Quando a concess˜ao expirar, o cliente deve liberar o endere¸co IP concedido ou renovar a concess˜ao.
Um cliente DHCP pode passar por seis estados de aquisi¸c˜ao:
Inicializa¸c˜ao Seleciona Solicita Liga¸c˜ao Renova Religa¸c˜ao
Protocolo DHCP
DHCPDiscover (Broadcast)
DHCPOffer DHCPRequest (Broadcast)
DHCPACK
DHCPRequest DHCPACK Inicialização
Seleção Solicitação
Ligação
Renovação
. . .
Cliente Servidor DHCP
Quando um cliente inicializa pela primeira vez (boot), ele difunde uma mensagem embroadcast (255.255.255.255) a fim de adquirir as configura¸c˜oes de inicializa¸c˜ao na rede.
Esta mensagem ´e chamada DHCPDISCOVER. Neste mensagem o endere¸co IP do cliente (origem) ´e um endere¸co reservado (0.0.0.0).
O DHCPDISCOVER ´e enviado em um datagrama UDP, porta de origem 68 para a porta de destino 67. Ap´os o envio dessa mensagem, o cliente passa para o estado Seleciona.
Nesta mensagem vai o endere¸co MAC e o nome dohost.
Protocolo DHCP - Sele¸c˜ao
Neste estado, o cliente permanece aguardando a resposta dos servidores DHCP que receberam o DHCPDISCOVER. Aqueles servidores que estiverem configurados para responder, enviam ao cliente uma mensagem DHCPOFFER.
Nesta mensagem, est˜ao embutidas as informa¸c˜oes necess´arias para a configura¸c˜ao do cliente:
Um endere¸co IP,
O endere¸co do seugateway, A sua mascar´a da rede,
O nome do dom´ınio DNS da rede, Endere¸cos de servidores de DNS e O tempo de empr´estimo do endere¸co IP.
Ap´os o recebimento de todas as mensagens enviadas pelos servidores, o cliente ir´a optar por uma e entrar´a em negocia¸c˜ao de loca¸c˜ao com o servidor ofertante.
Para iniciar a negocia¸c˜ao, o cliente envia a mensagem
DHCPREQUEST ainda embroadcast, solicitando um determinado endere¸co IP (ter acesso a rede). Neste momento, ele entra no estado Solicita.
Protocolo DHCP - Solicita¸c˜ao
Aqui, o cliente aguarda uma resposta de confirma¸c˜ao do servidor DHCP que ele entrou em negocia¸c˜ao. Essa confirma¸c˜ao ´e remetida atrav´es da mensagem DHCPACK. Com o recebimento da
confirma¸c˜ao, o cliente passa a ter um endere¸co IP e utiliza-lo, bem como todas as outras informa¸c˜oes de configura¸c˜ao que foram enviadas pelo servidor e entra no estado Liga¸c˜ao.
Este ´e o estado em que permanece o cliente durante a utiliza¸c˜ao do endere¸co IP at´e que atinja o per´ıodo de renova¸c˜ao ou ele decida n˜ao mais utilizar o endere¸co locado.
Para este ´ultimo caso, onde o cliente n˜ao espera o t´ermino do prazo da loca¸c˜ao, ele envia uma mensagem DHCPRELEASE para o servidor, a fim de provocar a libera¸c˜ao do endere¸co IP locado. Desta forma, o cliente n˜ao mais poder´a enviar datagramas IP utilizando-se do endere¸co que possu´ıa e passa para o estado de Inicializa¸c˜ao.
Protocolo DHCP - Renova
Ao receber um DHCPACK, o cliente adquire a informa¸c˜ao do per´ıodo de loca¸c˜ao do endere¸co. De posse dessa informa¸c˜ao, ele inicializa trˆes temporizadores. Eles s˜ao utilizados para controlar os per´ıodos de renova¸c˜ao, revincula¸c˜ao e do fim da loca¸c˜ao.
O servidor pode especificar o valor de cada temporizador.
Quando o temporizador ultrapassa o valor da renova¸c˜ao, o cliente tentar´a renovar a loca¸c˜ao. Para isso, ele faz uso novamente do DHCREQUEST ao servidor. Assim, ele passa para o estado Renova e aguarda a resposta. Na mensagem, segue embutido o endere¸co IP atual do cliente e uma solicita¸c˜ao de extens˜ao da loca¸c˜ao do mesmo.
O servidor envia um DHCPACK ao cliente. O recebimento dessa mensagem faz com que o cliente retorne ao estado Liga¸c˜ao.
A World Wide Web (WWW) ´e um sistema de armazenamento e distribui¸c˜ao de documentos hiperm´ıdia espalhados por minh˜oes de m´aquinas na Internet. Os documentos podem estar na forma de v´ıdeos, sons, hipertextos e figuras.
Para visualizar a informa¸c˜ao, pode-se usar um programa de computador chamado navegador (chamados browser) para obter informa¸c˜oes de servidores Webe mostr´a-los na tela do usu´ario.
AWeb teve in´ıcio em 1989 no CERN, o centro europeu para pesquisa nuclear (Su´ı¸ca). O criador foi um f´ısico do CERN, chamado Tim Berners-Lee.
A Webnasceu da necessidade de fazer com que grupos de cientistas de diferentes nacionalidades pudessem colaborar uns com os outros.
Servi¸co Web
A Web´e formada pelos componentes:
Clientes (browser): Firefox, Internet Explorer, Google Chrome, ...
Servidor: Apache, IIS, ...
Protocolo de comunica¸c˜ao: HTTP, FTP, ...
P´aginaweb: HTML, XHTML, ...
Cliente Servidor Web Servidor Web
Solicitação
Página Web
Solicitação
Página Web
Na Web as p´aginas s˜ao nomeadas com o uso de um padr˜ao chamado URLs (Uniform Resource Locators).
A URL ´e formada por:
Protocolo: define o protocolo de aplica¸c˜ao usado na obten¸c˜ao do documento (por exemplo, HTTP e FTP).
Host: ´e o computador onde as informa¸c˜oes est˜ao localizadas.
Porta: ´e utilizado para identificar o programa servidorWeb, usualmente porta 80. Este campo ´e opcional.
Caminho (path): inidica como encontrar um arquivo onde a informa¸c˜ao desejada est´a localizada.
Protocolo :// Host : Porta / Caminho
Servi¸co Web
Quando um usu´ario clica em umhiperlink, o navegador executa uma s´erie de etapas em ordem para buscar a p´agina indicada. Por
exemplo, suponha que um usu´ario deseje acessar a p´agina http://www.ifrn.edu.br/alunos.
1 O navegador pergunta ao DNS qual ´e o endere¸co IP de www.ifrn.edu.br.
2 O DNS responde com 200.137.2.120.
3 O navegador estabelece uma conex˜ao TCP com a porta 80 em 200.137.2.120.
4 Em seguida, o navegador envia um comando solicitando o arquivo /alunos.
5 O servidorwww.ifrn.edu.brenvia o arquivo /alunos.html
6 O navegador busca todas as imagens e informa¸c˜oes que o arquivo cont´em.
7 A conex˜ao TCP ´e encerrada.
Os documentos na WWW podem ser agrupados em trˆes categorias:
Est´aticos: s˜ao apenas arquivos que ficam armazenados em algum servidor esperando o momento de serem recuperados. O cliente tem permiss˜ao somente para realizar uma c´opia do documento.
Dinˆamicos: s˜ao documentos que n˜ao existe um formato predefinido, ou seja, eles s˜ao gerado por demanda. Quando chega um pedido, o servidor roda uma aplica¸c˜ao que ir´a gerar o domumento
dinamicamente.
Ativos: tamb´em ´e criado uma p´agina dinˆamica por demanda, no entando a cria¸c˜ao ocorre no computador cliente. Isto permite a p´agina interagir diretamente com os usu´arios (por exemplo, responder a movimentos domouse).
Servi¸co Web - Est´atico
Atualmente, as p´aginas daWeb s˜ao escritas em uma linguagem denominada HTML (HyperText Markup Language). A HTML
permite que os usu´arios produzam p´aginas daWeb que incluem texto, gr´aficos e ponteiros para outras p´aginas daweb.
A HTML ´e uma linguagem de marca¸c˜ao, ou seja, uma linguagem para descrever como os documentos devem ser formatados.
Cliente Servidor Web
Solicitação
Página HTML estática
Um CGI (Comum Gateway Interface) ´e um conjunto de padr˜oes que define como um documento dinˆamico deve ser escrito. Ele permitir que servidores da Web se comuniquem com programas (por exemplo, Perl e Python) para gerar p´aginas HTML.
Cliente Servidor Web
Solicitação
Página HTML dinâmica
Programa que irá gerar
a página
Servi¸co Web - Dinˆamico
Os scripts da CGI n˜ao s˜ao a ´unica maneira de gerar conte´udo dinˆamico no lado servidor. Outra forma comum ´e incorporar
pequenos scripts (por exemplo, PHP, JSP e ASP) em p´aginas HTML e fazer com que eles sejam executados pelo pr´oprio servidor para gerar a p´agina.
Cliente Servidor Web
Solicitação
Página HTML dinâmico Programa (script) O programa está dentro do próprio
Documentos ativos tamb´em s˜ao chamados de dinˆamicos do lado cliente.
A linguagem descripts mais popular para o lado cliente ´e o JavaScript. A figura abaixo ilustra o processo de cria¸c˜ao de uma p´agina contendo JavaScript.
Cliente Servidor Web
Solicitação
Página HTML
com script Programa (script) Programa que
irá gerar a página
HTTP
Um dos protocolo mais utilizados naWorld Wide Web ´e o HTTP (HyperText Transfer Protocol). Ele especifica as mensagens que os clientes podem enviar aos servidores e que respostas eles receber˜ao.
O HTTP usa os servidor do TCP na porta 80. A vantagem de se usar o TCP ´e que nem os navegadores nem os servidores tˆem de se
preocupar com mensagens perdidas, mensagens duplicadas, mensagens longas ou confirma¸c˜oes.
A id´eia do HTTP ´e muito simples. Um cliente envia um pedido, na forma de uma mensagem, ao servidor. O servidor envia uma resposta, tamb´em na forma de mensagem, ao cliente.
A partir do HTTP vers˜ao 1.1 ´e utilizado conex˜oes persistentes. Com elas, ´e poss´ıvel estabelecer uma conex˜ao TCP, enviar uma solicita¸c˜ao e obter uma resposta, e depois enviar solicita¸c˜oes adicionais e receber respostas adicionais;
O HTTP ´e um protocolo sem estado (stateless), isto ´e, n˜ao se
“lembra” dos pedidos anteriores.
HTTP
O cliente inicia a transa¸c˜ao enviando uma mensagem de solicita¸c˜ao (um pedido). Em seguida, o servidor responde enviando a mensagem resposta.
M´etodos, ou comandos, s˜ao tipos de pedidos de solicita¸c˜ao que um cliente enviada a um servidor. S˜ao exemplos de m´etodos HTTP:
GET: solicita ao servidor que envie a p´agina.
HEAD: solicita apenas o cabe¸calho da mensagem, sem a p´agina propriamente dita. Esse m´etodo pode ser usado para se obter a data da ´ultima modifica¸c˜ao feita na p´agina ou apenas para testar a validade de um URL.
PUT: solicita o armazenamento de uma p´agina daweb.
POST: em vez de substituir os dados existentes, os novos dados s˜ao
“anexados” a p´agina.
DELETE: remove a p´agina daweb.
HTTP - Linha de Status
Toda solicita¸c˜ao obt´em uma resposta que consiste em uma linha de status e, possivelmente, informa¸c˜oes adicionais (por exemplo, uma p´agina daweb ou parte dela).
A linha de status cont´em um c´odigo destatus de trˆes d´ıgitos. O primeiro d´ıgito ´e usado para dividir as respostas em cinco grupos:
1xx: usadas para obter informa¸c˜oes, raramente s˜ao usados na pr´atica.
2xx: significam que a solicita¸c˜ao foi tratada com sucesso
3xx: informa redirecionamento, o cliente deve procurar em outro lugar.
4xx: significam que a solicita¸c˜ao falhou devido a um erro do cliente, como uma solicita¸c˜ao inv´alida ou uma p´agina inexistente
5xx: significam que o pr´oprio servidor tem um problema, seja causado por um erro em seu c´odigo ou por uma sobrecarga tempor´aria.
HTTP - Exemplo
Este exemplo mostra o uso do comando GET para obter uma imagem no caminho (path) /usr/bin/image1.
A linha pedido mostra o comando GET, o caminho e vers˜ao do protocolo HTTP. O cabe¸calho cont´em duas linhas informando que o cliente aceita imagens no formato GIF e JPEG.
A mensagem de resposta mostra a linha de status e quatro linhas adicionais. A linha de status cont´em a mensagem 200 significando que o pedido foi recebido. As linhas adicionais definem a data, o servidor, a vers˜ao do MIME e o tamanho do documento
Servidoresproxy atuam como intermedi´arios na comunica¸c˜ao entre clientes e servidores. Eles recebem as requisi¸c˜oes de um ou mais clientes e as repassam para os servidores de destino.
Opcionalmente, um servidorproxy pode implementar uma s´erie de outras funcionalidades, tais como a filtragem das requisi¸c˜oes
realizadas pelos clientes e o armazenamento das respostas recebidas dos servidores em umacache.
De modo resumido, podemos dizer que a cache funciona armazenando uma c´opia de todas as respostas recebidas para requisi¸c˜oes de clientes;
HTTP - Proxy
INTERNET
Proxy
Na presen¸ca de um servidorproxy, primeiramente, o cliente, por exemplo HTTP, envia o pedido ao servidorproxy. O servidor verifica no seu cache interno `a procura de respostas anteriores `a solicita¸c˜ao atual.
Se n˜ao houver respostas no cache, o servidorproxy retransmite o pedido ao servidor correspondente na web.
Quando receber a resposta, o proxy HTTP ir´a encaminh´a-la para o cliente, guardando tamb´em uma c´opia em suacache;
No segundo acesso a esta p´agina, oproxy HTTP encontra uma c´opia da p´agina armazenada em suacache, Ele utiliza o mecanismo de GET-Condicional do protocolo HTTP para verificar se a c´opia da p´agina encontrada em seucache est´a atualizada.
HTTP - Proxy
Caso a c´opia existente na cache esteja atualizada, ela ser´a enviada ao cliente diretamente do Proxy, sem a necessidade de solicit´a-la ao servidor de destino original.
Caso a c´opia existente n˜ao esteja atualizada, a p´agina ser´a novamente solicitada ao servidor de destino, e uma nova c´opia ser´a armazenada na cache.
S˜ao vantagens da utiliza¸c˜ao do proxy:
Ganho de velocidade para p´aginas j´a acessadas;
Diminui¸c˜ao de tr´afego nolink com a Internet.
Um dos servi¸cos mais populares na Internet ´e o correio eletrˆonico (e-mail). O correio eletrˆonico ´e usado na transmiss˜ao de uma mensagem que pode incluir: texto, voz, v´ıdeo e gr´afico.
Atualmente, existem duas abordagens para o correio eletrˆonico:
Tradicional: os o sistema de correio eletrˆonico ´e formado por:
Agente de Usu´ario (UA -User Agent): ´e um pacote desoftware (programa) que cria, lˆe, responde, encaminha mensagens e administra as caixas de correio. S˜ao exemplos de UA: Thundebird, Eudora, Outlook, elm e Netscape Messenger;
Servidores de Correio: cont´em uma caixa de correio (mailbox) para cada usu´ario, na qual as mensagens recebidas s˜ao armazenadas.
Webmail: utilizambrowser como agente de leitura das mensagens e o protocolo HTTP para a transferˆencia.
Correio Eletrˆonico
Quando Alice precisa enviar uma mensagem de e-mail para Bob, ela executa um programa UA (Agente Usu´ario) para criar a mensagem e envi´a-la `a caixa de correio de Bob.
A mensagem cont´em os endere¸cos da caixa de correio do remetente e do destinat´ario.
A mensagem, geralmente, precisa ser transmitida pela Internet desde o computador de Alice at´e o computador de Bob. Neste caso, se faz necess´ario que a mensagem seja transferida entre Servidores de Correio, atrav´es de um agente de transferˆencia de e-mail (MTA - Mail Transfer Agent).
Bob pode baixar e ler o conte´udo de sua caixa de correio quando quiser, usando um programa UA.
Endere¸co Eletrˆonico
jose.macedo @ ifrn.edu.br
Endereço da caixa de correios no servidor de e-mail
Domínio do servidor de
Protocolo SMTP (Simple Mail Transfer Protocol) permite ao remetente enviar mensagens ao servidor e permite que os servidores de correio trocarem mensagens entre si.
SMTP
Considerando o correio eletrˆonico na forma tradicional, para enviar mensagens, um sistema de correio eletrˆonico dever´a ter um cliente SMTP e deve haver um servidor SMTP.
O SMTP usa o TCP (porta 25) para transferˆencia confi´avel de mensagens de correio do cliente ao servidor.
O SMTP usa comandos e respostas para transferir mensagens.
Os comandos s˜ao enviados do cliente para o servidor em texto. O STMP padroniza 14 comandos, entre eles:
HELO: para abrir uma sess˜ao com o servidor.
MAIL FROM: identifica remetente da mensagem.
RCTP TO: identifica receptor da mensagem.
DATA: identifica o in´ıcio da mensagem.
QUIT: para a sess˜ao SMTP.
As resposta s˜ao enviadas do servidor para o cliente. Uma mensagem de resposta ´e formada por um c´odigo de status e, opcionalmente, informa¸c˜oes textuais adicionais. S˜ao exemplos de mensagem de resposta:
220: Pronta para o atendimento.
250: Comando completado.
420: Servi¸co indispon´ıvel.
500: Erro de sintaxe.
SMTP
O STMP utiliza trˆes fases de transferˆencia
Estabelecimento: o servidor SMTP espera por clientes que deseja o enviar. O protocolo de aplica¸c˜ao SMTP inicia o comando HELO, seguido da identifica¸c˜ao do cliente (usu´ario e senha), o servidor aceita-o com um c´odigo 250 (OK).
Transferˆencia da mensagem:
Envio do cabe¸calho: transmite-se a identifica¸c˜ao do remetende (MAIL FROM). Depois transmite-se a identifica¸c˜ao de destino (RCPT TO);
Envio do conte´udo da mensagem: o cliente informa ao servidor de que vai enviar a mensagem (DATA).
Fechamento: uma vez enviado todas as mensagens, o cliente pode fechar a conex˜ao mediante o comando QUIT.
O SMTP ´e utilizado para transferir os dados (mensagem) do cliente para o servidor.
Atualmente existem dois principais protocolos para acesso da mensagem (do servidor para o cliente): POP (Post Office Protocol) vers˜ao 3 e IMAP (Internet Mail Access Protocol) vers˜ao 4.
POP3
O acesso `a mensagem inicia com o cliente, quando o usu´ario precisa baixar e-mails de sua caixa de correio instalada no servidor de e-mail.
O cliente abre uma conex˜ao com o servidor na porta TCP 110. Em seguida ele transmite seu login e senha para acessar a caixa de e-mails.
O usu´ario pode, ent˜ao, listar e baixar as mensagens, uma de cada vez.
O POP3 tem dois modos:
Keep: uma c´opia da mensagem permanece na caixa de correio ap´os o download.
Delete: a mensagem ´e apagada da caixa postal logo ap´os cada download.
O IMAP4 tamb´em ´e um protocolo utilizado para ler mensagens de correio eletrˆonico (utiliza a porta TCP 143), por´em apresenta alguns recursos adicionais:
Um usu´ario pode verificar o cabe¸calho de cada e-mail antes de baix´a-lo;
Um usu´ario pode procurar pelo conte´udo de um e-mail antes de baix´a-lo;
Um usu´ario pode baixar parcialmente um e-mail;
Um usu´ario pode criar, eliminar ou renomear caixas de correio no seu servidor de e-mail.
POP3 x IMAP4
No POP3, geralmente, as mensagens ficam armazenadas no servidor at´e que o cliente conecte a ele e fa¸ca odownload das mensagens, liberando assim a caixa de correio para o recebimento de mais mensagens. Isto faz com que a caixa de correio do servidor seja liberada a cada conex˜ao do cliente. Este protocolo ´e mais indicado para quem usa sempre o mesmo computador ou tem um local centralizado para armazenamento (servidor de arquivos).
O IMAP4 ´e mais indicado para pessoas que acessam seus e-mails em varias maquinas diferentes.
1 Alice usa um cliente STMP para compor a mensagem e enviar “para”
2 O cliente STMP dela envia a mensagem para o seu servidor STMP; a mensagem ´e colocada na fila de mensagens.
3 No servidor de Alice, inicia um outro cliente SMTP para abrir uma conex˜ao TCP com o servidor de correio do Bob.
4 O cliente SMTP envia a mensagem SMTP de Alice pela conex˜ao TCP.
5 O servidor de correio de Bob coloca a mensagem na caixa de correio de Bob.
6 Bob invoca um software POP3 ou IMAP4 para ler a mensagem.
Webmail
1 A transferˆencia de mensagens do navegador de Alice para seu servidor de correio eletrˆonico ´e feita por HTTP.
2 A transferˆencia de mensagens do servidor de correio do remetente para o servidor de correio do destinat´ario ainda se d´a por meio do STMP.
3 Finalmente, a mensagem do servidor destinat´ario para o browser de Bob ´e feita por HTTP.
O protocolo de transferˆencia de arquivos FTP (File Transfer
Protocol) ´e o mecanismo padr˜ao oferecido pela Internet para copiar (upload edownload) arquivos de umhost para outro.
A implementa¸c˜ao FTP ´e baseada na arquitetura cliente-servidor.
O protocolo FTP permite a navega¸c˜ao em uma parte da estrutura de diret´orio do servidor remoto para a localiza¸c˜ao do arquivo desejado.
FTP
Em primeiro lugar, o usu´ario fornece o nome do servidor remoto, o que faz com que o processo FTP do cliente estabele¸ca uma conex˜ao TCP com o processo servidor FTP do servidor.
O usu´ario ent˜ao fornece sua identifica¸c˜ao e senha.
Assim que autorizado pelo servidor, o usu´ario copia um ou mais arquivos armazenados no sistema de arquivo local para o sistema de arquivo remoto (ou vice-versa).
O FTP difere de outras aplica¸c˜oes cliente-servidor porque ele estabelece duas conex˜oes TCP entre um cliente e um servidor.
Porta 20: utilizada para a transferˆencia de dados. A conex˜ao de transferˆencia de dados ´e aberta e, em seguida, fechada para cada arquivo transferido.
Porta 21: usada para informa¸c˜oes de controle (comandos e respostas).
A conex˜ao de controle ´e mantida durante toda a intera¸c˜ao entre sess˜oes FTP.
Esta separa¸c˜ao melhora a eficiˆencia do FTP.
FTP
Quando um usu´ario deseja obter arquivos de um servidor remoto, primeiramente ele inicia uma conex˜ao TCP de controle na porta 21 do servidor. Atrav´es de mensagens de controle o cliente envia a sua identifica¸c˜ao e sua senha, al´em de comandos para mudar de diret´orio remoto.
Quando o servidor recebe, pela conex˜ao de controle o comando para uma transferˆencia de arquivo, ele abre uma conex˜ao TCP de dados com o cliente. O servidor FTP envia o arquivo pela conex˜ao de dados e em seguida fecha-a.
Se durante a mesma sess˜ao, o usu´ario quiser transferir outro arquivo, o FTP abrir´a outra conex˜ao de dados. Entretanto, a conex˜ao de controle permanece aberta durante toda a sess˜ao do usu´ario.
Durante uma sess˜ao, o servidor FTP deve manter informa¸c˜oes de estado sobre o usu´ario, ou seja, o servidor monitora os usu´arios.
Assim como o HTTP, o FTP funciona baseado em comandos (do cliente para o servidor) e respostas (do servidor para o cliente). Os comandos e respostas s˜ao enviadas em texto (ASCII de 7 bits) atrav´es da conex˜ao de controle.
Alguns dos comandos mais comuns s˜ao:
user: usado para enviar a identifica¸c˜ao do usu´ario.
pass: usado para enviar a senha do usu´ario.
ls: usado para pedir ao servidor que envie uma lista com todos os arquivos existentes no atual diret´orio remoto.
get: usado para obter um arquivo do servidor remoto.
put: usado para inserir um arquivo no servidor remoto.
quit: finaliza a sess˜ao FTP.
FTP
Cada comando ´e seguido de uma resposta, que ´e enviada do servidor ao cliente. As respostas s˜ao n´umeros de 3 d´ıgitos com uma
mensagem opcional ap´os o n´umero.
Exemplos de algumas respostas t´ıpicas:
331 Nome do usu´ario OK, senha requisitada
125 Conex˜ao de dados j´a aberta: iniciando transferˆencia.
425 N˜ao ´e poss´ıvel abri a conex˜ao de dados.
452 Erro ao escrever o arquivo.
Um host que oferece um servi¸co de FTP podem tamb´em prover acesso ao FTP anˆonimo (para uso p´ublico). Neste caso, os usu´arios normalmente acessar o servi¸co com uma conta “anonymous” quando for solicitado o nome do usu´ario e coloca qualquer senha.
Exerc´ıcios
1. Explique como o protocolo DNS realiza a resolu¸c˜ao de nomes?
2. Por que o HTTP, FTP, SMTP, POP3 e IMAP4 rodam sobre o TCP e n˜ao sobre o UDP?
3. Suponha que vocˆe envie uma mensagem para seu amigo por meio de uma conta de e-mail (como o Hotmail), e que seu amigo acesse seu e-mail por seu servidore de correio usando IMAP4. Descreva como a mensagem sai do seu computador at´e chegar no computador do seu amigo.
4. Considere que uma pessoa queira obter um documentoWeb em um dado URL. Descreva quais protocolos de transporte e de aplica¸c˜ao s˜ao utilizados. Descreva ainda as etapas
necess´arias para esta pessoa obter o documento.
5. Descreva o funcionamento dos protocolos DHCP, HTTP e FTP.
6. Qual a diferen¸ca entre a arquitetura cliente-servidor e a P2P?
7. O que ´e umproxy HTTP?
8. O que ´e URL?