除了较低级别的协议(如 TCP)之外,我还在阅读更高级别的协议,如 HTTP 和 SOAP(关于最高级别的应用程序层)。到目前为止,这些协议只涉及 OSI 模型的一层。例如,SOAP 讨论应用层特定元素,例如要传输的文件类型(仅限 XML)。
是否有任何协议跨越多个层?我可以将 HTTP 与 TCP 或 UDP 一起使用(我的应用层协议独立于我的传输层第一层),但是是否有任何协议会强制更改另一层的通信?
除了较低级别的协议(如 TCP)之外,我还在阅读更高级别的协议,如 HTTP 和 SOAP(关于最高级别的应用程序层)。到目前为止,这些协议只涉及 OSI 模型的一层。例如,SOAP 讨论应用层特定元素,例如要传输的文件类型(仅限 XML)。
是否有任何协议跨越多个层?我可以将 HTTP 与 TCP 或 UDP 一起使用(我的应用层协议独立于我的传输层第一层),但是是否有任何协议会强制更改另一层的通信?
也许你会算上 ICMP,从技术角度来看,它可以被认为是第 4 层(它的数据报位于 IP 数据包内),但它在功能上是第 3 层的一部分。
ICMP 使用IP 的基本支持就好像它是一个更高级别的协议一样,但ICMP 实际上是IP 的一个组成部分,必须由每个IP 模块实现。
我可以将 HTTP 与 TCP 或 UDP 结合使用
并不真地。
协议通常对其上方和下方的协议做出假设。例如,http 1 和 2 依赖于 TCP 提供的可靠的有序交付(http 3 旨在通过 udp 运行,但这是一个完全不同的协议,标准化尚未完成)。
另一方面,TCP 和 UDP 被设计为在 IPv4 上运行。当 rfc1883 引入 IPv6 时,它有一节“上层协议问题”描述了在 IPv6 上运行 TCP 和 UDP 所需的适应。许多更高级别的协议和系统也以一种或另一种形式处理互联网地址,因此需要适应以支持 IPv6。