26.03.12

SMS od kuchni - jak to działa

U podstaw każdej technologii przesyłania informacji leży potrzeba kompresji danych. Ta idea towarzyszyła również, blisko 30 lat temu, twórcom serwisu krótkich wiadomości tekstowych.

Za najbardziej optymalne rozwiązanie wysyłania i odbierania wiadomości SMS (Short Message Service) przyjęto tryb PDU (Protocol Data Unit). Oczywiście istnieje możliwość przesyłania wiadomości w trybie tekstowym, jednak ze względu na to, że nie każde urządzenie GSM obsługuje ten tryb, w tym artykule skupimy się na PDU.

Jak sugeruje sama nazwa, SMS nie może być wiadomością długą. Decyzja o ustaleniu standardowej liczby znaków została podjęta na podstawie analizy ludzkich przyzwyczajeń. Gdy tworzono standardy komunikacji mobilnej, Friedhelm Hillebrand (szef Global System for Mobile Communications  - organizacji, która pracowała nad standardem GSM)  wyznaczył statystycznie ilość znaków w standardowych wiadomościach na kartkach pocztowych. Okazało się, że nadawcy wykorzystywali zazwyczaj około 150 znaków. Do tej liczby dodano jeszcze 10 zapasowych znaków i tak ustalono ostateczną formę SMS-a. Tak więc maksymalna długość pojedynczej wiadomości SMS to 160 7-bitowych znaków (domyślne kodowanie GSM). Taka forma krótkiej wiadomości tekstowej nie zmieniła się do dzisiaj. Od tej reguły są jednak pewne wyjątki.

Należy zaznaczyć, że kodowanie GSM nie zawiera polskich znaków. W przypadku zastosowania takich liter jak np. ą, ę, ć, ż, ł wiadomość zmienia kodowanie z 7-bitowego na 16-bitowe (UCS2), co skraca długość wiadomości ze 160 na 70 znaków -  podkreśla Grzegorz Lentzy, kierownik działu IT SMSAPI.pl. Oprócz wiadomości 7- i 16-bitowych, możliwa jest jeszcze forma 8-bitowa (kodowanie 140 znaków). Stosuje się ją zwykle do transmisji danych np. przesyłania wizytówek (v-card) lub ustawień WAP.

Kody ukryte w nagłówku

Z założenia 160 znaków powinno wystarczyć użytkownikom telefonii komórkowej do szybkiej komunikacji. Czasami jednak limit znaków zostaje przekroczony. Wysyłanie wiadomości dłuższych niż 160(GSM)/70(UCS2) znaków umożliwia usługa CSMS (Concatenated SMS), która po stronie nadawczej dzieli oryginalną wiadomość na części o standardowej długości, a nastepnie po stronie odbiorczej z powrotem składa je w całość, w celu prezentacji. Aby umożliwić identyfikację każdej części wiadomości niezbędne jest wprowadzenie dla każdej z nich nagłówka UDH (User Data Header), który zajmuje kilka pierwszych bitów wiadomości. Powoduje to skrócenie liczby znaków ze 160 do 153 na część (dla kodowania 7-bitowego). Sam nagłówek UDH zawiera następujące informacje:

1 element - długość nagłówka w oktetach
2 element - identyfikator wiadomości (00 - wiadomość wieloczęściowa z 8-bitowym numerem referencyjnym, 08 - wiadomość wieloczęściowa z 16-bitowym numerem referencyjnym)
3 element - długość nagłówka z wyłączeniem 3 pierwszych oktetów
4 element - numer referencyjny łączonej wiadomości - taki sam dla każdej z części
5 element - całkowita liczba części wiadomości
6 element - numer części wiadomości

Przykład łączonej wiadomości z 5-oktetowym nagłówkiem (05), 8-bitowym (00) numerem referencyjnym (AB), składającej się z dwóch (02) części o treści "text1text2":

