Как устранить возрастающую задержку при отправке данных через EDGE?

Вопрос к гуру клиент-серверных приложений для мобильных сетей.
Eсть клиент-серверное приложение под андроид. Клиент под Android с периодичностью раз в 100 ms отправляет UDP пакет (около 100 байт) на сервер. Одним полем данных пакета является timestamp. Время на клиенте и сервере синхронизированно. В качестве сети используется EDGE мобильного оператора. На сервере каждую секунду сравниваем timestamp полученный от клиента с текущим временем и получаем следующую картину:

Время клиента 17:30:01, время сервера 17:30:01
Время клиента 17:30:02, время сервера 17:30:02
Время клиента 17:30:03, время сервера 17:30:04
Время клиента 17:30:04, время сервера 17:30:05
Время клиента 17:30:05, время сервера 17:30:06
Время клиента 17:30:06, время сервера 17:30:07
Время клиента 17:30:07, время сервера 17:30:08
Время клиента 17:30:08, время сервера 17:30:11
Время клиента 17:30:09, время сервера 17:30:11
Время клиента 17:30:10, время сервера 17:30:11
Время клиента 17:30:11, время сервера 17:30:20
Время клиента 17:30:12, время сервера 17:30:20
Время клиента 17:30:13, время сервера 17:30:20
Время клиента 17:30:14, время сервера 17:30:21
Время клиента 17:30:15, время сервера 17:30:22
Время клиента 17:30:16, время сервера 17:30:23
Время клиента 17:30:17, время сервера 17:30:24
Время клиента 17:30:18, время сервера 17:30:25
Время клиента 17:30:19, время сервера 17:30:26
Время клиента 17:30:20, время сервера 17:30:27
Время клиента 17:30:21, время сервера 17:30:28

После возникновения лагов на 8й и 11 секунде пакеты начинают передаваться с 20й секунды. В итоге получаем статическую задержку в получении пакетов в 7 секунд. При последующем возникновении лагов эта задержка существенно возрастает. Притом очередь исходящих сообщений формируется на клиенте, т.к. если клиент отключить от сети запоздавшие пакеты приходить не будут. Ищу ответ как сделать , чтобы сгенерированные пакеты во время лага не отправлялись в сети или не копились в буфере. Нужно получать максима Пробовал изменять значение SO_SNDBUF в опциях сокета на клиенте вплоть до нуля, но эффекта небыло.
  • Вопрос задан
  • 353 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы