Aula 46 - Camada de Aplicacao

Embed Size (px)

DESCRIPTION

application

Citation preview

  • 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