SMS — штука настолько привычная, что многие и не задумываются о том, как же работает передача сообщений в сетях, ориентированных на голос, и не вспоминают, почему же мы ограничены столь небольшой длиной сообщения. Давайте вспомним, откуда вообще появились короткие сообщения и что они собой представляют.
В этом году «коротким сообщениям» исполнится 25 лет. Считается, что первое SMS-сообщение было отправлено в Великобритании в 1992 году, а коммерческая услуга SMS появилась в Финляндии в 1993 году.
Развитие SMS как услуги
Надо отметить, что до появления стандарта 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-сообщения завтра — падение популярности или стабильное будущее? Время покажет.