Что делает [PSH, ACK] во время моего подключения к серверу глобального каталога?

Мой Linux-сервер пытается установить LDAPS-соединение с сервером глобального каталога, и это соединение обрывается (предположительно со стороны GC).

В целях обсуждения предположим, что 1.1.1.1 - это сервер Linux, а 1.2.3.4 - сервер глобального каталога.

Если я попытаюсь использовать telnet из Linux, я вижу:

[root@foobox ~]# telnet gcfoo.exampleAD.local 3269
Trying 1.2.3.4...
Connected to gcfoo.examplead.local.
Escape character is '^]'.
Connection closed by foreign host.

Нет задержки между 4-й и 5-й строками. Он сразу же разрывает соединение.

Я подумал, что результаты telnet могут немного вводить в заблуждение (поскольку на самом деле они не подходят для любого типа защищенной связи), поэтому я собрал захват пакета фактической попытки подключения с устройства (используя фактический программа, требующая LDAPS).

Вот что я вижу (опять же, IP-адреса и исходные порты были переименованы, чтобы защитить невиновных):

No.     Time      Source     Destination      Protocol    Length    Info
1       0.000000  1.1.1.1    1.2.3.4          TCP         66        27246 > msft-gc-ssl [SYN] Seq=0 Win=5840 Len=0 MSS=1460 SAC_PERM=1 WS=128
2       0.000162  1.2.3.4    1.1.1.1          TCP         62        msft-gc-ssl > 27246 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1460 SACK_PERM=1
3       0.000209  1.1.1.1    1.2.3.4          TCP         54        27246 > msft-gc-ssl [ACK] Seq=1 Ack=1 Win=5840 Len=0
4       0.003462  1.1.1.1    1.2.3.4          TCP         248       27246 > msft-gc-ssl [PSH, ACK] Seq=1 Ack=1 Win=5840 Len=194
5       0.007264  1.2.3.4    1.1.1.1          TCP         60        msft-gc-ssl > 27246 [RST] Seq=1 Win=64046 Len=0

Я немного заржавел с TCP / IP, поэтому, пожалуйста, простите мое невежество ... Я вижу трехстороннюю рукопожатие происходит в пакетах 1-3. В этом есть смысл. Что же происходит в пакете №4? Что означает [PSH, ACK] ? Это похоже на избыточное подтверждение, в котором нет необходимости. Фактические данные отправляются в этом 4-м пакете? Или это какое-то странное продолжение рукопожатия?

13
задан 22 July 2014 в 09:47
2 ответа

PSH флаг Push: http://ask.wireshark.org/questions/20423/pshack-wireshark-capture

флаг Push говорит сетевому стеку получателя "продвигать" данные прямо к сокету получения а не ожидать больше пакетов прежде, чем сделать так.

флаг Push обычно означает, что данные были отправлены при переопределении встроенной задержки эффективности TCP, такой как Алгоритм Nagle или Задержанные Подтверждения .

Эти задержки делают TCP, объединяющийся в сеть более эффективный за счет некоторой задержки (обычно вокруг нескольких десятков миллисекунд). Чувствительное к задержкам приложение не хочет ждать задержки эффективности TCP, таким образом, приложение будет обычно отключать их, заставляя данные быть отправленным максимально быстрое с набором флага Push.

На Linux, это сделано с setsockopt() флаги TCP_QUICKACK и TCP_NODELAY. См. man 7 socket для получения дополнительной информации.

24
ответ дан 20 November 2019 в 23:13

@DarkMoon объяснил, что показывает флаг PSH. В отношении Ваших данных установление соединения завершается (трехстороннее квитирование), затем, да, клиент отправил 194 байта данных к серверу (Len=194). Сервер не любил данные и закрыл соединение. Потенциально клиент не настроен правильно для общения с сервером или наоборот например, несоответствие SSL/TLS.

, Если бы у Вас есть доступ, я предложил бы исследовать вход в систему сервер, чтобы видеть, зарегистрировал ли он то, что ему не нравились приблизительно данные клиента.

5
ответ дан 20 November 2019 в 23:13

Теги

Похожие вопросы