SMS — штука настолько привычная, что многие и не задумываются о том, как же работает передача сообщений в сетях, ориентированных на голос, и не вспоминают, почему же мы ограничены столь небольшой длиной сообщения. Давайте вспомним, откуда вообще появились короткие сообщения и что они собой представляют.



Развитие SMS как услуги


В этом году «коротким сообщениям» исполнится 25 лет. Считается, что первое SMS-сообщение было отправлено в Великобритании в 1992 году, а коммерческая услуга SMS появилась в Финляндии в 1993 году.

Надо отметить, что до появления стандарта GSM аналогов SMS не существовало, но к текущему моменту, т.е. спустя почти 25 лет, услуга завоевала огромную популярность, несмотря на то, что операторы взимают плату за исходящие, а иногда и входящие сообщения.

Конечно, путь к популярности для данного сервиса оказался довольно тернистым. Впервые идея сервиса, передающего короткие сообщения между телефонными аппаратами, появилась еще в 1984 году. Немецкий инженер Фридгельм Хиллебранд (Friedhelm Hillebrand), который в 1985 году возглавил «неголосовой» комитет GSM, уже тогда показал, что 160 символов на латинице (что соответствует 140 байтам) достаточно для передачи большинства бытовых сообщений. В основе его заявления лежали не очень-то научные эксперименты (собственноручный перебор случайных бытовых вопросов и ответов, а также наблюдение, что открытки и проанализированные сообщения по телексу для бизнес-пользователей почти всегда содержат менее 150 символов), но они определили характер услуги на десятки лет.

Действительно ли 160 символов достаточно? Конечно, в них не уместить «толстовские» предложения, но до появления экранных клавиатур (на устройствах с сенсорными экранами) или хотя бы T9 к отправке более длинного текста не стремились и сами пользователи. Более того, на старте, хотя SMS были заложены в стандарте GSM, не редкостью было отсутствие поддержки набора и отправки коротких сообщений в некоторых аппаратах.

