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

Documentos relacionados
Causas/custos do congestionamento: cenário 1

Redes de Computadores

TCP - controle de fluxo

TCP - controle de fluxo

Camada de Transporte. Redes Industriais Rone Ilídio UFSJ CAP

PTC Aula Controle de congestionamento no TCP 4.1 Introdução à camada de rede 4.2 O que há dentro de um roteador?

Redes de Computadores

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

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

Redes de Computadores Camada de Transporte Protocolo TCP

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

PTC Aula A camada de transporte. (Kurose, p ) 15/03/2017

Capítulo 3 Camada de transporte

Capítulo 3 Camada de transporte

Nível de Transporte Portas, Protocolos UDP e TCP

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

TCP Round Trip Time e temporização

TCP 1 TCP. Manuel P. Ricardo

Capítulo 6. A camada de transporte

PTC Aula Transporte orientado para conexão: TCP. (Kurose, p ) (Peterson, p e ) 23/05/2017

TCP - estabelecimento de conexão

Camada de Transporte Parte II Gerson Porciúncula 5 semestre

Redes de Computadores RES 12502

SSC0641 Redes de Computadores

Redes de Computadores

PTC Aula O que há dentro de um roteador? 4.3 O Protocolo da Internet (IP): Repasse e Endereçamento na Internet

Redes de Computadores

Camada de Transporte

Universidade Federal de Minas Gerais Departamento de Ciência da Computação

: TMS M

Capítulo 3 Camada de transporte

Desempenho de Redes de Computadores. Ricardo Couto A. da Rocha 2015

Redes de Computadores

PTC Aula Princípios da transferência de dados confiável. (Kurose, Seções 3.4 e 3.5) 28/04/2017

Redes de Computadores

Capítulo 6. A camada de transporte. slide 1 1 reservados.

Capítulo 3: Camada de Transporte

Capítulo 3 Camada de transporte

Controlo de Congestionamento

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

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

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

Arquitetura de Redes de Computadores

Fragmentos das máquinas de estados finitos do RDT 2.2 (fonte: Kurose)

2 Controle de Congestionamento do TCP

Capítulo 3. Camada de transporte

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

Redes de Computadores

GA-027 Redes de Computadores

Escola Politécnica da Universidade de São Paulo

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

Camada de Transporte. Protocolos TCP e UDP

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

3 Simulação de Redes Manhattan Street com Roteamento por Deflexão de Pacotes

Capítulo 3: Camada de Transporte

Redes de Computadores

Roteiro Resumido. Camada de Transporte. Parte III. Camada de Transporte. Camada de Transporte. Redes de Computadores 14/08/2015

EEL878 - Redes de Computadores I. Prof. Luís Henrique Maciel Kosmalski Costa.

Redes de Computadores Aula 5

Redes de Computadores

Roteiro Resumido. Camada de Transporte. Parte III. Camada de Transporte. Camada de Transporte. Redes de Computadores 25/4/2017

PTC Aula A periferia da Internet 1.3 O núcleo da rede. (Kurose, p. 9-23) (Peterson, p ) 18/02/2016

SSC0641 Redes de Computadores

Capítulo 3 Camada de transporte

Capítulo 3 Camada de transporte

AULA 3 - REDES. Prof. Pedro Braconnot Velloso

Planejamento. Revisão. Desempenho em Protocolos de Transporte

PTC Aula Princípios das aplicações de rede 2.2 A Web e o HTTP. (Kurose, p ) (Peterson, p ) 21/03/2017

Camada de transporte. Serviços

EEL878 - Redes de Computadores I

3Camada de transporte

Técnicas de comutação

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

Capítulo 3 Camada de Transporte

Funções da. Os principais serviços oferecidos pela camada de transporte são: Controle de conexão, Fragmentação, Endereçamento e Confiabilidade.

SSC0641 Redes de Computadores

Serviços de Comunicações Capítulo 3

AVALIAÇÃO COMPARATIVA DOS MECANISMOS CONGESTION AVOIDANCE TCP SACK E VEGAS OPERANDO SOBRE UMA REDE ATM VIA SATÉLITE

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

SSC0641 Redes de Computadores

Redes de Computadores

Capítulo 4: Camada de rede

PTC Aula A camada de rede (1/2) (Kurose, p ) 17/03/2017

Capítulo 3: Camada de Transporte

Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços

Redes de Computadores I Internet - Conceitos

PROTOCOLOS DE COMUNICAÇÃO

Teleprocessamento e Redes

Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços

