Datacenter TCP explicado

A rede moderna contém várias melhorias sobre a pilha TCP / IP básica. Um deles, particularmente útil dentro do datacenter, foi desenvolvido pela Microsoft Research em 2010 e chamado, surpreendentemente, DataCenter TCP (DCTCP).

DCTCP é um conjunto de modificações para TCP, direcionado para preencher duas propriedades:
1. Melhorar a latência para pequenas mensagens sensíveis à latência
2. Não diminuir a taxa de transferência para grandes fluxos sensíveis à taxa de transferência

A latência dentro da rede sai das filas dentro dos roteadores. Portanto, o DCTCP tenta manter a fila pequena. A fila permanece pequena quando seu tamanho é menor que K mensagens.

O algoritmo proposto reduz de forma adaptativa a janela de congestionamento TCP, de forma que a fila permaneça pequena.

As melhorias em relação ao TCP requerem modificação dos três componentes: roteador, receptor e remetente:
1. Marcando pacotes com o sinalizador Congestion Experienced (CE) enquanto a fila se torna maior que K por um roteador.
2. Transformando um fluxo de sinalizadores CE em um fluxo de pacotes ACK TCP por um receptor. Mais especificamente, o receptor envia imediatamente ACK se o sinalizador CE no pacote atual for diferente do anterior. Enquanto o sinalizador CE não for alterado, ele envia ACKs atrasados ​​normais. O pacote ACK sempre contém o último valor do sinalizador CE.
3. Adaptação do tamanho da janela de congestionamento com base no fluxo agregado de pacotes ECN-Echo pelo remetente. Primeiro, o remetente calcula a taxa de congestionamento (CR) - a média móvel exponencial entre as bandeiras CE. O DCTCP reduz o tamanho da janela proporcionalmente ao CR. Se o CR for igual a 1 (todos os pacotes possuem sinalizador CE), o tamanho da janela será reduzido pela metade, assim como o TCP.

A avaliação mostra que a latência da consulta é significativamente melhor para transferências curtas. O desempenho para solicitações sensíveis à taxa de transferência não é pior.

Porém, desde 2010, houve vários trabalhos com revisão e melhorias do DCTCP.

"Aliviar a oscilação da fila: análise e aprimoramento do DCTCP" de 2013 faz um experimento e descobre que o DCTCP está sujeito a oscilação severa do tamanho real da fila. Isso acontece porque entre o primeiro pacote com a bandeira CE e a reação do remetente, há pelo menos atraso no RTT. O artigo propõe dividir um único limite K em dois limites K1 <K <K2, de modo que a definição de sinalizadores CE seja iniciada quando o tamanho da fila for igual a K1, antes da ocorrência de congestionamento real, e pare em K2, antes que o tamanho da fila seja muito reduzido.

Outro artigo é "Um feedback antecipado de congestionamento e esquemas de ajuste de taxa para comunicação muitos-para-um em dados baseados em nuvem", publicado em 2015, que propõe o NewDCTCP - que inclui duas melhorias:
1. As bandeiras CE são definidas mesmo para pacotes recebidos antes do congestionamento
2. Esquema diferente de ajuste do tamanho da janela

Um dos trabalhos mais recentes é "Múltiplos pontos de congestionamento e mecanismos de reação a congestionamentos para melhorar o desempenho do DCTCP em redes de data center", publicado em junho de 2018, que mostra que o tópico permanece atualizado e o problema ainda não foi resolvido. De qualquer forma, o artigo combina a abordagem de limite duplo e introduz uma nova idéia - ajuste da janela de congestionamento. Ele leva em consideração o número de pacotes enviados e ACKs recebidos durante a alteração do tamanho da janela.

Source: https://habr.com/ru/post/pt474282/


All Articles