Я исследовал скорость передачи пакетов и был сбит с толку общей пропускной способностью от одной конечной системы к другой. Например: скажем, сервер отправляет пакет клиенту с маршрутизатором между ними. Мой учебникКомпьютерная сетьКуроуз и Росс говорят, что конечная система с более медленной скоростью пропускной способности определяет скорость пропускной способности всей передачи файлов. Почему это так?
Разве две скорости пропускной способности не будут сложены вместе, чтобы составить полную пропускную способность передачи файлов? Например: пропускная способность сервера выдает биты со скоростью 1 Мбит/с, а маршрутизатор выдает биты со скоростью 2 Мбит/с. Предположим также, что размер файла составляет 10 миллионов бит. От сервера до маршрутизатора потребуется 10 секунд, чтобы достичь сервера, а затем потребуется около 5 секунд, чтобы достичь клиента, в результате чего общее взаимодействие пропускной способности займет 15 секунд. Я бы так подумал, но, используя логику учебника, это займет 10 секунд. Почему так?
решение1
Представьте себе цепочку муравьев, движущихся от листа к своей норе, но на пути им оказывается палка, через которую нужно перелезть:
<Leaf> ------ <stick> ------ <hole>
Муравью требуется 3 секунды, чтобы достичь палки (1-й этап пути), 10 секунд, чтобы перелезть через палку (2-й этап), и затем 2 секунды, чтобы перебраться от палки к норе (3-й этап). Общая пропускная способность 1-го этапа составляет 3 муравья, пропускная способность палки — один муравей, а пропускная способность 3-го этапа составляет 3 муравья.
Итак, ant0 покидает лист и идет к палке. Он перелезает через палку и идет к отверстию. Общее время = 15 секунд.
Ant1 отстает на 1 секунду от ant0 и проходит leg1 за три секунды. Он добирается до палки, но полоса пропускания палки заполнена, потому что Ant0 ее использует. поэтому Ant1 должен ждать 9 секунд, прежде чем он сможет НАЧАТЬ пересекать палку. Когда Ant0 заканчивает движение по палке, Ant1 пересекает ее и продолжает движение к лунке. Общее затраченное время составляет 3 с + 9 с (ожидание) + 10 с на пересечение палки + 2 секунды до лунки => 24 секунды.
Ant2 отстает от ant1 на 1 секунду и тратит три секунды, чтобы достичь палки. Затем ему нужно подождать, пока Ant0 и Ant1 преодолеют палку, прежде чем он сможет пересечь ее. Общее время = 3 с + 10 с (ожидание ant1) + 8 с (ожидание ant0) + 10 с (пересечение палки) + 2 с, чтобы достичь отверстия => 33 секунды.
Итак, если бы мы измерили пропускную способность этого пути, она составила бы 3/(15+24+33) => 0,0416 муравьев в секунду.
Допустим, мы ускорили ногу 1 до 1 секунды (в 3 раза быстрее). В итоге получаем 3/(13+22+31) => 0,454 муравья в секунду. Очень небольшое увеличение для трехкратного увеличения скорости на одной ноге.
Допустим, мы ускорили leg3 до 1 секунды (в 2 раза быстрее). В итоге получаем 3/(12+21+30) => 0,0476 муравьев в секунду. Опять же, очень незначительное влияние.
Однако если мы увеличим скорость leg2, например, в 2 раза, до 5 секунд, мы получим совсем другое число: 3/(7 + 11 + 17) => 0,085 муравьев в секунду.
Таким образом, увеличение скорости любого из более быстрых участков дало очень мало, но удвоение скорости самого медленного компонента фактически удвоило пропускную способность пути.
Итак, вы заметили, что, хотя Leg3 имеет большую пропускную способность и высокую скорость передачи, это не влияет на скорость, с которой муравьи достигают норы, потому что скорость, с которой муравьи входят в Leg3, ограничена палкой, поэтому большая часть пропускной способности на Leg3 непригодна для использования. Вы можете увеличить ее в 100 раз и не оказать ни малейшего влияния на скорость, с которой муравьи достигают норы. В этой ситуации единственное, что вы можете сделать, чтобы изменить уравнение, — это увеличить скорость, с которой муравьи пересекают палку. Все остальное бессмысленно.
решение2
Конец с самой низкой скоростью будет определять общую скорость соединения, поскольку он буквально не может получать данные быстрее, в противном случае это приведет к ошибкам.
Не думайте о том, сколько времени это займет, думайте о том, как быстро что-то может слушать.
Скажем так: у вас есть человек, читающий книгу вслух, но он может говорить очень быстро, и у вас есть человек, который слушает. Человек, который слушает, может понимать только в медленном темпе, поэтому либо быстро читающий должен замедлиться до скорости, которую может понять слушатель, либо слушатель должен много раз говорить: «Подожди, можешь повторить?». Это определяет пропускную способность.
Вы также совершаете критическую ошибку, предполагая, что маршрутизатор удерживает весь блок данных, подлежащих передаче, перед тем как передать его дальше, и хотя это действительно происходит с крошечными блоками данных, система в целом работает не так.
Здесь вы смотрите на две пропускные способности. Пропускная способность от отправителя к маршрутизатору и от маршрутизатора к получателю. Маршрутизатор хранит только небольшой объем данных в любой момент времени и не будет хранить весь большой блок перед его повторной передачей, таким образом, у вас фактически есть самый медленный канал в системе, ограничивающий общую скорость, с которой может работать сквозной канал.