Transporte. Transporte. Nível de Transporte Portas, Protocolos UDP e TCP. Transporte. Transporte. Nível de Transporte



Documentos relacionados
Nível de Transporte Portas, Protocolos UDP e TCP

Redes de Computadores. Aplicação. Apresentação. Apresentação. Sessão. Sessão. Transporte. Transporte. Rede. Rede. Enlace. Enlace. Físico.

Camada de Transporte, protocolos TCP e UDP

Nível de Transporte Portas, Protocolos UDP e TCP

Redes de Computadores. Camada de Transporte

Redes de Computadores II

Arquitetura TCP/IP. Parte XI Transporte orientado a conexão (TCP) Fabrízzio Alphonsus A. M. N. Soares

Tecnologia de Redes de Computadores

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento

Transporte. Sua função é: Promover uma transferência de dados confiável e econômica entre máquina de origem e máquina de destino.

Curso: Tec. Em Sistemas Para Internet 1 semestre Redes de Computadores Memória de Aula 07. Prof. Moises P. Renjiffo

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Camada de Transporte. Protocolos TCP e UDP

Camada de rede. Camada de enlace. Meio Físico

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de Página

Nível de Transporte Portas, Protocolos UDP e TCP

A Camada de Transporte

Fundamentos de Redes. Protocolos de Transporte. Djamel Sadok Dênio Mariz.

Redes de Computadores_Marcelo Furtado Pratica 2- Qualidade de serviços

REDES DE COMPUTADORES

Redes de Computadores

Redes de Computadores

Programação TCP/IP. Protocolos TCP e UDP

REDES DE COMPUTADORES

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Redes de Computadores. 1 Questões de múltipla escolha. TE090 - Prof. Pedroso. 17 de junho de 2015

CCNA 1 Conceitos Básicos de Redes. Módulo 11 Camada de Transporte TCP/IP Camada de Aplicação

Introdução à Redes de Computadores

Lab 4 Análise de Pacotes utilizando o TCPDUMP

CAPÍTULO 6 A CAMADA DE TRANSPORTE

Redes de Computadores. Trabalho de Laboratório Nº7

Redes de computadores. Redes para Internet

Cliente-servidor com Sockets TCP

Capítulo 7 CAMADA DE TRANSPORTE

Introdução ao Protocolo TCP/IP. Prof. Gil Pinheiro UERJ/FEN/DETEL

Introdução. Algumas terminologias. Camada de Enlace de Dados. Prof. Leandro Pykosz

genérico proteção de rede filtragem dos pacotes Sem estado (stateless) no próprio pacote. Com estado (stateful) outros pacotes

Redes de Computadores

6 de Julho de Exercício 23 Para que servem portas na camada de transporte?

1. PRINCIPAIS PROTOCOLOS TCP/IP

TCP - estabelecimento de conexão

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

PEL/FEN Redes de Computadores 2015/1 Primeira Lista de Exercícios Prof. Marcelo Gonçalves Rubinstein

Informática I. Aula Aula 22-03/07/06 1

Camada Transporte Parte 2. Prof. Dr. S. Motoyama

Prof. Luís Rodolfo. Unidade III REDES DE COMPUTADORES E TELECOMUNICAÇÃO

Redes de Computadores. Protocolos de comunicação: TCP, UDP

REDES DE COMPUTADORES II. Ricardo José Cabeça de Souza

Endereços de transporte TPDU. Nível de Rede Endereço de rede. Figura 1. Entidade de transporte

Bacharelado em Informática

2 Controle de Congestionamento do TCP

Exercícios de Revisão Redes de Computadores Edgard Jamhour. Segundo Bimestre

TCP - multiplexação/demultiplexação

Sistemas Distribuídos

REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 12

robustez; confiabilidade; e comunicação de dados independente de fornecedores.

Redes de Computadores. Protocolo TCP/IP Profa. Priscila Solís Barreto

Comunicação de Dados

Tecnologia de Redes. Protocolo TCP

Camada de Aplicação. Prof. Eduardo

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

CAMADA DE TRANSPORTE

