?

Log in

No account? Create an account
dump -0f - /dev/mind
Я знаю Haskell, OCaml, GSM, эндофункторы и много других страшных слов
GSM: Почему у белого медведя нос черный или Почему в смс влазит 160 символов, а не 255? 
10th-Nov-2006 04:35 pm
Заказной пост на тему: "А про sms можно рассказать? какой там протокол, и почему сообщение ограничено 160 символами?"

Учитывая, что про SMS материалов в сети масса, ответ будет коротким.

В процессе "придумывания" SMS (а его именно "придумывали", т.к. в отличие от голоса/факса у SMS не было аналога в "проводном" мире) перед авторами спецификации встал вопрос - как передавать SMS-ы между коммутаторами? Было принято решение использовать механизмы, доступные в рамках стека протоколов SS7 (Signalling System #7). Протокол MAP (используемый MSC для передачи "сигнальной" информации о звонке в процессе коммутации - кто звонит, кому звонит, и т.п.) был расширен специальным сообщением forward_short_message, содержимое которого, собственно, и является телом SMS.

Именно отсюда ростут ноги у известного ограничения. Протокол MAP основан на протоколе TCAP, который по своей природе предусматривал работу в режиме real-time, в стиле "короткий request - короткий responce". Естественно, что ни о какой фрагментации/сессиях в стиле TCP в рамках TCAP речь не шла. MAP унаследовал эту особенность.

Вот и получилось, что 1 SMS должен был обязательно влазить в одно MAP-сообщение. Максимальный размер payload в MAP - 140 байт или (140 * 8 = 1120 бит). В такое кол-во бит можно засунуть либо 160 7-битных символов, либо 140 8-битных, либо 70 16-битных. И только сравнительно недавно мобильные терминалы научились делать SMS concatenation и обходить это ограничение.

Литература:
Comments 
10th-Nov-2006 04:18 pm (UTC)
А вот еще такой вопрос -- один мой знакомый, из тех что уехал в Штаты до или во-время распада Союза, как-то хвастался что ему прислали SMS-ку на русском, отчего у местного провайдера упала сеть. Насколько это правдоподобно ?
10th-Nov-2006 04:45 pm (UTC)
Ну, сеть то от этого вряд ли упадет, а вот SMSC, который от сообщения с содержимым не в GSM-алфавите завалился, вполне мог бы и существовать. Там же софт, который регулярно пишется настолько криво, что даже я себя начинаю чувствовать неплохим девелопером :)
11th-Nov-2006 11:17 am (UTC)
Учитывая, что метаданные транспортного пакета никак не зависят от содержимого SMS-а, то пострадать может только та система, которая заглядывает в payload - т.е. SMSC, да и то - врядли. Даже если бы упал/повис/сгорел SMSC, вся остальная сеть работала бы (можно было бы совершать звонки, и т.п.). Скорее всего, совпало :)

Мне рассказывали, как вкручивание лампочки на узле одного крупного интернет-провайдера совпало с выключением света во всем районе :) Скорее всего, что-то подобное и имело место.
25th-Nov-2006 10:05 pm (UTC)
Мне однажды (в 1999 году) выдали в качестве интерфейса для обмена короткими сообщениями логин-пароль на ftp сервер и текстовый формат с комментарием: "Любая опечатка в имени тега, любой пробел после тега, вызывает падение нашего сервера и сообщения вообще перестают ходить. Кроме того, если номер не существует, генерируется текстовый файл, который вы обязаны забрать до следующего прохода нашего робота, иначе он упадёт. Пожалуйста, будьте осторожны!"

Это был пейджинговый оператор...
26th-Nov-2006 03:25 pm (UTC)
Возможно, кто-то написал им систему "задешево" и исчез с радара. А отлаживать-чинить в самой конторе ее было некому. Вот и жили, как могли :)
This page was loaded Oct 16th 2019, 9:33 pm GMT.