Пропускная способность сети для Spyserver.

Автор: Administrator вкл. . Опубликовано в RTL-SDR

После настройки сервера spyserver хотелось бы заострить внимание на скорости потока данных от него к клиентскому приложению.

 На скриншотах ниже видны части окошек трех программ:

1 – Сеанс SSH в PuTTY, в котором видна нагрузка на процессор OrangePi One.

2 – Сеанс Winbox к MikroTik-у, через который идет трафик от сервера. Своего рода измерительный прибор скорости в LAN.

3 – Окно SDRSharp v1700 в роли клиентского приложения. Подключение одной копией программы, т.е. одним клиентом (а можно несколькими).

Измерения проводились в режиме «сжатия», т.е. пункт «Use full IQ» галочкой не отмечен.

И получилось, что при любых значениях ширины полосы обзора, нагрузка на процессор и скорость передачи данных в LAN одинаковы. Т.е. при ширине полосы 3,9 кГц скорость в LAN составила около 300 кбит/сек, а нагрузка на процессор примерно 36%. Ровно те же значения получены что на 500 кГц, что на 1МГц ширины полосы обзора, и даже на 2МГц. На скриншотах ниже показал 3,9 кГц, 500 кГц и 2МГц.

Результаты просто фантастичны в сравнении с rtl_tcp. Такие показатели на 100% решают вопрос узкого канала интернет-соединения и идеальны для использования такого сервера с приемником в местах без «толстого» проводного интернета (за городом).

 

 

 

 

 

 

 

Интереса ради, пункт «Use full IQ» отмечу галочкой и посмотрю на результаты. Нагрузка на процессор тут оказалась немного меньше, чем в режиме сжатия. Скриншотов покажу парочку, а все самое интересное – в табличке ниже.

 

 

 

 

 

 

Bandwidth, MHz ВКЛ Full IQ, Мбит/с, ~ ВЫКЛ Full IQ, Мбит/с, ~
3,906 kHz 0,1 0,3
7,812 kHz 0,2 0,3
15,625 kHz 0,33 0,3
31,625 kHz 0,7 0,3
62,5 kHz 1,3 0,3
125 kHz 2,5 0,3
250 kHz 5,1 0,3
500 kHz 10,1 0,3
1 MHz 20,2 0,3
2 MHz 40 0,3

 

 

Результаты со включенным пунктом «Full IQ» сопоставимы с результатами для rtl_tcp. Возможно есть погрешность в «измерительных приборах» - в первом случае Mikrotik, а во втором – диспетчер задач Windows 8.1 x64. Переделывать измерения rtl_tcp посредством микротика у меня как-то нет желания, да и смысла особо не вижу. Для простоты дальнейшего восприятия просто приравняем показания rtl_tcp к показаниям spyserver со включенным пунктом «Full IQ».

Ну, а режим «сжатия» действительно впечатляет! Может взглянем на сколько клиентов хватит процессора такого сервера?

Количество клиентов, допустимых к подключению задается в файле конфигурации.

Три клиента нагружают процессор на 60%, четыре - на 70%, а пять – на 81%. Т.е. после подключения первого клиента нагрузка на процессор составляет около 36%, а при подключении каждого последующего клиента возрастает примерно на 10%.

5 клиентов, одновременно слушающих приемник – весьма неплохо для одноплатного компьютера OrangePi One, и скорее всего, он потянет и 6, а, может, и 7.

Со скоростью потока данных от сервера получается весьма простая арифметика – один клиент потребляет около 300 кбит/сек трафика. Каждый следующий клиент потребляет еще около 300 кбит/сек трафика. Таким образом, для пяти клиентов скорость отдачи от сервера составит примерно 1,2 Мбит/сек.

 

 

 

 

 

 

 

 

 

 

При подключении всего лишь одним клиентом можно перестраиваться по частоте от 0 до 30МГц (согласно параметров в файле конфигурации сервера), а также управлять уровнем усиления приемника (ползунок Gain).

Но как только клиентов становится два и более, то диапазон для перестройки частоты сокращается до ширины в 2 МГц, где центральной частотой является частота, которую прослушивал первый клиент в момент подключения второго.  Передвижение ползунка Gain становится невозможно, и он «замерзает» в последнем положении, которое было до подключения второго клиента. Для третьего и следующих клиентов все ровно также, как и у второго и первого.

Т.е. слушаете вы на 7 МГц некий сигнал, и подключается кто-то еще. С этого момента можно перестроиться от 6 до 8 МГц, регулировать уровень усиления невозможно.

Сей факт наводит на мысли о том, что свисток RTL-SDR под управлением spyserver всегда «молотит» с шириной полосы обзора в 2МГц. Отсюда всегда одинаковые показатели скорости (300 кбит/сек) – что для 125 кГц, что для 2МГц ширины обзора панорамы. И это также объясняет отсутствие глюка с наложением сигналов при ширине полосы обзора менее 1МГц, про который я писал ранее.

На скриншоте в нижнем окошке (второй клиент) видна нижняя граница для перестройки частоты – это 6.099 МГц.

 

 

А верхняя – 8.099 МГц.

 

 

Также к серверу можно подключаться одновременно и в режиме сжатия и в режиме Full IQ. Нагрузка на процессор будет напрямую зависеть от ширины полосы обзора для режима Full IQ.

Т.е. вот, на скрине два клиента в режиме сжатия и нагрузка на процессор сервера 50%:

 

 

А теперь у клиента справа включаем Full IQ с полосой обзора в 125кГц. Нагрузка на процессор сервера стала 57%.

 

 

Еще одна особенность работы в режиме сжатия - визуально уровень сигналов становится больше. Вероятно, это как-то связано с алгоритмом обработки во время сжатия. В целом не сильно критично, но первое время это вызывало некоторое недоумение. С чего вдруг сигналы так поперли? Антенна наконец-то заработала?

Плюс, в режиме сжатия панорама ползет медленнее и при записи эфира в режиме IQ (RAW, Baseband) запишется не вся выбранная полоса обзора, а только в ширине аудио-фильтра. Такова плата за 300 кбит/сек.

 

 

На скриншоте ниже вид панорамы в режиме без сжатия – «Full IQ».

 

 

Теперь «Full IQ» отключен и виден явный перепад в уровне сигнала в большую сторону.

 

 

Снова включил «Full IQ». Уровень сигнала «упал».

 

 

 

 

 

 

---------------------------------------------------

А ведь еще можно использовать неродной клиент для spyserver – SDR Console. Что там с пропускной способностью?

Варианты выбора ширины полосы обзора такие:

 

Несколько скриншотов и результаты замеров скорости в табличке ниже:

 

 

 

 

SDR Console  
Bandwidth Мбит/с, ~
18,75 kHz 0,3
37,5 kHz 0,7
75 kHz 1,3
150 kHz 2,5
300 kHz 5
600 kHz 10
1,2 MHz 20
2,4 MHz 40

 

 

Получились почти те же значения скорости, что и у SDRSharp в режиме «Full IQ», а вот в режиме сжатия SDR Console к spyserver подключаться не умеет. Так что, однозначно, родной клиент в выигрыше.

 

 

 

 

Как настроить Spyserver писал тут.

Другие нюансы Spyserver описаны тут.

Про отображение степени загрузки процессора в Linux писал тут.

SPY Server на Linux ARM и Airspy HF+.

 

Прочие статьи про RTL-SDR.