Análise Comparativa dos Algoritmos de Controle de Congestionamento do TCP

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

MÓDULO 8 Modelo de Referência TCP/IP

Programação de Sockets em C/C++

UNIVERSIDADE. Sistemas Distribuídos

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano.

Qualidade em Servicos de Rede Prof. Eduardo Maronas Monks Roteiro de Laboratorio Camada de Transporte Parte II

Redes de Computadores

Redes de Computadores

Capítulo 7 CAMADA DE TRANSPORTE

Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)

Camada de Transporte

A CAMADA DE TRANSPORTE

Sockets. Bruno Guimarães Lucas Rossini

Redes de Computadores

Controle de Congestionamento em TCP Parte 2. Prof. Dr. S. Motoyama

1 Redes de Computadores - TCP/IP Luiz Arthur

Protocolos de Comunicação

Redes de Telecomunicações (11382)

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

Camada de Transporte TCP/IP e Aplicação

Redes de Computadores

Protocolos de Rede. Protocolos em camadas

Redes de computadores e a Internet. Capítulo3. Camada de transporte

Ping. O programa Ping, opção de record route e de timestamp.

Redes de Computadores. Camada de Transporte de Dados: protocolos TCP e UDP Prof. MSc Hugo Vieira L. Souza

REDES DE COMPUTADORES

REDES COMPONENTES DE UMA REDE

Cliente-servidor com Sockets TCP

Arquiteturas de Rede. Prof. Leonardo Barreto Campos

Protocolos TCP e UDP. Protocolo TCP. Protocolo TCP. A necessidade de uma comunicação segura: Transmission Control Protocol

Transcrição:

Departamento de Engenharia de Telecomunicações - UFF Disciplina: Nível de Transporte Portas, Protocolos UDP e TCP Nível de Transporte Profa. Débora Christina Muchaluat Saade deborams@telecom.uff.br br 2 Camada de Transporte Camada de Transporte plicação presentação Sessão Transporte Rede Enlace Físico Host plicação presentação Sessão Transporte Rede Enlace Físico comunicação fim-a-fim Rede Rede Enlace Enlace Físico Físico Host plicação presentação Sessão Transporte Rede Enlace Físico plicação presentação Sessão Transporte Rede Enlace Físico Fornece meios para estabelecer, manter e liberar conexões de transporte no serviço orientado à conexão Transporte de unidades de dados do serviço de transporte (SDUs ou mensagens) Segmentação e blocagem Detecção e correção de erros fim a fim Sequenciação Controle do fluxo de dados nas conexões de transporte Multiplexação ou splitting 4 5

Services Provided to the Upper Layers Transport Service Primitives (2) The network, transport, and application layers. The nesting of TPDUs,, packets, and frames. 6 7 ddressing Endereçamento ssociação do T-SPT ao SP de rede endereço hierárquico O endereço do SP de rede pode ser um campo do endereço do SP de transporte Endereço horizontal Servidor de nomes TSPs, NSPs and transport connections. 9 10

Estabelecimento de Conexão Indevida Estabelecimento de Conexões Utilizando Three-way Handshake PC(1) PC(2) Timeout PC(2) PC(a) PC(a) CC(2) D(1) D(2) CC(2) D(2) CC(b,a) D(a,b) CC(b,a) D(a,b) PC(1) E1 E2 CC(1) PC - Pedido de Conexão CC - Confirmação da Conexão D - E1 E2 CC(1) D(1) PC(i) = Pedido de conexão (seq=i) CC(j,i) = Confirmação de conexão (seq=j, ack=i) D(i,j) = (seq=i, ack=j) 16 17 Estabelecimento de Conexões Utilizando Three-way Handshake Protocolos de Transporte PC(a) PC(b) PC(b) Timeout Mesmas técnicas do nível de enlace agora aplicadas fim-a-fim CC(c,b) D(b,c) D(b,c) CC(c,b) D(b,c) Controle de Fluxo Stop-and and-wait Sliding Windows PC(a) CC(k,a) CC(k,a) R(k) D(b,c) R(j) = Rejeita conexão (ack=j) E1 E2 R(k) Controle de Erro RQ utomatic Repeat Request Selective Repeat Go ack N 18 21

