Camada Transporte. 2 Camada de Transporte



Documentos relacionados
TCP: Visão geral RFCs: 793, 1122, 1323, 2018, TCP: nos. de seq. e ACKs. TCP: estrutura do segmento. TCP: Tempo de Resposta (RTT) e Temporização

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

TCP / IP. Marcos Monteiro, MBA, ITIL V3, Perito computacional Forense. contato@marcosmonteiro.com.

Redes de Computadores e a Internet

TCP - estabelecimento de conexão

TCP - multiplexação/demultiplexação

Camada de transporte. Serviços

Camada de Transporte. Protocolos TCP e UDP

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

2 Controle de Congestionamento do TCP

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

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

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

Redes de Computadores. Camada de Transporte

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

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

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de o Teste A

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

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

Redes de Computadores Camada de Transporte Protocolo TCP

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

TCP: Visão geral RFCs: 793, 1122, 1323, 2018, 2581

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

Redes de Computadores

Jones Bunilha Radtke. Tarefas:

REDES DE COMPUTADORES Camada de Transporte. Alexandre Augusto Giron

Redes de Computadores

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

REDES DE COMPUTADORES

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

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

TCP - controle de fluxo

SSC0641 Redes de Computadores

Capítulo 3: Camada de Transporte

TCP - controle de fluxo

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.

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Protocolos com paralelismo (pipelining) Pipelining: aumento da utilização

Capítulo 3 Camada de Transporte

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

Redes de Computadores

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Aulas 22 & 23. Controle de Fluxo e de Congestionamento. Eytan Modiano MIT

Redes de computadores e a Internet. Capítulo 3. Camada de transporte

UNIVERSIDADE. Sistemas Distribuídos

INTRODUÇÃO ÀS REDES DE COMPUTADORES

Redes de Computadores

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 27 de Janeiro de 2006 Exame de 2ª Época A

PROJETO DE REDES

Camada de Transporte, protocolos TCP e UDP

Camada de transporte. Camada de transporte

4. Protocolos Teóricos e Protocolos de Controlo de Ligação Protocolos ARQ; Especificação de Protocolos; Eficiência ARQ.

PTC Aula Princípios da transferência de dados confiável 3.5 Transporte orientado para conexão: TCP

Redes de Computadores

A Camada de Transporte

Redes de Computadores

Redes de computadores e a Internet. Capítulo 3. Camada de transporte

Redes de Computadores

Márcio Leandro Moraes Rodrigues. Frame Relay

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

Capítulo 3: Camada de Transporte. Multiplexação/desmultiplexação. Serviços e protocolos de transporte. Antônio Abelém abelem@ufpa.

TCP Round Trip Time e temporização

Redes de Computadores II

Capítulo 7 CAMADA DE TRANSPORTE

Redes de Computadores

Rede de Computadores II

Redes de Computadores

Slides e Notas de Aula. Adriano Mauro Cansian. adriano@ieee.org

Teleprocessamento e Redes

Redes de Computadores

Camada de transporte. Serviços

Capítulo 3 Camada de transporte

3 Qualidade de serviço na Internet

Camada de Transporte. Prof. Leonardo Barreto Campos

TCP - formato do segmento. Formato do segmento TCP (fonte: Kurose)

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

TCP FACK (Forward Acknowledment)

Multimédia, Qualidade de Serviço (QoS): O que são?

Cliente-servidor com Sockets TCP

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

PROJETO DE REDES

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

Capítulo 3: Camada de Transporte

Camada de Transporte TCP/IP e Aplicação

Instituto Superior Técnico. Projecto VoIP. Sistema IVVR

Redes de Computadores Aula 3

PTC Aula Princípios do controle de congestionamento 3.7 Controle de congestionamento no TCP

Sistemas Distribuídos

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

Nível Transporte (Modelo Internet) {TCP.doc} UDP TCP

REDES DE COMPUTADORES I 2007/2008 LEIC - Tagus-Park TPC Nº 1. Avaliação sumário da matéria do capítulo 1

ENHANCED SERVER FAULT- TOLERANCE FOR IMPROVED USER EXPERIENCE. André Esteves nº3412 David Monteiro

Transcrição:

Redes de Computadores Redes de Computadores Camada Transporte 1

