Может ли время, которое требуется для передачи пакета от клиента на сервер, колебаться?
Может ли время, которое требуется для передачи пакета от клиента на сервер, колебаться?
Ответы:
Протокол IP, поверх которого создаются протоколы TCP и UDP, указывает, что дейтаграммы не гарантированно поступают ни по порядку, ни по одному и тому же маршруту, ни, по сути, вообще (спасибо Тревору за напоминание). Таким образом, независимо от того, используется ли TCP или UDP, задержка будет колебаться. Задержка частично связана с пройденным расстоянием , которое изменяется при изменении пути, и частично из-за трансляции стека протоколов на устройствах маршрутизации вдоль выбранного пути - которые также изменяются при изменении пути.
Это является частью самовосстанавливающейся природы Интернета, позволяющей ему делать то, что он делает каждый день: если один маршрут становится менее подходящим в соответствии с эвристикой, запрограммированной на различных устройствах маршрутизации, вместо этого будет выбран другой маршрут. Это может быть кратковременным или долгосрочным. Помните, что до того, как появился Интернет, это была ARPANET - защитная сеть, предназначенная, например, для работы. мгновенное удаление обширных участков сети (подумайте о ядерной войне), при этом сеть в целом не рухнет. Направляясь вокруг поврежденных или иным образом неидеальных областей, большая сеть продолжает функционировать (хотя, возможно, неоптимально).
Вероятно, это не вопрос разработки игры, но да. В обычном IP-соединении каждый пакет может проходить через различные промежуточные «скачки», и каждый из разных «скачков» может иметь различную задержку.
Если вы используете TCP для передачи ваших данных, протокол абстрагирует их для вас и будет переупорядочивать пакеты, чтобы доставлять пакеты в порядке, в котором они были первоначально отправлены; однако, если вы используете UDP, пакеты могут поступать и поступают не по порядку, в зависимости от задержки каждого отдельного пакета.
Абсолютно все, что касается IP-сети, может измениться в любое время.
В следующей статье обсуждается, как могут различаться такие вещи, как задержка, потеря пакетов и пропускная способность и почему: Техническая записка DEI 0021: потеря, задержка и скорость
Помимо того, что уже было сказано, не забывайте, что маршрутизаторам разрешено произвольно отбрасывать пакеты , что означает, что в TCP пакет может теоретически занять произвольно много времени, чтобы достичь своего назначения (а в UDP он может никогда не достичь своего назначения!).