lac и cid что это
Как это работает: координаты базовых станций. Часть 2
В первой части мы уже рассмотрели, откуда сервис местонахождения базовых станций берет данные и что именно показывает вам. Во второй части мы рассмотрим практическое использование сервиса, посмотрим, какие параметры он использует и где их брать.
Базовая станция сотовой сети
Параметры базовой станции
Зайдя на страницу сервиса, вы видите форму, предлагающую указать параметры базовой станции: MCC, MNC, LAC/TAC, CID/SAC/ECI. Все эти параметры обязательны для того, чтобы найти, где расположена базовая станция.
Форма ввода параметров базовой станции
MCC — это код страны, Mobile Country Code. Номер, состоящий из трех цифр, уникальный для каждой из стран мира.
Вы можете ввести этот код самостоятельно (ручной ввод) или воспользоваться встроенным справочником, в котором есть коды абсолютно всех стран.
MNC — код сотовой сети, Mobile Network Code. Номер, состоящий из двух цифр, присваивается каждой сотовой сети. Является уникальным кодом сотового оператора внутри страны. То есть в разных странах коды сотовых сетей могут повторяться.
Встроенный справочник содержит коды всех сотовых сетей России. Коды операторов «большой тройки» также применимы к Белоруссии и Украине.
Если объединить MCC и MNC, то получится номер мобильной сети PLMN — Public Land Mobile Network. Например, для сети Билайн (MNC — 99) в России (MCC — 250) номер PLMN — 25099.
CID / SAC / ECI — идентификатор соты (Cell ID) в GSM, код зоны обслуживания (Service Area Code) в UMTS и идентификатор соты E-UTRAN (E-UTRAN Cell Identifier) в LTE-сетях. Для GSM и UMTS представляет собой число размером 16 бит (от 0 до 65535), для LTE — число размером в 28 бит, т.е. от 0 до 268435455. Этот номер однозначно указывает на базовую станцию, он уникален внутри каждой зоны обслуживания (LAC или TAC) каждого оператора в стране.
Строго говоря, ECI уникален в пределах сети оператора даже без учета зоны обслуживания, так что некоторые геолокационные сервисы найдут базовую станцию сети LTE, даже если вы введете неверный TAC, например, 0.
Собирая все эти параметры вместе, мы получаем комбинацию чисел, однозначно определяющую базовую станцию по всему миру:
MCC—MNC—LAC—CID.
Например, базовая станция оператора МТС (код оператора — 01) с идентификатором соты 1384, расположенная в регионе с кодом местности 114 республики Беларусь (код страны — 257) будет кодироваться такой последовательностью чисел: 257-01-114-1384.
Мониторинг сотовых сетей
Теперь немного о том, где мы можем достать все эти параметры, чтобы посмотреть, где находится базовая станция (вернее, как мы знаем из предыдущей части статьи, где может находиться абонент, зарегистрированный на базовой станции).
Если вы являетесь счастливым обладателем смартфона на базе ОС Android, то лучшими приложениями, которые покажут всю необходимую информацию являются бесплатные G-MoN и G-MoN Pro. Можно также использовать комбинацию *#*#4636#*#* для запуска инженерного меню, в котором также будет вся необходимая информация.
G-MoN (слева) и G-MoN Pro (справа)
Лично мне больше нравится именно версия Pro, т.к. позволяет видеть информацию сразу о двух сетях сотовой связи в двухсимочном смартфоне.
Для владельцев iPhone-ов таких приложений, насколько мне известно, нет. Но вы можете посмотреть нужные параметры в инженерном меню, попасть в которое можно, набрав комбинацию *3001#12345#*
Так вот, если посмотреть на экран любого из приложений (или на экран инженерного меню), то для начала мы увидим параметры сети оператора связи — NET в G-MoN или PLMN в G-MoN Pro. Как вы уже знаете, PLMN представляет собой два параметра — 3 цифры MCC и и 2 цифры MNC, записанные вместе.
Например, на скриншоте G-MoN выше мы видим сеть 26203, т.е. MCC здесь будет — 262, а MNC — 03. Вводим эти данные на сайте и видим, что разработчик приложения, скорее всего, живет в Германии, а воспользовавшись этим списком, понимаем, что он использует оператора связи E-Plus.
Дальше нам нужны параметры LAC (825 на скриншоте) и CID (23395 на скриншоте). Вводим все это на сайте и получаем примерное местонахождение разработчика, когда он сделал этот скриншот.
Местонахождение базовой станции 262-03-825-23395
Чтобы определить место еще точнее, можно последовательно ввести данные всех соседних вышек, которые показаны в разделе Neighbour cells detected программы G-MoN: 40055, 7655, 34105, 39075. Но не забывайте обращать внимание на параметр RXL в крайнем правом столбце, чем он меньше (больше в абсолютном значении), тем хуже уровень приема базовой станции, а значит, тем дальше она находится от абонента.
Соседние базовые станции
На скриншоте выше мы отобразили все базовые станции (вернее, усредненные местоположения абонентов в секторе), которые видит телефон разработчика программы G-MoN. Как видим, базовая станция, на которой абонент зарегистрирован в данный момент (в момент снятия скрина), находится посередине между соседними базовыми станциями, причем, чем хуже сигнал (меньше RXL), тем дальше базовая станция находится от абонента.
Вместо заключения
Я думаю, не надо объяснять, что таким образом вы можете узнать параметры только своего телефона, так что следить за другими людьми у вас не выйдет. Если, конечно, у вас нет доступа к сети SS7 (подробнее об этом можно узнать в исследовании Positive Technologies), но это уже совсем другая история.
А пока пользуйтесь сервисом и не забывайте, что сайт живет на ваши донаты.
Термины используемые в сотовой связи
В соответствии с решениями ГКРЧ о выделении полос радиочастот для радиоэлектронных сетей связи, на территории Москвы и Московской области сейчас разрешены к использованию следующие полосы частот и стандарты.
Диапазон частот нисходящего направления DwLink МГц
Диапазон частот восходящего направления UpLink МГц
Номер рабочей полосы (Band)
Для стандарта Wi-Fi на территории РФ разрешена работа в следующих диапазонах частот:
• Wi-Fi 2.4 ГГц (802.11b/g/n/ax) диапазон 2400—2483,5 МГц
• Wi-Fi 5 ГГц (802.11a/h/j/n/ac/ax) диапазоны 5150 — 5350 МГц и 5650 — 6425 МГц
Абсолютный номер радиочастотного канала (Absolute Radio Frequency Channel Number) связи стандарта GSM, на котором транслируется канал BCCH базовой станции.
ARFCN определяет пару частот, используемых для приема и передачи информации
Уровень сигнала, принимаемого от данного ARFCN
Mobile Country Code – мобильный код страны. MCC определяет страну, на территории которой действует сеть оператора сотовой связи
Mobile Network Code – код мобильной сети. MNC в комбинации с MCC используется для однозначной идентификации сети сотовой связи
Local Area Code – код локальной зоны. Локальная зона представляет собой совокупность базовых станций, обслуживаемых одним контроллером базовых станций (BSC)
CellID – идентификатор соты. Определяет базовую станцию и ее сектор, которые обслуживают данный ARFCN
Метка времени, определяющая момент обнаружения данного ARFCN
Cell Reselection Hysteresis – гистерезис уровня приема сигнала, требующийся для перевыбора соты. CRH служит для предотвращения нежелательного переключения абонентов, находящихся у границы локальной зоны (LA – Location Area), на соты соседней LA
Cell Reselection Offset – смещение критерия перевыбора соты. CRO используется для регулировки предпочтения переключения МПО абонента на соту, использующую данный ARFCN
RXLEV-ACCESS-MIN – параметр, характеризующий минимальный уровень принимаемого на МПО сигнала, при котором возможен доступ МПО к данной соте
Индикатор поддержки технологии GPRS базовой станцией, обслуживающей данный ARFCN.
В данном столбце могут быть отображены следующие значения:
– «1», если базовая станция поддерживает технологию GPRS;
– «0», если базовая станция не поддерживает технологию GPRS
Определяет значение таймера, задающего периодичность осуществления МПО абонента регулярной процедуры обновления местоположения (Location Update)
Индикатор наличия сообщения «System Information 2ter» в составе системной информации, транслируемой по каналу BCCH той соты, которая обслуживает данный ARFCN.
В данном столбце могут быть отображены следующие значения:
– «1», если сообщение «System Information 2ter» присутствует;
– «0», если сообщение «System Information 2ter» отсутствует
Список ARFCN, выделенных соте, которая обслуживает данный ARFCN
Список ARFCN, на которых транслируются каналы BCCH соседних сот. Список формируется по следующему принципу:
– для выбранных ARFCN стандарта GSM 900 отображается список ARFCN соседних сот стандарта GSM 900;
– для выбранных ARFCN стандарта GSM 1800 отображается список ARFCN соседних сот стандарта GSM 1800
Список ARFCN, на которых транслируются каналы BCCH соседних сот. Список формируется по следующему принципу:
– для выбранных ARFCN стандарта GSM 900 отображается список ARFCN соседних сот стандарта GSM 1800;
– для выбранных ARFCN стандарта GSM 1800 отображается список ARFCN соседних сот стандарта GSM 900
Абсолютный номер радиочастотного канала связи в системе UMTS (UTRA Absolute Radio-Frequency Channel Number), на котором транслируется канал BCCH базовой станции
Chip energy – уровень энергии на chip
Mobile Country Code – мобильный код страны. MCC определяет страну, на территории которой действует сеть сотовой связи
Mobile Network Code – код мобильной сети. MNC в комбинации с MCC используется для однозначной идентификации сети сотовой связи
Primary Scrambling Code – Ортогональный код
Метка времени, определяющая момент обнаружения данного UARFCN
Отношение энергии сигнала к интерференции
Signal to Interference Rate – отношение уровня сигнала к интерференции
Описание заносимых в столбец данных
Абсолютный номер радиочастотного канала связи в системе LTE (E-UTRA Absolute Radio-Frequency Channel Number), на котором транслируется канал BCCH базовой станции
Mobile Country Code – мобильный код страны. MCC определяет страну, на территории которой действует сеть сотовой связи
Mobile Network Code – код мобильной сети. MNC в комбинации с MCC используется для однозначной идентификации сети сотовой связи
Tracking Area Code – код зоны отслеживания. Зона отслеживания представляет собой совокупность зон обслуживания нескольких базовых станций стандарта LTE
Physical Cell Identity – физический идентификатор соты. Данный идентификатор используется для дифференциации сигналов разных сот
Cell Identity – идентификатор соты. Данный идентификатор определяет базовую станцию и ее сектор, которые обслуживают данный EARFCN
Ширина полосы частот данного EARFCN
Метка времени, определяющая момент обнаружения данного EARFCN
Уровень сигнала, принимаемого от данного EARFCN
Описание заносимых в столбец данных
Номер частотного канала
Название точки доступа на данном частотном канале
MAC адрес точки доступа на данном частотном канале
Как узнать координаты базовой станции GSM по MCC, MNC, LAC и CellID (CID).
Published 22.04.2015 by Johhny
Какие данные необходимы для локализации БС?
Для того, чтобы найти координаты сектора базовой станции необходимо знать 4 параметра:
Где взять эти данные?
Откуда берутся координаты базовой станции?
Поиск координат базовых станций проводится в базах данных Google и Yandex, которые предоставили такую возможность. Следует отметить, что в результате поиска мы получаем не точное местоположения вышки, а приблизительное. Это то местоположение, в котором регистрировалось наибольшее количество абонентов, передавших информацию о своем местоположении на серверы Google и Yandex. Наиболее точно местоположение по LAC и CID определяется при использовании функции усреднения, при которой вычисляются координаты всех секторов (CellID) одной базовой станции, а затем вычисляется усредненное значение.
Как работать с CellIDfinder?
Для того, чтобы начать работать с сервисом поиска местоположения базовых станций CellIdfinder необходимо установить на смартфон любой нетмонитор. Вот один из неплохих вариантов. Включаем скачанное приложение и смотрим необходимые параметры.
В данном случае в окне нетмонитора мы увидели:
MCC = 257 (Белоруссия)
MNC = 02 (МТС)
LAC = 16
CID = 2224
Вводим эти параметры в форму поиска на главной странице. Т.к. LAC и CID могут выдаваться нетмонитором как в десятичном, так и в шестнадцатеричном виде, то форма поиска имеет автозаполнение для LAC и CID во втором виде. Выбираем «Данные Google», «Данные Yandex» и, если необходима высокая точность, «Усреднение». Нажимаем кнопку «Найти БС».
В результате получили координаты для данного сектора базовой станции. Более того координаты по базам Google и Yandex практически совпали, а значит можно предположить, что БС построены на карте достаточно точно.
Как определить местоположение по сетям сотовой связи (Cell ID)
Карта Участники OpenStreetMap
Существует множество способов определения местоположения, такие как спутниковая навигация (GPS), местоположение по беспроводным сетям WiFi и по сетям сотовой связи.
В данном посте мы попытались проверить, насколько хорошо работает технология определения местоположения по вышкам сотовой связи в городе Минске (при условии использования только открытых баз данных координат передатчиков GSM).
Принцип действия заключается в том, что сотовый телефон (или модуль сотовой связи) знает, каким приемопередатчиком базовой станции он обслуживается и имея базу данных координат передатчиков базовой станции можно приблизительно определить своё местоположение.
Как указано на странице Cell ID, открытых баз данных с координатами передатчиков сотовой связи не так уж и много. Например, это OpenCellID.org, содержащая 2 611 805 передатчиков (13042 из них в Беларуси) и openbmap.org, содержащая 695 294 передатчиков.
Ниже приведен скриншот с обозначенными передатчиками в западной части Минска. Как видно число базовых станций не равно нулю, что вселяет оптимизм и возможный положительный исход эксперимента.
Карта Участники OpenStreetMap
Теперь немного о том, что такое передатчик в понимании OpenCellID и каким образом наполняется база данных OpenCellID. Эта БД наполняется различными способами, наиболее простой — это установка на смартфон приложения, которое записывает координаты телефона и обслуживающую базовую станцию, а затем отсылает на сервер все измерения. На сервере OpenCellID происходит вычисление приблизительного местоположения базовой станции на основании большого числа измерений (см. рисунок ниже). Таким образом, координаты беспроводной сети вычисляются автоматически и являются очень приблизительными.
Карта Участники OpenStreetMap
Теперь перейдем к вопросу о том, как использовать эту базу данных. Есть два варианта: использовать сервис перевода Cell ID в координаты, который предоставляется сайтом OpenCellID.org, либо выполнять локальный поиск. В нашем случае локальный способ предпочтительней, т.к. мы собираемся проехать по 13-километровому маршруту, и работа через веб будет медленной и неэффективной. Соответственно нам необходимо скачать базу данных на ноутбук. Это можно сделать, скачав файл cell_towers.csv.gz c сайта downloads.opencellid.org.
База данных представляет собой таблицу в CSV-формате, описанном ниже:
Все сотовые модули поддерживают следующие команды: AT+CREG, AT+COPS (обслуживающая базовая станция), AT+CSQ (уровень сигнала от базовой станции). Некоторые модули позволяют узнать кроме обслуживающего передатчика также и соседние, т.е. выполнять мониторинг базовых станций с помощью команд AT^SMONC для Siemens и AT+CCINFO для Simcom. У меня в распоряжении был модуль SIMCom SIM5215Е.
Соответственно мы воспользовались командой AT+CCINFO, ее формат приведен ниже.
Мониторинг работает – можно ехать.
Маршрут пролег в западной части Минска по ул. Матусевича, пр. Пушкина, ул. Пономаренко, ул. Шаранговича, ул. Максима Горецкого, ул. Лобанка, ул. Кунцевщина, ул. Матусевича.
Карта Участники OpenStreetMap
Запись лога велась с интервалом в 1 секунду. Выполняя преобразование CellID в координаты, выяснилось что 6498 обращений к базе данных OpenCellID были результативными, а 3351 обращений не нашли соответствий в БД. Т.е. hit rate для Минска составляет примерно 66 %.
На рисунке ниже показаны все передатчики, которые встречались в логе и были в БД.
Карта Участники OpenStreetMap
На рисунке ниже показаны все обслуживающие передатчики, которые встречались в логе и были в базе данных. Т.е. подобный результат можно получить на любом сотовом модуле или телефоне.
Карта Участники OpenStreetMap
Как видим, в один из моментов нас обслуживал передатчик, находящийся за транспортной развязкой на пересечении ул. Притыцкого и МКАД. Скорее всего, это загородная базовая станция, обслуживающая абонентов на расстоянии в несколько километров, что ведет к значительным ошибкам в определении местоположения по Cell ID.
Поскольку наш SIMCom SIM5215Е в каждый момент времени показывает не только обслуживающий передатчик, но также соседние и уровни сигнала от них, то попробуем рассчитать координаты аппарата на основании всех данных, имеющихся в конкретный момент времени.
Расчет координат абонента будем выполнять как взвешенное среднее координат передатчиков:
Latitude = Sum (w[n] * Latitude[n] ) / Sum(w[n])
Longitude = Sum (w[n] * Longitude[n]) / Sum(w[n])
Как известно из теории распространения радиоволн, затухание радиосигнала в вакууме пропорционально квадрату расстояния от передатчика до приемника. Т.е. при удалении в 10 раз (например, с 1 км до 10 км) сигнал станет в 100 раз слабее, т.е. уменьшится на 20 дБ по мощности. Соответственно вес при каждом слагаемом определяется как:
w[n] = 10^(RSSI_in_dBm[n] / 20)
Здесь мы допустили, что мощность всех передатчиков одинаковая, это допущение ошибочно. Но ввиду отсутствия информации о мощности передатчика базовой станции приходится идти на заведомо грубые допущения.
В результате получаем более подробную картину местоположений.
Карта Участники OpenStreetMap
По итогу маршрут оказался неплохо прочерчен за исключением выброса в сторону развязки на МКАД, по ранее описанной причине. Кроме того, со временем база данных координат будет наполнятся, что также должно повысить точность и доступность технологии определения местоположения по Cell ID.
Спасибо за внимание. Вопросы и комментарии приветствуются.
Как это работает: координаты базовых станций
Этой статьей я открываю серию публикаций, в которых я буду описывать, как именно работают сервисы, представленные на этом сайте. И ниже я опишу, откуда сайт знает местонахождение базовых станций операторов сотовой связи, какова точность этого местоположения, какие параметры нужно знать для того, чтобы воспользоваться сервисом и где их взять.
Местонахождение базовых станций
Для начала нужно понимать, что сервис не знает и не может знать точное местоположение базовых станций, этой информации в свободном доступе нет, т.к. она является коммерческой тайной. Вместо этого, сервис показывает примерное местоположение сектора, т.е. усредненные координаты места, в котором наибольшее количество абонентов регистрировалось на искомом секторе.
Например, если поискать на сайте базовую станцию белорусского оператора МТС (https://xinit.ru/bs/257-01-114-1384), то мы увидим красный значок на улице Аладовых в Минске.
Базовая станция белорусского МТС (LAC: 114, CellID: 1384)
Но этот значок вовсе не означает, что базовая находится в этом месте. Почти наверняка, сама базовая станция будет стоять где-нибудь рядом, но не здесь. Однако, вокруг этого места находились люди, мобильные телефоны которых регистрировались в секторе с параметрами MCC, MNC, LAC и CellID, которые мы ищем. То есть мы не нашли базовую станцию, но мы нашли зону ее действия, что для геолокации, т.е. определения местонахождения абонентов по мобильному телефону, даже лучше, т.к. местоположение самой базовой станции не так много говорит о том, где находятся абоненты, ее использующие.
Также я хочу, чтобы вы понимали, что опция отображать зону действия базовых станций и параметр Радиус зоны действия в метрах являются условными и нужны для вашего удобства. Сервис не знает настоящие зоны действия базовых станций, а они могут варьироваться от пары десятков метров внутри торговых центров до десятков километров в малонаселенной сельской местности.
Зона действия базовой станции
Для получения информации о местонахождении секторов базовых станций сайт использует API геолокационных сервисов Google и Яндекс, а также открытые базы данных Mylnikov.org и OpenCellID. Сайт усредняет полученные значения от всех сервисов, используя весовые коэффициенты для повышения точности (самыми точными на данный момент являются данные Яндекс и Google) и отображает полученные координаты красной меткой. Однако, вы можете посмотреть на данные каждого сервиса в отдельности, нажимая на ссылки показать на карте.
Местонахождение сектора от каждого из сервисов отдельно
Как видно из скриншота, усредненное значение находится гораздо ближе к данным Google, чем к данным Mylnikov.org и OpenCellID. Если бы у Яндекса тоже были данные об этом секторе, красная метка стояла бы одинаково близко от координат Яндекса и Google. Таким образом удается практически исключить случаи отображения неверного местоположения секторов.
За мной следят?
А теперь я отвечу на вопрос, который, если вы дочитали до этого места, должен интересовать вас больше всего: откуда у всех этих сервисов данные о местонахождении мобильных телефонов, которые регистрировались на разных базовых станциях.
Big brother is watching you
Тут все просто — за нами, действительно, следят. Смартфоны на базе операционных систем Android и iOS, приложения Гугл- и Яндекс-карт (и, вполне вероятно, другие приложения от «отечественного Гугла») постоянно мониторят местонахождение телефона, собирают данные о расположенных рядом базовых станциях, WiFi-точках доступа, bluetooth-устройствах и отправляют все это вместо с координатами устройств на свои сервера вместе с местоположением телефона (только не думайте, что отключение GPS вас как-то оградит).
Однако, не все так страшно. Данные собираются обезличенно и обобщенно, только для того, чтобы вычислить местонахождение секторов и потом показывать таргетированную по месту рекламу, а также предоставлять сервис навигации, когда GPS-сигнал пропал или нестабилен. Так что довольно самонадеянно полагать, что Google или даже Яндекс хоть что-то знает конкретно о вас (если вы сами ничего не сообщили, заведя, например, аккаунт в gmail).
Это еще не конец
Статья уже получается слишком длинной, так что вопросы конкретного использования сервиса на этом сайте, разбор параметров базовой станции (MCC, MNC, LAC, CellID) и приложения для их получения, я разберу во второй части. А пока, пользуйтесь сервисом, и не забывайте, что сайт живет на ваши донаты.