?

Log in

No account? Create an account
dump -0f - /dev/mind
Я знаю Haskell, OCaml, GSM, эндофункторы и много других страшных слов
Легенда о триангуляциях в сети GSM и ее разоблачение 
14th-Nov-2006 10:10 am
Вот типичный комментарий от govorun на один из моих постов: "чисто теоретически, если можно стандартными средствами определить расстояние от БС до телефона, то по расстояниям от трех БС можно получить точные координаты аппарата, а во расстоянию от двух БС - 2 точки, в одной из которых будет находиться телефон".

Комментарий достаточно типичный - подобное мнение широко распространено на просторах интернета. Так как часть этого утверждения - сущая правда (стандартными средствами иногда можно определить расстояние от БС до телефона (тсс! ни слова о точности измерения!)), кажется, что все утверждение целиком - тоже правда. Так ли это? Давайте разберем его на части и исследуем подробнее.

UPDATE: для тех, кто в материале. Я в курсе, что существуют A-GPS, TOA, AOA, и другие страшные слова. Я в курсе, что иногда достаточно знать местоположение телефона с точностью до location area. Я в курсе, что можно послать на телефон SMS или позвонить, и при этом обновится информация о camped cell, что тоже может быть приемлимым способом "засечь" местоположение конкретного телефона для каких-то конкретных применений. Данный пост не ставит своей целью показать, что все эти способы - чушь и не могут существовать. Данный пост посвящен одной вполне конкретной легенде: что, мол, базовые станции GSM триангулируют местоположение телефона (вариант - всех телефонов в зоне покрытия) и эта возможность является стандартной функцией любой BS.

Начнем с аналогии (кто же из нас не любит начать с аналогии?). Рассмотрим такое утверждение: "поскольку при помощи ping-а можно определить расстояние от одного компьютера до другого, то по расстояниям от трех компьютеров (зная их координаты), можно получить точные координаты искомого компьютера". Не торопитесь кричать: "Бред!".

А что если мы возьмем четыре компьютера, соединим их проводами (если надо - с репитерами) по схеме "звезда" (один - в центре, три - соединены с ним), причем провода проложим строго по прямой, и обеспечим такую длину проводов, чтобы ошибка измерения времени пинга не влияла существенно на вычисление расстояния.

Сможем ли мы в таком случае определить координаты центрального компьютера, зная координаты периферийных и пользуясь только ping-ом? Сможем. Означает ли это, что подобный способ можно использовать всегда? Безусловно, нет. Во-первых, провода редко соединяют два компьютера строго по прямой, во-вторых мы как правило не знаем точных координат тех машин, которые мы пингуем, и т.п. Думаю, вы сами сможете продолжить этот список.

Теперь вернемся к исходному утверждению. Можно ли "стандартными средствами определить расстояние от БС до телефона?". Короткий и ничего не объясняющий ответ - "можно". Зададимся дополнительными вопросами:
1)Кто сказал, что это будет кратчайшее расстояние?
2)Кто занимается измерениями - базовая или телефон?
3)С какой точностью будет произведено измерение?

Ответы на эти вопросы будут такими:
Действительно, базовая станция в процессе обслуживания разговора занимается расчетом величин т.н. timing advance и передает их телефону. Телефон использует их, чтобы корректировать ход своего clock timer-а так, чтобы у него и у базовой "часы тикали одинаково". Действительно, базовая "замеряет" время прохождения сигнала от базовой до телефона, но ей абсолютно пофиг, сколько раз по пути следования сигнал отразился от зданий и т.п.

Итак, вот первая ложка дегтя: несмотря на то, что базовая измеряет время прохождения сигнала от себя до телефона, делает она это только в процессе обслуживания звонка и мы не можем рассчитать на основании этого времени расстояние от базовой до телефона по прямой. Плюс ко всему, даже в идеальных условиях TA дает точность измерения до 500 метров [1].

Едем дальше. Знает ли базовая, сколько телефонов находятся в зоне ее покрытия в режиме ожидания и каково время прохождения сигнала до них? Нет и нет.

Знает ли телефон, какие базовые находятся в "зоне слышимости" и каково время прохождения сигнала до них? Да и нет. Телефон может измерить уровень сигнала базовой (и занимается этим все время), но он не знает/не может измерить величину затухания сигнала.

Даже если телефон мог бы измерить уровень затухания и/или время прохождения сигнала до соседних базовых, мог бы он сам вычислить свои координаты? Нет, т.к. он не знает координат базовых.

О! Идея! Раз базовые (или BSC - не суть важно) "знают" свои координаты и "знают", какова мощность их передатчиков, а телефон "знает", насколько хорошо он их "слышит", давайте каким-то образом сведем эти данные в одну точку, и там проведем расчет координат.

