SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-ServidorIsrael Messias
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeMauro Pereira
 
Redes de Computadores - Aula 01
Redes de Computadores - Aula 01Redes de Computadores - Aula 01
Redes de Computadores - Aula 01thomasdacosta
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoAdriano Teixeira de Souza
 
BPMN - Modelagem de negocio
BPMN - Modelagem de negocioBPMN - Modelagem de negocio
BPMN - Modelagem de negocioEduardo Greco
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresLuis Ferreira
 
Cascateamento de switch
Cascateamento de switchCascateamento de switch
Cascateamento de switchCarlos Veiga
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketAdriano Teixeira de Souza
 
Conceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosConceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosPatrícia Morais
 
Aula 5 - Redes de computadores
Aula 5 - Redes de computadoresAula 5 - Redes de computadores
Aula 5 - Redes de computadoresLucasMansueto
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesDaniel Brandão
 
Aula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosAula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosVitor Hugo Melo Araújo
 
Criação de tabelas com HTML
Criação de tabelas com HTMLCriação de tabelas com HTML
Criação de tabelas com HTMLLeonardo Soares
 
Topologias De Rede
Topologias De RedeTopologias De Rede
Topologias De RedeMauro
 
Introdução aos Serviços de Rede
Introdução aos Serviços de RedeIntrodução aos Serviços de Rede
Introdução aos Serviços de RedeNatanael Simões
 

Mais procurados (20)

Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-Servidor
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da rede
 
Redes de Computadores - Aula 01
Redes de Computadores - Aula 01Redes de Computadores - Aula 01
Redes de Computadores - Aula 01
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
 
BPMN - Modelagem de negocio
BPMN - Modelagem de negocioBPMN - Modelagem de negocio
BPMN - Modelagem de negocio
 
Principais protocolos de rede
Principais protocolos de redePrincipais protocolos de rede
Principais protocolos de rede
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
 
Socket
SocketSocket
Socket
 
Cascateamento de switch
Cascateamento de switchCascateamento de switch
Cascateamento de switch
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
 
Conceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosConceitos essenciais de bases de dados
Conceitos essenciais de bases de dados
 
Aula 5 - Redes de computadores
Aula 5 - Redes de computadoresAula 5 - Redes de computadores
Aula 5 - Redes de computadores
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e Sessoes
 
Aula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosAula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de Dados
 
Telnet
TelnetTelnet
Telnet
 
Criação de tabelas com HTML
Criação de tabelas com HTMLCriação de tabelas com HTML
Criação de tabelas com HTML
 
Aula 5 bios
Aula 5 biosAula 5 bios
Aula 5 bios
 
Topologias De Rede
Topologias De RedeTopologias De Rede
Topologias De Rede
 
Introdução aos Serviços de Rede
Introdução aos Serviços de RedeIntrodução aos Serviços de Rede
Introdução aos Serviços de Rede
 

Semelhante a Modelo Cliente/Servidor em

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
 
Modelo de camadas TCP/IP
Modelo de camadas TCP/IPModelo de camadas TCP/IP
Modelo de camadas TCP/IPEvandro Júnior
 
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
 

Semelhante a Modelo Cliente/Servidor em (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
 
Modelo de camadas TCP/IP
Modelo de camadas TCP/IPModelo de camadas TCP/IP
Modelo de camadas TCP/IP
 
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
 
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
 

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
  • 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