Contents

Introduction

Informações de Apoio

Visão geral do problema

Produto de retardo de largura de banda

Verificar

Solução

Como informar o tempo de ida e volta (RTT) entre dois locais?

Introduction

Este documento descreve o problema associado à rede de alta velocidade e alta latência. Ele deriva uma fórmula do BDP para calcular o uso real da largura de banda em uma determinada condição.

Informações de Apoio

Como um número cada vez maior de empresas tem ou está no processo de criar datacenters dispersos geograficamente e interconectar os data centers por meio de link de alta velocidade. As necessidades de melhor utilização da largura de banda estão aumentando.

O BDP (Bandwidth-Delay Product, Produto de atraso na largura de banda) é publicado na Internet há vários anos. No entanto, não existe um exemplo real sobre o aspecto da questão. A fórmula BDP se concentra no tamanho das janelas TCP. Ele não nos dá uma maneira de calcular o possível uso da largura de banda com base na distância. Este documento explica brevemente o BDP e demonstra o problema e a resolução. Este artigo também deriva uma fórmula para calcular o uso da largura de banda em uma determinada condição.

Visão geral do problema

Sua empresa tem dois datacenters. A sua empresa faz backup dos dados essenciais de negócios de um data center para outro. O administrador de backup relatou que não pode concluir o backup na janela de backup devido à lentidão da rede. Como administrador de rede, você é designado para investigar o problema de lentidão da rede. Você conhece estes fatores:

- Esses dois datacenters estão a 1000 KM de distância.

- Esses datacenters são interconectados via link de 1Gbps.

Após a investigação, você notou:

- Há largura de banda disponível suficiente.

- Não há problemas de hardware ou software de rede.

- O aplicativo de backup utiliza apenas cerca de 10 Mbps de largura de banda, até mesmo o restante da largura de banda de 990 Mbps é grátis.

- O aplicativo de backup usa TCP para transferir dados.

Produto de retardo de largura de banda

Para responder à pergunta sobre o aplicativo de backup usa apenas 10 Mbps, ele apresenta o BDP (Bandwidth-Delay Product, Produto de atraso de largura de banda).

O BDP simplesmente afirma que:

BDP (bits) = total_available_bandwidth (bits/s) x round_trip_time (s)

ou, como o RWIN/BDP é geralmente em bytes, e a latência é medida em milissegundos:

BDP (bytes) = total_available_bandwidth (KBytes/seg) x round_trip_time (ms)

Isso significa que a Janela TCP é um buffer que determina a quantidade de dados que pode ser transferida antes que o servidor pare e aguarde confirmações de pacotes recebidos. O throughput é essencialmente vinculado ao BDP. Se o BDP (ou RWIN) for menor que o produto da latência e da largura de banda disponível, você não poderá preencher a linha, pois o cliente não pode enviar confirmações de volta rápido o suficiente. Uma transmissão não pode exceder o valor (RWIN / latência), então a Janela TCP (RWIN) precisa ser grande o suficiente para se ajustar à largura de banda máxima x maximum_antecipadamente_delay.

Com a fórmula acima. A fórmula de cálculo da largura de banda derivada é:

Uso de largura de banda (Kbps)=BDP(bytes)/RTT(ms) * 8

Note: Esta fórmula calcula o máximo de uso de largura de banda teórica. Ele não leva em consideração o tempo de transmissão de pacotes do SO porque tem muitos fatores envolvidos, por exemplo, memória disponível, driver de NIC, velocidade da placa de rede local, cache ou, às vezes, até mesmo velocidade de disco. Como resultado, quando o tamanho das janelas TCP é grande, a largura de banda calculada seria maior que a largura de banda real. Quando o tamanho das janelas TCP é muito grande, o desvio também pode ser grande.

Com a fórmula derivada, você pode responder à pergunta sobre por que o aplicativo de backup só pode usar 10 Mbps fazendo o cálculo abaixo.

- Em geral, o RTT para 1000KM é ~15. Então RTT=15ms

- Por padrão, o tamanho do Windows do sistema operacional Windows 2003 é de 17.520 bytes. Então BDP=17.520 bytes

- Coloque estes números na fórmula:

Uso de largura de banda (Kbps) =17520/15*8.

O resultado é 9344 Kbps ou 9,344 Mbps. 9,344 Mbps mais cabeçalho TCP e IP. O resultado final é ~10 Mbps.

Verificar

Como administrador de rede, você respondeu teoricamente à pergunta. Agora você precisa confirmar a teoria no mundo real.

Você pode usar qualquer ferramenta de teste de desempenho de rede para confirmar a teoria. Você decidiu executar o iperf para demonstrar o problema e a resolução.

Esta é a configuração do laboratório:

1. Um servidor no datacenter 1 com o endereço IP 10.10.1.1.

2. Um cliente no datacenter 2 com endereço IP 172.16.2.1.

A topologia é como mostra a imagem:

Siga estas etapas para verificar:

1. Execute iperf3 -s -p 5001 em 10.10.1.1 para torná-lo um servidor e ouvir na porta TCP 5001.

2. Para testar com o tamanho de janela TCP padrão 17.520 bytes. Execute iperf3 -c 10.10.1.1 -i 1 -t 360 -w 17520 -p 5001 em 172.16.2.1 para torná-lo um cliente. Esse comando diz ao iperf para se conectar ao servidor na porta 5001, é executado por 360 segundos e relata o uso da largura de banda a cada 1 segundo com o tamanho do Windows TCP de 17.520 bytes.

3. Para testar com tamanho de janela TCP personalizado, por exemplo, 6.553.500 bytes, execute iperf3 -c 10.10.1.1 -i 1 -t 360 -w 6553500 -p 5001

