Network programming 什么是合适的术语(应用层、传输层等);“包装”;一个协议在另一个协议中?

Network programming 什么是合适的术语(应用层、传输层等);“包装”;一个协议在另一个协议中?,network-programming,terminology,network-protocols,Network Programming,Terminology,Network Protocols,我正在设计一个通过各种连接类型/传输机制与设备通信的应用程序。例如,USB虚拟COM、串行端口和TCP连接。在每种情况下,我都将使用通过底层传输的自定义/设备特定应用协议(例如发送命令、接收数据等)。对于到目前为止提到的情况,我似乎很清楚,“应用程序协议”是专有的命令/响应协议,TCP连接(或串行端口或“任何神奇地传输字节的东西”)是传输协议 但是,谈论中间协议的最佳方式是什么,例如,当将上述专有应用层协议封装在另一个应用层协议(如SSH、HTTP或SSL/TLS)中时 建议: 它的名称(它与哪

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

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

建议:

  • 它的名称(它与哪个OSI层相关联)并不重要
  • 类似的内容可以正确地描述为一个应用层协议,它恰好有另一个应用层协议构建在它之上
  • 底线:我应该如何在GUI中标记此细节?可能是以下之一

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

    其他可能性包括:

    • “应用程序协议”(具有误导性,因为实际上有一个更高级别的协议更适合使用此名称)
    • “传输协议”(可能有误导性,因为下面会有一个较低级别的协议,如TCP,这通常是这个名称让我想到的)
    • “封装”或“封装协议”
    • “包装协议”(与上文类似)
    • “底层协议”(含糊不清——可能还有更多的底层协议……TCP、IP、以太网等)
    • “协议”(太笼统了?)
    似乎没有什么比这更适合我了

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

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

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

    你可能想用“隧道”这个词

    它的名称(它与哪个OSI层相关联)并不重要


    根本没有理由将其与任何OSI层相关联。OSI模型是针对OSI协议套件的,该协议套件已经失效,因此该模型也是如此。不幸的是,几代老师都把它当作一条基本的自然法则来教。事实并非如此。例如,如果您使用TCP/IP,它有自己的层模型,甚至OSI人员也承认,没有人知道表示层中发生了什么。

    我将更新这个问题,将SSL/TLS标记为应用程序协议。我想我听过人们随便把它当作一种传输协议来谈论,但从功能上讲,这毫无意义。“隧道”似乎是另一个合理的竞争者(它符合SSH的术语),尽管它可能误导人们想到/VPN的东西。这不是误导,它是另一个确切的例子。这只是在另一层挖隧道;我只是想说这是不同的。此应用程序的用户可能具有科学知识/技术知识,但不一定熟悉计算机和网络系统的内部工作原理,因此我尽最大努力避免任何可能使他们混淆的事情。也许在这种情况下,我不应该试图通过术语来实现这一点;默认情况下隐藏高级选项可能更有意义。谢谢你的建议。代替其他人,我将把这个标记为可接受的答案。