所以我觉得我非常了解应用层,以及传输层以下(包括)的所有内容。
但是,我并不完全理解会话层和表示层。我已经阅读了 Wikipedia 中的简单描述,但它没有一个示例说明为什么分离这些层是有用的。
所以:
- 什么是会话层?它有什么作用,在什么情况下拥有一个会话层比简单地与您的应用程序与传输通信更好?
- 什么是表示层?(与上述相同的问题)
-亚当
所以我觉得我非常了解应用层,以及传输层以下(包括)的所有内容。
但是,我并不完全理解会话层和表示层。我已经阅读了 Wikipedia 中的简单描述,但它没有一个示例说明为什么分离这些层是有用的。
所以:
-亚当
会话层旨在存储两个连接之间的状态,例如我们在使用 Web 编程时使用 cookie 的目的。
表示层旨在在不同格式之间进行转换。当唯一担心的格式是字符编码时,这更简单,即 ASCII 和 EBCDIC。当您考虑我们今天拥有的所有不同格式(Quicktime、Flash、Pdf)时,集中这一层是不可能的。
TCP/IP 不对这些层进行任何分配,因为它们确实超出了网络协议的范围。这取决于利用堆栈的应用程序来实现这些。
维基百科上没有任何例子的原因是没有很多关于 OSI 网络模型的例子。
OSI 再次创建了一个没有人使用的标准,所以没有人真正知道应该如何使用它。
第 5-6 层在当今的 Web 应用程序中并不常用,因此您对它们的了解不多。TCP/IP 堆栈与纯 OSI 模型略有不同。
今天使用 TCP/IP 而不是 OSI 的原因之一是它过于臃肿和理论化,事实证明,会话和表示层并不真正需要作为单独的层。
我认为表示层协议定义了数据的格式。这意味着像 XML 或 ASN.1 这样的协议。您可能会争辩说视频/音频编解码器是表示层的一部分,尽管这可能是走向应用层。
我无法帮助您处理会话层。这一直让我感到困惑。
老实说,传输层之上的一切都有非常模糊的界限。这是因为它通常由单个软件应用程序处理。此外,这些层与将数据从 A 传输到 B 没有直接关联。第 4 层及以下的每个层在移动数据方面都有非常特定的目的,例如交换、路由、确保数据完整性等。这使得区分这些层更容易。
对于表示层:因为异构系统(操作系统、编程语言、cpu 架构)之间完成的大部分通信我们需要使用统一的 idepedent 规范。如 ANS1 和 BRE。
表示层 表示层表示独立于应用层数据表示的区域——一般来说,它表示应用程序格式到网络格式或从网络格式到应用程序格式的准备或转换。换句话说,该层为应用程序或网络“呈现”数据。一个很好的例子是加密和解密数据以实现安全传输——这发生在第 6 层。
会话层 当两台设备、计算机或服务器需要相互“对话”时,需要创建一个会话,这是在会话层完成的。这一层的功能涉及设置、协调(例如,系统应该等待多长时间的响应)和会话结束时应用程序之间的终止。