Я внедряю систему, в которой одно устройство в сети запрашивает с очень высокой частотой (сотни или тысячи запросов в секунду), отправляя небольшой пакет UDP с 8 или около того байтами данных. Это принимается другим приложением, возможно, на другом устройстве, которое выполняет очень простую обработку и отправляет результат размером в несколько байт, заключенный в другой пакет UDP.
Я хотел бы знать, какое время прохождения туда-обратно возможно с типичным аппаратным обеспечением, где системы связи, возможно, подключены через проводной Ethernet на расстоянии нескольких метров, принимая во внимание задержки распространения и передачи и т. Д.
Другие мысли и предложения также приветствуются.
Ответы:
Например, Juniper MX80 имеет задержку входа-выхода около 8 мкс, на переключателе с малой задержкой это может быть <1 мкс (может быть 0,7 мкс). (Помните, что сквозной коммутатор не может выполнять сквозной режим 100% времени, только когда выходной порт простаивает!)
1 км по волокну - это задержка около 5 с (опять же, в одном направлении).
Задержка сериализации @ 10G для полезной нагрузки минимального размера (46B) составляет около 67 нс (0,067us), увеличивая скорость соединения, вы уменьшаете задержку сериализации.
IP-заголовок равен 20B, UDP-заголовок равен 8B, ваши данные - 8B, поэтому у вас есть только 36B данных, что означает, что ваша полезная нагрузка Ethernet будет содержать 10B мусора, который вы ДОЛЖНЫ отправить, т. Е. Если у вас есть что добавить в свою полезную нагрузку, добавьте ее, у него 0 латентных затрат.
Я надеюсь, что вы можете экстраполировать RTT из них, умножив задержку устройства на количество устройств и добавив 5us для каждого километра волокна, а затем умножьте это на 2.
Я не могу не добавить некоторые мысли о HFT.
Согласно этому объему HFT сократился вдвое между 2009 и 2012 годами. Предполагается, что легких побед уже нет. Я хотел бы увидеть какую-нибудь научную статью или просто реальные данные о задержке HFT и ее влиянии на прибыль. Я подозреваю, что задержка, которая влияет на торговую прибыль, находится на другой величине, чем задержка, о которой мы сейчас говорим. Мой друг, который строит сеть для одной из крупнейших бирж, похоже, считает, что это просто клиенты, которые делают «ниже = лучше», не понимая масштабов.
Я могу полностью понять, как HFT был полезен, когда это делали немногие, когда вы могли наблюдать за рынком. Не видя изменений, рынокB видит и извлекает выгоду из этого. Некоторые говорят об использовании регулирования, чтобы остановить HFT, облагая налогом каждую сделку, делая ее дорогой для всех, я не думаю, что это будет необходимо, я думаю, что окно возможностей уже закрывается.
источник
Я думаю, что на обычном полу-настроенном оборудовании вы сможете:
В ~ 10 нас на 10гиг. Если вы действительно заблокируете вещи, это число может быть значительно ниже.
Почти ВСЕ задержка, которую вы увидите, связана не с сетевым оборудованием / кабелями, а с хост-системами. Разумный сквозной коммутатор (Arista, Gnodal, New Cisco и т. Д.) Будет sub 1us.
Начните с обеспечения того, что процессы, использующие пакеты UDP, прикреплены к тому же ядру, что и прерывания вашей сетевой карты. Оттуда убедитесь, что объединение на вашей сетевой карте отключено, и оттуда убедитесь, что у вас включены MSI-X и DCA.
Если вы более серьезны ... проверьте OpenOnload SolarFlare. У них также есть отличный набор инструментов для тестирования / проверки производительности.
источник