解释会话层的函数。


会话层服务由构成会话层的函数单元集提供。会话层可以理解为一个通用的工具包,用户从中选择要使用的工具。

会话层提供的功能如下:

会话建立

会话层的主要功能是提供和建立通信用户之间的连接,称为会话。它可以以可靠且有序的方式通过这些会话传输数据。

它可以在两台计算机之间建立会话以进行通信、文件传输、远程登录或其他目的。它可以建立面向连接的会话和无连接的会话,但对于面向用户的会话层来说,无连接的会话没有用。

会话连接类似于传输连接。会话建立请求必须确保传输连接的建立。会话释放时,传输连接也会释放。会话到传输连接的映射有三种方式。

一对一映射、多对一映射和一对多映射。在一对一映射中,一个会话使用一个传输连接。在多对一映射中,连续的会话使用相同的传输连接,而在一对多映射中,一个会话跨越多个传输连接。

普通数据传输

这是会话层的必备功能。用户实体之间的数据交换可以是双向交替(半双工)或双向同时(全双工)。在半双工模式下,只有一个用户有独占权利启动数据传输。相比之下,在另一种情况下,可以双向同时进行数据传输。

对话管理

在某些情况下,会话连接是全双工的,但上层有时以半双工模式通信。在这种情况下,会话层必须跟踪轮到谁说话,这被称为对话管理。数据令牌用于实现对话管理。

建立半双工会话时,通过初始协商确定哪一方首先收到令牌。拥有令牌的用户可以传输数据,而另一个用户保持静默。当令牌持有者完成传输后,它将令牌传递给其他用户,一旦另一个用户收到令牌,它就可以传输数据。在全双工操作的情况下,数据传输不使用令牌。

会话释放

要释放会话连接,可以使用以下四种变体之一:

  • 用户中止
  • 提供者中止
  • 有序释放
  • 协商释放

在用户中止中,会话连接可以由任何一个用户释放,而不是中止。类似地,在提供者中止中,会话由提供者或提供者中止。用户之间存在双向交互;因此,在释放连接之前,传输的数据将被传递到其目的地。

为了以这种方式释放,任何用户或提供者都可以请求释放会话连接,而另一个用户必须接受释放。在协商释放中,拥有释放令牌的用户可以启动释放会话连接的请求。另一个用户可以根据条件和要求接受或拒绝会话释放请求。如果被接受,则会话被释放。

在用户中止和提供者中止中,会话在未通知其他实体的情况下被中止,从而丢失传输数据。同时,有序释放和协商释放的情况并非如此。提供者中止发生在致命错误的情况下。

同步

同步确保在任何时间点会话服务用户之间具有相同的交互状态。如果发生错误或不一致,则会话实体将返回到已知状态。提供此服务是因为传输层只屏蔽通信错误,而不是上层错误。

为了实现这个目标,同步点被插入到交互中。发送方插入一个序列号作为同步点,接收方通过发送回序列号来确认接收。

它与确认不同,因为确认是指协议数据单元的接收。主同步点和次同步点用于将通信实例构成对话单元或对话单元内。

前者立即得到确认,而后者可能不会。两者都使用标准序列号,并且各自的令牌控制它们。

重新同步

有时需要将对话状态恢复到先前定义的状态。这被称为反向同步或重新同步。会话层实体也提供它。

重新同步有三种选择:设置、放弃和重新启动。发送会话用户继续持有数据以实现同步,只要它可能需要它。当发生重新同步时,所有令牌都将恢复到设置同步点时的原始位置。

活动管理

会话层允许用户区分会话期间执行的活动。用户可以将消息流分割成逻辑单元。这些逻辑单元称为活动,将消息流分割成活动称为活动管理。

报告

会话层的一个特性是其用于意外错误的报告功能。这是一种通用机制,如果用户遇到问题,它允许向对等方报告问题。此报告同样适用于用户检测到的错误、协议错误或其他一些意外错误。

更新于:2021年5月4日

2K+ 浏览量

启动您的职业生涯

通过完成课程获得认证

开始
广告