Что произойдет, если попытаться загрузить файл со скоростью 800 МБ / с (100 МБ / с) на жесткий диск со скоростью записи 500 МБ / с (62,5 МБ / с)? Будет ли система ограничивать скорость загрузки?
computer-networks
ymulki
источник
источник
Ответы:
Многие протоколы, включая TCP, который является наиболее широко используемым протоколом в Интернете, используют так называемое управление потоком. Управление потоком просто означает, что TCP гарантирует, что отправитель не перегружает получателя, отправляя пакеты быстрее, чем он может очистить свой буфер. Идея состоит в том, что узел, принимающий данные, отправит некоторую обратную связь узлу, отправляющему данные, чтобы сообщить ему о своем текущем состоянии. Таким образом, двусторонняя обратная связь позволяет обеим машинам оптимально использовать свои ресурсы и предотвращать любые проблемы из-за несоответствия в их оборудовании.
https://en.wikipedia.org/wiki/Flow_control_(data)
источник
Не буквально. Несколько десятков лет назад компьютеры действительно общались с синхронными скоростями (то есть модемы с фиксированными настройками скорости). На некотором относительно низком уровне это также происходит сегодня; т. е. ваш DSL или кабельный модем, вероятно, будут иметь некоторую установленную скорость, с которой он обменивается данными со своим прямым физическим компонентом восходящей линии связи. Но в 2017 году все это достаточно сложно, что почти все компоненты довольно динамичны. В старые добрые времена модемы часто физически могли говорить только с определенной скоростью, и это даже нужно было установить перед набором номера. Существуют (были) некоторые сетевые протоколы, такие как ATM, которые пытались получить синхронную глобальную сеть, но они не так хорошо, по сравнению с TCP / IP.
Сегодня эффективная скорость обычно всегда неявно достигается путем буферизации, управления потоком и так далее.
Также обратите внимание, что в вашем примере может быть даже больше участников. Сетевой интерфейс может иметь больше работы (другие соединения с вашим ПК). Некоторая часть сети по пути может быть занята (член семьи просматривает или смотрит видео). Жесткий диск может выполнять 3 записи большого файла одновременно. Поэтому не имеет смысла специально устанавливать «скорость», которая может быть ограничена.
источник
Загрузка файлов (обычно) происходит по протоколу TCP. В TCP отправитель не отправляет данные до тех пор, пока получатель не будет готов их получить.
Что произойдет, это то, что ваш компьютер зарезервирует некоторое количество оперативной памяти для временного хранения полученных данных перед записью их на жесткий диск (это называется буфером) Затем он запросит у отправителя достаточно данных для заполнения буфера. Получив данные, он начнет записывать данные из буфера на жесткий диск - однако он не будет запрашивать дополнительные данные, пока буфер почти заполнен.
Общий эффект заключается в том, что отправитель просто ждет, пока получатель не догонит его, прежде чем продолжить отправку.
источник