Redes de Computadores - ifrn.edu.brmacedofirmino/files/ensino/2011.2/redesII/... · Redes de...

77
Redes de Computadores Prof. Macˆ edo Firmino Camada de Aplica¸ ao Macˆ edo Firmino (IFRN) Redes de Computadores Outubro de 2011 1 / 77

Transcript of Redes de Computadores - ifrn.edu.brmacedofirmino/files/ensino/2011.2/redesII/... · Redes de...

Redes de Computadores

Prof. Macedo Firmino

Camada de Aplicacao

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 1 / 77

Introducao

Aplicacoes de rede sao a razao de ser de uma rede de computadores.Entre elas estao o correio eletronico, acesso a computadores remotos,transferencia de arquivos, mensagem instantanea, VOIP, jogos emrede e Web.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 2 / 77

Introducao

Exemplos de aplicacoes e protocolos disponıveis para o usuario:

Aplicacoes Protocolos

Protocolos de Suporte DNS, DHCP, SNMP...E-mail STMP, IMAP, POP, ...Web HTTP, HTTPS, ...Compartilhamento de arquivos FTP, TFTP, FTPS, ...Mensagem instantanea MSNMS, Yahoo! Messenger Protocol, IRC, ...Login remoto SSH, VNC, RDP...Texto Telnet, ...Telefonia via Internet Skype protocol, RTP, ...

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 3 / 77

Arquiteturas de Aplicacao

A arquiteturas de aplicacaoespecifica como a aplicacao eorganizada nos sistemas finais.Elas sao projetada pelodesenvolvedor da aplicacao.

Existem basicamente osseguintes tipos de arquitetura:

Cliente-servidor;Peer-to-peer (P2P).Hıbrida (cliente-servidor/P2P)

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 4 / 77

Arquitetura Cliente-Servidor

Servidor:

E um programa que oferece servicos aosclientes.

Quando e inicializado, o programaservidor abre portas de entrada parareceber solicitacoes.

Deve rodar sem interrupcoes, esperandosolicitacoes dos clientes.

Utilizar endereco IP fixo e real e portasconhecidas.

Cliente:

E um programa que solicita os servicosde um servidor.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 5 / 77

Arquitetura P2P

No P2P puro, os sistemas finais comunicam-se diretamente. Ou seja,nao ha um servidor sempre funcionando no centro da aplicacao.

Nesta arquitetura, nenhuma maquina participante precisa estarsempre em funcionamento. Alem disso, um host participante podemudar o seu endereco IP cada vez que for ligado.

Esta arquitetura e utilizada por exemplo em programas decompartilhamento de arquivos (por exemplo, Gnutella).

Porem, alguns programas P2P quase sempre usam um sistema hibrido(por exemplo, o MSN e BitTorrent). Isto e, utilizam servidores pararegistrar os usuarios on-line, registra seu endereco IP, registrararquivos disponıveis, monitorar conversacao, etc.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 6 / 77

Sockets

O socket e uma interface local, criada por aplicacoes, controlada peloSistema Operacional na qual os processos de aplicacao podem tantoenviar quanto receber mensagens de e para outro processo deaplicacao (local ou remoto). Ou seja, e uma porta entre o processode aplicacao e as camadas inferiores.

Tipos de socket:

Stream socket: utilizado com um protocolo orientado a conexao, comoo TCP;Packet socket: utilizado com um protocolo sem conexao, como o UDP;Raw socket: utilizado com o protocolo de rede, como o IP.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 7 / 77

Protocolo DNS

A Internet utiliza o endereco IP para identificar uma entidade na rede.Entretanto, as pessoas preferem usar nomes em vez de enderecosnumeros.

Alem disso, enviar correio eletronico para [email protected] que, se o servidor de correio de macedo alterar o endereco IP,o endereco de correio eletronico de macedo tera de mudar.

Deste modo, foi introduzidos nomes para identificar maquinas,portanto, e necessario algum tipo de mecanismo para converter osnomes em enderecos de rede. Este sistema foi chamado de DNS(Domain Name System).

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 8 / 77

Protocolo DNS

A essencia do DNS e a criacao de um esquema hierarquico deatribuicao de nomes e de um sistema de bancos de dados distribuıdospara implementar esse esquema de nomenclatura.

Para evitar ambiguidades, os nomes atribuıdos as maquinas devem sercuidadosamente selecionado. Pois, os nomes devem ser unicos porqueos enderecos tambem o sao.

O DNS utiliza o protocolo de transporte UDP na porta 53 (ou TCPna porta 53 quando uma resposta for superior a 512 bytes).

Os nomes nao fazem distincao entre letras maiusculas e minusculas.Portanto, “edu”, “Edu” e “EDU” tem o mesmo significado.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 9 / 77

Protocolo DNS