Jéfer Benedett Dörr

Redes de Computadores e Aplicações. Aula 43 - Camada de Transporte TCP (Transmission Control Protocol)

TCP - multiplexação/demultiplexação

Redes de Computadores

Redes de Computadores e Telecomunicações - Camada de Transporte

Redes de computadores Lista de exercícios # 2

PTC Aula O Protocolo da Internet (IP): Repasse e Endereçamento na Internet 4.4 Repasse generalizado e SDN

Redes de Computadores e a Internet

Redes de Computadores

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Parte I: Introdução. O que é a Internet. Nosso objetivo: Visão Geral:

Transcrição:

PTC 3450 - Aula 16 3.6 Princípios do controle de congestionamento 3.7 Controle de congestionamento no TCP (Kurose, p. 190-205) (Peterson, p. 105-124 e 242-264) 26/05/2017 Muitos slides adaptados com autorização de J.F Kurose and K.W. Ross, All Rights Reserved

Capítulo 3: conteúdo 3.1 serviços da camada de transporte 3.2 multiplexação e desmultiplexação 3.3 transporte sem conexão: UDP 3.4 princípios da transferência de dados confiável 3.5 transporte orientado para conexão: TCP estrutura dos segmentos transferência de dados confiável controle de fluxo gerenciamento de conexão 3.6 princípios de controle de congestionamento 3.7 controle de congestionamento no TCP Camada de Transporte 3-2

Princípios de controle de congestionamento congestionamento: informalmente: muitas fontes enviando muitos dados mais rapidamente do que com que a rede consegue lidar diferente do controle de fluxo! um problema top-10! manifestações: perda de pacotes (transbordamento de buffer nos roteadores) longos atrasos (fila em buffers de roteadores) Camada de Transporte 3-3

Causas/custos de congestionamento: cenário 1 2 remetentes, 2 destinatários 1 roteador, buffer infinito capacidade do enlace de saída: R sem retransmissão Host B dados originais : l in bytes/s Host A buffer do enlace de saída compartilhado ilimtado vazão: l out R/2 l out latência R l in R/2 l in R/2 máxima vazão por conexão: R/2 Veja: http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/queuing/queuing.html grandes latências (atrasos) conforme taxa de chegada, l in, aproxima-se da capacidade Camada de Transporte 3-4

Causas/custos de congestionamento: cenário 2 1 roteador, buffer finito remetente retransmite pacotes com timeout entrada da camada de aplicação = saída para camada de aplicação: l in = l out entrada da camada de transporte inclui retransmissão: l in l in Host A l in : dados originais l' in : dados originais, mais dados retransmitidos (carga oferecida à rede) l out Host B buffer do enlace de saída compartilhado limtado Camada de Transporte 3-5

Causas/custos de congestionamento: cenário 2 idealização: conhecimento perfeito remetente envia apenas quando buffer do roteador está disponível R/2 l out l in R/2 cópia l in : dados originais l' in : dados originais, mais dados retransmitidos l out A espaço livre no buffer! Host B buffer do enlace de saída compartilhado limtado Camada de Transporte 3-6

Causas/custos de congestionamento: cenário 2 Idealização: perda conhecida pacotes podem ser perdidos, descartados no roteador devido a buffer cheio remetente apenas reenvia se sabe que pacote se perdeu cópia l in : dados originais l' in : dados originais, mais dados retransmitidos l out A sem espaço no buffer! Host B Camada de Transporte 3-7

Causas/custos de congestionamento: cenário 2 Idealização: perda conhecida pacotes podem ser perdidos, descartados no roteador devido a buffer cheio remetente apenas reenvia se sabe que pacote se perdeu R/2 l out l in R/2 quando enviando a R/2, alguns pacotes são retransmissões mas assintoticamente vazão ainda é R/2 (por que?) l in : dados originais l' in : dados originais, mais dados retransmitidos l out A espaço livre no buffer! Host B Camada de Transporte 3-8

Realístico: duplicatas Causas/custos de congestionamento: cenário 2 pacotes podem ser perdidos, descartados no roteador devido a buffer cheio timeout no remetente pode ser prematuro, enviando 2 cópias ambas entregues R/2 l out l in R/2 quando enviando a R/2, alguns pacotes são retransmissões incluindo duplicatas que são entregues! cópia timeout l in l' in l out A espaço livre no buffer! Host B Camada de Transporte 3-9

