Отправка одного большого пакета против двух маленьких - PullRequest
0 голосов
/ 15 октября 2018

В настоящее время я отправляю 60 'синхронизированных' пакетов в секунду на сервер A , а сервер A также отправляет 60 различных 'синхронизирующих' пакетов в секунду клиенту.Допустим, на данный момент задержки пакетов выглядят так:

  • От клиента до сервера A - в среднем 30 мс.
  • От сервера A клиенту - в среднем 35 мс.

Теперь я хочу, чтобы клиент установил соединение с сервером B и иногда (также 60 раз в секунду или, возможно, 20/10/5).) отправьте этот сервер B другим пакетам "по-другому".Как отправка пакетов на сервер A и B повлияет на задержки, описанные выше?И вообще, если я отправляю два пакета одновременно, могут ли они идти на сервер параллельно, не мешая друг другу?

1 Ответ

0 голосов
/ 15 октября 2018

Отправка пакетов на частоте 60 Гц означает, что каждый пакет должен быть отправлен через 16,6 мс после предыдущего.С сетевыми интерфейсами 1 Гбит / с вы можете отправлять до 2 МБ (или 200 КБ с интерфейсом 100 Мбит / с) данных за этот период, поэтому весьма вероятно, что вы можете отправлять еще 60 пакетов в секунду на сервер B, не нарушая пакеты, отправленные на сервер A.

Уважайте, что произойдет, если вы отправите два пакета одновременно, они не будут выходить одновременно, если они будут использовать один и тот же сетевой интерфейс.Доставка каждого пакета в драйвер сетевого интерфейса может выполняться параллельно, если на сервере имеется несколько ядер ЦП, и у драйвера есть разные очереди для каждого ядра, но выход каждого пакета в сеть будет сериализован, посылая один за другим.Сетевой интерфейс, по крайней мере, Ethernet, не может отправлять два пакета в сеть одновременно.

...