我的应用程序需要将视频数据从服务器逐帧发送到客户端。我在使用 TCP 或 UDP 之间摇摆不定。
从我的测试中,我发现了以下一些结果:
TCP:很容易实现。
UDP:要向客户端发送一个帧(大约 50KB),如果我为每个帧创建 1 个 UDP 包,那么发送总是会丢失帧。所以我必须把每一帧分成很多UDP包。这使我的算法更加复杂,因为 UDP 协议可能会丢失包裹并且包裹可能会乱序交付。另外,如果每个UDP包中的数据长度很大,那么很容易丢失。
我有一些疑问:
我应该为这种类型的应用程序使用 TCP 还是 UDP。
如果我想使用UDP进行更快的传输,如何确定每个包中数据的合适长度,在传输过程中不会轻易丢失?(这可能属于网络带宽)?
根据您的经验,您能估算出 TCP 比 UDP 快多少百分比?
很抱歉在帖子中有这么多问题,但在决定在我的应用程序中使用 TCP 还是 UDP 之前,我需要了解更多细节。