Есть ли способ приостановить / возобновить конкретное TCP-соединение?

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

Если что-то пойдет не так, я просто перезапущу игру и начну все сначала. Если все пойдет так, как я планировал, я снова подключаю кабель и продолжаю.

Проблема в том, что чаще всего мне нужно две минуты, чтобы принять решение, но игра отключает меня через 60 секунд (я получаю ошибку "Соединение потеряно")

Вопрос в том, как я могу предотвратить тайм-аут соединения?

Я предполагаю, что если я позволю пакетам keep-alive проходить, но приостановить фактические пакеты данных, я смогу приостановить и возобновить tcp-соединение по требованию, но я не уверен, возможно ли это с обычным программным обеспечением брандмауэра, таким как iptables или ipfw, или я должен пойти с MITM?

В игре используется SSL-шифрование через стандартный TCP-сокет.

2 ответа

Решение

Время ожидания почти наверняка истекает при получении фактических данных, которые ожидает сервер, а не по TCP-соединению. Вот как обычно реализуются тайм-ауты. Нет таймаутов TCP, которые находятся в диапазоне 60 секунд, так что это почти наверняка не тайм-аут TCP и не может быть изменен с помощью манипуляций на уровне TCP.

Кроме того, ты подлый человек.

Нет.

Как только TCP-соединение закрыто, оно не может быть возобновлено на сетевом уровне. Приложение должно поддерживать функцию возобновления, которая сохраняет состояние через новое TCP-соединение.

Вы можете отправить запрос на добавление функции разработчикам игры, в которую вы играете. Обязательно объясните, что вам нужна функция, которая облегчит вам мошенничество.

Другие вопросы по тегам