TCP Connect занимает X100 дольше, чем пинг - PullRequest
1 голос
/ 07 декабря 2009

У меня есть Java-процесс на компьютере A, взаимодействующий с Tomcat на компьютере B через TCP. Соединение TCP (только обмен syn-syn / ack) занимает порядка 100 мс последовательно, в то время как пинг-запрос занимает 1 мс (серверы находятся в одной локальной сети).

  1. Что может вызвать увеличение задержки при установлении TCP-соединения?
  2. Как мне его оптимизировать?

Обратите внимание, что:

  • Это еще не трехстороннее рукопожатие, я измеряю только обмен syn / syn-ack.
  • Сервер является очень мощной машиной и вообще не загружен.
  • Запрос на подключение направлен на IP, а не на имя хоста, поэтому поиск DNS не используется. На самом деле, это не имеет значения, так как я измеряю время, когда SYN покинул машину A.

1 Ответ

1 голос
/ 07 декабря 2009

Кажется, проблема не в самом клиенте или сервере. Я взял два дампа пакета на клиенте и сервере:

  1. Клиент видит разницу времени 100-150 мс между просмотром SYN и получением SYN / ACK.
  2. Сервер видит только 20-миллисекундную разницу во времени между получением SYN и отправкой SYN / ACK.

Ergo, проблема должна быть в каком-то промежуточном уровне (маршрутизатор / брандмауэр / еще много чего).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...