Como determinar o rendimento de um caminho entre dois hosts com vários links

2

Eu vi perguntas semelhantes durante a pesquisa, por isso achei que esse poderia ser o local mais apropriado para fazer essa pergunta.

Não tenho certeza de como calcular o rendimento de um caminho de transferência de dados devido a vários links. Considere que temos a seguinte conexão entre dois hosts:

A <----- L1 -----> * <----- L2 -----> * <----- L3 -----> B

Um problema afirma que cada um dos três links é caracterizado por uma determinada taxa de transferência em Kbps. A descrição do problema pede um cálculo do rendimento do caminho dado e, dado este cálculo do rendimento, também determina o tempo necessário para transferir um arquivo de algum comprimento arbitrário.

Suponha que temos: L1 = 100Kpbs, L2 = 200Kbps, L3 = 300Kbps

Primeiramente, eu me aproximei desse problema observando o tempo total gasto para transferir um único bit do host A para B, que se torna a soma recíproca das taxas de transferência de cada link.

  • time_taken = #bits_to_transfer * (1 / L1 + 1 / L2 + 1 / L3)

Mas, neste caso, especificado acima, essa taxa de transferência equivalente seria então de 54,5 Kbps! Esta conclusão está obviamente errada já que pelo menos temos uma taxa de transferência de dados de 100Kpbs. Dando um passo para trás por um momento, percebi que essa era de fato a resposta correta se o link inteiro fosse considerado como um único link contínuo do tipo:

A <----- L_equivalent -----> B

Mas isso não é o que temos, já que no espaço físico nós temos três caminhos de links diferentes. Como tal, devemos esperar que múltiplos bits possam ser transmitidos simultaneamente através de links diferentes. A solução acima seria correta se transferíssemos um único bit de A para B a qualquer momento e transmitíssemos o próximo somente depois que o primeiro chegasse.

tl; dr

Na verdade, não seria o caso de primeiro transmitirmos um bit de A através de L1, então, como L1 envia o mesmo bit para L2, podemos transferir outro bit para L1 e prosseguir de acordo. É então uma conclusão correta que o throughput deste caminho entre A e B é meramente a taxa de transferência do link mais lento, 100Kbps?

    
por sherrellbc 08.02.2015 / 17:33

2 respostas

1

O que você conclui faz sentido. Em algum lugar ao longo do caminho, você terá um gargalo - L1 = 100Kpbs em seu exemplo. Portanto, o throughput máximo não ficará acima desse valor mais baixo.

Um exemplo real é uma estação de trabalho corporativa conectada ao switch de nível de acesso com velocidade de porta de 100Mb / s. Este interruptor, por sua vez, é conectado ao interruptor de nível de distribuição com velocidade de 1Gb / s. O switch de distribuição está conectado ao switch central com conexão de 10 Gb / s.

Agora olhamos para a estação de trabalho e sua velocidade de conexão ainda é de 100Mb / s, apesar do fato de que em algum lugar ao longo da linha há uma conexão com capacidade de 10Gb / s.

    
por 08.02.2015 / 17:49
1

No cenário em que o link não é usado, você obteria, no máximo, a taxa de transferência do link com a menor capacidade. Daí L1, ou seja, 100Kbps. É por isso que quando você tem um link de internet a cabo de 100Mbps, você frequentemente obtém muito menos do que isso por causa de algum link congestionado ou menor entre você e seu destino.

Além disso, você parece confundir taxa de transferência e velocidade (ou latência). A taxa de transferência é quantos pacotes em um determinado intervalo (kbps) versus velocidade, o que indica a rapidez com que um pacote alcançará o destino determinado. Um link de satélite tem um grande throughput, mas uma latência horrível devido às distâncias envolvidas.

    
por 08.02.2015 / 17:51