Redes de computadores: Camada de Transporte Prof. Dr. Amine BERQIA [email protected] http://w3.ualg.pt/~bamine/ Sumário Onde estamos? Protocolos de transporte: TCP UDP Onde estamos? Protocolos de transporte Fornece comunicação de aplicação-para-aplicação Precisa dum mecanismo adicional de endereçamento para identificar aplicações Designa-se por extremo-a-extremo Pode fornecer: Fiabilidade Controlo de Fluxo Controlo Congestão Exemplo de Camada Transporte : Transmission Control Protocol (TCP) Normalizado pelo IETF como RFC 793 Protocolo mais popular da Camada 4 Protocolo orientado à conexão Funciona entre aplicações e IP Funcionamento Full-duplex Interface tipo byte-stream Resumo do TCP Fornece um serviço de transporte de fluxo full-duplex, orientado à conexão completamente fiável (nenhuma duplicação ou perda de dados), que permite dois programas aplicativos formar uma conexão, enviar dados em qualquer uma das direcções e então terminar a conexão. Relação Entre o TCP e Outros Protocolos TCP num computador utiliza o IP para comunicar com TCP noutro computador Aparente Contradição IP oferece entrega melhor-esforço (não fiável) TCP utiliza o IP TCP fornece transferência completamente fiável Como é isto possível? Conseguir Fiabilidade Estabelecimento fiável da conexão Transmissão fiável dos dados Terminação fiável da conexão Transmissão fiável dos dados Confirmação positiva O receptor devolve uma curta mensagem na chegada de dados Designa-se por confirmação (acknowledgement) Retransmissão Remetente inicia cronometro sempre que uma mensagem é transmitida Se o cronometro expira antes duma confirmação chegar, o remetente retransmite a mensagem Retransmissão Quanto tempo deverá esperar o TCP Antes de Retransmitir? Tempo que leva para chegar uma confirmação depende de Distancia ao destino Presente condições de tráfego Conexões múltiplas podem ser abertas simultaneamente Condições de tráfego mudam rapidamente Resolver o Problema da Retransmissão Manter estimativa do tempo de viagem de ida-e-volta de cada conexão Utilizar estimativa actual para fixar cronometro de retransmissão Designado por retransmissão adaptável Motivo de sucesso do TCP Retransmissão adaptável Intervalo depende da presente estimativa de ida-e-volta TCP Controlo de Fluxo Receptor Anuncia espaço de buffer disponível Designa-se por janela Remetente Pode enviar até ao limite da janela antes da chegada do ACK Também designado por protocolo de janela deslizante (sliding window protocol) Estabelecimento e Terminação Estabelecimento da conexão Tem de ser fiável Terminação da conexão Deve ser graciosa Difícil Por que Startup/Shutdown é Difícil Segmentos podem ser perdidos duplicados atrasados entregue fora de ordem qualquer um dos participantes pode bloquear qualquer um dos participantes pode reiniciar Necessário evitar que mensagem duplicada de terminação venha afectar conexão posterior A Solução de Estabelecimento do TCP Utiliza troca de três mensagens Conhecido como “3-way handshake” Necessário e suficiente para estabelecimento fiável e não ambígua Mensagens SYN (Synchronize) são utilizadas para estabelecimento de conexão 3-Way Handshake A Terminação do TCP Portas de protocolo A cada aplicação é atribuído um numero distinto Servidor É Normalizado Utiliza sempre o mesmo número da porta Normalmente utiliza números de porta mais baixos Cliente Obtém porto não utilizada do software de protocolo Normalmente utiliza números da porta mais altos Veja / etc/services Exemplo de Porta de protocolo Aplicação de servidor Web atribuída a porta 80 Aplicação cliente Web obtém porto 32938 Segmento de TCP enviado do cliente para servidor tem número da porta origem 32938 número da porta destino 80 Quando servidor Web responder, segmento de TCP tem número da porta origem 80 número da porta destino 32938 TCP Segmento Formato User Datagram Protocol (UDP) Entrega de mensagem não fiável Protocolo sem conexão Nenhum controlo de fluxo (nenhuma janela) Nenhuma recuperação de erro (não há ACKs) Permite multiplexação da aplicação Detecção de erros opcional (campo de checksum) UDP Mensagem Formato