Сеансовый уровень – это уровень, определяющий процедуру проведения сеансов
между пользователями или прикладными процессами.
Сеансовый уровень обеспечивает управление диалогом для того, чтобы
фиксировать, какая из сторон является активной в настоящий момент, а также
предоставляет средства синхронизации. Последние позволяют вставлять
контрольные точки в длинные передачи, чтобы в случае отказа можно было
вернуться назад к последней контрольной точке, вместо того чтобы начинать все
сначала. На практике немногие приложения используют сеансовый уровень, и он
редко реализуется.
Сеансовый уровень управляет передачей информации между прикладными процессами,
координирует прием, передачу и выдачу одного сеанса связи. Кроме того,
сеансовый уровень содержит дополнительно функции управления паролями,
управления диалогом, синхронизации и отмены связи в сеансе передачи после сбоя
вследствие ошибок в нижерасположенных уровнях. Функции этого уровня состоят
в координации связи между двумя прикладными программами, работающими на
разных рабочих станциях. Это происходит в виде хорошо структурированного
диалога. В число этих функций входит создание сеанса, управление передачей и
приемом пакетов сообщений во время сеанса и завершение сеанса.
На сеансовом уровне определяется, какой будет передача между двумя
прикладными процессами:
- полудуплексной (процессы будут передавать и принимать
данные по очереди);
- дуплексной (процессы будут передавать данные, и принимать
их одновременно).
В полудуплексном режиме сеансовый уровень выдает тому процессу, который начинает
передачу, маркер данных. Когда второму процессу приходит время
отвечать, маркер данных передается ему. Сеансовый уровень разрешает передачу
только той стороне, которая обладает маркером данных.
Сеансовый уровень обеспечивает выполнение следующих функций:
1. Установление и завершение на сеансовом уровне соединения между
взаимодействующими системами.
2. Выполнение нормального и срочного обмена данными между прикладными
процессами.
3. Управление взаимодействием прикладных процессов.
4. Синхронизация сеансовых соединений.
5. Извещение прикладных процессов об исключительных ситуациях.
6. Установление в прикладном процессе меток, позволяющих после отказа
либо ошибки восстановить его выполнение от ближайшей метки.
7. Прерывание в нужных случаях прикладного процесса и его корректное
возобновление.
8. Прекращение сеанса без потери данных.
9. Передача особых сообщений о ходе проведения сеанса.
Сеансовый уровень отвечает за организацию сеансов обмена данными между
оконечными машинами. Протоколы сеансового уровня обычно являются составной
частью протоколов трех верхних уровней модели.