С момента изобретения телефонии (сначала проводной, потом уже беспроводной) возник вопрос адресации. Разговоры между двумя фиксированными точками — про абонентов давайте пока не говорить — имеют место быть на практике, однако лишают такого рода связь гибкости. Даже обычная всем привычная почта (в реалиях того же 19-го века, когда телефония была изобретена, вполне могла быть даже на лошадях) обладает очень удобным качеством: вы можете писать кому угодно и получать сообщения от кого угодно.
Поэтому быстро появилось очевидное решение — коммутирующие станции, когда звонок от владельца телефонного аппарата поступал сначала на оператора на телефонной станции, где по запросу мог быть переадресован другому абоненту. В целом, варианты типа «Алло, девушка, мне, пожалуйста, Смольный» тоже были, но на практике оказались негибкими в массовом применении: оператору приходилось наизусть запоминать названия и имена и быстро сопоставлять их контактам на коммутационной панели. Второй момент — сложность передачи таким образом звонка между коммутационными станциями: по мере распространения телефонной связи неизбежно приходилось строить новые коммутационные станции. Вероятно, само собой возникло очень простое решение — нумеровать абонентов, но нумеровать не как попало, а согласно определённой системе, когда каждая цифра или несколько цифр подряд в номере соответствовали с одной стороны номеру контакта на коммутационной панели, а с другой стороны — маршруту переключения звонка (телефонисты называют это процесс «проключением звонка»). И конструкция телефонных аппаратов доцифровой эпохи (например, такого, как на фотографии) отражала этот процесс: вращение телефонного диска производило ровно такое количество импульсов, какую цифру номера вы хотели набрать. При этом частота и длительность этих импульсов довольно строго заданы, чтобы не путать электромеханические шаговые переключатели на телефонных станциях: сколько импульсов пришло — на столько делений и должен будет сдвинуться контакт шагового переключателя. И шумы на линии, которые неизбежно есть, тоже не должны были путать автоматику, то есть, изменение амплитуды импульсов тоже задано во вполне определённых пределах.
Диск телефонного аппарата довольно сложно устроен, это не просто пружинка, которая возвращает диск после отпускания в исходное положение. Там есть механика, которая придирчиво регулирует скорость вращения диска и даже приложив физическую силу довольно трудно сделать так, чтобы диск вращался быстрее.
Кстати, глядя на фото выше можно увидеть интересное: цифра 0 кодируется десятью импульсами. Этот удивительный, казалось бы факт, объясняет почему в некоторых системах до сих пор приходится для сохранения совместимости кодировать 0 числом 10.
В разговоре о телефонных номерах мы будем ссылаться на рекомендацию Международного Союза Электросвязи (МСЭ, в английском варианте это ITU – International Telecommunication Union) за номером E.164, которая описывает какие вообще бывают телефонные номера и как они используются. Мы все закоулки этой рекомендации разбирать не будем, это довольно занудная история, мы поговорим только о том, с чем граждане сталкиваются в жизни каждый день вот уже почти столетие. Но поскольку разговор тут пойдёт всё-таки о сотовой связи, а не проводной, то нам очень потребуется второй документ, который отражает детали применения нумерации для беспроводных подвижных сетей. Это спецификация 3GPP TS 23.003 “Numbering, addressing and identification”. И рассказ пойдёт по большей части именно о том, что говорит эта спецификация.
Начнём с классического телефонного номера, того, который есть у каждого (да ещё и не один, скорее всего):
Типичный телефонный номер состоит из трёх частей:
- код страны — CC (Country Code),
- национальный код пункта назначения — NDC (National Destination Code),
- номер абонента — SN (Subscriber Number).
Номера могут быть более длинными, как правило, это относится к нумерации внутри ISDN – Integrated Services Digital Network. ISDN-сети можно упрощенно рассматривать как вариант цифровизации обычных телефонных сетей.
Знак «+» перед телефонным номером указывает на то, что номер представлен в международном формате; этот знак заменяет код выхода на международную связь, который может отличаться в разных странах.
Вы скажете, что мой сотовой номер как будто не совсем этому соответствует. Код страны — это понятно, есть. Но вот никакого пункта назначения нет (если бы он был, то для Санкт-Петербурга это было бы 812, для Москвы — 495 и так далее), а вместо него у нас код оператора сотовой связи, например, МТС — это обычно 911, Мегафон — 921 и т. п. Всё так, нумерация абонентов в сотовой связи только похожа в целом на своего прародителя — фиксированную телефонную связь, устроена похожим образом. Часть смыслов в такой нумерации мы попробуем приблизительно разобрать.
В сотовой связи принято номер абонента называть MSISDN – Mobile Subscriber ISDN Number (номер абонента в подвижной сети ISDN). И выглядит он ровно также как номер на картинке выше — элементы номера всё те же и так же называются. Но сейчас мы чуть отвлечёмся и поговорим о номерах, которые тоже имеют отношение к нашей истории, но как будто не совсем об этом.
Начнём с идентификационного номера оборудования — IMEI (International Mobile Equipment Identity). Это уникальный номер устройства, который задаётся производителем, и в идеале не должен меняться на протяжении всего времени эксплуатации устройства. Строго говоря, этот номер идентифицирует не всё устройство целиком, а радиомодуль мобильного телефона. Например, если ваш мобильный телефон поддерживает две симкарты в режиме одновременного использования, то у вашего телефона будут два номера IMEI – по одному на каждый радиомодуль телефона. Устроен IMEI следующим образом:
На картинке мы видим три части в IMEI:
- TAC – Type Allocation Code (назначается GSM Association),
- SNR – Serial Number (выбирается производителем),
- CD/SD – Check Digit / Spare Digit.
Для большинства пользователей эти цифры ничего не значат, можно только отметить, что CD цифра может быть использована для проверки самого IMEI на целостность, а сам IMEI в нашей истории сыграет небольшую роль далее.
Теперь самое время взяться за IMSI (многие наверняка где-то эту аббревиатуру видели), но нет — к IMSI мы подойдём через одну дополнительную итерацию: рассмотрим понятие PLMN. PLMN расшифровывается как Public Land Mobile Network (наземные мобильные сети общего пользования). Слово «наземный» тут довольно важно, мы на этом останавливаться тут не будем, просто отметим, что бывают «неназемные» сети, например, сети предназначенные для спутниковой связи (NTN – Non-Terrestial Networks). Каждая такая мобильная сеть — PLMN – имеет идентификатор:
Здесь у нас
- MCC – мобильный код страны (Mobile Country Code),
- MNC – код мобильной сети (Mobile Network Code).
Например, MCC Российской Федерации равен 250. А, скажем, код мобильной сети оператора «МТС» — это 01, мобильной сети оператора «Мегафон» - 02, «Билайн» в своё время разжился номером 99.
Про номер 99 есть такая байка. Когда ещё не было «Мегафона» и «Т2», «МТС» как первый оператор успел взять себе MNC=01. По логике, «Билайн» должен был бы взять себе 02, но маркетинг сказал «Значит, это мы всегда вторыми будем? Так не пойдёт!» И взяли тоже первый MNC, но с другого конца диапазона — 99.
PLMN как идентификатор используется для указания конкретной сети конкретного оператора сотовой связи. Список таких PLMN, которыми вы как абонент можете пользоваться («пользоваться» означает иметь возможность регистрировать мобильное устройство в сети и пользоваться услугами сети) хранится на SIM-карте.
SIM —это Subscriber Identification Module или модуль идентификации абонента, это устройство, которое хранит идентификационную информацию об аккаунте абонента сотовой сети, обеспечивает выполнение процедур аутентификации пользователя и защиту информации.
Теперь самое время перейти к SIM-карте, точнее, к одному из идентификаторов, имеющих прямое отношение к SIM-карте, а именно — к IMSI. IMSI – International Mobile Subscriber Identity или международный идентификатор абонента сети мобильной связи. IMSI устроен следующим образом:
Здесь есть уже знакомые обозначения MCC и MNC и одно новое:
- MSIN – Mobile Subscriber Identification Number (номер абонента мобильной сети).
IMSI хранится на SIM-карте, используется при процедурах, которые требуют идентификации абонента. IMSI никак не соответствует телефонному номеру абонента, который на SIM-карте не хранится. Сопоставление IMSI и телефонного номера абонента происходит на уровне базы данных оператора сотовой связи.
Что же из этих номеров для чего используется? C телефонным номером более-менее понятно, он передаётся вашим мобильным телефоном в сеть при установлении звонка для поиска абонента. PLMN используется для определения сетей сотовой связи. Для чего нужны IMEI и IMSI? Давайте посмотрим на упрощённое описание процедуры регистрации мобильного телефона в сети:
При первичном подключении к сети или при запросе какой-либо услуге мобильное устройство сначала посылает запрос на доступ к сети. Такой запрос является анонимным, для его обработки сеть должна выделить ресурсы на радиоканале (некоторое частотное-временное окно, где базовая станция будет ожидать развернутого сообщения, какой именно сервис хочет получить абонент: звонок, SMS или интернет-сессия). Далее телефон должен сформировать запрос на обслуживание, в процессе обработки которого необходимо идентифицировать абонента и определить, а можно ли вообще этого абонента обслуживать. После этого выделяется необходимое для запрошенного сервиса количество ресурсов, абонент получает то, что хочет (или не получает) и соединение закрывается.
Так вот для первичной регистрации мобильного устройства в сети используется идентификатор IMSI, который в той или иной форме передаётся в сотовую сеть. В экстренной ситуации, когда нет SIM-карты, для экстренных вызовов может использоваться IMEI (можно в этом убедиться, если включить телефон без SIM-карты: на экране скорее всего будет надпись «Только экстренные вызовы» или подобная). IMEI также может быть использован для идентификации физического устройства в административных целях («белый» список, «чёрный» список), и стандарт оговаривает, что должна быть возможность запрашивать IMEI при любой операции доступа к сервисам сети (на практике такая возможность в массовом масштабе как будто не снискала популярности).
Вернёмся к IMSI. Постоянное использование IMSI в процедурах взаимодействия сотовой сети и мобильного телефона не оправдано затратами и может быть небезопасно, и этот идентификатор абонента замещают некоторым набором временных идентификаторов. Давайте с некоторыми упрощениями посмотрим на такие идентификаторы.
Сеть сотовой связи принято делить на две большие части: сеть радиодоступа (RAN – Radio Access Network) и опорную сеть (CN – Core Network). Идентифицировать абонента нужно в обеих частях:
- идентификация абонента в опорной сети для предоставления услуг согласно тарифному плану и локальным возможностям оборудования сотовой связи, что доступно всем абонентам, которые уже выполнили процедуру регистрации своего телефона в сети,
- идентификация абонента в сети радиодоступа для предоставления ресурсов соты, в которой находится абонент в настоящий момент, и в которой у абонента есть хотя бы одно активное соединение.
При регистрации абонента на стороне опорной сети ему выделяется номер из семейства идентификаторов TMSI – Temporary Mobile Subscriber Identifier (временный идентификатор абонента мобильной сети). Выделенный TMSI устройство запоминает и может использовать довольно длительное время, даже при перемещении абонента между сотами.
В сетях радиодоступа 4-го поколения LTE телефону выделяется несколько идентификаторов, которые используются в разных процедурах и имеют разное время жизни. Общее название у таких идентификаторов — RNTI (Radio Network Temporary Identifier, временный идентификатор сети радиодоступа). Рассмотрим некоторые из них:
- RA-RNTI – Random Access RNTI, временный идентификатор, который назначается мобильному устройству в момент подключения к сети в конкретной соте (пожалуй, это самый короткоживущий идентификатор),
- C-RNTI – Cell RNTI, временный идентификатор, назначается мобильному устройству, которое выполнило подключение к сети, на период обслуживания в конкретной соте (может сохраняться за мобильным телефоном на довольно длительный период времени при условии, что телефон не покидает текущей соты).
Использование временных идентификаторов, в основном, а) обеспечивает конфиденциальность пользователя мобильных сетей, б) снижает риск перехвата и несанкционированного отслеживания, в) оптимизирует сигнальный трафик в сети (как правило, все временные идентификаторы значительно короче по длине — не больше 32-х бит обычно).
Итак, мы познакомились с устройством обычного телефонного номера, познакомились с базовыми понятиями сетей мобильной связи, узнали, каким образом идентифицируется устройство и абонент. Кроме этого, описали базовые принципы замены идентификатора абонента на временные идентификаторы в разных частях сети сотовой связи.
Ссылки
- 3GPP TS 23.003 “Numbering, addressing and identification”