Documente Academic
Documente Profesional
Documente Cultură
Redes de Computadores
e Aplicaes
Aula 46 - Camada de Aplicao
Viso Geral
Prof. Diego Pereira <diego.pereira@ifrn.edu.br>
Objetivo
Apresentar os detalhes especficos dos
tipos de aplicao;
Apresentar o modelo cliente-servidor;
Apresentar as caractersticas da interface
Socket;
Apresentar os detalhes de projetos de
servidores;
Introduo
Camada de aplicao
Trata os detalhes especficos de cada tipo de aplicao
Mensagens trocadas por cada tipo de aplicao definem um
protocolo de aplicao
Cada protocolo de aplicao especifica a sintaxe e a semntica
de suas mensagens
Introduo
Camada de aplicao
Implementada usando processos de aplicao
Processos interagem usando o modelo cliente-servidor
Modelo cliente-servidor
Componentes
Servidor
Processo que oferece um servio que pode ser requisitado pelos
clientes atravs da rede
Comunica-se com o cliente somente aps receber requisies
Executa continuamente
Cliente
Modelo cliente-servidor
Paradigma requisio-resposta
Servidor
Aceita requisio dos clientes
Executa seu servio realizando o processamento das
requisies
Retorna o resultado para os respectivos clientes
Cliente
Envia requisies atravs da rede para um ou vrios servidores
Aguarda o recebimento das respectivas respostas
Modelo cliente-servidor
Identificao de processos
Clientes e servidores so identificados por
meio das portas;
Cliente deve conhecer, previamente, a porta
usada pelo servidor;
Servidor no precisa conhecer, previamente, a
porta usada pelo cliente;
Servidor descobre a porta usada pelo cliente
somente aps receber a requisio;
Modelo cliente-servidor
Identificao de processos
Portas so permanentemente reservadas para servios
padronizados e bem conhecidos;
Porta 53 (DNS)
Porta 161 (SNMP)
Modelo cliente-servidor
Negociao de porta
Servidor requisita uma porta reservada e bem
conhecida, previamente reservada ao servio
Servidor informa ao sistema operacional a porta que deseja
utilizar e qual protocolo da camada de transporte
Modelo cliente-servidor
Alocao de portas
Padronizadas pela IANA (Internet Assigned Numbers
Authority)
Reservada (0 1.023)
Atribudas a servios padronizados
Acessados apenas por processos privilegiados
10
Interface Socket
Caractersticas
Define interface entre os processos de aplicao e as
implementaes dos servios de transporte
Originalmente proposta para sistemas UNIX e a
linguagem C
Amplamente adotada em diversas plataformas e
linguagens
Um Socket um ponto de comunicao
identificado pelos endpoints local e remoto
Cada endpoint representado pelo par (Endereo IP, porta)
11
Interface Socket
Estados de um Socket TCP
Socket ativo
Usado pelo cliente para ativamente enviar
requisies de conexo ao servidor
Closed
Establised
12
Interface Socket
Estados de um Socket TCP
Socket passivo
Usado pelo servidor para passivamente aguardar
por requisies de conexo
Closed
Listen
Establised
13
Interface Socket
Endpoint local
Criado por default com endereo IP especial 0.0.0.0 e
uma porta arbitrria selecionada pelo sistema
operacional
Pode ser atribudo um endereo IP e uma porta
especfica
Endereo IP especfico deve ser evitado em sistemas
Multihomend, exceto por questes de segurana
Servidor deve configurar uma porta especfica
Cliente usa a porta selecionada pelo sistema operacional
14
Interface Socket
Endpoint remoto
Criado por default com endereo IP especial 0.0.0.0 e
porta *
Pode ser atribudo um endereo IP e uma porta
especfica
Cliente UDP ou TCP deve especificar o endereo IP e a porta
do servidor
Servidor UDP pode configurar um endereo IP e porta
especfica
15
Interface Socket
Endpoint local e remoto
Vrios sockets podem utilizar o mesmo nmero de porta
local, desde que os seus respectivos endpoints local e
remotos sejam diferentes
LINUX
16
Interface Socket
WINDOWS
WINDOWS
17
Interface Socket
Modelo de programao
Explora chamadas ao sistema operacional
Adota o modelo de arquivo, que baseado no
paradigma abrir-ler-fechar
Principais funes
18
Interface Socket
Clientes e servidores UDP
Modelo de implementao
Servidor UDP
socket
bind
recvfrom
sendto
close
Comunicao
socket
sendto
recvfrom
close
Cliente UDP
19
Interface Socket
Clientes e servidores TCP
Modelo de implementao
Servidor TCP
socket
bind
Listen
Sincronizao
socket
connect
accept
read
write
close
Comunicao
write
read
close
Cleinte TCP
20
Projeto de servidores
Tratamento de requisio
Servidor iterativo (single threaded)
Trata requisio de um nico cliente a cada instante
Implementado como um nico processo
21
Projeto de servidores
Tratamento de requisies
Servidor Iterativo
Adequado para servios com reduzida taxa de requisio
Requisies com baixa carga de processamento
Servidor TCP
socket
bind
Listen
accept
read
write
close
Socket original
Novo socket
22
Projeto de servidores
Tratamento de requisies
Servidor Concorrente
Adequado para servios com reduzida taxa de requisio
Requisies com baixa carga de processamento
Servidor TCP
socket
read
bind
Listen
write
close
...
accept
read
write
close
Socket original
Novo socket
23
Referncias
Comer, Douglas E., Interligao de Redes Com Tcp/ip
James F. Kurose, Redes de Computadores e a Internet
Escola Superior de Redes, Arquitetura e Protocolos de
Redes TCP/IP
24