Skip to content

Wie funktioniert unser Alltag? Teil 5 (SMS) Mystery Cache

This cache has been archived.

MNZL: Die Alltags-Serie liegt nun seit über 10 Jahren... Da ich nicht mehr in Recklinghausen wohne, ist die Wartung für mich schwierig geworden. Deshalb ist an dieser Stelle Schluß - und damit auch Platz für was Neues.

Auch wenn es sicherlich noch viele gibt, die die Lösung in der Schublade liegen haben - den wichtigsten Teil des Caches habt ihr gemacht: Ihr habt verstanden, wie unser Alltag funktioniert.

Ich möchte mich bei allen Loggern bedanken, für die netten Logs, und das eine oder andere Gespräch bei der Unterstützung auf dem Weg zur Lösung [:)]

Schönen Gruß und bis Bald im Wald,

MNZL

More
Hidden : 3/2/2009
Difficulty:
4 out of 5
Terrain:
1 out of 5

Size: Size:   micro (micro)

Join now to view geocache location details. It's free!

Watch

How Geocaching Works

Please note Use of geocaching.com services is subject to the terms and conditions in our disclaimer.

Geocache Description:

Diese kleine Cache-Serie soll euch die Augen dafür öffnen, wie einige Dinge, die wir im Alltag benutzen, funktionieren.


 

Wie funktioniert unser Alltag?


Teil 5 - SMS


 
Sie ist - gerade in der jüngeren Generation - nicht mehr wegzudenken: Die SMS.
 
Ursprünglich war die SMS ein Mittel, mit dem die Netzbetreiber die Nutzer über Störungen oder ähnliches informieren wollten. Trotzdem wurde die Möglichkeit zum versenden von SMS in viele Mobiltelefone integriert, und die Netzbetreiber waren überrascht, wie viel diese Funktion genutzt wurde. Anfangs war das versenden einer SMS oft noch kostenlos, doch schon bald witterten die Netzbetreiber riesige Gewinne. Denn der technische Aufwand für das verschicken von SMS ist verschwindend gering. Die Daten, die für eine SMS übertragen werden, entsprechen in etwa der Datenmenge, die für 60 Millisekunden(!) Gespräch übertragen werden müssen. Oder mal anders gerechnet: Würde man 1 Megabyte an Daten per SMS verschicken, kommt man bei einem Preis von 9 Cent pro SMS auf knapp 600 Euro. Ein Megabyte per UMTS zu übertragen kostet dagegen nur wenige Cent...
 
Warum nutzen wir dann SMS? Ein Vorteil: Man muß nicht direkt antworten wie im Gespräch, man kann sich die Antwort auf eine SMS gründlich überlegen. Ein weiterer Grund ist z.B., daß man SMS im Handy aufbewahren kann. Wird einem z.B. im Gespräch eine Telefonnummer mitgeteilt, müßte man entweder ein gutes Gedächtnis haben oder die Nummer notieren. Bekommt man die Nummer per SMS, kann man immer wieder darauf zugreifen.
 
Eigentlich ist es sogar falsch, die Kurznachricht SMS zu nennen - SMS bedeutet nämlich "Short Message Service", bezeichnet also den Dienst, der es ermöglicht, Kurzmitteilungen zu versenden. Die Kurzmitteilung wäre dann eine SM ("Short Message"), es hat sich aber nunmal der Begriff "SMS" eingebürgert.
 
Aber was passiert eigentlich im Hintergrund, wenn man so gedankenlos einfach Mal "Hallo, wie gehts?" an einen Freund schickt? Das Handy verpackt den zu sendenden Text und viele weitere Informationen in eine Art Maschinensprache und schickt das ganze an die Kurzmitteilungszentrale. Diese leitet die Kurzmitteilung dann an den Empfänger im eigenen Netz oder an die Kurzmitteilungszentrale des Netzes weiter, in dem das Handy des Empfängers gemeldet ist.
 
