Eu fiz um experimento simples sobre o desempenho do transporte TCP. O experimento é o seguinte:
Existem duas máquinas, A e B, cada uma instalada com o Ubuntu 12.04 Server. Eu instalei "iperf" em qualquer uma das máquinas e usei para testar a taxa de transporte. A e B estão conectados por meio de um link de 100 Mbps. O experimento é assim:
-
Eu uso iperf para enviar de A para B usando o modo TCP. O resultado é que, em ambos os lados, a taxa de saída do iperf é de 100Mbps e é muito estável.
-
Eu uso outro processo iperf para enviar de B para A, usando as mesmas configurações. O resultado é que em ambos os lados a taxa de saída é um pouco menor, 99Mbps, estavelmente. Mas isso é compreensível.
-
Eu uso mais um processo iperf para enviar novamente de A para B, com a presença dos dois fluxos de tráfego anteriores. Agora a coisa ligada acontece. A taxa dos três fluxos de tráfego é de 50 Mbps, em ambos os lados. As taxas são todas muito estáveis.
Eu entendo o motivo pelo qual o fluxo 1 e o fluxo 3 compartilham o link de uma direção e ambos têm uma largura de banda de 50Mbps. Mas qual é a razão pela qual o fluxo inverso, fluxo 2, também é afetado e também é 50Mbps? O link bidirecional não deve ser considerado como dois links diferentes que não têm interferência entre si?