Допустим, в SIM-карте телефона будет специальный applet, которых по сигналу извне (или с какой-то периодичностью) будет передавать по RACH пакетик, в котором будут CellID и RxLevel соседних базовых, а BSC будет получать эти пакетики, и на их основании высчитывать координаты телефона и передавать их дальше, какому-то выделенному серверу (для простоты, назовем его LBS), который будет хранить координаты и при нужде отдавать другим системам. А если какой-то телефон надумает позвонить или принять звонок, BSC дополнительно скорректирует уже имеющиеся координаты с учетом TA.

Смотрите, мы построили систему, которая по запросу к LBS-серверу может отдать нам координаты произвольного телефона в этой GSM-сети (при условии наличия в его SIM-карте нужного нам applet-а). Казалось бы, победа?

А теперь давайте посчитаем, что нам пришлось (пусть и умозрительно) модифицировать в обычной GSM Phase 2+ сети, чтобы получить такой результат:
1)Добавить в SIM-карту applet
2)Модифицировать все BSC и/или BS
3)Добавить LBS-сервер и обеспечить его каналами (физическими или логическими) связи с BSC.

Другими словами - мы разработали и "внедрили" на сети GSM-оператора решение для предоставление location-based services.

А теперь вернемся к начальному утверждению. Как видно, понадобилось существенно модифицировать сеть для того, чтобы превратить теоретическую возможность в возможность практическую. Очевидно, что далеко не все GSM-операторы проделали такую работу (или подобную [2]) работу и обладают возможностью определять местоположение вашего телефона.

Соответственно, если не тыкать пальцем в конкретного оператора, а говорить о GSM как о технологии вообще, то лучше ограничится тем, что "стандартные возможности сети GSM допускают построение системы определения местоположения абонента на основании измерения параметров прохождения радиосигнала, но стандарта GSM Phase 2+ на такие системы/технологии - нет". И не более того.

Ну как, теперь-то тема сисек триангуляции раскрыта полностью?

Литература:

  1. http://en.wikipedia.org/wiki/Timing_advance
  2. http://gsm.net.ua/position.html
  3. http://www.technocom-wireless.com/pdf/COMDEX_Fall2001.pdf (тут - веселые картинки, которые показывают точность работы разных методов определения местоположения)
Comments 
10th-Dec-2006 09:53 pm (UTC)
Извините, но похоже, что за пять лет вы многое забыли.

Вы утверждаете, что MSC знает _базовую_, в которой _сейчас_ находится находящийся в idle mode телефон. И происходит этого за счет некий roam-пакетов, которые (если я правильно понимаю ваши слова) телефон посылает при смене выбраной им соты (или даже чаще?).

Я предлагаю вам почитать GSM 03.22 (доступный, например, по адресу http://www.3gpp.org/ftp/Specs/archive/03_series/03.22/0322-821.zip), который весь целиком относится к поведению включенного, но молчащего телефона ("Functions related to Mobile Station (MS) in idle mode and group receive mode").

в частности - обратите внимание на раздел 4.6 (Location Registration process) и картинки после него.

Как я и говорил, телефон в idle mode, перемещающийся в пределах location area (которая может быть очень большой) ничего не посылает в сеть и в часности - не обновляет информацию о своем местоположении в HLR и не посылает каких-то загадочных данных о "временно-частотном распределении".

Считаем вопрос закрытым?
11th-Dec-2006 09:37 am (UTC)
Я готов считать вопрос закрытым :) Если вы также прочитали бы 4.6.2 и обратили внимание на пункты "the Periodic Location Updating Timer expires" и "the Periodic Routing Area Update timer expires" :):)

Особо увлекательны пункты 4.6.3, я так зачитался что до картинок не дошел... вышел из детского возраста, читаю документацию, а не картинки рассматриваю :):)

Это не наезд. Не попытка в чем-то уличить Вас или в чем-то оскорбить Вас. Просто не люблю надутые щеки :)

"Загадочные данные" ME никогда не посылает, он их может только попросить через BS у контроллера. Попросить, указав свой IMEI :) и называется это обыденными словами - регистрация и запрос канала с соте.

Об обновлении читай приведенные выше пункты. Как во всяком стандарте GSM сначала "shall be implemented in the MS" но потом "shall be within the range of 1 deci hour to 255 deci hours with a granularity of 1 deci hour", т.е. интервал оставляется производителю ME :)
11th-Dec-2006 10:12 am (UTC)
Таймеры, который экспайрятся раз в час или еще реже - это, безусловно, сильная помощь в актуализации информации о местоположении ;) Причем я бы не говорил, что интервал отдается на откуп производителю МЕ - скорее, на откуп оператору, который его конфигурирует.

Регистрация и запрос канала происходят при необходимости получить/совершить звонок, так? А мы ж вроде про телефон в idle mode.

Про щеки - у меня отношение аналогичное, и почему-то осталось ощущение, что не я первый начал ;)
11th-Dec-2006 10:50 am (UTC)
Эта... актуализация местоположения делается элементарно методом посылки СМС с требованием подтвеждения :) Зарегестрированный сотовый обязан отозваться. Это если необходимо получить моментальный слепок "бытовым" способом.