Identificação do destinatário final P1 P2 Em geral, uma aplicação é o destinatário final de uma mensagem Nível de de Transporte na na rquitetura TCP/IP Portas encapsulados pelo datagrama IP Inter-rede rede Int. de adaptação Protocolo IP não possui um mecanismo próprio para endereçar mais de uma aplicação destino na mesma máquina IP oferece um único SP de rede Solução: uma aplicação só acessa a rede via camada de transporte Intra-rede rede 31 33 Camada de Transporte Multiplexação e Demultiplexação plicação plicação 1 plicação 2 TCP Transporte UDP Função básica: multiplexação/ demultiplexação Porta 126 Porta 34 Porta 22 TCP/UDP Inter-rede IP 35 36

Identificação do destinatário final Endereçamento hierárquico em TCP/IP Utilizar um esquema próprio para a camada de transporte e independente dos SOs Camada de transporte fornece às aplicações um conjunto de portas que dão acesso ao SC provido pelo IP plicação origem deve conhecer end. IP do host onde está a aplicação destino e porta a qual a aplicação está ligada (End. IP, Porta) ) em TCP/IP T-SP no OSI apl apl apl apl H H H Rede plicações Distribuídas H Inter-rede rede G Rede C H H Rede H H apl apl apl apl apl 37 38 Portas Protocolos de Transporte Identificadores numéricos de 16 bits (0 a 65535) ntes de utilizar o UDP ou TCP, a aplicação deve se associar a um número de porta (bind) Identificação (End. IP, Porta) ) é comumente chamada de socket erkeley sockets (Unix) e Winsock (Windows): PIs que possibilitam a criação e uso de sockets em uma aplicação Serviço sem conexão não confiável Protocolo UDP Serviço orientado a conexão confiável Protocolo TCP 5 10 11 25 221 2430 UDP ou TCP 39 40

Protocolo UDP Protocolo UDP (User Datagram Protocol) Fornece serviço sem conexão fim-a-fim não confiável utilizando os serviços do protocolo IP diretamente Permite a multiplexação/demultiplexação do SP IP entre várias aplicações por meio de portas Ideal para aplicações que não precisam de conexão Menor tráfego e mais eficiência 41 42 Formato da mensagem UDP Multiplexação e demultiplexação UDP 0 7 15 23 31 Octeto 1 Octeto 2 UDP SOURCE PORT UDP MESSGE LENGTH DT... Octeto 3 Octeto 4 UDP DESTINTION PORT UDP CHECKSUM plicação 1 Porta 126 Porta 34 Porta 22 UDP IP plicação 2 Em um mesmo host, duas aplicações distintas podem usar a mesma porta (em tempos diferentes) Portas UDP Filas de mensagens Se a fila correspondente à porta estiver cheia,, a mensagem UDP é descartada Se uma mensagem UDP for endereçada a uma porta não utilizada no momento,, a mesma é descartada e é gerada uma mensagem ICMP Port Unreachable 43 46

Uso de portas UDP plicações devem entrar em acordo quanto às portas a serem utilizadas bordagem 1: Números bem-conhecidos para serviços, atribuídos pela IN Portas < 1024 (Well-Known Ports - WKPs) Geralmente utilizada por servidores Exemplos: 53 DNS Server 69 TFTP 67/68 DHCP Server/Client bordagem 2: locação dinâmica de portas (em geral, controlada de forma aleatória pelo SO) Protocolo TCP 47 48 Protocolo TCP (Transmission Control Protocol) Multiplexação do SP IP por meio de portas Serviço orientado a conexão (circuito virtual) e confiável Seqüenciação Controle de fluxo e erro fim-a-fim Transmissão de fluxos de bits Menor unidade de transmissão: octeto Desassociação da qtd.. de dados enviados pela aplicação Segmentação e blocagem Conexão full-duplex Fluxos independentes nas duas direções Multiplexação e demultiplexação TCP Porta 22 Porta 2340 Conexão = TCP TCP (139.82.17.10,22) + (139.82.55.3,2340) IP Inter-rede rede Para o TCP, não basta associar uma porta a uma aplicação. É necessário o estabelecimento de uma conexão entre a aplicação origem e a aplicação destino Uma conexão é identificada por um par de sockets Uma porta pode ser compartilhada entre várias conexões em um mesmo host simultaneamente Host 139.82.17.10 Host 139.82.55.3 IP 50 52

ind c/ porta ORIG Estabelecimento de conexões Quem inicia o estabelecimento da conexão? plicação ativa X plicação passiva Estabelece conexão (ativa) Requisição de estabelecimento Resposta de requisição Espera conexão (passiva) pós o estabelecimento da conexão,, as aplicações podem transmitir fluxos de dados entre si, independentemente da passividade ou atividade das mesmas durante o estabelecimento ind c/ porta DEST Uso de portas TCP ind da aplicação ativa: alocação dinâmica de portas ind da aplicação passiva: : Well-Known Ports Exemplos: 20 FTP-DT 79 Finger 21 FTP Control 80 HTTP 23 Telnet 110 POP3 25 SMTP 161 SNMP 53 DNS Server 443 HTTPS 53 54 Segmentação e blocagem no transmissor Segmentação e blocagem no receptor Fluxo de bits original Fluxo de bits original plicação Transmissora plicação Receptora Padrão gerado pela escrita da aplicação Segmentos TCP enviados Padrão gerado pela leitura da aplicação Segmentos TCP recebidos Porta 126 TCP IP Em geral,, o tamanho máx.. de um segmento TCP corresponde a um datagrama IP que não sofra fragmentação na origem. Isso não significa que os segmentos relativos a uma conexão precisem ter sempre o mesmo tamanho. Porta 126 TCP IP plicação receptora recebe os bits do fluxo original na mesma ordem em que foram enviados pela aplicação transmissora 55 56

Octeto 1 Formato do segmento TCP 0 7 15 23 31 HLEN Octeto 2 TCP SOURCE PORT RESERVED CHECKSUM DT (IF NY) Octeto 3 UENCE NUMER NOWLEDGEMENT NUMER CODE ITS OPTIONS (IF NY) Octeto 4 TCP DESTINTION PORT DOW URGENT POINTER PDDING Sequenciação, controle de erro e de fluxo Controle de segmentos perdidos, recebidos fora de ordem ou duplicados Cada segmento possui um número de seqüência Detecção de erros Checksum (em caso de erro, segmento é descartado) Reconhecimento de segmentos Correção de erros (por perda ou descarte) Retransmissão de segmentos não reconhecidos Controle de fluxo Mecanismo de janelas deslizantes (Sliding Windows) 58 60 Janelas deslizantes no TCP tuam no controle de fluxo E no controle de erro Controle de fluxo Restringem a velocidade do transmissor caso o receptor não tenha buffer suficiente para receber mais dados Controle de erro Permitem identificar os segmentos já reconhecidos Quatro janelas por conexão Tamanho das janelas é variável Janelas operam sobre octetos, não sobre segmentos Janelas deslizantes no TCP Janela de transmissão (Octetos) Transmitidos e reconhecidos uffer ocupado com octetos não lidos pela aplicação receptora segmentos Em processo de transmissão Janela de recepção (Octetos) uffer livre para recepção inda a serem transmitidos 61 62