Aber wie sieht dieser Code aus, der da im Hintergrund durch das Netz läuft? Hier ein Beispiel für eine SMS, die ein Handy empfängt. Die SMS wurde am 02.03.2009 um 14:51:20 Uhr von der Nummer 01731234567 verschickt und enthält den Text "Hallo, wie gehts?":
 
0791947122720000040C9194711332547600019030204115020411C8309BFD6681EEE932E85C46D3E73F
 
Diese SMS kann man in zwei Teile unterteilen: Den Kopfteil (Header), der technische Informationen (Nummer des Absenders, Zeitpunkt, Typ der SMS etc) enthält und die eigentliche Textnachricht (Body).
 
Der Header sieht so aus:
0791947122720000040C9194711332547600019030204115020411
 
Doch was bedeuten diese Zahlen und Buchstaben?
 
07 Hier wird hexadezimal die Länge der Telefonummer der Kurzmitteilungszentrale in Bytes angegeben. Zwei Ziffern der Telefonnummer sind hier zu einem Byte zusammengefasst. Ein Byte kommt noch dazu: Es gibt an, in welchem Format die Nummer angegeben wurde (s.u.). Eine sieben hier heißt also, daß (nach Abzug des einen Bytes für die Formatangabe) die Nummer der Kurzmitteilungszentrale mit 6 Byte angegeben ist. Ein Byte enthält zwei Ziffern, also ist die Nummer zwölf Ziffern lang.
91 Hier wird das Format der Nummer der Kurzmitteilungszentrale angegeben. Die Nummer könnte ja im Format (+)49172... (international) oder 0172... (national) angegeben sein. Ist sie national angegeben, steht hier eine A1, ist sie international angegeben, steht hier eine 91. In diesem Fall ist sie also international angegeben.
94 71 22 72 00 00 Die Nummer der Kurzmitteilungszentrale. Sie ist - wie oben ermittelt - in sechs "Byte-Päckchen" verpackt. Um die Nummer zu ermitteln, müssen die beiden Ziffern im Bytepäckchen vertauscht werden. Die Nummer lautet hier also: 49 17 22 27 00 00, in unserer Schreibweise also (+)49/172/2270000
04 Diese hexadezimale Zahl muß in das Binärsystem umgewandelt werden. Wie das geht, habt ihr ja schon in den anderen Caches dieser Serie gelernt. Hexadezimal 04 ist binär 00000100.
  • Die ersten drei Nullen haben für normale SMS keine Bedeutung.
  • Die vierte Stelle zeigt an, ob der Absender einen Status-Report angefordert hat (ob er über die Auslieferung der SMS benachrichtigt werden möchte). Dann stünde hier eine eins. Hier ist das nicht der Fall, also wird der Absender nicht benachrichtigt.
  • Die fünfte Stelle ist nicht von Bedeutung.
  • Wenn an der sechsten Stelle eine 0 steht, heißt das, daß noch weitere SMS folgen, die an diese SMS angehängt werden (Stichwort: SMS mit mehr als 160 Zeichen). Das ist hier nicht der Fall, also ist die SMS komplett, an der sechsten Stelle steht eine 1.
  • Die siebte und achte Stelle enthält den Typ der SMS. 00 ist eine normale SMS, 10 wäre z.B. ein Status-Report.
