Buscar

Aula 02 Protocolos UDP e TCP

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

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais