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.