0C Hier wird hexadezimal die Länge der Absendernummer angegeben, allerdings wird hier die Formatangabe nicht wie oben bei der Nummer der Kurzmitteilungszentrale mitgezählt. Und hier wird auch die tatsächliche Anzahl der Ziffern angegeben, hier werden nicht wie oben zwei Ziffern zu einem Byte zusammengefasst! Hexadezimal 0C ist dezimal 12, also ist die Absendernummer zwölf Ziffern lang.
91 Hier wird wie oben bei der Kurzmitteilungszentrale die Formatierung der Absendernummer angegeben. 91 bedeutet internationales Format.
94 71 13 32 54 76 Die Absendernummer. Auch hier sind wieder die Ziffern in den Zweierpäckchen vertauscht, die Nummer lautet also 49 17 31 23 45 67, normale Schreibweise: (+)49/173/1234567
00 Eine Angabe über das verwendete Protokoll, hier steht bei normalen SMS immer eine 00.
01 Auch diese hexadezimale Zahl muß in das Binärsystem umgewandelt werden: 00000001
  • Die ersten 4 Stellen sind ohne Bedeutung.
  • Die nächsten beiden Stellen geben an, in welchem Format die eigentliche Nachricht übertragen wird: 00 bedeutet "7-Bit-Text", eine Standard-Text-SMS. 01 würde z.B. für "8-Bit-Daten" (also z.B. Bilder, Klingeltöne, etc) stehen. Hier geht es also um eine Standard-Text-SMS.
  • Die letzten beiden Stellen geben an, was mit der SMS passieren soll: 00 steht für eine sogenannte Flash-SMS, die sofort bei Empfang auf dem Display angezeigt wird. 01 steht dafür, daß die SMS normal empfangen und manuell geöffnet werden muß. Das ist auch hier der Fall.
90 30 20 41 15 02 Die Absendezeit der SMS in der Reihenfolge "Jahr Monat Tag Stunde Minute Sekunde". Auch hier sind, wie bei der Telefonnummer, die Werte vertauscht. Hier steht also 02.03.09 14:51:20 Uhr
04 Hier wird die Zeitzone angegeben. 04 bedeutet GMT + 1 Stunde
11 Hier wird hexadezimal die Anzahl der Zeichen in der eigentlichen SMS (also im Body) angegeben. Hexadezimal 11 ist dezimal 17. Denn "Hallo, wie gehts?" sind genau 17 Zeichen...

 
So, das war der einfache Teil, jetzt wirds kompliziert... Die Nachricht selber wird nämlich ziemlich platzsparend verpackt.
 
Eine normale SMS ist maximal 160 Zeichen lang, und an jeder Stelle in der SMS sind 128 verschiedene Zeichen (Buchstaben, Zahlen, Satzzeichen) möglich. Um die 128 möglichen Zeichen im Binärsystem darstellen zu können, benötigt man pro Zeichen sieben Bit, also sieben Nullen und Einsen. Daten werden aber in ganzen Bytes übertragen, und ein Byte bestehtaus acht Bit. Man würde also pro übertragenem Zeichen ein Bit "verschenken". Dann wäre eine SMS nur maximal 140 Zeichen lang. Deshalb wird ein nicht ganz einfaches Verfahren benutzt, um auch die letzten Bits auszuntzen und somit die Länge einer SMS auf 160 Zeichen anzuheben.
 
Zunächst wird die übertragene Textnachricht in Zweierhäppchen aufgeteilt. Jedes Zweierhäppchen ist ein Byte. Für unsere Nachricht heißt das:
C8 30 9B FD 66 81 EE E9 32 E8 5C 46 D3 E7 3F
 
Diese 15 Bytes ergeben nachher die 17 Zeichen aus unserem Text. Es ist also nicht so, daß jedes Byte für ein Zeichen steht.
 
Die 15 Bytes werden nun von Hexadezimal nach Binär umgerechnet. C8 wird z.B zu 11001000. Ist die binäre Zahl nicht acht Zeichen lang, wird sie vorne mit Nullen aufgefüllt. Diese Zahl wird danach umgedreht, sie wird zu 00010011. Nun nimmt man nur die ersten sieben Stellen von dieser Zahl, denn man braucht ja nur 7 Bit, um das erste Zeichen der SMS darstellen zu können. Es bleibt also 0001001. Die letzte 1 bleibt übrig und wird nachher für das zweite Zeichen in der SMS gebraucht. Die gerade erhaltene 0001001 wird nun wieder umgedreht, es ergibt 1001000. Dieser Wert wird nun in das Dezimalsystem umgerechnet, es ergibt 72. Und in der Computersprache ist jedem Zeichen eine Zahl zugeordnet, sie ist in der sogenannten ASCII-Tabelle zu finden. Eine 72 ist ein "H". Wir haben das erste Zeichen unserer SMS entschlüsselt!
 