Camada Transporte Serviços da camada de transporte Multiplexagem e desmultiplexagem Transporte não orientado à ligação: UDP Princípios da transferência fiável de dados Transporte com ligação: TCP transferência fiável de dados controlo do fluxo Gestão de ligações Principios do controlo do congestionamento Controlo de congestionamento do TCP 2 Camada de Transporte

Resumo dos Mecanismos de Transferência Fiável de Dados Mecanismo Soma de verificação ( checksum ) Temporizador ( timer ) Número de sequência Reconhecimento ( Acknowledgement ) Reconhecimento negativo ( NAK negative acknowledgement ) Janela, paralelismo Utilização, Comentários 3 Camada de Transporte Usado para detectar erros nos bits de um pacote transmitido Usado para controlar a temporização / retransmitir um pacote, possivelmente porque o pacote (ou o seu ACK) foi perdido dentro do canal. Como pode ocorrer o timeout do temporizador quando um pacote está atrasado, mas não perdido (timeout prematuro), ou quando um pacote foi recebido pelo destinatário mas o ACK emissor-destinatário foi perdido, um destinatário pode receber cópias duplicadas de um pacote Usado para numerar em sequência os pacotes de dados enviados do emissor ao destinatário. Gaps nos números de sequência de pacotes recebidos permitem que o destinatário detecte um pacote perdido. Pacotes com números de sequência duplicados permitem que o destinatário detecte cópias duplicadas de um pacote. Usado pelo destinatário para avisar o emissor de que um pacote ou conjunto de pacotes foi recebido correctamente. Reconhecimentos normalmente contêm o número de sequência do pacote, ou pacotes, que estão a ser reconhecidos. Reconhecimentos podem ser individuais ou cumulativos, dependendo do protocolo. Usado pelo destinatário para avisar o emissor de que um pacote não foi recebido correctamente. Reconhecimentos negativos normalmente contêm o número de sequência do pacote que não foi recebido correctamente. O emissor fica restrito a enviar somente pacotes com números de sequência contidos dentro de um determinado intervalo. Permitindo a transmissão de vários pacotes, ainda que não reconhecidos, a utilização do emissor pode aumentar em relação ao modo de operação Para e Espera.

TCP: Visão geral RFCs: 793, 1122, 1323, 2018, 2581 Ligação Ponto a ponto 1 emissor, 1 receptor Fluxo de bytes, ordenado e fiável não há delimitação de mensagens Controlo por janela (Pipelined) dimensão da janela definida pelo algoritmo de controlo da congestão e do fluxo do TCP Buffers no emissor e receptor socket door application writes data TCP send buffer 4 Camada de Transporte segment Transmissão full duplex Transmissão de dados bidirecional na mesma ligação os segmentos têm um tamanho máximo MSS (Maximum Segment Size) Protocolo orientado à ligação (3-way) handshaking (troca de mensagens de controlo) para estabelecer ligação (com inicialização do emissor e do receptor) antes da transferência de dados Controlo do fluxo Transmissões do emissor em função da capacidade de memória do receptor application reads data TCP receive buffer socket door

TCP: estrutura do segmento URG: dados urgentes (pouco usados) ACK: nº ACK válido PSH (push data now): envia dados já (pouco usado) RST, SYN, FIN: gestão da ligação (comandos de estabelecimento, libertação) checksum Internet (como UDP) 32 bits nº porto origem nº porto dest tam. cab. número de sequência número de reconhecimento sem uso checksum (ackowledgement number) UAP R SF dados da aplicação (tam. variável) janela receptor ptr dados urg. Opções (tam. variável) contagem de dados por bytes (não segmentos) nº bytes rcpt que o receptor aceita (rcvwindow) 5 Camada de Transporte

TCP: Números de Sequência e ACKs Nº s de sequência Número do primeiro byte de dados do segmento ACKs Nº de sequência do próximo byte esperado no receptor ACK cumulativo: um ACK confirma a recepção correcta dos bytes anteriores Segmentos fora da ordem depende da implementação Dados para o primeiro segmento Dados para o segundo segmento 0 1... 1000... 1999... 499999 6 Camada de Transporte Utilizador prime tecla C A reconhece chegada do C replicado Estação A Estação B Seq=42, ACK=79, data = C Seq=79, ACK=43, data = C Seq=43, ACK=80 cenário simples de telnet Ficheiro B reconhece chegada de C, envia C de volta tempo

TCP: Tempo de Resposta (RTT Round Trip Time) e Temporização (Timeout) Determinação da duração do temporizador (timeout) maior que o RTT mas o RTT varia durante uma ligação TCP demasiado curto temporização expira prematuramente retransmissões que são desnecessárias demasiado longo reacção lenta à perda de segmentos Estimativa do do RTT RTT SampleRTT: intervalo de de tempo tempo medido medido desde desde a transmissão de de um um segmento até até à recepção do do seu seu ACK ACK ignora ignora retransmissões retransmissões valor valor medido medido varia varia muito muito de de segmento segmento para para segmento segmento quer-se quer-se uma uma estimativa estimativa do do RTT RTT com com variações variações suaves suaves usar usar várias várias medições medições recentes recentes para para extrair extrair o valor valor médio, médio, não não apenas apenas o valor valor actual actual de de SampleRTT SampleRTT 7 Camada de Transporte

TCP: Tempo de Resposta e Temporização EstimatedRTT = (1-α) * EstimatedRTT + α*samplertt média deslizante com pesos exponenciais exponential weighted moving average influência de cada amostra diminui exponencialmente com o tempo valor típico de α = 0,125, β = 0,25 Determinação do valor de temporização EstimatedRTT + margem de segurança 100 grandes variações no EstimatedRTT adicionar maior margem de segurança primeiro estimar o quanto a SampleRTT desvia do EstimatedRTT Desvio_RTT = (1-β)* Desvio_RTT + β* RTT_amostra - EstimatedRTT Timeout = EstimatedRTT + 4*Desvio_RTT RTT (milliseconds) 350 300 250 200 150 RTT: gaia.cs.umass.edu to fantasia.eurecom.fr 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 SampleRTT time (seconnds) Estimated RTT 8 Camada de Transporte

Transferência Fiável de Dados no TCP O TCP cria um serviço rdt sobre o serviço não fiável do IP Segmentos em série (pipelined) Acks cumulativos O TCP usa um único temporizador para retransmissões As retransmissões são disparadas por: Final do temporizador (timeout) acks duplicados Emissor TCP simplificado transferência unidireccional sem controlo de fluxo sem controlo de congestionamento 9 Camada de Transporte

Emissor (simplificado) Nota SendBase-1: último byte reconhecido de forma cumulativa Exemplo: SendBase-1 = 71; y= 73, portanto o receptor quer receber 73+; y > SendBase, portanto novos dados foram reconhecidos. 10 Camada de Transporte NextSeqNum = número de sequência inicial SendBase = número de sequência inicial repita (sempre) { switch(event) Evento: Dados recebidos da aplicação acima Cria e envia segmento TCP com nº de sequência NextSeqNum /* NextSeqNum é o número de sequência do 1º byte do segmento*/ se (temporizador estiver desligado) liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados) Evento: Temporizador expirado (timer timeout) /* retransmissão do segmento que causou o timeout */ retransmite segmento ainda não reconhecido com o menor número de sequência reinicia o temporizador Evento: ACK recebido, com valor de campo ACK de y /* se reconhecer segmentos ainda por reconhecer*/ se (y > SendBase) { /* ACK cumulativo de todos dados até y */ /*actualiza informação sobre o que foi reconhecido*/ SendBase = y se (houver segmentos ainda não reconhecidos) liga o temporizador } senão desliga o temporizador } /* fim do repita sempre */

Retransmissão rápida (Fast Retransmit) O intervalo do temporizador é normalmente longo: atraso longo antes de reenviar o pacote perdido Detectar segmentos perdidos através de ACKs duplicados. emissor normalmente envia diversos segmentos seguidos Se um segmento se perder, provavelmente haverá muitos ACKs duplicados. Retransmissão rápida Se o emissor receber 3 ACKs para os mesmos dados, supõe que o segmento após os dados confirmados se perdeu retransmite o segmento antes que o temporizador expire Algoritmo de retransmissão rápida event: recebido ACK, com valor do campo ACK de y if (y > SendBase) { SendBase = y if (houver segmentos ainda não reconhecidos) liga temporizador else desliga temporizador } else { incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) { retransmite segmento com número de sequência y } ACK duplicado para um segmento já confirmado Retransmissão rápida 11 Camada de Transporte