Em um espaco de nomes hierarquico, todo nome e dividido em variasporcoes. A hierarquia do domınio descende da direita para a esquerda.Estas porcoes sao separadas por pontos, por exemplo, ifrn.edu.br;

br: o nome mais a direita e chamado de domınio de nıvelsuperior;

edu: e uma subdivisao do domınio “br” (chamado desubdomınio)

ifrn: e uma subdivisao do domınio “edu.br”

hostname: e o nome do domınio que tem um endereco IP associado.Por exemplo, www.ifrn.edu.br

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 10 / 77

Protocolo DNS

Existem dois tipos de domınios (espacos de nome) de nıvel superior:

Os domınios genericos: “com” (comercial), “edu” (instituicoeseducacionais), “gov” (instituicoes governamentais), “int“ (certasorganizacoes internacionais), “mil” (orgaos das forcas armadas), “net”(provedores de rede), “org” (organizacoes sem fins lucrativos) e etc;Os domınios de paıses: “br” (Brasil), “us” (Estados Unidos), “eu”(Uniao Europeia), “ar” (Argentina) e etc.

com govnetorg br us eucn

com edu

ifrn

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 11 / 77

Protocolo DNS - Servidores Primarios e Secundarios

O DNS define tres tipos de servidores:

Servidor raiz: nao armazena nenhuma informacao sobre os domınios,mas delega sua autoridade a outros servidores, mantendo referencia aesses servidores.Servidor de nome primario: cria, armazena e atualiza arquivos sobre azona para a qual recebeu autoridade. Ele constroi um banco de dados,denominado arquivos de zona, e mantem nele informacoes relativas aoseu domınio.Servidor de nome secundario: e um servidor de backup das informacoesde zona. Ele informa todos os dados sobre uma zona de um outroservidor (primario ou secundario) previamente armazenados.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 12 / 77

Protocolo DNS - Resolvendo Nomes

O DNS e uma aplicacao cliente-servidor. Um host que precisatransformar um nome em endereco IP, ou vice-versa, aciona umaaplicacao cliente DNS chamada resolver.

O resolver faz uma consulta DNS ao servidor de DNS mais proximo.Se este servidor possui o mapeamento, ele entrega a consulta aoresolver. Caso contrario, ele entrega a consulta a outros servidoresDNS para que algum deles resolva o nome em IP ou vice-versa.

A resolucao pode ocorrer de duas formas:

Recursiva.Iterativa.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 13 / 77

Protocolo DNS - Resolvendo Nomes (Recursiva)

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

67

89

10

11

1

12

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 14 / 77

Protocolo DNS - Resolvendo Nomes (Recursiva)

Nesta busca, se o servidor tem autoridade sobre o nome do domıniosolicitado, ele verifica a sua base de dados e responde. Casocontrario, 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. Deoutro modo, ele retransmite a consulta para outro servidor.

Quando a consulta for resolvida, a resposta retorna, ate finalmentechegar ate ao cliente solicitante.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 15 / 77

Protocolo DNS - Resolvendo Nomes (Iterativa)

Cliente Servidor

ifrn.edu.br

Servidor

edu.br

Servidor br

Servidor raiz

Servidor org

Servidor

greenpeace.org

Host

www.greenpeace..org

1

2

34

5 6

7

8

9

10

11 12

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 16 / 77

Protocolo DNS - Resolvendo Nomes (Iterativa)

Se o servidor local tiver autoridade sobre o nome solicitado, eleresponde. Caso nao, o servidor local retorna uma resposta ao clientecontendo o endereco IP de outro servidor DNS que o servidor localacha que talvez tenha condicoes de responder a consulta do cliente.

Assim, o cliente repete a consulta, desta vez perguntando ao servidorDNS sugerido pelo servidor local.

Se o novo servidor puder resolver, o endereco e retornado. Casocontrario, esse servidor envia ao cliente o endereco IP de outroservidor DNS para uma nova pesquisa.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 17 / 77

Protocolo DNS - Resolvendo Nomes (Cache)

Quando um servidor solicita um mapeamento a outro servidor DNS erecebe resposta, ele armazena essa informacao na memoria cache

antes de envia-la ao cliente.

Se o mesmo ou outro cliente solicitar o mesmo mapeamento, esseservidor verifica no cache e resolve o problema.

O mecanismo de cache aumenta a velocidade da resolucao, mas oservidor nao pode armazenar o mapeamento por um longo perıodo detempo, senao o mapeamento ficara desatualizado.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 18 / 77

Protocolo DNS

No Brasil uma organizacao chamada Registro.br detem autoridade sobredomınios .br. Os precos de alguns domınios:

Domınio NOM.BR (pessoa fısica): R$ 30,00 pelo perıodo mınimo de3 anos e R$ 9,00 para cada ano adicionado durante o processo deregistro ou renovacao.

Domınio COM.BR pelo perıodo de 1 ano: R$ 30,00.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 19 / 77

Protocolo DHCP

O Protocolo DHCP (Dynamic Host Configuration Protocol) e umprotocolo da camada de aplicacao que oferece configuracao dinamicade informacoes da rede, por exemplo:

Enderecos IP de host;Mascara da rede;Endereco do Roteador (Gateway) da rede;Enderecos dos servidores de nome (DNS) da rede.

O DHCP usa um modelo cliente-servidor, no qual o servidor DHCPmantem o gerenciamento centralizado das informacoes da rede.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 20 / 77

Protocolo DHCP

Dependendo da implementacao o servidor DHCP oferece dois tipos dealocacao de enderecos IP (banco de dados):

Manual: e associado o endereco MAC do cliente e um endereco IP. Porconseguinte, apenas os clientes cujo MAC consta nesta lista poderaoreceber os enderecos IPs reservados para eles;Automatica: o cliente obtem um endereco de um espaco de enderecospossıveis, especificado pelo administrador.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 21 / 77

Protocolo DHCP

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 IP00: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.254Servidor DNS 192.168.0.253Máscara da rede 255.255.255.0

As informações da rede

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 22 / 77

Protocolo DHCP

Quando um cliente DHCP envia uma solicitacao em broadcast. Oservidor DHCP ira receber e verificar a sua base de dados estatica. Sehouver algum registro estatico correspondente ao endereco MAC docliente, o seu endereco IP e informado ao cliente. Por outro lado, senao houver registro na base de dados estatica, o servidor seleciona umendereco IP no conjunto de enderecos e atribui este endereco aocliente.

Os enderecos da atribuicao automatica sao temporarios. Quando aconcessao expirar, o cliente deve liberar o endereco IP concedido ourenovar a concessao.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 23 / 77

Protocolo DHCP

Um cliente DHCP pode passar por seis estados de aquisicao:

Inicializacao

Seleciona

Solicita

Ligacao

Renova

Religacao

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 24 / 77

Protocolo DHCP

DHCPDiscover (Broadcast)

DHCPOffer

DHCPRequest (Broadcast)

DHCPACK

DHCPRequest

DHCPACK

Tempo Tempo

Inicialização

Seleção

Solicitação

Ligação

Renovação

.

.

.

Cliente Servidor DHCP

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 25 / 77

Protocolo DHCP - Inicializacao

Quando um cliente inicializa pela primeira vez (boot), ele difundeuma mensagem em broadcast (255.255.255.255) a fim de adquirir asconfiguracoes de inicializacao na rede.

Esta mensagem e chamada DHCPDISCOVER. Neste mensagem oendereco IP do cliente (origem) e um endereco reservado (0.0.0.0).

O DHCPDISCOVER e enviado em um datagrama UDP, porta deorigem 68 para a porta de destino 67. Apos o envio dessa mensagem,o cliente passa para o estado Seleciona.

Nesta mensagem vai o endereco MAC e o nome do host.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 26 / 77

Protocolo DHCP - Selecao

Neste estado, o cliente permanece aguardando a resposta dosservidores DHCP que receberam o DHCPDISCOVER. Aquelesservidores que estiverem configurados para responder, enviam aocliente uma mensagem DHCPOFFER.

Nesta mensagem, estao embutidas as informacoes necessarias para aconfiguracao do cliente:

Um endereco IP,O endereco do seu gateway,A sua mascara da rede,O nome do domınio DNS da rede,Enderecos de servidores de DNS eO tempo de emprestimo do endereco IP.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 27 / 77

Protocolo DHCP - Selecao

Apos o recebimento de todas as mensagens enviadas pelos servidores,o cliente ira optar por uma e entrara em negociacao de locacao com oservidor ofertante.

Para iniciar a negociacao, o cliente envia a mensagemDHCPREQUEST ainda em broadcast, solicitando um determinadoendereco IP (ter acesso a rede). Neste momento, ele entra no estadoSolicita.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 28 / 77

Protocolo DHCP - Solicitacao

Aqui, o cliente aguarda uma resposta de confirmacao do servidorDHCP que ele entrou em negociacao. Essa confirmacao e remetidaatraves da mensagem DHCPACK. Com o recebimento daconfirmacao, o cliente passa a ter um endereco IP e utiliza-lo, bemcomo todas as outras informacoes de configuracao que foramenviadas pelo servidor e entra no estado Ligacao.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 29 / 77

Protocolo DHCP - Ligacao

Este e o estado em que permanece o cliente durante a utilizacao doendereco IP ate que atinja o perıodo de renovacao ou ele decida naomais utilizar o endereco locado.

