Если предположить, что я понять ваш вопрос правильно, вы будете иметь, чтобы изменить клиент, чтобы иметь «звона» операцию. Серверу придется выполнить ping-клиент, и клиент сразу же ответит понг, и серверу потребуется время, необходимое для отправки пинга для получения понга. Это лучше всего делать с UDP или TCP вне диапазона, потому что с обычным TCP ваш пакет может застревать в очереди за другими данными, которые все еще передаются, искусственно увеличивая ваш пинг.
Чтобы ответить на другой вопрос, я думаю, вы спрашиваете. Получение времени в оба конца с компьютера a на компьютер b и обратно до не является стандартной операцией в TCP или UDP, оно обрабатывается ICMP (ping). Вы можете реализовать свою собственную операцию ping с помощью TCP или UDP, но это просто не стандарт.
P.S. Прежде чем вы спросите, есть несколько причин не использовать ICMP-пинг. Во-первых, есть небольшой шанс, что это может быть межсетевой экран. Во-вторых, он не будет работать вообще из непривилегированного процесса. Большинство ОС не поддерживают протокол ICMP, поэтому вам необходимо получить необработанный доступ к сетевому интерфейсу, который является привилегированной операцией.
Ответ на ваш комментарий:
Похоже, что вы просите, чтобы получить время, которое потребовалось пакет, чтобы перейти от клиента к серверу, не делая пинг-понг. Единственный возможный способ сделать это - синхронизировать часы, и вы поместите время на клиент в пакет. О. Есть хороший шанс, что у вашего клиента не будет синхронизированных часов. B. Даже если у клиента есть синхронизированные часы, вам придется изменить протокол на уровне приложения, чтобы добавить эту временную метку, и это звучит так, как вам не разрешено делать ваши заявления о проблемах.
Да, но я должен получить латентность прямо на сервере, для отдельного пакета, без отправки ответа! Это основная функция (и проблема). – progerz
@progerz Отредактировано на основе того, что, я думаю, вы спрашиваете, тогда – CrazyCasta
Я не собираюсь ниспровергать, но рекомендую UDP или действительно какой-то «внеполосный» механизм синхронизации имеет некоторые проблемы. Более вопиющим является то, что вполне возможно, что основной поток TCP и внеполосное измерение будут проходить по отдельным путям. Или будет осуществляться по-разному с помощью промежуточных переключающих элементов. Сложно сказать что-либо о конкретном потоке с использованием механизмов «вне потока». – cnicutar