Causas/custos de congestionamento: cenário 2 Realístico: duplicatas pacotes podem ser perdidos, descartados no roteador devido a buffer cheio timeout no remetente pode ser prematuro, enviando 2 cópias ambas entregues R/2 l out l in R/2 quando enviando a R/2, alguns pacotes são retransmissões incluindo duplicatas que são entregues! custos do congestionamento: mais trabalho do roteador e do transmissor (retransmissões) para dada vazão retransmissões desnecessárias: enlace carrega múltiplas cópias de pacotes diminuição da vazão Camada de Transporte 3-10

Causas/custos de congestionamento: cenário 3 4 remetentes caminhos com múltiplos saltos timeout/retransmição Q: o que acontece quando l in e l in aumentam? R: quando l in (vermelho) aumenta, todos pacotes azuis na fila superior são descartados, vazão azul g 0 Host A l in : dados originais l' in : dados originais, mais dados retransmitidos buffer do enlace de saída compartilhado limtado l out Host B Host D Host C Camada de Transporte 3-11

Causas/custos de congestionamento: cenário 3 R/2 l out l in R/2 outro custo do congestionamento: quando pacotes são descartados, toda capacidade de transmissão até aquele ponto usada para aquele pacote é perdida! Camada de Transporte 3-12

Abordagens para controle de congestionamento 2 abordagens gerais para controle de congestionamento: controle de congestionamento fim a fim: sem realimentação explícita da rede congestionamento inferido de perdas e atrasos nos sistemas finais abordagem usada pelo TCP controle de congestionamento assistido pela rede: roteadores provêem realimentação para sistemas finais bit único indicando congestionamento (SNA, DECbit, TCP/IP ECN, ATM) taxa explícita para remetente enviar Camada de Transporte 3-13

Estudo de caso: controle de congestionamento do ATM ABR ABR: Available Bit Rate: ATM: comutação de circuito virtual (VC) Cada switch no caminho fontedestino mantém estado sobre VC Permite que switch rastreie comportamento de fontes individuais ABR: serviço elástico se caminho do remetente subutilizado : remetente deve usar capacidade disponível se caminho do remetente congestionado: remetente estrangulado para mínima taxa garantida células (pacotes) RM (resource management) : enviada pelo remetente, intercaladas com células de dados (default a cada 32 células de dados) Destino envia células RM de volta, podendo modificá-las Switches também podem enviar e modificar células RM bits nas células RM modificados por switches ( assistido pela rede ) bit NI: não aumentar taxa (congestionamento moderado) bit CI: indicador de congestionamento Camada de Transporte 3-14

Estudo de caso: controle de congestionamento do ATM ABR célula RM célula de dados campo ER (explicit rate) de 2 bytes nas células RM switch congestionado pode baixar valor ER na célula remetente envia assim na máxima taxa suportada pelo caminho bit EFCI (explicit forward congestion indication) nas células de dados: modificado para 1 em switch congestionado se célula de dados precedendo célula RM tem EFCI assinalado, destinatário ativa bit CI em célula RM devolvida Camada de Transporte 3-15

Capítulo 3: conteúdo 3.1 serviços da camada de transporte 3.2 multiplexação e desmultiplexação 3.3 transporte sem conexão: UDP 3.4 princípios da transferência de dados confiável 3.5 transporte orientado para conexão: TCP estrutura dos segmentos transferência de dados confiável controle de fluxo gerenciamento de conexão 3.6 princípios do controle de congestionamento 3.7 controle de congestionamento no TCP Camada de Transporte 3-16

TCP: Controle de Congestionamento : detalhes remetente limita transmissão: espaço de números sequenciais do remetente cwnd último byte ACKed LastByteAcked enviado, ainda não ACKed ( in-flight ) LastByteSent- LastByteAcked último byte enviado LastByteSent < cwnd cwnd é dinâmico, função do congestionamento da rede notado Taxa aprox. de envio TCP : Envia cwnd bytes, espera RTT por ACKS, então envia mais bytes taxa ~ cwnd RTT bytes/s Obs: Levando-se em conta também o controle de fluxo o comprimento da janela é min{cwnd,rwnd}. Vamos considerar aquir que o buffer do destino é suficientemente grande. Camada de Transporte 3-17