За последний час всегда можно сказать что "он в этой области" :)

Но это то, что позволяет аппаратура имеющаяся у оператора сейчас.

Не скажу за всех производителей. У меня были контакты в Сименсе, именно в разделе базовых станций :) Основная информация оттуда, в том числе и дали почитать документы которые обычно называют ДСП :) НЕ в электронном виде.

В том числе и описание сервисно-тестовых модулей, которые могут изображать из себя базовую станцию или ME, причем регистрация будет приниматься вне зависимости от реальных записей у оператора :) В том числе и мобильное (носимое) оборудование для замера зон покрытиия. Когда я планировал заниматься этим вопросом я тоже высказал идею ламера, что "проедем с приемником и промерим уровень". Люди тогда долго смеялись и объяснили, что все делается "немного" не так. Да, там использовались специальные мониторные ME-блоки, но как мне объяснили, обычные телефоны тоже можно заставить выполнять похожие функции (по крайней мере Siemens), только качество и достоверность таких замеров порядка на два ниже и потому не имеет смысла, т.к. такие замеры делаются только на этапе пуско-наладочных работ.

Поскольку все разговоры шли приватно, никакой документации по данным вещам не осталось, но.. отсутствие не означает невозможность :)

Ладно, мне кажется спор идет уже ради спора.
Кстати про отраженные волны :) Может, поднимем вопрос, почему в GSM 2/3 частоты? :):)
11th-Dec-2006 12:02 pm (UTC)
Дык про SMS тут уже писали, неинтересно повторяться.

А про отраженные волны - я в радиоинтерфейсе профан, тут никаких сомнений. Вон разве что us2yw захочет что-то сказать :)
11th-Dec-2006 12:25 pm (UTC)
Да тут особой профанации не нужно :) Более длинные волны имеют меньшее затухание на открытом пространстве, но большее в городской среде. Отчасти от того, что более короткие "пробивают" (арматурные и прочие решетки), а более длинные гаснут за счет интерференции большого числа отраженных.
Японцы проводили кучу экспериментов еще лет 20 назад, уже это классические труды по затуханию/отражению, в том числе и в городской среде:) Модели Okumura/Hata и Hata/Davidson наверное по названиям уже скажут об авторах :):)
Есть модели и лучше, только считать сложнее...
5th-Sep-2007 01:29 pm (UTC)
То ли я чего-то не уловил, то ли у Вас опечатка...

В нашем регионе у одного из операторов разрешён только один диапазон - 1800. Как они мучаются! В соседнем с БС кирпичном доме уровень редко лучше -100...
Это я к чему? К тому, что чем больше длина волны (меньше частота) тем меньше потери в "стенах" и т.п.

Кстати и упомянутая вами модель Окумура-Хата говорит о том же:

L=69.55+26.16lg f -13.82lg h(BS) - a(h(MC)) + (44.9-6.55lg h(BS))lg R [дБ]

где h(BS)и h(MC)- высоты антенн BS и MC, R - расстояние от BS до MC, a(h(MC)) - поправочный коэффициент зависящий от типа местности.

В общем ошибочка у Вас...
5th-Sep-2007 01:50 pm (UTC)
- Читаем книжки, смотрим промеры.
- a(h(MC)) стоит со знаком минус - увеличивается с плотностью застройки. Плотность выше - дальность меньше = затухание выше.
- разговор шел о плотной ЖЕЛЕЗОБЕТОННОЙ застройке, где МНОГО ЖЕЛЕЗНОЙ АРМАТУРЫ. Вы бы привели для примера деревянный дом без одного гвоздя и говорили о "повышенной плотности застройки"
- Рядом с антенной - читайте теорию антенн. В частности о "ближней" и "дальней" зонах. О взаимодействии антенн и о правильности их установки. В частности о том, что явно "ближняя зона" действует в пределах 10-15 длин волн (~метр скажем), но вот стоящие рядом антенны дают взаимные помехи, и интерференция помех имеет частоты (f1+f2) и (f1-f2), что при близких частотах дает маленькую разницу, соответственно бОльшую длину волны, соответсвенно созу "ближнего возмущения" антенн гораздо больше ожидаемого метра.

Ребят, работа с антеннами очень сложная штука, антенна это не кусок провода воткнутый в передатчик :) Там все сложнее...
5th-Sep-2007 01:53 pm (UTC)
Вообще мне лень спорить, тем более я уже более 5 лет не работаю с РПА. Сменил область деятельности, мои знания были не нужны. :)
22nd-Dec-2006 04:20 pm (UTC) - я, конечно, дилетант, но..
разве deci hour != 6 min ?
23rd-Dec-2006 08:48 pm (UTC) - Re: я, конечно, дилетант, но..
Покажите мне сеть, в которой этот интервал - меньше часа.
This page was loaded Dec 10th 2018, 1:10 pm GMT.