Para este ultimo caso, onde o cliente nao espera o termino do prazoda locacao, ele envia uma mensagem DHCPRELEASE para oservidor, a fim de provocar a liberacao do endereco IP locado. Destaforma, o cliente nao mais podera enviar datagramas IP utilizando-sedo endereco que possuıa e passa para o estado de Inicializacao.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 30 / 77

Protocolo DHCP - Renova

Ao receber um DHCPACK, o cliente adquire a informacao do perıodode locacao do endereco. De posse dessa informacao, ele inicializa trestemporizadores. Eles sao utilizados para controlar os perıodos derenovacao, revinculacao e do fim da locacao.

O servidor pode especificar o valor de cada temporizador.

Quando o temporizador ultrapassa o valor da renovacao, o clientetentara renovar a locacao. Para isso, ele faz uso novamente doDHCREQUEST ao servidor. Assim, ele passa para o estado Renova eaguarda a resposta. Na mensagem, segue embutido o endereco IPatual do cliente e uma solicitacao de extensao da locacao do mesmo.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 31 / 77

Protocolo DHCP - Renova

O cliente permanecera no estado de renovacao ate que aconteca umdos eventos:

O servidor envia um DHCPACK ao cliente. O recebimento dessamensagem faz com que o cliente retorne ao estado Ligacao.O cliente nao receba nenhuma resposta do servidor. Neste caso ocliente vai para o estado de religacao.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 32 / 77

Protocolo DHCP - Religacao

O cliente permanece neste estado ate:

O cliente receber uma mensagem DHCPACK. Neste caso o cliente iraresetar o seu timer e ira para o estado de Ligacao.

O cliente receber um DHCPNACK. Nesta mensagem o servidorinforma que nao podera conseder o endereco IP ao cliente.

O tempo de concessao do endereco IP expirar.

Nos dois ultimos casos o cliente ira retornar para o estado de ligacao.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 33 / 77

Servico Web

A World Wide Web (WWW) e um sistema de armazenamento edistribuicao de documentos hipermıdia espalhados por minhoes demaquinas na Internet. Os documentos podem estar na forma devıdeos, sons, hipertextos e figuras.

Para visualizar a informacao, pode-se usar um programa decomputador chamado navegador (chamados browser) para obterinformacoes de servidores Web e mostra-los na tela do usuario.

A Web teve inıcio em 1989 no CERN, o centro europeu para pesquisanuclear (Suıca). O criador foi um fısico do CERN, chamado TimBerners-Lee.

A Web nasceu da necessidade de fazer com que grupos de cientistasde diferentes nacionalidades pudessem colaborar uns com os outros.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 34 / 77

Servico Web

A Web e formada pelos componentes:Clientes (browser): Firefox, Internet Explorer, Google Chrome, ...Servidor: Apache, IIS, ...Protocolo de comunicacao: HTTP, FTP, ...Pagina web: HTML, XHTML, ...

Cliente Servidor Web Servidor Web

Solicitação

Página Web

Solicitação

Página Web

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 35 / 77

Servico Web

Na Web as paginas sao nomeadas com o uso de um padrao chamadoURLs (Uniform Resource Locators).

A URL e formada por:

Protocolo: define o protocolo de aplicacao usado na obtencao dodocumento (por exemplo, HTTP e FTP).Host: e o computador onde as informacoes estao localizadas.Porta: e utilizado para identificar o programa servidor Web, usualmenteporta 80. Este campo e opcional.Caminho (path): inidica como encontrar um arquivo onde a informacaodesejada esta localizada.

Protocolo :// Host Porta Caminho: /

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 36 / 77

Servico Web

Quando um usuario clica em um hiperlink, o navegador executa umaserie de etapas em ordem para buscar a pagina indicada. Porexemplo, suponha que um usuario deseje acessar a paginahttp://www.ifrn.edu.br/alunos.

1 O navegador pergunta ao DNS qual e o endereco IP dewww.ifrn.edu.br.

2 O DNS responde com 200.137.2.120.3 O navegador estabelece uma conexao TCP com a porta 80 em

200.137.2.120.4 Em seguida, o navegador envia um comando solicitando o arquivo

/alunos.5 O servidor www.ifrn.edu.br envia o arquivo /alunos.html6 O navegador busca todas as imagens e informacoes que o arquivo

contem.7 A conexao TCP e encerrada.8 O navegador exibe o arquivo /alunos.html.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 37 / 77

Servico Web

Os documentos na WWW podem ser agrupados em tres categorias:

Estaticos: sao apenas arquivos que ficam armazenados em algumservidor esperando o momento de serem recuperados. O cliente tempermissao somente para realizar uma copia do documento.Dinamicos: sao documentos que nao existe um formato predefinido, ouseja, eles sao gerado por demanda. Quando chega um pedido, oservidor roda uma aplicacao que ira gerar o domumentodinamicamente.Ativos: tambem e criado uma pagina dinamica por demanda, noentando a criacao ocorre no computador cliente. Isto permite a paginainteragir diretamente com os usuarios (por exemplo, responder amovimentos do mouse).

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 38 / 77