cwnd: comprimento da janela de congestionamento do remetente TCP TCP: controle de congestionamento incremento aditivo, decremento multiplicativo (AIMD) Controle fim a fim: IP não fornece realimentação abordagem: remetente aumenta taxa de transmissão (compr. janela), sondando por capacidade utilizável, até ocorrer perda [Jacobson, 1988; RFC 5681-2009] aumento aditivo: aumenta cwnd em 1 MSS a cada ACK válido (tudo vai bem! ) até que perda é detectada (indício de congestionamento ) diminuição multiplicativa: corta cwnd pela metade após perda aumenta aditivamente tamanho da janela. até ocorrer perda (então corta janela pela metade) comportamento dente de serra do AIMD: sondando por capacidade tempo Camada de Transporte 3-18

RTT TCP: partida lenta componente obrigatório, assim como contenção de congestionamento (CA) quando conexão inicia, aumenta taxa exponencialmente até primeiro evento de perda: inicialmente cwnd = 1 MSS (RFC3390) dobra cwnd a cada RTT feito incrementando cwnd de 1 MSS para cada ACK recebido resumo: taxa inicial é lenta mas aumenta exponencialmente rápido Host A Host B tempo Camada de Transporte 3-19

TCP: detectando e reagindo a perda perda indicada por timeout: Faz ssthresh = cwnd/2 (slow start threshold) cwnd ajustado para 1 MSS; janela então cresce exponencialmente (com na partida lenta) até ssthresh, então cresce linearmente (congestion avoidance mode CA) perda indicada por 3 ACKs duplicados: TCP RENO ACKs dup indicam capacidade da rede de entregar alguns segmentos cwnd = cwnd/2 + 3 e então cresce linearmente recuperação rápida TCP Tahoe sempre ajusta cwnd para 1 (timeout ou 3 ACKs duplicados) Camada de Transporte 3-20

TCP: mudando de partida lenta para CA Q: quando o aumento exponencial deve mudar para linear? R: quando cwnd chega a 1/2 do seu valor antes do timeout. Implementação: variável ssthresh (slow start threshold) em evento de perda, ssthresh é ajustada para 1/2 de cwnd logo antes do evento de perda Camada de Transporte 3-21

Resumo: Controle de Congestionamento do TCP L cwnd = 1 MSS ssthresh = 64 KB dupackcount = 0 timeout ssthresh = cwnd/2 cwnd = 1 MSS dupackcount = 0 retransmite segmento perdido dupackcount == 3 ssthresh= cwnd/2 cwnd = ssthresh + 3 retransmite segmento perdido ACK duplicado dupackcount++ partida lenta Novo ACK! novo ACK cwnd = cwnd+mss dupackcount = 0 transmite novo(s) segmento(s), se permitido cwnd > ssthresh L timeout ssthresh = cwnd/2 cwnd = 1 MSS dupackcount = 0 retransmite segmento perdido timeout ssthresh = cwnd/2 cwnd = 1 dupackcount = 0 retransmite segmento perdido recuperação rápida novo ACK. cwnd = cwnd + MSS (MSS/cwnd) dupackcount = 0 transmite novo(s) segmento(s), se permitido cwnd = ssthresh dupackcount = 0 Contenção de congestionamento Novo ACK! Novo ACK Novo ACK! ACK duplicado dupackcount++ dupackcount == 3 ssthresh= cwnd/2 cwnd = ssthresh + 3 retransmite segmento perdido ACK duplicado cwnd = cwnd + MSS transmite novo(s) segmento(s), se permitido Camada de Transporte 3-22

Exemplos de experimentos: aqui, aqui e aqui. Implementação no Windows NT Camada de Transporte 2-23

TCP: vazão vazão TCP média em função do comprimento da janela, RTT? hipóteses: ignorar partida lenta (TCP sai dela exponencialmente rápido), assumir que sempre existe dados para enviar, comprimento da janela em que ocorre perda é constante W: comprimento da janela (medido em bytes) em que ocorre perda tamanho médio da janela (número de bytes in-flight) é ¾ W vazão média é 3/4W por RTT vazão média TCP = 3 4 W RTT bytes/s W W/2 Camada de Transporte 3-24

Futuro do TCP : TCP em canos longos e grossos exemplo: segmentos de 1 500 bytes, RTT 100ms, queremos vazão de10 Gbps Quantos segmentos in-flight em média? requer em média 83 333 segmentos in-flight vazão em termos de probabilidade de perda de segmentos, L [Mathis 1997]: vazão TCP = Qual a taxa de perda para alcançar 10 Gbps? L = 2 10-10 taxa de perda muito baixa! 1,22. MSS RTT L novas versões do TCP para altas velocidades TCP Vegas, CUBIC, etc. Muita pesquisa interessante! Camada de Transporte 3-25