Modelo Cliente/Servidor●   A maioria das aplicações da Internet utilizam o modelo de     interação chamado “cliente/servid...
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) ...
Modelo Cliente/Servidor●   Características de programas do tipo cliente:     –   Inicia a solicitação;     –   Aguarda pel...
Modelo Peer to Peer (P2P)●   Outro modelo de interação entre hosts em uma rede é o     chamado Peer to Peer (Ponto a Ponto...
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 ofereci...
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  ...
Portas●   Os computadores de usuários acessando a rede normalmente     executam diversos programas e recebem vários “fluxo...
Conexões TCP e UDP●   Uma “conexão” entre dois computadores utilizando TCP/IP (ou     UDP/IP) é dada por quatro informaçõe...
Portas Efêmeras●   Antes de ocorrer a troca de informações, apenas três das quatro     informações necessárias estão pré­e...
Portas Bem­Conhecidas●   Diversos serviços da Internet são bastante utilizados (WWW, Email,     FTP, telnet etc) e por iss...
Protocolo IP ­ Rev.●    O protocolo IP, não provê os seguintes serviços:     –   Garantia de entrega: o datagrama IP envia...
Diferenças TCP e UDP●   Principais difererenças entre TCP ou UDP:     –   TCP é orientado a conexão e o UDP não utiliza co...
Portas TCP e UDP●   Os principais campos de um cabeçalho TCP ou UDP são:    –   Porta de destino (destination port): ident...
Localhost●   A rede 128.0.0.0/8 é especial e não aparece em uso na     Internet.●   Ela é reservada como “localnet” e todo...
Handshake TCP●   Ao contrário do protocolo UDP, o protocolo TCP é “orientado a     conexão”. Isso significa que antes de t...
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 é n...
Sockets## Echo Serverimport sockethost = port = 50000backlog = 5size = 1024s = socket.socket(socket.AF_INET, socket.SOCK_S...
Upcoming SlideShare
Loading in …5
×

Apostilas modelo cliente servidor

2,615 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,615
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
103
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Apostilas modelo cliente servidor

  1. 1. 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
  2. 2. Modelo Cliente/Servidor Marcelo Z. Silva / BSI ­ Redes I 2
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. Modelo de Camadas TCP/IP Marcelo Z. Silva / BSI ­ Redes I 6
  7. 7. 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
  8. 8. Pacote TCPMarcelo Z. Silva / BSI ­ Redes I 8
  9. 9. Pacote UDPMarcelo Z. Silva / BSI ­ Redes I 9
  10. 10. Encapsulamento (Exemplo) Marcelo Z. Silva / BSI ­ Redes I 10
  11. 11. Encapsulamento (Exemplo) Marcelo Z. Silva / BSI ­ Redes I 11
  12. 12. Encapsulamento (Exemplo) Marcelo Z. Silva / BSI ­ Redes I 12
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. 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
  23. 23. Handshake TCPtempo Marcelo Z. Silva / BSI ­ Redes I 23
  24. 24. 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
  25. 25. 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

×