GSM (или Global System for Mobile Communications) был разработан в 1990 году. Первый оператор GSM принял абонентов в 1991 году, к началу 1994 года сети, основанные на рассматриваемом стандарте, имели уже 1.3 миллиона подписчиков, а к концу 1995 их число увеличилось до 10 миллионов!
Начнём с самого сложного и, пожалуй, скучного - блок-схемы сети. При описании будут использоваться принятые во всем мире англоязычные сокращения.
Самая простая часть структурной схемы - переносной телефон, состоит из двух частей: собственно "трубки" - МЕ (Mobile Equipment - мобильное устройство) и смарт-карты SIM (Subscriber Identity Module - модуль идентификации абонента), получаемой при заключении контракта с оператором. Как любой автомобиль снабжен уникальным номером кузова, так и сотовый телефон имеет собственный номер - IMEI (International Mobile Equipment Identity - международный идентификатор мобильного устройства), который может передаваться сети по ее запросу. SIM, в свою очередь, содержит так называемый IMSI (International Mobile Subscriber Identity - международный идентификационный номер подписчика). Таким образом, IMEI соответствует конкретному телефону, а IMSI - определенному абоненту.
"Центральной нервной системой" сети является NSS (Network and Switching Subsystem - подсистема сети и коммутации), а компонент, выполняющей функции "мозга" называется MSC (Mobile services Switching Center - центр коммутации). Именно последний все называют "коммутатор", а также, при проблемах со связью, винят во всех смертных грехах. MSC в сети может быть и не один. MSC занимается маршрутизацией вызовов, формированием данных для биллинговой системы, управляет многими процедурами - проще сказать, что не входит в обязанности коммутатора, чем перечислять все его функции.
Следующими по важности компонентами сети, также входящими в NSS, я бы назвал HLR (Home Location Register - реестр собственных абонентов) и VLR (Visitor Location Register - реестр перемещений). Обратите внимание на эти части, в дальнейшем мы будем часто упоминать их. HLR, грубо говоря, представляет собой базу данных обо всех абонентах, заключивших с рассматриваемой сетью контракт. В ней хранится информация о номерах пользователей (под номерами подразумеваются, во-первых, упоминавшийся выше IMSI, а во-вторых, так называемый MSISDN-Mobile Subscriber ISDN, т.е. телефонный номер в его обычном понимании), перечень доступных услуг и многое другое - далее по тексту часто будут описываться параметры, находящиеся в HLR.
В отличие от HLR, который в системе один, VLR`ов может быть и несколько - каждый из них контролирует свою часть сети. В VLR содержатся данные об абонентах, которые находятся на его (и только его!) территории (причем обслуживаются не только свои подписчики, но и зарегистрированные в сети роумеры). Как только пользователь покидает зону действия какого-то VLR, информация о нем копируется в новый VLR, а из старого удаляется. Фактически, между тем, что есть об абоненте в VLR и в HLR, очень много общего - посмотрите таблицы, где приведен перечень долгосрочных (табл.1) и временных (табл.2 и 3) данных об абонентах, хранящихся в этих реестрах. Еще раз об отличие HLR от VLR: в первом расположена информация обо всех подписчиках сети, независимо от их местоположения, а во втором - данные только о тех, кто находится на подведомственной этому VLR территории. В HLR для каждого абонента постоянно присутствует ссылка на тот VLR, который с ним (абонентом) сейчас работает (при этом сам VLR может принадлежать чужой сети, расположенной, например, на другом конце Земли).
Долгосрочные данные, хранимые в HLR и VLR
1. Международный идентификационный номер подписчика (IMSI)
2. Телефонный номер абонента в обычном смысле (MSISDN)
3. Категория подвижной станции
4. Ключ идентификации абонента (Ki)
5. Виды обеспечения дополнительными услугами
6. Индекс закрытой группы пользователей
7. Код блокировки закрытой группы пользователей
8. Состав основных вызовов, которые могут быть переданы
9. Оповещение вызывающего абонента
10. Идентификация номера вызываемого абонента
11. График работы
12. Оповещение вызываемого абонента
13. Контроль сигнализации при соединении абонентов
14. Характеристики закрытой группы пользователей
15. Льготы закрытой группы пользователей
16. Запрещенные исходящие вызовы в закрытой группе пользователей
17. Максимальное количество абонентов
18. Используемые пароли
19. Класс приоритетного доступа
Временные данные, хранимые в HLR
1. Параметры идентификации и шифрования
2. Временный номер мобильного абонента (TMSI)
3. Адрес реестра перемещения, в котором находится абонент (VLR)
4. Зоны перемещения подвижной станции
5. Номер соты при эстафетной передаче
6. Регистрационный статус
7. Таймер отсутствия ответа
8. Состав используемых в данный момент паролей
9. Активность связи
Временные данные, хранимые в VLR
1. Временный номер мобильного абонента (TMSI)
2. Идентификаторы области расположения абонента (LAI)
3. Указания по использованию основных служб
4. Номер соты при эстафетной передаче
5. Параметры идентификации и шифрования
NSS содержит еще два компонента - AuC (Authentication Center - центр авторизации) и EIR (Equipment Identity Register - реестр идентификации оборудования). Первый блок используется для процедур установления подлинности абонента, а второй, как следует из названия, отвечает за допуск к эксплуатации в сети только разрешенных сотовых телефонов.
Исполнительной, если так можно выразиться, частью сотовой сети, является BSS (Base Station Subsystem - подсистема базовых станций). Если продолжать аналогию с человеческим организмом, то эту подсистему можно назвать конечностями тела. BSS состоит из нескольких "рук" и "ног" - BSC (Base Station Controller - контроллер базовых станций), а также множества "пальцев" - BTS (Base Transceiver Station - базовая станция). Базовые станции можно наблюдать повсюду - в городах, полях - фактически это просто приемно-передающие устройства, содержащие от одного до шестнадцати излучателей. Каждый BSC контролирует целую группу BTS и отвечает за управление и распределение каналов, уровень мощности базовых станций и тому подобное. Обычно BSC в сети не один, а целое множество (базовых станций же вообще сотни и тысячи).
Управляется и координируется работа сети с помощью OSS (Operating and Support Subsystem - подсистема управления и поддержки). OSS состоит из всякого рода служб и систем, контролирующих работу и трафик.
При каждом включении телефона после выбора сети начинается процедура регистрации. Рассмотрим наиболее общий случай - регистрацию не в домашней, а в чужой, так называемой гостевой, сети (будем предполагать, что услуга роуминга абоненту разрешена).
Пусть сеть найдена. По запросу сети телефон передает IMSI абонента. IMSI начинается с кода страны "приписки" его владельца, далее следуют цифры, определяющие домашнюю сеть, а уже потом - уникальный номер конкретного подписчика. Например, начало IMSI 25099… соответствует российскому оператору Билайн. (250-Россия, 99 - Билайн). По номеру IMSI VLR гостевой сети определяет домашнюю сеть и связывается с ее HLR. Последний передает всю необходимую информацию об абоненте в VLR, который сделал запрос, а у себя размещает ссылку на этот VLR, чтобы в случае необходимости знать, "где искать" абонента.
Очень интересен процесс определения подлинности абонента. При регистрации AuC домашней сети генерирует 128-битовое случайное число - RAND, пересылаемое телефону. Внутри SIM с помощью ключа Ki (ключ идентификации - так же как и IMSI, он содержится в SIM) и алгоритма идентификации А3 вычисляется 32-битовый ответ - SRES (Signed RESult) по формуле SRES = Ki * RAND. Точно такие же вычисления проделываются одновременно и в AuC (по выбранному из HLR Ki пользователя). Если SRES, вычисленный в телефоне, совпадет со SRES, рассчитанным AuC, то процесс авторизации считается успешным и абоненту присваивается TMSI (Temporary Mobile Subscriber Identity-временный номер мобильного абонента). TMSI служит исключительно для повышения безопасности взаимодействия подписчика с сетью и может периодически меняться (в том числе при смене VLR).
Теоретически, при регистрации должен передаваться и номер IMEI, но у меня есть большие сомнения насчет того, что минский оператор отслеживают IMEI используемых абонентами телефонов. Давайте будем рассматривать некую "идеальную" сеть, функционирующую так, как было задумано создателями GSM. Так вот, при получении IMEI сетью, он направляется в EIR, где сравнивается с так называемыми "списками" номеров. Белый список содержит номера санкционированных к использованию телефонов, черный список состоит из IMEI, украденных или по какой-либо иной причине не допущенных к эксплуатации телефонов, и, наконец, серый список - "трубки" с проблемами, работа которых разрешается системой, но за которыми ведется постоянное наблюдение.
После процедуры идентификации и взаимодействия гостевого VLR с домашним HLR запускается счетчик времени, задающий момент перерегистрации в случае отсутствия каких-либо сеансов связи. Обычно период обязательной регистрации составляет несколько часов. Перерегистрация необходима для того, чтобы сеть получила подтверждение, что телефон по-прежнему находится в зоне ее действия. Дело в том, что в режиме ожидания "трубка" только отслеживает сигналы, передаваемые сетью, но сама ничего не излучает - процесс передачи начинается только в случае установления соединения, а также при значительных перемещениях относительно сети (ниже это будет рассмотрено подробно) - в таких случаях таймер, отсчитывающий время до следующей перерегистрации, запускается заново. Поэтому при "выпадении" телефона из сети (например, был отсоединен аккумулятор, или владелец аппарата зашел в метро, не выключив телефон) система об этом не узнает.
Все пользователи случайным образом разбиваются на 10 равноправных классов доступа (с номерами от 0 до 9). Кроме того, существует несколько специальных классов с номерами с 11 по 15 (разного рода аварийные и экстренные службы, служебный персонал сети). Информация о классе доступа хранится в SIM. Особый, 10 класс доступа, позволяет совершать экстренные звонки (по номеру 112), если пользователь не принадлежит к какому-либо разрешенному классу, или вообще не имеет IMSI (SIM). В случае чрезвычайных ситуаций или перегрузки сети некоторым классам может быть на время закрыт доступ в сеть.
Как уже было сказано, сеть состоит из множества BTS - базовых станций (одна BTS - одна "сота", ячейка). Для упрощения функционирования системы и снижения служебного трафика, BTS объединяют в группы - домены, получившие название LA (Location Area - области расположения). Каждой LA соответствует свой код LAI(Location Area Identity). Один VLR может контролировать несколько LA. И именно LAI помещается в VLR для задания местоположения мобильного абонента. В случае необходимости именно в соответствующей LA (а не в отдельной соте) будет произведен поиск абонента. При перемещении абонента из одной соты в другую в пределах одной LA перерегистрация и изменение записей в VLR/HLR не производится, но стоит ему (абоненту) попасть на территорию другой LA, как начнется взаимодействие телефона с сетью. При смене LA код старой области стирается из VLR и заменяется новым LAI, если же следующий LA контролируется другим VLR, то произойдет смена VLR и обновление записи в HLR.
Вообще говоря, разбиение сети на LA довольно непростая инженерная задача, решаемая при построении каждой сети индивидуально. Слишком мелкие LA приведут к частым перерегистрациям телефонов и, как следствие, к возрастанию трафика разного рода сервисных сигналов и более быстрой разрядке батарей мобильных телефонов. Если же сделать LA большими, то, в случае необходимости соединения с абонентом, сигнал вызова придется подавать всем сотам, входящим в LA, что также ведет к неоправданному росту передачи служебной информации и перегрузке внутренних каналов сети.
Теперь рассмотрим очень красивый алгоритм так называемого handover`ра (такое название получила смена используемого канала в процессе соединения). Во время разговора по мобильному телефону вследствие ряда причин (удаление "трубки" от базовой станции, многолучевая интерференция, перемещение абонента в зону так называемой тени и т.п.) мощность (и качество) сигнала может ухудшиться. В этом случае произойдет переключение на канал (может быть, другой BTS) с лучшим качеством сигнала без прерывания текущего соединения (добавлю - ни сам абонент, ни его собеседник, как правило, не замечают произошедшего handover`а).
Handover`ы принято разделять на четыре типа:
1. смена каналов в пределах одной базовой станции
2. смена канала одной базовой станции на канал другой станции, но находящейся под патронажем того же BSC.
3. переключение каналов между базовыми станциями, контролируемыми разными BSC, но одним MSC
4. переключение каналов между базовыми станциями, за которые отвечают не только разные BSC, но и MSC.
В общем случае, проведение handover`а - задача MSC. Но в двух первых случаях, называемых внутренними handover`ами, чтобы снизить нагрузку на коммутатор и служебные линии связи, процесс смены каналов управляется BSC, а MSC лишь информируется о происшедшем.
Во время разговора мобильный телефон постоянно контролирует уровень сигнала от соседних BTS (список каналов (до 16), за которыми необходимо вести наблюдение, задается базовой станцией). На основании этих измерений выбираются шесть лучших кандидатов, данные о которых постоянно (не реже раза в секунду) передаются BSC и MSC для организации возможного переключения. Существуют две основные схемы handover`а:
"Режим наименьших переключений" (Minimum acceptable performance). В этом случае, при ухудшении качества связи мобильный телефон повышает мощность своего передатчика до тех пор, пока это возможно. Если же, несмотря на повышение уровня сигнала, связь не улучшается (или мощность достигла максимума), то происходит handover.
"Энергосберегающий режим" (Power budget). При этом мощность передатчика мобильного телефона остается неизменной, а в случае ухудшения качества меняется канал связи (handover).
Интересно, что инициировать смену каналов может не только мобильный телефон, но и MSC, например, для лучшего распределения трафика.
Поговорим теперь, каким образом происходит маршрутизация входящих вызовов мобильного телефона. Как и раньше, будем рассматривать наиболее общий случай, когда абонент находится в зоне действия гостевой сети, регистрация прошла успешно, а телефон находится в режиме ожидания.
При поступлении запроса (рисунок ниже) на соединение от проводной телефонной (или другой сотовой) системы на MSC домашней сети (вызов "находит" нужный коммутатор по набранному номеру мобильного абонента MSISDN, который содержит код страны и сети).
MSC пересылает в HLR номер (MSISDN) абонента. HLR, в свою очередь, обращается с запросом к VLR гостевой сети, в которой находится абонент. VLR выделяет один из имеющихся в ее распоряжении MSRN (Mobile Station Roaming Number - номер "блуждающей" мобильной станции). Идеология назначения MSRN очень напоминает динамическое присвоение адресов IP при коммутируемом доступе в Интернет через модем. HLR домашней сети получает от VLR присвоенный абоненту MSRN и, сопроводив его IMSI пользователя, передает коммутатору домашней сети. Заключительной стадией установления соединения является направление вызова, сопровождаемого IMSI и MSRN, коммутатору гостевой сети, который формирует специальный сигнал, передаваемый по PAGCH (PAGer CHannel - канал вызова) по всей LA, где находится абонент.
Маршрутизация исходящих вызовов не представляет с идеологической точки зрения ничего нового и интересного. Приведу лишь некоторые из диагностических сигналов , свидетельствующие о невозможности установить соединение и которые пользователь может получить в ответ на попытку установления соединения.
Основные диагностические сигналы об ошибке при установлении соединения
Номер абонента занят - 425±15 Гц - 500мс гудок, 500 мс пауза
Перегрузка сети - 425±15 Гц - 200мс гудок, 200 мс пауза
Общая ошибка - 950±50Гц 1400±50Гц 1800±50Гц - Тройной гудок (длительность каждой части 330 мс), 1 с пауза