当 "wrapping" 一个协议在另一个协议中时,正确的术语是什么(应用层、传输层等)?

What is the proper terminology (Application Layer, Transport layer, etc.) when "wrapping" one protocol inside another?

我正在设计一个通过各种连接类型/传输机制与设备通信的应用程序。例如,USB 虚拟 COM、串行端口和 TCP 连接。在每种情况下,我都将使用通过底层传输传递的 custom/device-specific 应用程序协议(例如发送命令、接收数据等)。对于到目前为止提到的案例,我似乎很清楚 "Application Protocol" 是专有的 command/response 连接,TCP 连接(或串口或 "whatever magically transports the bytes")是传输协议。

但是,谈论中间协议的最佳方式是什么,例如,当将上述专有应用层协议封装在另一个应用层协议(如 SSH、HTTP 或 SSL/TLS 中时?

This answer to a different question 建议:

  1. 你怎么称呼它并不重要(它与哪个 OSI 层相关联)
  2. 像这样的东西可能被正确地描述为一个应用层协议,恰好在它之上构建了另一个应用层协议。

底线:我应该如何在 GUI 中标记这个细节?也许是以下之一?

✔ "Tunnel" 或 "Tunneling Protocol"(由@EJP 建议)

其他可能性包括:

似乎没有什么适合我的。

更新:正如@EJP指出的那样,SSL/TLS是应用层协议而不是传输协议;现在的问题反映了这一点。

However, what is the best way to talk about intermediate protocols, for example, when encapsulating the aforementioned proprietary application layer protocol inside of another application layer protocol like SSH or HTTP or even another transport layer protocol like SSL/TLS?

你在这里提到的每个协议都是一个应用层协议。

您可能想使用 'tunnelling' 这个词。

It's not so important what you call it (with which OSI layer it is associated)

根本没有理由将它与任何 OSI 层相关联。 OSI 模型适用于 OSI 协议套件,该套件已失效,ergo 模型也是如此。不幸的是,一代又一代的老师都把它当作基本的自然法则来教授。它不是。例如,如果您使用 TCP/IP,它有自己的层模型,甚至 OSI 人员也承认没有人知道表示层中有什么。