我知道应用层有很多协议,
问题更多的是关于什么时候可以不遵循任何一个,
假设我有一个客户端和一个服务器,客户端应用程序应该向该服务器发送一些数据,例如,有关使用该应用程序的人的一些统计信息,
现在,为了一个好的编程实践,可以打开一个tcp套接字并按原样发送数据,而不需要遵循协议的开销,或者我打破了osi模型,我应该遵循其中一个协议应用层? 我在这里重新发明轮子还是一个实用的解决方案?
答案 0 :(得分:0)
总有一个应用层协议。如果您的概念是将某些统计信息传输到服务器''在某个TCP或UDP端口上作为普通的十进制数''那么那就是您的(隐式)应用程序协议。该协议使服务器能够接收数据并为数字赋予意义。
OSI模型是一种模型,而不是一种法律。在您的应用程序层协议中,您可以随心所欲。
但是,预测未来的服务扩展可能会有所帮助,以便您可以例如在一个流/数据报中传输value_a:data\0value_b:data
,而不必保持客户端和服务器版本完全同步(服务器不期望所有值,只是忽略未知值)。当然,您也可以每次使用不同的服务器端口 - 您的选择。