Redes I Os Protocolos Prof. Dr. Amine BERQIA [email protected] http://w3.ualg.pt/~bamine/ Definição Um protocolo é uma descrição formal de regras e de convenções a seguir em uma troca de informações, que seja para encaminhar os dados até ao destinatário ou para que destinatário compreenda como deve utilizar os dados que recebeu. 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 SMTP Simple Mail Transfer Protocol SMTP Definido no RFC 821 Utiliza protocolo TCP Utilzado entre Programa de transferência de correio no computador do remetente Servidor de correio do destinatário Especifica como Cliente interage com o servidor Destinatários são especificados Mensagem é transferida TELNET Definido em RFC 854 Permite acesso interactivo a um computador de um local remoto Interface texto Utilizador invoca o cliente especifica computador remoto Cliente inicializa conexão TCP ao servidor Transmite teclas premidas através da conexão exibe resultados em tela Protocolo de transferência de ficheiros (FTP) Definido no RFC 959 Cópia completa de ficheiro Utiliza o TCP Suporta transferências de ficheiros binários ou de texto Conjunto extenso de comandos Até 1995, era a fonte principal de pacotes na Internet FTP Protocolo de Transferência de hipertexto (HTTP) Servidor Web disponibiliza páginas Servidor utiliza a porta 80 por defeito Cliente Web (browser) requisita páginas Cria uma conexão TCP ao servidor HTTP assenta em cima do TCP HTTP v1.1 definido no RFC 2068 melhoramento principal em relação á v1.0: única conexão de TCP para múltiplos pedidos de HTTP