Resolução Parcial - Redes de Computadores - Kurose 6ª Edição
Modelo Cliente/Servidor em
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
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. 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, processaa e envia resposta;
– Pode interagir com um grande número de clientes ao
mesmo tempo.
Marcelo Z. Silva / BSI Redes I 4
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
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
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)
– Email (SMTP)
– Nomes (DNS)
– etc
Marcelo Z. Silva / BSI Redes I 13
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. 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. 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” podese ver conexões TCP abertas, com suas
portas utilizadas.
Marcelo Z. Silva / BSI Redes I 16
17. Portas BemConhecidas
● 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” (WellKnown 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. 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. 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. 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. 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. 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 “threeway 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
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