Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Session layer
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Use American English|date = March 2019}} {{Short description|Layer in standard computer networking model}} {{Use mdy dates|date = March 2019}} {{Redirect|Layer 5|the political layer sometimes included in the [[OSI model]]|Layer 8}} {{refimprove|date=October 2009}} {{OSIModel}} In the seven-layer [[OSI model]] of [[computer network]]ing, the '''session layer''' is '''layer 5'''. 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).<ref>{{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}}</ref> 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.<ref>[http://www.itu.int/rec/T-REC-X.225/en/ ITU-T Recommendation X.225]</ref> Other examples of session layer implementations include [[Zone Information Protocol]] (ZIP) β the [[AppleTalk]]<ref>{{Cite web |title=ZIP |url=https://developer.apple.com/library/archive/documentation/mac/pdf/Networking/ZIP.pdf |website=Apple.developer.com}}</ref> protocol that coordinates the name binding process, and Session Control Protocol (SCP)<ref>{{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}}</ref> β 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]]. ==Services== === Connection establishment and release === 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. 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. 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. === Dialogue control === 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 "turn" or "token" to send data or to perform some control functions. 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'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. === Synchronization points and resynchronization === The session layer may also allow the two sides to insert ''synchronization points'' into the dialogue, and allow them to do a ''resynchronization'', which aborts the current transmission, sets the synchronization point to a certain value, and restarts transmission from that point. 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. 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. 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. The session layer may also provide explicit support for managing multiple interruptible dialogues over one or more sessions. These dialogues are called ''activities''. 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. ==Protocols== {{div col|colwidth=27em}} *ADSP, [[AppleTalk|AppleTalk Data Stream Protocol]] *ASP, [[AppleTalk|AppleTalk Session Protocol]] *H.245, [[H.245|Call Control Protocol for Multimedia Communication]] *ISO-SP, OSI session-layer protocol (X.225, ISO 8327) *iSNS, [[ISNS|Internet Storage Name Service]] *L2F, [[L2F|Layer 2 Forwarding Protocol]] *L2TP, [[L2TP|Layer 2 Tunneling Protocol]] *NetBIOS, [[NetBIOS|Network Basic Input Output System]] *PAP, [[Password Authentication Protocol]] *PPTP, [[PPTP|Point-to-Point Tunneling Protocol]] *RPC, [[remote procedure call|Remote Procedure Call Protocol]] *RTCP, [[RTCP|Real-time Transport Control Protocol]] *SMPP, [[Short Message Peer-to-Peer]] *SCP, [[Secure Copy Protocol|Secure Copy]] *SOCKS, the [[SOCKS]] internet protocol *ZIP, [[Zone Information Protocol]] *SDP, [[Sockets Direct Protocol]] {{div col end}} ==Comparison with TCP/IP model== The [[TCP/IP reference model]] does not concern itself with the OSI model's details of application or transport protocol semantics and therefore does not consider a session layer. OSI'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's layers are ''descriptions'' of operating scopes (application, host-to-host, network, link) and not detailed ''prescriptions'' of operating procedures or data semantics. ==See also== * [[Session (computer science)]] ==References== <references/> [[Category:OSI model]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite web
(
edit
)
Template:Div col
(
edit
)
Template:Div col end
(
edit
)
Template:OSIModel
(
edit
)
Template:Redirect
(
edit
)
Template:Refimprove
(
edit
)
Template:Short description
(
edit
)
Template:Use American English
(
edit
)
Template:Use mdy dates
(
edit
)