The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
обрыв/закрытие TCР сессий, !*! ntds.dit, 18-Янв-16, 11:23  [смотреть все]
Привет.
Теоретический вопрос.
Есть сервер и клиент. Клиент установил TCP сессию с сервером, сессия "простаивает" и через какое-то время оборудование между клиентом и сервером "обрывает" TCP сессию не уведомляя об этом ни клиента ни сервер. И когда клиент или сервер думая что соединение установлено отправляет данные они не доходят адресату.
Такое возможно? если возможно, приведите пример, пожалуйста.
  • обрыв/закрытие TCР сессий, !*! anonymous, 11:38 , 18-Янв-16 (1)
    Легко.
    Например между клиентом и сервером фаервол (stateful-девайс).
    При переполнении таблицы соединений сатрое соединение будет сброшено из памяти.

    На роутере с pat/nat трансляциями может переполниться таблица трансляций с тем же эффектом.
    Этим страдали например старые циски с маленьким объёмом оперативной памяти, которых сейчас уже вряд ли встретятся, и недавно ещё этим страдали длинковские роутеры при использовании в домашней сети торент-клиента.

  • обрыв/закрытие TCР сессий, !*! Аноним, 11:53 , 18-Янв-16 (2)
    Еще пример: из сети с домашним роутером и НАТом зашли по SSH на удаленный сервер, и так и оставили консоль.
    Через некоторое время соединение между роутером и провайдером рвется, поднимается заново, но с другим адресом. Соответственно, все старые НАТ-трансляции становятся недействительными.
    Итог тот же: если что-то в ссш-консоль напиать, оно не дойдет до сервера (а если и дойдет, то сервер не примет их, т.к. они с другого адреса, о котором сервер ни сном ни духом) и клиент ACK не получит, из-за чего после нескольких ретрансмитов сделает connection timed out
    • обрыв/закрытие TCР сессий, !*! ntds.dit, 12:32 , 18-Янв-16 (3)
      Спасибо за Ваши ответы!
      • обрыв/закрытие TCР сессий, !*! ShyLion, 13:28 , 18-Янв-16 (4)
        > Спасибо за Ваши ответы!

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

        • обрыв/закрытие TCР сессий, !*! Alex_S, 06:21 , 19-Янв-16 (5)
          > - на стороне клиентов - использовать механизмы KEEPALIVE, как на уровне приложения
          > так и на уровне сокетов - шлются пакеты с пустыми блоками
          > полезной нагрузки.

            зачем на уровне приложения-то ?
            просто KEEPALIVE опции сокета - недостаточно ?

          • обрыв/закрытие TCР сессий, !*! ShyLion, 09:24 , 19-Янв-16 (6)
            >> - на стороне клиентов - использовать механизмы KEEPALIVE, как на уровне приложения
            >> так и на уровне сокетов - шлются пакеты с пустыми блоками
            >> полезной нагрузки.
            >   зачем на уровне приложения-то ?
            >   просто KEEPALIVE опции сокета - недостаточно ?

            Неисповедимы пути в голове софтопейсателя. Или например протокол UDP.
            Я просто примеры привел.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру