aula 46 - camada de aplicacao
DESCRIPTION
applicationTRANSCRIPT
-
Instituto Federal de Educao, Cincia e Tecnologia do Rio Grande do Norte Campus Currais Novos
Aula 46 - Camada de Aplicao
Viso Geral
Redes de Computadores e Aplicaes
Prof. Diego Pereira
-
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;
2
-
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)
3
-
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
4
-
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
5
-
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
6
-
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;
7
-
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;
8
-
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
9
-
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
12
Closed Establised
-
Interface Socket
Estados de um Socket TCP
Socket passivo Usado pelo servidor para passivamente aguardar
por requisies de conexo
13
Closed Listen Establised
-
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
16 LINUX
-
Interface Socket
Endpoint local e remoto
17
WINDOWS
WINDOWS
-
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
19
socket bind sendto close recvfrom
socket recvfrom close sendto
Comunicao
Cliente UDP
Servidor UDP
-
Interface Socket
Clientes e servidores TCP
Modelo de implementao
20
socket bind read close Listen
Comunicao
Servidor TCP
accept write
socket write close connect
Cleinte TCP
read
Sincronizao
-
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
22
socket bind Listen
Servidor TCP
accept write read close
Socket original
Novo socket
-
Projeto de servidores
Tratamento de requisies Servidor Concorrente
Adequado para servios com reduzida taxa de requisio
Requisies com baixa carga de processamento
23
socket bind Listen
Servidor TCP write read close
Socket original
Novo socket
close
accept
read write
. . .
-
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