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

-5

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

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

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

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

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

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

Сергей
источник

Ответы:

6

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

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

Дэвид Шварц
источник
2
Я знаю, что мы не предполагаем +1, но +1 для вас
Келтари
Я отмечу это как правильный ответ - в TCP нет 60 секундных таймаутов. Но есть еще кое-что еще. Если я отключаю кабель при загрузке файла через HTTP, загрузка возобновляется мгновенно, если я снова подключаю его менее чем за 60 секунд, в противном случае он застревает
Sergei
1
Возможно, у вас есть маршрутизатор, который пытается поддерживать соединение до определенной точки.
Доктор Рейхард
Вы, безусловно, правы, похоже, что какая-то промежуточная точка сети отвечает за потерянное / зависшее соединение, возможно, мой маршрутизатор (я за NAT). Спасибо!
Сергей
2

Нет.

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

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

Flimzy
источник
Вы упустили момент, я спрашиваю, как предотвратить тайм-аут соединения. Конечно, его нельзя возобновить после закрытия на стороне сервера.
Сергей