230 likes | 324 Views
Aula 64 – TEC 11ºF. Redes de computadores Prof. António dos Anjos. Camada de Transporte (relembrar). Assegura a entrega fiável dos pacotes: Como estabelecer uma ligação lógica? (e.g. SYN, FIN) Como saber se o pacote foi entregue com sucesso? (e.g. ACK ≈ Aviso Recepção);
E N D
Aula 64 – TEC 11ºF Redes de computadores Prof. António dos Anjos
Camada de Transporte (relembrar) • Assegura a entrega fiável dos pacotes: • Como estabelecer uma ligação lógica? (e.g. SYN, FIN) • Como saber se o pacote foi entregue com sucesso? (e.g. ACK ≈ Aviso Recepção); • Quanto tempo esperar pela confirmação? • Como fazer para não sobrecarregar o destinatário com demasiados pacotes? (e.g. WinSize); • Que mecanismos utilizar para permitir o reagrupamento dos pacotes ao nível lógico? (e.g. Sequence Number). • Ao nível da Camada de Transporte, a unidade de informação é o SEGMENTO. • Exemplos de protocolos que respondem: TCP, UDP.
Camada de Transporte – Protocolos • Temos: • TCP – Transmission Control Protocol; • Usado por Telnet, HTTP, POP, FTP, etc… • UDP – User Datagram Protocol; • Usado por DHCP, TFTP, SNMP, etc… • Objectivos: • Permitir comunicação entre aplicações; • Dotar a comunicação de fiabilidade (se desejado); • Controlar fluxo e congestão (se desejado).
Camada de Transporte – Protocolos (2) • Necessitam de: • Mecanismo de endereçamento adicional para identificar cada uma das aplicações que estão a comunicar; • As aplicações são identificadas por um número ao qual se chama porta; • Exemplos: • HTTP é identificado pelo número 80; • FTP é identificado pelo número 21; • NOTA: O tema portas será aprofundado ao se analisar os protocolos da camada de aplicação!
TCP – Transmission Control Protocol • Normalizado pelo IETF como RFC 793; • O mais conhecido da camada de transporte (TCP/IP suite); • Protocolo orientado à ligação; • Estabelece a ligação lógica entre duas aplicações; • Transposta os dados entre elas; • Termina a ligação. • Criado para assegurar a fiabilidade comunicações de dados.
TCP – Fiabilidade • Estabelecimento fiável de ligação; • Transmissão fiável de dados; • Encerramento fiável da ligação.
TCP – Estabelecimento de Ligação • Faz-se através da troca de três mensagens: • “Three-way handshake” (aperto de mão a três tempos); • O mínimo e suficiente para assegurar o estabelecimento da ligação; • São utilizadas mensagens: • De sincronização (SYN – Synchronize); • De confirmação (ACK – Acknowledged).
TCP – 3-Way Handshake Tempo Tempo Envia SYN Recebe SYN Envia SYN + ACK Recebe SYN + ACK Envia ACK Recebe ACK Comunicação Estabelecida!!!
TCP – Transmissão Fiável • Confirmação de recepção: • O receptor confirma, através de uma mensagem curta (Acknowledgment), que recebeu o segmento enviado; • Retransmissão: • Se a confirmação não for recebida dentro de um período determinado, o segmento é reenviado;
TCP - Retransmissão • Quanto tempo esperar pela confirmação (ACK)? • Depende da distância ao destino e das condições do tráfego no momento. • O tempo de espera num determinado momento é estimado a partir do Round-Trip Time de cada ligação e o tempo estimado presente: • Chama-se, por isso, retransmissão adaptável; • O segredo do sucesso do TCP!
TCP – Controlo de Congestão • A congestão é detectada por: • Ocorrência de Timeout (ACKs não chegam); • Recepção duplicada de ACKs. • Ao serem detectadas colisões: • O envio de segmentos é reduzido drásticamente (Collision Avoidance Algorithm); • Depois começa a aumentar devagar, inicialmente, e exponencialmente com o tempo (Slow Start Algorithm);
TCP – Controlo de Fluxo • O receptor: • Anuncia, a cada ACK, o espaço livre do seu bufffer (window size); • O emissor: • Envia segmentos até ao limite da janela (window size), sem ter de esperar por confirmação (ACKs); • Este mecanismo é conhecido como Protocolo da Janela Deslizante (Sliding Window Protocol).
TCP –Encerramento Fiável • Importante por causa da segurança: • Se não for encerrada de forma correcta, poderão ficar portas abertas; • Alguém mal intencionado poderá aproveitar.
TCP – Encerramento Fiável (3) • O mecanismo de encerramento do TCP permite que uma das partes termine a ligação e a outra possa continuar a enviar dados; • Chama-se half-close: • O fecho da ligação num dos lados, não obriga ao fecho de ambos.
TCP – Formato (2) • Source/Destination Port • Porta remetente/destinatária (aplicação); • Sequence Number • Número de sequência do pacote; • Acknowledgment Number • Próximo número de sequência que o emissor espera receber; • HLen • Tamanho do cabeçalho;
TCP – Formato (3) • URG • O campo Urgent Pointer é válido; • ACK • O segmento é uma confirmação (Acknlowledgement); • PSH • O receptor deverá passar os dados para a camada de aplicação logo que possível; • RST • Segmento enviado não faz sentido (e.g. porta não existe); • SYN • Pedido de sincronização de números de sequência (p/iniciar ligação); • FIN • Computador emissor acabou o envio de dados (p/terminar ligação);
TCP – Formato (4) • Window • Número de bytes que o host está disposto a aceitar (espaço livre no buffer); • Checksum • Cobre o cabeçalho + dados; • Urgent Pointer • Posição onde serão colocados os dados urgentes. • Options • A opção mais comum é a MSS que define o tamanho máximo do segmento que pode ser enviado.
UDP – User Datagram Protocol • A entrega da mensagem não é assegurada (não fiável); • Não é estabelecida ligação; • Não há controlo de fluxo (não tem Window); • Não há recuperação de erros (não há ACKs); • Detecção de erros opcional (Checksum é opcional); • VANTAGEM? • Muito menor overhead!
UDP - Formato • Lenght • Comprimento em bytes do cabeçalho + dados;
TPC • Faça a análise de uma sessão de HTTP: • Atenção ao 3-Way Handshake; • Atenção à terminação da ligação; • Tente perceber as mensagens da coluna Info (no Ethereal); • Esquematize os dois acontecimentos. • Utilize os filtros de captura para capturar apenas segmentos de TCP e o tráfego do seu computador; • Ajudas: • Para iniciar sessão: Executar um browser de Internet com um endereço web. • Escolha uma página simples. Por exemplo http://www.google.pt.