我正在设计一个应用程序,通过各种连接类型/传输机制与设备进行通信。例如,USB虚拟COM,串行端口和TCP连接。在每种情况下,我将使用通过底层传输传递的定制/设备特定应用协议(例如发送命令,接收数据等)。对于目前提到的情况,我似乎很清楚“应用协议”是专有的命令/响应,TCP连接(或串行端口或“不管神奇传输字节”)是传输协议。将一个协议“包装”到另一个协议中时,正确的术语(应用层,传输层等)是什么?
但是,谈论中间协议的最好方法是什么,例如,在将上述专有应用层协议封装在另一个应用层协议(如SSH,HTTP或SSL/TLS)内时?
This answer to a different question表明:
- 这不是那么重要的东西,你把它(与OSI层与其关联)
- 像这样的东西可能会被正确地描述为恰好有一个应用层协议另一个建立在它上面的应用层协议。
底线:我该如何在GUI中标记这些细节?也许是下列之一?
✔ “隧道” 或 “隧道协议”(由@EJP所建议的)
其它可能性包括:
- “应用协议”(误导,因为实际上存在一个更高层的协议这个名字会更合适)
- “传输协议”(可能会引起误解,因为会有像TCP这样的底层协议,这通常是这个名字让我想到的)
- “封装”或“封装协议”
- “包装协议”(类似于上面)
- “底层协议”(模糊/不明确的 - 有可能有更多的底层协议... TCP,IP,以太网,...)
- “协议”(太普通?)
似乎没有我,装修跳出来。
更新:正如@EJP所指出的,SSL/TLS是一种应用层协议,不是传输协议;现在的问题反映了这一点。
我将更新问题以将SSL/TLS标记为应用程序协议。我想我已经听到人们随便谈论它作为一种传输协议,但从功能上来说,这没有任何意义。 “隧道”似乎是另一个合理的竞争者(它符合SSH的术语),尽管它可能误导性地让人们想到[IP隧道](https://en.wikipedia.org/wiki/IP_tunnel)/ VPN的东西。 – iX3
这不是误导,它是另一个确切的例子。它只是在不同的层次上进行隧道。 – EJP
正确;我只是说它是不同的。这个应用程序的用户可能是科学知识/技术人员,但不一定熟悉计算机和网络系统的内部工作,所以我尽我所能避免任何可能使他们混淆的东西。虽然在这种情况下,也许我不应该试图通过术语来实现这一点;默认情况下隐藏高级选项可能更有意义。感谢您的建议。代替其他人,我将把这标记为公认的答案。 – iX3