Diferença na utilização da rede entre conexões TCP únicas e múltiplas


1

Sabemos que o modo como o TCP funciona (básico) é começando com a fase de início lento seguido por um aumento linear da janela de congestionamento (CWD). O CWD é ajustado de acordo com o status da rede. Então, quando iniciamos uma conexão, levará algum tempo para que a conexão atinja um CWD estável, dependendo da condição da rede.

Assim, por essa lógica, uma conexão TCP tentará preencher todo o b / w disponível de um link. Portanto, se houver várias conexões TCP, cada uma ajustará seu CWD para que haja um mínimo de congestionamento.

Então, suponha que eu tenha um link de 100 Mbps (a topologia é dada abaixo) Eu tenho um aplicativo que está enviando tráfego UDP Eu tenho outro aplicativo iperf que pode iniciar conexões TCP paralelas ao longo desse mesmo link

[h1] ---- 100 Mbps ---- [h2]

h1 (UDP + iperf client)
h2 (UDP + iperf server)

Estou fazendo um experimento da seguinte maneira

  1. 1 UDP + 1 TCP
  2. 1 UDP + 2 TCP
  3. 1 UDP + 4 TCP
  4. 1 UDP + 8 TCP e assim por diante

Meu achado diz que o throughput de 1 conexão TCP é menor que o throughput de 8 conexões TCP combinadas (Exp 1 vs Exp 4). Deve-se ter em mente que o rendimento individual das 8 conexões é muito menor (o que é óbvio).

Então minha pergunta é: por que a única conexão TCP não utiliza o total de b / w que o 8 TCP pode fazer juntos?


Você não adicionou detalhes como usou iperf, mas adivinhando: 8 conexões TCP fazem com que mais pacotes UDP sejam descartados do que 1 conexão TCP, então o UDP recebe menos largura de banda, então a largura de banda total usada de 8 conexões TCP é maior. A primeira coisa que faço é medir quantos pacotes UDP são descartados em todos os casos.
dirkt

Respostas:


1

Se você estiver usando CUBIC ou outro algoritmo de controle de congestionamento do AIMD, quando ele atinge o congestionamento, ele reduz rapidamente a taxa de congestionamento e, em seguida, volta lentamente para encontrar o máximo novamente. Isso deixa poucas “vieiras” (em um gráfico tcptrace) de largura de banda não utilizada que outros fluxos podem preencher. Se o fluxo do UDP for de taxa fixa, ele não preencherá essas lacunas. Mas outros fluxos TCP concorrentes certamente o farão. Suspeito que quanto mais fluxos TCP você tiver, mais eles preencherão toda a largura de banda deixada pelas medidas de controle de congestionamento dos outros.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.