0

我知道应用层有很多协议,

问题更多是关于什么时候可以不关注他们中的任何一个,

假设我有一个客户端和一个服务器,客户端应用程序应该向该服务器发送一些数据,例如,关于一个人使用该应用程序的一些统计数据,

现在,为了一个好的编程实践,是否可以只打开一个 tcp 套接字并按原样发送数据而无需遵循协议的开销,或者我是否破坏了 osi 模型,我应该遵循应用层的协议之一?我是在这里重新发明轮子还是一个实用的解决方案?

4

1 回答 1

0

总是有一个应用层协议。如果您的概念是“在某个 TCP 或 UDP 端口上将一些统计信息作为纯十进制数字”传输到服务器,那么这就是您的(隐式)应用程序协议。该协议使服务器能够接收数据并为数字分配含义。

OSI 模型是一种模型,而不是法律。在您的应用层协议中,您可以为所欲为。

但是,预测服务的未来扩展可能很有用,这样您就可以例如value_a:data\0value_b:data在一个流/数据报中传输,而不必使客户端和服务器版本保持完美同步(服务器不期望所有值而只是忽略未知值) . 当然,您也可以每次都使用不同的服务器端口——您的选择。

于 2018-04-18T04:59:14.503 回答