SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
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 TCP




Marcelo Z. Silva / BSI ­ Redes I   8
Pacote UDP




Marcelo 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 TCP




t
e
m
p
o




     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 Server
import socket

host = ''
port = 50000
backlog = 5
size = 1024
s = 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

Más contenido relacionado

La actualidad más candente

Diferenças entre IPV4 e IPV6
Diferenças entre IPV4 e IPV6Diferenças entre IPV4 e IPV6
Diferenças entre IPV4 e IPV6José Alyson
 
Ferramentas para Detecção de Problemas em Redes
Ferramentas para Detecção de Problemas em RedesFerramentas para Detecção de Problemas em Redes
Ferramentas para Detecção de Problemas em RedesFrederico Madeira
 
Arquitetura de software : Cliente-Servidor
Arquitetura de software : Cliente-ServidorArquitetura de software : Cliente-Servidor
Arquitetura de software : Cliente-ServidorAlexsandro Oliveira
 
Aula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasAula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasVictor Hazin da Rocha
 
Módulo 3-Sistema Operativo Servidor - V3.pdf
Módulo 3-Sistema Operativo Servidor - V3.pdfMódulo 3-Sistema Operativo Servidor - V3.pdf
Módulo 3-Sistema Operativo Servidor - V3.pdfFChico2
 
Protocolos; SNMP, TELNET, SSH
Protocolos; SNMP, TELNET, SSHProtocolos; SNMP, TELNET, SSH
Protocolos; SNMP, TELNET, SSHPetterson Castro
 
Trabalho em power point sobre o atendimento
Trabalho em power point sobre o atendimentoTrabalho em power point sobre o atendimento
Trabalho em power point sobre o atendimentoIAORS
 
Endereçamento IP
Endereçamento IPEndereçamento IP
Endereçamento IPPjpilin
 
Modelo de camadas TCP/IP
Modelo de camadas TCP/IPModelo de camadas TCP/IP
Modelo de camadas TCP/IPEvandro Júnior
 
Ficheiro e contrato de clientes
Ficheiro e contrato de clientesFicheiro e contrato de clientes
Ficheiro e contrato de clientesMário Laranjeira
 
Trabalho Servidor FTP
Trabalho Servidor FTPTrabalho Servidor FTP
Trabalho Servidor FTPJunior Cesar
 
Apresentacao completa-acolhimento-e-encaminhamento
 Apresentacao completa-acolhimento-e-encaminhamento Apresentacao completa-acolhimento-e-encaminhamento
Apresentacao completa-acolhimento-e-encaminhamentoEduarda André Correia
 
Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,H P
 
Camada De Aplicação
Camada De AplicaçãoCamada De Aplicação
Camada De AplicaçãoLyous
 

La actualidad más candente (20)

Diferenças entre IPV4 e IPV6
Diferenças entre IPV4 e IPV6Diferenças entre IPV4 e IPV6
Diferenças entre IPV4 e IPV6
 
Ferramentas para Detecção de Problemas em Redes
Ferramentas para Detecção de Problemas em RedesFerramentas para Detecção de Problemas em Redes
Ferramentas para Detecção de Problemas em Redes
 
Arquitetura de software : Cliente-Servidor
Arquitetura de software : Cliente-ServidorArquitetura de software : Cliente-Servidor
Arquitetura de software : Cliente-Servidor
 
Protocolo Http
Protocolo HttpProtocolo Http
Protocolo Http
 
Aula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasAula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a Falhas
 
Módulo 3-Sistema Operativo Servidor - V3.pdf
Módulo 3-Sistema Operativo Servidor - V3.pdfMódulo 3-Sistema Operativo Servidor - V3.pdf
Módulo 3-Sistema Operativo Servidor - V3.pdf
 
Arquitetura de Redes de Computadores
 Arquitetura de Redes de Computadores Arquitetura de Redes de Computadores
Arquitetura de Redes de Computadores
 
Protocolos; SNMP, TELNET, SSH
Protocolos; SNMP, TELNET, SSHProtocolos; SNMP, TELNET, SSH
Protocolos; SNMP, TELNET, SSH
 
Trabalho em power point sobre o atendimento
Trabalho em power point sobre o atendimentoTrabalho em power point sobre o atendimento
Trabalho em power point sobre o atendimento
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Acolhimento e encaminhamento. 1
Acolhimento e encaminhamento. 1Acolhimento e encaminhamento. 1
Acolhimento e encaminhamento. 1
 
Endereçamento IP
Endereçamento IPEndereçamento IP
Endereçamento IP
 
Modelo de camadas TCP/IP
Modelo de camadas TCP/IPModelo de camadas TCP/IP
Modelo de camadas TCP/IP
 
Ficheiro e contrato de clientes
Ficheiro e contrato de clientesFicheiro e contrato de clientes
Ficheiro e contrato de clientes
 
Trabalho Servidor FTP
Trabalho Servidor FTPTrabalho Servidor FTP
Trabalho Servidor FTP
 
Protocolo TCP/IP
Protocolo TCP/IPProtocolo TCP/IP
Protocolo TCP/IP
 
Apresentacao completa-acolhimento-e-encaminhamento
 Apresentacao completa-acolhimento-e-encaminhamento Apresentacao completa-acolhimento-e-encaminhamento
Apresentacao completa-acolhimento-e-encaminhamento
 
