【问题标题】:GPRS -Reliable, Fast, Guarantee CommunicationGPRS - 可靠、快速、保证通信
【发布时间】:2015-02-20 12:01:47
【问题描述】:

我最近开发了一个 GPRS 通信软件,使用 Arduino(嵌入式应用程序)和 GSM 调制解调器与网络服务器进行通信。但是我发现在客户端接收来自服务器的响应时有足够的延迟和请求被丢弃(响应超时)。

我尝试过的技术是 - TCP / UDP / HTTPS / HTTP。

在我的例子中,我们的要求是客户端和服务器之间的可靠、快速、有保证的通信。

请让我知道哪个通信堆栈将建立相同或更适合使用?

提前致谢

【问题讨论】:

  • 可靠和快速处于频谱的两端。使用 UDP 可以获得更好的带宽,但无法保证数据包的传递。这取决于您的应用程序。

标签: communication gsm gprs


【解决方案1】:

GPRS 让您可以通过 IP 直接访问 Internet。如果您在向服务器发送数据包时丢失数据包或遭受很大延迟,那么这听起来像是移动 ISP 的问题。

【讨论】:

  • 另外要记住的是 GPRS 很慢(CSD 是 9.6kbit/s 甚至 HSCSD 也只有 14.4kbit/s 上传)。连接到调制解调器的串行线会运行得更快,但发送的 IP 数据包会慢得多。您是否快速计算了您发送的数据量并查看了您的移动 ISP 支持的特定 GPRS 类别?您可能只是想在太短的时间内发送太多数据。
【解决方案2】:

正如 Ken 提到的,GPRS 将为您提供与互联网(或某些专用网络,如果适用)的 IP 连接。

在 IP 之上,您可以选择使用许多更高层的协议,其中最常见的两种可能是 UDP 和 TCP。

UDP 是“无连接”的,几乎没有提供错误检测/纠正等方式。

TCP 是面向连接的(这意味着一些信号来回发生以首先建立虚拟“连接”)。它还包括提供错误检测、错误纠正和正确的数据包传送顺序的机制。 TCP 还包括流量控制,以避免发送方过载接收方,以及拥塞控制,以避免网络过载。

有一种看法认为 UDP 比 TCP 快,但我认为这取决于具体情况 - 请查看此讨论以进一步讨论 UDP 和 TCP 之间的速度、可靠性等(通过所有高分答案):

对于您的要求,我认为基于 TCP/IP 的解决方案可能是您想要的。

您是否要在此基础上使用 HTTP 或其他协议将取决于您的解决方案,并且在某种程度上取决于个人偏好。

【讨论】:

  • 感谢您提供详细信息 - 但需要大约 2-5 秒的等待时间才能得到回复?我怎样才能减少相同的?
  • 好吧,正如 Ken 提到的,GRPS 并不快,但如果您的有效负载很小,它不应该真的那么慢。值得进行一些测试以尝试查看延迟在哪里并与其他 GPRS 设备(例如同一网络上的旧手机和不同网络上的旧手机)进行比较。如果您的消息只是偶尔发送,那么大部分延迟可能是移动设置(请参阅此链接:serverfault.com/a/573815)。 GPRS 'sessions' 空闲时超时,因此如果您只有偶尔的消息,则每次都需要重新设置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 2011-10-31
  • 1970-01-01
相关资源
最近更新 更多