Допустим, у меня есть карта Ethernet на 100 Мбит, идущая к моему маршрутизатору на 100 Мбит, затем к моему кабельному модему; на что мой провайдер продал мне 50 Мбит / с.
Теперь предположим, что я начал загружать невероятно большой файл на веб-сервер, и предположим, что веб-сервер может принимать неограниченные скорости (поэтому мы сосредоточены только на "моем конце").
Что мешает моей загрузке превысить 50 Мбит / с? Возможно, мой кабельный модем настроен на отправку только такого большого количества данных (по тому типу канала, который у него есть), но как мой (ПК, маршрутизатор, кабельный модем) узнает, что он "задушил" его обратно? Как моя операционная система знает, что НЕ следует отправлять данные из моего сетевого адаптера со скоростью 100 Мбит / с, потому что нисходящее соединение не может с этим справиться (мой ISP / кабельный модем).
Это то, что я думаю, я знаю:
Если он использует TCP, он будет использовать механизмы TCP для отправки соответственно. Если он использует UDP, он будет спамить со скоростью 100 Мбит / с, в конечном итоге заполнит буфер моего кабельного модема, и пакеты будут потеряны. Если это так, возможно, до того, как это произойдет, он выдаст другое сообщение управления потоком?
Может кто-нибудь объяснить, пожалуйста! Мне очень любопытно!