Mantenha os dados fluindo com TCP
Experimente janelas deslizantes, retransmissão e controle de congestionamento.
- Explicar por que uma janela deslizante é mais rápida do que esperar cada confirmação.
- Descrever o que acontece com uma janela quando um segmento se perde.
- Ler um gráfico da janela de congestionamento e nomear suas fases.
Se o TCP enviasse um segmento e esperasse a confirmação antes de enviar o próximo, um servidor a 100 ms de distância conseguiria enviar cerca de dez segmentos por segundo, por mais rápido que fosse o enlace. Isso daria cerca de 120 kilobits por segundo em uma conexão de um gigabit.
Por isso, o TCP mantém muitos segmentos em trânsito ao mesmo tempo. A pergunta difícil é quantos: poucos desperdiçam o enlace, e muitos o sobrecarregam.
A janela deslizante
A janela é a quantidade de dados não confirmados que quem envia pode ter em trânsito. Conforme as confirmações chegam, a janela desliza e libera dados novos. Se um segmento some, quem recebe guarda em um buffer o que chegou depois dele, mas não pode entregar isso à aplicação até a lacuna ser preenchida. Esse travamento se chama bloqueio de cabeça de fila (head-of-line blocking).
Experimente
Dispute com a janela
Faça a transferência uma vez com janela 1 e de novo com 4 e 8. O gráfico guarda seus resultados.
Depois tente perder um segmento: clique em um azul antes de enviar. O que acontece com os segmentos depois dele, e quantas idas e voltas a perda custa?
- Em trânsito nesta ida e volta
- Recebido, aguardando uma lacuna
- Entregue à aplicação
- Será perdido
- Idas e voltas
- 0
- Segmentos enviados
- 0
- Entregues em ordem
- 0/16
1 segmento está pronto para sair. Clique em um para perdê-lo no caminho.
Dois limites para a janela
Quem envia obedece ao menor de dois limites, que protegem coisas diferentes:
- O controle de fluxo protege quem recebe, que anuncia quanto espaço de buffer ainda tem.
- O controle de congestionamento protege a rede. Quem envia estima o que o caminho suporta, porque ninguém informa isso diretamente.
Essa estimativa é a janela de congestionamento. A abordagem do TCP é sondar por mais largura de banda até que uma perda mostre que passou do ponto, e então recuar.
Experimente
Desenhe o dente de serra
Experimente os três cenários e depois clique nas idas e voltas para colocar sua própria perda. Compare um D (ACKs duplicados: a rede está descartando alguns pacotes, mas ainda funciona) com um T (timeout: nada está passando). Passe o mouse sobre o gráfico para ler os valores exatos.
Qual custa mais, e por que o TCP reagiria de forma diferente a cada um?
- Janela de congestionamento
- Limiar de partida lenta
Mostrar os números em uma tabela
| Ida e volta | Janela de congestionamento | Limiar de partida lenta |
|---|---|---|
| 1 | 1 | 16 |
| 2 | 2 | 16 |
| 3 | 4 | 16 |
| 4 | 8 | 16 |
| 5 | 16 | 16 |
| 6 | 17 | 16 |
| 7 | 18 | 16 |
| 8 | 19 | 16 |
| 9 | 20 | 16 |
| 10 | 21 | 16 |
| 11 | 22 | 16 |
| 12 | 23 | 16 |
| 13 | 11 | 11 |
| 14 | 12 | 11 |
| 15 | 13 | 11 |
| 16 | 14 | 11 |
| 17 | 15 | 11 |
| 18 | 16 | 11 |
| 19 | 17 | 11 |
| 20 | 18 | 11 |
| 21 | 19 | 11 |
| 22 | 20 | 11 |
| 23 | 21 | 11 |
| 24 | 22 | 11 |
| 25 | 23 | 11 |
| 26 | 24 | 11 |
| 27 | 25 | 11 |
| 28 | 26 | 11 |
Adicione perda a uma ida e volta
Clique em uma ida e volta para alternar entre D (ACKs duplicados), T (timeout) e sem perda.
- Total de segmentos enviados
- 467
- Janela final
- 26
- Fase final
- Prevenção de congestionamento
As fases têm nome. A partida lenta (slow start) dobra a janela a cada ida e volta, o que não tem nada de lento; o nome se refere a começar com uma janela pequena. Depois do limiar, a prevenção de congestionamento acrescenta apenas um segmento por ida e volta. Uma perda então corta a janela, e esse “aumento aditivo, redução multiplicativa” produz o dente de serra que você acabou de desenhar.
Experimente
Encontre a perda em uma captura real
Capturas de pacotes mostram tudo isso acontecendo. Clique na linha que responde a cada pergunta.
Um segmento sumiu. Qual linha mostra primeiro dados chegando depois de uma lacuna?
Principais conclusões
Uma janela mantém muitos segmentos em trânsito, então uma ida e volta entrega muito mais dados.
Um segmento perdido bloqueia a entrega em ordem até a retransmissão chegar.
O controle de fluxo protege quem recebe, e o controle de congestionamento protege a rede.
Quiz da aula
7 perguntas · aprovação com 5 acertos · até 50 XP
Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.
Dúvidas sobre esta lição
Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.
Carregando publicações…