Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Camada de Transporte Camada de Transporte: Protocolos UDP e TCP Prof. Msc. Felipe Lima Cronograma • Introdução • Serviços oferecidos à camada superior • Multiplexação e Demultiplexação • UDP • TCP • Introdução ao Controle de Congestionamento Camada de Transporte Introdução Camada de Transporte Introdução Criptografia e Certificados Digitais Introdução • Um protocolo de camada de transporte fornece comunicação lógica entre processos de aplicação que rodam em hospedeiros diferentes • Os processos não enxergam os detalhes da infraestrutura física utilizada para transportar as mensagens Criptografia e Certificados Digitais Introdução • Os protocolos de transporte são executados nos sistemas finais: – Lado emissor: quebra as mensagens da aplicação em segmentos e envia para a camada de rede – Lado receptor: remonta os segmentos em mensagens e passa para a camada de aplicação • Protocolos de transporte – UDP – TCP Criptografia e Certificados Digitais Introdução • A camada de transporte amplia os serviços disponibilizados pela camada de rede Criptografia e Certificados Digitais Aplicação Transporte Rede Comunicação host-host Comunicação processo-processo socket Interface entre as camadas de Aplicação e Transporte Processos Multiplexação/Demultiplexação • Multiplexação – Reunir, no hospedeiro de origem, porções de dados provenientes de diferentes portas para criar segmentos, e passar esses segmentos para a camada de rede • Demultiplexação – Entregar os dados contidos em um segmento da camada de transporte à porta correta Criptografia e Certificados Digitais Multiplexação/Demultiplexação Criptografia e Certificados Digitais Multiplexação/Demultiplexação • Multiplexação requer – Que as portas tenham identificadores exclusivos – Que cada segmento tenha campos especiais que indiquem a porta pela qual o segmento deve ser entregue Criptografia e Certificados Digitais Multiplexação/Demultiplexação • Cada número de porta é um número de 16 bits na faixa de 0 a 65535. – Os números de porta entre 0 e 1023 são denominados números de porta reservados – Eles são restritos, o que significa que estão reservados para utilização por protocolos de aplicação bem conhecidos Criptografia e Certificados Digitais Serviços da Camada de Transporte • A camada de transporte presta dois tipos de serviço: – Serviço orientado à conexões: estabelecimento da conexão, transferência de dados e enceramento – Serviço sem conexões: serviço não confiável assim como o IP Criptografia e Certificados Digitais Serviços da Camada de Transporte • A rede TCP/IP disponibiliza dois protocolos para a camada de aplicação: – UDP (User Datagram Protocol): oferece um serviço de entrega de pacotes não orientado à conexão (não confiável) – TCP (Transmission Control Protocol): oferece um serviço de entrega de pacotes do tipo orientado à conexão (confiável) Criptografia e Certificados Digitais Protocolo UDP • O UDP (User Datagram Protocol) é definido no RFC 768 • Oferece um serviço de entrega de dados não orientado à conexão • Não utiliza técnicas para detecção de erros na transmissão • Pressupõe que o hardware de rede envolvido entre o transmissor e o receptor está livre de erros Criptografia e Certificados Digitais Estrutura do Segmento UDP Criptografia e Certificados Digitais Multiplexação/demultiplexação com UDP • Criação de uma porta UDP – DatagramSocket mySocket = new DatagramSocket(); – DatagramSocket mySocket = new DatagramSocket(19157); • Um socket UDP é totalmente identificado por uma tupla com dois elementos, consistindo em um endereço IP de destino e um número de porta de destino Criptografia e Certificados Digitais Multiplexação/demultiplexação com UDP Criptografia e Certificados Digitais Protocolo UDP • O objetivo do campo checksum é detectar “erros” (bits trocados) no segmento transmitido • Transmissor: – Trata o conteúdo do segmento como sequência de inteiros de 16 bits – Checksum: soma (complemento de 1 da soma) do conteúdo do segmento – Transmissor coloca o valor do checksum no campo de checksum do UDP • Receptor: – Computa o checksum do segmento recebido – Verifica se o checksum calculado é igual ao valor do campo checksum Criptografia e Certificados Digitais Vantagens do UDP • Melhor controle no nível da aplicação sobre quais dados são enviados e quando • Não há estabelecimento de conexão • Não há estados de conexão • Pequena sobrecarga de cabeçalho de pacote Criptografia e Certificados Digitais Protocolo TCP • O protocolo TCP (Transmission Control Protocol) inclui três principais serviços: – Serviço orientado para conexão: antes que as mensagens comecem a fluir, cliente e servidor trocam informações de controle. – Serviço confiável de transporte: os processos comunicantes podem confiar no TCP para a entrega de todos os dados enviados sem erro e na ordem correta – Controle de congestionamento: limita a capacidade de transmissão de um processo quando a rede está congestionada entre cliente e servidor Criptografia e Certificados Digitais Estrutura do Segmento TCP Criptografia e Certificados Digitais Protocolo TCP • Campos importantes do cabeçalho do segmento TCP – Número de sequência: número do primeiro byte nos segmentos de dados – Número de reconhecimento: número do próximo byte esperado do outro lado. Caso os segmentos cheguem fora de ordem o TCP provê reconhecimentos cumulativos Criptografia e Certificados Digitais Protocolo TCP • Suponha que um processo no hospedeiro A queira enviar uma cadeia de dados para um processo no hospedeiro B por uma conexão TCP – cadeia de dados consiste em um arquivo composto de 500.000 bytes. Criptografia e Certificados Digitais Protocolo TCP • E se os bytes chegarem fora de ordem? – Os RFCs não impõem uma regra! – Opção 1: descarte dos pacotes que chegarem fora de ordem – Opção2: esperar os pacotes que faltam Criptografia e Certificados Digitais Estudo de Caso: Telnet Criptografia e Certificados Digitais Conexão TCP • O TCP é orientado para conexão porque, antes que um processo de aplicação possa começar a enviar dados a outro, os dois processos precisam primeiramente se “apresentar” • Os processos enviam segmentos preliminares um ao outro para estabelecer os parâmetros da transferência de dados em questão Criptografia e Certificados Digitais Conexão TCP • Provê um serviço full-duplex • É sempre ponto a ponto Criptografia e Certificados Digitais Conexão TCP • A conexão TCP reside inteiramente nos dois sistemas finais Criptografia e Certificados Digitais Conexão TCP • Estabelecendo a conexão... – Processo cliente: inicia a conexão – Processo servidor: espera por requisições dos clientes • Apresentação de três vias Criptografia e Certificados Digitais Conexão TCP • Apresentação de três vias Criptografia e Certificados Digitais Conexão TCP • Encerrando a conexão... Criptografia e Certificados Digitais Conexão TCP • Estados de uma conexão TCP visitados por um TCP cliente Criptografia e Certificados Digitais Conexão TCP • Estados de uma conexão TCP visitados por um TCP do lado do servidor Criptografia e Certificados Digitais Multiplexação/Demultiplexação com TCP • O socket TCP é identificado por uma tupla de quatro elementos: – Endereço IP da fonte – Número de porta da fonte – Endereço IP de destino – Número de porta do destino • Quando um segmento TCP que vem da rede chega a um hospedeiro, este usa todos os quatro valores para direcionar (demultiplexar) o segmento para o socket apropriado Criptografia e Certificados Digitais Multiplexação/demultiplexação com TCP • Cliente TCP gera um segmento de estabelecimento de conexão – Socket clientSocket = new Socket(“serverHostName”, 6789); • Servidor cria um novo socket – Socket connectionSocket = welcomeSocket.accept(); Criptografia e Certificados Digitais Multiplexação/Demultiplexação com TCP Criptografia e Certificados Digitais Controle de Congestionamento com TCP • Foi introduzido no final da década de 1980, oito anos após a pilha TCP/IP ter se tornado operacional • Imediatamente antes dessa época a Internet estava ficando congestionada Criptografia e Certificados Digitais Controle de Congestionamento com TCP • Ideia geral: – Cada origem determina quanta capacidade está disponível na rede, de modo que saiba quantos pacotes podem transitar seguramente – Ela usa a chegada de um ACK como sinal de que um de seus pacotes foi recebido pelo destino – Portanto, é seguro inserir um novo pacote na rede sem aumentar o nível de congestionamento – TCP é auto-clocking Criptografia e Certificados Digitais Controle de Congestionamento com TCP • Problemas a serem resolvidos – Determinar a capacidade disponível – A largura de banda disponível muda com o tempo – A origem precisa ajustar o número de pacotes que ela tem em trânsito • O TCP possui três mecanismos – Aumento aditivo/diminuição multiplicativa – Partida Lenta – Retransmissão rápida Criptografia e Certificados Digitais Aumento aditivo/diminuição multiplicativa • Aumento aditivo/diminuição multiplicativa – TCP mantém uma nova variável de estado para cada conexão, chamada de JanelaCongestionamento – Essa janela é usada pela origem para limitar quantos dados podem estar em trânsito em determinado momento – O número máximo de bytes não confirmados permitidos agora é o menor valor entre a janela de congestionamento e a janela anunciada Criptografia e Certificados Digitais Aumento aditivo/diminuição multiplicativa • A janela efetiva do TCP é revisada da seguinte maneira: – JanelaMáxima = MIN (JanelaCongestionamento, JanelaAnunciada) – JanelaEfetiva = JanelaMáxima – (UltimoByteEnviado – UltimoByteConfirmado) • Ou seja, JanelaMaxima substitui JanelaAnunciada no cálculo de JanelaEfetiva • O TCP considera agora a rede além do host de destino Criptografia e Certificados Digitais Aumento aditivo/diminuição multiplicativa • Como a origem TCP determina que a rede está congestionada? – Timeouts – ACKs duplicados • Toda vez que ocorre um timeout, a origem define a JanelaCongestionamento para a metade do seu valor anterior Criptografia e Certificados Digitais Aumento aditivo/diminuição multiplicativa • O que pode acontecer se a JanelaCongestionamento for definida como 16 pacotes e ocorrerem perdas? – Se houver uma perda, ela passa para 8 – Perdas adicionais fazem a janela passar para 4, 2, e finalmente para 1 Criptografia e Certificados Digitais Aumento aditivo/diminuição multiplicativa • Toda vez que a origem envia com sucesso uma quantidade de pacotes correspondente a uma JanelaCongestionamento, ela aumenta o equivalente a um pacote à JanelaCongestionamento Criptografia e Certificados Digitais Aumento aditivo/diminuição multiplicativa Criptografia e Certificados Digitais Partida Lenta • Aumenta a janela de congestionamento exponencialmente, em vez de linearmente Criptografia e Certificados Digitais Retransmissão Rápida • A implementação esparsa dos timeouts do TCP ocasiona longos períodos de tempo durante os quais a conexão fica morta enquanto aguarda um temporizador expirar • A retransmissão rápida é uma heurística que dispara a retransmissão de um pacote rejeitado mais cedo do que um mecanismo de timeout normal Criptografia e Certificados Digitais Retransmissão Rápida Criptografia e Certificados Digitais Aplicações e seus Protocolos Criptografia e Certificados Digitais Bibliografia • KUROSE, J.F e ROSS, K.W.: Computer Networking third edition a top-down approach featuring the Internet, 5 ed, São Paulo: Pearson Addison Wesley, 2013. • TANENBAUM, A.S.: Redes de Computadores, Elsevier, Rio de Janeiro: 2013. • Deitel, H. M. & Deitel, P. J. Java: como programar, Editora Bookman. 6ª ed. São Paulo: 2014. Criptografia e Certificados Digitais
Compartilhar