Technische Universität Ilmenau Fakultät für

Transcription

Technische Universität Ilmenau Fakultät für
Technische Universität Ilmenau
Fakultät für Elektrotechnik und Informationstechnik
Studienarbeit
GPRS-Kommunikationsmodul
vorgelegt von:
Florian Evers
verteidigt am:
23. 04. 2004
E-Mail Adresse:
geboren am:
Studiengang:
Studienrichtung:
Ingenieurinformatik
Multimediale Informations- und
Kommunikationssysteme
Betreuer:
Betrieblicher Betreuer:
Bei Firma:
Prof. Dr. rer. nat. habil. Jochen Seitz
Dr. Jan Rudorfer,
BN Automation AG
Gewerbegebiet Am Wald“ 5a, 98693 Ilmenau
”
2
Zusammenfassung
In der Wasserversorgungswirtschaft steht als häufiges Problem die kostengünstige Erschließung von räumlich verteilten Objekten (wie Regenüberlaufbecken oder Wasserzählschächten) zum Zweck der Überwachung
und Datenerfassung an. Gewünscht wird eine laufende Prozessüberwachung mit der Möglichkeit einer Alarmierung in Ausnahmesituation. Dazu
soll vor Ort eine Automatisierungsstation verwendet werden, die Daten
aufnehmen und lokal zwischenspeichern kann. Die gesammelten Daten sollen ausgewertet und später an eine übergeordnete Station übertragen werden. Diese Auswertung umfasst beispielsweise die Erkennung kritischer Systemzustände oder eine Mittelung über mehrere Messwerte im Sinne einer
Datenreduktion.
Als Übertragungstechnik bietet sich hierbei der mittlerweile quasi flächendeckend verfügbare, drahtlose Datenübertragungsdienst GPRS1 an.
Er kann mit Hilfe von handelsüblicher Hardware genutzt werden.
Als erste Teilaufgabe gilt es ein GPRS-Modem2 an einer auf Microsoft Windows CE 4.1 basierenden Automatisierungsstation in Betrieb zu
nehmen. Ziel ist eine Einwahlverbindung ins Internet, damit ein TCP/IP
basierter Datenaustausch mit einer Leitstation erfolgen kann.
Als nächstes soll eine Modulstruktur entworfen und implementiert werden, die eine parallele Verwendung mehrerer verschiedener Kommunikationswege erlaubt. Die einzelnen Module sollen dabei über eine fest definierte
Schnittstelle verfügen, damit sie transparent gegeneinander ausgetauscht
werden können. Zu lösende Aspekte sind dabei das Verhalten im Fehlerfalle
(Verbindungsabriss), die Behandlung von Prioritäten und die Anpassung
der zu versendenden Daten an das Übertragungsmedium.
Nebenher sind viele Tests und Recherchen notwendig. Speziell das Thema Sicherheit ist wegen der Verwendung von Microsoft Windows CE ein
wichtiger Punkt, der betrachtet werden soll.
1
2
General Packet Radio Service, ein Mobilfunk-Datendienst.
Ein Modem vom Typ Siemens MC35i.
INHALTSVERZEICHNIS
3
Inhaltsverzeichnis
1 Vorwort
1.1 Über die Firma . . . . . . . . . . . . . . . . .
1.2 Das Hochbehälterproblem“ . . . . . . . . . .
”
1.2.1 Die verteilten Stationen . . . . . . . .
1.2.2 Die Leitstation . . . . . . . . . . . . .
1.2.3 Die Aufgaben der Stationen im Detail
1.3 Aufgabe . . . . . . . . . . . . . . . . . . . . .
1.3.1 Situation vor der Arbeitsaufnahme . .
1.3.2 Aufgabenstellung . . . . . . . . . . . .
.
.
.
.
.
.
.
.
6
6
6
8
9
9
11
11
11
.
.
.
.
.
.
13
13
14
14
16
17
19
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
22
22
23
24
25
26
26
26
29
30
30
30
32
33
35
35
35
36
4 Kommunikation über GPRS
4.1 Nutzerschnittstelle des GPRS-Modems . . . . . . . . . . . . . . .
4.2 Inbetriebnahme des GPRS-Modems . . . . . . . . . . . . . . . . .
39
39
39
2 Modulares Kommunikationsmodell
2.1 Schichtenmodelle . . . . . . . . . . .
2.2 Kommunikationsmodell . . . . . . . .
2.2.1 Beteiligte Komponenten . . .
2.2.2 Trennung in einzelne Module
2.2.3 Der Kommunikationsmanager
2.2.4 Die Kommunikationsmodule .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Die einzelnen Module im Detail
3.1 Der Kommunikationsmanager . . . . . . . . . . . . . . . . .
3.1.1 Kommunikation über Dateien . . . . . . . . . . . . .
3.1.2 Warteschlangen und Prioritäten . . . . . . . . . . . .
3.1.3 Fragmentierung / Reassemblierung . . . . . . . . . .
3.1.4 Datenbank für die Kommunikationsmodule . . . . . .
3.1.5 Wegewahl / Routing . . . . . . . . . . . . . . . . . .
3.2 Die Kommunikationsmodule . . . . . . . . . . . . . . . . . .
3.2.1 Anpassung an das Übertragungsmedium . . . . . . .
3.2.2 Telegrammdienst . . . . . . . . . . . . . . . . . . . .
3.2.3 Quittierungen . . . . . . . . . . . . . . . . . . . . . .
3.3 Interprozesskommunikation . . . . . . . . . . . . . . . . . . .
3.3.1 Kommunikation zwischen den Modulen . . . . . . . .
3.3.2 Mögliche Ansätze zum Datenaustausch . . . . . . . .
3.3.3 Interprozesskommunikation über Sockets . . . . . . .
3.4 Schnittstellen und Protokolle . . . . . . . . . . . . . . . . . .
3.4.1 Schnittstelle oberhalb des Kommunikationsmanagers
3.4.2 Protokoll zwischen Kommunikationsmanagern . . . .
3.4.3 Protokolle des Prototyp . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
INHALTSVERZEICHNIS
4.3
4.4
4.2.1 Die Hardware vorbereiten . . . . . . . . . . . . . . .
4.2.2 Testen des AT-Befehlssatzes . . . . . . . . . . . . . .
4.2.3 Konfiguration zur Einwahl in das Internet über PPP
4.2.4 Test der aufgebauten Verbindung . . . . . . . . . . .
Windows CE .NET 4.1 und GPRS . . . . . . . . . . . . . .
4.3.1 Zur Einwahl notwendige Schritte . . . . . . . . . . .
4.3.2 Die einzelnen Schritte im Detail . . . . . . . . . . . .
Besonderheiten bei der Nutzung von GPRS . . . . . . . . .
4.4.1 Quality of Service . . . . . . . . . . . . . . . . . . . .
4.4.2 Die TCP/IP Problematik . . . . . . . . . . . . . . .
4.4.3 Nutzbare Datenraten . . . . . . . . . . . . . . . . . .
5 Versuchsaufbau und verwendete Hardware
5.1 Aufbau des Netzwerkes . . . . . . . . . . . . . .
5.2 Der embedded PC . . . . . . . . . . . . . . . .
5.3 Der PC: Entwicklungsumgebung und Leitstation
5.4 Der Router / Gateway . . . . . . . . . . . . . .
5.5 Dynamische DNS-Einträge . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6 Sonstige Betrachtungen
6.1 Sicherheit . . . . . . . . . . . . . . . . . . . . . . . .
6.1.1 Offene Ports . . . . . . . . . . . . . . . . . . .
6.1.2 Firewall . . . . . . . . . . . . . . . . . . . . .
6.1.3 Nessus-Scan . . . . . . . . . . . . . . . . . . .
6.1.4 Fehlende Langzeiterfahrung, versteckte Lücken
6.1.5 Kostenpflichtige Luftschnittstelle . . . . . . .
6.2 Zukunftsaussichten . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
39
40
44
44
45
45
46
51
51
51
52
.
.
.
.
.
54
54
55
56
57
59
.
.
.
.
.
.
.
60
60
60
60
61
62
63
64
7 Zusammenfassung / erreichte Ziele
66
A Technische Daten: Modem Siemens MC35i
69
B Tarifübersicht GPRS Tarife
B.1 T-D1 Tarife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.2 Vodafone Tarife . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
70
70
C Konfiguration des Routers
C.1 Informationen zum Skript . . . . . . . . . . . . . . . . . . . . . .
C.2 Das Skript bridge-up . . . . . . . . . . . . . . . . . . . . . . . .
71
71
71
D Portscans: Windows CE.NET 4.1
D.1 Ergebnisse des TCP/IP Portscans . . . . . . . . . . . . . . . . . .
D.2 Ergebnisse des UDP/IP Portscans . . . . . . . . . . . . . . . . . .
74
74
74
INHALTSVERZEICHNIS
E Nessus-Report: Windows CE.NET 4.1
E.1 Routerkonfiguration für Nessusscan . .
E.2 Das Skript nessus-up . . . . . . . . .
E.3 Mitteilung des Testergebnisses . . . . .
E.4 Scanergebnis Nessus-Scan . . . . . . .
5
.
.
.
.
75
75
75
76
76
F Konfiguration des Modems unter Linux
F.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
F.2 Bildschirmfotos von Yast2 . . . . . . . . . . . . . . . . . . . . . .
82
82
82
G Logfile: Interneteinwahl GPRS-Modem
86
H Abkürzungsverzeichnis
88
Literaturverzeichnis
91
Abbildungsverzeichnis
93
Tabellenverzeichnis
94
Abschlusserklärung
95
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
1 VORWORT
1
1.1
Vorwort
Über die Firma
Die vorliegende Studienarbeit wurde bei der selben Firma absolviert, bei der der
Autor auch schon sein Betriebspraktikum im 7. Semester durchgeführt hatte.
Die Firma BN Automation AG ist im Bereich der Ver- und Entsorgung von
Wasser/Abwasser tätig und hat sich auf die Entwicklung von Gesamtlösungen im
Bereich der Automatisierungstechnik spezialisiert.
Der zweite Schwerpunkt der Firma liegt im Bereich der Netzwerktechnik. Sie
bietet hier als DATEV-Systempartner ein eigenständiges Dienstleistungsangebot
an. Hier wurden bereits vielen Steuerberatern und Industriebetrieben die rechentechnischen Einrichtungen eingerichtet und gepflegt.
Die Firma BN Automation AG ist über die folgende Anschrift zu erreichen:
BN Automation AG
Gewerbegebiet Am Wald“ 5a
”
98693 Ilmenau
Homepage unter http://www.bn-automation.de
1.2
Das Hochbehälterproblem“
”
Sowohl die damalige Praktikumsaufgabe als auch diese Studienarbeit drehen sich
um ein Themengebiet, welches innerhalb der Firma unter dem Oberbegriff Das
”
Hochbehälterproblem“ bekannt ist. Dabei geht es um die Überwachung mehrerer
räumlich verteilter Objekte, wie zum Beispiel die genannten Hochbehälter aus
der Wasserversorgungswirtschaft.
An diesen Hochbehältern sollen laufend Prozessgrößen wie der aktuelle Wasserstand ermittelt werden. Kritische Zustände (Füllstand oder Beobachtung von
Alarmkontakten) sollen erkannt und gemeldet werden. Hauptproblem dabei ist
die weiträumige Verteilung der einzelnen Stationen. Sie bringt spezielle Anforderungen an die Mechanismen zur Datenübermittlung mit sich. Bei der Anbindung
stehen je nach Umfeld mehrere Technologien zur Verfügung. Das Spektrum reicht
dabei von klassischen Wählverbindungen über GPRS bis hin zu speziellen Übertragungstechniken wie der Nutzung von Betriebsfunk.
Lösungsansatz hierfür soll ein neues Gerät“ mit einer gewissen Eigenintelli”
genz sein. Der spätere Anwender installiert es am zu überwachenden Prozess, wo
die Station die Aufgabe der Messwerterfassung übernimmt. Gleichzeitig soll sie
die Daten vorverdichten3 und kritische Prozesszustände4 erkennen können. Zwischen den abgesetzten Stationen und der Leitstation existieren keine dauerhaften
3
Beispielsweise durch Mittelung mehrerer Messwerte. Dies dient der Entfernung von Störeinflüssen und der Reduktion des Datenaufkommens.
4
Zum Beispiel drohende Havarie.
1.2 Das Hochbehälterproblem“
”
7
Standleitungen. Ein Verbindungsmanagement verwaltet hierbei die nur zeitweise genutzten Datenübertragungseinrichtungen. Es soll die anfallenden Übertragungskosten minimieren. Ein Anwendungsbeispiel ist das Sammeln von Daten
über den Tag hinweg, um sie einmal täglich über eine Telefonleitung an die Leitstation zu übermitteln. Zusätzlich kann eine Station im Falle eines auftretenden
Alarmzustandes eine außerplanmäßige Verbindung aufbauen, um kritische Zustände zu melden.
10
10
Embedded PC
Embedded PC
10
10
Embedded PC
Embedded PC
10
Embedded PC
10
Embedded PC
Abbildung 1: Eine Leitstation überwacht mehrere verteilte Stationen
Abbildung 1 zeigt eine solche Anordnung. Eine Leitstation kann mit mehreren verteilten Automatisierungsstationen kommunizieren. Die Stationen sammeln
direkt am Prozess Daten und speichern diese zwischen. Bei Bedarf können die Stationen beidseitig eine Datenverbindung aufbauen, um die gesammelten Daten zu
übermitteln.
Dieser sternförmige Aufbau ist dabei nicht die einzige Netztopologie, die in der
Praxis vorkommen kann. Einzelne Stationen müssen in bestimmten Einsatzszenarien in der Lage sein, eine Art Wegewahl durchzuführen. Bei der Verwendung
von Betriebsfunk kann es vorkommen, dass eine Art Vermittlungsstation“ auf
”
einem hoch gelegenen Punkt montiert wird. Sie kommuniziert über Funk mit
den restlichen Automatisierungsstationen. Die Verbindung mit der Leitstation
erfolgt hierbei ausschließlich über die zentrale Vermittlungsstation. Sie ist mit
der Leitstation beispielsweise über eine Wählverbindung verbunden. Eine solche
Anordnung wird in Abbildung 2 gezeigt.
8
1 VORWORT
Funk
10
Embedded PC
10
Embedded PC
Berg
Funk
Funk
10
Embedded PC
ISDN
10
Embedded PC
Abbildung 2: Erreichbarkeit über eine Vermittlungsstation
1.2.1
Die verteilten Stationen
Für die verteilten Automatisierungsstationen kommen Industrie-PC’s der Firma
Beckhoff zum Einsatz. Diese basieren auf eingebetteten5 PC’s, die aufgrund ihrer
Bauform6 direkt mit in den Schaltschränken verbaut werden können. Abbildung
3 zeigt ein Bild eines solchen Beckhoff-PC’s.
Abbildung 3: Bilder der verwendeten Beckhoff-Station
Der zum Einsatz kommende Beckhoff CX1001-0011“ verfügt über ein klemm”
bares Bussystem. Über dieses können weitere Baugruppen7 hinzugefügt werden.
Sie hängen direkt am Beckhoff-PC und bilden eine Klemmleiste.
5
Eingebettet bedeutet, dass es sich hierbei technisch um einen PC handelt, welcher aber
nicht als solcher in Erscheinung tritt. Er ist Bestandteil einer bestimmten Komponente, wie
hier einer intelligenten Klemmleiste.“
”
6
Sie sind direkt auf Hutschinen montierbar.
7
Es gibt unter anderem Baugruppen mit mehreren analogen Eingängen, digitalen Eingängen
oder digitalen Ausgängen.
1.2 Das Hochbehälterproblem“
”
9
Auf dem integrierten Rechner läuft als Betriebssystem Microsoft Windows
CE.NET 4.1, sowie eine vom Beckhoff ausgelieferte Soft-SPS8 . Sie kümmert sich
um die gesamte Messwertaufnahme. Es bleibt noch genügend Rechenkapazität
übrig, damit ein Programmierer selbstentwickelte Programme auf der Station
betreiben kann.
1.2.2
Die Leitstation
Als zentrale Leitstation kommt ein handelsüblicher PC mit Microsoft Windows
2000 zum Einsatz. Er sammelt die Daten, die an den verteilten Stationen anfallen.
Eintreffende Alarmmeldungen werden von der Leitstation sofort bearbeitet oder
weitergeleitet. Sie angesammelten Daten können dann von der Leitstation auf
vielfältige Weise weiterverarbeitet werden. Die Verwendungszwecke reichen von
einer Speicherung in einem Geschichtsdatenarchiv bis zur sofortigen Weiterleitung
an eine übergeordnete Leitwarte.
Die Leitstation bietet außerdem eine zentrale Parametrierschnittstelle für das
verteilte System. Im Idealfall soll hier der Nutzer einen Zugriff auf alle Datenpunkte erhalten und gegebenfalls Änderungen durchführen können. Die geänderten Konfigurationen werden dann den verteilten Stationen mitgeteilt.
1.2.3
Die Aufgaben der Stationen im Detail
Kern der Automatisierungsstationen ist eine auf Software basierende, Speicher”
programmierbare Steuerung“ (Soft-SPS). Um diese Soft-SPS herum arbeiten diverse Module, die ihr noch weitere Funktionalität hinzufügen. Eine der Hauptaufgaben ist die automatische Aufnahme von Messwerten an einem Prozess und
deren Zwischenspeicherung. Je nach Konfiguration übertragen die Stationen diese Daten entweder sofort oder beim nächsten Sammelabruf an die übergeordnete
Leitstation.
Die Aufgabe dieser Studienarbeit zielt nicht auf die Funktionalität innerhalb
der Soft-SPS oder deren nachgeschaltete Bearbeitungsmodule, sondern auf die
Ausarbeitung einer modularen Kommunikationsschnittstelle. Sie soll den Datentransfer über mehrere Datenübertragungstechnologien9 ermöglichen.
Die zu Grunde liegenden Kommunikationstechnologien sollen einfach gegeneinander austauschbar sein. Die gesamte Funktionalität zur Kommunikation wird
dafür in spezialisierte Kommunikationsmodule gruppiert.
Einen Überblick über die interne Struktur einer Station gibt Abbildung Nr.
4 auf Seite 10. Dort befindet sich die Soft-SPS, die für die Prozesskopplung zuständig ist. Sie enthält einen integrierten Timer, um periodische Ereignisse anzustoßen.
8
9
Eine auf Software basierende, speicherprogrammierbare Steuerung.
ISDN, GPRS, Betriebsfunk sowie diverse Weitere und Zukünftige.
10
1 VORWORT
Verarbeitungsmodule
Dispatcher
Soft SPS
Timer
Spontan−
archiv
Zyklische
Meldungen
Realtime
Grenzwert−
überwachung
stromausfallsicherer Zwischenspeicher
Webserver
Kommunikationsmanager
LAN
Funk
GPRS
Abbildung 4: Interner Aufbau einer Automatisierungsstation
Die von der Soft-SPS ermittelten Messwerte und Datenpunkte reicht sie dann
an spezielle Weiterverarbeitungsmodule weiter. Hier können zum Beispiel Filter
realisiert werden, die über mehrere gemessene Analogwerte mitteln10 .
Die in Abbildung 4 gezeigten Verarbeitungsmodule sind jeweils für einen bestimmten Typ von Datenpunkt zuständig:
• Spontanarchiv:
In diese Kategorie fallen alle Datenpunkte, die von der Station auf Veränderungen überwacht werden sollen. Dies kann ein umspringender Zählerstand
oder ein ein Toleranzintervall verlassender, analoger Messwert sein. Ausnahme sind binäre Signale, die so genannten Meldungen. Sie bilden eine
eigene Gruppe.
• Zyklische:
Zyklische Messwerte sind Datenpunkte, deren Zustände von der Station periodisch neu gemessen werden. Ein Beispiel ist die minütliche Messung eines
Wasserstandes an einer Talsperre. Das Verarbeitungsmodul ist in der Lage, die gewonnenen Daten auf Wunsch weiter zu verarbeiten. Es verrechnet
dabei mehrere zeitlich aufeinander folgende Messwerte zu einem Mittelwert
(Vorverdichtung der Daten).
• Meldungen:
Zu der Gruppe der Meldungen gehören alle binären Datenpunkte. Solche
Signale werden von vielen Baugruppen zum Signalisieren von Störungen
verwendet ( Störungsmelde-Ausgänge“). Zur Weiterverarbeitung kann das
”
Modul so genannte Totzeiten berücksichtigen. Es meldet dann nur längerfristige Störungen an die Leitstation.
10
Generell: Aufbereitung der Daten und Vorverdichtung.
1.3 Aufgabe
11
• Realtime:
Das Realtime-Modul hält ein so genanntes Prozessabbild“ vor. Wenn sich
”
ein entfernter Nutzer sofort über den aktuellen Zustand diverser Datenpunkte informieren möchte, kann er hiermit die aktuellen Messwerte auch
unabhängig von eingestellten Messintervallen prüfen.
• Grenzwertüberwachung:
Das Grenzwertmodul überwacht Datenpunkte auf Über- oder Unterschreitung eines Grenzwertes. Es erzeugt immer dann eine Nachricht, wenn ein
Datenpunkt ein Gültigkeitsintervall verlässt oder wieder betritt.
An diesem Punkt ist die Automatisierungsstation fertig mit der Vorverarbeitung der Daten. Sie muss die Daten an die Leitstation versenden. Diese Aufgabe
fällt dem nachgeschalteten Kommunikationsmanager zu. Um ihn zu nutzen, versehen die Verarbeitungsmodule den zu übertragenden Datenpunkt mit der Stationsadresse des Empfängers11 und legen die Nachricht als Datei in einem einem
stromausfallsicheren Übergabeverzeichnis ab. Der Kommunikationsmanager wird
die Nachricht daraufhin an die Zielstation versenden.
1.3
1.3.1
Aufgabe
Situation vor der Arbeitsaufnahme
Bei Beginn der Studienarbeit näherte sich bereits eine funktionstüchtige Umsetzung des Gesamtprojektes seiner Fertigstellung. Sie war jedoch sehr spezialisiert und nur mit einer einzigen Datenübertragungsmöglichkeit über Betriebsfunk
ausgestattet. Es funktionierte zwar bereits, jedoch war der gesamte kommunikationsbezogene Programmteil ein einziger monolithischer Block. Es wäre schwierig geworden, diese Struktur um weitere Kommunikationswege zu erweitern. Die
funkspezifischen Mechanismen waren zu eng mit dem Hauptprogramm verstrickt.
1.3.2
Aufgabenstellung
Der Kern dieser Studienarbeit ist die Ausarbeitung einer modular aufgebauten
Kommunikationsschicht“, die den bisherigen monolithischen Kommunikations”
block ersetzen soll. Diese Struktur soll mit den unterschiedlichsten Kommunikationstechnologien zusammenarbeiten, und eine einfache Erweiterung um neue
Kommunikationswege ermöglichen. Die Station soll dann im laufenden Betrieb
aus einer gegebenen Anzahl von Kommunikationswegen den günstigsten heraussuchen und hierüber die Daten versenden. Günstig“ kann dabei Verschiedenes
”
bedeuten. Zielstellung kann eine Kostenminimierung oder eine möglicht hohe Datenübertragungsrate sein.
11
Der Empfänger wird in diesem Falle die Leitstation sein.
12
1 VORWORT
Der neue Ansatz basiert dabei auf einer Gruppierung der bereits vorhandenen
Kommunikationsroutinen. Speziell auf eine konkrete Übertragungstechnologie zugeschnittene Kommunikationsmodule erledigen den Zugriff auf die verwendeten
Medien, während ein modulübergreifender Kommunikationsmanager die einzelnen Module verwaltet und anspricht.
Alle diese Kommunikationsmodule verfügen über eine fest definierte Schnittstelle, damit sie sich später gegeneinander austauschen lassen. Dies vereinfacht
die Entwicklung zukünftiger Kommunikationsmodule, die auf jetzt noch nicht verwendeten Kommunikationstechnologien basieren werden. Der Entwickler braucht
dann lediglich ein weiteres Kommunikationsmodul zu entwickeln, ohne dass Änderungen an anderen Stellen des Systems notwendig werden.
Des Weiteren stand der konkrete Wunsch im Raum, Stationen in zukünftigen
Projekten mit GPRS anzusprechen. GPRS ist dank der mittlerweile fast flächendeckenden Verfügbarkeit von GSM12 ein vielversprechender Ansatz zur Datenübertragung. Dies gilt besonders wenn mit weit voneinander entfernten Stationen
gearbeitet werden soll.
Zusammenfassend umfasst die Studienarbeit mehrere Teilaufgaben:
• Inbetriebnahme eines GPRS-Modems (Siemens MC35i) unter Microsoft
Windows CE.NET 4.1.
• Entwicklung einer C++ -Klasse zur Ansteuerung des Modems mit Dokumentation der zur Einwahl notwendigen Schritte.
• Entwurf einer modularen Kommunikationsstruktur.
• Implementierung eines auf GPRS spezialisierten Prototyps eines Kommunikationsmoduls für den Beckhoff-PC.
• Implementierung eines auf Ethernet spezialisierten Prototyps eines Kommunikationsmoduls für die Leitstation, welche über Ethernet13 mit dem
Internet verbunden ist.
• Weiterentwicklung des Prototyps bis zu einer Ausbaustufe, die den Datenaustausch zwischen der Leitstation und einem embedded PC im Rahmen
eines Versuchsaufbaus ermöglicht. Er soll speziell die Modulstruktur umsetzen und GPRS als Kommunikationsmedium nutzen.
12
Global System for Mobile Communication.
Die Leitstation ist Bestandteil eines lokalen Netwerkes. Die Internetverbindung wird über
einen Router bereitgestellt.
13
13
2
Modulares Kommunikationsmodell
2.1
Schichtenmodelle
Bevor die einzelnen Modelle beschrieben werden, müssen die verwendeten Begrifflichkeiten geklärt werden. Die folgenden Abschnitte enthalten diverse Fachbegriffe
aus dem Themenbereich Schichtenmodelle nach ISO/OSI14“, deren Kenntnis in
”
den entsprechenden Abschnitten vorausgesetzt wird.
Die einzelnen entworfenen Module enthalten selbst entwickelte Mechanismen
zur Aufbereitung und Versendung von Daten, was der Oberbegriff des Proto”
kolls“ zusammenfasst. Die einzelnen Module stehen untereinander in einer Abhängigkeitsbeziehung, und unterscheiden sich in ihrer Funktion als Dienstneh”
mer“ und Diensterbringer“. Bei der Spezifikation von Protokollen und Diensten
”
trifft man unweigerlich auf eine Ansammlung an dreibuchstabigen Abkürzungen,
wie in Schema 5 dargestellt.
(N+1)−PCI
(N)−ICI
(N+1)−SDU
(N+1)−PDU
Schicht N+1
Schicht N
(N)−IDU
(N)−SDU
(N)−PCI
(N)−PCI
(N)−ICI
(N−1)−ICI
(N)−SDU
(N)−PDU
Schicht N
Schicht N−1
IDU
PCI
SDU
ICI
PDU
:
:
:
:
:
Interface Data Unit
Protocol Control Information
Service Data Unit
Interface Control Information
Protocol Data Unit
(N−1)−IDU
(N−1)−SDU
(N−1)−ICI
Abbildung 5: Protokollinformationen und -overhead nach ISO/OSI
An dieser Stelle sollen die dahinterstehenden Ideen und Mechanismen aber
nicht vertieft werden, denn dafür sind Fachbücher zum Thema Kommunikationsnetze (siehe [KrRe02]) besser geeignet. Eine solche Wiederholung würde den
Rahmen dieses Berichtes sprengen, aber es ist schon von Vorteil, wenn der Leser
an der entsprechenden Stelle im Bericht Begriffe wie PDU“ (Protocol Data Unit)
”
einordnen kann.
14
International Organization for Standardization/ Open Systems Interconnection.
14
2.2
2.2.1
2 MODULARES KOMMUNIKATIONSMODELL
Kommunikationsmodell
Beteiligte Komponenten
Die gewünschte Infrastruktur soll Daten in Form einzelner Dateien zwischen zwei
beteiligten Stationen übertragen. Diese Dateien können gemessene Werte einzelner Datenpunkte, aber auch Steuerungsinformationen enthalten. Der Inhalt der
Dateien ist an dieser Stelle unwichtig. Die Infrastruktur soll die Daten transparent
versenden, ohne sie zu interpretieren.
Der Kommunikationsmanager nimmt dabei die Dateien von den Verarbeitungsmodulen entgegen. Er ist ein selbständiges Programm, welches auf allen
Stationen des verteilten Verbundes läuft und sich um die Zustellung zur Zielstation kümmert. Dort angekommen, werden die Daten vom lokalen Kommunikationsmanager wieder in Form von Dateien im Dateisystem (Übergabeverzeichnis)
abgelegt. Wenn man den gesamten Kommunikationsmechanismus als Black-Box“
”
ansieht, dann verdeutlicht Abbildung 6 diesen Ansatz der Dateienübertragung.
Station1
VM
Station 2
Datei
Kommunikationsmanager
Archiv
Datei
Kommunikationsmanager
Übertragungsmedium
VM : Verarbeitungsmodule
Abbildung 6: Versendung von Dateien: Kommunikationsmanager
Der Kommunikationsmanager bedient sich der Funktionen seiner Kommunikationsmodule, die ihm einen vereinfachten Zugriff auf die zur Verfügung stehenden Kommunikationsanbindungen bieten. Verschiedene Anbindungen erfordern
verschiedene Strategien zum Datentransfer. Die Kommunikationsmodule fassen
die für ein spezielles Medium notwendigen Funktionen zu spezialisierten Blöcken
zusammen.
Die zu übertragenden Dateien werden vom Kommunikationsmanager aufbereitet15 und an ein passendes16 Kommunikationsmodul übergeben. Dieses überträgt
die Daten an die nächste Station, auf der wiederum ein Kommunikationsmodul
15
Die Dateien werden nach Prioritäten sortiert und in kleinere Fragmente zerteilt.
Diese Auswahl erfolgt nach verschiedenen Kriterien (Erreichbarkeit, Kosten, . . . ), die noch
genauer betrachtet werden.
16
2.2 Kommunikationsmodell
15
arbeitet welches die Daten entgegennimmt. Das Zusammenspiel ist in Schema 7
erkennbar.
Station1
Station 2
Datei
Datei
Kommunikationsmanager
Kommunikationsmanager
GPRS−Modul
Sonstiges Modul
LAN−Modul
Internet
GSM
LAN
DSL
DSL−Einwahlrouter
Abbildung 7: Nutzung von Kommunikationsmodulen zur Datenübertragung
Eine einzelne Station kann dabei über mehrere Anbindungen verfügen. In bestimmten Szenarien werden einzelne Stationen als so genannte Relaisstationen17“
”
eingesetzt, die die Datenpakete von nicht direkt mit der Leitstation verbundenen
Stationen entgegennehmen und weiterleiten. Abbildung 8 zeigt einen solchen Fall.
Hier sind neben der Leitstation noch zwei verteilte Stationen zu erkennen, die in
einem Local Area Network“ (LAN) miteinander kommunizieren. Die im Schema
”
linke Station ist per GPRS mit der Leitstation verbunden, und erhält für den Fall
des Ausfalles von GPRS noch eine Ersatz-Anbindung (Backup-Link) über ISDN.
Leitstation
Embedded PC Nr. 1
Embedded PC Nr. 2
Übergabeverzeichnis
Übergabeverzeichnis
Übergabeverzeichnis
Kommunikations−
manager
Kommunikations−
manager
Kommunikations−
manager
GPRS
ISDN
LAN
LAN
ISDN
GPRS
LAN
RAS−Einwahlserver auf Server und Client, PPP−Verbindung
Einwahl ins GPRS−Netz mit IP−Adresse auf Client, Providerzugang ins Internet beim Server
Abbildung 8: Vernetzung mehrerer Stationen über mehrere Dienste
17
Veranschaulicht im Funkszenario auf Abbildung 2 (Seite 8), wo eine Station die Aufgabe
einer Vermittlungseinrichtung übernimmt.
16
2 MODULARES KOMMUNIKATIONSMODELL
2.2.2
Trennung in einzelne Module
Eine der Hauptaufgaben dieser Studienarbeit ist die Ausarbeitung einer modularen Kommunikations-Infrastruktur. Bevor damit begonnen wurde, gab es bereits
eine bestehende Umsetzung der Betriebsfunkanbindung. Deren funkspezifische
Routinen waren jedoch monolithisch mit denen des Kommunikationsmanagers
verschmolzen.
Doch wie lassen sich diese verschiedenen Funktionalitäten geschickt voneinander trennen? Dazu boten sich verschiedene Varianten an: Eine Gruppierung
der Funktionen in so genannte Dynamic Linked Libraries“ (DLL’s), oder eine
”
Verkapselung in eigenständige Programme (.exe-Dateien).
Beide Ansätze haben speziellen Eigenheiten. Unabhängig davon fiel die Wahl
zur Erstellung des Prototyps auf die Trennung in eigenständige Programme18 .
Der Prototyp sollte möglichst schnell entwickelt werden, und dem Autor fehlte
die Erfahrung im Umgang mit dem DLL-Konzept. Deswegen basiert der Prototyp
auf verschiedenen Modulen, die als eigenständige Programme modelliert werden.
In Bezug auf die Ausführungsgeschwindigkeit wird das DLL-Konzept dem EXEKonzept allerdings überlegen sein. Bevor später die Produktivversion implementiert wird, sollte der Entwickler das DLL-Konzept genauer untersuchen19 .
Die folgende Liste fasst die Konsequenzen zusammen, die sich aus der Gruppierung der Funktionen in einzelne Module ergeben:
• Austausch von Komponenten:
Möglichkeit des Austausches veralteter Programmkomponenten gegen aktualisierte Versionen. Der Austausch eines einzelnen Moduls kann beispielsweise über FTP“ (File Transfer Protocol) erfolgen. Anschließend wird das
”
neue Modul aktiviert. Dazu muss der Nutzer weder die Automatisierungsstation neu starten, noch der laufende Betrieb wichtiger Komponenten unterbrochen werden. Der Austausch wird im laufenden Betrieb der Station
durchgeführt.
• Nachträgliche Erweiterung:
Einfache Erweiterung um weitere Kommunikationsschnittstellen: Anschluss
der Hardware, Platzierung des zugehörigen Kommunikationsmoduls (evtl.
über FTP) und abschließende Anmeldung des neuen Moduls beim Kommunikationsmanager. Das Modul wird jetzt vom Kommunikationsmanager
gestartet und in den Prozess der Datenübertragung mit eingebunden.
• Mehrere Module gleichzeitig:
Parallel vorhandene Kommunikationswege: Ein Gerät kann mehr als eine
18
Bei dem Kommunikationsmanager und den Kommunikationsmodulen handelt es sich um
eigenständige .exe-Dateien.
19
Dies geschah parallel zu dieser Studienarbeit.
2.2 Kommunikationsmodell
17
einzelne Anbindung aufweisen. Zusätzlich zu einer GPRS-Anbindung könnte ein ISDN-Anschluss für den Fall des Ausfalls von GPRS bereit stehen.
Das macht in der Summe zwei Anbindungen, die jeweils ein eigenes Kommunikationsmodul erfordern.
Bei einem lokalen Verbund mehrerer Stationen (verbunden über ein LAN)
wird nur eine einzige Station am Tor zur Welt“ hängen. Dies zeigt Abbil”
dung 8 auf Seite 15. In diesem Falle startet der Kommunikationsmanager
drei Kommunikationsmodule20 .
• Übersichtliche Schnittstellen:
Die Kommunikation zwischen dem Kommunikationsmanager und den einzelnen Kommunikationsmodulen erfolgt über eine festgelegte und einheitliche Schnittstelle. Diese ist idealerweise unabhängig von den Möglichkeiten
und Erfordernissen der den Modulen zugrundeliegenden Übertragungstechnologien, denn erst dies ermöglicht einen transparenten Austausch der Module untereinander.
• Wartbarkeit:
Der Programmierer erhält durch die strikte Trennung der Schichten als
eigenständige Programme einen modularen Quellcode. Jeder Block weist
spezialisierte Fähigkeiten auf. Dadurch werden die Programme kleiner und
übersichtlicher, was sich positiv auf die Pflege der Programme auswirkt.
• Sicherheit durch Trennung
Ein abstürzendes Modul reißt nicht den gesamten Kommunikationsmanager
mit in den Tod. Ein Modul bleibt schlimmstenfalls hängen, was aber vom
darüberliegenden Kommunikationsmanager erkannt werden kann21 . Dieser
ist jetzt in der Lage diese Leiche“ abzuschießen und das Modul erneut zu
”
starten. Bei der Trennung in .dll’s ist diese Abschottung nach Kenntnisstand des Autors nicht möglich.
2.2.3
Der Kommunikationsmanager
Dieses Modul ist ein eigenständiges Programm, welches beim Hochfahren der
Station vom System mitgestartet wird und dann immer läuft. Der Kommunikationsmanager hat einen Überblick über sämtliche verfügbaren Kommunikationswege sowie deren Eigenschaften. Da sich die einzelnen Kommunikationswege sehr
stark voneinander in ihrer Benutzung unterscheiden22 , werden alle auf die Medien
zugeschnittenen Routinen in spezialisierte Kommunikationsmodule ausgelagert.
20
Eines für ISDN, eines für GPRS und ein drittes für Ethernet.
Zum Beispiel über Timeouts.
22
Bei ISDN muss eine nach Zeittakten abgerechnete Wählverbindung aufgebaut werden,
GPRS dagegen benötigt lediglich einen einzelnen Verbindungsaufbau, bei dem keine weiteren
Zeitkosten anfallen.
21
18
2 MODULARES KOMMUNIKATIONSMODELL
Für den Kommunikationsmanager ist an dieser Stelle wichtig, dass jedes seiner Module eine identische Schnittstelle aufweist und sich der Manager bei jedem
dieser Module identisch verhalten kann. Dadurch braucht er nur eine universelle Schnittstelle zu unterstützen, ohne Rücksicht auf bestimmte Eigenheiten des
konkret genutzten Übertragungsmediums nehmen zu müssen.
Der Kommunikationsmanager enthält die Menge an Funktionen, die unabhängig von denen der Übertragungsmedien zur Kommunikation gebraucht werden.
Dazu gehören die folgenden Aufgaben:
• Versenden von Dateien:
Zu übertragende Daten werden vom Dispatcher23 und seinen nachgeschalteten Verarbeitungsmodulen24 in einem Übergabeverzeichnis im Dateisystem
abgelegt. Danach ist die Datei unter der Kontrolle des Kommunikationsmanagers, und wird von diesem erst nach vollständigem Versand gelöscht.
Auf der Gegenstation läuft der Mechanismus genauso ab, nur in umgekehrter Richtung. Die einzelnen Datenpakete wandern über das verwendete
Medium und werden auf der Gegenseite von einem Kommunikationsmodul entgegengenommen. Dieses gibt das Datenpaket sofort an den dortigen
Kommunikationsmanager, damit dieser es weiterverarbeiten kann. Er rekonstruiert die Datei und speichert das Ergebnis wiederum als Datei in
einem lokalen Übergabeverzeichnis ab.
• Start- und Stopp von Kommunikationsmodulen:
Der Kommunikationsmanager schaut beim Starten in einer modulinternen
Datenbank nach, welche Kommunikationsschnittstellen existieren und wie
deren spezifische Eigenschaften lauten. Zu jeder Anbindung gibt es ein spezialisiertes Kommunikationsmodul, welches der Manager bei Bedarf nachladen muss.
Um einen Datenaustausch über ISDN zu ermöglichen, startet der Manager das ISDN-Kommunikationsmodul. Ist zusätzlich noch eine GPRS-Anbindung vorhanden25 , lädt er parallel zum ISDN-Modul noch das GPRSModul.
• Wegewahl:
Eine Zielstation kann gleichzeitig über mehrere Kommunikationswege erreichbar sein. Dann muss der Kommunikationsmanager eine Entscheidung
treffen. Er wählt das passendste Kommunikationsmodul nach einem aktuellen Entscheidungskriterium aus. In diese Auswahl spielen mehrere Faktoren
mit ein:
23
Das Bindeglied zwischen der Soft-SPS und den Verarbeitungsmodulen.
Siehe Diagramm 4 auf Seite 10.
25
diese Information steht in der Konfigurationsdatenbank des Kommunikationsmanagers.
24
2.2 Kommunikationsmodell
19
– Auswahl an Schnittstellen:
Gibt es eine Auswahl an verschiedenen Kommunikationswegen? Gibt
es eventuell nur eine einzige Anbindung?
– Erreichbarkeit:
Welche aktiven Kommunikationsmodule sind relevant, da sie eine Verbindung zum gewünschten Zielrechner ermöglichen?
– Kosten für die Datenübermittlung:
Eine momentan aufgebaute ISDN-Verbindung könnte billiger sein als
der alternative Versand über GPRS.
– Zustand einzelner Kommunikationsmodule:
Wenn sich ein Modul zeitweise als nicht benutzbar“ meldet, kann das
”
mehrere Ursachen haben. Eine Möglichkeit ist ein Hardwaredefekt,
aber auch eine momentan gestörte oder besetzte Leitung führen dazu.
Damit der Kommunikationsmanager diese Entscheidung fällen kann, benötigt er eine Datenbank. Sie speichert alle verfügbaren Eigenschaften der
vorhandenen Kommunikationsmodule und ermöglicht eine Auswahl des gerade am geeignetesten Weges.
• Übergabe von Datenströmen:
Was passiert, wenn während einer laufenden Datenübertragung eine Datenverbindung wegstirbt?“ Das betroffende Kommunikationsmodul wird
”
diesen Zustand erkennen und ihn sofort dem darüberliegenden Kommunikationsmanager mitteilen. Dieser wird von nun an seine Wegewahl anders
gestalten, und die zu versendenden Datenpakete über eine eventuell vorhandene Ersatzleitung schicken (Handover von Datenströmen).
2.2.4
Die Kommunikationsmodule
Die Kommunikationmodule sind unterhalb des Kommunikationsmanagers angesiedelt. Sie werden vom Programmierer jeweils für ein spezielles Übertragungsmedium konzipiert und stellen eine Art Anpassungsschicht dar. Sie weisen alle
eine fest definierte Schnittstelle zum Kommunikationsmanager auf. Er kann daher
alle Formen von Kommunikationsmodulen einheitlich ansprechen. Die Kommunikationsmodule dienen als Bindeglieder zwischen dem Kommunikationsmanager
und den vorhandenen Übertragungsmedien. Sie enthalten jeweils speziell an das
Medium angepasste Routinen um Daten zu versenden oder zu empfangen.
Es lassen sich Kommunikationsmodule für alle denkbaren Übertragungsmedien entwickeln. Dank ihrer einheitlichen Schnittstelle kann sie der Anwender auch
nachträglich in ein älteres System integrieren. Relevante Kommunikationstechniken sind bisher:
20
2 MODULARES KOMMUNIKATIONSMODELL
• Betriebsfunk:
Eine bereits in der Firma verwendete Übertragungstechnik ist Betriebsfunk.
Hierbei weist einem die RegTP“ (Regulierungsbehörde für Telekommuni”
kation und Post) eine feste Frequenz und einen Zeitschlitz zu. Man kann
dann mit Hilfe eines entsprechenden Modems einmal pro Minute für ein
fünfsekündiges Zeitintervall mit 9600Bit/s Daten versenden. Da sich alle
Stationen diesen Zeitschlitz teilen müssen, sind umfassende Synchronisationsmechanismen notwendig.
• ISDN:
Es gibt bei ISDN zwei Möglichkeiten: Einmal die Einwahl bei einem Internetprovider mit anschließender Kommunikation über das Internet, oder die
direkte Punkt-zu-Punkt-Verbindung zu einer Zielstation. In beiden Fällen
kommen PPP26 und TCP/IP zur Anwendung.
• GPRS:
GPRS ist Bestandteil von GSM und fast flächendeckend verfügbar. Ein
Schwerpunkt dieser Studienarbeit ist die Erstellung eines funktionierenden
Prototyps27 zur Nutzung von GPRS.
• Analoge Modems:
Die Anbindung über Analogmodems ist mit der bereits genannten Anbindung über ISDN vergleichbar. Die beiden Module werden sich nur in wenigen Details28 unterscheiden.
• Direkte Anbindung über IP:
Diese Kategorie behandelt alle Stationen, die eine bereits vor Modulstart
verfügbare IP-Anbindung nutzen. Im Moment sind dies alle Formen von IPbasierten lokalen Netzen29 . Die angeschlossenen Stationen kommunizieren
direkt über einen Router/Gateway mit dem weltweiten Internet.
• SMS oder MMS:
Der Short Message Service (SMS) und der neuere Multimedia Messaging
Service (MMS) sind bereits heute Bestand der verbreiteten GSM-Technologie. Mit ihnen kann der Anwender Datenpakete an andere Stationen
versenden. Diese Form der Datenanbindung zeichnet sich durch eine hohe
Laufzeit und eine Beschränkung auf 160 Zeichen30 pro Nachricht aus. Beim
26
Point-to-Point-Protocol: Wird als Schicht-2-Protokoll beim Datentransfer über Telefonleitungen eingesetzt.
27
Der Prototyp umfasst ein GPRS-Kommunikationsmodul und den Kommunikationsmanager.
28
Wie zum Beispiel den notwendigen Einwahlkommandos.
29
In der Regel wird ein Ethernet zum Einsatz kommen.
30
Mit stark eingeschränktem Zeichenvorrat. Pro Zeichen können ca. 6 Bit codiert werden,
was einem Informationsgehalt von 120 Bytes pro SMS entspricht.
2.2 Kommunikationsmodell
21
Nachfolger MMS sind im Vergleich zur SMS größere Datenblöcke mit den
vollen 8 Bit an Information pro Symbol handhabbar.
• Sonstige Techniken:
Eine Anpassung an zukünftige Übertragungsmedien wird keine Anpassungen an anderen Stellen im System notwendig machen. Es genügt, wenn
der Programmierer ein weiteres Kommunikationsmodul erstellt. Er kann es
dank der einheitlichen Schnittstelle ohne Änderung anderer Komponenten
in das System integrieren.
22
3 DIE EINZELNEN MODULE IM DETAIL
3
Die einzelnen Module im Detail
3.1
Der Kommunikationsmanager
Im letzten Abschnitt wurden bereits die einzelnen Aufgaben des Kommunikationsmanagers erläutert. Es ging dort um die folgenden Punkte:
• Versendung von Dateien ( Informationscontainer“)
”
• Start- und Stopp von einzelnen Kommunikationsmodulen
• Wegewahl
• Übergabe von Datenströmen (Handover)
3.1.1
Kommunikation über Dateien
Jede zu versendende Datei liegt in einem stromausfallsicheren Übergabeverzeichnis oberhalb“ des Kommunikationsmanagers. Dort können die einzelnen Dateien
”
auch eine längere Zeit sicher verweilen. Im vorliegenden Fall dient dazu ein Verzeichnis, welches auf einem stromausfallsicheren Medium31 liegt.
Damit der Kommunikationsmanager mit der Übertragung beginnen kann,
schickt ihm der Dienstnehmer ein so genanntes Event32“ (Ereignis) als Anstoß“.
”
”
Es enthält den Dateinamen und noch weitere Parameter33 , die dem Kommunikationsmanager mitgeteilt werden müssen.
Die Datei steht jetzt unter der Kontrolle des Kommunikationsmanagers, und
wird erst nach ihrer vollständigen Versendung von ihm gelöscht. Der Ersteller der
Datei erhält keine weitere Rückmeldung, wenn seine“ Datei vollständig am Ziel
”
angekommen ist34 .
Für die Versendung der Dateien werden noch weitere Informationen benötigt
als ihr bloßer Inhalt ( Die Nachricht“). Hier kommen die bereits angsprochenen
”
Parameter ins Spiel, denn sie geben Auskunft über die weitere Behandlung der
Datei:
• Adressierung:
Zum erfolgreichen Versand wird der Name oder eine Adresse des Empfängers benötigt: Der Kommunikationsmanager muss wissen, wohin er die
Datei zustellen soll. Auch die Angabe einer Absenderadresse ist sinnvoll.
Sie ermöglich dem Empfänger zu erkennen woher die Datei gekommen ist.
31
Hier: Ein Compact-Flash Modul.
Dazu wird der Mechanismus der Window Messages“ verwendet.
”
33
Unter anderem die Priorität der Nachricht und die Stationsadresse der Zielstation.
34
Auf dieser höchsten“ Ebene gibt es keine Ende-zu-Ende Quittierungen.
”
32
3.1 Der Kommunikationsmanager
23
• Dringlichkeiten:
Es gibt unwichtigere“ Daten ( niedrige Priorität“). Sie dürfen vom Kom”
”
munikationsmanager mit Blick auf eine Kostenersparnis verzögert versendet
werden. Andererseits gibt es auch hoch priorisierte Nachrichten, die eine sofortige Einwahl mit allen daraus resultierenden Zusatzkosten rechtfertigen.
Die Aufgabe der Wahl einer geeigneten Priorität fällt dem Sender zu. Dies
ist im vorliegenden Fall der Dispatcher mit seinen nachgeschalteten Verarbeitungsmodulen.
• Die Nachricht:
Die Motivation des Dateienaustausches liegt im Austausch von Informationen. Sie sollen transparent und ohne Modifikation durch die an der Kommunikation beteiligten Komponenten an die Zielstation übertragen werden.
Es ist irrelevant, wie der Inhalt der Nachricht aussieht. Sie kann in Form
gepackter Binärdaten35 oder als strukturiertes XML-Telegramm36 ( eXten”
ded Markup Language“) vorliegen. Das, was vom Dispatcher und seinen
Modulen als Datei im Übergabeverzeichnis abgelegt wird, taucht so auch
wieder im Übergabeverzeichnis des Kommunikationspartners auf.
3.1.2
Warteschlangen und Prioritäten
Während des Betriebes können sich am Komunikationsmanager mehrere Dateien, die alle an die selbe Zielstation versendet werden sollen, sammeln. Gleichzeitig wird zwischen unwichtigeren und wichtigeren Daten unterschieden. Einem zu
übertragenden Logfile wird beispielsweise eine geringere Priorität zugewiesen als
einer ausgelösten Alarmmeldung.
Der Kommunikationsmanager fällt anhand der Prioritäten eine Entscheidung
über die Bearbeitungsreihenfolge. Er achtet darauf, dass Dateien mit hoher Priorität bevorzugt übertragen werden. Für diese Aufgabe wurde vom Autor ein Warteschlangenmechanismus entworfen. Er wird in Abbildung 9 gezeigt.
Die interne Warteschlange erlaubt eine Trennung in 256 verschiedene Prioritäten, und hält für jede dieser Prioritäten eine verkettete Liste bereit. In ihr
verwaltet der Kommunikationsmanager die Jobs“. Jeder dieser Jobs besteht aus
”
einem Informationsblock mit den Parametern zum Dateiversand. Dazu gehören:
• Der vollständige Dateiname mit Pfad im Verzeichnisbaum der Station
• Die Absenderadresse, die besagt wo die Datei ursprünglich37 herkommt
• Die Stationsadresse der Zielstation
35
Falls nur wenig Übertragungskapazität zur Verfügung steht.
XML ist ein Hilfsmittel zur Darstellung von Daten, das aber sehr aufgeblasene“ Telegram”
me erzeugt.
37
Wichtig für ein Netzwerk mit Relais-Knoten.
36
24
3 DIE EINZELNEN MODULE IM DETAIL
Übergabeverzeichnis
Datei 1
Datei 2
Datei 3
0
1
2
3
4
5
6
−
−
−
252
253
254
255
−
Infoblock:
IB 2
IB "x"
−
−
−
−
Dateiname mit vollem Pfad
Ankunftszeit
Absenderadresse
Zieladresse
Dateilänge
Offset in Datei
Quittierungsinformationen
IB 1
IB 3
nächstes
Listenelement
steigende Priorität
Kommunikationsmanager
−
−
−
Sendewarteschlange
(256 Prioritäten)
Scheduler
Wegewahl
Fragmentierung
Sendeprotokoll
Kommunikationsmodule
Hauptlink
Backuplink
Abbildung 9: Priorisierte Warteschlange zum Dateiversand
• Die Dateilänge in Bytes
• Der Dateizeiger (Offset), der auf den nächsten zu versendenden Bereich
zeigt
• Quittierungsinformationen. Mit ihnen wird überwacht, welche Dateibereiche bereits fehlerfrei vom nächsten Knoten empfangen wurden
• Die Ankunftszeit am Kommunikationsmanager, zur Bestimmung von Timeouts
Mit Hilfe dieser Informationen kann der Kommunikationsmanager die nächste zu
versendende Datei auswählen. Die Dateien werden dabei nicht als Ganzes“ ver”
sendet, sondern in Form kleinerer Fragmente. Es käme sonst zu Planungsproblemen, wenn eine hochpriore Meldung auf einen sehr umfangreichen, niederprioren
Datentransfer treffen würde. Die Meldung müsste entweder warten38 , oder den
bereits laufenden Datentransfer unterbrechen und unbrauchbar machen. Beide
Alternativen sind nicht akzeptabel.
3.1.3
Fragmentierung / Reassemblierung
Da die einzelnen Dateien sehr groß sein können, muss der Kommunikationsmanager sicherstellen, dass eine Datei eine Übertragungsstecke nicht für lange Zeit
38
Dieser Effekt wird als Prioritätsumkehr bezeichnet [Butt97].
3.1 Der Kommunikationsmanager
25
blockieren kann. Später eintreffende aber höher priorisierte Dateien müssen weiterhin bevorzugt versendet werden. Ein solches Verhalten wird durch die Fragmentierung ermöglicht. Hierbei werden die zu versendenden Dateien in kleinere
Datenblöcke zerteilt. Solche Datenblöcke sind hinreichend klein, und blockieren
das Medium nicht, wenn ein höher priorisierter Datenstrom verzögert eintrifft.
Die Fragmentierung hat noch einen weiteren Vorteil: Sie ermöglicht, dass Paketverluste behandelt werden können. Einzelne Fragmente lassen sich effizienter
wiederholen als eine komplette Datei.
Die Kommunikationsmodule erwarten ihre Nutzlasten“ in Form von Frag”
menten mit einer maximalen Größe. Beim Funkmodul zum Beispiel ist jedes Paket zwingend 128 Byte groß39 , bei IP-basierten Medien werden größere Fragmente
verwendet. Diese Fragmentierung wird in Absprache mit den Kommunikationsmodulen vom Kommunikationsmanager durchgeführt.
Diese Technik erfordert einen Protokolloverhead, damit der Empfänger die
einzelnen Fragmente wieder demultiplexen (trennen) und reassemblieren (zusammenfügen) kann. Um nicht für jedes Paket alle notwendigen Informationen (Dateiname, Absender, . . . ) erneut zu versenden, kommunizieren die Kommunikationsmanager über einen verbindungsorientierten Mechanismus miteinander.
Wenn eine Datei versendet wird, handeln beide Stationen einen logischer Kanal aus. Sie verknüpfen jeweils alle zur Übertragung wichtigen Parameter (wie
zum Beispiel den Dateinamen) mit diesem Kanal. Jedem Paket wird als Header
der Kanalkenner in Form eines 32bit-Integerwertes vorangestellt, und der Empfänger kann das Paket eindeutig zuordnen.
3.1.4
Datenbank für die Kommunikationsmodule
Jedes dem Kommunikationsmanager bekannte Kommunikationsmodul weist spezielle Eigenschaften auf, die die vom ihm bereitgestellten Dienste beschreiben.
Dazu gehören alle Parameter, die die Wegewahl beeinflussen (Art der Verbindung, Kosten, erreichbare Stationen, . . . ), aber auch programmiertechnische Details wie der Dateinamen des entsprechenden Kommunikationsmoduls und modulinterne Daten. Ein Teil dieser Informationen wird vom Kommunikationsmodul
gebraucht, der andere vom Kommunikationsmanager. Alternativ dazu wäre eine
Speicherung der Konfigurationsdaten in jedem Kommunikationsmodul denkbar,
jedoch ermöglicht die zentralisierte Datenhaltung im Manager einen gesammelten
Zugriff und damit eine vereinfachte Wartung.
Jedes Kommunikationsmodul fordert, wenn es gestartet wird, seine Konfigurationsdaten vom Kommunikationsmanager an. Sämtliche Einstellungen gehören
dazu, wie unter anderem Nutzernamen, Passwörter, Telefonnummern, Adressen
von Servern, Portnummern, Timing- und Tarifinformationen.
39
Die 128 Byte umfassen allerdings den effektiven, zu übertragenden Datenblock inklusive
aller Header und Redundanzen; die Größe des hier gemeinten Datei“-Fragmentes ist entspre”
chend geringer.
26
3 DIE EINZELNEN MODULE IM DETAIL
Diese Konfigurationsdatei wird in Form eines XML-Dokuments im Kommunikationsmanager hinterlegt. Sie kann vom Anwender im laufenden Betrieb der
Station aktualisiert werden. Der Kommunikationsmanager teilt den Kommunikationsmodulen eine solche Änderung mit, woraufhin die Module ihre Konfigurationsdaten erneut anfordern.
3.1.5
Wegewahl / Routing
Es gibt zwei Anwendungsfälle, bei denen eine Wegewahl durchgeführt werden
muss. Einmal, wenn mehrere Kommunikationswege zum Ziel führen, oder wenn
die aktuelle Station eine Art Zwischenstation zum Ziel darstellt. Als Beispiel
hierfür eignet sich der über ein LAN verkoppelte Verbund mehrerer Stationen,
von denen nur eine einzelne über einen Weg nach draußen“, also zur Leitstation,
”
verfügt40 . Aus Sicht einer Nur-LAN-Station“ wird vom Dispatcher die Stations”
adresse der Leitstation als Zieladresse eingetragen, aber der Kommunikationsmanager erkennt, dass er das Paket nicht direkt dem Ziel übergeben kann. Er weiß
aber, welcher Knoten“ näher am Ziel liegt, und kann das Paket an diesen Tele”
”
grammrouter“ weiterleiten. Dazu versendet er in diesem Fall das Telegramm über
das LAN-Modul.
Das Paket wird an die Vermittlungsstation geschickt, wo es ebenfalls von einem LAN-Modul entgegengenommen wird. Dieses reicht das empfangene Paket
nach oben“ zum Kommunikationsmanager weiter. Hier entscheidet sich erneut,
”
welchen Weg das Paket zu gehen hat. In diesem Fall ist die Station über GPRS
mit der Leitstation verbunden, und das Paket wird an das GPRS-Modul weitergeleitet. Beim umgekehrten Weg, für Pakete aus Richtung der Leitstation, ist der
Mechanismus nach dem selben Schema anwendbar.
3.2
3.2.1
Die Kommunikationsmodule
Anpassung an das Übertragungsmedium
Die zu unterstützenden Übertragungsmedien weisen jeweils spezielle Eigenschaften auf, die eigene Herangehensweisen zur Nutzung erfordern. TCP/IP-basierte
Kommunikationswege weisen ein datenstromorientiertes Übertragungsverhalten
auf, Betriebsfunk dagegen hat durch sein Zeitschlitz-basiertes Übertragungsverfahren einen blockorientierten Charakter. Manche Medien benötigen einen Verbindungsaufbau (GPRS benötigt eine Einwahl), andere dagegen nicht (Stationen
in lokalen Netzen). Bei der Nutzung von Betriebsfunk muss sich der Programmierer zusätzlich noch Gedanken um einen eigenen Medienzugriffsmechanismus
machen, da sich mehrere Stationen den Äther teilen.
Zusammenfassend sind in den Kommunikationsmodulen die speziell an ein
Medium anzupassenden Routinen zum Empfang und Versand von Daten an40
Abbildung dieses Sachverhalts auf Seite 15.
3.2 Die Kommunikationsmodule
27
gesiedelt. Jedes Medium weist andere Eigenschaften auf, und benötigt andere
Herangehensweisen bei der Anwendung.
• Medienzugriffskontrolle:
Sie realisiert das Management der zu nutzenden Übertragungstechnik. Bei
Betriebsfunk schließt sie das Warten auf zugewiesene Zeitschlitze sowie eine zentralisierte Verwaltung der Funkressourcen mit ein. Bei den meisten
anderen Übertragungstechniken braucht sich der Programmierer aber keine
Gedanken um diese MAC-Schicht“ (Medium Access Control) zu machen.
”
Sie ist dort bereits mit enthalten.
Auch der Auf- und Abbau von Wählverbindungen kann mit in die Kategorie
der Medienzugriffskontrolle gezählt werden.
• Überwachung:
Aufgebaute Wählverbindungen können durch unerwünschte externe Ereignisse41 getrennt werden. Um dem zu begegnen, wird die Verbindung überwacht. Wird ein unerwünschter Verbindungsabriss registriert, kann das Modul als Reaktion eine sofortige Wiedereinwahl starten.
Auch der umgekehrte Verbindungsaufbau ist denkbar. Dabei stellt die lokale Station einen Einwahlknoten bereit, in den sich anrufende Stationen
einwählen können. Anrufende Stationen müssen sich authentifizieren, um
die Dienste der angerufenen Station nutzen zu dürfen. Die Erkennung und
Behandlung von eingehenden Verbindungswünschen fällt mit in den Aufgabenbereich der Kommunikationsmodule.
• Redundanz/Kanalcodierung:
Betriebsfunk liefert von Haus aus kein integriertes Fehlermanagement mit.
An der Funkschnittstelle auftretende Bitfehler werden von der verwendeten
Hardware weder erkannt noch korrigiert.
Es ist mit die Aufgabe der Kommunikationsmodule, solche Gegebenheiten
zu berücksichtigen. Das Betriebsfunkmodul benötigt hierfür Mechanismen
zur Fehlererkennung und -korrektur. Dafür stehen verschiedene Techniken
zur Auswahl:
– Fehlererkennende Codes:
Sie ermöglichen durch eine Verwendung von Prüfsummen die Erkennung von aufgetretenen Bitfehlern. Praxisrelevante Verfahren sind Paritätsbits oder der Cyclic Redundancy Check“ (CRC). Diese Verfah”
ren erkennen mehr oder weniger gut verfälschte Blöcke. Sie sind nicht
in der Lage den Auftrittsort des Fehlers zu lokalisieren. Eine Korrektur ist nicht möglich. Ein fehlerbehafteter Block wird vom Empfänger
verworfen und erneut angefordert.
41
Beispielsweise aufgrund einer kurzzeitigen Störung im Telefonnetz.
28
3 DIE EINZELNEN MODULE IM DETAIL
– Fehlerkorrigierende Codes:
Fehlerkorrigierende Codes ermöglichen eine Vorwärtsfehlerkorrektur.
Der Empfänger ist damit in der Lage, den Auftrittsort bestimmter
Fehlermuster zu ermitteln. Die auftretenden Fehler sind somit korrigierbar. Die Verfahren benötigen einen hohen Anteil an Redundanz,
und sind auch kein Allheilmittel. Die Restfehlerwahrscheinlichkeit wird
auch mit größtem Codierungsaufwand immer größer Null sein.
– Interleaving (Codespreizung):
Fehlerbursts42 lassen sich alleine durch Codierung nur sehr schwierig
in den Griff bekommen, da gegen eine hohe Bitfehlerzahl pro Block
nur viele Kontrollbits helfen. Fehlerbursts lassen sich aber dadurch
entschärfen, dass die zu einem Burst gehörenden Bits über mehrere
Blöcke gestreut werden. Der Fehlerburst verteilt sich dann gleichmäßig über mehrere Blöcke und kann mit einfacheren Codes korrigiert
werden.
Bei allen TCP/IP-basierten Medien braucht sich der Programmierer um
auftretende Paketverfälschungen keine Sorgen zu machen. Sie treten höchstens bei GPRS verstärkt in den unteren Schichten auf, was aber bereits
durch die in TCP integrierten Mechanismen kompensiert wird.
• Adressumwandlung:
Der Kommunikationsmanager adressiert Datenpakete über so genannte Stationsadressen (dies sind projektinterne Identifikationsnummern). Das zur
Übertragung verwendete Medium verwendet dagegen davon abweichende
Adressierungsschemata. Die notwendige Adressumsetzung zwischen Stationsadressen und medienspezifischen Adressen erledigt das Kommunikationsmodul. Beispielsweise wird bei einer TCP/IP-basierten Anbindung eine Adressumsetzung zwischen Stationsadressen und IP-Adressen durchgeführt.
• Keine weitere Fragentierung!
Die Aufgabe der Fragmentierung übernimmt bereits der Kommunikationsmanager. Ein jedes Kommunikationsmodul kann aber seine Wunsch-Fragmentgröße nachträglich verändern. Wenn sich bei Funknutzung die Übertragungsbedingungen verschlechtern, kann das Betriebsfunkmodul auf eine
Kanalcodierung mit höherer Redundanz umschalten. Das bedeutet aber,
dass die Datenfragmente seitens des Kommunikationsmanagers kleiner werden müssen. Die resultierenden Blöcke weisen eine höhere Redundanz auf,
daher bleibt weniger Platz für Information.
Es ist dabei nicht gesagt, dass alle genannten Schritte auch implementiert
werden müssen. Ein guter Kandidat dafür ist das Betriebsfunkmodul, aber für
42
Fehlerbursts sind mehrfache, eng hintereinander auftretende Verfälschungen.
3.2 Die Kommunikationsmodule
29
die vorliegende Aufgabe (die Umsetzung des GPRS-Moduls) werden keine Fehlerbehandlungsschritte benötigt. Abbildung 10 zeigt die eben genannten Aspekte
in Form eines Ablaufdiagrammes.
Kommunikationsmanager
Kommunikationsmodul
IDU
Übergabe einer SDU
an das Kommunikationsmodul
SDU
Projektspezifische
Stationsadresse
Verbindungskenner anfügen
Hd
Adress−
Umsetzung
SDU
Vorwärtsfehlerkorrekturcodes
Hd
SDU
FEC
Prüfsumme hinzufügen
Medienspezifische
Stationsadresse
Hd
SDU
FEC CRC
Versandfertige SDU
Sende−
Routinen
IDU
SDU
Hd
FEC
CRC
:
:
:
:
:
Interface Data Unit
Service Data Unit
Header
Forward Error Correction
Cyclic Redundancy Check
Abbildung 10: Datenpaket innerhalb eines Kommunikationsmoduls
Hier werden fehlerkorrigierende Codes (FEC, Forward Error Correction“)
”
in Kombination mit einer Prüfsumme (CRC, Cyclic Redundancy Check“) ver”
wendet. Die Fehlerkorrektur kann geringe43 Fehler korrigieren, versagt aber bei
umfangreicheren Bitfehlerkombinationen. Der Empfänger erhält nach der Korrektur ein falsches Ergebnis, was er aber ohne weitere Hilfsmittel nicht erkennen
kann. Deshalb wird um diesen inneren Fehlerschutz noch ein äusserer Fehlerschutz geschachtelt, der falsch korrigierte Codeworte erkennen soll. Eine solche
Schachtelung wird auch bei GSM und UMTS angewendet.
3.2.2
Telegrammdienst
Die Kommunikationsmodule bieten einen unquittierten Telegrammdienst (Datagramm-Dienst) an. Der Kommunikationsmanager reicht ein Telegramm an eines
seiner Kommunikationsmodule weiter, um es über diese Schnittstelle auf die Rei”
se“ zu schicken. Genauso können aber auch Telegramme von einer Gegenstation
entgegengenommen werden. Die eigentliche Nutzlast“ besteht aus einem binär
”
43
Geringe Anzahl an Bitfehlern pro Block.
30
3 DIE EINZELNEN MODULE IM DETAIL
codierten Datenpaket, das vom Kommunikationsmanager erzeugt (beim Versenden) und ausgewertet wird (beim Empfang).
3.2.3
Quittierungen
Die Kommunikation zwischen zwei Kommunikationsmodulen ist als unquittierter Telegrammdienst darstellbar. Auf der Übertragungsstrecke können Pakete
verlorengehen, je nach Übertragungsmedium mit einer höheren oder niedrigeren
Wahrscheinlichkeit. Darum brauchen sich die Kommunikationsmodule nicht zu
kümmern. Es ist die Aufgabe des darüberliegenden Kommunikationsmanagers,
einen Paketverlust durch geeignete Quittierungsmechanismen zu bemerken und
die Übertragung zu wiederholen.
3.3
3.3.1
Interprozesskommunikation
Kommunikation zwischen den Modulen
Die am Kommunikationsmechanismus beteiligten Module werden als geschichte”
tes Modell“ dargestellt. Eine untergeordnete“ Schicht bietet dabei einer überge” 44
”
ordneten“ Schicht einen Dienst an. Dieser Abschnitt geht auf die Frage ein, wie
die einzelnen Module miteinander kommunizieren. Diese folgenden Mechanismen
erlauben beispielsweise dem Kommunikationsmanager mit seinen Kommunikationsmodulen zu sprechen.
Abbildung 11 zeigt die in beiden Modulen notwendigen Komponenten, die
einen Datenaustausch zwischen Kommunikationsmanager und Kommunikationsmodul ermöglichen.
In beiden Programmen wird jeweils ein Kommunikationsendpunkt benötigt
(IPC_MASTER und IPC_SLAVE). Diese sind miteinander verbunden und halten intern einen Datenkanal vor. Daten, die an einem dieser Kommunikationsendpunkte
abgegeben werden“, fallen“ nach Transport über den Datenkanal am anderen
”
”
Kommunikationsendpunkt wieder heraus“.
”
Es wird bewusst noch keine Aussage über den eigentlichen Datenkanal gemacht, sondern nur die notwendige Funktionalität der beiden Endpunkte genannt.
Später folgt ein Überblick über die Möglichkeiten zur Umsetzung und den im Prototypen verwendeten Ansatz.
Die beiden Kommunikationsendpunkte sind nicht identisch. Sie werden in den
so genannten Master“ und den Slave“ getrennt. Der Grund liegt im unterschied”
”
lichen Verhalten bezüglich des Aufbaus der internen Datenverbindung. Der Master ist derjenige, der zuerst gestartet wird. Er startet anschließend den Slave.
Dieser meldet sich beim Master zurück, um den Aufbau der Datenverbindung
abzuschließen. Bei Erfolg können Daten ausgetauscht werden. Master und Slave
verhalten sich diesbezüglich symmetrisch.
44
Dies wurde bereits in der Einführung zu Schichtenmodellen auf Seite 13 dargestellt.
3.3 Interprozesskommunikation
31
Kommunikationsmanager
Datentransfer
IPC_MASTER
Aufbau
Datentransfer
IPC_SLAVE
Datentransfer
Einzelnes Kommunikationsmodul
Abbildung 11: Allgemeine Interprozesskommunikation
Kommunikationsmanager
.send(DATA)
.recv(DATA)
8.
1.
new()
IPC_MASTER
Anker=.init()
2.
6.
connected
5.
.connect(Anker)
3.
Start [Anker]
4.
new()
IPC_SLAVE
8.
7. Vollduplex−Kanal
.send(DATA)
.recv(DATA)
Einzelnes Kommunikationsmodul
Abbildung 12: Ablauf der allgemeinen Interprozesskommunikation
32
3 DIE EINZELNEN MODULE IM DETAIL
Das Ablaufdiagramm Nr. 12 zeigt diese Schritte im Detail. Der obere Block
symbolisiert den Kommunikationsmanager mit seinem Master-Endpunkt, der untere zeigt ein einzelnes Kommunikationsmodul mit seinem Slave-Endpunkt als
Kommunikationspartner. Dieses Schaubild ist noch unabhängig von einer konkreten Datenübertragungstechnologie.
Zuerst erstellt der Kommunikationsmanager einen eigenen lokalen MasterKommunikationsendpunkt (1) und initialisiert diesen (2). Dabei wird ein An”
ker“ gesetzt, mit Hilfe dessen sich das Kommunikationsmodul später registrieren
kann. Jetzt wird das Kommunikationsmodul gestartet (3), wobei ihm der Anker
als Kommandozeilenparameter übergeben wird. Das Kommunikationsmodul erzeugt ebenfalls einen Kommunikationsendpunkt, allerdings die Slave“-Variante
”
(4). Jetzt kann der eigentliche Datenkanal etabliert werden. Dazu nutzt das Kommunikationsmodul den übergebenen Anker, um sein Slave-Objekt mit dem Master-Objekt zu verbinden (5). Der Master registriert die Rückmeldung (6), so dass
ein vollduplexfähiger Datenkanal ausgehandelt werden kann (7). Die Initialisierung ist komplett. Der Kommunikationsmanager und das Kommunikationsmodul
können sich gegenseitig Daten zuschicken (8).
3.3.2
Mögliche Ansätze zum Datenaustausch
Zur Kommunikation können verschiedene Technologien verwendet werden. Microsoft Windows CE bietet diverse Technologien an, die einen Datenaustausch
im Rahmen von Inter-Prozess-Kommunikation“ (IPC) ermöglichen.
”
Aber nicht alle diese Methoden sind für den Einsatz geeignet. Die folgende
Übersicht betrachtet die untersuchten Mechanismen:
• TCP/IP-Sockets:
Nutzung von TCP/IP zum Datenaustausch zwischen zwei beteiligten Kommunikationspartnern. Nutzt die Netzwerkfähigkeiten des Systems.
• Window Messages:
Plattformabhängiger Mechanismus zum Datenaustausch zwischen einzelnen
Fenstern. Es gibt vom Betriebssystem vordefinierte Nachrichten, die an andere Fenster gesendet und dort von einer Routine empfangen und bearbeitet
werden.
• Microsoft Message Queues:
Die Microsoft Message Queues“ (MMQ’s) sind ein weiterer Mechanismus
”
zum Versenden von Nachrichten an einen Empfänger. Die Nachrichten werden systemintern in Warteschlangen zwischengespeichert.
• Dateien:
Hierbei werden zu übermittelnde Informationen in Form von Dateien in
einem Übergabeverzeichnis abgelegt. Von hier aus werden sie von einem
3.3 Interprozesskommunikation
33
anderen Programm geöffnet und ausgewertet. Erfordert Synchronisationsmechanismen, um einen gleichzeitigen Zugriff auf die Dateien auszuschließen.
• Remote Procedure Calls:
Remote Procedure Calls“ (RPC) basieren auf Sockets, und dienen dum
”
Aufruf entfernter Prozeduren. Sie können aber auch zur Übermittlung von
Nachrichten verwendet werden.
3.3.3
Interprozesskommunikation über Sockets
Der im Rahmen der Studenarbeit erstellte Prototyp verwendet Sockets zur Interprozesskommunikation. Sockets sind eine flexible Lösung. Sie erlauben die Trennung der beiden Schichten in jeweils eigenständige Programme.
Es werden lokale45 Sockets benutzt. Sie werden über den TCP/IP-Mechanismus des Betriebssystems bereitgestellt. Doch warum wurde sich für den Prototyp
für die Verwendung von Sockets entschieden?
• Sockets sind einfach zu benutzen. Es gibt ein übersichtliches und dokumentiertes Application Programming Interface“ (API).
”
• Sockets stellen eine etablierte Technologie dar. Sie sind sehr ausführlich
getestet und Bestandteil aller modernen Betriebssysteme.
• Sockets sind schnell. Andere zur Auswahl stehende Technologien wie RPC46
nutzen intern ebenfalls den Socketmechanismus, und sind daher im Vergleich höchstens genauso schnell.
• Sockets werden als Datenstrom angesprochen. Der Anwender muss sich Gedanken machen, wie Steuer- und Nutzdaten miteinander vereint und innerhalb des Datenstroms codiert werden. Die Lösung dafür liegt in der
Definition eines Datenaustauschformates. Es beschreibt das Aussehen der
zu übermittelnden Nachrichten.
Diese Aufgabe lässt sich mit Hilfe von XML47 -Telegrammen angehen, doch
wird sich aus Gründen der Einfachheit (Prototyp) nur auf einfache, binär
codierte Nachrichten beschränkt. Bei Bedarf kann auf ein anderes Datenformat umgeschwenkt werden.
• Hinzufügen weiterer Kommunikationskanäle: Neue Sockets können jederzeit
vom Betriebssystem angefordert werden. Sie existieren dann nebeneinander
ohne sich gegenseitig zu beeinflussen.
45
Die Sockets verbinden zwei lokale Prozesse miteinander.
Remote Procedure Calls.
47
eXtended Markup Language.
46
34
3 DIE EINZELNEN MODULE IM DETAIL
Die interne Struktur der Master- und Slaveobjekte wird mit Sockets umgesetzt. Die notwendigen Schritte zum Aufbau einer Kommunikationsbeziehung ähneln dabei dem allgemeinen Ansatz zur Interprozesskommunikation.
Kommunikationsmanager
11.
.send(DATA)
.recv(DATA)
IPC_MASTER
1.
new()
2.
.bind()
TCPIP_LISTENER
3.
TCPIP_ENDPOINT
8.
PortNum
Start [PortNum]
9.
connected
4.
10.
Etablierter Socket
(Vollduplex)
5.
new()
7.
connecting
6.
TCPIP_ENDPOINT
.connect(PortNum)
IPC_SLAVE
11.
.send(DATA)
.recv(DATA)
Einzelnes Kommunikationsmodul
Abbildung 13: Interprozesskommunikation mit Sockets
Die beiden Kommunikationsendpunkte IPC_MASTER und IPC_SLAVE sind in
Abbildung 13 (Seite 34) weiterhin zu erkennen. Sie werden wie bereits beschrieben verwendet. Intern sind sie jedoch konkret auf die Verwendung von TCP/IPSockets angepasst.
Der Kommunikationsmanager initialisiert den Master-Endpunkt (1). Dieser
bindet intern einen so genannten Listener -Socket TCPIP_LISTENER an einen freien
TCP-Port (2). Dieser Port wird auf eintreffende Verbindungswünsche überwacht,
was für die spätere Rückmeldung des Slaves wichtig ist. Er weist eine eindeutige
Nummer auf (3), die dem anschließend gestarteten Kommunikationsmodul als
Kommandozeilenparameter übergeben wird (4). Das Kommunikationsmodul initialisiert seinen lokalen Verbindungsendpunkt (5), und teilt ihm den Rückrufport
des Masters mit. Intern wird ein lokaler TCP/IP-Endpunkt TCPIP_ENDPOINT erzeugt (6). Er wird mit dem Master verbunden (7). Dort wartet noch der Listener
3.4 Schnittstellen und Protokolle
35
(8). Er nimmt die Verbindung an und erzeugt seinerseits ebenfalls einen TCP/IPEndpunkt (9). Zwischen Master und Slave besteht jetzt eine vollduplexfähige Datenverbindung (10), die durch Nutzung der Methoden des Masters und des Slaves
zum Datentransfer genutzt werden kann (11).
3.4
3.4.1
Schnittstellen und Protokolle
Schnittstelle oberhalb des Kommunikationsmanagers
Kommunikations−
manager
Kommunikations−
manager
Abbildung 14: Dienstschnittstelle des Kommunikationsmanagers
Der Kommunikationsmanager erhält seine zu übertragenden Nachrichten aus
einem Übergabeverzeichnis. Wenn eine Datei versendet werden soll, wird sie vom
Dienstnehmer dort abgelegt. Damit der Kommunikationsmanager die neue Datei
bemerkt, sendet ihm der Dienstnehmer ein so genanntes Event48“. Es enthält alle
”
weiteren, noch notwendigen Informationen: Den vollständigen Pfad der Datei, die
Stationsadresse des Empfängers, eine Priorität und noch weitere Parameter.
Diese Schnittstelle existiert bereits und ist nicht Bestandteil dieser Studienarbeit. Der Mechanismus wurde bereits im Rahmen des bestehenden Funk-Projektes entwickelt und kann für die neue Modulstruktur übernommen und angepasst
werden.
3.4.2
Protokoll zwischen Kommunikationsmanagern
Kommunikations−
manager
Kommunikations−
manager
Abbildung 15: Protokoll zwischen Kommunikationsmanagern
Dieses Protokoll wird an das bereits bestehende Funk-Projekt angelehnt. Es
macht eine Menge an internen Änderungen erforderlich, denn es kann beispielsweise von nun an nicht mehr mit festen Fragmentgrößen gearbeitet werden. Das
48
Über eine Window-Message.
36
3 DIE EINZELNEN MODULE IM DETAIL
zu implementierende Protokoll wird mit variablen Fragmentgrößen49 zurechtkommen müssen.
Die interne Struktur mit der Nutzung von Warteschlangen und dem Mechanismus der Fragmentierung von großen Datenblöcken im Kommunikationsmanager
war die Idee des Autors im Rahmen der Planung der Modulstruktur. Die konkrete Implementierung ist dagegen nicht mehr Bestandteil dieser Studienarbeit
und wird später von jemand anderem übernommen. Dabei müssen die bestehende
Routinen aus dem Funk-Projekt angepasst werden. Die notwendigen Änderungen werden von demjenigen Programmierer umgesetzt, der auch die bestehenden
Funkroutinen entwickelt hatte.
3.4.3
Protokolle des Prototyp
Bei der Erstellung des Prototyp konnten nicht alle genannten Mechanismen implementiert werden. Der Schwerpunkt lag auf der Demonstration des bidirektionalen
Datentransfers.
Es wurden eine Reihe von Nachrichten definiert, die stellvertretend für beliebige Datenblöcke (wie sie im späteren Hauptprojekt auftreten werden) versendet
und empfangen werden. Der Prototyp besteht aus zwei Stationen, dem Echoserver und dem Echoclient. Der Echoserver wird auf dem Beckhoff-PC gestartet. Er
wählt sich per GPRS ins Internet ein und wartet auf Anfragen des Echoclients.
Dieser residiert auf dem Arbeits-PC (Leitstation) und versendet über Ethernet
(Mit einem DSL-Router als Standardgateway) eine Reihe von Ping“-Nachrichten.
”
Der Server empfängt diese und antwortet auf sie mit den entsprechenden Pong“”
Nachrichten.
Sowohl der Server als auch der Client bedienen sich eines Kommunikationsmoduls. Sie müssen es jeweils starten und ihm den Befehl zur Einwahl erteilen.
Nach Aufbau der Verbindung wird das Modul zur Datenübertragung genutzt.
Um es zu beenden (Programmende), schickt ihm der Kommunikationsmanager
(Echoserver, Echoclient) ein halt“-Kommando. Das Modul beendet sich und gibt
”
alle noch belegten Ressourcen frei.
• Kommunikationsmanager an Kommunikationsmodul, Steuerdaten (ICI50 ’s)
– connect
Aufforderung an das Kommunikationsmodul, die Einwahl zu starten.
Dies kann je nach verwendetem Medium eine Weile dauern. Bei GPRS
werden ca. 15 Sekunden zur Einwahl benötigt. Dieser Schritt ist auch
bei Medien ohne Verbindungsaufbau notwendig (Ethernet beispielsweise), denn erst ab diesem Moment nimmt das Modul auch Daten von
49
Wenn die Hauptkommunikationsanbindung über Funk (128 Bytes pro Block) ausfällt, ändert sich beim Umschalten auf eine vorhandene ISDN-Backupleitung (evtl. 1024 Bytes pro
Block) die Fragmentgröße.
50
Interface Control Information.
3.4 Schnittstellen und Protokolle
37
Echoclient
Echoserver
LAN−Modul
Kommunikationsmodul
auf PC (Leitstation)
pong_pdu
killechoserver_pdu
pong_req
ping_ind
killechoserver_ind
halt
disconnected
disconnect
connect
ping_pdu
connected
Kommunikationsmanager
auf Beckhoff−PC
pong_ind
ping_req
killechoserver_req
halt
disconnected
disconnect
connected
connect
Kommunikationsmanager
auf PC (Leitstation)
GPRS−Modul
Kommunikationsmodul
auf Beckhoff−PC
Abbildung 16: Protokolle des Prototyp (Echoserver, Echoclient)
anderen Stationen entgegen. Nach Aufbau der Verbindung beginnt das
Kommunikationsmodul auf dem Medium zu lauschen.“
”
– disconnect
Das Kommunikationsmodul soll seine aufgebaute Verbindung beenden.
Sowohl eingehende als auch ausgehende Datenverbindungen werden
gekappt. Es werden keine neuen Verbindungsaufbauwünsche bedient.
– halt
Das Kommunikationsmodul soll sich beenden. Es wird alle belegten
Ressourcen freigeben und sich terminieren.
• Kommunikationsmanager an Kommunikationsmodul, Daten (PDU51 ’s)
– ping_req
Der Echoclient verschickt ein Ping“ an den Echoserver.
”
– pong_req
Der Echoserver antwortet auf ein Ping“ mit einem Pong“. Die Ant”
”
wort geht an die Station, die das Ping gesendet hatte.
– killechoserver_req
Hiermit kann der Echoclient den Echoserver aus der Ferne“ beenden.
”
Da der Echoserver auf dem Beckhoff-PC läuft, wird ein manueller Eingriff am Beckhoff-PC zur Beendigung des Echoservers unnötig.
• Kommunikationsmodul an Kommunikationsmanager, Steuerdaten (ICI’s)
– connected
Das Kommunikationsmodul ist jetzt online. Es ist bereit, Nutzdaten
51
Protocol Data Unit.
38
3 DIE EINZELNEN MODULE IM DETAIL
zu übertragen. Der Kommunikationsmanager kann ab sofort Daten
versenden.
– disconnected
Das Kommunikationsmodul ist nicht mehr online. Dies passiert immer
dann, wenn vorher ein disconnect empfangen wurde oder das Medium
wegen einer Störung zeitweise nicht verwendet werden kann ( Ausfall
”
durch ziehen des Antennensteckers“).
• Kommunikationsmodul an Kommunikationsmanager, Daten (PDU’s)
– ping_ind
Auf Seite des Echoservers ist eine Ping“-Nachricht (Anfrage des Echocli”
ents) eingetroffen.
– pong_ind
Auf Seite des Echoclients ist eine Pong“-Nachricht (Antwort des Echo”
servers) eingetroffen.
– killechoserver_ind
Der Echoserver erhält den Befehl, sich und sein Kommunikationsmodul
zu beenden.
• Kommunikationsmodul an Kommunikationsmodul
– ping_pdu
PDU vom Echoclient zum Echoserver. Sie fordert den Echoserver zu
einer Antwort ( Pong“) auf.
”
– pong_pdu
PDU vom Echoserver zum Echoclient. Enthält die Antwort auf ein
Ping.“
”
– killechoserver_pdu
Eine weitere PDU. Sie befiehlt dem Echoserver, sich und sein Kommunikationsmodul zu beenden.
39
4
Kommunikation über GPRS
4.1
Nutzerschnittstelle des GPRS-Modems
Das GPRS-Modem wird über eine serielle Schnittstelle (RS232) mit dem PC verbunden. Das GPRS-Modem emuliert ein herkömmliches analoges Modem, um
eine maximale Kompatibilität zu existierenden Betriebssystemen zu gewährleisten. Das Betriebssystem greift dabei auf das Point-to-Point Protocol“ (PPP)
”
zurück, um sich mit einem Internetprovider zu verbinden. Der dazu notwendige
PPP-Protokollstapel ist fest im Modem integriert. Das Modem wird über den ATBefehlssatz52 angesprochen. Mit den entsprechenden Befehlen wird die Einwahl
gestartet und per PPP eine Internetverbindung etabliert.
Das folgende Blockschaltbild zeigt die interne Struktur des Modems. Im Vergleich zur bei Analogmodems verwendeten Technik ist hier der PPP-Protokollstapel des Providers in das Modem integriert. Er dient hier lediglich der Kopplung
zwischen Modem und Betriebssystem.
Embedded PC
Einwahl
Terminal
GPRS Modem
Anwendung
PPP
Stapel
Serielle Schnittstelle
GGSN
SGSN
BSS
Modem
Steuerung
IP
IP
AT−Codes
GPRS Provider
AT−Codes
IP
Internet
IP
PPP
Stapel
Serielle Schnittstelle
Serielles Kabel
GPRS
Protokollstapel
GPRS
Protokollstapel
Funkschnittstelle
AT
:
IP
:
PPP :
GPRS :
GGSN :
SGSN :
BSS :
Attention Codes
Internet Protocol
Point to Point Protocol
General Packet Radio Service
Gateway GPRS Support Node
Serving GRPS Support Node
Base Station Subsystem
Abbildung 17: Vereinfachtes Schichtenmodell GPRS-Modem
4.2
4.2.1
Inbetriebnahme des GPRS-Modems
Die Hardware vorbereiten
Zur Inbetriebnahme des Modems wird eine SIM-Karte53 in die dafür vorgesehene
Schublade des Modems eingelegt. Auf dieser sind die Zugangsdaten des Nutzers
und Informationen des verwendeten Mobilfunkprovider gespeichert.
52
53
AT: Attention“-Codes, Hayes-Befehlssatz.
”
Subscriber Identity Module.
40
4 KOMMUNIKATION ÜBER GPRS
Das Modem kommt als kompakte Blackbox und kann direkt in einen Schaltschrank eingebaut werden. Es wird noch eine externe Antenne benötigt, die an
einem Ort installiert werden muss, wo ein ausreichender Empfang gewährleistet
ist. Beim vorliegenden Testaufbau kommt eine Multiband-GSM-Antenne54 der
Firma Hirschmann zum Einsatz. Sie besitzt einen Magnetfuß und weist eine Impedanz von 50 Ω auf, was auch vom Modem verlangt wird.
Abbildung 18: Schema der externen Antenne
Zur Stromversorgung wird ein externes Netzteil mitgeliefert. Das Modem kann
aber auch direkt mit einer Eingangsspannung im Bereich von 8 − 30 V DC betrieben werden.
4.2.2
Testen des AT-Befehlssatzes
Das GPRS-Modem wird über ein serielles Schnittstellenkabel (RS232) mit dem
Rechner verbunden. Die Einbindung in das Betriebssystem gestaltet sich sehr einfach, da das GPRS-Modem das Verhalten eines normalen“ Modems für analoge
”
Telefonleitungen nachahmt. Es wird über AT-Kommandos gesteuert und bringt
einen integrierten PPP-Protokollstapel zur Emulation55 eines Internetproviders
mit sich.
Die folgende Tabelle zeigt diejenigen AT-Kommandos des Modems, die zur
Inbetriebnahme, zum Testen und zum Verbindungsaufbau notwendig sind. Es
gibt noch sehr viele weitere Befehle, welche aber nur für Spezialaufgaben relevant
sind. Sie können bei Bedarf unter [Siem01b] nachgeschlagen werden.
54
Typ Hirschmann MCA 18 90 MH“.
”
Emulation deshalb, weil bei Nutzung eines herkömmlichen Analogmodems der PPP-Protokollstapel der Gegenstation beim Internetprovider liegt. Bei GPRS ist dieser bereits im Modem
integriert. Er dient nur der Kopplung zwischen Betriebssystem und Modem, nicht jedoch als
Schicht 2 Protokoll auf der Übertragungsstrecke.
55
4.2 Inbetriebnahme des GPRS-Modems
AT-Kommando
AT
ATZ
AT +CPIN
=0000
AT +CGDCONT
=1,
ip,
internet.t-d1.de
AT +CGQREQ
=1,
3,
4,
3,
0,
0
ATD *99***1#
ATDP *99***1#
ATDT *99***1#
ATH
+++
ATA
41
Bedeutung
Attention“, liefert OK
”
Rücksetzen des Modems
PIN zur Authentifizierung übermitteln
PDP-Kontext definieren
Context Identity“ (CID)
”
Packet Data Protocol“ (PDP)
”
Access Point Name“ (APN)
”
Quality of Service-Parameter setzen
Context Identity“ (CID)
”
Precedence“ (Priorität)
”
Delay“ (Verzögerung)
”
Reliability“ (Zuverlässigkeit)
”
Peak“ (Spitzenrate)
”
Mean“ (Mittlere Rate)
”
Wahlaufruf, Bezug auf PDP-Kontext CID=1
Alternative Angabe zu ATD (Pulswahl)
Alternative Angabe zu ATD (Tonwahl)
Wird vom Modem nicht unterstützt!
Auflegen
Wechsel vom Datenübertragungsmodus
(PPP) in den AT-Modus
Wechsel vom AT-Modus zu unterbrochenem
Datenübertragungsmodus
Tabelle 1: Wichtige AT-Kommandos
Um den Befehlssatz zu testen, wird ein Terminalprogramm benötigt. Dazu
eignet sich unter Windows das mitgelieferte Terminalprogramm Hyperterminal“
”
bzw. unter GNU/Linux das Programm Minicom“. Als Schnittstelle wird der seri”
elle Port des Modems ausgewählt (eventuell COM1: unter Windows, /dev/ttyS0
unter Linux). Die Standardparameter der Portkonfiguration56 sind bereits korrekt und können beibehalten werden. Auf dem folgenden Bildschirmfoto (Seite
42) sieht man eine Minicom-Sitzung, in der das Modem mit Hilfe von AT-Kommandos dazu gebracht wird sich beim Provider einzubuchen und dem Rechner
über PPP eine Internetverbindung bereitzustellen.
Die Einwahl wird durch mehrere Schritte gestartet:
• ATZ
56
Baudrate, Parität und Anzahl der Stoppbits.
42
4 KOMMUNIKATION ÜBER GPRS
Abbildung 19: Konfiguration und Einwahl über AT-Kommandos
Setzt das Modem zurück. Dieser Schritt ist nicht unbedingt erforderlich,
da das Modem in der Regel gerade erst eingeschaltet wurde und noch kein
Rücksetzen notwendig ist.
• AT +CGDCONT=1,ip,internet.t-d1.de
Erzeugung eines PDP-Kontextes (Packet Data Protocol). Mit der ContextID (CID) Nr.1 wird das PDP IP“ und der Access Point Name“ (APN)
”
”
internet.t-d1.de“ verknüpft.
”
• AT +CGQREQ=1,3,4,3,0,0
Festlegung der Quality of Service“ (QoS-) Parameter des PDP-Kontextes.
”
• ATD *99***1#
Start der Einwahl in das Internet. Im Hintergrund wird das Modem jetzt
versuchen, sich in das GPRS-Netz einzubuchen und vom Provider eine IPAdresse zu bekommen. Bei Erfolg initialisiert das Modem seinen integrierten PPP-Protokollstapel, um den angeschlossenen Rechner ins Internet zu
”
leiten“. Die kryptischen Zeichen mit den vielen Klammern in Abbildung 19
auf Seite 42 zeigen den resultierenden PPP-Datenstrom. Da nur ein simples
Terminalprogramm ohne eingebauten PPP-Protokollstapel verwendet wird,
kann der Datenstrom direkt betrachtet werden.
4.2 Inbetriebnahme des GPRS-Modems
43
Bei herkömmlichen Analogmodems gibt es unterschiedliche AT-Einwahlkommandos. Diese reichen von ATDP für eine Einwahl über Pulswahl, ATDT für eine
Einwahl über Tonwahl bis zu ATD für eine Einwahl mit nicht spezifiziertem Wahlverfahren. Bis auf Tonwahl werden alle Kommandos vom Modem unterstützt
(siehe Abbildung 20, Seite 43). Bei der späteren Konfiguration der Interneteinwahl ist unbedingt darauf zu achten, dass Pulswahl verwendet wird. Sonst wird
sich das Modem nicht in das GPRS-Netz einbuchen.
Abbildung 20: Test verschiedener AT-Kommandos zur Einwahl
Bei einen letzten Experiment wird das Modem von einem Festnetztelefon aus
angerufen. Dabei kommt kein GPRS oder IP zum Einsatz. Wie Abbildung 21
zeigt, hat der Anruf geklappt. Im Fenster des Terminalprogrammes tauchen mehrere RING-Nachrichten auf. Der Befehl ATA bringt das Modem zur Annahme der
Verbindung, und man erhält eine bestehende Sprachverbindung. Im Telefonhörer
sind hierbei keinerlei Geräusch zu vernehmen, nur das Freizeichen verschwindet
nach dem Absetzen des Abhebekommandos. Die bestehende Verbindung wird
entweder durch Auflegen des Telefons oder durch Eingabe des Kommandos ATH
im Terminalprogramm beendet.
44
4 KOMMUNIKATION ÜBER GPRS
Abbildung 21: Zweimaliger Anruf des Modems aus dem Festnetz
4.2.3
Konfiguration zur Einwahl in das Internet über PPP
Die ersten Tests zur Einwahl ins Internet wurden auf einem SuSE57 Linux 8.2
durchgeführt. Zu diesem Zeitpunkt stand dem Autor nur das GPRS-Modem,
aber noch keine Microsoft Windows-Entwicklungsumgebung und kein BeckhoffPC zur Verfügung.
Das GPRS-Modem wird als herkömmliches Modem erkannt. Anschließend
wird die Interneteinwahl konfiguriert. Die vollständige Konfiguration befindet sich
in Anhang F auf Seite 82, das Logfile zur Einwahl in Anhang G auf Seite 86.
Hier erkennt der interessierte Leser die notwendigen Einstellungen. Das Logfile
zeigt die Reaktion des GPRS-Modem auf die einzelnen AT-Kommandos und die
Aushandlung der PPP-Verbindung.
4.2.4
Test der aufgebauten Verbindung
Die aufgebaute GPRS-Verbindung ist aus Nutzersicht nicht von einer herkömm”
lichen“ Internetverbindung zu unterscheiden. Ein paar Ping“-Kommandos an
”
bekannte Server funktionieren auf Anhieb. Der Browsertest mit URL’s bekannter
Webseiten funktioniert ebenfalls, aber es dauert lange bis eine Webseite komplett
aufgebaut ist. Dies liegt aber nicht an einer langsamen Übertragungsgeschwindigkeit von GPRS, sondern an der Wechselwirkung zwischen TCP/IP und den
57
Homepage unter [SuSE].
4.3 Windows CE .NET 4.1 und GPRS
45
hohen Paketlaufzeiten bei GPRS. Diese Problematik wird in einem eigenen Kapitel (Abschnitt 4.4.2) auf Seite 51 betrachtet.
4.3
4.3.1
Windows CE .NET 4.1 und GPRS
Zur Einwahl notwendige Schritte
Es folgt eine detaillierte Beschreibung wie das verwendete GPRS-Modem Sie”
mens MC35i“ unter Microsoft Windows CE .NET 4.1 ansprochen wird. Es gibt
eine wichtige Randbedingung, die bei der Softwareerstellung eingehalten werden
soll: Der gesamte Konfigurationsprozess muss vollständig per Software auf einem
nackten“ Image durchzuführen sein.
”
Es muss ausreichen, das Programm auf dem Beckhoff-PC abzulegen, das Modem anzuschließen und das Programm zu starten. Es darf keine weiteren Einstellungen geben, die vorher manuell kontrolliert werden müssen.
Die vollautomatische Einwahl58 in das Internet mit Hilfe eines Modems ist unter Windows CE eine sehr aufwendige Angelegenheit. Es stellte sich heraus, dass
ein dafür elementar wichtiger Konfigurationsschritt nirgendwo dokumentiert wurde. Über Google59 konnte aber ein Artikel gefunden werden, der einen inoffiziellen
Registry-Hack“ vorstellt um die Einstellungen manuell60 vorzunehmen.
”
Um die Einwahl auf einem völlig unbedarften Image zu starten, sind die nachfolgend aufgeführten Schritte notwendig. Sie werden im nächsten Unterkapitel
genauer betrachtet. Die Aufzählung richtet sich an den interessierten Entwickler, da es sich um ein programmiertechnisches Problem handelt. Wer noch nie
für Windows CE entwickelt hat, dem werden ein paar der verwendeten Begriffe
nichts sagen. Sie sind aber unter [GrBr01] nachlesbar.
1. Die Unimodem-Einträge in der Registrierdatenbank manuell auf brauchbare
Defaultwerte setzen.
2. Alle defaultmäßig verwendeten Initstrings aus der Registrierdatenbank entfernen.
3. Mit Hilfe von Befehlen der Telephony API“ (TAPI) nach nutzbaren Mo”
dems suchen.
4. Erzeuge in der Registrierdatenbank eine so genannte Location“, um das
”
Wahlverhalten61 zu beeinflussen. Dafür gibt es seitens Microsoft weder APIBefehle, Einstellungsboxen noch Dokumentation.
58
Diese Funktionalität lässt sich mit der von Dialern“ vergleichen. Ein Programm spricht ein
”
Modem vollautomatisch an um eine Einwahl zu starten.
59
Eine Suchmaschine, erreichbar unter http://www.google.de.
60
Da es weder einen API-Aufruf, noch eine Klickbox“ im ControlPanel gibt.
”
61
Verwendung von Tonwahl oder Pulswahl, Länderprefixe in den Rufnummern und die Notwendigkeit von Amtsholungen.
46
4 KOMMUNIKATION ÜBER GPRS
5. Schreibe die notwendigen Init-Strings des Modems manuell in die Registrierdatenbank.
6. Fülle eine RASENTRY-Datenstruktur aus und sende sie an das Betriebssystem. Sie enthält Informationen über das beim Verbindungsaufbau zu verwendende Modem und die zu wählende Rufnummer.
7. Fülle eine RASDIALPARAMS-Datenstruktur aus und registriere sie im Betriebssystem. Über sie werden der Loginname und das Passwort zur Authentifizierung am Provider eingestellt.
8. Starte die Einwahl über den API-Aufruf RasDial(). Dieser schlägt beim
Setzen der PIN bei Verwendung eines Siemens MC35I“ immer fehl, da
”
sich das Modem beim PIN-Setzen erst intern initialisiert und für mehrere
Sekunden blockiert. In dieser Zeitspanne läuft RasDial() in einen Timeout
und bricht ab. Mehr dazu auf Seite 49.
9. Überwache die Einwahl und die aufgebaute Verbindung über den Mechanismus der Window-Messages“.
”
10. Nutzung der aufgebauten Verbindung. Die notwendigen Einstellungen zum
Nameserver und zum Standardgateway werden automatisch gesetzt.
11. Beenden der Verbindung über den API-Aufruf RasHangUp().
4.3.2
Die einzelnen Schritte im Detail
Die im vorangegangenen Abschnitt genannten Schritte werden nun im Detail
betrachtet. Es wird speziell auf die Anwendung der Befehle eingegangen.
1. Den Unimodem-Eintrag anpassen
Wenn man unter Microsoft Windows CE. NET 4.1 eine Internetverbindung
über ein Modem aufbauen möchte, wird die Konfiguration dieses Modems
dem so genannten Unimodemeintrag entnommen. Dies ist eine Ansammlung von Parametern, die in der Registrierdatenbank unter dem Schlüssel
HKLM62 \Drivers\Unimodem zu finden sind. Der erste Unterschlüssel unter
\Settings\ enthält eine Reihe von Schlüssel-Werte-Paaren mit AT-Kommandos. Sie werden dazu verwendet das Modem zu resetten (ATZ) oder um
eine Einwahl zu starten (ATD). Der zweite Unterschlüssel \Init\ enthält
eine Reihe von Initstrings, die vor einer Einwahl der Reihe nach an das
Modem gesendet werden. Hier muss sichergestellt werden, dass die geforderten Einträge überhaupt in der Registrierdatenbank existieren und dass
sie auf brauchbare Werte gesetzt sind. Man muss dabei direkt die Regierdatenbank manipulieren, da es keine API-Kommandos zum Zugriff auf den
Unimodem-Eintrag gibt.
62
HKLM ist die gebräuchliche Kurzform für HKEY_LOCAL_MACHINE .
4.3 Windows CE .NET 4.1 und GPRS
47
2. Alle Initstrings entfernen
Bevor eigene Initstrings in die Registrierdatenbank geschrieben werden, sollten alle bereits existierenden Einträge entfernt werden. Sonst kann es passieren, dass bereits mehrere Einträge exisitieren und diese nicht komplett
von den eigenen Initstrings ersetzt werden. Es ist daher sehr wichtig, in
einem ersten Schritt alle Altlasten unter HKLM\Drivers\Init\ zu entfernen. Um ganz sicher zu gehen, dass das System nicht negativ beeinflusst
wird, hinterlegt man einen leeren“ Initstring. Dafür bietet sich das neu”
trale AT-Kommando AT<CR> an. Wie man sieht, müssen Initstrings in der
Registrierdatenbank um die Zeichenfolge <CR>63 ergänzt werden.
3. Suche nach ansprechbaren Modems
Für die spätere Einwahl benötigt man den Identifikationsstring des Modems. Erst mit seiner Hilfe kann des Betriebssystem erkennen, welches der
angeschlossenen Geräte für die Einwahl benutzt werden soll. Dieser Identifikationsstring muss genau bekannt sein und wird vor der Einwahl ermittelt.
Es gibt mehrere Funktionen in der Telephony API“, die man zur Suche
”
nach verfügbaren Modems nutzen muss. Einer davon lautet LineEnumerate(), welcher die Identifikationsstrings aller verfügbaren Schnittstellen
der Reihe nach zurückliefert. Man muss sich anschließend den richtigen aus
der übergebenen Menge heraussuchen. Es gibt zwei Bedingungen, die der
potentielle Indentifikationsstring gleichzeitig erfüllen muss:
• Der String muss das Schlüsselwort Hayes“ enthalten.
”
• Der String muss die Schnittstelle, an der das Modem angeschlossen
ist, als Teilstring enthalten (Beispielsweise COM1“).
”
Die konkrete Anwendung der TAPI-Funktionen erweist sich als aufwendig. Sie erfordert unter anderem die Nutzung einer so genannten CallbackFunktion. Wenn man dieses ganze Beiwerk“ ignoriert, reduziert sich der
”
Aufwand auf die eben genannten Schritte.
4. Erzeugung einer neuen Location“
”
Dieser Abschnitt befasst sich mit dem schwierigsten Schritt, der zur Einwahl notwenig ist. Wenn man dem Betriebssystem befiehlt, eine bestimmte Telefonnummer anzuwählen, wird anhand noch weiterer Parameter der
Wahlstring für das Modem zusammengesetzt. Wünschenswert ist hierbei
der simple Einwahlbefehl ATDP (Pulswahl) direkt gefolgt von der zu wählenden Rufnummer, was aber in der Praxis leider so nicht funktioniert. Bei
ersten Experimenten wurde der Wahlstring durch mehrere vorangestellte
Nullen komplett unbrauchbar gemacht.
63
CR“ ist die Abkürzung für Carriage Return“, was so viel wie Wagenrücklauf bedeutet.
”
”
48
4 KOMMUNIKATION ÜBER GPRS
Die Einstellungen, die das interne Vorbereiten des Wählstrings steuern, sind
in der so genannten Location zusammengefasst. Sie befindet sich in Form
eines REG_MULTI_SZ-Datenfeldes in der Windows-Registrierdatenbank. Sie
ist über den Pfad HKCU64 \ControlPanel\Dial\Locations\ innerhalb der
Registrierdatenbank zu finden. Die einzelnen Parameter müssen nach einem
festgelegten Schema als Stringfeld codiert und in der Registrierdatenbank
abgespeichert werden. Folgende Parameter der Location beeinflussen das
Wahlverhalten:
• Entscheidung zwischen Pulswahl oder Tonwahl
• Wahl eines Länderprefix, der vor die Vorwahl angefügt werden soll
• Wahl einer Vorwahl, die vor die Rufnummer gebastelt werden soll
• Festlegung einer zu verwendenden Amtsholung
Es ist unbedingt sicherzustellen, dass für das Siemens-GPRS-Modem Pulswahl verwendet wird. Sonst wird das Modem nicht anfangen zu wählen.
Weiterhin sind alle anderen Funktionen und Optionen zu deaktivieren, damit der Programmierer die volle Kontrolle über die Bestandteile des Wahlstrings erhält.
Keine dieser Funktionen wurde von Microsoft dokumentiert. Der Autor fand
aber einen einzelnen Beitrag eines Microsoft-MVP65 in den Newsgroups. Er
beschreibt einen inoffiziellen Registry-Hack“. Ohne diesen Hinweis hätte
”
das Modem nicht in Betrieb genommen werden können.
5. Eigene Initstrings setzen
Die komplette Konfiguration des Modems erfolgt über AT-Kommandos,
die vom Betriebssystem in Form der Initstrings an das Modem gesendet
werden. Es sind insgesamt drei Initstrings notwendig, um alle notwendigen
Parameter an das Modem weiterzuleiten:
• Die Freischaltung der SIM-Karte über die PIN im ersten Initstring
• Die Definition des Packet Data Protocols“ (PDP-Kontext) im zweiten
”
Initstring
• Die Wahl der Quality of Service-“ (QoS-) Parameter im dritten Init”
string
Die Initstrings werden direkt in die Registrierdatenbank unter dem Pfad
HKLM\Drivers\Init\ abgelegt. Jeder Eintrag besteht aus einem Schlüssel-
64
HKCU ist die gebräuchliche Kurzform für HKEY_CURRENT_USER.
Microsoft zeichnet in Newsgroups besonders engagierte Privatleute mit dem Titel Most
Valuable Professional aus, um diese als wertvolle Mitglieder der Community“ zu kennzeichnen.
”
65
4.3 Windows CE .NET 4.1 und GPRS
49
Wertepaar. Der Schlüssel besteht aus einer Zahl, welcher die Bearbeitungsreihenfolge der einzelnen Initstrings vorgibt. Der zugehörige Wert enthält
den Initstring als Zeichenkette.
Es gibt dabei ein Problem mit der Freischaltung des Modems durch die
PIN. Dieses Problem wird im späteren Abschnitt Die Einwahl starten“ auf
”
Seite 49 erläutert.
6. Einen Telefonbucheintrag erstellen
Als nächstes kommt das Ausfüllen einer RASENTRY-Datenstruktur an die
Reihe. Sie enthält Informationen über den Einwahlprozess:
• Die Verwendung von PPP (ISO/OSI-Schicht 2) einstellen
• Die Verwendung von IP (ISO/OSI-Schicht 3) aktivieren
• Auswahl des Modems über seinen Identifikationsstring
• Den Gerätetyp festlegen: Verwende die Konstante RASDT_Modem
• Übergabe der zu wählenden Telefonnummer
Anschließend wird die ausgefüllte Datenstruktur mit Hilfe des API-Kommandos RasSetEntryProperties() an das Betriebssystem gesendet.
7. Einen Providereintrag erstellen
Zur Anmeldung bei einem Provider ist in der Regel eine Authentifizierung
über einen Loginnamen und ein Passwort vorgesehen. Obwohl dies bei einer Einwahl ins Internet über GPRS nicht notwendig ist, muss trotzdem
der vorgesehene Mechanismus des Betriebssystems zur Einwahl beachtet
werden. Die notwenigen Parameter werden über eine so genannte RASDIALPARAMS-Datenstruktur dem Betriebssystem mitgeteilt. Sie enthält:
• Den Loginnamen (bei GPRS eine beliebige Zeichenfolge)
• Das Anmeldepasswort (ebenfalls eine beliebige Zeichenfolge)
• Eine Referenz auf eine gültige RASENTRY-Datenstruktur.
Die Aktivierung der ausgefüllte Struktur geschieht über den API-Befehl
RasSetEntryDialParams().
8. Die Einwahl starten
Der API-Befehl RasDial() startet die Einwahl des Modems und etabliert
eine PPP-Verbindung zum Provider. Als Parameter wird ihm eine Referenz
auf eine gültige RADDIALPARAMS-Datenstruktur übergeben. Danach wird innerhalb des Betriebssystems eine Kette von Ereignissen durchlaufen:
(a) Zurücksetzen des Modems
50
4 KOMMUNIKATION ÜBER GPRS
(b) Versendung aller Initstrings der Reihe nach an das Modem. Dazu gehört auch das Setzen der PIN.
(c) Starten der eigentlichen Einwahl
(d) Warten auf erfolgreiches Abschließen der Einwahl
(e) Einrichtung der PPP-Verbindung
(f) Übernahme der zugewiesenen IP-Adresse, der Adresse des zu verwendenden Nameservers und der Adresse des Standardgateways
Es gibt dabei ein Problem mit dem Setzen der PIN, wenn der dazu notwendige Befehl über einen Initstring an das Modem gesendet wird. Die
Bearbeitung des AT CPIN-Befehls durch das Modem dauert sehr lange (bis
zu zehn Sekunden), da hierbei auf eine Antwort des Mobilfunkproviders gewartet wird. Dadurch läuft aber RasDial() in einen Timeout, und bricht
die Einwahl mit einer Fehlermeldung ab. Der selbe Fehler tritt auch auf,
wenn die PIN bereits gesetzt wurde und der betreffende Initstring ein zweites Mal an das Modem gesendet wird. Auch hierbei schlägt die Einwahl mit
RasDial() fehl.
Das Problem wird dadurch gelöst, dass in einem ersten Schitt immer die
PIN in Form eines Initstrings an das Modem gesendet wird und RasDial()
dabei bewusst fehlschlägt. Anschließend wird das Kommando aus der Menge der Initstrings entfernt und die Einwahl ein zweites Mal gestartet. Dabei
wird dann nicht mehr versucht, die PIN zu setzen, sondern sofort mit der
Einwahl begonnen. Das Timeout-Problem tritt hierbei nicht mehr auf.
9. Die Verbindung überwachen
Der RasDial()-Befehl kann so parametriert werden, dass er im Hintergrund den Verbindungsaufbau und die anschließend aufgebaute Verbindung
überwacht. Immer wenn es dabei zu einer Statusänderung kommt, wird
eine so genannte Window-Message generiert und an einen zu spezifizierenden Window-Message-Handler übergeben. Dieser ist so implementiert,
dass er auf zwei spezielle Window-Messages reagiert (RASCS_Connected und
RASCS_Disconnected). Erstere wird immer dann ausgelöst, wenn eine Einwahl ins Internet erfolgreich war, die letztere wenn die Einwahl gescheitert
ist oder eine bereits laufende Sitzung getrennt wurde. Dabei kann nach
Bedarf sofort eine Wiedereinwahl veranlasst werden (über einen erneuten
Aufruf von RasDial()).
10. Die Verbindung auslösen
Der API-Befehl RasHangUp() trennt eine aufgebaute Verbindung. Das Betriebssystem kümmert sich intern um alle notwendigen Schritte, so dass an
dieser Stelle keine weiteren Aufräumkommandos notwendig sind. Der Befehl löst zusätzlich eine RASCS_Disconnected-Meldung aus. Dies muss beim
Entwurf des Window-Message-Handlers“ berücksichtigt werden.
”
4.4 Besonderheiten bei der Nutzung von GPRS
4.4
4.4.1
51
Besonderheiten bei der Nutzung von GPRS
Quality of Service
Der folgende Abschnitt behandelt die mit dem vorliegenden GPRS-Modem erreichbaren Datenraten. Die Leistungsfähigkeit einer Datenübertragungsstrecke
kann dabei durch verschiedene Merkmale charakterisiert werden:
• Datendurchsatz im Downlink
• Datendurchsatz im Uplink
• Paketverlustrate
• Laufzeit
• Laufzeitschwankungen
Es macht ein Unterschied, auf welcher Schicht66 der Tester die Benchmarks
ansetzt. Die Leistungsdaten für die GPRS-Schnittstelle brauchen nicht direkt
gemessen zu werden, denn sie sind schon in den Datenblättern67 zu GPRS aufgeführt68 .
Diese Daten geben aber nur begrenzt Auskunft über die auf höheren Schichten
erreichbaren Datenraten. Das GPRS-Kommunikationsmodul verwendet TCP/IP
als Kommunikationsprotokoll.
4.4.2
Die TCP/IP Problematik
Die in TCP/IP integrierten Mechanismen zur Fluss- und Staukontrolle wurden
ursprünglich für Netze mit kurzen Paketlaufzeiten und sehr geringen Übertragungsfehlerraten entworfen. TCP geht davon aus, dass Pakete nur dann verloren
gehen, wenn im Netz eine Stausituation vorliegt. TCP senkt daraufhin die Rate
der ausgesendeten Pakete, um den Engpass im Netz nicht zu verschärfen. Diese
Mechanismen funktionieren für Festnetze mit festen Endsystemen, jedoch nicht
mehr für das drahtlos arbeitende GPRS. Hier trifft TCP auf Paketlaufzeiten im
Sekundenbereich69 , und je nach gewählten QoS70 -Parametern auf Paketfehlerraten von bis zu 1 : 102 . TCP kann nun nicht mehr unterscheiden, ob die Pakete noch im Netz unterwegs sind oder durch einen Stau verworfen wurden. Viel
66
Schicht im Sinne des ISO/OSI Referenzmodells.
Bei GPRS entscheiden die wählbaren QoS-Parameter (Quality of Service) über die bereitgestellte Qualität des Dienstes. Sie sind unabhängig vom verwendeten Modem und Provider.
68
Siehe [Schi00] und [Siem01b] (Abschnitt QoS-Parameter).
69
Verzögerungsklasse 3: Der Erwartungswert der Übertragungsdauer einer 128 Bytes großen
SDU liegt bei 50 Sekunden. 95% der SDU’s werden innerhalb von 250 Sekunden ausgeliefert.
In der Praxis wird momentan sogar nur Klasse 4, also Best Effort, angeboten.
70
Quality of Service.
67
52
4 KOMMUNIKATION ÜBER GPRS
schlimmer ist, dass von Zeit zu Zeit wirklich Pakete verloren gehen. TCP wird
permanent mit einer scheinbar drohenden Stausituation konfrontiert. Es drosselt
die Datenrate, und versendet Paketwiederholungen um die Verluste zu kompensieren.
Ein TCP-Datenstrom benötigt eine gewisse Zeit, bis er die Kapazität eines
Übertragungskanals ausnutzt. TCP tastet sich nach und nach an höhere Datenübertragungsraten heran, bis erste Paketverluste auftreten71 . Die langen Paketlaufzeiten und die im Vergleich zu den Festnetzen hohen Verlustraten kollidieren
mit diesem Mechanismus, und verhindern, dass TCP den gegebenen GPRS-Datenkanal effektiv ausnutzt.
4.4.3
Nutzbare Datenraten
Die direkt mit TCP/IP erreichbaren Datenraten können mit Hilfe von FTP72
bestimmt werden. Dazu eignet sich ein Versuchsaufbau, der aus zwei Rechnern
besteht. Der erste Rechner ist direkt mit dem Internet verbunden73 . Auf ihm läuft
ein FTP-Server, der Dateien sowohl entgegennehmen als auch versenden kann.
Als Gegenstation kommt ein zweiter PC zum Einsatz, der sich über das GPRSModem in das Internet einwählt. Per FTP-Client wird von ihm aus die Datentransferrate zum FTP-Server auf dem ersten Rechner bestimmt. Zur Messung
der Geschwindigkeit eignet sich eine große Datei74 aus Zufallszahlen75 . Sie wird
im ersten Schritt vom Client auf den Server geschoben“, und im zweiten Schritt
”
wieder heruntergeladen. Dabei wird jeweils die Zeitspanne gemessen, die benötigt wird um die Datei komplett zu übertragen. Der im Test verwendete FTPClient zeigt die erreichte Datenübertragungsrate direkt an, was eine manuelle
Berechnung unnötig macht.
Erwartungsgemäß unterscheiden sich die Datentransferraten in beiden Fällen. Der Uplink des GPRS-Modems weist eine geringere Datenübertragungsrate
als der Downlink auf. Der Grund liegt im geplanten Einsatzgebiet des GPRSModems, denn für die normale Internetnutzung ist die Datenrate des Downlinks
wichtiger als der Uplink. Die per FTP gemessenen Raten lauten:
Diese Angaben entsprechen den für das GPRS-Kommunikationsmodul verfügbaren Datenraten. Im Bezug auf das Hochbehälterproblem wäre eine umgekehrte
Verteilung der Datenraten für Up- und Downlink wünschenswert. Die meisten
Daten werden auf der Station erzeugt, und über den Uplink des GPRS-Modems
71
Diese Form der Staukontrolle wird als Slow-Start-Mechanismus“ bezeichnet. Siehe [Schi00].
”
File Transfer Protocol.
73
Dies ist im vorliegenden Fall ein handelsüblicher PC, der sich über ein DSL-Modem mit
dem Internet verbindet.
74
Die Testdatei ist 524288 Bytes groß.
75
Durch die Verwendung von Zufallszahlen wird verhindert, dass an den Übertragungsschnittstellen eine Datenkompression durchgeführt wird. Sie würde zu einem zu optimistischen Ergebnis führen. Die Datei wurde im Test durch den Unixbefehl dd if=/dev/urandom
”
of=./ftp.dat bs=1K count=512“ erzeugt.
72
4.4 Besonderheiten bei der Nutzung von GPRS
53
Datenrichtung der Belastung Dauer
Datenrate
GPRS-Uplink
404 Sekunden 1,3 KB/s
GPRS-Downlink
79 Sekunden 6,5 KB/s
Tabelle 2: Datenraten mit GPRS
an die Leitstation versendet. Da aber bei GPRS ein zeitunabhängiger Tarif zum
Einsatz kommt, entstehen durch die geringe Datenrate im Uplink keine finanziellen Nachteile. Es dauert nur entsprechend lange.
54
5
5.1
5 VERSUCHSAUFBAU UND VERWENDETE HARDWARE
Versuchsaufbau und verwendete Hardware
Aufbau des Netzwerkes
Alle die Studienarbeit umfassenden Aufgaben wurden vom Autor in Heimarbeit
durchgeführt. Daher musste zuerst geprüft werden, welche Komponenten benötigt
werden um jeden Testfall abdecken zu können. Es stellte sich heraus, dass bis auf
die Beckhoff-Station und der GPRS-Anbindung bereits alle notwendige Hardware
vorhanden war.
Als Entwicklungsumgebung kommt ein handelsüblicher PC zum Einsatz. Der
Internetzugang erfolgt über einen weiteren PC, der als Router konfiguriert wurde
und mit einem DSL-Modem ausgestattet ist. Die Beckhoff-Station wird ebenfalls
an den Router angeschlossen und ist somit Bestandteil des lokalen Netzwerkes.
GPRS−Internetzugang
Dyn−IP
Dyn−DNS
192.168.1.3
Embedded PC
Internet
DSL
Dyn−IP
Dyn−DNS
Gateway
Firewall
192.168.1.1
192.168.1.2
Dyn−DNS−Server
Entwicklungsrechner
"Leitstation"
Abbildung 22: Aufbau der Entwicklungs- und Testumgebung
Es müssen gleichzeitig auf dem Beckhoff-PC laufende Programme getestet
werden und eine Verbindung ins Internet bestehen. Die einfachste Lösung für so
etwas sind mehrere Netzwerkkarten im Hauptrechner, aber er wies keine freien
PCI-Steckplätze mehr auf. Also wird diese Aufgabe einem externen Router (der
bereits vorher diese Aufgabe übernahm) übertragen. Das ist keineswegs nur eine
Notlösung, sondern bringt viele Vorteile mit sich. Der Router übernimmt gleichzeitig Aufgaben als Internetzugangspunkt, Firewall und Netzwerkmonitor. Über
den Microsoft Windows 2000-PC hätte man diese Aufgaben nur mit wesentlich
größerem Aufwand hinbekommen können, wenn überhaupt.
Wichtig ist auch die Praxisrelevanz der gewählten Struktur. Im späteren Einsatz wird die Leitstation mit großer Wahrscheinlichkeit über ein Gateway im
5.2 Der embedded PC
55
lokalen Netz ins Internet gelangen. Wird im Testaufbau die Debugging-Verbin”
dung“ (Ethernetstrang) zwischen Router und Beckhoff-Station entfernt, erhält
man genau diese Netzwerkstruktur.
Eine der Hauptaufgaben dieser Studienarbeit bestand darin, ein GPRS-Modem auf dem Beckhoff-PC in Betrieb zu nehmen. Der Datentransfer soll direkt zur
Leitstation erfolgen. Die folgende Abbildung zeigt den Weg, den ein Datenpaket
auf seiner Reise vom Beckhoff-PC zur Leitstation gehen muss:
DSL−Internetprovider
NIC
Entwicklungsumgebung
NIC
NIC
Gateway
Firewall
DSL−Modem
Internet
Dyn−DNS−Server
Embedded PC
Modem
Antenne
BSS
SGSN
GGSN
GPRS−Provider
Abbildung 23: Weg des Datentransfers über GPRS
Das Paket wird über das GPRS-Modem ins Internet geschickt. Sein Ziel ist die
Leitstation, die über den Router ebenfalls mit dem Internet verbunden ist. Das
Paket erreicht den Router, und wird zur Leitstations-Software auf dem ArbeitsPC weitergeleitet.
5.2
Der embedded PC
Als Automatisierungsstation kommt ein embedded PC der Firma Beckhoff zum
Einsatz. Er basiert auf einem Pentium MMX76 kompatiblen Prozessor mit 266
MHz Taktfrequenz. Er wird in der vorliegenden Ausführung77 mit internen 128
MB Arbeitsspeicher geliefert. Als Betriebssystem kommt Microsoft Windows CE
.NET 4.1 zum Einsatz, welches in Form eines Images“ auf einer Compact-Flash”
Karte vorliegen muss. Sie hält 128 MB an nichtflüchtigem Speicher, und bietet
genügend Platz zur persistenten Ablage eigener Daten. Über den integrierten
RJ45 Ethernetanschluss kann direkt mit der Station gearbeitet werden. Das besagte GPRS-Modem, ein Siemens MC35i78 , wird über einen seriellen Anschluss
76
MMX: Multimedia Extensions.
Ein Beckhoff CX1001-0011.
78
Die technischen Daten des Modems befinden sich in Anhang A auf Seite 69.
77
56
5 VERSUCHSAUFBAU UND VERWENDETE HARDWARE
(RS232) an den Beckhoff-PC angeschlossen. Des Weiteren war die vorliegende
Station mit diversen analogen und digitalen Eingängen bestückt. Sie waren für
die anstehenden Aufgaben allerdings belanglos. Sie werden bei Bedarf von der
auf der Station laufenden Soft-SPS ausgelesen und weiterverarbeitet. Die SoftSPS konnte nicht getestet werden, da die von der Firma Beckhoff mitgelieferte
Bediensoftware ( TwinCAT“) nicht mit der Hardware des Hauptrechners kom”
patibel war. Die Software benötigt systemnahen Zugriff auf spezielle Timer, was
in der aktuellen Implementierung nur auf Prozessoren ohne Unterstützung für
symmetrisches Multithreading79“ (SMT) möglich ist. Es gibt einen Patch, der
”
die SMT-Routinen des Betriebssystems deaktiviert80 , aber für das vorliegende
Zweiprozessorsystem gibt es überhaupt keine Hoffnungen das Programm zum
Laufen zu bewegen. Es ist nicht bekannt, ob Beckhoff für zukünftige Versionen
von TwinCAT auch die Unterstützung von SMP-Systemen ( Symmetrisches Mul”
tiprozessing“) plant.
5.3
Der PC: Entwicklungsumgebung und Leitstation
Der PC erfüllt eine Vielzahl von Aufgaben. Sein wichtigstes Einsatzgebiet ist die
Softwareentwicklung. Auf ihm laufen sämtliche Entwicklungsumgebungen, sowohl
um Programme für den embedded PC zu schreiben als auch für die Leitstation.
Der PC kann mit dem embedded PC gleichzeitig über LAN (zum Debuggen) und
über das Internet (zum Testen des GPRS-Datentransfers) kommunizieren.
Auch die Aufgabe der Leitstation wird von diesem PC übernommen. Die
dafür notwendige Software wird lokal gestartet und kann über den Router mit
dem sich per GPRS ins Internet einwählenden embedded PC Daten austauschen.
Der Verbindungsaufbau kann dabei sowohl vom embedded PC als auch vom PC
aus erfolgen. Da jeweils verschiedene IP-Adressen für die Adressierung innerhalb
des LAN’s und die Adressierung innerhalb des weltweiten Internet verwendet
werden, kommt es zu keinen Problemen mit der Wegewahl.
Die technischen Daten entsprechen denen eines handelsüblichen PC’s:
• Workstation-PC, Dual Athlon MP 2000+, 512 MB Arbeitsspeicher
• Betriebssystem Microsoft Windows 2000 oder SuSE Linux 8.2
• Embedded Visual Studio .NET mit Embedded Visual C++
• Visual Studio .NET mit C++ .NET
• Visual Studio C++ 6.0
79
Bei Intel-Prozessoren auch unter dem Begriff Hyper Threading“ bekannt.
”
Dies gilt dann allerdings global für alle auf dem System laufenden Anwendungen und macht
den Vorteil vom SMT komplett zu nichte.
80
5.4 Der Router / Gateway
57
• Über den dynamischen DNS-Eintrag powerstation.dyn.l13.de erreichbar.
5.4
Der Router / Gateway
Die genaue Bezeichnung dieser Komponente gestaltet sich schwierig. Es soll sich
hier nicht an Begriffen wie Router oder Gateway festgebissen, sondern die geforderten Funktionen und deren Umsetzung erläutert werden. Dieser Rechner wird
im Folgenden als Router“ bezeichnet, auch wenn dies technisch nicht immer ganz
”
korrekt sein mag.
Als Plattform für den Router fiel die Wahl auf einen seit Jahren ausrangierten
PC, der für die Aufgabe als kombinierter Einwahlserver, Firewall und Router
geeignet ist. Die technischen Daten der verwendeten Hardware lauten:
• Pentium 90 Prozessor, 72 MB RAM
• Drei Fast Ethernet Netzwerkkarten81 vom Typ Intel EtherExpress 100
• Anbindung an das Internet über ein externes DSL Modem
Als Betriebssystem kommt ein minimales Linuxsystem ohne grafische Oberfläche zum Einsatz. Konkret handelt es sich bei der Distribution um ein Debian
Stable Release 1 (siehe [Debi]), mit dem zur Zeit aktuellsten verfügbaren Linuxkernel 2.6.4 (siehe [Linu]).
Embedded PC
NIC
192.168.1.3/24
Router
ETH2
192.168.1.1/24
DSL−
Modem
ETH0
Bridge
BR0
PPP0
192.168.1.1/24
ETH1
192.168.1.2/24
NIC
Arbeits−PC
Abbildung 24: Schaubild des Routers und seiner Umgebung
81
Network Interfaces, im Text kurz als NIC’s bezeichnet.
58
5 VERSUCHSAUFBAU UND VERWENDETE HARDWARE
Die erste Netzwerkkarte dient zum Anschluss des DSL-Modems (Internetzugang), die beiden anderen führen jeweils über Crosslinkkabel zum embedded PC
und zum Arbeitsplatz-PC. Damit sich der embedded PC und der PC im Netz
gegenseitig sehen können, müssen sie sich im selben Subnetz befinden. Dieses
Problem wird durch den Mechanismus des Ethernet-Bridgings“ gelöst. Er fügt
”
die beiden Netzwerkkarten zu einem gemeinsamen Subnetz zusammen. Der Router kann von beiden PC’s aus über die interne IP-Adresse 192.168.1.1 erreicht
werden.
Die zweite Aufgabe des Routers ist die Maskierung der nur lokal gültigen IPAdressen beim Zugriff auf Ressourcen des weltweiten Internet. Dieser Mechanismus lautet Masquerading“ (oder NAT für Network Address Translation“), und
”
”
lässt jegliche Anfragen des embedded PC’s oder des PC’s ins Internet so aussehen als würden sie vom Router stammen. Der Router besitzt durch die DSLAnbindung als einziger Rechner eine weltweit gültige IP-Adresse (abgesehen vom
Beckhoff-PC bei aufgebauter GPRS-Verbindung).
Mit den mitgelieferten Werkzeugen wird auch ein Paketfilter realisiert. Ohne dieses Hilfsmittel ist es kaum möglich, mit dem Windows 2000 Rechner si”
cher82“ im Internet zu arbeiten. Wie die jüngste Vergangenheit gezeigt hat, reichen schon wenige Minuten Internetverbindungen aus, um sich Schädlinge wie den
Blasterwurm einzufangen. Durch die aktivierte Firewall können keinerlei Anfragen aus dem Internet den Windows 2000 Rechner erreichen. Wird dieses jedoch
gewünscht, können einzelne Ports selektiv freigegeben und an den PC gefor”
wardet83“ werden. Erst dieser Mechanismus erlaubt es, dass im Testaufbau vom
embedded PC Daten über das GPRS-Modem an den PC versendet werden können. Die Daten werden an die weltweit gültige IP-Adresse des Routers adressiert,
und kommen dann über die DSL-Schnittstelle bei diesem an. Er erkennt anhand
der verwendeten TCP-Portnummer den Verwendungszweck und kann den Datenstrom transparent an den PC im internen Netz weiterleiten ( Portforwarding“).
”
In umgekehrter Richtung funktioniert der Mechanismus genauso.
Das vollständige Script bridge-up, welches die hier vorgestellten Funktionen
auf dem Router aktiviert, befindet sich in Anhang C.2 auf Seite 71.
Sehr hilfreich ist auch die Möglichkeit, einen Traffic-Monitor“ auf dem Router
”
einzusetzen. Sämtliche Datenströme laufen über den Router und können angezeigt werden. Hierfür eignet sich das Programm iptraf (siehe [IPtr02]), welches
dem Benutzer einen genauen Überblick über momentan den Router passierende Datenpakete liefert. Für Tests mit ein- und ausgehenden Verbindungen ins
weltweite Internet (an die über per GPRS erreichbare Station) ist diese Überwachungsmöglichkeit sehr nützlich.
82
Sicherheit ist jedoch keine binäre“ Eigenschaft, sondern vielmehr das Ergebnis einer sehr
”
langen Liste von Dingen, die nicht falsch gemacht werden dürfen.
83
Dieses wird über sogenanntes Destination NAT“, bei dem die Ziel-IP-Adresse umgebogen
”
wird, vom Router realisiert.
5.5 Dynamische DNS-Einträge
5.5
59
Dynamische DNS-Einträge
Sowohl der Router als auch der embedded PC bekommen bei der Einwahl ins
Internet vom Internetprovider eine dynamische IP-Adresse zugewiesen. Sie ändert
sich von Einwahl zu Einwahl. Damit sich die beiden PC’s dennoch finden können,
adressieren sie sich gegenseitig über ihre DNS-Namen und nicht über statische
IP-Adressen.
Es gibt diverse Anbieter, die diesen als Dyn-DNS Eintrag“ bezeichneten Ser”
vice anbieten. Der Autor hatte Glück, denn einer seiner Komilitonen betreibt
einen eigenen Nameserver. Es werden zwei DNS-Namen zur Verfügung gestellt.
Der Router ist über den Namen powerstation.dyn.l13.de und der embedded
PC über den Namen epc.dyn.l13.de erreichbar. Bei einer Verbindungstrennung
mit anschließender Wiedereinwahl übermittelt jede Station ihre neue IP-Adresse
an den Nameserver. Nach einer gewissen Synchronisationsdauer84 ist die neue IPAdresse für die anderen Stationen sichtbar. Die Synchronisationszeit liegt zwischen fünf und 15 Minuten. Danach ist der Datentransfer wieder möglich.
Die Synchronisationdauer kann aber durch einen Trick verkürzt werden. Jede Station kann die Absenderadressen einteffender Pakete auswerten, und einen
lokalen Zwischenspeicher zur Namensauflöung pflegen. Wird eine Station vom
Netz getrennt, schickt sie eine Hallo“-Meldung an alle potentiellen Kommunika”
tionspartner. Diese merken sich die Absenderadresse, und können mit ihr einen
Datentransfer vor Abschluss der Synchronisation der Nameserver (DNS) starten.
84
Jeder DNS-Eintrag hat eine gewisse Gültigkeitsdauer, um wiederkehrende Anfragen durch
topologisch nahe DNS-Server zwischenspeichern zu können.
60
6 SONSTIGE BETRACHTUNGEN
6
Sonstige Betrachtungen
6.1
6.1.1
Sicherheit
Offene Ports
Im Falle der GPRS-Anbindung wählt sich der embedded PC über das GPRSModem mit Hilfe des eingebauten PPP-Protokollstapels ins Internet ein. Der
Provider weist dieser Schnittstelle eine weltweit gültige IP-Adresse zu, und der
embedded PC wird Bestandteil des weltweiten Internet.
Hiermit sind viele Probleme verbunden, denn diese Anbindung ist keine Einbahnstraße. Jeder, der die IP-Adresse der Station kennt, kann ebenso wie jeder
autorisierte Nutzer auf IP-Ebene mit der Station kommunizieren. Daher ist es
unumgänglich, die Anzahl der auf der Station laufenden und global angebotenen
Dienste zu untersuchen und ggf. einzuschränken. Laufende Dienste sind immer
ein Sicherheitsrisiko, und man sollte nicht benötigte Dienste abschalten, um die
Möglichkeiten eines böswilligen Angriffes einzudämmen. Bevor man jedoch gegen eine Schwachstelle vorgehen kann, muss man wissen, ob überhaupt welche
vorhanden sind.
Als Werkzeug der Wahl bietet sich der freie Portscanner nmap85 an. Nmap ist
in der Lage, einen über IP erreichbaren Rechner auf laufende TCP- oder UDPDienste zu prüfen86 .
Die Ergebnisse sind erschreckend. Neben den unsicheren Diensten Telnet“
”
und FTP“ war nach außen hin Netbios (UDP) für jedermann offen und zugäng”
lich. Die Ergebnisse der Testdurchläufe sind in Anhang D, Seite 74, nachlesbar.
6.1.2
Firewall
Nach dem vorangegangenen Abschnitt über offenen Ports bei Windows CE 4.1
stellt sich die Frage was man dagegen tun kann. Es gibt prizipiell zwei Ansätze,
die verfolgt werden sollten:
1. Unbenötigte Dienste sind abzuschalten
2. Alle für das Internet unwichtigen Ports sind nach außen hin durch eine
Firewall zu schützen
Der erste Schritt erscheint logisch, lässt sich aber in der Praxis unter Microsoft Windows CE 4.1 nur schwierig bis gar nicht realisieren. Es geht schon mit
der Frage los, welche Dienste überhaupt als notwendig zu klassifizieren sind und
welche nicht. Telnet und FTP könnte man getrost deaktivieren. Bei ihrem Authentifizierungsmechanismus wandert das Passwort im Klartext über die Leitung,
was nicht tragbar ist. Aber wie deaktiviert man einen solchen Dienst?
85
86
Homepage unter http://www.insecure.org/nmap/ [Inse].
Weitergehende Informationen zu nmap sind in dessen Hilfen (Man-Pages) dokumentiert.
6.1 Sicherheit
61
Es konnte nicht herausgefunden werden, wo verzeichnet ist, welche Dienste
wann und wie in welcher Reihenfolge gestartet werden. Im ungünstigsten Fall ist
ein solcher Eingriff nur über nicht dokumentierte Schlüssel in der Registrierdatenbank möglich. Man erkauft sich einen solchen Schritt mit dem Risiko, dass
andere Dienste von Windows versteckt auf einen solchen Dienst aufbauen und
anschließend nicht mehr funktionieren. Hier ist noch weiteres Testen notwendig!
Der zweite Schritt sollte losgelöst vom ersten Schritt umgesetzt werden. Selbst
wenn alle unwichtigen Dienste deaktiviert werden können, ist ein zusätzlicher Paketfilter zu empfehlen. Er kann nicht nur die Nutzung lokaler Dienste vom externen Internet aus unterbinden, sondern auch den normalen“ Datenverkehr auf
”
gewisse Regeln hin überprüfen. Allerdings gibt es in Windows CE 4.1 keinerlei
eingebaute Möglicheiten eine Firewall oder einen Paketfilter zu aktivieren. Dieses
wichtige Feature steht erst mit der Nachfolgeversion Microsoft Windows CE 4.287
zur Verfügung. Da Version 4.2 noch nicht veröffentlicht wurde, kann hier keine
Aussage über die Leistungsfähigkeit der mitgelieferter Firewall gemacht werden.
Auch hier ist noch einiges zu tun, denn in der jetzigen Version ist es ein Risiko,
die Station über eine längere Zeitspanne am Internet zu betreiben. Die Wahrscheinlichkeit, dass ein Cracker im Internet zufällig über die Station stolpert88
und diese angreift, ist nicht zu vernachlässigen.
6.1.3
Nessus-Scan
Der Nessus-Scan“ ist ein Service, der ein an das Internet angeschlossenes System
”
nach Schwachstellen abklopft. Man kann ihn über ein Webformular (zu finden
unter [Port]) starten und bekommt nach Abschluss des Tests eine EMail mit den
Testergebnissen zugeschickt. Die Verwendung des Tests ist kostenlos. Es gibt drei
Testmodi, schnell, standard und intensiv. Sie unterscheiden sich untereinander in
Aufwand und Laufzeit. Zur Untersuchung des Beckhoff-PC’s wurde der Intensivtest gewählt.
Damit der Test auch mit dem vorliegenden Testaufbau durchführt werden
konnte, war eine Änderung der Konfiguration des Routers notwendig. Nur der
Router hängt per DSL direkt am Internet, und erhält als einziges eine globale
IP-Adresse. Sowohl der embedded PC als auch der PC haben selbst nur eine
lokale IP-Adresse, und können nicht direkt vom Nessus-Server“ gesehen werden.
”
Folgende Änderungen waren nötig:
• Router:
Der Router wird so konfiguriert, dass er sämtliche Anfragen aus dem In87
Laut Featureliste auf der Microsoft-Homepage, siehe Dokument [Micr].
Crackern steht heutzutage eine umfangreiche Sammlung von vollautomatischen und sehr
leistungsfähigen Werkzeugen zur Verfügung, während auf der anderen Seite meist Rechner
mit unsicheren Standardeinstellungen betrieben werden. Nmap ist ein solches Werkzeug, das
in der Lage ist eine ungeschütze Windows CE-Station aus einem gegebenen IP-Adresspool
herauszufischen.
88
62
6 SONSTIGE BETRACHTUNGEN
ternet nicht lokal auswertet, sondern an den embedded PC im lokalen Netz
weiterleitet. Dieser als Port-Forwarding“ bekannte Mechanismus wird über
”
so genanntes Destination NAT89“ realisiert. Das Skript zur Konfiguration
”
der Interfaces und der Filterketten liegt in Anhang E.2 auf Seite 75.
• Embedded PC:
Auf dem embedded PC wird der Router als Standardgateway (hier: IPAdresse 192.168.1.1) eingetragen. So finden die Antworten an den NessusServer wieder den Weg zurück ins Internet (über den Router).
• Arbeitsplatz-PC:
Auf dem Hauptrechner ist keine Konfigurationsänderung notwendig. Er ist
lediglich der Initiator des Scanvorgangs. Der Test wird per Browser über
eine Webseite gestartet. Da alle lokalen IP-Adressen vom Router nach außen
hin maskiert werden, kommt es zu keinen Konflikten zwischen PC und
embedded PC. Der Scan wird vom Hauptrechner gestartet, betrifft aber
nur den embedded PC.
Laut Aussage auf der Homepage kann der Testlauf viele Stunden benötigen. Man
lässt ihn am besten über Nacht laufen. Das per EMail zugesendete Logfile befindet
sich in Anhang E.4 auf Seite 76.
Das Logfile offenbart eine Reihe an Schwachstellen. Genannt wird nochmals
die Unsicherheit von FTP“ und Telnet“, die auch schon vom einfachen Portscan
”
”
feststellt wurde. Andere Schwachstellen dagegen sind fest im Betriebssystemkern
angesiedelt (die vorhersagbaren IP-ID’s90 ) und nicht durch Eigeninitiative in den
Griff zu bekommen. Sie stellen laut der Angaben auf der Nessus-Homepage eine
bekannte Verwundbarkeit gegenüber existierenden Angriffen dar (siehe [Port]).
6.1.4
Fehlende Langzeiterfahrung, versteckte Lücken
Windows CE ist eine sehr junge Produktlinie der Firma Microsoft. Es handelt
sich dabei um eine von Anfang an neu programmierte Plattform für embed”
ded Devices“ und Handhelds“, die mit ihren großen Brüdern“ Windows 2000
”
”
bis Windows XP nur noch den Namen und die Grundprinzipien der grafischen
Oberfläche gemeinsam hat.
Es bleibt abzuwarten, ob hier noch gravierende Sicherheitsprobleme, die sich
erst im Laufe der Zeit durch breiten Praxiseinsatz zeigen, verborgen liegen.
• Die Codebasis von Windows CE ist noch jung und noch nicht im breiten
Einsatz. Noch kann niemand abschätzen (außer Microsoft selbst), welchen
89
Destination NAT: Änderung der Zieladresse eines Pakets beim Passieren des Routers, mit
de-Maskierung“ aller Antwortpakete in Rückrichtung.
” 90
Im Logfile des Nessus-Scan lautet es: The remote host uses non-random IP IDs, that is,
it is possible to predict the next value of the ip id field of the ip packets sent by this host. An
attacker may use this feature to determine traffic patterns within your network. [. . . ].
6.1 Sicherheit
63
Grad an Ausgereiftheit Windows CE besitzt. Fakt ist jedoch, dass Softwareentwicklung ein komplizierter Prozess ist, und sich Fehlerbehebung und
das Integrieren neuer Features gegenseitig ausschließen. Noch sind keine
Angriffspunkte bekannt, aber das liegt daran, dass Windows CE noch so
gut wie nirgends an die große weite Welt des Internet angeschlossen ist. Mit
wachsender Verbreitung wird es auch ein begehrteres Angriffsziel werden.
• Die Stationen lassen sich im späteren Einsatz nur schwierig auf einem aktuellen Stand halten. Dazu muss jedesmal ein Mitarbeiter vor Ort die Speicherkarten mit den Images austauschen. Das Ferneinspielen von Patches ist
nicht möglich.
6.1.5
Kostenpflichtige Luftschnittstelle
In dem Moment, wo sich die Beckhoff-Station über ihr Modem in das Internet
einwählt, erhält sie eine weltweit gültige IP-Adresse. Über diese ist sie in der Lage,
Daten mit Hilfe von IP-Paketen zu versenden und zu empfangen. Alle diese Pakete
bilden das Übertragungsvolumen, das die Station über die Luftschnittstelle überträgt. Da bei dem eingesetzten GPRS-Tarif kein zeitbasiertes Abrechnungsmodell
verwendet wird, dient das effektive Übertragungsvolumen als Abrechnungsgrundlage. Das ist brauchbarer Ansatz, da die Station somit rund um die Uhr im Netz
eingebucht bleiben kann und die Kosten direkt über das emittierte Datenvolumen
beeinflußt werden können.
Dieser Ansatz weist aber ein Problem auf, das den reinen Einwahlbetrieb in
seiner jetzigen Form gefährden kann. Der Grund liegt in der Art und Weise, wie
die Abrechnung bei der GPRS-Nutzung durchgeführt wird.
Alle an das Internet angeschlossenen Rechner sind prinzipiell gleichberechtigt
und können sich gegenseitig Datenpakete zusenden. Die Anbindung über GPRS
macht da keine Ausnahme. Jeder Rechner im Internet kann beliebig Daten an
den embedded PC versenden. Alle diese Daten wandern über die Luftschnittstelle
(den Downlink des embedded PC) und verursachen unerwünschtes und kostenpflichtiges Übertragungsvolumen. Solange der embedded PC online ist, kann er
sich in keiner Weise vor diesen Datenpaketen schützen. Selbst eine Firewall greift
erst auf höherer Ebene, wenn die Datenpakete bereits vollständig empfangen wurden. Im schlimmsten Falle schickt der Angreifer eine große Menge an sinnlosen
IP-Paketen ohne relevanten Inhalt. Sie werden zwar vom embedded PC verworfen, aber erst nachdem sie Kosten verursacht haben. Bereits ein DSL-Anschluss
mit dem geringsten erhältlichen Uplink kann einen Datenstrom erzeugen, der die
Kosten für die GPRS-Anbindung in erschreckende Höhen treibt.
Die folgende, noch optimistische91 Rechnung soll ein Gefühl für die potentielle
Schadenshöhe vermitteln:
91
Die Zahlen wurden abgerundet und können nach oben angepasst werden.
64
6 SONSTIGE BETRACHTUNGEN
1. Der Angreifer verwendet einen gewöhnlichen DSL-Uplink mit 128 Kbit/s
2. Er emittiert einen Datenstrom von 10 KBytes/s
3. Der GPRS-Provider berechnet pro 10 KByte-Datenblock 9 Cent
∧
4. 9 Cent pro Sekunde = 324 EUR pro Stunde
Ein möglicher Lösungsansatz müsste schon vor der Luftschnittstelle auf Providerseite greifen. Wenn man dort eine Art Proxy verwenden könnte, der über
bestimmte Regeln nur valide“ Pakete zur Luftschnittstelle durchreicht, würde
”
man die Kontrolle über den kostenpflichtigen GPRS-Link zurückerlangen können.
Es war sehr zeitintensiv, diese Problematik einem Servicemitarbeiter der deutschen Telekom klarzumachen. Prizipiell gibt es dafür eine Lösung, die auf der Nutzung von so genannten Virtual Private Networks“ (VPN) basiert. Dabei kommt
”
ein Proxy zum Einsatz, der vor der Luftschnittstelle auf Providerseite arbeitet.
Er besitzt die volle Kontrolle über weiterzureichende Datenpakete. Er stellt sicher, dass nur Datenpakete von authentifizierten Absendern an den GPRS-Link
weitergeleitet werden, und niemand anders mehr die dargestellte Kostenexplosion
verursachen kann.
Dieses Feature“ wird als Zusatzoption angeboten, und ist bisher ausschließ”
lich für Businesskunden erhältlich. Privatkunden erhalten noch keinen Zugriff
auf dieses wichtige Hilfsmittel. Da die von der Firma bereitgestellte SIM-Karte
den Businesstarif nutzt, konnten weitere Informationen zu diesem Thema92 gesammelt werden. Es fand sich jedoch weder ein kundiger Mitarbeiter noch eine
Preisliste mit weiteren Aussagen zu diesem Thema. Es soll nur sehr teuer“ sein,
”
und eine spezielle Telekom-eigene VPN-Software voraussetzen. Ob es eine kompatible Client-Software für Microsoft Windows CE gibt, konnte nicht beantwortet
werden.
6.2
Zukunftsaussichten
Wichtig ist, dass baldmöglichst eine Firewall in das System integriert wird. Laut
den Produktankündigungen auf der Homepage von Microsoft wird die nächste
Version von Windows CE.NET, die Version 4.2, eine integrierte Firewall mitliefern. Es ist noch offen, wie leistungsfähig diese sein wird. Sie muss bei Erhalt
eines aktuellen Images getestet werden.
Eine weitere Möglichkeit liegt in der Verwendung eines externen Routers mit
integrierter Firewall. Allerdings wird es ein derart spezialisiertes Gerät nicht geben oder es wird sehr teuer sein. Solche Router“ sind aus der heutigen Fernseh”
werbung nicht mehr wegzudenken93 , erfüllen aber nicht den für das Projekt er92
93
Der Telekom-interne Begriff hierfür lautet IP-VPN“.
”
Sie werden zur Zeit recht günstig in Verbindung mit DSL-Tarifen angeboten.
6.2 Zukunftsaussichten
65
forderlichen Zweck. Er müsste ein externes Modem über eine serielle Schnittstelle
ansprechen können und mit GPRS-verwandten Mechanismen wie PIN-Nummern
zurecht kommen. Weitere Anforderungen sind eine integrierten Firewall und die
Möglichkeit diese auch konfigurieren zu können.
Auch muss sich jemand Gedanken um den Mechanismus des Abschaltens von
Diensten bei Microsoft Windows CE machen. Ein laufender Telnet-Dienst ist
nichts weiter als ein Sicherheitsrisiko94 . Von einer Verwendung über das Internet ist abzuraten. Es ist sinnvoll, wenn dieser Dienst“ abgeschaltet wird. Nur
”
dann kann er auch nicht missbraucht werden oder durch einen Softwarefehler die
Systemstabilität gefährden.
Das im letzten Abschnitt genannte Problem der kostenpflichtigen Luftschnittstelle sollte in Zukunft verfolgt werden. Es ist wahrscheinlich, dass hierfür in Zukunft Lösungen angeboten werden. Dazu muss das Problem aber zuerst in das
Bewusstsein der Anbieter rücken.
94
Es ist verständlich, dass Microsoft nun auch eine Schnittstelle zur Fernwartung anbieten
will. Wieso sich dabei allerdings für Telnet und nicht für das sicherere SSH entschieden wurde,
ist dem Autor ein Rätsel.
66
7
7 ZUSAMMENFASSUNG / ERREICHTE ZIELE
Zusammenfassung / erreichte Ziele
Im Rahmen der vorliegenden Studienarbeit wurden folgende Tätigkeiten durchgeführt:
• Untersuchung und Inbetriebnahme eines GPRS-Modems vom Typ Siemens
MC35i.
• Ansteuerung des Modems unter Windows CE .NET 4.1 mit Hilfe der Programmiersprache embedded Visual C++“.
”
• Entwurf eines modularen Kommunikationsmodells.
• Implementierung eines Kommunikationsmoduls zur Anbindung an GPRS.
• Implementierung eines Kommunikationsmoduls zur Anbindung an Ethernet.
• Entwicklung eines funktionierenden Prototyps. Er sollte mit GPRS arbeiten
und die modulare Kommunikationsstruktur umsetzen.
Untersuchung des GPRS-Modems Das Modem ließ sich mit Hilfe der bei
Analogmodems verbreiteten AT-Kommandos ( Hayes Befehlssatz“) ansprechen.
”
Dies erleichterte die Inbetriebnahme sehr. Es brauchten nur wenige GPRS-spezifische Anpassungen in den Einstellungen des Betriebssystems vorgenommen zu
werden, um eine Internetverbindung aufzubauen. Das Modem wurde komplett
über Initstrings parametriert. Es wurde gezeigt, dass zur Einwahl die selben
Schritte wie bei einer Einwahl mit Analogmodems verwendet werden können.
An manchen Stellen traten aber Probleme auf. Die Freischaltung des Modems
über seine PIN machte Probleme, was aber gelöst werden konnte.
Ansteuerung des Modems aus einem Programm heraus Es wurde ein
Programm geschrieben, welches die zur Einwahl über GRPS notwendigen Schritte komplett umsetzte. Das Programm ist in der Lage, auf einem unbehandelten“
”
System (ein Image im Originalzustand) eine Einwahl zu starten, die Verbindung
zu überwachen und zu nutzen. Die erstellten Klassen wurden modular strukturiert, um eine Wiederverwertung einzelner Bestandteile zu gewährleisten. So
konnte zusätzlich mit wenigen Programmzeilen eine Klasse für Analogmodems
abgeleitet werden. Sie nutzt die selben Komponenten, die vorher für die GPRSKlasse erstellt wurden. Die Datenübertragung nach aufgebauter Verbindung wurde über den Socket-Mechanismus (TCP/IP) des Betriebssystems abgewickelt.
67
Modulares Kommunikationsmodell Die zur Kommunikation notwendige
Funktionalität wurde in zwei Schichten getrennt. Ein Kommunikationsmanager
dient auf jeder Station als Ansprechpartner zur Datenübertragung. Informationen
werden vom ihm in Form von Dateien transparent übertragen. Er bedient sich
hierfür seinen Kommunikationsmodulen. Sie sind jeweils auf ein einzelnes Medium zugeschnitten und verbergen die medienspezifischen Eigenschaften vor dem
Kommunikationsmanager. Dadurch wird ein paralleler Betrieb mehrerer Kommunikationswege ermöglicht. Praxisrelevant war hierbei die Unterscheidung in einen
Haupt- und einen Backuplink.
GPRS-Kommunikationsmodul Ein weiteres Kommunikationsmodul wurde
zur Nutzung von GPRS erstellt. Es war in der Lage, ein Modem vom Typ Sie”
mens MC35i“ anzusprechen. Eine Verbindungsüberwachung mit sofortiger Wiedereinwahl bei Verbindungsabriss wurde integriert. Das Problem der sich bei jeder
Einwahl ändernden IP-Adressen wurde durch Nutzung dynamischer DNS-Einträge gelöst.
Ethernet-Kommunikationsmodul Für die Anbindung der Leitstation wurde
ein Kommunikationsmodul zur Nutzung von Ethernet erstellt. Mit ihm konnte
der Kommunikationsmanager der Leitstation über einen Router mit den verteilten
Stationen sprechen. Ein Datentransfer konnte mit einem anderen Ethernetmodul
oder dem GPRS-Modul erfolgen.
Prototyp Zur Demonstration des Datentransfers wurde ein Prototyp erstellt.
Als Testaufbau kam ein embedded PC der Firma Beckhoff zum Einsatz, der
sich über ein GPRS-Modem ins Internet einwählte. Als Kommunikationspartner
( Leitstation“) kam ein handelsüberlicher PC zum Einsatz. Er war Bestandteil
”
eines lokalen Netzwerkes (LAN) und über einen DSL-Router mit dem Internet
verbunden. Des Weiteren wurde noch ein Dyn-DNS-Server verwendet. Mit seiner
Hilfe konnten sich die beiden Stationen trotz sich bei jeder Einwahl ändernder
IP-Adressen gegenseitig ansprechen.
Die entworfene Modulstruktur diente als Basis für den Prototyp. Die Kommunikationsmanager wurden jedoch nicht vollständig implementiert. Zur Demonstration des Datentransfers wurden hier ein Echoserver und ein Echoclient eingesetzt. Der Echoclient kann über sein“ Kommunikationsmodul (Das GPRS-Modul
”
auf dem embedded PC) eine Ping“-Nachricht an die Leitstation versenden. Diese
”
wird dort vom Ethernet-Modul entgegen genommen und an den dortigen Kommunikationsmanager weiter geleitet. Hier wurde der Echoserver implementiert.
Er wertete das Ping“-Paket aus und verschickte ein Pong“-Paket an den Absen”
”
der. Dieses Paket kam wiederum am GPRS-Kommunikationsmodul des BeckhoffPC’s an und wurde vom dortigen Echoclient entgegen genommen und angezeigt.
68
7 ZUSAMMENFASSUNG / ERREICHTE ZIELE
Am Prototyp konnten Störeinflüsse simuliert werden. Durch ein Abtrennen
der Antenne vom Modem wurde die Verbindung gekappt. Das Programm merkte
dies sofort und unterbrach die Versendung von Datenpaketen. Sie wurde erst nach
erfolgreicher Wiedereinwahl fortgesetzt.
Ergebnis Die gestellten Aufgaben wurden bis zur gewünschten Ausbaustufe
erfüllt. Die Nutzung von GPRS ist mit den erstellten Programmen möglich. Die
dazu erforderlichen Programmteile lassen sich durch ihren modularen Charakter
aus dem Prototyp herauslösen und in das Hauptprojekt integrieren.
Die Datenübertragung über GPRS wurde anhand eines Prototyp gezeigt. Die
Daten gingen hierbei von einer abgesetzten Automatisierungsstation dank deren
GPRS-Anbindung über das Internet an einen per DSL angebundenen Router.
Dieser leitete die Daten an einen PC im lokalen Netzwerk weiter. Die dort laufende
Leitstations-Software nahm die Daten zur Auswertung entgegen und versandte
daraufhin Antwortpakete.
Parallel zur Anfertigung dieser Studienarbeit wurden bereits die Ideen zum
modularen Kommunikationsmodell in das Hauptprogramm integriert. Dabei wurden die nicht im Prototyp enthaltenen Protokolle des Kommunikationsmanagers
und der Kommunikationsmodule entwickelt. Im vorliegenden Beispiel wurde nur
eine Menge selbstdefinierter Testnachrichten versendet. Da gezeigt wurde, dass
die transparente Datenübertragung funktioniert, können selbst entwickelte Protokolle eingesetzt werden.
Das Thema Sicherheit“ muss in Anschluss an diese Studienarbeit genauer
”
verfolgt werden. Mit der nachfolgenden Version von Windows CE soll laut Microsoft erstmalig eine Firewall mitgeliefert werden. Diese muss getestet werden.
Aber auch das Problem der kostenpflichtigen Luftschnittstelle bei der Nutzung
von GPRS konnte noch nicht gelöst werden. Hierfür sind jedoch die Netzprovider
verantwortlich.
69
Anhang
A
Technische Daten: Modem Siemens MC35i
Abbildung 25: Bilder des Modems Siemens MC35i“
”
Detailliertere Daten findet man im Datenblatt unter [Siem03].
• Dual-band EGSM900 and GSM1800
• GPRS multi-slot class 8
• GPRS mobile station class B
• Output Power at EGSM900: 2 W
• Output Power at GSM1800: 1 W
• Control via AT commands
• Supply voltage range: 8 . . . 30 V
• Weight: 18 g
• Ambient temperature: −20◦ C . . . + 55◦ C
• CSD up to 14.4 kbps
• GPRS: max. 85.6 kbps (downlink)
• Coding scheme CS 1,2,3,4
• PPP-stack
• RS232 bi-directional
• 50 Ω antenna connector
70
B
B.1
B TARIFÜBERSICHT GPRS TARIFE
Tarifübersicht GPRS Tarife
T-D1 Tarife
Die Telekom bietet eine Vielzahl von GPRS-Tarifen an. Einige davon sind sogenannte Tarifoptionen, also nur Zusätze zu bereits bestehenden Mobilfunkverträgen. Der Businesstarif“ ein dagegen ein eigenständiger Tarif.
”
Im Laufe der Studienarbeit standen insgesamt zwei verschiedene Tarife zur
Auswahl. Die vielen anderen Tarifoptionen können auf der Telekom-Homepage
(siehe [Deut]) nachgelesen werden.
Die ersten Tests wurden vom Autor mit seiner eigenen SIM-Karte durchgeführt, wobei der T-D1-Tarif T-Mobile Data 1“ zum Einsatz kam. Später stand
”
seitens der Firma eine extra SIM-Karte mit dem BusinessData“-Tarif zur Verfü”
gung. Mit ihr wurden alle Tests mit höherem Transfervolumen durchführt.
Tarif
Tarifart
Monatlicher Grundpreis
(10-Sek.-Takt)
Bereitstellungspreis
T-Mobile Karte
GPRS: Monatliches
Inklusivvolumen
GPRS: Weitere Preise
Abrechnungseinheit
T-Mobile Data 1
Tarifoption
+ 4,95 EUR
(Option)
+ 0 EUR
(Option)
1 MB
BusinessData
Eigenständiger Tarif
12,85 EUR
0,09 EUR/10 KB
10 KB
1,59 EUR/1 MB
1 KB
21,51 EUR
5 MB
Tabelle 3: Tarifinformationen Telekom-D1
B.2
Vodafone Tarife
Die Tarife von Vodafone wurden zwar nicht genutzt, aber mit recherchiert und
eingefügt. Sie ermöglichen einen Vergleich. Auch hier wird eine große Auswahl an
verschiedenen Tarifen geboten, von denen aber nur diejenigen relevant sind die
einen Vergleich mit den T-D1-Tarifen erlauben. Die vollständige Tarifliste ist auf
der Vodafone-Homepage (siehe [Voda]) nachlesbar.
71
Tarif
Tarifart
Monatlicher Grundpreis
Bereitstellungspreis
(Aktivierung)
GPRS: Monatliches
Inklusivvolumen
GPRS: Weitere Preise
Abrechnungseinheit
Vodafone GPRS L Vodafone GPRS XL
Tarifoption
Tarifoption
+ 9,95 EUR
19,95 EUR
(Option)
(Option)
+ 4,95 EUR
4,95 EUR
(Option)
(Option)
1 MB
5 MB
0,29 EUR/100 KB
100 KB
0,255 EUR/100 KB
100 KB
Tabelle 4: Tarifinformationen Vodafone-D2
C
C.1
Konfiguration des Routers
Informationen zum Skript
Die gesamte lokale Netzwerkfunktionalität des verwendeten Testaufbaus wird zentral durch den Router gesteuert. Seine Konfiguration ist in dem folgenden Shellscript hinterlegt. Es wird automatisch nach jeder Einwahl ins Internet aufgerufen,
und konfiguriert alle Netzwerkinterfaces, die Bridge, den Paketfilter, das NAT95
und das Portforwarding.
Die einzelnen Funktionen des Routers werden in Abschnitt 5.4 auf Seite 57
erläutert, daher beschränkt sich der folgende Absatz nur auf das verwendete Konfigurationsskript.
C.2
Das Skript bridge-up
#!/bin/bash
# /etc/ppp/bridge-up
# Letze Aenderung am 09.12.2003
#
# Verwendete IP-Adressen
#
IP_BR0="192.168.1.1"
IP_ETH1="192.168.1.2"
IP_ETH2="192.168.1.3"
IP_NETMASK="255.255.255.0"
IP_BROADCAST="192.168.1.255"
IP_RANGE="192.168.1.0/24"
95
Network Address Translation, Adressumsetzung lokaler IP-Adressen auf eine global gültige
IP-Adresse.
72
C KONFIGURATION DES ROUTERS
#
# Verwendete Programme:
#
IPT=/sbin/iptables
IFC=/sbin/ifconfig
IFD=/sbin/ifdown
BRC=/usr/sbin/brctl
#
# Alles aufraeumen!
#
# Alle iptables-Eintraege zuruecksetzen
/etc/ppp/iptables-reset
# Eventuell bereits vorhandene Bridge entfernen
$IFC br0 down > /dev/null
$BRC delbr br0 >/dev/null
#
# Die Bridge neu aufsetzen
#
$IFD eth1
$IFD eth2
$IFC eth1 0.0.0.0
$IFC eth2 0.0.0.0
$BRC addbr br0
$BRC addif br0 eth1
$BRC addif br0 eth2
$IFC br0 $IP_BR0 broadcast $IP_BROADCAST netmask $IP_NETMASK
#
# Paketweiterleitungen aktivieren
#
# IP-Forwarding aktivieren
echo 1 >/proc/sys/net/ipv4/ip_forward
# Masquerading aktivieren
$IPT -A POSTROUTING -t nat -o ppp0 -j MASQUERADE
#
# Spoofing abwehren
#
# Nur Pakete mit validen Absenderadressen an den
$IPT -A PREROUTING -t mangle -i eth1 -s $IP_ETH1
$IPT -A PREROUTING -t mangle -i eth2 -s $IP_ETH2
# Nur nicht direkt an lokale Rechner adressierte
NIC’s akzeptieren
-j ACCEPT
-j ACCEPT
Pakete akzeptieren
C.2 Das Skript bridge-up
$IPT -A PREROUTING -t mangle -i ppp0 -s ! $IP_RANGE -j ACCEPT
#
# Die Weiterleitung von Paketen beeinflussen:
#
# Prinzipiell alle Pakete verwerfen/sperren!
$IPT -P FORWARD DROP
# Bridging erlauben
$IPT -A FORWARD -i br0 -o br0 -j ACCEPT
# Alle ausgehenden Pakete lokaler Rechner ins Internet akzeptieren
$IPT -A FORWARD -i br0 -o ppp0 -j ACCEPT
# Pakete von Aussen nur dann weiterleiten, wenn Sie Antworten auf
# Anfragen sind. Um dennoch Pakete von Aussen auf manchen Ports zu
# akzeptieren, sind weitere Regeln fuer die FORWARD-Kette notwenig
$IPT -A FORWARD -i ppp0 -o br0 -m state --state ESTABLISHED,RELATED
... -j ACCEPT
# Alle lokalen Dienste nach aussen hin verstecken,
# bis auf wenige Ausnahmen:
# 1.) Bereits aufgebaute Verbindungen
# 2.) Verbindungen an SSH : Port 22 von allen Hosts aus
# 3.) ICMP-Pakete (z.B. fuer Ping)
$IPT -P INPUT DROP
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
# SSH
$IPT -A INPUT -p icmp -j ACCEPT
# ICMP-Pakete
#
# Studienarbeit: Selektives Portforwarding an Beckhoff-Station
#
# TCP-Verbindungen, die aus dem Internet an Localhost:2000 ankommen,
# sollen an den PC an ETH1 (192.168.1.1) weitergereicht werden.
$IPT -A PREROUTING -t nat -i ppp0 -p tcp --dport 2000 -j DNAT
... --to $IP_ETH1
$IPT -A FORWARD -i ppp0 -o br0 -p tcp --dport 2000 -j ACCEPT
#
# Alles was noch uebrig ist...
#
# ICMP erlauben... etwas holprige Loesung
$IPT -A INPUT -j REJECT
# DynDNS-Datenbankeintrag fuer "Powerstation" aktualisieren
/usr/bin/wget -o /dev/null -O /dev/null
... ’http://dyn.l13.de/cgi-bin/dyndns.cgi?name=xxxx&pwd=yyyy&ip=auto’
73
74
D
D PORTSCANS: WINDOWS CE.NET 4.1
Portscans: Windows CE.NET 4.1
Die hier vorgestellten Logfiles sind das Ergebnis des in Abschnitt 6.1.1 auf Seite
60 beschriebenen Portscans. Ziel des Scans war die laufende Beckhoff-Station. Die
hier aufgeführten Ports sind offen“ und stammen vom Betriebssystem (Microsoft
”
Windows CE .NET 4.1) oder zusätzlich darauf laufender Software.
D.1
Ergebnisse des TCP/IP Portscans
# nmap (V. 3.00) scan initiated Sat Dec 20 20:32:53 2003 as:
nmap -v -sS -p 1-65535 -oN nmap_tcp.log 192.168.1.3
Interesting ports on (192.168.1.3):
(The 65528 ports scanned but not shown below are in state: closed)
Port
State
Service
21/tcp
open
ftp
23/tcp
open
telnet
80/tcp
open
http
443/tcp
open
https
987/tcp
open
unknown
5120/tcp
open
unknown
48898/tcp open
unknown
# Nmap run completed at Sat Dec 20 20:33:34 2003 -1 IP address (1 host up) scanned in 40 seconds
D.2
Ergebnisse des UDP/IP Portscans
# nmap (V. 3.00) scan initiated Sat Dec 20 20:33:45 2003 as:
nmap -v -sU -p 1-65535 -oN nmap_udp.log 192.168.1.3
Interesting ports on (192.168.1.3):
(The 65532 ports scanned but not shown below are in state: closed)
Port
State
Service
137/udp
open
netbios-ns
138/udp
open
netbios-dgm
48899/udp open
unknown
# Nmap run completed at Sat Dec 20 20:34:37 2003 -1 IP address (1 host up) scanned in 51 seconds
75
E
E.1
Nessus-Report: Windows CE.NET 4.1
Routerkonfiguration für Nessusscan
Für den im Laufe der Tests durchgeführten Nessus-Scan war die normale Routerkonfiguration aus Anhang C.2, Seite 71, nicht verwendbar. Geprüft werden sollte
der embedded PC, und nicht der direkt aus dem Internet sichtbare Router. Da
der Nessus-Scan von einem Server aus dem Internet durchgeführt wird, müssen
für die Dauer des Tests jegliche Anfragen aus dem Internet unverändert an den
Beckhoff-PC weitergeleitet werden. Des Weiteren müssen für die Dauer des Tests
jegliche Formen von aktiven Filterregeln deaktiviert werden. Sie hätten das Testergebnis verfälscht. Bei der späteren Einwahl ins Internet über GPRS weist der
embedded PC mit der aktuellen Windows CE Version auch keine Firewall auf.
Um die neuen Einstellungen zu aktivieren, braucht lediglich das folgende
Script einmal manuell bei bereits aufgebauter Internetverbindung gestartet zu
werden:
E.2
Das Skript nessus-up
#!/bin/bash
# /etc/ppp/nessus-up
# Letzte Aenderung am 15.01.2004
#
# Verwendete IP-Adressen
#
IP_BR0="192.168.1.1"
IP_ETH1="192.168.1.2"
IP_ETH2="192.168.1.3"
IP_NETMASK="255.255.255.0"
IP_BROADCAST="192.168.1.255"
IP_RANGE="192.168.1.0/24"
#
# Verwendete Programme:
#
IPT=/sbin/iptables
IFC=/sbin/ifconfig
IFD=/sbin/ifdown
BRC=/usr/sbin/brctl
#
# Alles aufraeumen!
#
# Alle iptables-Eintraege zuruecksetzen
76
E NESSUS-REPORT: WINDOWS CE.NET 4.1
/etc/ppp/iptables-reset
# Eventuell vorhandene Bridge entfernen
$IFC br0 down > /dev/null
$BRC delbr br0 >/dev/null
#
# Die Bridge neu aufsetzen
#
$IFD eth1
$IFD eth2
$IFC eth1 0.0.0.0
$IFC eth2 0.0.0.0
$BRC addbr br0
$BRC addif br0 eth1
$BRC addif br0 eth2
$IFC br0 $IP_BR0 broadcast $IP_BROADCAST netmask $IP_NETMASK
#
# Paketweiterleitungen aktivieren
#
# IP-Forwarding aktivieren
echo 1 >/proc/sys/net/ipv4/ip_forward
# Masquerading aktivieren
$IPT -A POSTROUTING -t nat -o ppp0 -j MASQUERADE
# Alle Anfragen aus dem Internet auf das an ETH2 angeschlossene
# Geraet (Dies ist der embedded PC, IP Adresse 192.168.1.3)
# weiterleiten.
$IPT -A PREROUTING -t nat -i ppp0 -j DNAT --to $IP_ETH2
E.3
Mitteilung des Testergebnisses
Da der Test über mehrere Stunden läuft (auf der Homepage des Nessus-Scans ist
je nach Netzanbindung und Firewallkonfiguration von einer maximalen Laufzeit
von 24 Stunden die Rede), wird das Ergebnis nach Ablauf des Tests per EMail
zugestellt. Eine Rückmeldung innerhalb des aufrufenden Browserfensters wäre
unsinnig, da der Nessus-Scan laut Dokumentation in der Lage sein soll ein ungeschütztes Microsoft Windows 98 System in wenigen Minuten zum Absturz zu
bringen.
E.4
Scanergebnis Nessus-Scan
Nessus Scan Report
This report gives details on hosts that were tested and issues that
were found. Please follow the recommended steps and procedures to
E.4 Scanergebnis Nessus-Scan
77
eradicate these threats.
Scan Details
Hosts which were alive and responding during test 1
Number of security holes found
1
Number of security warnings found
6
Host List
Host(s)
80.136.125.42
Possible Issue
Security hole(s) found
Analysis of Host
Address of Host Port/Service
80.136.125.42
ftp (21/tcp)
80.136.125.42
telnet (23/tcp)
80.136.125.42
www (80/tcp)
80.136.125.42
https (443/tcp)
80.136.125.42
unknown (987/tcp)
80.136.125.42
unknown (5120/tcp)
80.136.125.42
unknown (48898/tcp)
80.136.125.42
netbios-ns (137/udp)
80.136.125.42
general/udp
80.136.125.42
general/tcp
80.136.125.42
general/icmp
Issue regarding Port
Security hole found
Security warning(s) found
Security notes found
Security notes found
Security notes found
Security notes found
Security notes found
Security warning(s) found
Security notes found
Security warning(s) found
Security warning(s) found
Security Issues and Fixes: 80.136.125.42
Type Port Issue and Fix
Vulnerability ftp (21/tcp) It is possible to force the FTP server
to connect to third parties hosts, by using the PORT command.
This problem allows intruders to use your network resources to
scan other hosts, making them think the attack comes from your
network, or it can even allow them to go through your firewall.
Solution : Upgrade to the latest version of your FTP server,
or use another FTP server.
Risk factor : Medium/High
CVE : CVE-1999-0017
Nessus ID : 10081
Warning ftp (21/tcp)
This FTP service allows anonymous logins. If you do not want to share
data
with anyone you do not know, then you should deactivate the anonymous
account,
since it may only cause troubles.
Risk factor : Low
CVE : CAN-1999-0497
78
E NESSUS-REPORT: WINDOWS CE.NET 4.1
Nessus ID : 10079
Informational ftp (21/tcp) An FTP server is running on this port.
Here is its banner :
220 Service ready for new user.
Nessus ID : 10330
Informational ftp (21/tcp) Remote FTP server banner :
220 Service ready for new user.
Nessus ID : 10092
Warning telnet (23/tcp) The Telnet service is running.
This service is dangerous in the sense that it is not ciphered - that
is,
everyone can sniff the data that passes between the telnet client
and the telnet server. This includes logins and passwords.
Solution:
If you are running a Unix-type system, OpenSSH can be used instead of
telnet.
For Unix systems, you can comment out the ’telnet’ line in
/etc/inetd.conf.
For Unix systems which use xinetd, you will need to modify the telnet
services
file in the /etc/xinetd.d folder. After making any changes to xinetd
or
inetd configuration files, you must restart the service in order for
the
changes to take affect.
In addition, many different router and switch manufacturers support
SSH as a
telnet replacement. You should contact your vendor for a solution
which uses
an encrypted session.
Risk factor : Low
CVE : CAN-1999-0619
Nessus ID : 10280
Informational telnet (23/tcp) A telnet server seems to be running on
this port
Nessus ID : 10330
Informational telnet (23/tcp) Remote telnet banner :
Welcome to the Windows CE Telnet Service on beckhoff
login:
Nessus ID : 10281
Informational www (80/tcp) A web server is running on this port
Nessus ID : 10330
Informational www (80/tcp) The remote web server type is :
Microsoft-WinCE/4.10
Solution : We recommend that you configure (if possible) your web
E.4 Scanergebnis Nessus-Scan
79
server to return
a bogus Server header in order to not leak information.
Nessus ID : 10107
Informational www (80/tcp) Nessus was not able to reliably identify
this server. It might be:
Zope/(Zope 2.5.1 (OpenBSD package zope-2.5.1p1)
The fingerprint differs from these known signatures on 7 point(s)
Nessus ID : 11919
Informational https (443/tcp) The service closed the connection after
1 seconds without sending any data
It might be protected by some TCP wrapper
Nessus ID : 10330
Informational unknown (987/tcp) This port was detected as being open
by a port scanner but is now closed.
This service might have been crashed by a port scanner or by a plugin
Nessus ID : 10919
Informational unknown (5120/tcp) A web server is running on this port
Nessus ID : 10330
Informational unknown (5120/tcp) The remote web server type is :
Microsoft-WinCE/4.10
Solution : We recommend that you configure (if possible) your web
server to return
a bogus Server header in order to not leak information.
Nessus ID : 10107
Informational unknown (5120/tcp) Nessus was not able to reliably
identify this server. It might be:
Zope/(Zope 2.5.1 (OpenBSD package zope-2.5.1p1)
The fingerprint differs from these known signatures on 7 point(s)
Nessus ID : 11919
Informational unknown (48898/tcp) The service closed the connection
after 0 seconds without sending any data
It might be protected by some TCP wrapper
Nessus ID : 10330
Warning netbios-ns (137/udp) The following 1 NetBIOS names have been
gathered :
BECKHOFF
The remote host has the following MAC address on its adapter :
0x00 0x01 0x05 0x00 0x35 0xc6
If you do not want to allow everyone to find the NetBios name
of your computer, you should filter incoming traffic to this port.
Risk factor : Medium
CVE : CAN-1999-0621
Nessus ID : 10150
Informational general/udp For your information, here is the traceroute
to 80.136.125.42 :
80
E NESSUS-REPORT: WINDOWS CE.NET 4.1
217.160.165.173
217.160.165.253
212.227.125.1
212.227.116.231
212.227.112.123
?
62.153.177.54
217.237.154.65
?
80.136.125.42
Nessus ID : 10287
Warning general/tcp
The remote host does not discard TCP SYN packets which
have the FIN flag set.
Depending on the kind of firewall you are using, an
attacker may use this flaw to bypass its rules.
See also :
http://archives.neohapsis.com/archives/bugtraq/2002-10/0266.html
http://www.kb.cert.org/vuls/id/464113
Solution : Contact your vendor for a patch
Risk factor : Medium
BID : 7487
essus ID : 11618
Warning general/tcp
The remote host uses non-random IP IDs, that is, it is
possible to predict the next value of the ip_id field of
the ip packets sent by this host.
An attacker may use this feature to determine traffic patterns
within your network. A few examples (not at all exhaustive) are:
1. A remote attacker can determine if the remote host sent a packet
in reply to another request. Specifically, an attacker can use your
server as an unwilling participant in a blind portscan of another
network.
2. A remote attacker can roughly determine server requests at certain
times of the day. For instance, if the server is sending much more
traffic after business hours, the server may be a reverse proxy or
other remote access device. An attacker can use this information to
concentrate his/her efforts on the more critical machines.
3. A remote attacker can roughly estimate the number of requests that
a web server processes over a period of time.
Solution : Contact your vendor for a patch
Risk factor : Low
Nessus ID : 10201
Warning general/icmp
The remote host answers to an ICMP timestamp request. This allows an
E.4 Scanergebnis Nessus-Scan
attacker
to know the date which is set on your machine.
This may help him to defeat all your time based authentication
protocols.
Solution : filter out the ICMP timestamp requests (13), and the
outgoing ICMP
timestamp replies (14).
Risk factor : Low
CVE : CAN-1999-0524
Nessus ID : 10114
_________________________________________________________________
This file was generated by Nessus, the open-sourced security
scanner.
81
82
F KONFIGURATION DES MODEMS UNTER LINUX
F
Konfiguration des Modems unter Linux
F.1
Motivation
Die ersten Versuche mit dem GPRS-Modem wurden unter SuSE Linux 8.2 durchgeführt. Hier standen flexiblere Werkzeuge zum Einrichten und Analysieren von
Netzwerkgeräten zur Verfügung als unter Microsoft Windows 2000. Hierbei ging
es nur um das Herantasten an die Funktionsweise des Modems. Später wird das
Modem in einem Microsoft Windows-Umfeld eingesetzt.
Die Einrichtung des Modems unter SuSE Linux 8.2 war dank des mitgelieferten, grafischen Administrationstools (YaST296 ) problemlos. Jeder einzelne Schritt
wurde mit einem Bildschirmfoto dokumentiert. Im Bereich der Modemkonfiguration kommt der Programmierer mit GPRS-spezifischen Initstrings97 in Kontakt.
Ihre praktische Anwendung wird in Form dieser Bilder dokumentiert.
F.2
Bildschirmfotos von Yast2
1. Auswahl des Modems
Abbildung 26: Auswahl eines noch nicht konfigurierten Modems
96
Yet another Setup Tool.
Eine genaue Beschreibung der Bedeutung von Initstrings findet man in Abschnitt 4.2.2 auf
Seite 40.
97
F.2 Bildschirmfotos von Yast2
83
• Wähle den Eintrag für ein neues Modem“ aus der Liste aus, um dieses
”
nun zu konfigurieren.
2. Zuweisung der seriellen Schnittstelle
Abbildung 27: Zuweisung einer seriellen Schnittstelle
• Nennung die serielle Schnittstelle des Modems (hier: /dev/ttyS0)
• Impulswahl verwenden (ganz wichtig!) da Tonwahl vom GPRS-Modem
nicht unterstützt und damit ignoriert wird
• Lautsprecher aus, da irrelevant bei GPRS
• Kein Warten auf Wählton, da irrelevant bei GPRS
3. Details zu den Modemparametern
Abbildung 28: Konfiguration der Schnittstelle und der Initstrings
• Baudrate der seriellen Schnittstelle auf 115200 Baud setzen
84
F KONFIGURATION DES MODEMS UNTER LINUX
• Mit dem ersten Initstring die PIN übermitteln
• Mit dem zweiten Initstring den PDP-Kontext definieren
• Mit dem dritten Initstring die QoS-Parameter setzen
4. Internet-Service-Provider wählen
Abbildung 29: Auswahl eines neuen ISP’s
• Konfiguriere einen neuen Providereintrag
5. Internetverbindung konfigurieren
Abbildung 30: Konfiguration des Providers
F.2 Bildschirmfotos von Yast2
• Festlegung der Telefonnummer auf *99***1#
• Benutzername ist beliebig (Authentifikation über PIN)
• Passwort ist beliebig (Authentifikation über PIN)
6. Verbindungsparameter und DNS konfigurieren
Abbildung 31: DNS-Konfiguration
•
•
•
•
Dial-On-Demand deaktivieren
Nameserver dynamisch über PPP zuweisen lassen
Firewall deaktivieren
Kein Trennen der Verbindung bei Inaktivität (Bild falsch!)
7. Einstellungen zur IP-Adresse
Abbildung 32: IP-Konfiguration
• IP-Adresse dynamisch über PPP zuweisen lassen
• Automatisch über PPP zugewiesenes Standardgateway verwenden
85
86
G
G LOGFILE: INTERNETEINWAHL GPRS-MODEM
Logfile: Interneteinwahl GPRS-Modem
SuSE Meta pppd (smpppd-ifcfg), Version 1.00 on powerstation.
We are disconnected.
trying to connect to smpppd
connect to smpppd
We are disconnected.
We are connecting.
pppd: Plugin passwordfd.so loaded.
pppd: --> WvDial: Internet dialer version 1.42
pppd: --> Initializing modem.
pppd: --> Sending: AT+CPIN=xxxx
pppd: AT+CPIN=xxxx
pppd: OK
pppd: --> Sending: AT+CGDCONT=1,ip,internet.t-d1.de
pppd: AT+CGDCONT=1,ip,internet.t-d1.de
pppd: OK
pppd: --> Sending: ATM0
pppd: ATM0
pppd: OK
pppd: --> Sending: ATX3
pppd: ATX3
pppd: OK
pppd: --> Modem initialized.
pppd: --> Sending: ATDP*99***1#
pppd: --> Waiting for carrier.
pppd: ATDP*99***1#
pppd: CONNECT
pppd: ~[7f]}#@!}!}#} }9}"}&} }*} } }’}"}(}"}%}&[11]ew[14]}#}%B#}%5#~
pppd: --> Carrier detected. Waiting for prompt.
pppd: ~[7f]}#@!}!}#} }9}"}&} }*} } }’}"}(}"}%}&[11]ew[14]}#}%B#}%5#~
pppd: --> PPP negotiation detected.
pppd: Serial connection established.
pppd: Using interface ppp0
pppd: Connect: ppp0 <--> /dev/ttyS0
pppd: local IP address 80.187.93.228
pppd: remote IP address 192.168.254.254
pppd: primary
DNS address 193.254.160.1
pppd: Script /etc/ppp/ip-up finished (pid 7827), status = 0x0
We are connected.
We are disconnecting.
pppd: Terminating on signal 15.
We are disconnecting.
pppd: Connection terminated.
pppd: Connect time 5.8 minutes.
87
pppd: Sent 35715 bytes, received 87035 bytes.
pppd: Script /etc/ppp/ip-down finished (pid 7906), status = 0x0
We are disconnected.
pppd died: pppd received a signal (exit code 5)
88
H ABKÜRZUNGSVERZEICHNIS
H
Abkürzungsverzeichnis
API
Application Programming Interface
APN Access Point Name
AT
Attention, Hayes-Befehlssatz
BSS
Base Station Subsystem
CID
Context ID
COM1 Handle der ersten seriellen Schnittstelle unter Microsoft Windows
CRC Cyclic Redundancy Check
DLL Dynamic Linked Library (Dateiendung)
DNS Domain Name Service
DSL Digital Subscriber Line
EEPROM Electrically Eraseable Programmable Read Only Memory
EXE Executable (Dateiendung)
FEC Forward Error Correction
FTP File Transfer Protocol
GGSN Gateway GPRS Support Node
GPRS General Packet Radio Service
GSM Global System for Mobile Communications
HKCU HKEY CURRENT USER
HKLM HKEY LOCAL MACHINE
ICI
Interface Control Information
IDU
Interface Data Unit
IP
Internet Protocol
89
IPC
Inter Process Communication
ISDN Integrated Services Digital Network
ISO/OSI International Organization for Standardization / Open Systems Interconnection
ISP
Internet Service Provider
LAN Local Area Network
MAC Medium Access Control
Man-Page ‘Manual Page’, Hilfesystem unter Unix
MMQ Microsoft Message Queue
MMS Multimedia Messaging Service
MMX Multimedia Extensions
MVP Most Valuable Professional
NAT Network Address Translation
NIC
Network Interface
PCI
Peripheral Component Interconnect
PCI
Protocol Control Information
PDP Packet Data Protocol
PDU Protocol Data Unit
PIN
Personal Identification Number
PPP Point-to-Point Protocol
QoS
Quality of Service
RAS Remote Access Service
RegTP Regulierungsbehörde für Telekommunikation und Post
RPC Remote Procedure Call
SDU Service Data Unit
SGSN Serving GPRS Support Node
90
SIM
H ABKÜRZUNGSVERZEICHNIS
Subscriber Identity Module
SMP Symmetric Multiprocessing
SMS Short Message Service
SMT Symmetric Multithreading
SPS
Speicherprogrammierbare Steuerung
SSH
Secure Shell
TAPI Telephony API
TCP Transmission Control Protocol
TCP/IP Transmission Control Protocol/Internet Protocol
UDP User Datagram Protocol
URL Uniform Resource Locator
VPN Virtual Private Network
XML eXtended Markup Language
YaST Yet another Setup Tool
LITERATUR
91
Literatur
[Butt97]
Giorgio Buttazzo. Hard Real-Time Computing Systems, Predictable
Scheduling - Algorithms and Applications. Kluwer Academic Publishers. 400 Seiten, 3. Auflage, 1997.
[DAFU]
DAFU - Datenfunk Deutschland, http://www.dafu.de/redir/gprs.
html. GPRS - General Packet Radio Service. Allgemeine Informationen über GPRS, Übertragungstechnik: Verwendbare Coding Sche”
mes“, Zeitschlitze, erreichbare Übertragungsraten im Up- und Downlink.
[Debi]
Debian, http://www.debian.org. Debian GNU/Linux – Das universelle Betriebssystem. Homepage der Debian-Linux Distribution.
[Deut]
Deutsche Telekom AG, http://www.t-mobile.de. T-Mobile, Mobilfunk, Handy, SMS, MMS, GPRS. Homepage von T-Mobile. Tarifinformationen zu GPRS.
[GrBr01] Nick Grattan und Marshall Brain. Windows CE 3.0. Application
Programming. Prentice Hall. 508 Seiten, Microsoft Technologies Series. Auflage, 2001.
[Inse]
Insecure.org, http://www.insecure.org/nmap. Nmap - Free Security
Scanner for Network Exploration and Security Audits. Homepage des
freien Portscanners Nmap.
[IPtr02]
IPtraf, http://cebu.mozcom.com/riker/iptraf. IPTraf - An IP
Network Monitor, 2002. Homepage des IP-Netzwerkmonitors iptraf.
[KrRe02] Gerhard Krüger und Dietrich Reschke. Lehr- und Übungsbuch Telematik. Netze, Dienste, Protokolle. Fachbuchverlag Leipzig. 439 Seiten,
2. Auflage, 2002.
[Linu]
Linux, http://www.kernel.org. The Linux Kernel Archives. This is
the primary site for the Linux kernel source.
[Micr]
Microsoft, http://www.microsoft.com/windows/embedded/ce.net/
evaluation/whatsnew/featurecomp/default.asp. Feature-by-Feature Comparison: Windows CE .NET vs. Windows CE3.0. Vergleich
zwischen den Microsoft Windows CE Versionen 3.0, 4.0, 4.1 und 4.2.
15 Seiten.
[Port]
Port-Scan, http://www.port-scan.de. Port-Scan: Testen Sie Ihr
System bevor es andere tun. Wir wollen Ihnen helfen Ihren PC/ Ihr
”
Netzwerk sicherer zu machen“.
92
[Schi00]
LITERATUR
Jochen Schiller. Mobilkommunikation. Techniken für das allgegenwärtige Internet. Addison Wesley. 557 Seiten, 1. Auflage, 2000.
[Siem01a] Siemens AG, http://www.datek.no/Hardware/SiemensMC35/MC35_
gpr.pdf. MC 35 - Siemens Cellular Engine - GPRS Startup User
Manual, August 2001. Konfiguration des Modems MC 35 unter Windows NT 4.0, Konfiguration über Init-Strings, Einwahl in das Internet
über PPP, Test der Verbindung, QoS-Parameter. 15 Seiten.
[Siem01b] Siemens AG, http://www.datek.no/Hardware/SiemensMC35/AT_
Comma.pdf. MC 35 Siemens Cellular Engine - AT Command Set,
September 2001. Konfiguration eines Siemens GPRS-Modems über
AT-Kommandos. Vollständige Auflistung aller Kommandos und deren
Zweck. 184 Seiten.
[Siem03]
Siemens
AG,
http://www.datek.no/Hardware/SiemensMC35/
Datashee.pdf. Cellular Engine MC35 - The first GPRS module from
Siemens for mobile computing and multimedia, 2003. Technische
Daten zum Siemens MC35 GPRS Modem, 2 Seiten.
[SuSE]
SuSE Linux AG, http://www.suse.de. Willkommen bei SuSE LINUX. Homepage der SuSE-Linux Distribution.
[Voda]
Vodafone, http://www.vodafone.de. Vodafone-Live!, Foto-Handy,
MMS, Spiele, Klingeltöne. Homepage des Mobilfunkproviders Voda”
fone“. Tarifinformationen zu GPRS.
ABBILDUNGSVERZEICHNIS
93
Abbildungsverzeichnis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Eine Leitstation überwacht mehrere verteilte Stationen . . . .
Erreichbarkeit über eine Vermittlungsstation . . . . . . . . . .
Bilder der verwendeten Beckhoff-Station . . . . . . . . . . . .
Interner Aufbau einer Automatisierungsstation . . . . . . . . .
Protokollinformationen und -overhead nach ISO/OSI . . . . .
Versendung von Dateien: Kommunikationsmanager . . . . . .
Nutzung von Kommunikationsmodulen zur Datenübertragung
Vernetzung mehrerer Stationen über mehrere Dienste . . . . .
Priorisierte Warteschlange zum Dateiversand . . . . . . . . . .
Datenpaket innerhalb eines Kommunikationsmoduls . . . . . .
Allgemeine Interprozesskommunikation . . . . . . . . . . . . .
Ablauf der allgemeinen Interprozesskommunikation . . . . . .
Interprozesskommunikation mit Sockets . . . . . . . . . . . . .
Dienstschnittstelle des Kommunikationsmanagers . . . . . . .
Protokoll zwischen Kommunikationsmanagern . . . . . . . . .
Protokolle des Prototyp (Echoserver, Echoclient) . . . . . . . .
Vereinfachtes Schichtenmodell GPRS-Modem . . . . . . . . . .
Schema der externen Antenne . . . . . . . . . . . . . . . . . .
Konfiguration und Einwahl über AT-Kommandos . . . . . . .
Test verschiedener AT-Kommandos zur Einwahl . . . . . . . .
Zweimaliger Anruf des Modems aus dem Festnetz . . . . . . .
Aufbau der Entwicklungs- und Testumgebung . . . . . . . . .
Weg des Datentransfers über GPRS . . . . . . . . . . . . . . .
Schaubild des Routers und seiner Umgebung . . . . . . . . . .
Bilder des Modems Siemens MC35i“ . . . . . . . . . . . . . .
”
Auswahl eines noch nicht konfigurierten Modems . . . . . . .
Zuweisung einer seriellen Schnittstelle . . . . . . . . . . . . . .
Konfiguration der Schnittstelle und der Initstrings . . . . . . .
Auswahl eines neuen ISP’s . . . . . . . . . . . . . . . . . . . .
Konfiguration des Providers . . . . . . . . . . . . . . . . . . .
DNS-Konfiguration . . . . . . . . . . . . . . . . . . . . . . . .
IP-Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
8
8
10
13
14
15
15
24
29
31
31
34
35
35
37
39
40
42
43
44
54
55
57
69
82
83
83
84
84
85
85
94
TABELLENVERZEICHNIS
Tabellenverzeichnis
1
2
3
4
Wichtige AT-Kommandos . . .
Datenraten mit GPRS . . . . .
Tarifinformationen Telekom-D1
Tarifinformationen Vodafone-D2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
53
70
71
TABELLENVERZEICHNIS
95
Abschlusserklärung
Die vorliegende Arbeit habe ich selbständig ohne Benutzung anderer als der angegebenen Quellen angefertigt. Alle Stellen, die wörtlich oder sinngemäß aus veröffentlichten Quellen entnommen wurden, sind als solche kenntlich gemacht. Die
Arbeit ist in gleicher oder ähnlicher Form oder auszugsweise im Rahmen einer
oder anderer Prüfungen noch nicht vorgelegt worden.
Unterschrift