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