TCP: Cenários de Retransmissão cenário de ACK perdido timeout prematuro ACK cumulativo Host A Host B Host A Host B Host A Host B Seq=92, 8 bytes data Seq=100, 20 bytes data ACK=120 ACK=100 Seq=92, 8 bytes data ACK=120 Seq=92 timeout Seq=92 timeout Seq=92, 8 bytes data ACK=100 X timeout loss Seq=92, 8 bytes data Seq=92, 8 bytes data ACK=100 timeout ACK=100 tempo tempo tempo X Seq=100, 20 bytes data loss ACK=120 12 Camada de Transporte

TCP Gerar ACKs Cumulativos no Receptor [RFCs 1122, 2581] Evento no Receptor Acção do Receptor TCP chegada de segmento na ordem, tudo o resto já confirmado Espera até 500ms pela chegada do próximo segmento. Se não chegar, envia ACK chegada de segmento na ordem, uma confirmação ACK atrasada envia imediatamente um único ACK cumulativo chegada de segmento fora de ordem, com nº de sequência superior ao esperado gap envia um ACK duplicado, indicando nº de sequência do próximo byte esperado chegada de segmento que completa parcial ou totalmente um buraco ( gap ) existente Envia imediatamente ACK se o segmento segue o último bem recebido na ordem (no início do gap) 13 Camada de Transporte

Controlo do Fluxo do TCP Controlo do fluxo O emissor não excede a capacidade do receptor (espaço livre na memória de recepção) RcvWindow = RcvBuffer- [LastByteRcvd - LastByteRead] (tamanho da memória de recepção) Receptor: anuncia o espaço livre incluindo o valor da RcvWindow (campo no segmento TCP) Emissor: limita os dados transmitidos e ainda não confirmados ao tamanho da RcvWindow (LastByteSent-LastByteAcked RcvWindow) Garante que o buffer do receptor não transbordará 14 Camada de Transporte

TCP: Gestão de Ligações Inicialização da Ligação em 3 passos Passo 1: sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no. inicial de seq não envia dados Passo 2: o servidor recebe SYN, responde com segmento de controle SYNACK aloca buffers especifica no. inicial de sequência servidor => receptor Passo 3: cliente recebe SYNACK, responde com segmento ACK que pode conter dados. A estabelecer ligação cliente Ligação estabelecida SYN SYN, ACK ACK servidor Cliente inicia ligação: Socket clientsocket = new Socket("hostname","port number"); Servidor: Socket connectionsocket = welcomesocket.accept(); Ligação estabelecida 15 Camada de Transporte

TCP: Gestão de Ligações (cont.) cliente fecha socket: clientsocket.close(); Fecho de Ligação Passo 1: o cliente envia um segmento de controle (TCP FIN) ao servidor A fechar ligação cliente FIN servidor Passo 2: servidor recebe o FIN e responde com ACK. Envia separadamente um FIN para o cliente ACK FIN A fechar ligação Passo 3: o cliente recebe o FIN e responde com um ACK. Entra no estado de espera temporizada (timed wait) respondendo com ACK a FINs recebidos Passo 4: o servidor recebe o ACK e fecha a ligação. espera temporizada Ligação fechada ACK Ligação fechada 16 Camada de Transporte

TCP: Gestão de Ligações (cont.) Ciclo de vida do servidor TCP Ciclo de vida do cliente TCP 17 Camada de Transporte

Princípios da transferência fiável de dados Revisão Visão Geral Serviços da camada de transporte Multiplexagem e desmultiplexagem Transporte não orientado à ligação: UDP Princípios da transferência fiável de dados Transporte orientado à ligação: TCP transferência fiável de dados controlo do fluxo Gestão de ligações Principios do controlo do congestionamento Controlo de congestionamento do TCP Estrutura do do Segmento Tempo de de Resposta e Temporização Transferência fiável de de dados Emissor TCP TCP simplificado Cenários de de retransmissão Controle de de Fluxo do do TCP TCP Gestão de de Ligações 18 Camada de Transporte

Princípios do Controlo de Congestionamento Congestionamento Informalmente: demasiadas fontes enviando demasiados dados, demasiado depressa, para uma rede com capacidade limitada Refere-se ao que se passa no interior da rede não confundir com o problema de controlo de fluxo Manifestações: perda de pacotes (excesso de tráfego em relação à capacidade de memória nos nós da rede) grandes atrasos (tempo de espera nas filas dos nós) 19 Camada de Transporte

Causas e Custos do congestionamento: Cenário 1 Dois emissores e dois receptores Um nó de encaminhamento com memória (buffers) infinitos sem retransmissões Host B Host A λin : original data Router with unlimited shared output link buffers λ out Grandes atrasos para tráfego intenso, ligação congestionada Existe um valor máximo para o throughput 20 Camada de Transporte

