Você está na página 1de 32

Redes de Computadores

03 – Protocolos de Aplicação

Prof. Edson J. C. Gimenez


soned@inatel.br

2022/Sem2
2

Referências:
 Kurose & Ross. Redes de Computadores e a
Internet: uma abordagem top-down. Capítulo 2.
Outras referências:
 Comer. Interligação de Redes com TCP/IP, Volume 1. Capítulo 27.
 Tanenbaum & Wetherall. Redes de Computadores. Capítulo 7.
 Farrel. A Internet e seu Protocolos: uma Análise Comparativa.
Capítulo 12.
 Cisco/CCNA1v7 – Introduction to Networks (ITN).
Protocolos de Aplicação 3

 Definem como os processos de uma aplicação, em sistemas finais


diferentes, trocam mensagens entre si, estabelecendo:
 Os tipos de mensagens trocadas.
 A sintaxe dessas mensagens.
 Regras para envio e resposta dessas mensagens.
 Exemplos:
Serviço de diretório na Internet 4

DNS (Domain Name System).


 Há duas maneiras de identificar um hospedeiro:
 um nome de hospedeiro  inatel.br
 um endereço IP – 131.221.240.56
 Para conciliar isso, é necessário um serviço de diretório que traduza
nomes de hospedeiro para endereços IP. Esta é a tarefa principal
do DNS.
 Assim, pode ser visto como:
1) Um banco de dados distribuído, executado em uma hierarquia
de servidores.
2) Um protocolo de camada de aplicação que permite que
hospedeiros consultem esse banco de dados distribuído.
 Foi definido inicialmente em 1983 (RFCs 881, 882 e 883), atualizado
em 1987 (RFCs 1034 e 1035), além de diversas complementações.
 Faz uso da porta UDP 53.
Serviço de diretório na Internet 5

Servidores DNS raiz.


 Na Internet há 13 servidores DNS raiz, a maior parte deles
localizados na América do Norte.
 Na realidade, cada um é um conglomerado de servidores
replicados, para fins de segurança e confiabilidade.

Kurose & Ross


Serviço de diretório na Internet 6

Servidores DNS de Domínio de Alto Nível (TLD).


 Responsáveis por domínios de alto nível (com, org, net, edu, gov), e
por todos os domínios de alto nível de países (uk, fr, br, etc.)
Servidores DNS autoritativos.
 Responsáveis por abrigar os registros DNS acessíveis publicamente
de uma organização. Uma organização pode executar seu próprio
DNS autoritativo ou pagar para armazená-los em um servidor DNS
autoritativo de algum provedor de serviço.
Exemplo hierarquia de servidores DNS:
Kurose & Ross
Serviço de diretório na Internet 7

Operação básica: cis.poly.edu deseja


obter o end. IP de gaia.umas.edu:
(1) cis.poly.edu consulta seu servidor
local (dns.poly.edu).
(2) dns.poly.edu consulta o servidor
raiz, que (3) retorna uma lista de
servidores TLD responsáveis por .edu.
(4) dns.poly.edu consulta um servidor
TLD responsável por .edu, que (5)
retorna o endereço IP de um servidor
autoritativo do sufixo umas.edu.
(6) dns.poly.edu consulta o servidor
dns.umas.edu, que (7) responde com
o endereço IP de gaia.cs.umas.edu.
(8) dns.poly.edu envia ao cis.poly.edu
o endereço IP solicitado, e armazena
uma cópia para futuras solicitações.

Kurose & Ross


Serviço de diretório na Internet 8

Cache DNS
 Melhora o desempenho quanto ao atraso e reduz o número de
mensagens DNS pela Internet.
 Toda vez que o servidor DNS local dns.poly.edu recebe uma
resposta de algum servidor DNS, pode fazer cache de qualquer
informação contida na resposta.
 Se um par nome de hospedeiro / endereço IP estiver em seu
cache, e outra consulta chegar para o mesmo nome de hospedeiro,
o servidor DNS poderá fornecer o endereço IP desejado, mesmo
que não tenha autoridade para esse nome.
HTTP (HyperText Transfer Protocol) 9

 Protocolo de Transferência de Hipertexto.


 Protocolo padrão para comunicação Web.
 HTTP/1.0 (RFC 1945, May/1996)
 HTTP/1.1 (RFC 2616, Jun/1999).

 Define como as páginas Web são requisitadas pelos clientes e


enviadas pelos servidores.
 Em geral, as páginas Web são constituídas de um arquivo-base HTML
