2016-12-15 78 views
1

我正在设计一个应用程序,通过各种连接类型/传输机制与设备进行通信。例如,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是一种应用层协议,不是传输协议;现在的问题反映了这一点。

回答

1

但是,什么是谈中间协议的最佳方式中,例如,封装上述的专用应用层协议时,另一应用层协议等SSH的内部或HTTP或甚至另一传输层协议如SSL/TLS ?

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

您可能想使用“隧道”一词。

你叫什么这不是那么重要(与OSI层与其关联)

没有理由将它与任何OSI层在所有的关联。 OSI模型适用于OSI协议套件,该套件已不存在,ergo模型也是如此。不幸的是,一代又一代的教师已经把它教导成了一种自然的基本法则。事实并非如此。例如,如果您使用的是TCP/IP,则它有自己的层模型,甚至OSI人员也承认没有人知道进入表示层的内容。

+0

我将更新问题以将SSL/TLS标记为应用程序协议。我想我已经听到人们随便谈论它作为一种传输协议,但从功能上来说,这没有任何意义。 “隧道”似乎是另一个合理的竞争者(它符合SSH的术语),尽管它可能误导性地让人们想到[IP隧道](https://en.wikipedia.org/wiki/IP_tunnel)/ VPN的东西。 – iX3

+0

这不是误导,它是另一个确切的例子。它只是在不同的层次上进行隧道。 – EJP

+0

正确;我只是说它是不同的。这个应用程序的用户可能是科学知识/技术人员,但不一定熟悉计算机和网络系统的内部工作,所以我尽我所能避免任何可能使他们混淆的东西。虽然在这种情况下,也许我不应该试图通过术语来实现这一点;默认情况下隐藏高级选项可能更有意义。感谢您的建议。代替其他人,我将把这标记为公认的答案。 – iX3