TCP: сервер отправляет [RST, ACK] сразу после получения [SYN] от клиента - PullRequest
21 голосов
/ 11 марта 2011

Host_A пытается отправить некоторые данные на Host_B по TCP.Host_B прослушивает порт 8181. Оба Host_A и Host_B - это блоки Linux (Red Hat Enterprise).Уровень TCP реализован с использованием Java NIO API.

Все, что посылает Host_A, Host_B не может получить.Анализ данных по проводам с помощью WireShark привел к следующему журналу:

1) Host_A (33253)> Host_B (8181): [SYN] Seq = 0 Win = 5840 Len = 0 MSS = 1460 TSV= 513413781 TSER = 0 WS = 7
2) Host_B (8181)> Host_A (33253): [RST, ACK] Seq = 1 Ack = 1 выигрыш = 0 Len = 0

Журналы показывают, что Host_A отправляет флаг [SYN] Host_B для установления соединения.Но вместо [SYN, ACK] Host_B отвечает [RST, ACK], который сбрасывает / закрывает соединение.Такое поведение наблюдается всегда.

Мне интересно, при каких обстоятельствах прослушиватель TCP отправляет [RST, ACK] в ответ на [SYN]?

1 Ответ

32 голосов
/ 11 марта 2011

RST, ACK означает, что порт закрыт.Вы уверены, что Host_B прослушивает правильный IP / интерфейс?

Также проверьте ваш брандмауэр на наличие -j REJECT --reject-with tcp-reset

...