С технической точки зрения SMS не претерпела почти никаких изменений (с переходом к GSM 03.40- https://en.wikipedia.org/wiki/GSM_03.40 — серьезно изменился, пожалуй, лишь набор поддерживаемых символов в теле сообщения). Коммерческая же услуга развивалась в сетях различных операторов примерно одинаково с поправкой на время запуска, маркетинг и подход к монетизации.

Сегодня помимо пользовательских в сети передается огромное количество служебных сообщений от операторов (например, уведомления о доставке), а также сервисные SMS от сторонних поставщиков услуг: банков, провайдеров, интернет-сервисов. Причем, они могут носить не только информационный характер (сообщать об остатке на счете, предупреждать об очередных платежах по договору, уведомлять о доставке посылок), но и служить одним из инструментов в двухфакторной аутенфикации. Кроме того, короткие сообщения могут использоваться для управления рядом сервисов, например, для отправки записей в Twitter.

Формат сообщений


SMS-сообщение состоит из текста длиной до 140 байт и блока служебной информации:

  • тип сообщения2 бита (SMS-DELIVER — доставка сообщения на мобильный телефон, SMS-DELIVER-REPORT — подтверждение доставки, SMS-SUBMIT — отправка сообщения с мобильного аппарата, SMS-SUBMIT-REPORT — подтверждение отправки, SMS-COMMAND — изменение параметров или удаление сообщения, сохраненного в центре SMS, SMS-STATUS-REPORT — уведомление отправителя о судьбе его сообщения).

В зависимости от типа сообщения последующие поля могут присутствовать или отсутствовать, а также меняться местами. Подробное описание всех полей можно найти в спецификации GSM 03.40, здесь же мы приведем лишь основные, интересные с точки зрения разбора процесса пересылки сообщений:

  • адрес назначения - 2-12 байт;
  • дата и время отправки (отметка центра SMS) — 7 байт;
  • идентификатор протокола - 1 байт;
  • схема кодирования1 байт: кодировка, класс сообщения (влияет на способ обработки сообщения аппаратом: выводится на экран без сохранения, сохраняется в SIM или памяти аппарата), запрос на автоматическое удаление после прочтения, состояние флагов, соответствующих непрочитанному факсимильному или голосовому сообщению, информация о сжатии контента сообщения, язык (для широковещательного SMS);
  • длина пользовательской области данных1 байт;
  • текст сообщениядо 140 байт. Длина сообщения «в буквах» варьируется, в зависимости от используемой кодировки. Это 160 символов для 7-битной кодировки (латинские + основные символы — в соответствии со спецификацией GSM 03.38), 140 символов для 8-битной (латинские + диакритические символы) и 70 символов для UCS-2 (российские операторы работают именно с этой кодировкой, поэтом для кириллических символов длина  сообщения — не более 70 символов).

Изначально (в документе GSM фаза 2) каждое SMS-сообщение было самодостаточным объектом, но согласно последующим редакциям (GSM фаза 2+) послание, передаваемое таким способом, может включать в себя несколько сообщений — в этом случае каждое из них содержит пометку о порядковом номере (из-за чего сокращается длина «тела» каждого сообщения).

Передача SMS


Между отдельными пользователями мобильной сети сообщение передается через SMS-центр (SMSC или SMS-SC — Short Message Service — Service Centre).

Вместе с текстом сообщения с мобильного телефона на базовую станцию передается дополнительная информация, в том числе, и адрес центра сообщений (в начале 2000-х этот номер приходилось вбивать самостоятельно при первоначальной настройке купленного аппарата). Если сообщение путешествует между сетями, его доставкой в первую очередь занимается SMS-центр сети отправителя.

SMSC не только доставляет и переадресует при необходимости сообщения, но и хранит их. Если телефон адресата в момент передачи сообщения выключен, оно остается в SMSC до появления устройства в сети. Обычно операторы задают максимальный срок хранения таких сообщений (технически эта настройка может быть доступна и пользователям мобильной сети). Также SMSC отправляет отчеты о доставке сообщений, если это прописано в пользовательских настройках.

В процессе передачи сообщения от одного пользователя другому задействован не только SMSC. Вкратце процесс выглядит следующим образом:

  • Запрос на отправку сообщения поступает в центр мобильной коммутации (MSC — mobile switching center),

  • MSC проверяет, возможна ли работа отправителя с сообщениями по базе данных абонентов GSM (HLR / VLR — Home / Visitors Location Register — общая база и база отдельного коммутатора) и переправляет сообщение вместе с адресами отправителя и получателя в SMSC;

  • SMSC посылает подтверждение получения, присваивает сообщению временный статус «не доставлено»,

  • И предпринимает попытку доставки текста адресату.

  • Перед доставкой SMSC отправителя запрашивает из HLR уникальный идентификатор получателя (IMSI — International Mobile Subscriber Identity), необходимый для проведения любых операций с абонентом внутри сети, а также проверяет отсутствие запретов на работу с SMS. Одновременно запрашивается адрес MSC, обслуживающего абонента;

  • После этого из MSC запрашивается местоположение (LAI — Location Area Identity) и временный идентификатор (TMSI — temporary mobile subscriber identity) абонента и инициируется соединение с аппаратом для передачи непосредственно сообщения;

  • По завершении передачи мобильный телефон отправляет подтверждение доставки (соответственно, статус сообщения в SMSC изменяется на «доставлено»). А при неудачной доставке статус «не доставлено» сохраняется, при этом в HLR фиксируется причина — отсутствие памяти или абонента в сети. Повторная доставка инициируется действиями самого адресата (появление в сети или очистка памяти аппарата).

Попадая на телефон получателя, сообщения отображаются на экране или сохраняются на SIM-карте / в памяти аппарата, в зависимости от пользовательских настроек и свойств самого сообщения.

Шлюзы, шлюзы...


По историческим соображениям телефония, в том числе GSM, работает на основе протоколов ОКС-7 (Общий Канал Сигнализации — 7). В терминологии этого стандарта SMS передается по каналу сигнализации, а не по каналу трафика с голосовыми данными. Задумано это было для того, чтобы SMS могли беспрепятственно проходить параллельно с передачей голосового трафика (во время разговора). Кроме того, канал сигнализации большую часть времени «простаивает», так что передавать по нему короткие сообщения — вполне экономичное решение.

Однако SMSC не поддерживает ОКС-7, поэтому для общения SMS-центра с другими системами оператора (HLR/VLR и MSC) приходится использовать дополнительные шлюзы. Для доставки сообщений абонентам других операторов также используются специальные шлюзы. Первый межсетевой шлюз появился в мире лишь в 1999 году, у нас же полноценной передачи сообщений между операторами не было и в начале 2000-х (шлюзы появились чуть позже).

С появлением потребности подключить сеть связи (фиксированной или мобильной) к
IP-сетям — на рубеже нового столетия — была создана спецификация SIGTRAN, позволяющая передавать потоки ОКС-7 по IP-сетям. Так появились, в том числе, SMS-шлюзы, работающие в Интернет. Эти шлюзы могут не только «пускать» контент из интернет в SMS, но и допускать обратную передачу данных, например, отправку SMS-сообщений с телефона на адрес электронной почты (правда, пик развития подобных сервисов уже прошел — с появлением доступа к интернету на телефонах, встроенных почтовых клиентов и приложений под ОС смартфонов стало гораздо проще отправлять е-мейлы напрямую).

SMS-шлюзы могут принадлежать оператору или существовать самостоятельно, в том числе в качестве дополнения к коммерческому корпоративному ПО для SMS-рассылок. Плохая защищенность подобных шлюзов, а также вполне реальная возможность соорудить мошеннический шлюз и приводят к распространению спама, взломам и прочим неприятностям, связанным с SMS. Однако по мере собственных сил и, что уж таить, под давлением регулятора операторы мобильной связи стараются бороться с этими проблемами.

Интересные факты об SMS


Как и любая популярная технология, за время своего существования SMS обросли целым ворохом легенд и мифов. Вот несколько интересных историй, которым удалось найти подтверждения:

  • В 2003 году Малайзия признала легитимным SMS-развод между супругами;

  • В 2007 году количество SMS-сообщений, отправляемых среднестатистическим американцем, превысило число совершаемых им звонков;

  • В 2008 году SMS помогли провести сложную хирургическую операцию пациенту из Конго: хирург-волонтер получал инструкции от коллег посредством текстовых сообщений;

  • Сокращения текста в рамках SMS-общения становятся новым направлением развития языка: в 2011 году популярные в английском LOL и OMG были внесены в Оксфордский словарь;

  • Немецкий инженер Ф.Хиллебранд, предложивший идею SMS, в итоге получил лишь мировую известность — никаких лицензионных платежей или патентования услуги разработчики не предусмотрели.

Вместо заключения хочется отметить, что хотя SMS технологически уже давно не развивается, пик популярности в мире услуга прошла совсем недавно — в 2012-2014 годах. Учитывая, что масштабный взлет технологии произошел в начале 2000-х, она продержалась на пьедестале удивительно долго (с точки зрения мира, столь падкого на новинки). Что ждет SMS-сообщения завтра — падение популярности или стабильное будущее? Время покажет.
Поделиться с друзьями
-->

Комментарии (21)


  1. lash05
    11.04.2017 17:02
    +8

    Трудно понять, почему смс стоит дороже минуты разговора, хотя данных передаётся на порядки меньше.


    1. Squoworode
      11.04.2017 22:33
      +5

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


      1. lash05
        12.04.2017 05:51

        Налог на раздумья). Или лёгкий намёк на покупку смартфона — на старый телефон ведь мессенджер не поставишь…


    1. Pakos
      12.04.2017 09:59

      Пока не было пакета СМС зачастую звонил, если требовалось пара вопросов-ответов — дешевле выходило, сейчас есть пакет СМС и пакет мегабайт в тарифе и… смс нужны крайне редко, обычно к концу месяца (96-100)/100.


  1. kinoz
    11.04.2017 17:08

    Раз тема про смс, то у меня 2 вопрос:
    1) когда уже вы доделаете ums в emotion? фраза " Друзья, мы продолжаем работать над функцией «Cообщения». Спасибо за ваше терпение." висит в changelog уже пол года.
    2) почему в ums не видно смс например от qiwi?
    Расскажите в следующей статье про ums, интересно как эта услуга устроена
    Мегафон молодец, спасибо ему за услуги мультифон и ums, я до сих пор жду подобных услуг от других О.П.С.О.СОВ


    1. bfDeveloper
      11.04.2017 17:43

      О.П.С.О.СОВ

      Не совсем по теме, но как вы это расшифровываете? Я знаю ОПераторов СОтовой Связи. А какой смысл вы вкладываете в эти буквы с такой расстановкой точек? Не троллинг и не придирки, действительно интересны альтернативные варианты.


      1. kinoz
        11.04.2017 20:08
        -2

        Это мой косяк, вы правильно расшифровали, я просто забыл отделить склонение от аббревиатуры.
        Должно О.П.С.О.Сов


        1. withkittens
          12.04.2017 13:49

          ОПСОСов или ОпСоСов, если уж на то пошло, но никак не через точки.


  1. Tortortor
    11.04.2017 17:47
    +4

    на вопрос в заголовке статья не отвечает.


  1. strib
    11.04.2017 17:51

    1) По Вашему странный тест повлиял на размер payload в MAP и является определяющей причной размера SM?
    2) Вас не затруднит раскрыть это утверждение «Однако SMSC не поддерживает ОКС-7, поэтому для общения SMS-центра с другими системами оператора (HLR/VLR и MSC) приходится использовать дополнительные шлюзы». Желательно с сылкой на стандарт которы отменяет
    3) Тема шлюзов без упоминания SMPP не раскрыта…

    Статья скорее запутывает незнакомых с темой читателей.


  1. osipov_dv
    11.04.2017 20:53

    Текст(и не только) передавали по голосовому каналу еще сильно раньше, это называлось кабельный модем :)


    1. kvaps
      12.04.2017 01:43

      Ещё пейджеры же были!


  1. rPman
    12.04.2017 13:19

    Лучше объясните почему операторы в России дружно закрыли сервисы виртуального sms номера, т.е. заключаешь договор аналогичный обычной покупке симкарты, но обслуживание номера исключительно через интернет (например электронная почта), без необходимости в самом телефоне.


  1. bluetooth
    12.04.2017 13:35

    тип сообщения — 2 бита (SMS-DELIVER — доставка сообщения на мобильный телефон, SMS-DELIVER-REPORT — подтверждение доставки, SMS-SUBMIT — отправка сообщения с мобильного аппарата, SMS-SUBMIT-REPORT — подтверждение отправки, SMS-COMMAND — изменение параметров или удаление сообщения, сохраненного в центре SMS, SMS-STATUS-REPORT — уведомление отправителя о судьбе его сообщения).

    Я насчитал 6 статусов. 2 бита = 2^2 = 4. Как передаются 6 статусов, если 2 бита позволяют передать только 4?


    1. Monstrofil
      12.04.2017 15:16
      +1

      Судя по Wiki, играет роль направление в котором отправляется СМС.

      GSM 03.40 defines 6 types of messages, which are distinguished by the message direction and the 2 least significant bits in the first octet of SM-TP message (the TP-MTI field)

      https://en.wikipedia.org/wiki/GSM_03.40#TPDU_Types


  1. BigD
    12.04.2017 13:58

    У меня ложные воспоминания, или было время, когда SMS в России ходили только внутри сети оператора, и нельзя было другому оператору отправить?


    1. saege5b
      13.04.2017 09:36

      Было время, когда рандомно нельзя было дозвониться до абонента другого оператора.
      Причём у разных операторов, отмазки были разные.


    1. K0styan
      13.04.2017 10:09

      Было, было. Где-то в конце 2000 — начале 2001 исправили. В Москве по крайней мере.

      У меня еще смутное воспоминание есть, что у Билайна можно было прописать в настройках альтернативный СМС-центр, через который сообщения на МТС ходили, а наоборот нельзя было.


  1. dmitry_ch
    12.04.2017 15:13

    Так скажите, откуда все же складывается цена 1 СМС для клиента, если вы тратите на её передачу менее 200 байт трафика?


  1. cepera_ang
    12.04.2017 15:30

    Фантастически актуальная статья с подробностями чрезвычайно сложного устройства херни, которая пережила своё на десять лет, как минимум.


  1. eyeofhell
    13.04.2017 10:19
    +2

    Самые Главный Вопрос: почему они не доходят? Типичная ситуация: сижу в кафе, прохожу двухфакторную аутентификацию в банке/почте/whatever. «Мы вам отправили sms, введите код». Нету sms. Нажимаю «еще раз», еще минут пять — нету sms. Через полчаса могут прийти 2-3 штуки со всех попыток переслать, может прийти только последняя, может не прийти вообще. Телефоны разные. Телефон при этом принимает и совершает звонки, связь устойчивая как по «палкам», так и по факту.