Я разрабатываю приложение VoIP, которое должно хорошо работать в мобильных сетях. Он устойчив к потере пакетов, но вот что плохо: я обнаружил, что в мобильных сетях, во всех стандартах от GSM до LTE, между устройством и базовой станцией используется протокол RLC. RLC может работать в двух режимах: с подтверждением и без подтверждения. Подтвержденный режим, который я наблюдал во время своих экспериментов, означает, что если есть какие-либо битовые ошибки во время передачи пакета, он будет передаваться повторно до тех пор, пока их не будет, таким образом задерживая очередь отправки на все время его повторной передачи. В неподтвержденном режиме просто отбрасывается пакет с битовыми ошибками, а это то, что мне нужно.
Итак... Могу ли я каким-либо образом управлять режимом RLC, используемым для пакетов моего приложения, или указанный режим настроен сетью? Я уже попробовал поле «тип службы» в заголовке IP, но, похоже, это не сработало.
Я поставил здесь тег «android», но в идеале меня интересует решение, которое работает во всех основных мобильных операционных системах.