Você está na página 1de 24

Instituto Federal de Educao,

Cincia e Tecnologia do Rio Grande do Norte


Campus Currais Novos

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

Diversos protocolos de aplicao

FTP (File Tranfer Protocol)


SMTP (Simple Mail Transfer Protocol)
DNS (Domain Name System)
HTTP (HyperText Transfer Protocol)

Introduo
Camada de aplicao
Implementada usando processos de aplicao
Processos interagem usando o modelo cliente-servidor

Processos usam os servios da camada de transporte


Processos interagem com as implementaes dos protocolos
de transporte atravs de uma API (Application Programming
Interface)
A interface Socket um dos principais exemplos de interface
de interao

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

Processo que requisita um servio oferecido por um servidor


Inicia a interao com o servidor
Disponibiliza a interface com o usurio
Finaliza a execuo aps ser utilizado pelo usurio

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)

Portas reservadas so utilizadas pelos servidores que


implementam os respectivos servios;
Demais portas so disponveis para uso dos clientes;

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

Cliente requisita uma porta qualquer no reservada


Sistema operacional escolhe a porta arbitrria para o cliente

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

Registradas (1.024 49.151)


No so reservadas, mas apenas listadas para coordenar o uso
para servios no padronizados
Acessadas por qualquer processo

Dinmicas (49.152 65.535)


No possuem reserva, podendo ser usadas pelos clientes
Acessadas por quaisquer processos

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

Servidor TCP usa associao default

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

Endpoint local e remoto

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

Socket (Cria o socket)


Bind (Associa o socket com uma porta)
Listen (Aguarda conexes)
Accept (Aceita conexo)
Connect (Realiza um pedido de conexo)
Read / recvfrom (Recebe dados)
Write / sendto (Envia dados)

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

Servidor concorrente (multi-threaded)


Trata simultaneamente requisies de vrios clientes
Implementado com vrios processos ou threads
independentes
Cada processo ou thread trata individualmente as requisies
de um determinado cliente

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