Weiter gehts mit dem nächsten Byte: 30. Eine Hexadezimale 30 ist binär eine 00110000, diese Zahl rückwärts ergibt 00001100. Davor kommt nun die 1, die oben übrig geblieben ist: 100001100. Hiervon nimmt man wieder nur die ersten sieben Stellen, also 1000011, die übrig bleibende "00" braucht man dann später für das dritte Zeichen der SMS. Die 1000011 wird wieder umgedreht, also 1100001. Das ergibt dezimal 97, und an der Stelle 97 in der ASCII-Tabelle steht ein kleines "a". Wir haben das zweite Zeichen unserer SMS entschlüsselt.
 
Das ganze wird ein bißchen deutlicher, wenn man es alles gleichzeitig untereinander schreibt. Hier mal ein Ausschnitt. Die ganze Tabelle könnt ihr sehen, wenn ihr auf das Bild klickt.
 

 
In der ersten Zeile stehen die hexadezimalen Werte der übertragenen Bytes. In der zweiten Zeile sieht man die gleichen Werte, nur binär geschrieben. In der dritten Zeile werden diese 8-stelligen Binärzahlen dann umgedreht. Die Zahlen in der vierten Zeile sind identisch mit denen in der dritten Zeile, nur sind die Päckchen jetzt in sieben Stellen pro Zahl aufgeteilt, sonst hat sich nichts geändert. In der fünften Zeile sind dann die die siebenstelligen Binärzahlen aus der vierten Zeile umgedreht. In der sechsten Zeile werden dann die siebenstelligen Binärzahlen in Dezimalzahlen umgerechnet. Und in der siebten Zeile stehen die Zeichen, die den Dezimalzahlen aus der sechsten Zeile in der ASCII-Tabelle zugeordnet sind. Fertig... :)
 
Um den Weg der einzelnen Nullen und Einsen in der Tabelle nach unten zu verdeutlichen, habe ich einige farblich markiert. Damit könnt ihr den Weg der Zahlen vielleicht ein bißchen besser nachvollziehen.
 
Hier kann man übrigens auch sehr schön erkennen, daß nach sieben Bytes bereits acht Zeichen entschlüsselt sind.
 
Ganz am Ende der vollständigen Tabelle bleibt in der vierten Zeile eine Null übrig. Das ist nicht weiter schlimm, denn wir wissen ja aus der letzten Zahl des Headers, daß die Nachricht nur 17 Zeichen lang ist. Und wir haben ja schon 17 Pakete á 7 Zahlen. Deshalb kann die übrig bleibende Null einfach ignoriert werden.
 
So, jetzt wißt ihr, was alles dahinter steckt, wenn man einfach nur eine SMS verschickt...
 
Den Cache findet ihr bei:
N51°33.5A7
E007°12.8B6
 
Die fehlenden Werte für A und B bekommt ihr per SMS:
 
0791947122720000040C9194715371067000019030202275310414C73A1D742EB7C363343D040AF66A2C610F06
 
PS: Wer den Header des Rätsels richtig entschlüsselt hat, hat nen Telefonjoker...
 
Eure Lösung für die Koordinaten könnt ihr auf Geochecker.com überprüfen.
 
Parken könnt ihr an den Mystery-Koordinaten. Bitte bringt einen Stift mit.
 
 
Übrigens: Es handelt sich hierbei um eine Cache-Serie. Weitere Caches:

Ganz wichtig: In jedem dieser Caches findet ihr auch eine Bonuszahl, die ihr euch notieren solltet. Denn ohne die könnt ihr den Bonus-Cache nicht finden...
 
Ich stehe zwar immer noch für alle Fragen zur Verfügung, aber da ich nicht mehr in Recklinghausen wohne, kümmert sich nun tlas um die Wartung der Dosen vor Ort. Vielen Dank dafür...

Additional Hints ()

zntargvfpu

Decryption Key

A|B|C|D|E|F|G|H|I|J|K|L|M
-------------------------
N|O|P|Q|R|S|T|U|V|W|X|Y|Z

(letter above equals below, and vice versa)

Advertising with Us