2016-09-13 4 views
1

можно ли узнать или получить уведомление, если партнер, к которому вы подключены, использует TCP keepalives?Обнаружение, если одноранговый узел использует протоколы TCP keepalives (Windows)

Кроме того, чтобы получать уведомление, когда отправляется постоянный адрес?

Не прибегая к фильтрации на уровне пакетов в драйвере ядра?

У нас есть прокси-сервер, и клиент желает, чтобы клиентские серверы были перенаправлены на сервер. На данный момент наш лучший вариант, я думаю, только для того, чтобы разрешить установку keepalives на серверном соединении, но я хотел проверить, знает ли кто-нибудь, как определить поведение клиента, чтобы ретранслировать keepalives можно было более приблизить.

Спасибо.

ответ

1

Возможно ли выяснить или получить уведомление, если партнер, к которому вы подключены, использует TCP keepalives?

No. TCP keepalive не использует расширение протокола. Он просто использует существующий протокол определенным образом, чтобы спровоцировать ответ.

Кроме того, если вас уведомили, когда отправлено сообщение keepalive?

Нет. Сегмент keepalive TCP не может быть идентифицирован как таковой.

Не прибегая к фильтрации на уровне пакетов в драйвере ядра?

Даже если вы это сделаете.

У нас есть прокси-сервер, и клиент желает, чтобы клиентские серверы были перенаправлены на сервер.

Ваш клиент дезинформирован.

На данный момент наш лучший вариант, я думаю, просто чтобы можно было устанавливать на поддержку активности соединения на стороне сервера

Correct.

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

Невозможно.

+0

В основном вывод, к которому я пришел. Однако я считаю, что на уровне пакетов должно быть возможно отслеживать порядковые номера, чтобы идентифицировать пустой ACK с порядковым номером, обозначающим keepalive (SEG.SEQ = SND.NXT-1). Но я не собираюсь этого делать. Благодаря! – Adrien

+0

@Adrien Проблема в том, что отправляющий TCP может делать это в любое удобное для него время, а не только для целей keepalive. Это вряд ли, но это возможно. Это то, что я имел в виду под «без расширения протокола». – EJP

+0

понял, хотя я могу думать только об одной цели для этого, и это было бы как keepalive :) - различие, возможно, не имеет значения в конце. – Adrien