e diversos objetos referenciados.
 Cada objeto é um arquivo, tal como arquivo html, imagem jpeg, arquivo
de vídeo, etc., que se pode acessar com um único URL.
 URL = Uniform Resource Locator
 Cada URL tem dois componentes básicos: o nome de hospedeiro
(hostname) do servidor que abriga o objeto e o nome do caminho do
objeto.
 http://www.someschool.edu/somedepartment/picture.gif
 http://cisco.com/index.html
HTTP (HyperText Transfer Protocol) 10

Exemplo: URL http://cisco.com/index.html


 Etapa 1: O navegador interpreta as três partes da URL: http (o
protocolo), www.cisco.com (o nome do servidor) e index.html (o
nome do arquivo específico solicitado)

 Etapa 2: O navegador então verifica com um servidor de nomes


para converter www.cisco.com em um endereço IP numérico,
usado para conectar-se ao servidor. O cliente então inicia uma
solicitação HTTP para um servidor enviando uma solicitação GET
para o servidor e solicita o arquivo index.html.

Cisco/CCNA1v7
HTTP (HyperText Transfer Protocol) 11

Exemplo: URL http://cisco.com/index.html


 Etapa 3: Em resposta à solicitação, o servidor envia o código HTML
para esta página da Web para o navegador.

Cisco/CCNA1v7
HTTP (HyperText Transfer Protocol) 12

Exemplo: URL http://cisco.com/index.html


 Etapa 4: O navegador decifra o código HTML e formata a página da
janela do navegador.

Cisco/CCNA1v7
HTTP (HyperText Transfer Protocol) 13

 Utiliza o TCP como seu protocolo de transporte.


 Trabalha no modo cliente / servidor.
 Cliente envia requisições, servidor responde às requisições

Kurose & Ross


HTTP (HyperText Transfer Protocol) 14

Requisição/Resposta HTTP
 Conexões não persistentes:
 Cada par de requisição/resposta deve ser enviado por uma conexão
TCP distinta
 No máximo um objeto é enviado em cada conexão TCP.
 HTTP1.0
 Conexões persistentes:
 Todas as requisições e suas respostas são enviadas por uma
mesma conexão TCP.
 Múltiplos objetos podem ser enviados em uma única conexão.
 HTTP1.1
HTTP (HyperText Transfer Protocol) 15

Requisição/Resposta HTTP
Conexões não persistentes Conexões persistentes

Adaptado: Tanenbaum & Wetherall


HTTP com conexões não persistentes 16

Ex.: supondo uma página com 01 arquivo-base HTML e 10 imagens JPEG


1. O processo cliente HTTP inicia uma conexão TCP para o servidor
www.someschool.edu na porta numero 80. Associados à conexão TCP,
haverá um socket no cliente e um socket no servidor.
2. O cliente HTTP envia uma mensagem de requisição HTTP ao servidor por
meio de seu socket. Essa mensagem inclui o nome de caminho
/someDepartment/home.index.
3. O processo servidor HTTP recebe a mensagem de requisição por meio de
seu socket, extrai o objeto /someDepartment/home.index de seu
armazenamento (RAM ou disco), encapsula-o em uma mensagem de
resposta HTTP e a envia ao cliente pelo socket.
4. O processo servidor HTTP ordena ao TCP que encerre a conexão TCP.
5. O cliente HTTP recebe a mensagem de resposta e a conexão TCP é
encerrada. A mensagem indica que o objeto encapsulado é um arquivo
HTML. O cliente extrai o arquivo da mensagem de resposta, analisa o
arquivo HTML e encontra referencias aos dez objetos JPEG.
6. As etapas são repetidas para cada um dos objetos JPEG referenciados.
 Abre conexão / requisita objeto / recebe objeto / fecha conexão.
HTTP com conexões persistentes 17

Ex.: supondo uma página com 01 arquivo-base HTML e 10 imagens JPEG


1. O processo cliente HTTP inicia uma conexão TCP para o servidor
www.someSchool.edu na porta numero 80. Associados à conexão TCP,
haverá um socket no cliente e um socket no servidor.
2. O cliente HTTP envia uma mensagem de requisição HTTP ao servidor por
meio de seu socket. Essa mensagem inclui o nome de caminho
/someDepartment/home.index.
3. O processo servidor HTTP recebe a mensagem de requisição por meio de
seu socket, extrai o objeto /someDepartment/home.index de seu
armazenamento (RAM ou disco), encapsula-o em uma mensagem de
resposta HTTP e a envia ao cliente pelo socket.
4. O cliente HTTP recebe a mensagem de resposta. A mensagem indica que
o objeto encapsulado é um arquivo HTML. O cliente extrai o arquivo da
mensagem de resposta, analisa o arquivo HTML e encontra referências
aos dez objetos JPEG.
5. As etapas 2 a 4 são repetidas para cada um dos objetos referenciados
(cada imagem JPEG), na mesma conexão aberta inicialmente.
6. Após o envio/recepção do último objeto, a conexão é fechada.
Mensagens HTTP 18

Exemplos de mensagens HTTP:


 Mensagens de requisição:
 GET – lê uma página Web.
 HEAD – lê um cabeçalho de página Web.
 POST – acrescenta algo a uma página Web.
 PUT – armazena uma página web.
 DELETE – remove uma página Web.

 Mensagens de resposta:
 200 OK – solicitação realizada.
 301 Moved Permanently – os dados solicitados foram removidos.
 400 Bad Request – solicitação mal formulada ou impossível de validar.
 404 Not Found – servidor não encontrou nada no endereço indicado.
 501 Not Implemented – servidor não suporta o serviço solicitado.
Cache Web 19

 Um cache Web é uma entidade da rede que atende requisições


HTTP em nome de um servidor Web de origem, mantendo cópias
de objetos recentemente requisitados.

Tanenbaum & Wetherall


HTTPS (HyperText Transfer Protocol Secure) 20

 Embora o HTTP seja flexível, não é um protocolo seguro.


 As mensagens requisitadas enviam informações ao servidor em
modo texto simples.
 As respostas do servidor, normalmente páginas HTML, também
não são criptografadas.
 O HTTPS possibilita conversações seguras na Internet, fazendo uso
de autenticação e criptografia para proteger os dados trocados entre
o cliente e o servidor.
 O HTTPS usa o mesmo processo de requisição do cliente e
resposta do servidor do HTTP, porém o fluxo de dados é
criptografado antes de ser transportado através da rede.
 SSL (Secure Sockets Layers) ou TLS (Transport Layer Security).
Transferência de arquivos 21

File Transfer Protocol


 Definido na RFC 959, permite transferências de arquivos entre um
cliente e um servidor.
 A transferência de dados pode acontecer em ambas as direções.
 O cliente pode baixar dados do servidor ou o cliente pode fazer upload
(enviar) de dados para o servidor.

Kurose & Ross


Transferência de arquivos 22

File Transfer Protocol


 O FTP faz uso de duas conexões: uma para controle e uma para
dados
 Controle de tráfego (porta TCP 21): para comandos do cliente e
respostas do servidor; permanecendo aberta durante toda sessão.
 Dados (porta TCP 20): para a transferência de dados propriamente;
sendo que uma nova conexão é criada para cada novo arquivo a ser
transferido.

Kurose & Ross


Transferência de arquivos 23

Operação FTP
 O cliente FTP (usuário) inicia primeiro uma conexão TCP de
controle com o servidor, porta numero 21 do servidor, e envia por
essa conexão de controle sua identificação e senha, além de
comandos para mudar o diretório remoto.
 Quando o lado servidor recebe, pela conexão de controle, um
comando para uma transferência de arquivo (de ou para o
hospedeiro remoto), abre uma conexão TCP de dados, porta 20.
 O FTP envia pela conexão de dados o arquivo solicitado, e em
seguida fecha a conexão.
 Se, durante a mesma sessão, o usuário quiser transferir outro
arquivo, o FTP abrirá outra conexão de dados.
 Observa-se que a conexão de controle permanece aberta durante
toda a sessão do usuário, mas uma nova conexão de dados é
criada para cada arquivo transferido dentro de uma sessão.
Transferência de arquivos 24

Trivial File Transfer Protocol


 Definido na RFC 1350 (TFTP revision2), oferece um serviço de
transferência de arquivos baseado no protocolo UDP, portanto não
orientado à conexão e não confiável.
 Desenvolvido para ser leve e de fácil implementação, sendo mais rápido
que o FTP.
 Pode ler ou gravar arquivos de e para um servidor remoto porém, por ser
não confiável, não possui recursos de autenticação.
 Usado, normalmente para transferência de arquivos pequenos, tais como
arquivos de configuração e arquivos imagens de sistemas (sistema
operacional) de equipamentos.
Correio eletrônico na Internet 25

