2.5 KiB
Сессия
Сессия объединяет в себе несколько потоков, созданных одним клиентом. Все пакеты, отправленные в любом из потоков принадлежащих одной сессии, интерпретируются как пакеты от одного и того-же клиента.
Сессия создаётся в следствии рукопожатия определённого типа. При создании сессии всегда создаётся один принадлежащий ей поток. Создание сессии может быть провалено в следствие передачи некорректной версии протокола.
Сессия существует до тех пор, пока в её рамках существует хотя бы один поток, при уничтожении последнего потока в ней - сессия уничтожается. Клиент может явно запросить у сервера уничтожение сессии. При уничтожении сессии также уничтожаются все принадлежащие её потоки. Если сервер собирается уничтожить сессию по своей воле, то ему следует предупредить об этом клиента.
У каждой сессии есть собственный, независимый от других сессий, набор параметров, который задаётся клиентом во время её создания и не может быть изменён в последствии. Сервер должен отклонять некорректные конфигурации параметров. В набор параметров сессии входит версия протокола, которая требуется для обеспечения совместимости. Оба узла должны коммуницировать в рамках установленной версии и имеют право уничтожить сессию, в случае несоблюдения этого условия.