Este é o resultado do teste de laboratório com o tamanho padrão da janela TCP de 17.520 bytes. Você pode ver que o uso da largura de banda é de ~10 Mbps.

C:\Tools>iperf3.exe  -c 10.10.1.1  -t 360  -p 5001 -i 1 -w 17520

Connecting to host 10.10.1.1, port 5001

[  4] local 172.16.2.1 port 49650 connected to 10.10.1.1 port 5001

[ ID] Interval           Transfer     Bandwidth

[ ID] Interval           Transfer     Bandwidth

[  4]   0.00-1.00   sec  1.30 MBytes  10.9 Mbits/sec

[  4]   1.00-2.02   sec   919 KBytes  7.41 Mbits/sec

[  4]   2.02-3.02   sec  1.28 MBytes  10.7 Mbits/sec

[  4]   3.02-4.02   sec  1.14 MBytes  9.59 Mbits/sec

[  4]   4.02-5.01   sec  1.24 MBytes  10.4 Mbits/sec

[  4]   5.01-6.01   sec  1.33 MBytes  11.3 Mbits/sec

[  4]   6.01-7.01   sec  1.15 MBytes  9.65 Mbits/sec

[  4]   7.01-8.01   sec  1.12 MBytes  9.36 Mbits/sec

[  4]   8.01-9.01   sec  1.22 MBytes  10.3 Mbits/sec

[  4]   9.01-10.01  sec  1.13 MBytes  9.49 Mbits/sec

[  4]  10.01-11.01  sec  1.30 MBytes  10.8 Mbits/sec

[  4]  11.01-12.01  sec  1.17 MBytes  9.84 Mbits/sec

[  4]  12.01-13.01  sec  1.13 MBytes  9.48 Mbits/sec

[  4]  13.01-14.01  sec  1.28 MBytes  10.7 Mbits/sec

[  4]  14.01-15.01  sec  1.40 MBytes  11.8 Mbits/sec

[  4]  15.01-16.01  sec  1.24 MBytes  10.4 Mbits/sec

[  4]  16.01-17.01  sec  1.30 MBytes  10.9 Mbits/sec

[  4]  17.01-18.01  sec  1.17 MBytes  9.78 Mbits/sec

Este é o resultado do teste de laboratório com o tamanho da janela TCP de 6.553.500 bytes. Você pode ver que o uso da largura de banda é de ~200 Mbps.

C:\Tools>iperf3.exe  -c 10.10.1.1  -t 360  -p 5001 -i 1 -w 6553500

Connecting to host 10.10.1.1, port 5001

[  4] local 172.16.2.1 port 61492 connected to 10.10.1.1 port 5001

[ ID] Interval           Transfer     Bandwidth

[  4]   0.00-1.00   sec  29.1 MBytes   244 Mbits/sec

[  4]   1.00-2.00   sec  25.4 MBytes   213 Mbits/sec

[  4]   2.00-3.00   sec  26.9 MBytes   226 Mbits/sec

[  4]   3.00-4.00   sec  18.2 MBytes   152 Mbits/sec

[  4]   4.00-5.00   sec  25.8 MBytes   217 Mbits/sec

[  4]   5.00-6.00   sec  28.8 MBytes   241 Mbits/sec

[  4]   6.00-7.00   sec  26.1 MBytes   219 Mbits/sec

[  4]   7.00-8.00   sec  21.1 MBytes   177 Mbits/sec

[  4]   8.00-9.00   sec  22.5 MBytes   189 Mbits/sec

[  4]   9.00-9.42   sec  9.54 MBytes   190 Mbits/sec

Solução

Do ponto de vista do desenvolvimento de software, o multiprocesso para executar várias sessões TCP simultâneas pode melhorar o uso da largura de banda. No entanto, não é prático que o administrador de rede ou sistema modifique o código-fonte. O que você pode fazer é ajustar o SO.

O RFC1323 define várias extensões TCP para TCP de alto desempenho.  Isso inclui a opção de escala de janela e a ACK seletiva. Eles são implementados pelos principais sistemas operacionais. No entanto, por padrão, alguns SO os desabilitam até mesmo a pilha TCP/IP são gravados para suportá-los.

- Esses SO desabilitam o RFC1323 por padrão: Windows 2000, Windows 2003, Windows XP e Linux com kernel anterior a 2.6.8.

Se você enfrentar o problema no sistema Microsoft Windows, siga este link para ajustar o TCP. https://support.microsoft.com/en-au/kb/224829.

Para outros sistemas operacionais, consulte a documentação do fornecedor sobre como configurá-los.

- Esses SO permitem o RFC1323 por padrão: Windows 2008 e posterior, Windows Vista e posterior, Linux com kernel 2.6.8 e posterior. Talvez você precise aplicar patches para melhorar essas funções. Em algumas circunstâncias, é desejável desativá-los. Consulte a documentação do fornecedor sobre como desativá-los.

- Alguns dispositivos são construídos sobre o Microsoft Windows 2000, Windows 2003 ou sistema operacional incorporado. por exemplo, NAS, hardware de saúde. Verifique a documentação do fornecedor para verificar se o RFC1323 está ativado ou não.

Como informar o tempo de ida e volta (RTT) entre dois locais?

Em geral, o RTT está associado à distância. A tabela abaixo lista a distância e seus RTTs relevantes. Você também pode usar o teste de ping para ter alguma ideia do RTT em condições de rede normais.

Distância (KM)

RTT(ms)

1,000

15

4,000

50

8,000

120

Note: Acima está apenas um guia, o tempo real de RTT pode variar. Além disso, a latência é afetada pela tecnologia usada. Por exemplo, a latência 3G pode ser de 100 ms frequentemente, independentemente da distância. Também é verdade para o satélite.