Чтобы добавить немного фона к другим ответам, нужно помнить, что задержка в сети может значительно варьироваться и может влиять на работу пользователя.
Одним из наиболее очевидных источников задержки в сети является расстояние: сигналы, которые переносят ваши данные, передаются с большей или меньшей скоростью света, поэтому чем больше расстояние, пройденное от клиента к серверу, тем выше задержка. Связь между двумя компьютерами, соединенными кабелем Ethernet, займет несколько миллисекунд. Связь с сервером через океан займет десятки или сотни миллисекунд. Связь, проходящая через геостационарный спутник, займет сотни миллисекунд.
Это хорошо видно при выполнении пинга, который измеряет время прохождения сигнала в оба конца, которое в этом случае очень близко к сумме задержки в обоих направлениях.
Несколько других факторов, влияющих на задержку:
- количество ссылок / прыжков: в большинстве случаев пакет должен быть полностью принят, прежде чем он может быть отправлен по следующей ссылке. Это добавляет немного задержки на каждом прыжке;
- пропускная способность этих каналов: чем медленнее канал, тем больше времени требуется для прохождения полного пакета и, следовательно, для пересылки по следующему каналу;
- загрузка этих ссылок: если ссылка заполнена, пакет может быть поставлен в очередь, пока он не может быть отправлен;
- для каналов с локальной повторной передачей частота ошибок на линии: чем выше частота ошибок, тем выше вероятность повторной отправки пакета.
Задержка может сильно повлиять на пользовательский опыт (или нет):
- самый известный случай - латентность, влияющая на игроков MMORPG и других онлайн-игр.
- все интерактивное взаимодействие, где взаимодействие контролируется с другой стороны, зависит от времени ожидания. Telnet / ssh, удаленный рабочий стол, подвержен задержке.
- задержка речевого общения зависит от времени ожидания, и в результате большая задержка приводит к тому, что люди постоянно перебивают друг друга.
- Более старые протоколы передачи файлов также страдали задержкой, поскольку они не реализовывали скользящие окна, и отправителю приходилось ждать, пока пакет прибудет в пункт назначения, и подтверждение, чтобы вернуться, перед отправкой следующего.
Даже в неинтерактивных случаях задержка может оказать влияние (что проиллюстрировано в примере OP): когда загружается много небольших файлов, задержка может привести к увеличению общего времени загрузки, если протокол должен ожидать один файл быть полностью загруженным перед началом загрузки следующего, по сравнению с протоколом, который позволял бы отправлять несколько запросов одновременно, и ответы отправлялись без прерывания между последовательными файлами.