2 Controle de Congestionamento

2.1 Baseado em Equação

O DCCP é um protocolo flexível que permite que os aplicativos definam suas próprias funções de controle de congestionamento por meio de um mecanismo baseado em equações. O objetivo do controle de congestionamento é ajustar essa janela de forma eficaz para evitar congestionamentos na rede. O controle de congestionamento do DCCP se baseia em uma equação que determina como a janela de congestionamento deve ser ajustada ao longo do tempo.

A equação básica de controle de congestionamento do DCCP pode ser expressa como:

CWR = CWR + Alpha / W - Beta * (Ack-Rate - Sending-Rate)

Onde:
- CWR é a janela de congestionamento.
- Alpha e Beta são parâmetros que controlam a taxa de ajuste da janela de congestionamento.
- W é o tamanho da janela da conexão, ou seja, a quantidade máxima de dados que pode ser transmitida antes de receber uma confirmação.
- Ack-Rate é a taxa de confirmação (ACK) recebida do destinatário.
- Sending-Rate é a taxa de envio de dados.

A ideia por trás dessa equação é que a janela de congestionamento deve ser ajustada com base na diferença entre a taxa de confirmação recebida e a taxa de envio de dados. Se a taxa de confirmação for maior que a taxa de envio, isso sugere que a rede pode suportar um aumento na taxa de transmissão, e a janela de congestionamento é aumentada. Por outro lado, se a taxa de confirmação for menor que a taxa de envio, isso pode indicar congestionamento na rede, e a janela de congestionamento é reduzida.

Os parâmetros Alpha e Beta determinam o quão sensível o controle de congestionamento do DCCP é às diferenças entre as taxas de confirmação e envio, e esses valores podem ser ajustados para otimizar o desempenho da conexão de acordo com os requisitos do aplicativo.

O DCCP oferece flexibilidade para que os aplicativos ajustem os parâmetros e personalizem a equação de controle de congestionamento de acordo com suas necessidades específicas, tornando-o adequado para uma ampla variedade de cenários de comunicação de rede.

Baseado em Janela

O DCCP implementa o controle de congestionamento principalmente por meio do uso de uma janela de congestionamento (congestion window - CWR), semelhante a outros protocolos de transporte, como o TCP (Transmission Control Protocol). O objetivo da janela de congestionamento é regular a quantidade de dados que pode ser transmitida antes de receber uma confirmação do destinatário. Isso é feito para evitar congestionamento na rede e garantir um desempenho estável e justo para todas as conexões.

A dinâmica do controle de congestionamento do DCCP é semelhante ao TCP, utilizando a abordagem de janela deslizante, mas com algumas diferenças importantes:

  1. Crescimento exponencial: Inicialmente, a janela de congestionamento aumenta exponencialmente, permitindo que a conexão explore a capacidade da rede de forma agressiva. Isso é semelhante ao TCP, mas com um crescimento mais agressivo no DCCP.
  2. Retransmissões: Se ocorrer uma retransmissão (um pacote não é confirmado após um tempo), o DCCP diminui a janela de congestionamento pela metade. Isso é conhecido como "redução rápida".
  3. Multiplicador de perda (Loss Multiplier): O DCCP usa um parâmetro chamado Loss Multiplier para determinar como a janela de congestionamento deve ser ajustada quando ocorre perda de pacotes. O Loss Multiplier é uma variável que pode ser ajustada para controlar o impacto da perda de pacotes na janela de congestionamento.
  4. Rate Control (Controle de Taxa): O DCCP também pode usar um mecanismo de Rate Control (Controle de Taxa) que permite ao remetente regular a taxa de envio de acordo com a taxa de feedback recebida do destinatário.
  5. Feedback dinâmico: O DCCP depende do feedback dinâmico do destinatário para ajustar a janela de congestionamento de acordo com as condições da rede. Esse feedback é fornecido por meio de Acknowledgments (ACKs) e outros mecanismos.

O controle de congestionamento do DCCP é adaptável às condições da rede e permite uma exploração agressiva da capacidade disponível. Mas vale notar que o DCCP é frequentemente usado em cenários onde a detecção de perda de pacotes não é tolerada, como aplicações de tempo real e multimídia. Nesses casos, o DCCP deve ser configurado com cuidado para evitar perdas de pacotes que possam degradar a qualidade da comunicação.