Servico Web - Estatico

Atualmente, as paginas da Web sao escritas em uma linguagemdenominada HTML (HyperText Markup Language). A HTMLpermite que os usuarios produzam paginas da Web que incluem texto,graficos e ponteiros para outras paginas da web.

A HTML e uma linguagem de marcacao, ou seja, uma linguagempara descrever como os documentos devem ser formatados.

Cliente Servidor Web

Solicitação

Página HTML estática

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 39 / 77

Servico Web - Dinamico

Um CGI (Comum Gateway Interface) e um conjunto de padroes quedefine como um documento dinamico deve ser escrito. Ele permitirque servidores da Web se comuniquem com programas (por exemplo,Perl e Python) para gerar paginas HTML.

Cliente Servidor Web

Solicitação

Página HTML dinâmica

Programaque irá gerar

a página

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 40 / 77

Servico Web - Dinamico

Os scripts da CGI nao sao a unica maneira de gerar conteudodinamico no lado servidor. Outra forma comum e incorporarpequenos scripts (por exemplo, PHP, JSP e ASP) em paginas HTMLe fazer com que eles sejam executados pelo proprio servidor para gerara pagina.

Cliente Servidor Web

Solicitação

Página HTML dinâmico Programa (script)

O programa está dentro do próprio

HTML

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 41 / 77

Servico Web - Ativos

Documentos ativos tambem sao chamados de dinamicos do ladocliente.A linguagem de scripts mais popular para o lado cliente e oJavaScript. A figura abaixo ilustra o processo de criacao de umapagina contendo JavaScript.

Cliente Servidor Web

Solicitação

Página HTML com script Programa (script)

Programa queirá gerar a

página

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 42 / 77

HTTP

Um dos protocolo mais utilizados na World Wide Web e o HTTP(HyperText Transfer Protocol). Ele especifica as mensagens que osclientes podem enviar aos servidores e que respostas eles receberao.

O HTTP usa os servidor do TCP na porta 80. A vantagem de se usaro TCP e que nem os navegadores nem os servidores tem de sepreocupar com mensagens perdidas, mensagens duplicadas,mensagens longas ou confirmacoes.

A ideia do HTTP e muito simples. Um cliente envia um pedido, naforma de uma mensagem, ao servidor. O servidor envia uma resposta,tambem na forma de mensagem, ao cliente.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 43 / 77

HTTP

A partir do HTTP versao 1.1 e utilizado conexoes persistentes. Comelas, e possıvel estabelecer uma conexao TCP, enviar uma solicitacaoe obter uma resposta, e depois enviar solicitacoes adicionais e receberrespostas adicionais;

O HTTP e um protocolo sem estado (stateless), isto e, nao se“lembra” dos pedidos anteriores.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 44 / 77

HTTP

O cliente inicia a transacao enviando uma mensagem de solicitacao(um pedido). Em seguida, o servidor responde enviando a mensagemresposta.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 45 / 77

HTTP - Metodos

Metodos, ou comandos, sao tipos de pedidos de solicitacao que umcliente enviada a um servidor. Sao exemplos de metodos HTTP:

GET: solicita ao servidor que envie a pagina.HEAD: solicita apenas o cabecalho da mensagem, sem a paginapropriamente dita. Esse metodo pode ser usado para se obter a datada ultima modificacao feita na pagina ou apenas para testar a validadede um URL.PUT: solicita o armazenamento de uma pagina da web.POST: em vez de substituir os dados existentes, os novos dados sao“anexados” a pagina.DELETE: remove a pagina da web.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 46 / 77

HTTP - Linha de Status

Toda solicitacao obtem uma resposta que consiste em uma linha destatus e, possivelmente, informacoes adicionais (por exemplo, umapagina da web ou parte dela).

A linha de status contem um codigo de status de tres dıgitos. Oprimeiro dıgito e usado para dividir as respostas em cinco grupos:

1xx: usadas para obter informacoes, raramente sao usados na pratica.2xx: significam que a solicitacao foi tratada com sucesso3xx: informa redirecionamento, o cliente deve procurar em outro lugar.4xx: significam que a solicitacao falhou devido a um erro do cliente,como uma solicitacao invalida ou uma pagina inexistente5xx: significam que o proprio servidor tem um problema, seja causadopor um erro em seu codigo ou por uma sobrecarga temporaria.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 47 / 77

HTTP - Exemplo

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 48 / 77

HTTP - Exemplo

