TCP з'єднання не втрачено? Я відключився від Інтернету * знак оклику *


2

Це питання виникло через спір з моїм другом. За останні кілька тижнів я зіткнувся з незвичайним явищем. Всі мої з'єднання ніколи не розриваються, коли я відключаюсь від Інтернету. Навіть сеанси ssh залишаються незмінними через повторні з'єднання. Як це можливо?

Відповіді тут стверджують, що це цілком нормально. Тоді питання: чому отримують з'єднання TCP завжди втрачено для деяких людей після повторного підключення до Інтернету навіть без NAT між ними, що є у випадку з моїм другом. Окрім інтернет-провайдера, обидві установки порівнянні: Linux понад комутованим.


1
Якщо ми по телефону, але чомусь перестанемо говорити, чи можете ви знати, якщо я все ще там? Я, можливо, поклав трубку вниз і відправився в туалет. Ви не можете знати, поки ви не говорите зі мною, і я не відповідаю. Деякі протоколи додають тайм-аути, так що серверам не потрібно запам'ятовувати величезну кількість відсутніх клієнтів. (Я думаю, що ssh підтримує тайм-аути, але також підтримує без тайм-аутів).
ctrl-alt-delor

Тому питання: чому робити втратити з'єднання TCP після повторного підключення до Інтернету навіть без NAT (що стосується мого друга. Це питання виникло через спір між нами)?
Holy Sheet

@Richard будь-яку ідею?
Holy Sheet

З'єднання з Річардом втрачено!
ctrl-alt-delor

2
Як ви бачите, намагаючись привернути мою увагу, ви помічаєте, що я більше не тут. Або принаймні ваша операційна система помічає, а потім повідомляє [вам] про програму. (Ну, якщо я не намагався пояснити) Звичайно з'єднання втрачено не від мене, а від вас, помічаючи, що я не реагую своєчасно.
ctrl-alt-delor

Відповіді:


3

Це нормально. У TCP немає нічого, що вимагає, щоб зв'язок ставала постійною - якщо з'єднання не працює (дані відправлені чи отримані), воно може зберігатися, поки обидва кінці все ще мають відкритий сокет. (Звичайно, якщо один з кінців намагається надіслати дані і ніколи не отримує ACK, це зрештою закриє з'єднання через тайм-аут.)

На жаль, це часто порушується за допомогою протоколів NAT / firewall; наприклад, якщо ви перезавантажуєте домашній маршрутизатор, він забуде все в своїй таблиці NAT і може мовчки скинути вхідні дані або навіть закрити з'єднання, оскільки він більше не знає, до якого локального хосту слід пересилати пакети.


Щодо пояснення, див. Оновлення запитань
Holy Sheet
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.