蜂窝网络中的 RLC 协议。有没有办法控制应用程序内使用的模式?

RLC protocol in cellular networks. Is there a way to control the mode used from within an app?

我正在开发一个必须在移动网络上运行良好的 VoIP 应用程序。它可以容忍数据包丢失,但这是不好的部分:我发现在移动网络上,从 GSM 到 LTE 的所有标准,设备和基站之间都使用 RLC 协议。 RLC 可以在两种模式下运行:已确认和未确认。我在实验中观察到的确认模式意味着如果在数据包传输过程中有任何位错误,它将被重新传输直到有 none,从而一直保持发送 queue它被重新传输。在unacknowledged mode下,一个有bit errors的包被直接丢弃,这就是我需要的。

所以...有什么方法可以控制用于我的应用程序数据包的 RLC 模式,或者所述模式是由网络配置的吗?我已经尝试了 IP header 中的 "service type" 字段,但似乎没有成功。

我已将 "android" 标记放在这里,但理想情况下,我对适用于所有主要移动操作系统的解决方案感兴趣。

由于两个原因,无法从设备执行此操作:

1 - 这是一个网络配置属性,用于执行运营商想要的 QoS。所有数据服务将 运行 在 RLC AM 上共享同一频道。具有专用 QoS(如更高优先级和 RLC UM)的信道通常 运行 用于运营商的 phone 服务 (VoLTE)。

2 - 即使设备可以选择它的首选模式,那也是调制解调器/芯片组使用的低级配置。这个,这个是不提供给Android开发者的(RLC在PDCP下,在IP层下)

但是,我认为您的 VoIP 性能不会因此而受到影响 属性。延迟还取决于其他因素,例如网络负载和无线电条件。 LTE 网络中的用户数量越多,延迟就越高。小区覆盖最差,延迟最差。

在 speedtest.net 上试一试以检查延迟。 30ms左右应该没问题。

干杯。