O TCP detecta congestionamento através de uma combinação de mecanismos, dependendo principalmente do feedback da própria rede:
1. Notificação de congestionamento explícito (ECN): *
como funciona: Os roteadores ao longo do caminho podem definir o bit de congestionamento experimentado (CE) no cabeçalho IP de um pacote. Este é um sinal não baseado em perda, indicando congestionamento * antes da * perda de pacotes. O remetente TCP recebe este pacote marcado e reage de acordo.
*
Vantagens: Permite o controle de congestionamento mais suave, pois fornece um aviso precoce. Impede a perda de pacotes, o que é mais disruptivo.
*
Desvantagens: Requer suporte do roteador para a ECN, que não é universalmente implantado.
2. Perda de pacotes: *
como funciona: Este é o método mais comum. Quando um pacote é perdido (devido a congestionamento ou outros motivos), o remetente do TCP não recebe um reconhecimento (ACK) por esse pacote dentro de um tempo razoável. Isso é interpretado como uma indicação de congestionamento.
*
Vantagens: Simples e amplamente aplicável; Não requer nenhum recurso de rede especial.
*
Desvantagens: Reage ao congestionamento * após a perda de pacotes, levando a uma experiência mais disruptiva. Também é menos preciso que o ECN, pois a perda pode ser causada por outros motivos além do congestionamento.
3. Tempo limite: *
como funciona: O TCP usa temporizadores para esperar ACKs. Se um ACK para um pacote não for recebido antes do timer expirar, o remetente assume a perda de pacotes (possivelmente devido ao congestionamento) e reage de acordo.
*
Vantagens: Fornece um mecanismo de backup se outros métodos falharem.
*
Desvantagens: Pode ser menos sensível ao congestionamento do que outros métodos; Os valores do timer precisam de ajuste cuidadoso.
4. ACKS duplicado: *
como funciona: Se o remetente receber três ACKs duplicados para o mesmo pacote, ele infere que um pacote após o reconhecido pode ter sido perdido (ou atrasado). Isso sugere congestionamento.
*
Vantagens: Detecta congestionamento * antes de * ocorrer um tempo limite, oferecendo uma resposta mais rápida.
*
Desvantagens: Depende da suposição de que a perda de pacotes é a causa, não necessariamente congestionamento. Pode ser desencadeado por outros problemas de rede.
em resumo: A detecção de congestionamento do TCP é uma abordagem multifacetada. Idealmente, ele usa o ECN para detecção precoce e não-desesperada. Se o ECN não estiver disponível ou ineficaz, ele voltará à detecção de perda de pacotes por meio de tempo limite e ACKs duplicados. Esses mecanismos, combinados com os algoritmos de controle de congestionamento do TCP (como início lento, prevenção de congestionamento, retransmissão rápida, recuperação rápida), trabalham juntos para ajustar a taxa de envio para corresponder à capacidade da rede, evitando ou mitigando o congestionamento.