Cenário 2 Host B Host A λ in : original data λ' in : original data, plus retransmitted data finite shared output link buffers λ out Um router, buffers finitos Retransmissão pelo emissor de pacotes perdidos Tem-se sempre: λ = (goodput) in λ out Retransmissão perfeita apenas com perdas: λ > in λ out Se há retransmissão de pacotes atrasados (não perdidos) então λ in é maior do que no caso anterior para o mesmo λ out R/2 R/2 R/2 λ out λ in R/2 R/3 λ out λ in 21 Camada de Transporte R/2 R/4 λ out λ in Custos do congestionamento para um dado goodput há mais trabalho nos nós (retransmissões) há retransmissões desnecessárias: uma ligação transporta várias R/2 cópias de um pacote

Cenário 3 Host A λ in : original data λ' in : original data, plus retransmitted data λ out finite shared output link buffers quatro emissores caminhos origem/destino com mais de uma ligação retransmissões/ timeouts Host B Custo de congestionamento adicional quando um pacote é descartado num nó, a capacidade gasta nos nós a montante para a sua transmissão foi desperdiçada! 22 Camada de Transporte

Abordagens ao controlo de congestionamento Controlo com intervenção da rede Dos tipos de abordagens Os nós informam explicitamente os sistemas terminais do estado da rede enviando apenas um bit (SNA, DECbit, TCP/IP ECN, ATM) enviando a taxa a que o emissor deve trabalhar (ATM) Controlo extremo a extremo (abordagem usada TCP) não há informação explícita fornecida pela rede o estado de congestionamento é inferido pela observação no sistema terminal das perdas e do atraso 23 Camada de Transporte

Case-study: controlo do congestionamento em ABR da ATM ABR (available bit rate) serviço elástico se caminho do emissor subcarregado : emissor deveria usar banda disponível se caminho do emissor congestionado: emissor reduzido à taxa mínima garantida células RM (resource management) enviadas pelo emissor, intercaladas com células de dados bits na célula RM iniciados por comutadores ( apoio da rede ) bit NI: não aumente a taxa (congestionamento moderado) bit CI: indicação de congestionamento células RM devolvidas ao emissor pelo receptor, sem alteração dos bits 24 Camada de Transporte

Case-study: controlo do congestionamento em ABR da ATM Campo ER (explicit rate) de 2 bytes na célula RM comutador congestionado pode diminuir valor ER na célula taxa do emissor é assim ajustada para o menor valor possível entre os comutadores do caminho bit EFCI em células de dados ligado por comutador congestionado se EFCI ligado na célula de dados antes da célula RM, receptor liga bit CI na célula RM devolvida 25 Camada de Transporte