Este exemplo mostra o uso do comando GET para obter uma imagemno caminho (path) /usr/bin/image1.

A linha pedido mostra o comando GET, o caminho e versao doprotocolo HTTP. O cabecalho contem duas linhas informando que ocliente aceita imagens no formato GIF e JPEG.

A mensagem de resposta mostra a linha de status e quatro linhasadicionais. A linha de status contem a mensagem 200 significandoque o pedido foi recebido. As linhas adicionais definem a data, oservidor, a versao do MIME e o tamanho do documento

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 49 / 77

HTTP - Proxy

Servidores proxy atuam como intermediarios na comunicacao entreclientes e servidores. Eles recebem as requisicoes de um ou maisclientes e as repassam para os servidores de destino.

Opcionalmente, um servidor proxy pode implementar uma serie deoutras funcionalidades, tais como a filtragem das requisicoesrealizadas pelos clientes e o armazenamento das respostas recebidasdos servidores em uma cache.

De modo resumido, podemos dizer que a cache funcionaarmazenando uma copia de todas as respostas recebidas pararequisicoes de clientes;

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 50 / 77

HTTP - Proxy

INTERNET

Proxy

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 51 / 77

HTTP - Proxy

Na presenca de um servidor proxy, primeiramente, o cliente, porexemplo HTTP, envia o pedido ao servidor proxy. O servidor verificano seu cache interno a procura de respostas anteriores a solicitacaoatual.

Se nao houver respostas no cache, o servidor proxy retransmite opedido ao servidor correspondente na web.

Quando receber a resposta, o proxy HTTP ira encaminha-la para ocliente, guardando tambem uma copia em sua cache;

No segundo acesso a esta pagina, o proxy HTTP encontra uma copiada pagina armazenada em sua cache, Ele utiliza o mecanismo deGET-Condicional do protocolo HTTP para verificar se a copia dapagina encontrada em seu cache esta atualizada.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 52 / 77

HTTP - Proxy

Caso a copia existente na cache esteja atualizada, ela sera enviada aocliente diretamente do Proxy, sem a necessidade de solicita-la aoservidor de destino original.

Caso a copia existente nao esteja atualizada, a pagina sera novamentesolicitada ao servidor de destino, e uma nova copia sera armazenadana cache.

Sao vantagens da utilizacao do proxy :

Ganho de velocidade para paginas ja acessadas;Diminuicao de trafego no link com a Internet.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 53 / 77

Correio Eletronico

Um dos servicos mais populares na Internet e o correio eletronico(e-mail). O correio eletronico e usado na transmissao de umamensagem que pode incluir: texto, voz, vıdeo e grafico.

A arquitetura geral de um sistema de correio eletronico e formadopor:

Agente de Usuario (UA - User Agent): e um pacote de software

(programa) que cria, le, responde, encaminha mensagens e administraas caixas de correio. Sao exemplos de UA: Thundebird, Eudora,Outlook, elm e Netscape Messenger;Servidores de Correio: contem uma caixa de correio (mailbox) paracada usuario, na qual as mensagens recebidas sao armazenadas.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 54 / 77

Correio Eletronico

Atualmente, existem duas abordagens para o correio eletronico:Tradicional: os UA sao programas instalados nos computadores dosusuarios. Estes programas utilizam protocolos para enviar e receber asmensagens;Webmail : utilizam browser como agente de leitura das mensagens e oprotocolo HTTP para a transferencia.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 55 / 77

Correio Eletronico - Tradicional

Quando Alice precisa enviar uma mensagem de e-mail para Bob, elaexecuta um programa UA (Agente Usuario) para criar a mensagem eenvia-la a caixa de correio de Bob.

A mensagem contem os enderecos da caixa de correio do remetente edo destinatario.

A mensagem, geralmente, precisa ser transmitida pela Internet desdeo computador de Alice ate o computador de Bob. Neste caso, se faznecessario que a mensagem seja transferida entre Servidores deCorreio, atraves de um agente de transferencia de e-mail (MTA - Mail

Transfer Agent).

Bob pode baixar e ler o conteudo de sua caixa de correio quandoquiser, usando um programa UA.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 56 / 77

Endereco Eletronico

jose.macedo @ ifrn.edu.br

Endereço da

caixa de correios

no servidor de e-mail

Domínio do

servidor de

e-mail

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 57 / 77

SMTP

Protocolo SMTP (Simple Mail Transfer Protocol) permite aoremetente enviar mensagens ao servidor e permite que os servidoresde correio trocarem mensagens entre si.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 58 / 77

SMTP

Considerando o correio eletronico na forma tradicional, para enviarmensagens, um sistema de correio eletronico devera ter um clienteSMTP e deve haver um servidor SMTP.

O SMTP usa o TCP (porta 25) para transferencia confiavel demensagens de correio do cliente ao servidor.

