【问题标题】:What is the proper terminology (Application Layer, Transport layer, etc.) when "wrapping" one protocol inside another?将一个协议“包装”到另一个协议中时,正确的术语是什么(应用层、传输层等)?
【发布时间】:2017-05-01 13:20:41
【问题描述】:

我正在设计一个通过各种连接类型/传输机制与设备通信的应用程序。例如,USB 虚拟 COM、串行端口和 TCP 连接。在每种情况下,我都将使用通过底层传输传递的自定义/特定于设备的应用程序协议(例如,发送命令、接收数据等)。对于到目前为止提到的情况,我似乎很清楚“应用程序协议”是专有命令/响应之一,而 TCP 连接(或串行端口或“任何神奇地传输字节”)是传输协议。

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

This answer to a different question 建议:

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

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

✔“隧道”或“隧道协议”(@EJP 建议)

其他可能性包括:

  • “应用程序协议”(具有误导性,因为实际上有更高级别的协议更适合使用此名称)
  • “传输协议”(可能会产生误导,因为下面会有像 TCP 这样的较低级别的协议,这通常是我想到的这个名称)
  • “封装”或“封装协议”
  • “包装协议”(类似于上面)
  • “底层协议”(含糊/模棱两可——可能还有更多底层协议……TCP、IP、以太网……)
  • “协议”(太笼统?)

似乎没有什么适合我。

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

【问题讨论】:

    标签: network-programming terminology network-protocols


    【解决方案1】:

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

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

    您可能想要使用“隧道”这个词。

    你怎么称呼它并不重要(它与哪个 OSI 层相关联)

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

    【讨论】:

    • 我将更新问题以将 SSL/TLS 也标记为应用程序协议。我想我听过人们随便谈论它作为一种传输协议,但从功能上讲这没有任何意义。 “隧道”似乎是另一个合理的竞争者(它与 SSH 的术语一致),尽管它可能会误导人们想到 IP tunneling / VPN 的东西。
    • 这不是误导。这是另一个确切的例子。它只是在不同的层建立隧道。
    • 对;我只是说它是不同的。此应用程序的用户可能具有科学知识/技术知识,但不一定熟悉计算机和网络系统的内部工作原理,因此我正在尽力避免任何可能使他们感到困惑的事情。在这种情况下,也许我不应该尝试通过术语来实现这一点;默认情况下隐藏高级选项可能更有意义。感谢您的建议。我将代替其他人将其标记为已接受的答案。
    猜你喜欢
    • 2011-05-16
    • 1970-01-01
    • 2018-07-07
    • 2018-10-30
    • 2018-11-30
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多