移动设备高效传输协议

发布于 2024-10-29 15:05:11 字数 768 浏览 2 评论 0原文

我正在开发一个具有 GPRS 数据连接的平台。我现在拥有的是基于 TCP 或 UDP 的自定义协议,我正在考虑更改它。当前状态下的设备会定期发送小块数据(假设 30 秒或 5 分钟 - 这可能而且可能会改变)。我担心的是,随着时间的推移,发送的数据将开始变得越来越复杂。我想要的是:

  • 一种在发送的信息和发送的数据大小之间具有良好平衡(尽可能好的)的协议(GPRS 需要花钱,因此发送的数据必须具有尽可能小的大小)
  • 当数据包信息发生变化时可以轻松扩展的协议

目前我的解决方案是:

  1. 自定义协议(我现在正在使用)
  2. 标准/开放协议(我听说过二进制 xml,但还没有找到明确的内容)。

限制:

  • 设备的计算能力很小,因此压缩数据是不可能的,除了 CPU 密集型方法,例如 RLE

  • 使用的语言是Python,并且关闭了很多功能(想象一下一个剥离的Python实现,只包含列表、字典、一些基本的字符串操作、异常、功能很少的sys模块、元组和其他自定义(非标准)函数)。

考虑到这些限制,通过网络传输数据的好/最佳方法是什么? (我指的是 TCP/UDP 上面使用的协议)

任何信息/提示/经验/实现都有帮助。

谢谢,

尤利安

I am working on a platform having a GPRS data connection. What I have now is a custom protocol over TCP or UDP which I'm thinking to change. The device in the current state sends small chunks of data periodically (let's say 30seconds or 5 minutes - this can, and probably will, change). My concern is that the data being sent will start to be more and more complex over the time. What I want:

  • a protocol that has a good balance (as good as possible) between information sent and size of data sent (GPRS costs money so data sent must have as little size as possible)
  • a protocol that is easily extensible when packet information changes

For now my solutions are:

  1. a custom protocol (which I'm using now)
  2. a standard/open protocol (I've heard about binary xml but haven't found something clear).

Constraints:

  • the device has little computational power so compressing data is out of the question, except for less cpu intensive methods like RLE.

  • the language used is python with a lot of features turned off (imagine a stripped python implementation containing only lists, dictionaries, some basic string operations, Exceptions, sys module with little functionality, tuples and other custom (non-standard) functions).

Given these constraints what is a good/best method for transmitting data over the network? (I'm referring to the protocol used above TCP/UDP)

Any information/hints/experiences/implementations are helpful.

Thanks,

Iulian

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ゝ杯具 2024-11-05 15:05:11

考虑到您的限制,正确编码的 JSON 听起来很合理。

  • 它相当轻量(数据大小+引号和{})
  • 它是可扩展的。您无需预先决定固定格式。添加密钥对于传输和接收来说都是微不足道的。
  • 您可以使用 eval() 获取 Python 字典(因为您的 Python 版本已被精简)。您还可以在 Python 2.5+ 中使用 simplejson ,无需任何依赖项。
  • 它是跨其他语言(JavaScript 等)进行数据交换的通用格式

Given your constraints, properly encoded JSON sounds reasonable.

  • It is fairly light-weight (size of data + quotes and {})
  • It is extensible. You don't need to decide on a fixed format up front. Adding keys is trivial for both the transmission and receiving.
  • You can use eval() to get a Python dictionary (since your version of Python is stripped down). You can also use simplejson in Python 2.5+ without any dependencies.
  • It is a common format for data exchange across other languages (JavaScript, etc)
念﹏祤嫣 2024-11-05 15:05:11

考虑到这个限制,什么是好的
(最佳)传输方法
通过网络传输数据?

不知道这意味着什么,但您应该能够使用以下命令打开 UDP 或 TCP 连接
Python 并根据需要传输数据......真正的问题是什么?

Given this constraints what is a good
(the best) method for transmitting
data over the network?

No idea what that shall mean but you should be able to open a UDP or TCP connection using
Python and transmit your data as needed...what is the real question?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文