Apostilas   modelo cliente servidor
Upcoming SlideShare
Loading in...5
×
 

Apostilas modelo cliente servidor

on

  • 2,072 views

 

Statistics

Views

Total Views
2,072
Views on SlideShare
2,072
Embed Views
0

Actions

Likes
1
Downloads
46
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Apostilas   modelo cliente servidor Apostilas modelo cliente servidor Presentation Transcript

  • Modelo Cliente/Servidor● A maioria das aplicações da Internet utilizam o modelo de  interação chamado “cliente/servidor”. – “Cliente” é um programa (software) executado em um host  que solicita informações a outro programa, normalmente  através da rede. Exemplos de programa cliente: “navegador”  Web (Internet Explorer, Firefox). – “Servidor” é um programa que fica em espera, aguardando  solicitações de clientes e que fornece os dados solicitados  quando recebe uma solicitação de um cliente (Ex. de  servidor: servidores Web Apache e IIS). Marcelo Z. Silva / BSI ­ Redes I 1
  • Modelo Cliente/Servidor Marcelo Z. Silva / BSI ­ Redes I 2
  • Modelo Cliente/Servidor● Outros exemplos de aplicações que utilizam o modelo  cliente/servidor: – Email (SMTP) – Transferência de arquivos (FTP) – Terminal remoto (telnet e SSH) – Sistema de nomes (DNS) – Bancos de dados (SQL) – etc Marcelo Z. Silva / BSI ­ Redes I 3
  • Modelo Cliente/Servidor● Características de programas do tipo cliente: – Inicia a solicitação; – Aguarda pela resposta; – Normalmente interage com um número pequeno de  servidores ao mesmo tempo;● Características de programas do tipo servidor: – É passivo (aguarda solicitações dos clientes); – Quando recebe uma solitação, processa­a e envia resposta; – Pode interagir com um grande número de clientes ao  mesmo tempo.  Marcelo Z. Silva / BSI ­ Redes I 4
  • Modelo Peer to Peer (P2P)● Outro modelo de interação entre hosts em uma rede é o  chamado Peer to Peer (Ponto a Ponto), freqüentemente  abreviado como P2P.● Os programas que operam utilizando esse modelo são, ao  mesmo tempo, cliente e servidor.● Exemplo de serviço P2P: compartilhamento de arquivos. Marcelo Z. Silva / BSI ­ Redes I 5
  • Modelo de Camadas TCP/IP Marcelo Z. Silva / BSI ­ Redes I 6
  • Protocolos da Camada de Transporte● Os serviços que o protocolo IP, da camada de rede, não  fornece podem ser oferecidos pelos protocolos da camada de  transporte (camada 4).● Os dois principais protocolos da camada de transporte do  modelo TCP/IP são: – TCP – Transmission Control Protocol – UDP – User Datagram Protocol● A seguir são mostrados os formatos desses dois protocolos: Marcelo Z. Silva / BSI ­ Redes I 7
  • Pacote TCPMarcelo Z. Silva / BSI ­ Redes I 8
  • Pacote UDPMarcelo Z. Silva / BSI ­ Redes I 9
  • Encapsulamento (Exemplo) Marcelo Z. Silva / BSI ­ Redes I 10
  • Encapsulamento (Exemplo) Marcelo Z. Silva / BSI ­ Redes I 11
  • Encapsulamento (Exemplo) Marcelo Z. Silva / BSI ­ Redes I 12
  • Portas● Como citado anteriormente, clientes e servidores são  programas em execução em um host. Clientes requisitam  informações e os servidores as fornecem, como no exemplo no  qual um “navegador web” (cliente web) requisita uma página  web a um servidor web.● Muitas vezes os servidores oferecem diversos tipos de  serviços, em uma mesma máquina, através de diferentes  protocolos. Ex: – Web (HTTP) – E­mail (SMTP) – Nomes (DNS) – etc Marcelo Z. Silva / BSI ­ Redes I 13
  • Portas● Os computadores de usuários acessando a rede normalmente  executam diversos programas e recebem vários “fluxos” de  dados simultaneamente como, por exemplo, carregar diversas  páginas simultaneamente enquanto “baixa” arquivos e participa  de “chats”;● Assim, de modo a permitir que tenhamos diversos “fluxos”  simultâneos de informações vindos de diversos servidores para  diversos clientes no computador do usuário, existem as Portas.● “Portas” são números que identificam um “canal” de dados  entre dois hosts trocando informações pela rede.  Marcelo Z. Silva / BSI ­ Redes I 14
  • Conexões TCP e UDP● Uma “conexão” entre dois computadores utilizando TCP/IP (ou  UDP/IP) é dada por quatro informações: – Endereço IP do servidor – Porta TCP ou UDP do servidor – Endereço IP do cliente – Porta TCP/UDP do cliente IP: 200.10.10.2 Porta: 80 Cliente Servidor IP: 70.11.12.13 Porta: X Marcelo Z. Silva / BSI ­ Redes I 15
  • Portas Efêmeras● Antes de ocorrer a troca de informações, apenas três das quatro  informações necessárias estão pré­estabelecidas: – O endereço IP do servidor – A porta TCP ou UDP do servidor – O endereço IP do cliente● A quarta informação (porta do cliente) é definida “aleatoriamente” e  serve e existe apenas durante uma troca de informações. Se houver  nova troca, o número da porta será provavalmente diferente.● Essa porta “aleatória” utilizada temporariamente pelo cliente é  chamada de “porta efêmera” (ephemeral port). Pelo uso do  comando “netstat ­an” pode­se ver conexões TCP abertas, com suas  portas utilizadas. Marcelo Z. Silva / BSI ­ Redes I 16
  • Portas Bem­Conhecidas● Diversos serviços da Internet são bastante utilizados (WWW, Email,  FTP, telnet etc) e por isso os servidores desses serviços utilizam um  número de porta fixo para o serviço.● Esses números de portas “fixos” são conhecidos como “Portas Bem  Conhecidas” (Well­Known Ports).● Algumas portas bem conhecidas: – HTTP (WWW): Porta 80/TCP – Email (SMTP): Porta 25/TCP – Telnet: Porta 23/TCP – POP3: Porta 110/TCP Marcelo Z. Silva / BSI ­ Redes I 17
  • Protocolo IP ­ Rev.● O protocolo IP, não provê os seguintes serviços: – Garantia de entrega: o datagrama IP enviado pode ser  simplesmente perdido ou descartado, sem que o protocolo  IP notifique esse fato; – Integridade dos dados: os dados de um datagrama IP  podem estar corrompidos (“estragados”); – Ordem de entrega: dois datagramas, A e B, que foram  enviados nessa ordem, podem chegar com a ordem trocada  (B e depois A); – Checagem de unicidade: é possível que múltiplas cópias de  um mesmo datagrama seja entregue ao destinatário. Marcelo Z. Silva / BSI ­ Redes I 18
  • Diferenças TCP e UDP● Principais difererenças entre TCP ou UDP: – TCP é orientado a conexão e o UDP não utiliza conexões ● Antes de haver troca de dados entre dois hosts é necessário que o cliente  “abra” uma conexão entre eles através de uma seqüência chamada  “handshake TCP” (descrito a seguir); – TCP é “pesado” ● O TCP provê diversos serviços adicionais que o UDP não provê mas,  justamente por isso, ele é mais complexo (e mais lento) que o UDP. – TCP é confiável ● Caso haja a perda de um pacote TCP no caminho e ele não chegar ao  destino, o sistema TCP do remetente providencia o reenvio do pacote  perdido. O UDP não tem essa funcionalidade. – Os pacotes TCP são ordenados ● Números de seqüência no cabeçalho TCP permitem que o receptor dos  pacotes ordene os mesmo caso cheguem fora de ordem. O UDP também  não possui esse recurso. Marcelo Z. Silva / BSI ­ Redes I 19
  • Portas TCP e UDP● Os principais campos de um cabeçalho TCP ou UDP são: – Porta de destino (destination port): identifica o serviço do  servidor ao qual se deseja conectar (ex: porta 80 – WWW) – Porta de origem (source port): identifica a porta do cliente  a ser utilizada pelo servidor para responder a requisição  feita. Marcelo Z. Silva / BSI ­ Redes I 20
  • Localhost● A rede 128.0.0.0/8 é especial e não aparece em uso na  Internet.● Ela é reservada como “localnet” e todos os hosts dessa rede  são tratados como “localhost”, especialmente o endereço  127.0.0.1.● Qualquer conexão para esse endereço é “retornada” para o  próprio computador de origem.● Ex: o comando ping 127.0.0.1 é respondido pelo localhost Marcelo Z. Silva / BSI ­ Redes I 21
  • Handshake TCP● Ao contrário do protocolo UDP, o protocolo TCP é “orientado a  conexão”. Isso significa que antes de trocar dados o TCP  necessita “abrir” uma conexão.● Essa conexão é estabelecida através de uma sequência  chamada “TCP handshake” (aperto de mão TCP) e é mostrada  a seguir.● Essa seqüência envolve a troca de três pacotes e por isso é  chamado de “three­way handshake” (aperto de mão em três  etapas).● O pacote inicial do handshake é chamado pacote de  sincronização e tem o bit SYN ligado. Marcelo Z. Silva / BSI ­ Redes I 22
  • Handshake TCPtempo Marcelo Z. Silva / BSI ­ Redes I 23
  • Estados das Portas TCP● O protocolo TCP é orientado a conexão, o que significa que antes de  haver troca de dados é necessário que um computador estabeleça  uma conexão TCP com outro através do “handshake TCP”;● Quando um programa aceita receber conexão em uma porta TCP  (servidor) dizemos que essa porta está em modo LISTEN  (OUVINDO);● Quando há uma conexão estabelecida a conexão passa para  ESTABLISHED (ESTABELECIDA);● O comando netstat ­a do Windows e dos Unix mostra o estado das  conexões. Marcelo Z. Silva / BSI ­ Redes I 24
  • Sockets## Echo Serverimport sockethost = port = 50000backlog = 5size = 1024s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind((host,port))s.listen(backlog)while 1:    client, address = s.accept()    data = client.recv(size)    if data:        client.send("Voce disse: ")        client.send(data)        client.close() Marcelo Z. Silva / BSI ­ Redes I 25