O SMTP usa comandos e respostas para transferir mensagens.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 59 / 77

SMTP

Os comandos sao enviados do cliente para o servidor em texto. OSTMP padroniza 14 comandos, entre eles:

HELO: para abrir uma sessao 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 sessao SMTP.

As resposta sao enviadas do servidor para o cliente. Uma mensagemde resposta e formada por um codigo de status e, opcionalmente,informacoes textuais adicionais. Sao exemplos de mensagem deresposta:

220: Pronta para o atendimento.250: Comando completado.420: Servico indisponıvel.500: Erro de sintaxe.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 60 / 77

SMTP

O STMP utiliza tres fases de transferencia

Estabelecimento: o servidor SMTP espera por clientes que deseja oenviar. O protocolo de aplicacao SMTP inicia o comando HELO,seguido da identificacao do cliente (usuario e senha), o servidoraceita-o com um codigo 250 (OK).

Transferencia da mensagem:

Envio do cabecalho: transmite-se a identificacao do remetende (MAILFROM). Depois transmite-se a identificacao de destino (RCPT TO);Envio do conteudo da mensagem: o cliente informa ao servidor de quevai enviar a mensagem (DATA).

Fechamento: uma vez enviado todas as mensagens, o cliente podefechar a conexao mediante o comando QUIT.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 61 / 77

SMTP - Exemplo de Utilizacao do SMTP (Apos

estabelecida a conexao)

Servidor: 220 ifrn.edu.brCliente: HELO ifrn.edu.brServidor: 250 OKCliente: MAIL FROM: <[email protected]>Servidor: 250 OKCliente: RCPT TO: <[email protected]>

Servidor: 250 OKCliente: DATAServidor: 354 Enter mail, end with “.” on a line by itselfCliente: Ola macedo,tudo bem ?Cliente: .Servidor: 250 OKCliente: QUITServidor: 221 closing connection

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 62 / 77

Agente de Acesso a Mensagem

O SMTP e utilizado para transferir os dados (mensagem) do clientepara o servidor.

Atualmente existem dois principais protocolos para acesso damensagem (do servidor para o cliente): POP (Post Office Protocol)versao 3 e IMAP (Internet Mail Access Protocol) versao 4.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 63 / 77

POP3

O acesso a mensagem inicia com o cliente, quando o usuario precisabaixar e-mails de sua caixa de correio instalada no servidor de e-mail.

O cliente abre uma conexao com o servidor na porta TCP 110. Emseguida ele transmite seu login e senha para acessar a caixa de e-mails.O usuario pode, entao, listar e baixar as mensagens, uma de cada vez.

O POP3 tem dois modos:

Keep: uma copia da mensagem permanece na caixa de correio apos odownload.Delete: a mensagem e apagada da caixa postal logo apos cadadownload.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 64 / 77

IMAP4

O IMAP4 tambem e um protocolo utilizado para ler mensagens decorreio eletronico (utiliza a porta TCP 143), porem apresenta algunsrecursos adicionais:

Um usuario pode verificar o cabecalho de cada e-mail antes de baixa-lo;Um usuario pode procurar pelo conteudo de um e-mail antes debaixa-lo;Um usuario pode baixar parcialmente um e-mail;Um usuario pode criar, eliminar ou renomear caixas de correio no seuservidor de e-mail.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 65 / 77

POP3 x IMAP4

No POP3, geralmente, as mensagens ficam armazenadas no servidorate que o cliente conecte a ele e faca o download das mensagens,liberando assim a caixa de correio para o recebimento de maismensagens. Isto faz com que a caixa de correio do servidor sejaliberada a cada conexao do cliente. Este protocolo e mais indicadopara quem usa sempre o mesmo computador ou tem um localcentralizado para armazenamento (servidor de arquivos).

O IMAP4 e mais indicado para pessoas que acessam seus e-mails emvarias maquinas diferentes.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 66 / 77

Envio de Mensagens

1 Alice usa um cliente STMP para compor a mensagem e enviar “para”[email protected]

2 O cliente STMP dela envia a mensagem para o seu servidor STMP; amensagem e colocada na fila de mensagens.

3 No servidor de Alice, inicia um outro cliente SMTP para abrir umaconexao TCP com o servidor de correio do Bob.

4 O cliente SMTP envia a mensagem SMTP de Alice pela conexaoTCP.

5 O servidor de correio de Bob coloca a mensagem na caixa de correiode Bob.

6 Bob invoca um software POP3 ou IMAP4 para ler a mensagem.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 67 / 77

Webmail

1 A transferencia de mensagens do navegador de Alice para seu servidorde correio eletronico e feita por HTTP.

2 A transferencia de mensagens do servidor de correio do remetente parao servidor de correio do destinatario ainda se da por meio do STMP.

3 Finalmente, a mensagem do servidor destinatario para o browser deBob e feita por HTTP.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 68 / 77

FTP

O protocolo de transferencia de arquivos FTP (File Transfer

Protocol) e o mecanismo padrao oferecido pela Internet para copiar(upload e download) arquivos de um host para outro.

A implementacao FTP e baseada na arquitetura cliente-servidor.

O protocolo FTP permite a navegacao em uma parte da estrutura dediretorio do servidor remoto para a localizacao do arquivo desejado.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 69 / 77

FTP

Em primeiro lugar, o usuario fornece o nome do servidor remoto, oque faz com que o processo FTP do cliente estabeleca uma conexaoTCP com o processo servidor FTP do servidor.

O usuario entao fornece sua identificacao e senha.

Assim que autorizado pelo servidor, o usuario copia um ou maisarquivos armazenados no sistema de arquivo local para o sistema dearquivo remoto (ou vice-versa).

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 70 / 77

FTP

O FTP difere de outras aplicacoes cliente-servidor porque eleestabelece duas conexoes TCP entre um cliente e um servidor.

Porta 20: utilizada para a transferencia de dados. A conexao detransferencia de dados e aberta e, em seguida, fechada para cadaarquivo transferido.Porta 21: usada para informacoes de controle (comandos e respostas).A conexao de controle e mantida durante toda a interacao entresessoes FTP.

Esta separacao melhora a eficiencia do FTP.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 71 / 77

FTP

Quando um usuario deseja obter arquivos de um servidor remoto,primeiramente ele inicia uma conexao TCP de controle na porta 21do servidor. Atraves de mensagens de controle o cliente envia a suaidentificacao e sua senha, alem de comandos para mudar de diretorioremoto.

Quando o servidor recebe, pela conexao de controle o comando parauma transferencia de arquivo, ele abre uma conexao TCP de dadoscom o cliente. O servidor FTP envia o arquivo pela conexao de dadose em seguida fecha-a.

Se durante a mesma sessao, o usuario quiser transferir outro arquivo,o FTP abrira outra conexao de dados. Entretanto, a conexao decontrole permanece aberta durante toda a sessao do usuario.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 72 / 77

FTP

Durante uma sessao, o servidor FTP deve manter informacoes deestado sobre o usuario, ou seja, o servidor monitora os usuarios.

Assim como o HTTP, o FTP funciona baseado em comandos (docliente para o servidor) e respostas (do servidor para o cliente). Oscomandos e respostas sao enviadas em texto (ASCII de 7 bits) atravesda conexao de controle.Alguns dos comandos mais comuns sao:

user: usado para enviar a identificacao do usuario.pass: usado para enviar a senha do usuario.ls: usado para pedir ao servidor que envie uma lista com todos osarquivos existentes no atual diretorio remoto.get: usado para obter um arquivo do servidor remoto.put: usado para inserir um arquivo no servidor remoto.quit: finaliza a sessao FTP.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 73 / 77

FTP

Cada comando e seguido de uma resposta, que e enviada do servidorao cliente. As respostas sao numeros de 3 dıgitos com umamensagem opcional apos o numero.

Exemplos de algumas respostas tıpicas:

331 Nome do usuario OK, senha requisitada125 Conexao de dados ja aberta: iniciando transferencia.425 Nao e possıvel abri a conexao de dados.452 Erro ao escrever o arquivo.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 74 / 77

Anonymous FTP

Um host que oferece um servico de FTP podem tambem proveracesso ao FTP anonimo (para uso publico). Neste caso, os usuariosnormalmente acessar o servico com uma conta “anonymous” quandofor solicitado o nome do usuario e coloca qualquer senha.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 75 / 77

Exercıcios

1. Explique como o protocolo DNS realiza a resolucao denomes?

2. Por que o HTTP, FTP, SMTP, POP3 e IMAP4 rodam sobreo TCP e nao sobre o UDP?

3. Suponha que voce envie uma mensagem para seu amigo pormeio de uma conta de e-mail (como o Hotmail), e que seuamigo acesse seu e-mail por seu servidore de correio usandoIMAP4. Descreva como a mensagem sai do seu computadorate chegar no computador do seu amigo.

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 76 / 77

Exercıcios

4. Considere que uma pessoa queira obter um documento Web

em um dado URL. Descreva quais protocolos de transporte ede aplicacao sao utilizados. Descreva ainda as etapasnecessarias para esta pessoa obter o documento.

5. Descreva o funcionamento dos protocolos DHCP, HTTP eFTP.

6. Qual a diferenca entre a arquitetura cliente-servidor e a P2P?

7. O que e um proxy HTTP?

8. O que e URL?

Macedo Firmino (IFRN) Redes de Computadores Outubro de 2011 77 / 77