将一个协议“包装”在另一个协议中时,适当的术语(应用层,传输层等)是什么?

时间:2016-12-15 20:15:07

标签: network-programming terminology network-protocols

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

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

This answer to a different question表明:

  1. 你称它为什么并不重要(它与哪个OSI层相关)
  2. 这样的东西可能被正确描述为一个应用程序层协议,恰好在其上构建了另一个应用程序层协议。
  3. 底线:我应该如何在GUI中标记此详细信息?可能是下列之一?

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

    其他可能性包括:

    • “应用程序协议”(误导,因为实际上有一个更高级别的协议,这个名称会更合适)
    • “传输协议”(可能会产生误导,因为下面会有像TCP这样的低级协议,这通常就是这个名称会让我想到的)
    • “封装”或“封装协议”
    • “包装协议”(类似于上文)
    • “基础协议”(模糊/含糊不清 - 可能有更多基础协议...... TCP,IP,以太网......)
    • “协议”(太通用了?)

    似乎没有什么能适合我。

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

1 个答案:

答案 0 :(得分:1)

  

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

此处提到的每个协议都是应用层协议。

您可能希望使用“隧道”这个词。

  

你所谓的它并不那么重要(它与哪个OSI层相关)

根本没有理由将它与任何OSI层相关联。 OSI模型适用于OSI协议套件,它已经不存在, ergo 模型也是如此。遗憾的是,几代教师已将其教导为好像它是一种基本的自然法则。它不是。例如,如果您正在使用TCP / IP,它就有自己的图层模型,甚至OSI的人都承认没有人知道进入表示层的内容。