Tenho pesquisado a velocidade de transferência de pacotes e fiquei confuso sobre o rendimento total de um sistema final para outro. Por exemplo: digamos que um servidor esteja enviando um pacote para um cliente com um roteador intermediário. Meu livroRedes de Computadoresde Kurose e Ross diz que o sistema final com a velocidade de transferência mais lenta determina a velocidade de transferência de toda a transferência de arquivos. Por que é isso?
As duas velocidades de transferência não seriam somadas para formar toda a transferência de arquivos? Por exemplo: a taxa de transferência do servidor bombeia bits a 1 Mbps e o roteador bombeia bits a 2 Mbps. Digamos também que o tamanho do arquivo era de 10 milhões de bits. Do servidor ao roteador levaria 10 segundos para chegar ao servidor e depois levaria cerca de 5 segundos para chegar ao cliente, fazendo com que a interação de taxa de transferência total levasse 15 segundos. Isso é o que eu pensaria, mas usando a lógica do livro, isso levaria 10 segundos. Por que é isso?
Responder1
Imagine uma fila de formigas movendo-se de uma folha para sua toca, mas há um pedaço de pau no caminho que elas precisam passar:
<Leaf> ------ <stick> ------ <hole>
Uma formiga leva 3 segundos para alcançar o graveto (perna 1 da jornada), 10 segundos para passar por cima do graveto (perna 2) e depois 2 segundos para passar do graveto até o buraco (perna 3). A largura de banda total da perna1 é de 3 formigas, a largura de banda do bastão é uma formiga e a largura de banda da perna3 é de 3 formigas.
Então ant0 sai da folha e vai até o galho. ele sobe no bastão e caminha até o buraco. Tempo total = 15 segundos.
Ant1 deixa 1 segundo atrás de ant0 e atravessa a perna1 em três segundos. Ele chega ao stick, mas a largura de banda do stick está cheia porque o Ant0 está usando-o. então Ant1 tem que esperar 9 segundos antes de COMEÇAR a cruzar o stick. Quando Ant0 termina no stick, Ant1 o cruza e continua no buraco. O tempo total gasto é de 3s + 9s (espera) + 10s cruzando o stick + 2 segundos até o buraco => 24 segundos.
Ant2 fica 1 segundo atrás de Ant1 e leva três segundos para alcançar o stick. ele então precisa esperar que Ant0 e Ant1 limpem o stick antes que ele possa cruzar. Tempo total = 3s + 10s (esperando pela formiga1) + 8s (esperando pela formiga0) + 10s (cruzando o bastão) + 2s para chegar ao buraco => 33 segundos.
então, se medissemos o rendimento desse caminho, seria 3/(15+24+33) => 0,0416 Formigas por segundo.
digamos que aceleramos a perna1 para 1 segundo (3x mais rápido). acabamos com 3/(13+22+31) => 0,454 formigas por segundo. muito pouco aumento para um aumento de velocidade de 3x em uma perna.
Digamos que aceleramos a perna3 para 1 segundo (2x mais rápido). acabamos com 3/(12+21+30) => 0,0476 formigas por segundo. mais uma vez, muito pouco impacto.
Se aumentarmos a velocidade da perna2, no entanto, talvez de 2x a 5 segundos, obteremos um número muito diferente 3/(7 + 11 + 17) => 0,085 Formigas por segundo.
Portanto, um aumento em qualquer um dos trechos mais rápidos fez muito pouco, mas duplicar a taxa do componente mais lento efetivamente dobrou o rendimento do caminho.
Então você percebe que mesmo que a Leg3 tenha bastante largura de banda e uma taxa de transmissão rápida, isso não afeta a taxa com que as formigas chegam ao buraco, porque a taxa com que as formigas entram na Leg3 é limitada pelo stick, então a maioria da largura de banda na Leg3 é inutilizável. você poderia aumentá-lo em 100 vezes e não teria o menor impacto na taxa com que as formigas alcançam o buraco. Nessa situação, a única coisa que você pode fazer para mudar a equação é aumentar a taxa com que as formigas cruzam o bastão. tudo o mais não tem sentido.
Responder2
A extremidade com a velocidade mais lenta determinará a velocidade geral do link porque literalmente não poderá receber dados mais rápido, caso contrário, resultará em erros.
Não pense no tempo que leva, pense em quão rápido algo pode ouvir.
Coloque desta forma: você tem uma pessoa lendo um livro em voz alta, mas ela fala muito rápido, e você tem uma pessoa ouvindo. A pessoa que está ouvindo só consegue compreender em um ritmo lento, então ou o leitor rápido tem que desacelerar para uma velocidade que o ouvinte possa compreender ou o ouvinte tem que ficar dizendo "espere, você pode repetir isso" muito. Isso determina o rendimento.
Você também está cometendo um erro crítico ao presumir que o roteador está armazenando todo o bloco de dados a ser transferido antes de transmiti-lo e, embora isso aconteça em pequenos blocos de dados, não é assim que o sistema geral funciona.
Existem duas taxas de transferência que você está vendo aqui. A taxa de transferência do originador para o roteador e do roteador para o receptor. O roteador retém apenas uma pequena quantidade de dados em um determinado momento e não armazena todo o bloco grande antes de retransmiti-lo, portanto, você efetivamente tem o link mais lento do sistema, limitando a velocidade geral com que o link ponta a ponta pode funcionar no.