Введение
Слой в стандартной модели компьютерных сетей. В семислойной модели OSI компьютерных сетей, слой сеансов является пятым слоем. Слой сеансов предоставляет механизм для установления, завершения и управления сеансом между процессами прикладных программ конечных пользователей, то есть полупостоянным диалогом. Сеансы связи состоят из запросов и ответов, происходящих между приложениями. Услуги слоя сеансов обычно используются в прикладных средах, использующих удалённые вызовы процедур (RPC). Примером протокола слоя сеансов является протокол слоя сеансов стека протоколов OSI, также известный как X.225 или ISO 8327. В случае потери соединения этот протокол может попытаться восстановить соединение. Если соединение не используется в течение длительного времени, протокол слоя сеансов может закрыть его и повторно открыть. Он поддерживает как полнодуплексный, так и полудуплексный режимы работы и обеспечивает точки синхронизации в потоке обмениваемых сообщений. Другие примеры реализации слоя сеансов включают протокол Zone Information Protocol (ZIP) – протокол AppleTalk, координирующий процесс связывания имён, и протокол Session Control Protocol (SCP) – протокол слоя сеансов DECnet Phase IV. В рамках семантики слоёв сетевой архитектуры OSI, слой сеансов отвечает на запросы от уровня представления и отправляет запросы на обслуживание транспортному уровню.
In the seven layer OSI model of computer networking, the session layer is layer 5. The session layer provides the mechanism for opening, closing and managing a session between end user application processes, i. e., a semi permanent dialogue. Communication sessions consist of requests and responses that occur between applications. Session layer services are commonly used in application environments that make use of remote procedure calls (RPCs). An example of a session layer protocol is the OSI protocol suite session layer protocol, also known as X.225 or ISO 8327. In case of a connection loss this protocol may try to recover the connection. If a connection is not used for a long period, the session layer protocol may close it and re open it. It provides for either full duplex or half duplex operation and provides synchronization points in the stream of exchanged messages. Other examples of session layer implementations include Zone Information Protocol (ZIP) – the AppleTalk protocol that coordinates the name binding process, and Session Control Protocol (SCP) – the DECnet Phase IV session layer protocol. Within the service layering semantics of the OSI network architecture, the session layer responds to service requests from the presentation layer and issues service requests to the transport layer.
Установление соединения и отпуск
В минимальном случае, уровень сеанса позволяет обеим сторонам устанавливать и использовать соединение, называемое сеансом, и обеспечивает его упорядоченное завершение. В модели OSI транспортный уровень не отвечает за упорядоченное освобождение соединения; эту функцию выполняет уровень сеанса. Однако в современных сетях TCP/IP протокол TCP уже обеспечивает упорядоченное закрытие соединений на транспортном уровне. После завершения сеансового соединения, базовое транспортное соединение может быть повторно использовано для другого сеансового соединения. Кроме того, сеансовое соединение может использовать несколько последовательных транспортных соединений. Например, если во время сеанса происходит сбой базового транспортного соединения, уровень сеанса может попытаться восстановить транспортное соединение для продолжения сеанса.
Контроль диалога
Уровень сеанса может обеспечивать три различных типа диалога: двусторонний одновременный (полный дуплекс), двусторонний попеременный (полудуплекс) и односторонний (симплекс). Он также предоставляет механизмы для согласования типа диалога и контролирует, какая сторона имеет право ("очередь" или "токен") на отправку данных или выполнение некоторых управляющих функций. Управление диалогом не реализовано в TCP/IP и остается за прикладным уровнем, если это необходимо. В широко используемом протоколе HTTP/1.1 клиент и сервер обычно работают в режиме полудуплекса. HTTP/1.1 также поддерживает конвейеризацию HTTP (HTTP pipelining) для работы в полном дуплексе, но многие серверы и прокси-серверы не могли корректно его обрабатывать, и отсутствовал механизм согласования диалога для проверки возможности использования полного дуплекса, поэтому большинство браузеров в конечном итоге отказались от его поддержки.
Точки синхронизации и ресинхронизации
Слой сеанса также может позволить обеим сторонам вставлять точки синхронизации в диалог и выполнять ресинхронизацию, которая прерывает текущую передачу, устанавливает точку синхронизации на определенное значение и перезапускает передачу с этой точки. Это может быть использовано в передаче аудио- и видеоданных в реальном времени. Точки синхронизации могут использоваться для добавления временных меток к потоку данных, а ресинхронизация – для сброса передачи и начала с новой временной метки. Например, если видеопоток слишком сильно отстает от аудиопотока, принимающая сторона может запросить ресинхронизацию видеопотока, перезапустив его передачу с более поздней временной метки. Это также может быть использовано приложением для создания контрольных точек. Точки синхронизации могут указывать на то, что приложение зафиксировало контрольную точку, а после сбоя приложения или отключения питания ресинхронизация может указать, что приложение восстановилось после контрольной точки и передачу можно возобновить с нее. Это также может быть использовано для принудительного прерывания и возобновления диалога в любой момент, не из-за сбоя приложения, а по плану приложения. Приложение может прервать диалог, начать другой диалог в той же сессии и возобновить предыдущий диалог в той же или другой сессии. Слой сеанса также может обеспечивать явную поддержку управления несколькими прерываемыми диалогами в рамках одной или нескольких сессий. Эти диалоги называются активностями. Активности могут быть прерваны и возобновлены явно. По сравнению с неявным прерыванием и возобновлением диалогов с помощью ресинхронизации, поддержка активностей предоставляет приложению более простое управление этими диалогами.
Сравнение с моделью TCP/IP
Референтная модель TCP/IP не рассматривает детали семантики приложений или транспортных протоколов модели OSI и, следовательно, не включает уровень сеанса. Управление сеансами в OSI, в отношении типичных транспортных протоколов (TCP, SCTP), реализуется в протоколах транспортного уровня или относится к области протоколов прикладного уровня. Уровни TCP/IP описывают области функционирования (прикладной, межхостовой, сетевой, канальный), а не детальные процедуры работы или семантику данных.