Controlo do Congestionamento do TCP Emissor limita a transmissão: LastByteSent-LastByteAcked CongWin Praticamente, taxa = CongWin é dinâmica, em função do congestionamento percebido da rede Detecção do congestão pelo emissor evento de perda = temporizador expira ou 3 acks duplicados emissor TCP reduz a taxa (CongWin) após evento de perda CongWin RTT Bytes/seg três três mecanismos: AIMD AIMD Partida Partida lenta lenta ( Slow ( Slowstart ) Congestion avoidance 26 Camada de Transporte

congestion window Ligação TCP de longa duração AIMD ( Additive Increase, Multiplicative Decrease ) do TCP 24 Kbytes 16 Kbytes 8 Kbytes Aumento aditivo aumento do tamanho da janela de uma unidade (segmento 1MSS) por cada RTT na ausência de eventos de perda: Teste de banda disponível ( probing for bandwidth ) idealmente: ritmo de transmissão tão grande quanto possível (Congwin tão grande quanto possível) sem perdas time Redução multiplicativa diminuição do tamanho da janela de congestionamento (CongWin Congestion Window) para metade (diminuição de um factor de 2) quando se perde um segmento (assume-se detecção por ACKs consecutivos) reinício da fase de teste de banda, aumentando gradualmente o tamanho da janela 27 Camada de Transporte

AIMD e Justiça ( Fairness ) no protocolo TCP Exemplo 2 sessões simultâneas Connection 2 throughput R equal bandwidth share Connection 1 throughput R perda: diminui janela por factor de 2 evitar congestionamento: aumento aditivo Exemplo: duas sessões simultâneas; capacidade disponível R o crescimento aditivo ( additive increase - AI) traduz-se pelo aumento de ambos os throughput ao longo de uma recta de derivada 1 a diminuição multiplicativa ( multiplicative decrease - MD) traduz-se na redução proporcional do throughput de cada sessão 28 Camada de Transporte

Justiça ( Fairness ) no protocolo TCP Justiça ( Fairness ): objectivo se N sessões TCP partilharem a mesma ligação congestionada R, cada uma deve poder usar R/N da capacidade total TCP connection 1 TCP Connection 2 Bottleneck router capacity R 29 Camada de Transporte

Justiça ( Fairness ) no protocolo TCP Justiça e o UDP Aplicações. multimedia normalmente não usam TCP não desperdiçam o ritmo de transmissão de acordo com o controlo de congestionamento Preferem usar o UDP Injecta áudio/vídeo a uma taxa constante, tolera perda de pacotes 30 Camada de Transporte Justiça e ligações TCP em paralelo nada impede que as aplicações abram ligações paralelas entre 2 sistemas terminais browsers Web já o fazem Exemplo: canal com largura de banda R partilhado por 9 ligações; nova aplicação pede 1 TCP, recebe taxa R/10 nova aplicação pede 9 TCPs, recebe taxa R/2!

Partida Lenta ( Slow Start ) do TCP RTT Estação A Estação B um segmento dois segmentos No início da ligação, CongWin = 1 MSS Exemplo: MSS = 500 bytes & RTT = 200 mseg taxa inicial = 25 kbps Largura de banda disponível pode ser >> MSS/RTT é desejável um crescimento rápido até uma taxa considerável No início da ligação, taxa é baixa mas aumenta exponencialmente até o primeiro evento de perda duplica CongWin a cada RTT através do incremento da CongWin para cada ACK recebido quqtro segmentos Algoritmo Slowstart tempo initialize: Congwin = 1 for (each segment ACKed) Congwin+=1 until (loss event OR CongWin > threshold) 31 Camada de Transporte

Congestion Avoidance - TCP Tahoe Detecta as perdas através de timeouts Em caso de perda: Reduz threshold para metade do valor da janela CongWin é reduzida a 1 MSS janela cresce exponencialmente até um limiar, depois Partida lenta cresce linearmente Congestion avoidance /* slowstart over: Congwin > threshold */ Until (loss event) { every w segments ACKed: Congwin++ } threshold = Congwin/2 Congwin = 1 perform slowstart /* : versão TCP Reno não executa a fase slow start depois de 3 ACK s do mesmo segmento */ 32 Camada de Transporte

Congestion Avoidance - TCP Reno Fast retransmission/fast recovery 3 ACK s duplicados (Fast Retransmit) Perda por timeout: Funciona como TCP Tahoe Em caso de perda por ACK s duplicados Reduz threshold para metade do valor da janela Reduz a dimensão da janela para metade a janela depois cresce linearmente Filosofia ACKs duplicados indica que a rede é capaz de entregar alguns segmentos timeout do temporizador antes de n ACKs duplicados é mais alarmante. 33 Camada de Transporte

Controlo do Congestionamento do TCP Resumo Quando a CongWin está abaixo do limiar (threshold), emissor está na fase de início lento, janela cresce exponencialmente. Quando a CongWin está acima do limiar, emissor está na fase de evitar congestionamento, janela cresce linearmente. Quando chegam 3 ACKs, Limiar passa a ser CongWin/2 e CongWin passa ao valor do Limiar. Quando temporizador chega a timeout,limiar passa a ser CongWin/2 e CongWin passa a ser 1 MSS. 34 Camada de Transporte

Controlo do Congestionamento do TCP Vantagens Desempenho razoável sobre uma grande variedade de tecnologias Desvantagens Nem todas as perdas são motivadas por sobrecarga na rede Ex: em redes wireless o meio é muito sujeito a perdas Solução possível: nível lógico informar o TCP de perdas que não são motivadas por congestionamento O TCP assume que existem perdas porque a fonte tem uma Janela de Transmissão muito grande e não prevê a existência de fontes mal comportadas Comportamento oscilatório das taxas das fontes Algoritmo muito sensível aos valores de threshold e às dimensões dos buffers nos pontos de estrangulamento 35 Camada de Transporte

Taxa (throughput) do TCP Taxa média do TCP em função da janela e do RTT (Ignorando a partida lenta) Seja W o tamanho da janela quando ocorre a perda taxa é W/RTT Imediatamente após a perda, janela deminui para W/2, taxa reduzida para W/2RTT Taxa média = 0,75 W/RTT Futuro do TCP Exemplo: segmentos de 1500 bytes, RTT de 100ms Objectivo: taxa de 10 Gbps Requer janela de W = 83.333 segmentos em trânsito Taxa em termos de taxa de perdas: 1,22 MSS L = 2 10-10 Taxa de perdas demasiado baixa!!! São necessárias novas versões do TCP para altas velocidades! 36 Camada de Transporte RTT L

Modelação da Latência no TCP Tempo para receber um ficheiro de um servidor a partir do instante de inicio do pedido? Estabelecimento da ligação TCP Tempo de transferência dos dados Dois casos a considerar: Hipóteses e Notação existe apenas uma ligação entre cliente e servidor de capacidade R janela de congestionamento de tamanho W segmentos S: MSS (bits) O: tamanho dos dados (bits) sem retransmissões (não há perdas nem erros) WS/R > RTT + S/R: ACK do primeiro segmento na janela chega antes de enviar todos dados na janela WS/R < RTT + S/R: aguarda ACK depois de enviar todos os dados na janela 37 Camada de Transporte

TCP: Modelação da latência (W fixo) Cenário 1 WS/R > RTT + S/R ACK do primeiro segmento da janela chega ao emissor antes do fim da transmissão de todos os segmentos na janela latência = 2RTT + O/R 38 Camada de Transporte

TCP: Modelação da latência (W fixo) Cenário 2 WS/R < RTT + S/R é necessário esperar pelo ACK depois de enviar todos os segmentos na janela para retomar a transmissão. K= O/WS número de janelas necessárias à transmissão do objecto latência = 2RTT + O/R + (K-1)[S/R + RTT - WS/R] 39 Camada de Transporte

Modelação da latência TCP - fase Slow start A latência de um objecto (ficheiro de dados) de tamanho O é: Latência O S P = 2RTT + + P RTT (2 1) R + R P é o número de vezes que o TCP é obrigado a parar no servidor: P = min{ Q, K 1} - onde Q é o número de vezes que o TCP seria obrigado a parar se os dados tivessem tamanho infinito (WS/R <> RTT + S/R), e - K é o número de janelas que contêm todos os dados do ficheiro (2 k-1 <>O/S) S R 40 Camada de Transporte

Modelação da latência do TCP: fase Slow start Exemplo initiate TCP connection O/S = 15 segmentos K = 4 janelas, Q = 2 P = min{k-1,q} = 2 Exemplo Servidor parado P=2 unidades de tempo request object RTT first window = S/R second window = 2S/R third window = 4S/R fourth window = 8S/R object delivered time at client time at server complete transmission 41 Camada de Transporte

Modelação da latência: fase Slow start - Calculo da Latência do TCP initiate TCP connection S +RTT = tempo desde que o servidor começa R a enviar segmentos até que o servidor receba os reconhecimentos k 2 1 S = tempo para transmitir a k - ésima R janela request object RTT first window = S/R second window = 2S/R third window = 4S/R fourth window = 8S/R S R + RTT + k 2 1 S = tempo parado após ak ésima R janela object delivered time at client time at server complete transmission latência P O O = + 2RTT + Tempo parado p = + 2RTT + R R p = 1 P k = 1 S R + RTT 2 k 1 S R = O R + 2RTT + P RTT + S R (2 P 1) S R 42 Camada de Transporte

Controlo do congestionamento Revisão e Resumo Serviços da camada de transporte Multiplexagem e desmultiplexagem Transporte não orientado à ligação: UDP Princípios da transferência fiável de dados Transporte orientado à ligação: TCP transferência fiável de dados controlo do fluxo Gestão de ligações Principios do controlo do congestionamento Controlo de congestionamento do TCP 43 Camada de Transporte Principios do do Controlo de de Congestionamento Causas e Custos Custos do do congestionamento Cenários Cenários Abordagens ao ao controlo de de congestionamento Controlo de de congestionamento do do TCP TCP AIMD AIMD Partida lenta ( Slow start ) Partida lenta ( Slow start ) Congestion Congestionavoidance TCP Tahoe TCP Tahoe TCP Reno TCP Reno Modelação da da latência TCP TCP fase fase Slow Slow Artur start start Arsenio