?

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 02:59 pm (UTC)
Ты еще про SMPP расскажи, только предупреди, что под катом сплошная нецензурщина ;;)))
10th-Nov-2006 03:01 pm (UTC)
Что ты! Если я расскажу про SMPP, меня забанит abuse team. В LiveJournal порнуха запрещена :)
10th-Nov-2006 03:37 pm (UTC)
однако...
10th-Nov-2006 04:13 pm (UTC)
?
10th-Nov-2006 04:18 pm (UTC)
А вот еще такой вопрос -- один мой знакомый, из тех что уехал в Штаты до или во-время распада Союза, как-то хвастался что ему прислали SMS-ку на русском, отчего у местного провайдера упала сеть. Насколько это правдоподобно ?
10th-Nov-2006 04:45 pm (UTC)
Ну, сеть то от этого вряд ли упадет, а вот SMSC, который от сообщения с содержимым не в GSM-алфавите завалился, вполне мог бы и существовать. Там же софт, который регулярно пишется настолько криво, что даже я себя начинаю чувствовать неплохим девелопером :)
11th-Nov-2006 07:41 am (UTC)
А почему тогда на русские сообщения выделяется 80 символов, а не 60?
И почему нельзя было сделать лимит в 140 сообщений для русского языка - всего лишь минимальная поддержка кодировок... Да и вообще, десяти бит на символ должно зватить всем, кроме африканцев и китайцев, которым и так это не нужно...
11th-Nov-2006 07:44 am (UTC) - Блин, массовые опечатки =)
60 -> 70
сообщений -> символов
зватить -> хватить
11th-Nov-2006 09:53 am (UTC)
очень познавательно. этот вопрос меня очень интересовал. остался еще один - есть ли другие способы передачи сообщений в GSM? чтоб без ограничения в 70 юникодовых знаков? и кста, нос у белого медведя черный потому, что его кожа черного цвета ;)
11th-Nov-2006 04:30 pm (UTC)
Написать на бумаге, сфотографировать, и передать, как ММS. разве что :)
11th-Nov-2006 11:12 am (UTC)
btw, а между телефоном и станцией какая сигнализация ходит ?
11th-Nov-2006 11:38 am (UTC)
Всякая :) Ее там много - LAPDm, RR, MM, CM. Интерфейс между MS и BTS называется "Um interface" (взяли название "U Interface" из ISDN и прилепили букву "m" для mobile). По этим ключевым словам в сети можно нарыть рассказки с картинками. Например, такие:

http://www.ee.surrey.ac.uk/Personal/L.Wood/constellations/tables/gsm.html
11th-Nov-2006 10:54 pm (UTC)
Какой UTF16, там же UCS2 непомнюкакойименно был вроде. BE, кажется.

PS: а ещё во времена inmetex мы как-то с Мишкой были вечером озарены деталями реализации pycuфukaцuu такой немалой кучи того, с чем народ народ ходил, что изрядное время думали, а как теперь с ней бороться, если не циферками. И таки решили циферками, где разве что вместо 0 воткнут O.
11th-Nov-2006 11:12 pm (UTC)
Если меня не подводит склероз, то UCS2 - это charset, а UTF-16 - это таки transport format для unicode charsets, в том числе - и для UCS2.
16th-Nov-2006 10:23 pm (UTC)
не знаю, нужно, нет, Гвинель Ле-Бодик, Мобильные сообщения. Службы и технологии SMS, EMS и MMS - http://rapidshare.com/files/3227176/SMS_EMS_MMS.rar
17th-Nov-2006 09:42 pm (UTC)
Вроде как у меня был оригинал, но - спасибо, заначу еще и перевод :)
19th-Jul-2007 07:28 am (UTC) - Reply Via Same SC
Кстати, растолкуйте плиз такую весчь: в SMS-настройках телефонов есть такая примочка "Ответ по тому же каналу" /"Reply Via Same SC", либо нечто подобное. При этом в сигнальных сообщениях устанавливается флаг "TP-Reply-Path", т.е. телефон абонента "Б" при ответе на полученное сообщение будет посылать его (пытаться посылать) на тот же SMSC, с которого сообщение было получено.
Механизм понятен.
Вопрос: в чем прикол, зачем это нужно ?
11th-Aug-2007 07:26 pm (UTC) - Re: Reply Via Same SC
Не знаю. ВОзможно, это пережитки времен, когда в SMS появлялись чарсеты, отличные от SMS charset, и были проблемы с передачей ответов.
8th-Sep-2010 05:18 pm (UTC) - как оно на самом деле
Anonymous
СМС имеет ограничение 140 байт потому что по радиоэфиру оно передается по сигнальному каналу. Сигнальный пакет имеет ограничение 160(примерно) байт. 20 байт тратится на служебную информацию (от кого, тип пакета, кодировка, протокол, тип сессии и т.п.)

оставшиеся 140 символов - под текст.

в MAP/TCAP ограничений на размер нет. в SCCP ограничение 252 байт на пакет (UNITDATA) и есть возможность посылать составные пакеты (XUNITDATA) или пакеты длиной до 4096 байт.
в MTP3/MTP2 ограничение 4096 байт. В расширенном MTP еще больше.
This page was loaded Jan 20th 2018, 7:13 am GMT.