我正在使用两个 GPRS 调制解调器(Siemens TC65)开发基于客户端/服务器的系统。应用程序从客户端向服务器发送相对较小的帧(每个 128 字节),反之亦然。最初我使用 UDP 连接(使用 UDPDatagramConnection),但后来我决定更改为 TCP 连接(使用 SocketConnection 和 ServerSocketConnection)并比较两者之间的延迟。
我在一天中的同一时间使用完全相同的应用程序(只是更改了连接方法)进行了 40 次测试,彼此间隔大约 4 秒测量了往返时间,以确保流量相似,令人惊讶的是,我得到了以下结果:
我原以为 UDP 会更快,但 TCP 平均比 UDP 快两倍。我很难证明这一点。我读过这样一个 UDP vs TCP 的线程,它快多少? 他们提供了帮助,但我不确定 Neagle 的算法与它有什么关系,因为我在发送下一帧之前等待每一帧到达。
我会提出任何证明这些结果合理的提示。另外在GPRS下进行连接有什么影响吗?