<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sarg.dev/index.php?action=history&amp;feed=atom&amp;title=Session_layer</id>
	<title>Session layer - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sarg.dev/index.php?action=history&amp;feed=atom&amp;title=Session_layer"/>
	<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=Session_layer&amp;action=history"/>
	<updated>2026-06-25T20:21:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.sarg.dev/index.php?title=Session_layer&amp;diff=104620&amp;oldid=prev</id>
		<title>imported&gt;Chris the speller: /* Dialogue control */ replaced: widely-used → widely used</title>
		<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=Session_layer&amp;diff=104620&amp;oldid=prev"/>
		<updated>2025-06-20T19:58:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Dialogue control: &lt;/span&gt; replaced: widely-used → widely used&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Use American English|date = March 2019}}&lt;br /&gt;
{{Short description|Layer in standard computer networking model}}&lt;br /&gt;
{{Use mdy dates|date = March 2019}}&lt;br /&gt;
{{Redirect|Layer 5|the political layer sometimes included in the [[OSI model]]|Layer 8}}&lt;br /&gt;
{{refimprove|date=October 2009}}&lt;br /&gt;
{{OSIModel}}&lt;br /&gt;
In the seven-layer [[OSI model]] of [[computer network]]ing, the &amp;#039;&amp;#039;&amp;#039;session layer&amp;#039;&amp;#039;&amp;#039; is &amp;#039;&amp;#039;&amp;#039;layer 5&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
The session layer provides the mechanism for opening, closing and managing a [[Session (computer science)|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 call]]s (RPCs).&amp;lt;ref&amp;gt;{{Cite web |title=What Is Remote Procedure Call (RPC)? Definition from SearchAppArchitecture |url=https://www.techtarget.com/searchapparchitecture/definition/Remote-Procedure-Call-RPC |access-date=2022-08-04 |website=SearchAppArchitecture |language=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 [[duplex (telecommunications)|full duplex]] or [[duplex (telecommunications)|half-duplex]] operation and provides [[synchronization point]]s in the stream of exchanged messages.&amp;lt;ref&amp;gt;[http://www.itu.int/rec/T-REC-X.225/en/ ITU-T Recommendation X.225]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Other examples of session layer implementations include [[Zone Information Protocol]] (ZIP) – the [[AppleTalk]]&amp;lt;ref&amp;gt;{{Cite web |title=ZIP |url=https://developer.apple.com/library/archive/documentation/mac/pdf/Networking/ZIP.pdf |website=Apple.developer.com}}&amp;lt;/ref&amp;gt; protocol that coordinates the name binding process, and Session Control Protocol (SCP)&amp;lt;ref&amp;gt;{{Cite web |title=Session Control Protocol (SCP) |url=https://www.w3.org/Protocols/HTTP-NG/http-ng-scp.html |access-date=2022-08-04 |website=www.w3.org}}&amp;lt;/ref&amp;gt; – the [[DECnet]] Phase IV session-layer protocol.&lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
==Services==&lt;br /&gt;
&lt;br /&gt;
=== Connection establishment and release ===&lt;br /&gt;
&lt;br /&gt;
At the minimum, the session layer allows the two sides to establish and use a connection, called a session, and allows orderly release of the connection.&lt;br /&gt;
&lt;br /&gt;
In the OSI model, the transport layer is not responsible for an orderly release of a connection. Instead, the session layer is responsible for that. However, in modern TCP/IP networks, TCP already provides orderly closing of connections at the transport layer.&lt;br /&gt;
&lt;br /&gt;
After a session connection is released, the underlying transport connection may be reused for another session connection. Also, a session connection may make use of multiple consecutive transport connections. For example, if, during a session, the underlying transport connection has a failure, the session layer may try to re-establish a transport connection to continue the session.&lt;br /&gt;
&lt;br /&gt;
=== Dialogue control ===&lt;br /&gt;
&lt;br /&gt;
The session layer may provide three different dialogue types - two way simultaneous (full-duplex), two way alternate (half-duplex), and one way (simplex). It also provides the mechanisms to negotiate the type of the dialogue, and controls which side has the &amp;quot;turn&amp;quot; or &amp;quot;token&amp;quot; to send data or to perform some control functions.&lt;br /&gt;
&lt;br /&gt;
Dialogue control is not implemented in TCP/IP, and is left to the application layer to handle, if necessary. In the widely used HTTP/1.1 protocol, the client and the server typically work in a half-duplex way. HTTP/1.1 also supports [[HTTP pipelining]] for full-duplex operation, but many servers/proxies couldn&amp;#039;t handle it correctly, and there was no dialogue negotiation mechanism to check whether full-duplex is usable or not, so its support was eventually dropped by most browsers.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization points and resynchronization ===&lt;br /&gt;
&lt;br /&gt;
The session layer may also allow the two sides to insert &amp;#039;&amp;#039;synchronization points&amp;#039;&amp;#039; into the dialogue, and allow them to do a &amp;#039;&amp;#039;resynchronization&amp;#039;&amp;#039;, which aborts the current transmission, sets the synchronization point to a certain value, and restarts transmission from that point.&lt;br /&gt;
&lt;br /&gt;
This may be used in real-time audio/video transmission. Synchronization points can be used to insert timestamps to the data flow, and a resynchronization may be used to reset the transmission to start from a new timestamp. For example, if the video stream lags behind the audio stream too much, the receiving side may issue a resynchronization request on the video stream, restarting its transmission from a later timestamp.&lt;br /&gt;
&lt;br /&gt;
This may also be used by the application to do checkpointing. Synchronization points can be used to indicate that a checkpoint has been committed by the application, and after an application crash or a power failure, a resynchronization can be used to indicate that the application has recovered from a checkpoint and the transmission can be resumed from that point.&lt;br /&gt;
&lt;br /&gt;
This may also be used to interrupt / resume a dialogue at any time, not due to an application failure, but as planned by the application. The application may interrupt a dialogue, start another dialogue in the same session, and resume the previous dialogue in the same session or in another session.&lt;br /&gt;
&lt;br /&gt;
The session layer may also provide explicit support for managing multiple interruptible dialogues over one or more sessions. These dialogues are called &amp;#039;&amp;#039;activities&amp;#039;&amp;#039;. Activities can be interrupted and resumed explicitly. Compared to implicitly interrupting and resuming dialogues by resynchronization, activity support gives the application simpler control of these dialogues.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
{{div col|colwidth=27em}}&lt;br /&gt;
*ADSP, [[AppleTalk|AppleTalk Data Stream Protocol]]&lt;br /&gt;
*ASP, [[AppleTalk|AppleTalk Session Protocol]]&lt;br /&gt;
*H.245, [[H.245|Call Control Protocol for Multimedia Communication]]&lt;br /&gt;
*ISO-SP, OSI session-layer protocol (X.225, ISO 8327)&lt;br /&gt;
*iSNS, [[ISNS|Internet Storage Name Service]]&lt;br /&gt;
*L2F, [[L2F|Layer 2 Forwarding Protocol]]&lt;br /&gt;
*L2TP, [[L2TP|Layer 2 Tunneling Protocol]]&lt;br /&gt;
*NetBIOS, [[NetBIOS|Network Basic Input Output System]]&lt;br /&gt;
*PAP, [[Password Authentication Protocol]]&lt;br /&gt;
*PPTP, [[PPTP|Point-to-Point Tunneling Protocol]]&lt;br /&gt;
*RPC, [[remote procedure call|Remote Procedure Call Protocol]]&lt;br /&gt;
*RTCP, [[RTCP|Real-time Transport Control Protocol]]&lt;br /&gt;
*SMPP, [[Short Message Peer-to-Peer]]&lt;br /&gt;
*SCP, [[Secure Copy Protocol|Secure Copy]]&lt;br /&gt;
*SOCKS, the [[SOCKS]] internet protocol&lt;br /&gt;
*ZIP, [[Zone Information Protocol]]&lt;br /&gt;
*SDP, [[Sockets Direct Protocol]]&lt;br /&gt;
&lt;br /&gt;
{{div col end}}&lt;br /&gt;
&lt;br /&gt;
==Comparison with TCP/IP model==&lt;br /&gt;
The [[TCP/IP reference model]] does not concern itself with the OSI model&amp;#039;s details of application or transport protocol semantics and therefore does not consider a session layer. OSI&amp;#039;s session management in connection with the typical transport protocols (TCP, SCTP), is contained in the [[transport layer|transport-layer]] protocols, or otherwise considered the realm of the [[application layer]] protocols. TCP/IP&amp;#039;s layers are &amp;#039;&amp;#039;descriptions&amp;#039;&amp;#039; of operating scopes (application, host-to-host, network, link) and not detailed &amp;#039;&amp;#039;prescriptions&amp;#039;&amp;#039; of operating procedures or data semantics.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Session (computer science)]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:OSI model]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Chris the speller</name></author>
	</entry>
</feed>