3 2 transporte 2010
Upcoming SlideShare
Loading in...5
×
 

3 2 transporte 2010

on

  • 220 views

 

Statistics

Views

Total Views
220
Views on SlideShare
220
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

3 2 transporte 2010 3 2 transporte 2010 Presentation Transcript

  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática1Redes de ComputadoresRedes de ComputadoresCamada Transporte
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática2 Camada de TransporteCamada TransporteServiços da camada de transporteMultiplexagem e desmultiplexagemTransporte não orientado à ligação: UDPPrincípios da transferência fiável de dadosTransporte com ligação: TCP– transferência fiável de dados– controlo do fluxo– Gestão de ligaçõesPrincipios do controlo do congestionamento– Controlo de congestionamento do TCP
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática3 Camada de TransporteResumo dos Mecanismos deTransferência Fiável de DadosO emissor fica restrito a enviar somente pacotes com números de sequência contidos dentro de umdeterminado intervalo. Permitindo a transmissão de vários pacotes, ainda que não reconhecidos, autilização do emissor pode aumentar em relação ao modo de operação “Para e Espera”.Janela, paralelismoUsado 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 foirecebido correctamente.Reconhecimento negativo(“NAK – negativeacknowledgement”)Usado pelo destinatário para avisar o emissor de que um pacote ou conjunto de pacotes foirecebido 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.Reconhecimento(“Acknowledgement”)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 umpacote perdido. Pacotes com números de sequência duplicados permitem que o destinatáriodetecte cópias duplicadas de um pacote.Número de sequênciaUsado para controlar a temporização / retransmitir um pacote, possivelmente porque o pacote (ou oseu ACK) foi perdido dentro do canal. Como pode ocorrer o “timeout” do temporizador quando umpacote está atrasado, mas não perdido (timeout prematuro), ou quando um pacote foi recebido pelodestinatário mas o ACK emissor-destinatário foi perdido, um destinatário pode receber cópiasduplicadas de um pacoteTemporizador (“timer”)Usado para detectar erros nos bits de um pacote transmitidoSoma de verificação(“checksum”)Utilização, ComentáriosMecanismo View slide
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática4 Camada de TransporteTransmissão full duplex– Transmissão de dados bidirecional namesma ligação– os segmentos têm um tamanho máximo –MSS (Maximum Segment Size)Protocolo orientado à ligação– (3-way) handshaking (troca de mensagensde controlo) para estabelecer ligação (cominicialização do emissor e do receptor)antes da transferência de dadosControlo do fluxo– Transmissões do emissor em função dacapacidade de memória do receptorLigação Ponto a ponto– 1 emissor, 1 receptorFluxo de bytes, ordenado efiável– não há delimitação demensagensControlo por janela (Pipelined)– dimensão da janela definidapelo algoritmo de controlo dacongestão e do fluxo do TCPBuffers no emissor e receptorsocketdoorTCPsend bufferTCPreceive buffersocketdoorsegmentapplicationwrites dataapplicationreads dataTCP: Visão geralRFCs: 793, 1122, 1323, 2018, 2581 View slide
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática5 Camada de Transportenº porto origem nº porto dest32 bitsdados daaplicação(tam. variável)número de sequêncianúmero de reconhecimento(ackowledgement number)janela receptorptr dados urg.checksumFSRPAUtam.cab.semusoOpções (tam. variável)URG: dados urgentes(pouco usados)ACK: nº ACK válidoPSH (push datanow): envia dadosjá (pouco usado)RST, SYN, FIN:gestão da ligação(comandos deestabelecimento,libertação)nº bytesrcpt que oreceptoraceita(rcvWindow)contagemde dadospor bytes(não segmentos)checksumInternet(como UDP)TCP: estrutura do segmento
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática6 Camada de Transporte0 1 ... 1000 ... 1999 ... 499999Dados para o primeiro segmento Dados para o segundo segmento FicheiroTCP: Números de Sequência e ACKsNºs de sequência– Número do primeiro bytede dados do segmentoACKs– Nº de sequência dopróximo byte esperadono receptor– ACK cumulativo: umACK confirma arecepção correcta dosbytes anterioresSegmentos fora da ordem– depende daimplementaçãoEstação A Estação BSeq=42, ACK=79, data = ‘C’Seq=79, ACK=43, data = ‘C’Seq=43, ACK=80Utilizadorprimetecla‘C’A reconhecechegadado ‘C’replicadoB reconhecechegada de‘C’, envia‘C’ de voltatempocenário simples de telnet
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática7 Camada de TransporteDeterminação da duração dotemporizador (timeout)TCP: Tempo de Resposta (RTT – RoundTrip Time) e Temporização (Timeout)maior que o RTT– mas o RTT varia duranteuma ligação TCPdemasiado curto– temporização expiraprematuramente– retransmissões que sãodesnecessáriasdemasiado longo– reacção lenta à perda desegmentosEstimativa do RTTSampleRTT: intervalo de tempo medidodesde a transmissão de um segmentoaté à recepção do seu ACK– ignora retransmissões– valor medido varia muito de segmentopara segmento– quer-se uma estimativa do RTT comvariações suaves– usar várias medições recentes paraextrair o valor médio, não apenas ovalor actual de SampleRTTEstimativa do RTTSampleRTT: intervalo de tempo medidodesde a transmissão de um segmentoaté à recepção do seu ACK– ignora retransmissões– valor medido varia muito de segmentopara segmento– quer-se uma estimativa do RTT comvariações suaves– usar várias medições recentes paraextrair o valor médio, não apenas ovalor actual de SampleRTT
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática8 Camada de TransporteEstimatedRTT = (1-α) * EstimatedRTT + α*SampleRTTmédia deslizante com pesos exponenciais“exponential weighted moving average”– influência de cada amostra diminuiexponencialmente com o tempovalor típico de α = 0,125, β = 0,25TCP: Tempo de Resposta eTemporizaçãoDeterminação do valor de temporizaçãoEstimatedRTT + “margem de segurança”grandes variações no EstimatedRTT– adicionar maior “margem de segurança”primeiro estimar o quanto a SampleRTT desvia do EstimatedRTTTimeout = EstimatedRTT + 4*Desvio_RTTDesvio_RTT = (1-β)* Desvio_RTT + β* |RTT_amostra - EstimatedRTT|RTT: gaia.cs.umass.edu to fantasia.eurecom.fr1001502002503003501 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)RTT(milliseconds)SampleRTT Estimated RTT
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática9 Camada de TransporteTransferência Fiável de Dados no TCPO TCP cria um serviçordt sobre o serviço nãofiável do IP– Segmentos em série(pipelined)– Acks cumulativos– O TCP usa um únicotemporizador pararetransmissõesAs retransmissões sãodisparadas por:– Final do temporizador(timeout)– acks duplicadosEmissor TCP simplificado• transferência unidireccional• sem controlo de fluxo• sem controlo decongestionamento
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática10 Camada de TransporteNextSeqNum = número de sequência inicialSendBase = número de sequência inicialrepita (sempre) {switch(event)Evento: Dados recebidos da aplicação acimaCria 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 temporizadorpassa segmento para IPNextSeqNum = NextSeqNum + comprimento(dados)Evento: Temporizador expirado (timer timeout)/* retransmissão do segmento que causou o timeout */retransmite segmento ainda não reconhecido com o menornúmero de sequênciareinicia o temporizadorEvento: 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 = yse (houver segmentos ainda não reconhecidos)liga o temporizador} senão desliga o temporizador} /* fim do repita sempre */SendBase-1: último bytereconhecido de formacumulativaExemplo:• SendBase-1 = 71; y= 73,portanto o receptor querreceber 73+;• y > SendBase, portantonovos dados foramreconhecidos.EmissorNota(simplificado)
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática11 Camada de TransporteRetransmissão rápidaSe o emissor receber 3 ACKs para os mesmos dados,supõe que o segmento após os dados confirmados seperdeuretransmite o segmento antes que o temporizador expireevent: recebido ACK, com valor do campo ACK de yif (y > SendBase) {SendBase = yif (houver segmentos ainda não reconhecidos)liga temporizadorelse desliga temporizador}else {incrementa contador de ACKs duplicados recebidos para yif (contador de ACKs duplicados recebidor para y = 3) {retransmite segmento com número de sequência y}ACK duplicado para um segmento já confirmadoRetransmissão rápidaAlgoritmo de retransmissão rápidaO intervalo dotemporizador énormalmente longo:– atraso longo antes dereenviar o pacoteperdidoDetectar segmentosperdidos através deACKs duplicados.– emissor normalmenteenvia diversossegmentos seguidos– Se um segmento seperder, provavelmentehaverá muitos ACKsduplicados.Retransmissão rápida (Fast Retransmit)
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática12 Camada de TransporteHost ASeq=100, 20 bytes dataACK=100tempotimeout prematuroHost BSeq=92, 8 bytes dataACK=120Seq=92, 8 bytes dataSeq=92timeoutACK=120Host ASeq=92, 8 bytes dataACK=100losstimeoutcenário de ACK perdidoHost BXSeq=92, 8 bytes dataACK=100tempoSeq=92timeoutTCP: Cenários de RetransmissãoHost ASeq=92, 8 bytes dataACK=100losstimeoutACK cumulativoHost BXSeq=100, 20 bytes dataACK=120tempo
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática13 Camada de TransporteTCP – Gerar ACKs Cumulativos noReceptor [RFCs 1122, 2581]Evento no Receptorchegada de segmento na ordem,tudo o resto já confirmadochegada de segmento na ordem,uma confirmação ACK atrasadachegada de segmento fora deordem, com nº de sequênciasuperior ao esperado gapchegada de segmento quecompleta parcial ou totalmente umburaco (“gap”) existenteAcção do Receptor TCPEspera até 500ms pela chegada dopróximo segmento. Se não chegar, enviaACKenvia imediatamente um único ACKcumulativoenvia um ACK duplicado, indicando nº desequência do próximo byte esperadoEnvia imediatamente ACK se osegmento segue o último bem recebidona ordem (no início do gap)
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática14 Camada de TransporteControlo do Fluxo do TCPReceptor: anuncia o espaço livre incluindo o valor da RcvWindow (campono segmento TCP)Emissor: limita os dados transmitidos e ainda não confirmados aotamanho da RcvWindow (LastByteSent-LastByteAcked ≤ RcvWindow)– Garante que o buffer do receptor não transbordaráO emissor não excede acapacidade do receptorControlo do fluxoRcvWindow = RcvBuffer-[LastByteRcvd - LastByteRead](tamanho da memória de recepção)(espaço livre na memória de recepção)
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática15 Camada de TransporteTCP: Gestão de LigaçõesInicialização da Ligação em 3 passosPasso 1: sistema cliente envia segmentode controle SYN do TCP ao servidor– especifica no. inicial de seq– não envia dadosPasso 2: o servidor recebe SYN,responde com segmento de controleSYNACK– aloca buffers– especifica no. inicial de sequênciaservidor => receptorPasso 3: cliente recebe SYNACK,responde com segmento ACK quepode conter dados.clienteSYNservidorSYN, ACKACKAestabelecerligaçãoLigação estabelecidaLigaçãoestabelecidaCliente inicia ligação: Socket clientSocket = newSocket("hostname","port number");Servidor: Socket connectionSocket =welcomeSocket.accept();
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática16 Camada de TransporteFecho de LigaçãoPasso 1: o cliente envia um segmento decontrole (TCP FIN) ao servidorPasso 2: servidor recebe o FIN e respondecom ACK. Envia separadamente um FINpara o clientePasso 3: o cliente recebe o FIN e respondecom um ACK. Entra no estado de esperatemporizada (timed wait) respondendocom ACK a FINs recebidosPasso 4: o servidor recebe o ACK e fecha aligação.TCP: Gestão de Ligações (cont.)cliente fecha socket: clientSocket.close();clienteFINservidorACKACKFINA fecharligaçãoA fecharligaçãoLigação fechadaesperatemporizadaLigaçãofechada
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática17 Camada de TransporteCiclo de vida do cliente TCPCiclo de vida do servidor TCPTCP: Gestão de Ligações (cont.)
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática18 Camada de TransportePrincípios da transferência fiável dedados – RevisãoServiços da camada de transporteMultiplexagem e desmultiplexagemTransporte não orientado à ligação: UDPPrincípios da transferência fiável de dadosTransporte orientado à ligação: TCP– transferência fiável de dados– controlo do fluxo– Gestão de ligaçõesPrincipios do controlo docongestionamento– Controlo de congestionamento do TCPVisão GeralEstrutura do SegmentoTempo de Resposta eTemporizaçãoTransferência fiável dedados– Emissor TCPsimplificadoCenários deretransmissãoControle de Fluxo doTCPGestão de LigaçõesVisão GeralEstrutura do SegmentoTempo de Resposta eTemporizaçãoTransferência fiável dedados– Emissor TCPsimplificadoCenários deretransmissãoControle de Fluxo doTCPGestão de Ligações
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática19 Camada de TransportePrincípios do Controlo deCongestionamentoCongestionamentoInformalmente: “demasiadas fontes enviando demasiadosdados, demasiado depressa, para uma rede com capacidadelimitada”Refere-se ao que se passa no interior da rede– não confundir com o problema de controlo de fluxoManifestações:– perda de pacotes (excesso de tráfego em relação à capacidadede memória nos nós da rede)– grandes atrasos (tempo de espera nas filas dos nós)
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática20 Camada de TransporteCausas e Custos docongestionamento: Cenário 1Grandes atrasos para tráfegointenso, ligação congestionadaExiste um valor máximo para o“throughput”Router with unlimitedshared output link buffersHost Aλin : original dataHost BλoutDois emissores e doisreceptoresUm nó deencaminhamento commemória (buffers)infinitossem retransmissões
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática21 Camada de TransporteR/2R/2λinλoutR/2R/2λinλoutR/2R/2λinλoutR/4R/3“Custos” do congestionamentopara um dado “goodput” há maistrabalho nos nós (retransmissões)há retransmissões desnecessárias:uma ligação transporta váriascópias de um pacoteCenário 2finite shared outputlink buffersHostAλin : original dataHostBλoutλin : original data, plusretransmitted dataUm router, buffers finitosRetransmissão pelo emissor depacotes perdidosTem-se sempre: (goodput)Retransmissão “perfeita” apenas com perdas:Se há retransmissão de pacotes atrasados (não perdidos) então é maiordo que no caso anterior para o mesmoλin λout=λinλout>λinλout
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática22 Camada de TransporteCenário 3quatro emissorescaminhosorigem/destinocom mais de umaligaçãoretransmissões/“timeouts”finite shared outputlink buffersHostA λin : original dataHostBλoutλin : original data, plusretransmitted dataCusto de congestionamento adicionalquando um pacote é descartado num nó,a capacidade gasta nos nós a montantepara a sua transmissão foi desperdiçada!
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática23 Camada de TransporteControlo extremo a extremo (abordagem usada TCP)não há informação explícita fornecida pela redeo estado de congestionamento é inferido pela observação nosistema terminal das perdas e do atrasoControlo com intervenção da redeOs nós informam explicitamente os sistemas terminais do estadoda rede– enviando apenas um bit (SNA, DECbit, TCP/IP ECN, ATM)– enviando a taxa a que o emissor deve trabalhar (ATM)Dos tipos de abordagensAbordagens ao controlo decongestionamento
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática24 Camada de TransporteABR (available bit rate)“serviço elástico”se caminho do emissor“subcarregado”:– emissor deveria usarbanda disponívelse caminho do emissorcongestionado:– emissor reduzido à taxamínima garantidacélulas RM (resource management)enviadas pelo emissor, intercaladascom células de dadosbits na célula RM iniciados porcomutadores (“apoio da rede”)– bit NI: não aumente a taxa(congestionamento moderado)– bit CI: indicação decongestionamentocélulas RM devolvidas ao emissorpelo receptor, sem alteração dos bitsCase-study: controlo docongestionamento em ABR da ATM
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática25 Camada de TransporteCase-study: controlo do congestionamentoem ABR da ATMCampo 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 oscomutadores do caminhobit 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 bitCI na célula RM devolvida
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática26 Camada de TransporteControlo do Congestionamento do TCPEmissor limita a transmissão:LastByteSent-LastByteAcked≤≤≤≤ CongWinPraticamente,CongWin é dinâmica, emfunção do congestionamentopercebido da redeevento de perda =temporizador expira ou 3acks duplicadosemissor TCP reduz a taxa(CongWin) após evento deperdataxa =CongWinRTTBytes/segtrês mecanismos:– AIMD– Partida lenta (“Slow start”)– “Congestion avoidance”três mecanismos:– AIMD– Partida lenta (“Slow start”)– “Congestion avoidance”Detecção do congestão pelo emissor
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática27 Camada de Transporte8 Kbytes16 Kbytes24 KbytestimecongestionwindowLigação TCP de longa duração– Aumento aditivoaumento do tamanho da janela de uma unidade (segmento – 1MSS) porcada 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ãogrande quanto possível) sem perdasAIMD (“Additive Increase,Multiplicative Decrease”) do TCP– Redução multiplicativadiminuição do tamanho da janela de congestionamento (CongWin – CongestionWindow) para metade (diminuição de um factor de 2) quando se perde umsegmento (assume-se detecção por ACKs consecutivos)• reinício da fase de teste de banda, aumentando gradualmente o tamanho da janela
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática28 Camada de TransporteAIMD e Justiça (“Fairness”) no protocoloTCP – Exemplo 2 sessões simultâneasExemplo: duas sessões simultâneas; capacidade disponível Ro crescimento aditivo (“additive increase” - AI) traduz-se pelo aumentode ambos os “throughput” ao longo de uma recta de derivada 1a diminuição multiplicativa (“multiplicative decrease” - MD) traduz-se naredução proporcional do “throughput” de cada sessãoequal bandwidth shareConnection 1 throughput RConnection2throughputR evitar congestionamento: aumento aditivoperda: diminui janela por factor de 2
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática29 Camada de TransporteJustiça (“Fairness”) no protocolo TCPJustiça (“Fairness”): objectivose N sessões TCP partilharem a mesma ligaçãocongestionada R, cada uma deve poder usar R/N dacapacidade totalTCP connection 1Bottleneck routercapacity RTCPConnection 2
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática30 Camada de TransporteJustiça (“Fairness”) no protocolo TCPJustiça e o UDPAplicações. multimedianormalmente não usam TCP– não desperdiçam o ritmo detransmissão de acordo como controlo decongestionamentoPreferem usar o UDP– Injecta áudio/vídeo a umataxa constante, tolera perdade pacotesJustiça e ligações TCP em paralelonada impede que as aplicaçõesabram ligações paralelas entre 2sistemas terminais– browsers Web já o fazemExemplo: canal com largura debanda R partilhado por 9ligações;– nova aplicação pede 1 TCP,recebe taxa R/10– nova aplicação pede 9 TCPs,recebe taxa R/2 !
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática31 Camada de TransportePartida Lenta(“Slow Start”) do TCPNo início da ligação, CongWin = 1 MSS– Exemplo: MSS = 500 bytes & RTT = 200msegtaxa inicial = 25 kbpsLargura de banda disponível pode ser>> MSS/RTT– é desejável um crescimento rápido atéuma taxa considerávelNo início da ligação, taxa é baixa masaumenta exponencialmente até oprimeiro evento de perda– duplica CongWin a cada RTTatravés do incremento da CongWin paracada ACK recebidoEstação Aum segmentoRTTEstação Btempodois segmentosquqtro segmentosinitialize: Congwin = 1for (each segment ACKed)Congwin+=1until (loss event ORCongWin > threshold)Algoritmo Slowstart
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática32 Camada de TransporteCongestion Avoidance- TCP Tahoe/* slowstart over: Congwin > threshold */Until (loss event) {every w segments ACKed: Congwin++}threshold = Congwin/2Congwin = 1perform slowstart/* : versão TCP Reno não executa a fase “slowstart” depois de 3 ACK’s do mesmo segmento */Detecta as perdasatravés de timeoutsEm caso de perda:– Reduz threshold parametade do valor dajanela– CongWin é reduzida a 1MSS– janela cresceexponencialmenteaté um limiar, depoiscresce linearmente“Congestion avoidance”Partidalenta
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática33 Camada de Transporte3 ACK’s duplicados (FastRetransmit)Perda por timeout:– Funciona como TCP TahoeEm caso de perda por ACK’sduplicados– Reduz threshold para metadedo valor da janela– Reduz a dimensão da janelapara metade– a janela depois crescelinearmenteCongestion Avoidance- TCP Reno• ACKs duplicados indica que arede é capaz de entregar algunssegmentos• “timeout” do temporizadorantes de n ACKs duplicados émais “alarmante”.FilosofiaFast retransmission/fast recovery
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática34 Camada de TransporteControlo do Congestionamento do TCPQuando a CongWin está abaixo do limiar(threshold), emissor está na fase de início lento, janelacresce exponencialmente.Quando a CongWin está acima do limiar, emissor estána fase de evitar congestionamento, janela crescelinearmente.Quando chegam 3 ACKs, Limiar passa a ser CongWin/2e CongWin passa ao valor do Limiar.Quando temporizador chega a “timeout”, Limiar passa aser CongWin/2 e CongWin passa a ser 1 MSS.Resumo
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática35 Camada de TransporteControlo do Congestionamento do TCPVantagensDesempenho razoável sobre uma grande variedade de tecnologiasDesvantagensNem 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ãomotivadas por congestionamentoO TCP assume que existem perdas porque a fonte tem uma Janela deTransmissão muito grande e não prevê a existência de fontes “malcomportadas”– Comportamento oscilatório das taxas das fontesAlgoritmo muito sensível aos valores de threshold e às dimensões dosbuffers nos pontos de estrangulamento
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática36 Camada de TransporteTaxa (throughput) do TCPTaxa 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/RTTImediatamente após a perda, janela deminui para W/2, taxa reduzidapara W/2RTTTaxa média = 0,75 W/RTTExemplo: segmentos de 1500 bytes, RTT de 100ms– Objectivo: taxa de 10 GbpsRequer janela de W = 83.333 segmentos em trânsitoTaxa em termos de taxa de perdas:➜ L = 2·10-10 Taxa de perdas demasiado baixa!!!São necessárias novas versões do TCP para altas velocidades!LRTTMSS⋅22,1Futuro do TCP
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática37 Camada de TransporteModelação da Latência no TCPTempo para receber um ficheiro deum servidor a partir do instantede inicio do pedido?• Estabelecimento da ligação TCP• Tempo de transferência dosdadosexiste apenas uma ligação entrecliente e servidor de capacidade Rjanela de congestionamento detamanho W segmentosS: MSS (bits)O: tamanho dos dados (bits)sem retransmissões (não háperdas nem erros)Dois casos a considerar:WS/R > RTT + S/R: ACK do primeiro segmento na janela chega antes deenviar todos dados na janelaWS/R < RTT + S/R: aguarda ACK depois de enviar todos os dados na janelaHipóteses e Notação
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática38 Camada de TransporteWS/R > RTT + S/RACK do primeirosegmento da janelachega ao emissorantes do fim datransmissão detodos os segmentosna janelalatência = 2RTT + O/RTCP: Modelação da latência (W fixo)– Cenário 1
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática39 Camada de TransporteWS/R < RTT + S/Ré necessário esperarpelo ACK depois deenviar todos ossegmentos na janelapara retomar atransmissão.K= O/WSnúmero de janelasnecessárias àtransmissão do objectolatência = 2RTT + O/R + (K-1)[S/R + RTT - WS/R]TCP: Modelação da latência (W fixo) –Cenário 2
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática40 Camada de TransporteA latência de um objecto (ficheiro de dados) de tamanho O é:RSRSRTTPRORTTLatência P)12(2 −−+++=}1,{min −= KQP- onde Q é o número de vezes que o TCP seria obrigado a pararse 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(2k-1<>O/S)Modelação da latência TCP - fase “Slow start”P é o número de vezes que o TCP é obrigado a parar no servidor:
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática41 Camada de TransporteRTTinitiate TCPconnectionrequestobjectfirst window= S/Rsecond window= 2S/Rthird window= 4S/Rfourth window= 8S/Rcompletetransmissionobjectdeliveredtime atclienttime atserverModelação da latência do TCP: fase“Slow start” – Exemplo• O/S = 15 segmentos• K = 4 janelas, Q = 2• P = min{K-1,Q} = 2Servidor parado P=2 unidades detempoExemplo
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática42 Camada de TransporteRSRSRTTPRTTRORSRTTRSRTTROTempoRTTROPPkkPpp)12(222parado2latência111−−+++=−+++=++= ∑∑ =−=janelaésimaaapósparadotempo2 1−=−++−kRSRTTRS kentosreconhecimosrecebaservidoroqueatésegmentosenviaracomeçaservidoroquedesdetempo=+ RTTRSjanelaésima-kartransmitiparatempo2 1=−RSkRTTinitiate TCPconnectionrequestobjectfirst window= S/Rsecond window= 2S/Rthird window= 4S/Rfourth window= 8S/Rcompletetransmissionobjectdeliveredtime atclienttime atserverModelação da latência: fase “Slow start”- Calculo da Latência do TCP
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática43 Camada de TransporteControlo do congestionamento –Revisão e ResumoServiços da camada de transporteMultiplexagem e desmultiplexagemTransporte não orientado à ligação: UDPPrincípios da transferência fiável de dadosTransporte orientado à ligação: TCP– transferência fiável de dados– controlo do fluxo– Gestão de ligaçõesPrincipios do controlo docongestionamento– Controlo de congestionamento do TCPPrincipios do Controlo deCongestionamentoCausas e Custos docongestionamento– CenáriosAbordagens ao controlo decongestionamentoControlo decongestionamento do TCP– AIMD– Partida lenta (“Slow start”)– “Congestion avoidance”TCP TahoeTCP RenoModelação da latência TCP– fase “Slow start”Principios do Controlo deCongestionamentoCausas e Custos docongestionamento– CenáriosAbordagens ao controlo decongestionamentoControlo decongestionamento do TCP– AIMD– Partida lenta (“Slow start”)– “Congestion avoidance”TCP TahoeTCP RenoModelação da latência TCP– fase “Slow start”