[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Странное поведение TCP



  Вдогонку.

On Tue, Sep 29, 2015 at 09:00:26AM +0300, Max Dmitrichenko wrote:
> 3) Так вот, иногда бывает так, что сервер внезапно на первые
> присланные данные отвечает RST. Причем отвечает не сразу, а через
> время, которое на десятки миллисекунд превышает RTT. И всё бы хорошо,
> но у данного RST-пакета SEQ=0, а после SYN-ACK, он должен быть равен
> 1. Из-за этого, клиентский Linux игнорирует данный RST пакет и
> продолжает думать, что соединение живо.

    If the incoming segment has an ACK field, the reset takes its
    sequence number from the ACK field of the segment, otherwise the
    reset has sequence number zero and the ACK field is set to the sum
    of the sequence number and segment length of the incoming segment.

 Ref: RFC793 (этот текст встречается там в нескольких местах).

> При этом, что самое смешное, после RST от сервера приходит ACK на
> данные клиента.

 Если я правильно понял эту фразу, от сервера после RST идёт ожидаемый
 ответ приложения. Это свидетельствует о том, что RST посылает не ядро
 сервера, а некая посторонняя программа, прослушивающая трафик где-то
 между клиентом и сервером.
-- 
 Eugene Berdnikov


Reply to: