Controle de congestionamento: slow start no TCP
Gabarito: letra B. O algoritmo slow start (partida lenta) é um mecanismo de controle de congestionamento implementado pelo protocolo TCP (Transmission Control Protocol), da camada de transporte. O UDP não possui controle de congestionamento, e os protocolos IPv4, IPv6 e HTTP não implementam esse algoritmo — o HTTP, inclusive, roda sobre TCP ou UDP, mas o slow start é do TCP.
O controle de congestionamento é uma das funções centrais do TCP, ao lado do controle de fluxo e da transferência confiável. Enquanto o controle de fluxo evita que o remetente sobrecarregue o receptor (usando a janela informada pelo destinatário), o controle de congestionamento evita que o remetente sobrecarregue a rede (os roteadores intermediários). O TCP detecta congestionamento indiretamente, observando perdas de segmentos e o tempo de ida e volta (RTT), e ajusta sua taxa de transmissão de forma adaptativa.
O slow start é a fase inicial do controle de congestionamento do TCP. A ideia é começar com uma janela de congestionamento (cwnd) pequena — tipicamente 1 MSS (Maximum Segment Size) — e dobrá-la a cada RTT (crescimento exponencial), até atingir o limiar de partida lenta (ssthresh). A partir daí, o TCP entra na fase de congestion avoidance, em que o crescimento passa a ser linear (aditivo). Quando ocorre uma perda (sinal de congestionamento), o TCP reduz drasticamente a janela e recomeça o processo. Esse comportamento é conhecido como AIMD (Additive Increase, Multiplicative Decrease).
Na prática, o slow start evita que um remetente envie uma rajada de dados logo no início da conexão, o que poderia congestionar a rede antes que o TCP tivesse informações sobre a capacidade disponível. Por exemplo, ao baixar um arquivo grande, o TCP começa enviando poucos segmentos e, a cada confirmação (ACK) recebida, aumenta a quantidade enviada — de forma que a taxa de envio se adapta rapidamente à capacidade da rede, mas sem causar colapso.
A distinção que importa aqui é entre TCP e UDP: o TCP é orientado à conexão, confiável e possui controle de fluxo e de congestionamento; o UDP é não orientado à conexão, não confiável e não possui controle de congestionamento — por isso, aplicações que rodam sobre UDP (como streaming em tempo real) precisam implementar seus próprios mecanismos, se necessário. O slow start é, portanto, uma característica exclusiva do TCP.
A pegadinha da banca é justamente associar o slow start a protocolos que não o implementam, como o UDP (que não tem controle de congestionamento) ou o IP (que é não confiável e não orientado à conexão). O candidato que confunde as camadas ou as funções de cada protocolo pode cair nessas armadilhas. Guarde: controle de congestionamento = TCP; sem controle de congestionamento = UDP.
Alternativa A — ❌ Incorreta
O IPv4 é o protocolo da camada de rede (Internet), responsável pelo endereçamento e encaminhamento de pacotes. Ele não implementa controle de congestionamento — essa função é da camada de transporte, especificamente do TCP. O IPv4 apenas entrega datagramas de forma não confiável, sem garantias de entrega, ordem ou controle de fluxo.
Alternativa B — ✅ Correta ⟵ GABARITO
O slow start é parte do mecanismo de controle de congestionamento do TCP. O TCP, por ser orientado à conexão e confiável, precisa gerenciar a taxa de transmissão para evitar sobrecarregar a rede. O slow start é a fase inicial desse controle, em que a janela de congestionamento cresce exponencialmente até atingir o limiar, quando passa a crescer linearmente (congestion avoidance).
Alternativa C — ❌ Incorreta
O UDP é um protocolo da camada de transporte, mas não possui controle de congestionamento. Ele é não orientado à conexão, não confiável e simplesmente encapsula os dados recebidos da camada de aplicação, sem mecanismos de controle de fluxo, erros ou congestionamento. Portanto, o slow start não se aplica ao UDP.
Alternativa D — ❌ Incorreta
O IPv6 é a versão mais recente do protocolo IP, também da camada de rede. Assim como o IPv4, ele não implementa controle de congestionamento — essa é uma função da camada de transporte. O IPv6 trouxe melhorias como maior espaço de endereçamento e segurança, mas não inclui algoritmos como o slow start.
Alternativa E — ❌ Incorreta
O HTTP é um protocolo da camada de aplicação, usado para transferência de páginas web. Ele roda sobre o TCP (ou, em versões mais recentes, sobre UDP via QUIC), mas o slow start é um mecanismo do TCP, não do HTTP. O HTTP não implementa controle de congestionamento; ele depende do protocolo de transporte subjacente para isso.
Gabarito: letra B — o slow start é um algoritmo de controle de congestionamento do protocolo TCP.