?

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 
11th-Nov-2006 07:44 am (UTC) - Блин, массовые опечатки =)
60 -> 70
сообщений -> символов
зватить -> хватить
11th-Nov-2006 12:25 pm (UTC) - Re: Блин, массовые опечатки =)
А кто сказал 80? Я проверил на трех доступных телефонах разных производителей - везде 70.

По поводу меньшего кол-ва бит на символ - возможно, оно было бы и хорошо. Но с точки зрения вселенского счастья, зачем городить еще один UTF-10, кроме UTF-8 и UTF-16?
11th-Nov-2006 01:03 pm (UTC) - Re: Блин, массовые опечатки =)
Ну, когда счёт идёт на биты - оптимизация всегда полезна.. UTF-8/16 излишне избыточны, я их изначально не одобрял :)
11th-Nov-2006 01:17 pm (UTC) - Re: Блин, массовые опечатки =)
(став в позу, с пафосом) Да? И что ты сделал для того, чтобы не допустить их всемирного распространения? :)
11th-Nov-2006 02:01 pm (UTC) - Re: Блин, массовые опечатки =)
Возглавил движение против utf-8 (в котором, правда, пока лишь один участник =))

А действительно, создатели стандарта отправки сообщений могли выбрать любую кодировку, благо маловероятно, что телефоны к тому времени поддерживали юникод. Вон, выбрали семибитную кодировку, которая ведь не совпадает с ASCII, так? Могли бы заодно принять стандарт на расширенную десятибитную кодировку, а не [внезапно] использовать существующий избыточный стандарт, который ОЧЕНЬ маловероятно, что полностью поддерживается всеми телефонами на текущий момент...
11th-Nov-2006 02:51 pm (UTC) - Re: Блин, массовые опечатки =)
По поводу того, что могли выбрать другую кодировку - Тут уже приводили фразу про верблюда и "А что у меня вообще прямое?".

Я уверен, что если найти, где копнуть историю, то высплывут тоннами подробности о том, как каждый участник консорциума тянул одеяло на себя, и в конце концов выбрали UTF-16, как вариант, который был одинаково всем неудобный.
11th-Nov-2006 07:50 pm (UTC) - Re: Блин, массовые опечатки =)
Мда. Тогда другой глупый вопрос - где можно почитать про саму семибитную кодировку, в частности, про её управляющие коды? Надеюсь найти что-нибудь интересное :)
11th-Nov-2006 09:30 pm (UTC) - Re: Блин, массовые опечатки =)
Я сегодня делал пост с ссылкой на "GSM Handbook". В нем есть appendix, а в нем - кодировка. Только похоже, что с управляющими кодами там не густо :)
This page was loaded Oct 17th 2019, 1:33 am GMT.