Kanban
KanbanKanban
Kanban
 
Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,
 
Camada De Aplicação
Camada De AplicaçãoCamada De Aplicação
Camada De Aplicação
 

Similar a Apostilas modelo cliente servidor

Camada de transporte capitulo 3
Camada de transporte   capitulo 3Camada de transporte   capitulo 3
Camada de transporte capitulo 3fernandao777
 
Capítulo 23 comunicação entre processos
Capítulo 23   comunicação entre processosCapítulo 23   comunicação entre processos
Capítulo 23 comunicação entre processosFaculdade Mater Christi
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webRegis Magalhães
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webRegis Magalhães
 
Redes - Camada de Transporte
Redes - Camada de TransporteRedes - Camada de Transporte
Redes - Camada de TransporteLuiz Arthur
 
Protocolos TCP IP UDP
Protocolos TCP IP UDPProtocolos TCP IP UDP
Protocolos TCP IP UDPAndré Nobre
 
Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1SoftD Abreu
 
Redes prática - Inetd
Redes prática - InetdRedes prática - Inetd
Redes prática - InetdLuiz Arthur
 
Sistema Operacional - Aula006
Sistema Operacional - Aula006Sistema Operacional - Aula006
Sistema Operacional - Aula006Cláudio Amaral
 
2016-redes-E.pptx
2016-redes-E.pptx2016-redes-E.pptx
2016-redes-E.pptxssssssss23
 
[Antero Jesus] Principais Protocolos de Rede
[Antero Jesus] Principais Protocolos de Rede[Antero Jesus] Principais Protocolos de Rede
[Antero Jesus] Principais Protocolos de Redeajtr98
 
Resolução Parcial - Redes de Computadores - Kurose 6ª Edição
Resolução Parcial - Redes de Computadores - Kurose 6ª EdiçãoResolução Parcial - Redes de Computadores - Kurose 6ª Edição
Resolução Parcial - Redes de Computadores - Kurose 6ª EdiçãoRonildo Oliveira
 

Similar a Apostilas modelo cliente servidor (20)

Camada de transporte capitulo 3
Camada de transporte   capitulo 3Camada de transporte   capitulo 3
Camada de transporte capitulo 3
 
Tcp udp
Tcp udpTcp udp
Tcp udp
 
Capítulo 23 comunicação entre processos
Capítulo 23   comunicação entre processosCapítulo 23   comunicação entre processos
Capítulo 23 comunicação entre processos
 
Camada de aplicação parte1
Camada de aplicação parte1Camada de aplicação parte1
Camada de aplicação parte1
 
Cap 02.pdf
Cap 02.pdfCap 02.pdf
Cap 02.pdf
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Redes - Camada de Transporte
Redes - Camada de TransporteRedes - Camada de Transporte
Redes - Camada de Transporte
 
Protocolos TCP IP UDP
Protocolos TCP IP UDPProtocolos TCP IP UDP
Protocolos TCP IP UDP
 
Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1
 
Intro_redes.pdf
Intro_redes.pdfIntro_redes.pdf
Intro_redes.pdf
 
Redes prática - Inetd
Redes prática - InetdRedes prática - Inetd
Redes prática - Inetd
 
Ntop
NtopNtop
Ntop
 
Sistema Operacional - Aula006
Sistema Operacional - Aula006Sistema Operacional - Aula006
Sistema Operacional - Aula006
 
2016-redes-E.pptx
2016-redes-E.pptx2016-redes-E.pptx
2016-redes-E.pptx
 
Mini Curso - Redes de Computadores
Mini Curso - Redes de ComputadoresMini Curso - Redes de Computadores
Mini Curso - Redes de Computadores
 
[Antero Jesus] Principais Protocolos de Rede
[Antero Jesus] Principais Protocolos de Rede[Antero Jesus] Principais Protocolos de Rede
[Antero Jesus] Principais Protocolos de Rede
 
Principais protocolos de rede
Principais protocolos de redePrincipais protocolos de rede
Principais protocolos de rede
 
Lab 06 ping_com_udp
Lab 06 ping_com_udpLab 06 ping_com_udp
Lab 06 ping_com_udp
 
Resolução Parcial - Redes de Computadores - Kurose 6ª Edição
Resolução Parcial - Redes de Computadores - Kurose 6ª EdiçãoResolução Parcial - Redes de Computadores - Kurose 6ª Edição
Resolução Parcial - Redes de Computadores - Kurose 6ª Edição
 

Apostilas modelo cliente servidor

  • 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. Modelo Cliente/Servidor Marcelo Z. Silva / BSI ­ Redes I 2
  • 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, 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. 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. Modelo de Camadas TCP/IP Marcelo Z. Silva / BSI ­ Redes I 6
  • 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
  • 10. Encapsulamento (Exemplo) Marcelo Z. Silva / BSI ­ Redes I 10
  • 11. Encapsulamento (Exemplo) Marcelo Z. Silva / BSI ­ Redes I 11
  • 12. Encapsulamento (Exemplo) Marcelo Z. Silva / BSI ­ Redes I 12
  • 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. 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” pode­se ver conexões TCP abertas, com suas  portas utilizadas. Marcelo Z. Silva / BSI ­ Redes I 16
  • 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. 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 “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. Handshake TCP t e m p o Marcelo Z. Silva / BSI ­ Redes I 23
  • 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