Network programming 什么是合适的术语(应用层、传输层等);“包装”;一个协议在另一个协议中?
我正在设计一个通过各种连接类型/传输机制与设备通信的应用程序。例如,USB虚拟COM、串行端口和TCP连接。在每种情况下,我都将使用通过底层传输的自定义/设备特定应用协议(例如发送命令、接收数据等)。对于到目前为止提到的情况,我似乎很清楚,“应用程序协议”是专有的命令/响应协议,TCP连接(或串行端口或“任何神奇地传输字节的东西”)是传输协议 但是,谈论中间协议的最佳方式是什么,例如,当将上述专有应用层协议封装在另一个应用层协议(如SSH、HTTP或SSL/TLS)中时 建议:Network programming 什么是合适的术语(应用层、传输层等);“包装”;一个协议在另一个协议中?,network-programming,terminology,network-protocols,Network Programming,Terminology,Network Protocols,我正在设计一个通过各种连接类型/传输机制与设备通信的应用程序。例如,USB虚拟COM、串行端口和TCP连接。在每种情况下,我都将使用通过底层传输的自定义/设备特定应用协议(例如发送命令、接收数据等)。对于到目前为止提到的情况,我似乎很清楚,“应用程序协议”是专有的命令/响应协议,TCP连接(或串行端口或“任何神奇地传输字节的东西”)是传输协议 但是,谈论中间协议的最佳方式是什么,例如,当将上述专有应用层协议封装在另一个应用层协议(如SSH、HTTP或SSL/TLS)中时 建议: 它的名称(它与哪
- “应用程序协议”(具有误导性,因为实际上有一个更高级别的协议更适合使用此名称)
- “传输协议”(可能有误导性,因为下面会有一个较低级别的协议,如TCP,这通常是这个名称让我想到的)
- “封装”或“封装协议”
- “包装协议”(与上文类似)
- “底层协议”(含糊不清——可能还有更多的底层协议……TCP、IP、以太网等)
- “协议”(太笼统了?)
根本没有理由将其与任何OSI层相关联。OSI模型是针对OSI协议套件的,该协议套件已经失效,因此该模型也是如此。不幸的是,几代老师都把它当作一条基本的自然法则来教。事实并非如此。例如,如果您使用TCP/IP,它有自己的层模型,甚至OSI人员也承认,没有人知道表示层中发生了什么。我将更新这个问题,将SSL/TLS标记为应用程序协议。我想我听过人们随便把它当作一种传输协议来谈论,但从功能上讲,这毫无意义。“隧道”似乎是另一个合理的竞争者(它符合SSH的术语),尽管它可能误导人们想到/VPN的东西。这不是误导,它是另一个确切的例子。这只是在另一层挖隧道;我只是想说这是不同的。此应用程序的用户可能具有科学知识/技术知识,但不一定熟悉计算机和网络系统的内部工作原理,因此我尽最大努力避免任何可能使他们混淆的事情。也许在这种情况下,我不应该试图通过术语来实现这一点;默认情况下隐藏高级选项可能更有意义。谢谢你的建议。代替其他人,我将把这个标记为可接受的答案。