Janelas deslizantes no TCP Janelas deslizantes no TCP Janela de transmissão (Octetos) Janela de transmissão (Octetos) Necessário para o controle de retransmissões (X octetos) Janela de recepção (Octetos) (X octetos) Janela de recepção (Octetos) 63 64 Janelas deslizantes no TCP Janelas deslizantes no TCP Janela de transmissão (Octetos) Janela de transmissão (Octetos) (reconhecimento( reconhecimento) Janela de recepção (Octetos) Janela de recepção (Octetos) Reconhecimentos são sempre cumulativos, isto é, especificam o número de seqüência do próximo OCTETO que o receptor espera receber. 65 66

Janelas deslizantes no TCP Janela de transmissão (Octetos) Janelas deslizantes no TCP Janela de transmissão (Octetos) (atualização( de janela) Janela de recepção (Octetos) Janela de recepção (Octetos) plicação receptora lê Y octetos 67 68 Janelas deslizantes no TCP Janela de transmissão (Octetos) Janela de recepção (Octetos) ufferização e temporização são fundamentais para controle de erro e fluxo em TCP 0 7 15 23 Octeto 1 Octeto 2 Octeto 3 HLEN TCP SOURCE PORT RESERVED CHECKSUM UENCE NUMER NOWLEDGEMENT NUMER CODE ITS OPTIONS (IF NY) Segmento TCP Octeto 4 TCP DESTINTION PORT DOW URGENT POINTER PDDING Identifica a posição, relativa ao fluxo de bits do transmissor deste segmento,, dos dados carregados pelo mesmo. OS: posição informada em octetos DT (IF NY) Informa ao receptor deste segmento o próximo Informa ao receptor deste número de seqüência que segmento a quantidade o transmissor deste máxima de octetos que o segmento espera transmissor deste receber no próximo segmento pode aceitar segmento no momento NUMER e DOW são carregados no segmento do sentido oposto (piggybacking) 31 69 70

Suposições no exemplo: - buffer de Rx de vazio neste instante - buffers de Tx de e infinitamente cheios TCP em resolve transmitir 400 octetos. Podemos inferir o novo estado do buffer de Rx de? 1052 400 octetos 2000 Tx de 1051 1052 1053 1054 1055 3048 3049 3050 3051 3052 Tx de 1051 1052 1053 1054 1055 3048 3049 3050 3051 3052 Rx de Rx de segmento recém-recebido recebido 499 500 buffer livre 501 502 2000 2001 2002 2598 2599 2600 janela de Rx: tamanho 2100 octetos E o estado do buffer de Tx de? 1052 400 octetos 2000 1052 400 octetos 2000 Tx de 1051 1052 1053 1054 1055 3048 3049 3050 3051 3052 Tx de 1051 1052 1053 2050 2051 2052 3050 3051 3052 janela de Tx: tamanho 2000 octetos Rx de segmento recém-recebido recebido 499 500 buffer livre 501 502 2000 2001 2002 2598 2599 2600 janela de Rx: tamanho 2100 octetos Rx de segmento recém-recebido recebido 499 500 buffer livre 501 502 2000 2001 2002 2598 2599 2600 janela de Rx: tamanho 2100 octetos

TCP em resolve transmitir 1000 octetos 1052 400 octetos 2000 1052 400 octetos 2000 1052 501 1000 octetos 2100 segmento a ser transmitido Tx de 1051 1052 1053 2050 2051 2052 3050 3051 3052 janela de Tx: tamanho 2000 octetos Tx de 1051 1052 1053 2050 2051 2052 3050 3051 3052 janela de Tx: tamanho 2000 octetos Rx de segmento recém-recebido recebido 499 500 buffer livre 501 502 2000 2001 2002 2598 2599 2600 janela de Rx: tamanho 2100 octetos Rx de segmento recém-recebido recebido 499 500 buffer livre 501 502 2000 2001 2002 2598 2599 2600 janela de Rx: tamanho 2100 octetos TCP em resolve transmitir mais 500 octetos plicação em leu 300 octetos 1052 501 1000 octetos 2100 2052 501 2100 500 octetos Podem ser enviados vários segmentos antes de algum reconhecimento (respeitando a janela de Tx) Tx de 2052 501 2100 500 octetos segmento segmento recém-transmitido a ser transmitido 1051 1052 2051 2052 2551 2552 3051 3052 janela de Tx: tamanho 2000 octetos Rx de 499 500 501 502 2000 2001 2002 2598 2599 2600 janela de Rx: tamanho 2100 octetos Rx de 499 500 501 502 2000 2001 2002 2598 2599 2600 janela de Rx: tamanho 2100 octetos

TCP em resolve transmitir 1500 octetos 2052 501 2100 500 octetos 2052 501 2100 500 octetos Segmento carregando somente atualização de janela 2552 501 2400 Rx de 401 499 500 501 502 2000 2001 2002 2898 2899 2900 janela de Rx: tamanho 2400 octetos Rx de 401 499 500 501 502 2000 2001 2002 2898 2899 2900 janela de Rx: tamanho 2400 octetos 2052 501 2100 500 octetos 2052 501 2100 500 octetos 501 2552 1500 octetos 4000 501 2552 1500 octetos 4000 Tx de 2551 2552 2553 3000 3001 3002 3002 6550 6551 6552 janela de Tx: tamanho 4000 octetos Rx de 401 segmento recém-recebido recebido 499 500 501 502 2000 2001 2002 2898 2899 2900 janela de Rx: tamanho 900 octetos Rx de 401 499 500 501 502 2000 2001 2002 2898 2899 2900 janela de Rx: tamanho 900 octetos

TCP em resolve transmitir 450 octetos 2052 501 2100 500 octetos 501 2552 1500 octetos 4000 501 2552 1500 octetos 4000 2552 2001 900 450 octetos segmento a ser transmitido Tx de 2551 2552 2553 3000 3001 3002 3002 6550 6551 6552 janela de Tx: tamanho 4000 octetos Tx de 2551 2552 2553 3000 3001 3002 6550 6551 6552 janela de Tx: tamanho 4000 octetos Rx de 401 499 500 501 502 2000 2001 2002 2898 2899 2900 janela de Rx: tamanho 900 octetos Rx de 2400 octetos 401 499 500 501 502 2000 2001 2002 2898 2899 2900 janela de Rx: tamanho 900 octetos TCP em resolve reconhecer 450 octetos (por exemplo, já se passaram 0.2 seg desde o último reconhecimento) 501 2552 1500 octetos 4000 2552 2001 900 450 octetos 2552 2001 900 450 octetos Segmento carregando somente reconhecimento 2001 3002 3550 segmento a ser transmitido Tx de 2551 2552 2553 3000 3001 3002 6550 6551 6552 janela de Tx: tamanho 4000 octetos Tx de 2551 2552 2553 3000 3001 3002 6550 6551 6552 janela de Tx: tamanho 3550 octetos Rx de 2400 octetos 401 499 500 501 502 2000 2001 2002 2898 2899 2900 janela de Rx: tamanho 900 octetos Rx de 2400 octetos 401 499 500 501 502 2000 2001 2002 2898 2899 2900 janela de Rx: tamanho 900 octetos

Tx de Rx de 2400 octetos E se o reconhecimento não chegar antes do timeout? Retransmissão 401 timeout 499 2552 2001 2552 2001 900 segmento a ser transmitido 450 octetos 2551 2552 2553 4050 4051 4052 6550 6551 6552 janela de Tx: tamanho 4000 octetos 1500 octetos 900 500 501 502 2000 2001 2002 2898 2899 2900 janela de Rx: tamanho 900 octetos Considerações a respeito da retransmissão 91 Novamente: reconhecimento especifica próximo OCTETO esperado pelo receptor TCP não é obrigado a retransmitir o segmento original. Ele pode transmitir um segmento resultante da união de dois ou mais segmentos consecutivos (repacketization), respeitando o tamanho máximo que um segmento pode ter Configuração do timeout de retransmissão Timeout pequeno: retransmissões desnecessárias Timeout grande: baixo throughput Timeout e Retransmissão Definição do timeout de retransmissão 92 Para acomodar as variações de atrasos que acontecem em um ambiente inter-rede rede,, o TCP usa um algoritmo adaptativo de retransmissão que monitora os atrasos em cada conexão e ajusta seu parâmetro de timeout de acordo. Variável básica para cálculo do timeout medida dinamicamente: round trip time - tempo entre cada segmento enviado e seu respectivo reconhecimento 93 Variável básica: : round-trip time (tempo entre cada segmento enviado e seu respectivo reconhecimento) Exemplo de fórmula para cálculo adaptativo do RTT RTT = (a * OLD_RTT) + ((1-a) * NEW_RTT_SMPLE) RTT inicial = 0 (RFC 1122) Exemplo de fórmula para definição do timeout em função de RTT Timeout = b x RTT b pode ser estático (2) ou obtido por outro algoritmo Timeout inicial = 3 segundos Timeout máximo = 240 segundos lgoritmo de Jacobson (melhor( resposta a altas variações de RTT) usado pela maioria das implementações atuais do TCP D = variância de RTT D = yd + (1-y) RTT NEW_RTT_SMPLE Timeout = RTT + 4D

Timeout = 3000 ms NEW_RTT_SMP = 1000ms RTT = 500 ms Timeout = 1000 ms Timeout esgotado NEW_RTT_SMP =? Cálculo do timeout = 100 = 200 = 300 = 400 = 300 mbiguidade de reconhecimento α = 0.5, β = 2 Tamanho dos segmentos = 100 = 300 = 500 mbiguidade de reconhecimento Caso o reconhecimento do segmento chegue após a retransmissão do mesmo, como saber se o reconhecimento se refere ao segmento original ou a retransmissão para calcular o round trip time? Solução: não considerar RTT de segmentos retransmitidos RTT pode permanecer indefinidamente inadequado lgoritmo de Karn Timer ackoff: toda vez que um segmento é retransmitido, timeout é multiplicado por N (normalmente( 2) Quando é recebido o reconhecimento correspondente a um segmento não retransmitido,, RTT e Timeout são recalculados com base nos valores anteriores aos ackoffs 94 95 lgoritmo de Karn Considerações a respeito do controle de fluxo NEW_RTT_SMP = 1000ms RTT = 500 ms Timeout = 1000 ms Karn Timeout = 2000 ms Timeout = 2000 ms NEW_RTT_SMP = 800 ms RTT = 650 ms = 100 = 200 = 300 = 400 = 300 = 500 α = 0.5, β = 2 Tamanho dos segmentos = 100 = 300 = 500 = 600 Receptor informa DOW = 0 quando não consegue mais receber Quando espaço é liberado,, receptor envia atualização de janela com DOW > 0 E se a atualização de janela for perdida? Transmissor envia segmentos de um único octeto periodicamente (window probes) para testar tamanho da janela de recepção do receptor E se a aplicação receptora estiver lendo do buffer blocos de dados muito pequenos,, em comparação com a taxa de envio do módulo TCP no transmissor? Timeout = 1300 ms 96 97

Controle de fluxo Controle de fluxo (continuação) Tamanho dos segmentos = 100 = 100 = 200 = 300 = 400 = 500 = 300 = 299 pl. lê um octeto = 300 = 300 = 500 = 100 Tamanho dos segmentos = 1 = 500 = 600 = 601 = 600 = 0 pl. lê um octeto = 600 = 1 = 601 = 0 pl. lê um octeto = 601 = 1 = 602 = 0 = 600 = 0 Silly Window Syndrome 98 99 Silly Window Syndrome Solução no transmissor: algoritmo de Nagle Quando uma aplicação gera novos dados a serem enviados em uma conexão na qual dados anteriores foram transmitidos mas não reconhecidos, os novos dados são bufferizados, só sendo enviados quando: for possível completar um segmento de tamanho máximo OU os dados anteriores forem reconhecidos Silly Window Syndrome Solução no receptor: solução de Clark Só enviar uma atualização de janela informando DOW > 0 posteriormente a uma atualização de janela informando DOW = 0 quando buffer de recepção estiver com espaço livre igual a: pelo menos 50% do buffer OU espaço correspondente a um segmento de tamanho máximo 103

Controle de congestionamento Colapso de congestionamento 104 Controle de fluxo do TCP é fim-a-fim, fim, mas pode ocorrer congestionamento em qualquer roteador Sliding Window não garante que o TCP contribua no controle de congestionamento Roteadores na iminência de congestionamento umento do RTT Retransmissões devido a reconhecimentos atrasados umento da carga nos roteadores congestionados Descarte de datagramas (dados e s) em roteadores congestionados Colapso de congestionamento 105 Solução: : TCP assume que grande parte das perdas de segmentos se deve a congestionamento É associado ao transmissor uma janela de congestionamento, que limita a transmissão de segmentos Janela de congestionamento inicial: : 1 segmento Vazão da conexão cresce com o aumento da janela de congestionamento, que em condições normais mantém seu tamanho igual ao da janela de recepção do receptor Em caso de retransmissão,, a janela de congestionamento é reduzida ao seu tamanho inicial lgoritmo de Karn é utilizado exponencialmente Como aumentar a vazão da conexão? Slow Start lgoritmo de Slow Start Para cada reconhecimento recebido (de um segmento não retransmitido), a janela de congestionamento é aumentada de um segmento (de tamanho máximo) Em condições ideais, o algoritmo de Slow Start pode levar a um crescimento exponencial da janela de congestionamento Sobrecarga na rede pode reiniciar congestionamento Solução: técnica de prevenção contra congestionamento Quando a janela de congestionamento atinge metade de seu tamanho anterior à última retransmissão,, o TCP passa a aumentar a janela de congestionamento somente quando TODOS os segmentos internos à janela forem reconhecidos Janela de congestionamento (Kbytes) 40 32 24 16 8 0 1 3 5 7 9 11 13 15 17 19 Número da transmissão 21 Tamanho dos segmentos = 1Kb Janela de Recepção = 64 Kb 23 25 106 107

Slow Start Slow Start + Decréscimo Multiplicativo lgoritmo de Slow Start reduz drasticamente a vazão de uma conexão TCP Melhoria: técnica de decréscimo multiplicativo Em caso de retransmissão,, a janela de congestionamento é reduzida pela metade, até o mínimo de um segmento de tamanho máximo Janela de congestionamento (Kbytes) 40 32 24 16 8 0 1 3 5 7 9 11 13 15 17 19 21 23 25 Número da transmissão Tamanho dos segmentos = 1Kb Janela de Recepção = 64 Kb 108 109 0 7 15 23 31 Octeto 1 Octeto 2 Octeto 3 Octeto 4 HLEN TCP SOURCE PORT RESERVED CHECKSUM UENCE NUMER NOWLEDGEMENT NUMER CODE ITS OPTIONS (IF NY) DT Segmento TCP TCP DESTINTION PORT DOW URGENT POINTER PDDING URG 111 Urgent Pointer válido Campo válido Requisição de PUSH Reinicializa conexão Sincroniza números de sequência Transmissor atingiu fim do stream PSH Uma vez que uma conexão tenha sido estabelecida, este flag permanece sempre setado RST CODE ITS (6 bits) SYN FIN Conexões TCP Estabelecimento de Conexões TCP Flag SYN=1 (code bits) Implementa three-way handshake Conexão full-duplex Encerramento de Conexões Flag FIN=1 (code bits) fluxos são encerrados de modo independente 112 na prática,, o encerramento dos fluxos costuma ocorrer consecutivamente

Caso trivial do algoritmo 3-way handshake Estabelecimento de conexões pl. ativa isn - Flag SYN = 1 Flag = 0 x octetos (x=0, geralmente) Flag SYN = 1 Flag = 1 isn+x+1 isn+y+1 isn Flag SYN = 0 Flag = 1 carrega número de seqüência inicial (ISN, incr. a cada 4µs) que cada módulo TCP vai utilizar para seqüenciar segmentos TCP permite que dados do usuário sejam enviados junto ao pedido de estabelecimento (reconhecimento na confirmação da conexão) isn+x+1 y octetos (y=0, geralmente) pl. passiva Encerramento de conexões Conexão full-duplex: fluxos são encerrados de modo independente Na prática,, o encerramento dos fluxos costuma ocorrer consecutivamente apl. fecha conexão x Flag FIN = 1 Flag FIN = 0 Flag FIN = 1 y Flag FIN = 0 x+1 y+1 x+1 y x+1 informa apl. apl. fecha conexão 113 115