Serviço de correio eletrônico:


 Permite o envio e recebimento de mensagens de modo assíncrono.
 Possui três componentes principais: agente de usuário, servidor de
correio e um protocolo para transferência das mensagens.

Kurose & Ross


Correio eletrônico na Internet 26

SMTP (Simple Mail Transfer Protocol).


 Definido na RFC 5321, permite transportar mensagens de e-mail,
em formato ASCII, através do TCP, para e entre servidores.
 Quando um servidor de correio eletrônico recebe uma mensagem
destinada a um cliente local, armazena-a e espera que ela seja
coletada pelo cliente.
 O cliente podem coletar sua correspondência de duas formas:
 Usar programas que acessam os arquivos do servidor de correio
diretamente.
 Coletar sua correspondência usando um dos muitos protocolos de rede
existentes (POP3, IMAP ou HTTP).

Kurose & Ross


Correio eletrônico na Internet 27

 Faz uso dos processos MUA (Mail User Agent), MTA (Mail Transport
Agent) e MDA (Mail Delivery Agent).
 Quando criadas, as mensagens de e-mail normalmente utilizam o
processo MUA, ou cliente de e-mail.
 O MUA permite que mensagens sejam enviadas e coloca as mensagens
recebidas na caixa de correio do cliente, sendo processos diferentes.
 O processo MTA é usado para encaminhar os e-mails.
 O MTA recebe mensagens do MUA ou de outro MTA em outro servidor de
e-mail.
 Com base no cabeçalho da mensagem, ele determina como encaminhar a
mensagem. Se o e-mail for endereçado a um usuário cuja caixa de correio
fique no servidor local, ele será passado para o MDA. Se o e-mail for para
um usuário fora do servidor local, o MTA o encaminha para o MTA no
servidor em questão.
 O MDA aceita um e-mail de um MTA e faz a entrega real.
 O MDA recebe toda correspondência que chega no MTA e a coloca nas
caixas de correio dos usuários adequados.
Correio eletrônico na Internet 28

Processos MUA, MTA e MDA:

Adaptado: Cisco/CCNA
SNMP - Simple Network Management Protocol 29

 Protocolo padrão para a troca de informações gerenciáveis entre


dispositivos clientes e gerentes, em uma rede IP.
 A gerência SNMP consiste dos seguintes componentes básicos:
 Gerente (NMS - Network Management System): executa aplicações
que monitoram e controlam os dispositivos gerenciados.
 Dispositivos gerenciados: elementos de rede que contêm um agente
SNMP. Coletam e armazenam informações gerenciáveis em suas
MIBs, disponibilizando-as para os gerentes, quando solicitados.
 Agentes SNMP: módulos de software de gerenciamento que residem
nos dispositivos gerenciados. Um agente SNMP tem conhecimento
local das informações gerenciáveis e as converte para uma forma
compatível com o SNMP.
 MIB (Management Information Base): base de dados de informações
gerenciáveis, mantida nos dispositivos gerenciados.
 RFC 1098 (abril/1989) e atualizações.
SNMP - Simple Network Management Protocol 30

 Por padrão, usa as portas UDP 161 pelo agente e 162 pelo gerente.
 O gerente pode enviar solicitações de qualquer porta disponível (porta
origem) para a porta destino 161 no agente, que pode gerar traps em
qualquer porta disponível (porta de origem), enviando para a porta
destino 162 no gerente.
 ** pode ser modificado no sistema operacional em uso.
 Pode-se encontrar ainda as portas TCP 5161 e 5162 (SNMP sobre
SSH).
Acesso Remoto 31

Telnet Protocol
 Permite acessar um dispositivo remoto, que esteja executando uma
aplicação de servidor Telnet e, em seguida, acessar todos os seus
recursos disponíveis.
 Não utiliza qualquer recurso de processamento do computador cliente.
O que ele faz é transmitir as teclas digitadas localmente ao dispositivo
remoto e enviar a saída na tela de volta ao monitor local.
 Todo o processamento e o armazenamento ocorrem no dispositivo
remoto.
 Apesar da necessidade de autenticação para o acesso remoto, o
telnet não é um protocolo seguro.
 Para acesso remoto no modo seguro, com autenticação e
criptografia dos dados, utiliza-se o protocolo Secure Shell (SSH).
 Telnet: RFC 318 (abril/1972)
 SSH: RFC 4251 (janeiro/2006).
32

Lista de exercícios 03 – Aplicações

Você também pode gostar