05 00 03 AB 02 01 [text1 w trybie PDU]
05 00 03 AB 02 02 [text2 w trybie PDU]

Przykład łączonej wiadomości z 6-oktetowym nagłówkiem (06), 16-bitowym (08) numerem referencyjnym (43 21), składajacej się z trzech (03) części o treści "text3text2text1":

06 08 04 43 21 03 03 [text1 w trybie PDU]
06 08 04 43 21 03 02 [text2 w trybie PDU]
06 08 04 43 21 03 01 [text3 w trybie PDU]

Informacje z zaszyfrowanej wiadomości

Wiadomość SMS, oprócz samej treści (UD - User Data), zawiera w sobie szereg innych informacji (metainformacje). Należą do nich miedzy innymi.:

- numer centrum wiadomości (przypisany do sieci, z jakiej wysyłano SMS-a),
- numer lub nazwa nadawcy,
- data i godzina nadania wiadomości,
- DCS (Data Coding Scheme),
- ilość znaków wiadomości.

DCS to parametr, który zapisuje informacje o tym, czy tekst wiadomości jest skompresowany, jakiego użyto kodowania oraz do jakiej klasy należy wiadomość. Klasa wiadomości określa sposób jej zapisu i wyświetlania. Klasa 0 to tzw. FlashSMS - wiadomość, która zaraz po dotarciu wyswietlana jest na ekranie telefonu i nie zostaje zapisana w pamięci. Wiadomości tego typu są wykorzystywane zazwyczaj przez operatorów do przesyłania komunikatów sieciowych. Wiadomości klasy 1 mogą zostać zapisane w pamięci telefonu, wiadomości klasy 2 na karcie SIM, a wiadomości klasy 3 na zewnętrznej pamięci.

Przykład pojedynczej, odebranej wiadomości w trybie PDU (metainformacje, wiadomość [UD]):

sms-tech-1.jpg

Parametr długości wiadomości (UDL) wskazuje liczbę septetów w przypadku kodowania 7-bitowego lub liczbę oktetów w przypadku kodowania 8-bitowego czy też podwójnych oktetów w kodowaniu 16-bitowym (wskazanego przez parametr DCS). W przypadku wiadomości, która została podzielona z wykorzystaniem CSMS, na początku ciągu danych wiadomości (UD) dodawany jest nagłowek UDH (por. Rys. 1).

Wiadomość ponadczasowa

Koncepcja SMS-a oraz rozwiązania technologiczne, na bazie których działa usługa przesysłania krótkich wiadomości tekstowych, zostały opracowane jeszcze w 1985 roku. To wtedy organizacja Global System for Mobile Communications zaakceptowała rozwiązanie technologiczne, które pozostało niezmienione do dzisiaj.

Od czasu ustalenia ostatecznej formy SMS-a upłynęło już 27 lat, ale nadal ludzie na całym świecie korzystają z tej samej, sprawdzonej technologii. Protokół, który pozwala na wysyłanie i odbieranie wiadomości tekstowych jest prosty, a jednocześnie bardzo funkcjonalny. Dzięki temu SMS jest jednym z niewielu wynalazków XX wieku, które znajdują się w powszechnym użyciu i jednocześnie, mimo upływu lat, "nie starzeją się". To, że dzisiaj SMS-y są tak popularne, zawdzięczamy właśnie prostocie rozwiązania technicznego, na którym opiera się cały ten system - podsumowuje Grzegorz Lentzy, SMSAPI.pl.

Rys. 1: uproszczony schemat budowy wiadomości SMS

sms-tech-schema.jpg

 fot. Dreammasterphotographer | Dreamstime.com




najnowszy numer

Ekspert 3/2011

Ekspert 3/2011

Ekspert 3/2011 - Sieć koniec problemów
W numerze: Sieć bez problemów, własny sklep na Facebooku, technologia chmury, Objective-C i programowanie w Adobe Flex.

czytaj dalej
HP konkurs Upgrade your office

forum gorące wątki