SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 •...
Transcript of SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 •...
![Page 1: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/1.jpg)
SSC0641 - 2011 1
SSC0641Redes de Computadores
Capítulo 3 - Camada de Transporte
Prof. Jó UeyamaMarço/2011
![Page 2: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/2.jpg)
SSC0641 - 2011 2
Transferência de Confável de Dados
● Mecanismos:– Soma de verifcação– Temporizador– Número de Seqüência– Mensagem de Reconhecimento– Mensagem de Reconhecimento Negativo– Janela
![Page 3: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/3.jpg)
SSC0641 - 2011 3
TCP
● Transmission Control Protocol.● RFCs: 793, 1122, 1323, 2018, 2581.
![Page 4: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/4.jpg)
SSC0641 - 2011 4
∀ Fim a fm:– Estados de conexão inteiramente nos dois
sistemas fnais e não nos roteadores∀ Orientado à conexão:
– apresentação: troca de mensagens de controle;
– inicia o estado do transmissor e do receptor antes da troca de dados.
∀ Confável;∀ Full-duplex:
– Transmissão bidirecional na mesma conexão.
TCP: Visão Geral
![Page 5: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/5.jpg)
SSC0641 - 2011 5
∀ Bufers de transmissão e de recepção:– Stream seqüencial de bytes;
– MSS (maximum segment size): quantidade máxima de dados da camada de aplicação.
– MTU (maximum transmission unit): tamanho máximo do quadro (camada de enlace) que remetente pode enviar.
• Exemplos: 1460 bytes, 536 bytes.
– Controle de fuxo:• Transmissor não esgota a capacidade do
receptor.
TCP: Visão Geral
![Page 6: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/6.jpg)
SSC0641 - 2011 6
∀ Suporte Paralelismo:– Múltiplos segmentos sem confrmação;
– Controle de congestionamento e de fuxo defnem tamanho da janela.
∀ Applet ilustrando controle de fuxo: http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/fow/fowcontrol.html
TCP: Visão Geral
![Page 7: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/7.jpg)
SSC0641 - 2011 7
URG: dados urgentes (pouco usados)
ACK: campo de ACKé válido
PSH: envio de dadosurgente p/ aplicação
RST, SYN, FIN:estabelecer conexão
(comandos de criação e término)
número de bytes receptor estápronto para aceitar
contagem porbytes de dados(não segmentos!)
Internetchecksum
(como no UDP)
Estrutura do Segmento TCP
![Page 8: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/8.jpg)
SSC0641 - 2011 8
•Transmissor estabelece conexão com o receptor antes de trocar segmentos de dados .
•Inicializar variáveis:– Números de sequência
– Bufers, controle de fuxo (ex.: RcvWindow)
∀ Cliente: iniciador da conexão Socket clientSocket = new Socket(“hostname","port number");
∀ Servidor: chamado pelo cliente Socket connectionSocket = welcomeSocket.accept();
Conexão TCP
![Page 9: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/9.jpg)
SSC0641 - 2011 9
TCP: Estabelecimento de Conexão
Three way handshake:1: sistema fnal cliente envia TCP SYN ao servidor
•especifca número de seqüência inicial.
2: sistema fnal servidor que recebe o SYN, responde com segmento SYNACK
•reconhece o SYN recebido;
•aloca bufers;
•especifca o número de seqüência inicial do servidor.
3: sistema fnal cliente reconhece o ACK.
![Page 10: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/10.jpg)
SSC0641 - 2011 10
cliente fecha o socket: clientSocket.close();
1: o cliente envia o segmento TCP FIN ao servidor.
2: servidor recebe FIN, responde com ACK. Fecha a conexão, envia FIN.
3: cliente recebe FIN, responde com ACK.
∀ Entra “espera temporizada” - vai responder com ACK a FINs recebidos.
4: servidor, recebe ACK Conexão fechada.
TCP: Fechando a Conexão
![Page 11: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/11.jpg)
SSC0641 - 2011 11
Estados do cliente Estados do servidor
TCP: Máquina de Estados
![Page 12: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/12.jpg)
SSC0641 - 2011 12
∀ Números de seqüência:– Número do primeiro byte nos segmentos de
dados.∀ ACKs:
– Número do próximo byte esperado do outro lado;
– ACK cumulativo.∀ Como o receptor trata segmentos fora de ordem?
– A especifcação do TCP não defne, fca a critério do implementador.
Números de seqüência e ACK
![Page 13: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/13.jpg)
SSC0641 - 2011 13
Estudo de Caso: Telnet
![Page 14: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/14.jpg)
SSC0641 - 2011 14
Como determinar o valor dos temporizadores?
![Page 15: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/15.jpg)
SSC0641 - 2011 15
∀ Maior que o RTT (Round Trip Time)!– Porém RTT varia!
∀ Muito curto: temporização prematura.– Retransmissões desnecessárias.
∀ Muito longo: a reação à perda de segmento fca lenta.
∀ Como estimar o RTT?
Como determinar o valor dos temporizadores?
![Page 16: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/16.jpg)
SSC0641 - 2011 16
∀ SampleRTT: tempo medido da transmissão de um segmento até a respectiva confrmação.
– Ignora retransmissões e segmentos reconhecidos de forma cumulativa.
∀ SampleRTT varia de forma rápida, é desejável um amortecedor para a estimativa do RTT.
– Usar várias medidas recentes, não apenas o último SampleRTT obtido.
Amostras de RTT
![Page 17: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/17.jpg)
SSC0641 - 2011 17
Estimando o RTT
EstimatedRTT = (1-α)*EstimatedRTT + α*SampleRTT
∀ Média móvel com peso exponencial ∀ Infuência de uma dada amostra decresce de forma exponencial
∀ Valor típico: α = 0,125
![Page 18: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/18.jpg)
SSC0641 - 2011 18
Exemplo de Estimativa do RTT
![Page 19: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/19.jpg)
SSC0641 - 2011 19
∀ EstimatedRTT mais “margem de segurança”.
∀ Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT:
DevRTT = (1-β )*DevRTT +β *|SampleRTT-EstimatedRTT|
(tipicamente β = 0.25)
Defnindo a temporização
![Page 20: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/20.jpg)
SSC0641 - 2011 20
∀ Então ajustar o intervalo de temporização:
TimeoutInterval = EstimatedRTT + 4*DevRTT
Defnindo a temporização
![Page 21: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/21.jpg)
SSC0641 - 2011 21
TCP: Transferência de Dados Confável
![Page 22: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/22.jpg)
SSC0641 - 2011 22
∀ TCP cria serviços de rdt em cima do serviço não-confável do IP.
– segmentos em paralelo;
– ACKs cumulativos;
– TCP usa tempo de retransmissão simples.
∀ Retransmissões são disparadas por:– eventos de tempo de confrmação;
– ACKs duplicados.
TCP: Transferência de Dados Confável
![Page 23: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/23.jpg)
SSC0641 - 2011 23
∀ Dado recebido da aplicação:– cria segmento com número de sequência;
– Número de sequência é o número do byte-stream do 1o byte de dados no segmento;
– inicia o temporizador se ele ainda não estiver em execução (considera o segmento não-confrmado mais antigo);
– tempo de expiração: TimeOutInterval.
Eventos do Transmissor TCP
![Page 24: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/24.jpg)
SSC0641 - 2011 24
∀ Tempo de confrmação (timeout):– retransmite o segmento que provocou o
tempo de confrmação;
– reinicia o temporizador.
∀ ACK recebido:– Quando houver o ACK de segmentos
anteriormente não confrmados:
• atualizar o que foi confrmado;
• iniciar o temporizador se houver segmentos pendentes.
Eventos do Transmissor TCP
![Page 25: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/25.jpg)
SSC0641 - 2011 25
![Page 26: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/26.jpg)
SSC0641 - 2011 26Cenário com perda do ACKTemporização prematura,
ACKs cumulativos
TCP: Retransmissão
![Page 27: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/27.jpg)
SSC0641 - 2011 27Cenário de ACK cumulativo
TCP: Retransmissão
![Page 28: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/28.jpg)
SSC0641 - 2011 28
Geração de ACK [RFC 1122,2581]
Evento no receptor Ação do receptor TCPSegmento chega em ordem, não há lacunas, segmentos anteriores já aceitos
ACK retardado. Espera até 500 ms pelo próximo segmento. Se não chegar, envia ACK.
Segmento chega em ordem, não há lacunas, um ACK atrasado pendente.
Imediatamente envia um ACK cumulativo.
Segmento chega fora de ordem, número de seqüência chegou maior: gap detectado.
Envia ACK duplicado, indicando número de seqüência do próximo byte esperado.
Chegada de segmento que parcial ou completamente preenche o gap.
Reconhece imediatamente se o segmento começa na borda inferior do gap.
![Page 29: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/29.jpg)
SSC0641 - 2011 29
• Com frequência, o tempo de expiração é relativamente longo...
• Detecta segmentos perdidos por meio de ACKs duplicados:
– transmissor frequentemente envia muitos segmentos back-to-back, e se um segmento é perdido, haverá muitos ACKs duplicados.
• Se o transmissor recebe 3 ACKs para o mesmo dado, supõe que o segmento após foi perdido:
– Retransmissão rápida: reenvia o segmento antes de o temporizador expirar.
Retransmissão Rápida
![Page 30: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/30.jpg)
SSC0641 - 2011 30
TCP: Controle de fuxo
![Page 31: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/31.jpg)
SSC0641 - 2011 31
• Lado receptor da conexão TCP possui um buffer de recepção:
• Serviço de speed-matching: encontra a taxa de envio adequada à taxa de vazão da aplicação receptora.
• Processos de aplicação podem ser lentos para ler o buffer
Controle de fluxoTransmissor não deve esgotar os buffers de recepção enviando dados rápido demais.
Controle de Fluxo do TCP
![Page 32: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/32.jpg)
SSC0641 - 2011 32
(suponha que o receptor TCP descarte segmentos fora de ordem)
• Espaço disponível no buffer= RcvWindow= RcvBuffer-[LastByteRcvd - LastByteRead]
• Receptor informa a área disponível incluindo valor RcvWindow nos segmentos
• Transmissor limita os dados não confinados ao RcvWindow
• Garantia contra overflow no buffer do receptor
Controle de Fluxo do TCP: Como funciona?
![Page 33: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/33.jpg)
SSC0641 - 2011 33
TCP: Controle de congestionamento
![Page 34: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/34.jpg)
SSC0641 - 2011 34
∀ Informalmente: “muitas fontes enviando dados acima da capacidade da rede de tratá-los”.
∀ Diferente de controle de fuxo!∀ Sintomas:
– perda de pacotes (saturação de bufer nos roteadores);
– atrasos grandes (flas nos bufers dos roteadores).
Congestionamento
![Page 35: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/35.jpg)
SSC0641 - 2011 35
Fim-a-fm:– Não usa realimentação explícita da rede.
– Congestionamento é inferido a partir das perdas e dos atrasos observados nos sistemas fnais.
– Abordagem usada pelo TCP.
Mecanismos de Controle de Congestionamento
![Page 36: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/36.jpg)
SSC0641 - 2011 36
Assistido pela rede:– Roteadores enviam informações para os
sistemas fnais.
– Bit único indicando o congestionamento (SNA, DECbit, TCP/IP ECN, ATM).
– Taxa explícita do transmissor poderia ser enviada.
Mecanismos de Controle de Congestionamento
![Page 37: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/37.jpg)
SSC0641 - 2011 37
Mecanismos de Controle de Congestionamento
![Page 38: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/38.jpg)
SSC0641 - 2011 38
TCP: Controle de Congestionamento
![Page 39: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/39.jpg)
SSC0641 - 2011 39
∀ Controle fm-a-fm (sem assistência da rede).∀ Transmissor limita a transmissão:
LastByteSent - LastByteAcked ≤ CongWin
∀ Aproximadamente,rate = CongWin / RTT Bytes/seg
∀ CongWin é dinâmico, função de congestionamento das redes detectadas.
TCP: Controle de Congestionamento
![Page 40: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/40.jpg)
SSC0641 - 2011 40
∀ Através da perda de segmentos!∀ A perda é detectada por:
– tempo de confrmação (timeout);
– ou 3 ACKs duplicados.∀ Consequentemente, transmissor TCP reduz a taxa (CongWin) após o evento de perda.
Como o transmissor detecta congestionamento?
![Page 41: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/41.jpg)
SSC0641 - 2011 41
∀ Algoritmo possui três mecanismos:– Aumento Aditivio, Diminuição
Multiplicativa (AIMD);
– Partida lenta;
– Reação a eventos de esgotamento de temporização.
TCP: Controle de Congestionamento
![Page 42: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/42.jpg)
SSC0641 - 2011 42
• Redução multiplicativa: diminui o CongWin pela metade após o evento de perda.• Aumento aditivo: aumenta o CongWin com 1 MSS a cada RTT na ausência de eventos de perda.
TCP: AIMD (additive increase/multiplicative
decrease)
![Page 43: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/43.jpg)
SSC0641 - 2011 43
∀ Quando a conexão começa, CongWin = 1 MSS
– Exemplo: MSS = 500 bytes e RTT = 200 ms.
– Taxa inicial = 20 kbps.
∀ Largura de banda disponível pode ser >> MSS/RTT
– Desejável aumentar rapidamente até a taxa respeitável.
TCP: Partida Lenta
![Page 44: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/44.jpg)
SSC0641 - 2011 44
• Quando a conexão começa, a taxa aumenta de modo exponencial até a ocorrência do primeiro evento de perda.
• Dobra o CongWin a cada RTT.
• Faz-se incrementando o CongWin para cada ACK recebido.
Resumindo: taxa inicial é lenta, mas aumenta de modo exponencialmente rápido.
Hospedeiro A
um segmento
RTT
Hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP: Partida Lenta
![Page 45: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/45.jpg)
SSC0641 - 2011 45
∀ Após 3 ACKs duplicados:– CongWin é cortado pela metade;
– janela então cresce linearmente.∀ Após timeout de confirmação:
– CongWin é ajustado para 1 MSS;
– janela então cresce exponencialmente até um limite, então cresce linearmente.
• Filosofia:– se ocorreu timeout, dados não estão sendo
entregues!
TCP Reno: Reação a timeouts
![Page 46: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/46.jpg)
SSC0641 - 2011 46
∀ Quando o aumento exponencial deve tornar-se linear?
∀ Quando CongWin obtiver 1/2 do seu valor antes do tempo de confrmação.
∀ Implementação:– No evento de perda, o limiar (variável) é
ajustado para 1/2 do CongWin logo antes do evento de perda.
TCP: Reação a timeouts
![Page 47: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/47.jpg)
SSC0641 - 2011 47
∀ Quando CongWin está abaixo do limite (Threshold), o transmissor em fase de slow-start, a janela cresce exponencialmente.
∀ Quando CongWin está acima do limite (Threshold), o transmissor em fase de congestion-avoidance, a janela cresce linearmente.
∀ Quando ocorrem três ACK duplicados, o limiar (Threshold) é ajustado em CongWin/2 e CongWin é ajustado para Threshold.
∀ Quando ocorre tempo de confrmação (timeout), o Threshold é ajustado para CongWin/2 e o CongWin é ajustado para 1 MSS.
TCP: Controle de Congestionamento
![Page 48: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/48.jpg)
SSC0641 - 2011 48
•Objetivo de eqüidade: se K sessões TCP compartilham o mesmo enlace do gargalo com largura de banda R, cada uma deve ter taxa média de R/K.
Justiça (Eqüidade) do TCP
![Page 49: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/49.jpg)
SSC0641 - 2011 49
∀ Aplicações multimídia normalmente não usam TCP!
– Não querem a taxa estrangulada pelo controle de congestionamento.
∀ Em vez disso, usam UDP:– trafega áudio/vídeo a taxas
constantes, toleram perda de pacotes
Justiça e UDP
![Page 50: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/50.jpg)
SSC0641 - 2011 50
∀ Nada previne as aplicações de abrirem conexões paralelas entre 2 hospedeiros!∀ Web browsers fazem isso.∀ Exemplo: enlace de taxa R suportando 9 conexões:
– novas aplicações pedem 1 TCP, obtém taxa de R/10.
– novas aplicações pedem 11 TCPs, obtém R/2 (uma única aplicação com a metade da banda por criar conexões paralelas)
Justiça e Conexões TCP Paralelas
![Page 51: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/51.jpg)
SSC0641 - 2011 51
∀ Quanto tempo demora para receber um objeto de um servidor Web após enviar um pedido? Ou seja, qual a latência?
∀ Ignorando o congestionamento, o atraso é infuenciado por:– estabelecimento de conexão TCP;
– atraso de transferência de dados;
– partida lenta.
Modelagem do atraso TCP
![Page 52: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/52.jpg)
SSC0641 - 2011 52
∀ Suponha um enlace entre o cliente e o servidor com taxa de dados R.
∀ Seja:– S: MSS (bits);
– O: tamanho do objeto (bits).
∀ Não há retransmissões (sem perdas e corrupção de dados).
∀ Janela de congestionamento (W):– estática;
– dinâmica.
Modelagem do atraso TCP - Hipóteses
![Page 53: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/53.jpg)
SSC0641 - 2011 53
Primeiro caso:• WS/R > RTT + S/R• ou seja, o ACK para o primeiro segmento na primeira janela retorna antes de enviar todos os dados.
atraso = 2RTT + O/R
Janela de Congestionamento Estática
![Page 54: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/54.jpg)
SSC0641 - 2011 54
Segundo caso:∀ WS/R < RTT + S/R∀ ou seja, o ACK chega após enviar a janela de dados completa.
∀ K = O/WS (No. de janelas de dados q abrange o objeto)
atraso = 2RTT + O/R + (K-1)[S/R + RTT - WS/R]
Janela de Congestionamento Estática
![Page 55: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/55.jpg)
SSC0641 - 2011 55
Janela Dinâmica
Agora suponha que a janela cresca de acordo com os procedimentos da fase partida lenta.
![Page 56: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/56.jpg)
SSC0641 - 2011 56
Janela de Congestionamento Dinâmica - Atraso
Componentes do atraso:
●2 RTT para estabelecimento de conexão e requisição.
●O/R para transmitir um objeto.
●Servidor com Q períodos inativos devido à partida lenta.
![Page 57: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/57.jpg)
SSC0641 - 2011 57
Assuma que uma página Web consista em:• 1 página HTML de base (de tamanho O bit)• M imagens (cada uma de tamanho O bit)
• HTTP não persistente: • M + 1 conexões TCP nos servidores• Tempo de resposta = (M + 1)O/R + (M + 1)2RTT + soma dos períodos de
inatividade
• HTTP persistente:• 2 RTT para requisitar e receber o arquivo HTML de base• 1 RTT para requisitar e receber M imagens• Tempo de resposta = (M + 1)O/R + 3RTT + soma dos períodos de
inatividade
Modelagem de atraso: HTTP
![Page 58: SSC0641 Redes de Computadores - USPwiki.icmc.usp.br/images/2/25/Rc07-tcp.pdfSSC0641 - 2011 29 • Com frequência, o tempo de expiração é relativamente longo... • Detecta segmentos](https://reader033.fdocuments.es/reader033/viewer/2022060420/5f1755f384ca9366dc6d6b66/html5/thumbnails/58.jpg)
SSC0641 - 2011 58
∀ Saímos da “borda” da rede (camadas de aplicação e de transporte).∀ Vamos para o “núcleo” da rede.
A seguir...