Пропускная способность для Android Bluetooth - PullRequest
3 голосов
/ 18 октября 2011

Для проверки пропускной способности я изменил пример чата Bluetooth.

  1. Я предоставил кнопку «Отправить» в пользовательском интерфейсе, которая отправляет некоторые предопределенные номера. байтов к сокету сервера и ожидает подтверждения

  2. ServerSocket ожидает какую-то строку и, как только получает данные, отвечает, отправляя подтверждение.

Здесь пропускную способность для этого соединения я рассчитал следующим образом.

  1. Я записываю время начала при отправке данных.

  2. ПОЛУЧЕНИЕ подтверждения Я записываю время окончания.

  3. Таким образом, пропускная способность будет (размер отправленных данных + размер полученного подтверждения) / затраченное время.

Результаты:

отправка данных (КБ) ------------------- Пропускная способность (килобит в секунду)

1KB                         ~200Kbps

5KB                         ~560Kbps 

10KB                        ~688Kbps

50KB                        ~512Kbps

По некоторым данным, полученным из приложения. Поведение таково, что при низких данных, таких как 1 КБ или 5 КБ, пропускная способность меньше. Увеличивается примерно до 40 КБ или снова после 50 КБ или около того начинает уменьшаться. Я вижу, что на принимающей стороне происходит сборка мусора, это увеличивает задержку.

Я хочу знать, правильное ли это поведение. почему при меньших объемах данных, таких как 1 КБ или 5 КБ, пропускная способность уменьшается, а затем увеличивается Какие факты я могу рассмотреть, которые могут добавить к задержке. Теперь пропускная способность рассчитывается, когда отправитель получает подтверждение от получателя (его полный расчет туда-обратно). Могу ли я сделать это за одну поездку, как при отправке данных, и после получения всего я вычисляю пропускную способность в приемнике. Я попробовал это, но в двух телефонах была разница в миллисекундах, что давало мне неправильные результаты, иногда отрицательное значение. Пожалуйста, помогите мне понять правильное поведение.

1 Ответ

0 голосов
/ 18 октября 2011

Одним из возможных факторов является то, что Bluetooth выполняет некоторую динамическую адаптацию, которая позволяет улучшить соединение со временем и увеличить эффективную пропускную способность.

1) Адаптивное скачкообразное изменение частоты (AFH): поскольку BT использует тот же спектр 2,4 ГГц, что и Wi-Fi, вы можете иметь трафик Wi-Fi, который затормаживает некоторые каналы BT и вызывает повторные передачи. Устройства BT со временем обнаруживают помехи и постоянно согласовывают частоты, которые они используют, чтобы избежать помех.

2) Динамическая скорость передачи данных на основе качества канала - устройства BT динамически изменяют физическую скорость передачи данных, чтобы найти наилучшую пропускную способность, регулируя использование пакетов с высокой скоростью / низкой надежностью по сравнению с пакетами с более низкой скоростью / более высокой надежностью.

Эти типы алгоритмов могут привести к повышению пропускной способности с течением времени.

...