Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Diplomarbeit Unterstützung eines vertikalen Handovers zwischen GPRS und WLAN durch einen Proxy Inventarisierungsnummer: 2004-11-09 / 104 / II99 / 2115 vorgelegt von: eingereicht am: Florian Evers 09. 11. 2004 geboren am: Studiengang: Studienrichtung: Ingenieurinformatik Multimediale Informations- und Kommunikationssysteme Anfertigung im Fachgebiet: Kommunikationsnetze Fakultät für Elektrotechnik und Informationstechnik Verantwortlicher Professor: Wissenschaftlicher Betreuer: Prof. Dr. rer. nat. habil. Jochen Seitz Dipl.-Ing. Maik Debes Danksagung An dieser Stelle danke ich allen ganz herzlichst, die durch fachliche oder persönliche Unterstützung zum Gelingen der vorliegenden Diplomarbeit beigetragen haben. Ein großes Danke an Herrn Prof. Dr. rer. nat. habil. Jochen Seitz für die hochspannende Aufgabenstellung und die Betreuung sowohl meiner Studienarbeit als auch meiner Diplomarbeit. Weiterhin danke ich Herrn Dr.-Ing. Ralf Tosse für die freundliche Übernahme des Korreferats, Herrn Dipl.-Ing. Maik Debes für die Betreuung und die Bereitstellung diverser Hardware sowie Herrn Cand.-Ing. Tilo Ziehn für die kritische Durchsicht des Manuskripts. Mein besonderer Dank geht an meine Eltern, ohne deren Hilfe mein Studium und diese Diplomarbeit nicht möglich gewesen wäre. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers Kurzfassung Mobile Endgeräte haben das Problem, dass die Nutzung des Internets durch den Einfluss der Mobilität behindert wird. Die im Internet eingesetzten Protokolle wurden nicht mit Blick auf Mobilität entwickelt und funktionieren nur im ortsfesten Umfeld wie gewünscht. Hintergrund der vorliegenden Diplomarbeit ist der Wunsch nach der gleichzeitigen Nutzung verschiedener Netzzugangstechnologien bei mobilen Endgeräten. Von besonderem Interesse ist dabei der Wechsel des Netzzuganges, ohne dass dabei die Datenströme der Anwendungen abreißen. Es werden zwei handoverfähige Strukturen betrachtet. Die erste Variante beruht auf der Nutzung von Mobile IP, die Zweite auf dem Einsatz eines Proxyservers in Verbindung mit dem Protokoll SOCKSv5. Die auf SOCKSv5 basierende Variante stellt einen Mechanismus bereit, der nach Kenntnisstand des Autors bisher noch nicht zur Realisierung eines vertikalen Handovers genutzt wurde. Dazu wird ein SOCKSv5-Proxyserver in einen mobilen und einen festen Teil getrennt. Zwischen Beiden kommt ein selbst entwickelter Übertragungsmechanismus zum Einsatz, welcher die mobile Teilstrecke erfolgreich isoliert und die bei einem vertikalen Handover auftretenden Probleme behandelt. Die Umsetzung erfordert selbst entwickelte Mechanismen zur Flusssteuerung, Datenstromsicherung und zum Multiplexen/Demultiplexen logischer Datenkanäle auf einen gemeinsamen Datenstrom. Dabei wird jeweils deren Notwendigkeit gezeigt und auf die Implementierung eingegangen. Die entwickelte Software läuft unter GNU/Linux und Windows. Sie demonstriert den Handover zwischen Ethernet, WLAN (IEEE 802.11b) und GPRS. Aufbauend auf dieser Infrastruktur werden Probleme wie die Wahl des optimalen Netzes oder der Zeitpunkt einer Datenstromübergabe diskutiert. Auswirkungen wie zeitliche Unterbrechnungen des Datenstromes wurden direkt am Prototyp untersucht. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers INHALTSVERZEICHNIS i Inhaltsverzeichnis 1. Problemstellung 1.1. Mobile Endgeräte und das Internet . . . . . . . . . . . . . . . . . . . . . 1.2. Handovermechanismen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Theoretische Grundlagen 2.1. Herkömmliches TCP/IP und Mobilität . . . . . . . . . . 2.2. Handover . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1. Horizontaler und vertikaler Handover . . . . . . . 2.2.2. Arten der Linknutzung . . . . . . . . . . . . . . . 2.2.3. Zeitpunkt des Handovers . . . . . . . . . . . . . . 2.2.4. Zielstellungen bei der Wahl des optimalen Netzes 2.2.5. Entscheidungskriterien . . . . . . . . . . . . . . . 2.3. Erweiterungen zur Mobilitätsunterstützung . . . . . . . . 2.3.1. Mobile Vermittlungsschicht: Mobile IP“ . . . . . ” 2.3.2. Mobile Transportschicht: Indirect TCP“ (I-TCP) ” 2.3.3. Snooping TCP“ . . . . . . . . . . . . . . . . . . ” 2.4. Das Protokoll SOCKSv5 . . . . . . . . . . . . . . . . . . 2.4.1. Einsatzgebiet . . . . . . . . . . . . . . . . . . . . 2.4.2. Unterstützung in den Anwendungen . . . . . . . . 2.4.3. Protokollfunktionen von SOCKSv5 . . . . . . . . 1 1 3 . . . . . . . . . . . . . . . 4 4 5 6 6 8 9 12 15 15 19 20 20 20 22 24 . . . . . . . . . 27 28 28 32 35 37 37 39 40 43 4. Der Prototyp 4.1. Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1. Handover-Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 47 47 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. Handoverfähige Strukturen 3.1. Suche nach handoverfähigen Strukturen . . . . . . . . . . . . . . 3.1.1. Anforderungen an einen Handovermechanismus . . . . . 3.1.2. Proxybasierte Lösung . . . . . . . . . . . . . . . . . . . . 3.1.3. Architektur . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Handover zwischen Ethernet, WLAN und GPRS . . . . . . . . . 3.2.1. Zur Handoverentscheidung nutzbare Statusinformationen 3.2.2. Praxistaugliche Handoverentscheidungen . . . . . . . . . 3.2.3. Netzstrukturen und Wegewahl . . . . . . . . . . . . . . . 3.2.4. Möglichkeiten zur Weiterleitung . . . . . . . . . . . . . . 2004-11-09 / 104 / II99 / 2115 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diplomarbeit Florian Evers INHALTSVERZEICHNIS 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. ii 4.1.2. Handover-Server . . . . . . . . . . . . . 4.1.3. Backends . . . . . . . . . . . . . . . . . 4.1.4. Frontend . . . . . . . . . . . . . . . . . . Mechanismen zur Datenübertragung . . . . . . 4.2.1. Datenstromsicherung . . . . . . . . . . . 4.2.2. Verwaltung logischer Verbindungen . . . 4.2.3. Sitzungsverwaltung . . . . . . . . . . . . 4.2.4. Effizienz vs. kurze Verzögerungszeiten . . Verbesserungen: Vermeidung von Paketumläufen Algorithmen zur Auswahl des optimalen Netzes 4.4.1. Ort der Handoverentscheidung . . . . . . 4.4.2. Linkmaps . . . . . . . . . . . . . . . . . 4.4.3. Zweistufige Handoverentscheidung . . . . Erstellte Backends . . . . . . . . . . . . . . . . 4.5.1. Ethernet-Backend . . . . . . . . . . . . . 4.5.2. WLAN-Backend . . . . . . . . . . . . . . 4.5.3. GPRS-Backend . . . . . . . . . . . . . . Sicherheit . . . . . . . . . . . . . . . . . . . . . 4.6.1. Authentifizierung . . . . . . . . . . . . . 4.6.2. Verschlüsselung . . . . . . . . . . . . . . Test unter realen Bedingungen . . . . . . . . . . 4.7.1. Verwendeter Testaufbau . . . . . . . . . 4.7.2. Beeinflussung durch Handoverereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 48 49 50 51 54 60 66 67 70 70 71 73 76 76 77 77 78 78 80 81 81 83 5. Zusammenfassung 86 6. Ausblick 88 A. Konfigurationsdateien 91 B. Messungen am Prototyp 96 C. Installation der Software C.1. Aufsetzen des Proxyservers . . . . . . . . . . . C.1.1. Installation des SOCKSv5-Proxyservers C.1.2. Installation des Handover-Servers . . . C.1.3. Konfiguration des Handover-Servers . . 2004-11-09 / 104 / II99 / 2115 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 98 99 99 101 Diplomarbeit Florian Evers INHALTSVERZEICHNIS C.1.4. Start des Handover-Servers . . . . . . C.2. Aufsetzen der mobilen Endgeräte . . . . . . C.2.1. Installation des Handover-Clients und C.2.2. Konfiguration des Handover-Clients . C.2.3. Start des Handover-Clients . . . . . . C.2.4. Konfiguration der Backends . . . . . C.2.5. Start eines Backends . . . . . . . . . C.2.6. Konfiguration der Anwendungen . . . iii . . . . . . . . . . . . . . . . der Backends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 102 102 102 103 103 104 104 Literatur 105 Abbildungsverzeichnis 108 Tabellenverzeichnis 110 Abkürzungsverzeichnis und Formelzeichen 111 Thesen zur Diplomarbeit 114 Erklärung 115 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 1 PROBLEMSTELLUNG 1 1. Problemstellung 1.1. Mobile Endgeräte und das Internet Das Internet hat in den letzten Jahren eine rasante Verbreitung erfahren. Viele Haushalte sind bereits mit einem Personal Computer (PC) ausgestattet. Ein Großteil dieser Rechner kann über Einwahlverbindungen mit dem Internet verbunden werden. Dienste wie Electronic Mail (E-Mail) oder das World Wide Web (WWW) sind aus der heutigen Welt nicht mehr wegzudenken. Immer mehr Geräte werden mit Komponenten zur Internetnutzung ausgestattet: Laptops, Spielkonsolen und Mobiltelefone sind nur wenige Beispiele. Dabei lässt sich ein Trend erkennen: Dank Fortschritte in der Mobilfunktechnik und der Miniaturisierung der Rechentechnik werden die Computer von Generation zu Generation kompakter und leistungsfähiger. Tragbare Computer wie Laptops oder Personal Digital Assistants (PDA’s) werden heutzutage bereits mit integriertem WLAN, Bluetooth und Ethernet ausgeliefert. Modems für GPRS (General Packet Radio Service) können in Form von PCMCIA-Steckkarten (Personal Computer Memory Card International Association) erworben werden. Es zeigt sich, dass die Integration dieser Techniken in die etablierten Strukturen des Internet mit Problemen verbunden ist. Die Protokolle, die das heutige Internet ausmachen, wurden nicht mit Blick auf mobile Endgeräte, sondern für ortsfest installierte NetzInfrastukturen entwickelt [Schi00]. Diese zeichnen sich durch niedrige Übertragungsverzögerungen, geringe Fehlerwahrscheinlichkeiten und vor allem feste Netzzugangspunkte eines jeden Teilnehmers im Internet aus [WuMa00]. Eine einem Endgerät zugewiesene IP-Adresse bleibt diesem für die Dauer der gesamten Sitzung reserviert. Mobile Datenübertragungstechnologien können diese Eigenschaften nicht mehr garantieren. Zugangspunkte müssen sich auf Grund von Eigenbewegungen der Geräte ändern können. Zusätzlich leiden funkbasierte Übertragungssysteme unter dem Einfluss von Schwund und Störungen [Schi00]. Es kommt zu höheren Fehlerraten und höheren Verzögerungszeiten als im Festnetz. Es können Isolationen auftreten, wenn sich ein Gerät zeitweise in kein Netz einbuchen kann. Diese Ursachen sorgen dafür, dass sich die Nutzung herkömmlicher Internetprotokolle und der Wunsch nach Endgerätemobilität gegenseitig behindern. Noch einen Schritt weiter geht der Wunsch nach einer gleichzeitigen Nutzung unterschiedlicher Übertragungstechnologien. Ein Gerät hat dabei Zugriff auf mehrere Netzzugangssysteme gleichzeitig (vgl. Overlay Networks“ [StKa98]). Nicht an jedem Ort ist ” jedes Netz verfügbar, und durch Eigenbewegungen des Nutzers kann ein aktives Netz 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 1 PROBLEMSTELLUNG 2 abreißen“ während eine andere Zugangstechnologie verfügbar wird. Dieser als vertikaler ” Handover [StKa98] bezeichnete Mechanismus ist zudem sehr vielseitig. Darauf aufbauend ließe sich beispielsweise eine Kanalbündelung realisieren, welche auch im Festnetz angewendet werden kann. Mit bisherigen Mitteln ist ein solcher Wunsch nicht erfüllbar. Es gibt einen solchen Mechanismus bei ISDN, bei dem durch Kombination zweier B-Kanäle eine höhere Datenübertragungsrate ermöglicht wird. Ein ähnlicher Mechanismus ist nach Kenntnisstand des Autors nicht für TCP/IP basierte Übertragungssysteme verfügbar. Diese Diplomarbeit beschäftigt sich mit dem Themengebiet des so genannten vertikalen Handovers, bei dem Datenströme über unterschiedliche Übertragungstechnologien geleitet werden. Im Gegensatz zum horizontalen Handover findet dabei nicht nur ein Wechsel des Zugangspunktes, sondern ein Wechsel der Übertragungstechnologie [CVSP+ ] statt. Horizontale Handover treten beispielsweise bei Mobiltelefonen auf. Wenn ein Teilnehmer während eines Gespräches eine Funkzelle verlässt, muss sich das Mobiltelefon in einer neuen Funkzelle anmelden. Dabei darf es zu keinen Störgeräuschen oder Verbindungsabrissen kommen. Im Laufe der letzten Jahre wurden eine Reihe von Mobilitätsunterstützungen entwickelt. Sie sollten den Problemen der etablierten Protokolle im mobilen Umfeld entgegen wirken. Eine Aufgabe dieser Diplomarbeit bestand in der Recherche bisheriger Verfahren zur Realisierung eines vertikalen Handovers. Es war zu prüfen, ob sich bereits existierende Verfahren zur Mobilitätsunterstützung auch zur Umsetzung eines vertikalen Handovers eignen. Dabei sollte auf die Praxistauglichkeit geachtet werden. Eine praxistaugliche Lösung zeichnet sich dadurch aus, dass Änderungen nur auf den eigenen Geräten durchgeführt werden und die breite Basis an Internetrechnern nicht angepasst werden braucht. Es dürfen keine Daten verloren gehen oder unangenehm lange Wartezeiten entstehen [CVSP+ ]. Ein entscheidender Aspekt ist die Unterstützung in häufig verwendeten Anwendungen. Die Anwender wollen vertraute Programme einsetzen und nicht auf neue Software umsteigen, nur um in den Genuss“ von Mobilität zu kommen. ” Verbunden mit dem technischen Problem der Realisierung eines Handovers ist die Wahl des optimalen Netzes ( Handover-Entscheidung“). Je nach Anwendungsfall kann ” die Auswahl des gerade kostengünstigsten Netzes erwünscht sein (Minimierung von Übertragungskosten) oder ein maximaler Datendurchsatz gefordert werden [CVSP+ 04]. Eine parallele Nutzung unterschiedlicher Zugangstechniken (Kanalbündelung) ermöglicht eine Steigerung der maximal erzielbaren Datenrate. Es wird gezeigt, dass einige dieser Auswahlkriterien einen gegensätzlichen Charakter haben. Des Weiteren ist die 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 1 PROBLEMSTELLUNG 3 Wahl des Netzes vom Zustand des Übertragungsmediums abhängig. Nur ein gerade verfügbares Netz darf in der Auswahlentscheindung berücksichtigt werden. Es ist zu klären, welche Daten für eine Handoverentscheidung benötigt werden und wie diese gewonnen werden können. Mit ihrer Hilfe kann auch der Zeitpunkt des Handovers bestimmt werden. 1.2. Handovermechanismen In [CVSP+ 04] und [CVSP+ ] wurde bereits erfolgreich ein vertikaler Handover zwischen GPRS und IEEE 802.11b-WLAN durchgeführt. Die Lösung zeichnet sich durch den Einsatz von Mobile IP“ und IPv6“ aus. Die dabei gelösten Probleme werden zusammen ” ” mit dem eigentlichen Mechanismus in Kapitel 2.3.1 vorgestellt. Zusätzlich werden mehrere Erweiterungen zur Mobilitätsunterstützung auf Ihre Eignung zur Realisierung eines vertikalen Handovers untersucht. Dabei werden jeweils die vom einzelnen Verfahren gelösten Probleme sowie dessen Schwachstellen gesammelt. Vor der Entwicklung eines eigenen praxistauglichen Handovermechanismus werden die dazu notwendigen Eigenschaften in Kapitel 3 zusammengetragen und darauf aufbauend ein System zur Realisierung eines vertikalen Handovers entwickelt. Dabei kommen das bereits verfügbare Protokoll SOCKSv5 [Netw96a] und ein ortsfest installierter Proxyserver zum Einsatz. Zusätzlich zu den herkömmlichen Übertragungsprotokollen wird ein selbst entwickelter Übertragungsmechanismus, der auf die Probleme des vertikalen Handovers eingeht, eingesetzt. Der im Festnetz installierte Proxyserver schließt dabei die mobile Teilstrecke ab und leitet als Stellvertreter die Anfragen der mobilen Endgeräte an die Rechner im Internet weiter. Die gefundene Struktur wurde im Rahmen dieser Diplomarbeit implementiert. Der Prototyp erreichte eine Ausbaustufe, die einen vertikalen Handover unter den Betriebssystemen GNU/Linux und Microsoft Windows ermöglicht. Es wurde ein Testaufbau entwickelt, mit dessen Hilfe ein vertikaler Handover zwischen Ethernet, WLAN und GPRS erfolgreich demonstriert werden kann. Die dabei zum Einsatz kommenden Verfahren werden in Kapitel 4 vorgestellt. Beobachtungen über die Beeinflussung der Anwendungen durch Handoverereignisse konnten dabei direkt am Prototyp durchgeführt werden. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 4 2. Theoretische Grundlagen In diesem Kapitel werden die theoretischen Grundlagen, auf welche die später vorgestellten Verfahren basieren, erläutert. 2.1. Herkömmliches TCP/IP und Mobilität TCP – das Transmission Control Protocol – ist ein häufig verwendetes Internetprotokoll, welches die Basis für viele andere Protokolle darstellt. E-Mails werden über POP3 (Post Office Protocol) oder IMAP (Internet Message Access Protocol) abgerufen, Webseiten mit Hilfe von HTTP (Hypertext Transfer Protocol) und Dateien über FTP (File Transfer Protocol). Alle diese Protokolle nutzen TCP. Es dient als so genannte Transportschicht und sorgt dafür, dass die zu übertragenden Daten gesichert beim Empfänger ankommen [KrRe02]. Lücken durch verloren gegangene Datenfragmente ( Pakete“) werden ” durch einen integrierten Quittierungsmechanismus erkannt und lösen eine Übertragungswiederholung aus. Daher gelten für den Einsatz von TCP gewisse Randbedingungen: • Feste IP-Adressen: Jeder Rechner benötigt eine so genannte IP-Adresse, um Bestandteil des Internets zu werden. Diese Adresse bleibt wenigstens für die Dauer einer Sitzung konstant. Rechner mit Zugang über Einwahlverbindungen (beispielsweise GPRS oder Analogmodems) bekommen eine temporär gültige IP-Adresse zugewiesen. Sie bleibt bis zur Trennung der Einwahlverbindung im Besitz“ dieses Rechners. ” Das auf IP aufbauende TCP nutzt zur Adressierung anderer Rechner die von IP bereit gestellten IP-Adressen. Für die Dauer einer TCP-Sitzung müssen sowohl die eigene IP-Adresse als auch die IP-Adresse des Kommunikationspartners konstant bleiben. Sollte sich die Adresse eines der Kommunikationspartner ändern, würde dies zum Abriss des TCP-Datenstromes führen. Die Pakete würden nach Abriss weiter an die ehemalige IP-Adresse des Kommunikationspartners versendet werden und nicht mehr am gewünschten Rechner ankommen. • Niedrige Übertragungsfehlerwahrscheinlichkeit: Feste Netzinfrastrukturen basieren in der Praxis häufig auf drahtgebundenen Übertragungsstrecken (Kupferleitungen oder Lichtwellenleiter) oder auf festen Richtfunkstrecken. Diese sind generell gut gegen äußere Störeinflüsse geschützt, sodass die Übertragungsfehlerwahrscheinlichkeit gering ist. Fehlerhafte Daten werden verworfen und verursachen ein Loch im Datenstrom. Durch den in TCP integrierten 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 5 Quittierungsmechanismus werden solche Lücken am Empfänger erkannt und eine Übertragungswiederholung veranlasst. Da aber in festen Netzen nur geringe Fehlerraten auftreten, wird das Ausbleiben eines Datenpaketes nicht als Übertragungsfehler interpretiert. Stattdessen geht TCP von einer Überlastsituation (Stausituation) im Netz aus und drosselt sofort die Rate, mit der Datenpakete versendet werden. Bei einer realen Stausituation wird damit dem Stau entgegengewirkt. Die Datenrate wird solange reduziert, bis sich der Stau aufgelöst hat und die Datenpakete wieder ohne Lücken am Sender eintreffen. Diese Form der Flusssteuerung wird als Slow-Start-Mechanismus von TCP bezeichnet (RFC 2581 [Allm99]). Auf drahtlosen Übertragungsstrecken tritt auf Grund der höheren Empfindlichkeit gegenüber Störungen eine höhere Paketfehlerrate auf. Fehlerhafte Pakete werden verworfen und sind in ihrer Wirkung nicht von Paketen unterscheidbar, die auf Grund einer Stausituation verworfen wurden. TCP geht dabei von einer Stausituation aus, obwohl im Netz kein Stau vorliegt, sondern nur ein einzelnes Paket verfälscht bzw. verworfen wurde. Die Datenrate wird gedrosselt, und die Auslastung der zur Verfügung stehenden Übertragungskapazität verschlechtert sich. Es dauert eine gewisse Zeit, bis sich die Übertragungsrate wieder erholt“ und die Da” ten wieder mit der maximal verfügbaren Datenrate versendet werden. Bei jedem zukünftigen Datenfehler wird die Datenrate wieder reduziert. Dies führt bei stärker gestörten Übertragungsstrecken zum fast vollständigen Erliegen der Datenrate über TCP Für die drahtlose Übertragungsstrecke sollte daher TCP durch ein Protokoll ersetzt werden, welches die Aufgaben von TCP übernimmt, aber dessen genannte Schwächen nicht mehr besitzt. Da TCP aber ein Ende-zu-Ende Protokoll ist – es arbeitet zwischen den Anwendungen auf dem Client und den Anwemdungen auf den Dienste erbringenden Servern – müsste der Kommunikationspartner ebenfalls dieses Ersatzprotokoll verstehen. Davon kann in der Praxis nicht ausgegangen werden. Da die Server den Großteil ihrer Dienste über TCP anbieten, kann bei der Anfrage kein Ersatzprotokoll verwendet werden. 2.2. Handover Sobald einem Gerät mehrere Internetanbindungen zur Verfügung stehen, stellt sich die Frage, welche dieser Anbindungen genutzt werden soll. Zur Entscheidungsfindung können verschiedene Kriterien herangezogen werden. Sie werden in diesem Abschnitt vorgestellt. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 6 Im vorliegenden Fall soll nicht nur ein bestehender Netzzugang getrennt und eine Ersatzanbindung aufgebaut werden. Zusätzlich soll der über den ersten Zugang fließende Datenstrom auf den neuen Zugang umgeleitet werden. Diese Übergabe eines Datenstromes an einen anderen Netzzugangspunkt wird als Handover bezeichnet. Bei einem solchen Handover ist nicht nur die Frage nach dem optimalen Zugangsnetz, sondern auch die Frage nach dem Handoverzeitpunkt zu klären. Je nach Nutzerwunsch sind Situationen denkbar, in denen es kein einzelnes optimales Netz“ gibt, sondern ähn” lich wie bei einer Kanalbündelung, eine Menge an gleichzeitig aufgebauten und genutzten Netzzugängen. Im folgenden Abschnitt sollen diese Punkte genauer beleuchtet werden. 2.2.1. Horizontaler und vertikaler Handover Es gibt zwei Arten eines Handovers, den horizontalen und den vertikalen Handover. Beim horizontalen Handover beschränkt man sich beim Wechsel des Netzzugangs auf die selbe Netzzugangstechnologie (Beispiel: Wechsel eines WLAN-Zugangspunktes oder das Einbuchen eines Mobilfunktelefons in eine andere Funkzelle), beim vertikalen Handover ändert sich diese. Im Rahmen dieser Diplomarbeit wird die Übergabe eines Datenstromes zwischen Ethernet, WLAN und GPRS untersucht, was einem vertikalen Handover entspricht. 2.2.2. Arten der Linknutzung Wenn mehr als eine einzige Anbindung ( Link“) zur Auswahl stehen, gibt es mehrere ” Möglichkeiten, wie diese genutzt werden können. • Ungenutzter Link: Wird zu einem Zeitpunkt kein Internetzugang benötigt, kann ein Netzzugang ungenutzt bleiben. Eine bereits über einen anderen Netzzugang bestehende Internetverbindung kann für den Nutzer ausreichend dimensioniert sein, sodass keine weiteren Übertragungskapazitäten notwendig sind. Beispielsweise ist bei einer verfügbaren Ethernetanbindung die zusätzliche Nutzung drahtloser Übertragungstechniken unnötig. • Aufbau eines einzelnen Links ohne Datenübertragung: Links können im Voraus aufgebaut werden, damit sie im Falle eines Abrisses des momentan aktiven Hauptlinks nicht erst aufgebaut werden müssen und somit schneller zur Verfügung stehen. Dies wird besonders dann wichtig, wenn der Ersatzlink für eine Einwahl vergleichsweise lange braucht. GPRS ist ein Beispiel 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 7 hierfür. GPRS benötigt bis zu 35 Sekunden (vgl. Anhang B) für eine Einwahl. Da es aber fast flächendeckend verfügbar ist und bei der Nutzung kaum1 Zeitkosten anfallen (sondern überwiegend Volumenkosten), ist es vorteilhaft, einen GPRS-Link frühzeitig aufzubauen. Damit steht der Link bei Bedarf ohne Einwahlverzögerung zur Verfügung. • Aufbau eines einzelnen Links mit Datenübertragung: Ein Internetzugang kann nach erfolgreich abgeschlossenem Verbindungsaufbau zur Datenübertragung herangezogen werden. Solange nur ein einzelner Link aktiv ist, entspricht dies der Situation eines herkömmlichen Internetzuganges. • Nutzung mehrerer Links, Kanalbündelung: Wenn der Internetzugang über mehrere Anschlusspunkte möglich ist, kann die maximal erreichbare Datenrate erhöht werden, indem die Übertragungskapazitäten mehrerer Verbindungen kombiniert werden. Bei ISDN (Integrated Services Digital Network) kann die verfügbare Bitrate durch Bündelung zweier B-Kanäle von jeweils 64 kbit/s auf 128 kbit/s verdoppelt werden. Dabei bewegt man sich innerhalb einer Technologie (vgl. horizontal“). Auch die Kombination unterschiedlicher ” Netzzugangstechnologien – wie im vorliegenden Fall WLAN und GPRS – ist denkbar (vgl. vertikal“). ” Der Vorteil dieses Verfahrens ist ein höherer Datendurchsatz, der aber in der Praxis zu Mehrkosten führt. Jeder Link kostet gewisse Ressourcen. Diese reichen von anfallenden Zeitkosten (→ Netzzugang über Analogmodems), Volumenkosten (→ Netzzugang über GPRS) bis hin zu Energiekosten. Mobile Endgeräte werden über Akkumulatoren mit Energie versorgt. Eine gleichzeitige Nutzung mehrerer Funknetze führt zu einem höheren Energieverbrauch und damit zu einer geringeren Akkulaufzeit. • Nutzung mehrerer Links, redundante Versendung: Drahtlose Übertragungsstrecken sind im Vergleich zu drahtgebundenen Übertragungssystemen störempfindlicher. Durch die Eigenbewegung der mobilen Verbindungspartner ändert sich die Beschaffenheit der Funkstrecken. Die Verbindungen können jederzeit abreißen. Bei einem solchen Abriss muss eine Handoverentscheidung getroffen werden. Dabei wird die Datenrate auf Anwendungsebene einbrechen, da es eine gewisse Zeit dauert, bis der Verbindungsabriss erkannt wird und 1 Auch bei der Nutzung von GPRS können je nach Provider und Tarif Zeitkosten anfallen. Diese beschränken sich aber teilweise auf einmalige Tagesnutzungsentgelte. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 8 der Ersatzlink zur Verfügung steht. Zusätzlich müssen verloren gegangene Pakete erkannt und erneut übertragen werden. Diese Aussetzer lassen sich vermeiden, indem man identische Daten über verschiedene Wege zum Ziel schickt. Reißt einer der Wege plötzlich ab, kommen die Daten trotzdem über die anderen Links zum Ziel. Erst wenn alle Wege gleichzeitig nicht mehr verfügbar sind, wird der Ausfall für die Anwendungen bemerkbar2 . 2.2.3. Zeitpunkt des Handovers Je nach Umfang der verfügbaren Statusinformationen zu den einzelnen Links kann ein Abriss bereits im Vorfeld erkannt werden oder erst nach seinem Auftritt. Viele Wireless” LAN-Karten“ liefern die aktuell vorliegende Empfangsfeldstärke, andere Netzzugangsgeräte nennen nur ein Netz verfügbar“ oder Netz nicht verfügbar“. Davon abhängig sind ” ” verschiedene Arten des Handovers denkbar: • Harter“ Handover: ” Ein plötzlich ausfallender Link sorgt für eine Unterbrechung des Datentransfers. Ein Handover-Entscheider kann den Aufbau eines Ersatzlinks anstoßen, um den Datenstrom in Zukunft über diesen fließen zu lassen. Solange der Ersatzlink nicht vollständig aufgebaut ist, findet kein Datentransfer statt. Zusätzlich dauert es nach dem Aufbau eine gewisse Zeit, bis durch den Abriss und den Wechsel der IPAdresse verloren gegangene Daten erkannt und wiederholt werden. Der Handover ist auf Anwendungsebene als Stocken des Datenstromes“ bemerkbar. ” • Weicher“ Handover: ” Stehen dem Handover-Entscheider Informationen über einen drohenden Linkabriss zur Verfügung, kann dieser den Ersatzlink bereits vor Ausfall des Hauptlinks aufbauen. Bei dem möglicherweise passierenden Ausfall braucht nur noch der Datenstrom über den Ersatzlink umgeleitet zu werden. Der Vorteil liegt in einer geringeren Ausfallzeit, da diese um die Dauer der Einwahl reduziert wird. Nachteile sind eventuell steigende Verbindungskosten und ein höherer Energiebedarf. Außerdem können beim Abriss des Hauptlinks Lücken im Datenstrom entstehen, da nicht bekannt ist, wie viele der versendeten Pakete durch 2 Unter der Annahme, dass alle Verbindungen über identische Verbindunsgparameter (wie Datenrate, Verzögerungszeit oder Fehlerrate) verfügen. Das ist speziell beim vertikalen Handover selten der Fall. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 9 den Abriss verloren gegangen sind. Entweder wiederholt man vorsorglich eine festgelegte Menge bereits gesendeter Daten, oder man wartet auf eine Rückmeldung des Empfängers. In beiden Fällen wird es zu einem Einbruch in der Übertragungsrate auf Anwendungsebene kommen. Dieser wird aber weniger ausgeprägt sein als bei einem harten“ Handover. ” • Weicherer3“ Handover: ” Bei drohendem Ausfall eines Links kann wie im vorherigen Punkt schon vor Abriss des Hauptlinks ein Ersatzlink aufgebaut werden. Statt diesen aber im Leerlauf zu betreiben, wird eine redundante Übertragung von Nutzdaten parallel über beide Verbindungen durchgeführt. Dadurch werden die spürbaren Ausfallzeiten weiter reduziert oder sie verschwinden sogar ganz. Durch den auftretenden Linkabriss gehen keine Daten verloren. Die über die redundante Anbindung versendeten Daten sorgen dafür, dass am Empfänger kein Loch im Datenstrom entsteht. Wenn der Ersatzlink keine schlechteren Übertragungseigenschaften als der Hauptlink aufweist, sind auf Anwendungsebene keine negativen Auswirkungen des Handovers spürbar. Nachteile sind nochmals höherere Verbindungsentgelte, da bei dieser Lösung zusätzlich anfallende Volumenkosten entstehen können. Durch den Betrieb zweier Netzzugangstechnologien unter Last steigt auch der Energiebedarf weiter an. Zusätzlich ist nicht absehbar, wann und ob ein Link wirklich abreißt. Solange der Hauptlink in einem Zustand des drohenden Abrisses verbleibt, wird der Ersatzlink genutzt. Auch wenn der Hauptlink vielleicht gar nicht abreißt. 2.2.4. Zielstellungen bei der Wahl des optimalen Netzes Der Handover-Entscheider muss aus der Menge der verfügbaren Netzzugänge das optimale Netz ermitteln und je nach Ergebnis Einwahlvorgänge anstoßen oder bereits aufgebaute Verbindungen trennen. Bisher wurde noch keine Aussage gemacht, nach welchen Kriterien diese Entscheidung gefällt werden soll. Diese Frage lässt sich nicht allgemeingültig beantworten, denn sie hängt von einer frei wählbaren Zielstellung ab. Unterschiedliche Zielstellungen weisen jedoch teilweise gegensätzliche Charakteristika auf, sodass es nicht möglich ist, einen Entscheidungsmechanismus zu finden, welcher ohne Rückfragen die optimale Entscheidung trifft. Mögliche Zielstellungen sind: • Minimierung von Übertragungskosten: 3 Anmerkung des Autors: Im Englischen heisst es: ”Hard-”, ”soft-” und ”softer handover.” Dem Autor ist nicht bekannt ob die Übersetzung weicherer Handover“ wirklich verwendet wird. ” 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 10 Durch die Wahl des jeweils kostengünstigsten Netzzuganges können die Übertragungskosten minimiert werden. Der billigste“ Link sollte bis zu seinem Abriss ge” nutzt werden. Erst nach Abriss wird der zweitgünstigste Link aufgebaut. Derweil überwacht der Handover-Entscheider das abgerissene günstigste Netz und versucht bei Verfügbarkeit eine erneute Einwahl, um wieder auf den billigsten Netzzugang umzuschwenken. Es finden keine Kanalbündelung und keine redundante Versendung über gleichzeitig aufgebaute Links statt. • Link mit höchstem Datendurchsatz: Wenn sich der Nutzer für eine maximale Datenübertragungsrate entscheidet, sind die entstehenden Kosten für den Handover-Entscheider irrelevant. Er wird die Netzzugangstechnologie mit der höchsten erreichbaren Datenübertragungsrate auswählen. Für die im Rahmen dieser Diplomarbeit verwendeten Technologien lautet die Reihenfolge Ethernet (100 Mbps) vor WLAN (11 Mbps), WLAN vor GPRS ” (maximal 171,2 kbps bei GSM)“. Ethernet ermöglicht die höchste Datenübertragungsrate, GPRS die geringste. • Maximaler Datendurchsatz: Die im vorherigen Punkt genannten Datenraten lassen sich über eine Kanalbündelung steigern. Bei einer parallelen Nutzung von Ethernet und WLAN lassen sich theoretisch höhere Datenraten erreichen als mit Ethernet alleine. Es stellt sich die Frage, ob der Gewinn in der Praxis von Bedeutung sein wird. Es ist denkbar, dass die Datenrate durch andere Aspekte begrenzt wird. Alle Datenströme müssen an einem zentralen Punkt – ein Proxyserver oder Agent – gesammelt und kombiniert werden. Dort entsteht eine hohe Rechenlast, welche einen Flaschenhals“ darstel” len kann. Außerdem übersteigt die Kapazität der in lokalen Netzen eingesetzten Ethernet’s und WLAN’s die Datenraten handelsüblicher Internetanbindungen. Kanalbündelung ist nur dann sinnvoll, wenn keines der Netze eine mindestens gleich große Datenrate wie der Internetzugang unterstützt. • Minimale Übertragungsverzögerung für gutes Ansprechverhalten: Die unterschiedlichen Netzzugangstechnologien unterscheiden sich neben der maximal erreichbaren Datenrate in der Verzögerungszeit. Der Link mit der höchsten erzielbaren Datenrate muss nicht gleichzeitig der Link mit der geringsten Übertragungsverzögerung sein. Aktuelle Beispiele hierfür sind die von der Deutschen ” Telekom“ angebotenen DSL-Anschlüsse. Sie verfügen über einen integrierten Mechanismus zur blockweisen Fehlerkorrektur. Dadurch, dass ein solcher Block erst 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 11 gefüllt werden muss, bevor die Fehlerkorrektur angewendet werden kann, werden Verzögerungen provoziert. Die Telekom bietet eine Tarifoption namens Fastpath“ ” an, welche diese Fehlerkorrektur deaktiviert und damit die Paketlaufzeiten verringert. Die nutzbaren Datenraten werden dadurch nicht verändert. Es gibt Anwendungen, für die eine niedrige Verzögerungszeit wichtiger ist als eine hohe Datenrate. Sowohl Onlinespiele als auch Videokonferenzen profitieren beide davon, dass die anderen Teilnehmer möglichst schnell von den aktuellsten Eingaben des Nutzers erfahren. Zusätzlich zu den Verzögerungszeiten der einzelnen Zugriffsmedien spielen die Verzögerungen durch vertikale Handover eine besondere Rolle. Diese Ausfallzeiten können durch eine Versendung redundanter Daten über verschiedene Netzzugänge erreicht werden (vgl. Weicherer Handover“, Abschnitt ” 2.2.3). Im vorliegenden Beispiel bietet Ethernet die geringsten Paketverzögerungszeiten, WLAN liegt im Mittelfeld und GPRS verzögert am stärksten. • Sparen von Energie für lange Akkustandzeit: Im Mobilbereich ist eine effiziente Nutzung der Energiereserven von besonderer Bedeutung. Um ein Gerät solange wie möglich ohne Stromanschluss betreiben zu können, kommt es auf den Energiebedarf der aktiven Komponenten an. Zusätzlich zu den unvermeidbaren Stromfressern“, wie der Hintergrundbeleuchtung des ” Bildschirms oder der Leistungsaufnahme der CPU, benötigen die Funkschnittstellen einen Anteil der verfügbaren Akkuleistung. Je mehr Funkschnittstellen aktiv sind, desto mehr Leistung wird vom Akku verlangt. Es kann daher sinnvoll sein, im Sinne einer langen Akkulaufzeit auf Netzanbindungen mit hohem Energiebedarf zu verzichten und eine sparsamere Anbindung auszuwählen, auch wenn diese in anderen Gebieten wie der erreichbaren Datenübertragungsrate Nachteile aufweist. Es ist erkennbar, dass sich einige Zielstellungen gegenseitig ausschließen. Eine Minimierung der Übertragungskosten bei gleichzeitig maximaler Datenübertragungsrate lässt sich nicht durchführen. Dazu müssten erst die Fragen Was ist günstig?“ und Was ist ” ” eine hohe Datenrate?“ beantwortet werden. Die Antworten dazu sind eher subjektiver Natur und variieren von Nutzer zu Nutzer und von Anwendung zu Anwendung. Daher lässt sich abschließend sagen, dass zur Entscheidungsfindung eine Interaktion mit dem Nutzer stattfinden muss. Er entscheidet, welche Zielstellung für ihn und im Moment die besten Ergebnisse liefert. Denkbar wäre hierfür eine Bedienoberfläche, mit Hilfe derer der 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 12 Nutzer auf die Handoverentscheidung Einfluss nehmen kann. Für einen wichtigen Download aktiviert er kurzzeitig eine Kanalbündelung, die er bei Beendigung wieder freigibt. Wenn alle Netzverbindungen bis auf GPRS abreißen, kann eine Warnmeldung den Nutzer informieren, dass momentan jeglicher Datentransfer mit Gebühren verbunden ist. So kann der Nutzer auf die Handoverentscheidung Einfluss nehmen und gleichzeitig über die Konsequenzen informiert werden. 2.2.5. Entscheidungskriterien Nachdem im vorherigen Abschnitt über die Notwendigkeit einer Zielstellung bei der Handoverentscheidung gesprochen wurde, wird im Folgenden beleuchtet, welche Eigenschaften bei bereits gegebener Zielstellung zur Entscheidung herangezogen werden können. • Verfügbare Netzzugänge: Nicht alle Netzzugänge sind zu jeder Zeit verfügbar oder benutzbar. Ein vorher nicht verfügbares Netz kann mittlerweile wieder benutzbar geworden sein, und auf Grund seiner besseren Eigenschaften einen Handover rechtfertigen. Weitere Aspekte – in Frageform – sind: – Wurde die zur Nutzung einer bestimmten Technologie erforderliche Hardware entfernt? – Wurde dem System neue Hardware hinzugefügt? (→ Eine Verbindung kann nur dann aufgebaut werden, wenn die Zugriffshardware vorhanden, sie dem Handover-Entscheider bekannt und das Netz verfügbar ist). • Kosten pro Zeit: Internetverbindungen über Analogmodems werden in der Regel nach Zeittakten abgerechnet. Eine Verbindung verursacht ab dem Zeitpunkt der Einwahl bis zu ihrer Trennung Kosten. Ob die aufgebaute Verbindung zur Datenübertragung genutzt wird oder nicht, hat keinen Einfluss auf die anfallenden Kosten. Bei Ethernet fallen keine Nutzungsentgelte an, bei WLAN ist dies abhängig vom Netzprovider. Campusnetze4 werden den Studenten oft unentgeltlich zur Verfügung gestellt, kommerzielle WLAN-Hotspots“ werden oft nach der Nutzungsdauer abgerechnet. Bei ” GPRS fallen – dies ist abhängig vom gewählten Tarif – in der Regel keine Kosten pro Zeit an. 4 Die Technische Universität Ilmenau bietet ihren Studenten ein kostenlos nutzbares WLAN-Netz an. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 13 • Kosten pro Datenvolumen: Bei GPRS wird häufig das transportierte Datenvolumen als Abrechnungsgrundlage verwendet [DAFU]. Dies passiert auch, wenn wie im folgenden Punkt bei bestimmten Tarifen eine Volumengrenze überschritten wird und damit der Preis pro Volumeneinheit steigt. • Zusatzkosten ab bestimmtem Datenvolumen: Manche Tarife bieten ein so genanntes Freivolumen – meistens bezogen auf eine bestimme Zeitspanne – an, welches bereits im Grundpreis enthalten ist. Zusätzlich übertragenes Datenvolumen verursacht weitere Kosten. Um diesen Aspekt bei der Handoverentscheidung zu berücksichtigen, sind genaue Daten über den Umfang des Freivolumens, den bereits genutzten Anteil des Freivolumens und die anfallenden Kosten bei Überschreitung notwendig. Zusätzlich werden Mechanismen zur Erfassung des aktuell transportierten Datenvolumens benötigt. Mit ihrer Hilfe kann verhindert werden, dass das Freivolumen überschritten wird und Zusatzkosten entstehen. • Maximales Datenvolumen und Prepaid“-Tarife: ” Im drahtlosen Telefoniebereich (→ GSM) sind so genannte Prepaid-Karten“ ver” fügbar. Diese müssen vor ihrer Nutzung aufgeladen werden. Anschließend kann das bezahlte Guthaben abtelefoniert oder bei Nutzung von GPRS zur Datenübertragung verwendet werden. Für den Handoverentscheider ist dies wichtig, da er bei Erschöpfung des Guthabens mit einem Verbindungsabriss konfrontiert wird. Die Verbindung wird abreißen, obwohl das Zugangsnetz noch verfügbar ist. Eine reine Betrachtung der Empfangsfeldstärke reicht hierbei nicht mehr aus. Zusätzlich könnte der Nutzer informiert werden, dass eine Aufladung des Kontostandes notwendig ist. • Einmalige Einwahlkosten: Es gibt Internetprovider, die beim Verbindungsaufbau eine Einwahlgebühr verlangen. Diese ist unabhängig von den zusätzlich anfallenden Nutzungsentgelten, welche nach Datenvolumen oder Nutzungsdauer erhoben werden können. Solche Einwahlgebühren werden bei jeder Einwahl erneut abgerechnet. Daher kann es sinnvoll sein, eine bereits aufgebaute Verbindung offen zu halten, auch wenn sie momentan nicht benötigt wird. Die laufenden Kosten können geringer sein als die einer erneuten Einwahl. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 14 • Tagesnutzungsgebühren: Bei GPRS wird pro Tag eine einmalige Tagesnutzungsgebühr verlangt. Wenn diese bereits abgerechnet wurde, entfällt sie bei einer erneuten Einwahl. Sie wird nur für Tage berechnet an denen GPRS genutzt wird. • Erreichbare Datenübertragungsrate: Die verschiedenen Netzzugänge unterscheiden sich in der über sie nutzbaren Datenrate. Ethernet bietet eine vergleichsweise hohe Datenrate an und ermöglicht damit schnelle Downloads oder Videokonferenzen. Bei WLAN reicht die erreichbare Datenrate nach aktuellem Stand der Technik nicht an die von Ethernet heran, ist aber für praktische Anwendungen in der Regel ausreichend. GPRS bietet dagegen mit seinen maximalen 171,2 kbps (bei Verwendung aller acht Zeitschlitze und dem Kodierungsverfahren mit dem kleinsten Overhead) nur eine geringe Datenübertragungsrate an, was sich auf viele Anwendungen einschränkend auswirkt. • Verzögerungszeit: Onlinespiele profitieren von sehr kurzen Übertragungszeiten, da nur so alle Teilnehmer über aktuelle Ereignisse zeitnah unterrichtet werden können. GPRS verzögert die übertragenen Daten am stärksten, da es im Zusammenspiel mit TCP zu sehr langen Paketlaufzeiten führt. Dies wurde bereits in Abschnitt 2.1 besprochen. • Empfangsfeldstärkeverlauf bei drahtlosen Medien: Viele Geräte zur Nutzung drahtloser Medien stellen dem Anwender die aktuell vorliegende Empfangsfeldstärke zur Auswertung bereit. Diese Information ist mit der eines Mobiltelefons vergleichbar, welches mit Hilfe verschiedener Symbole auf die aktuelle Netzversorgung aufmerksam macht. Ein Handover-Entscheider kann diese Information mit zur Entscheidungsfindung heranziehen. Sie wird noch effektiver, wenn nicht nur auf die aktuell vorliegende Empfangsfeldstärke geachtet wird, sondern zusätzlich Werte aus der Vergangenheit berücksichtigt werden. Solche Feldstärkeverläufe geben Auskunft über Tendenzen in der Netzversorgung, was zu einer besseren Vorhersage von Linkabrissen führen kann. Nicht alle Netzzugangstechnologien liefern eine Aussage über die aktuell vorliegende Linkqualität. Bei Ethernet gibt es beispielsweise nur die Zustände angeschlos” sen“ oder nicht verfügbar“. ” • Energiebedarf: Um eine möglichst lange Akkustandzeit zu erreichen, kann der Energiebedarf eines 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 15 jeden Netzzuganges eine wichtige Rolle spielen. Dies erfordert jedoch umfassende Informationen über den Energiebedarf der verwendeten Hardware. • Nutzerwunsch: Zusätzlich zu allen Automatismen kann der Anwender in den Entscheidungsprozess eingreifen und die Auswahl beeinflussen. Bestimmte Netzzugänge könnten selektiv gesperrt werden, obwohl die Hardware vorhanden ist und eine gute Feldstärke für eine Auswahl sprechen würde. 2.3. Erweiterungen zur Mobilitätsunterstützung Im Laufe der letzten Jahre wurden diverse Erweiterungen zu den etablierten Internetprotokollen – speziell IP und TCP – vorgeschlagen. Sie sollen auf die durch die Mobilität entstehenden Probleme eingehen und mit angepassten Übertragungsmechanismen den Nachteilen der unveränderten Protokolle entgegenwirken. Im folgenden Abschnitt werden einige der bereits vorgeschlagenen Mobilitätsunterstützungen vorgestellt. Dies geschieht mit einem genauen Blick auf ihre Eignung zur Realisierung eines vertikalen Handovers. 2.3.1. Mobile Vermittlungsschicht: Mobile IP“ ” Mobile IP“ (siehe RFC 2002 [Perk96]) soll die Problematik der sich ändernden IP” Adressen (die der mobilen Endgeräte) in der Vermittlungsschicht lösen. Es handelt sich um eine Erweiterung zu IP und setzt damit ebenfalls auf der Vermittlungsschicht an. Es kommt zu keinen Problemen mit der bestehenden IP-basierten Netzinfrastruktur, da sich Mobile IP“ gegenüber dem Netz wie unverändertes IP verhält. Es ist eine Erweiterung ” zu IP. Mobile IP“ setzt so genannte Agenten ein, speziell einen Heimagenten und mehrere ” Fremdagenten [Solo98]. Das Netzwerk wird dabei in mehrere Teilnetze separiert, welche jeweils über ein Gateway einen Netzzugangspunkt nach außen“ besitzen. Auf diesen ” Gateways laufen die genannten Agenten. Wenn sich ein mobiles Endgerät mit dem Internet verbinden will, nutzt es einen der angebotenen Netzzugangspunkte. Das Gerät erhält dabei eine global gültige IP-Adresse, wobei das zugehörige Teilnetz zum Heimatnetz wird. Solange das mobile Gerät nicht den Zugangspunkt wechselt und sich innerhalb des Heimatnetzes aufhält, reichen die von IP bereit gestellten Mechanismen aus. Der auf dem Gateway laufende Agent, im vorliegenden Fall wird er Heimagent“ genannt, leitet die Daten transparent ins Internet ” weiter ohne die Datenpakete zu verändern. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 16 Erst beim Wechsel des Zugangspunktes kommen die geänderten Übertragungsmechanismen von Mobile IP“ zum Einsatz. Das Endgerät verlässt sein Heimatnetz und ” wird durch Wahl eines anderen Netzzugangspunktes Bestandteil eines Fremdnetzes. Der Fremdagent, welcher den Datenstrom zwischen Fremdnetz und Internet überwacht, wird über das neu eingebuchte Gerät informiert. Zusätzlich wird der Heimagent über den neuen Aufenthaltsort unterrichtet. Ihm wird die neue IP-Adresse des mobilen Endgerätes im Fremdnetz mitgeteilt. Diese Adresse wird Care-of-Address genannt. Alle Datenpakete, die aus dem Internet an das mobile Endgerät gerichtet sind, weisen als Zieladresse weiterhin die ursprüngliche IP-Adresse aus dem Adressbereich des Heimatnetzes auf. Die Pakete passieren das Gateway mit dem Heimagenten. Dieser kann die Datenpakete nicht mehr direkt zustellen, weiß aber, über welchen Fremdagenten der Empfänger erreichbar ist. Die Datenpakete werden mit zusätzlichen Steuerinformationen versehen und wiederum in IP-Pakete verpackt ( IP-over-IP-Tunneling“). Der dabei entstehende ” Tunnel besteht zwischen dem Ort der Verkapselung (IP-Pakete als Nutzlast innerhalb äußerer IP-Pakete) und dem Ort an dem die IP-Pakete wieder ausgepackt werden (dem Fremdagenten). Diese äußeren Datenpakete werden vom Heimagenten an den Fremdagenten verschickt. Dort angekommen werden sie ausgepackt und können direkt dem mobilen Endgerät übergeben werden. Weder die auf dem mobilen Endgerät laufenden Anwendungen noch die Kommunikationspartner im Internet bemerken den Ortswechsel. Der Adresswechsel des mobilen Endgerätes wird durch die Agenten verborgen. Es verwendet weiterhin seine im Heimatnetz erhaltene IP-Adresse. Mobile IP“ und vertikaler Handover: Der im letzten Abschnitt vorgestellte Mecha” nismus ist nicht direkt auf das vorliegende Problemgebiet des vertikalen Handovers übertragbar. Das wird im Folgenden am Beispiel von GPRS gezeigt. Bei GPRS wählt sich ein Computer über ein GPRS-fähiges Modem ins Internet ein. Ein solches Modem verhält sich gegenüber dem Betriebssystem wie ein handelsübliches Analogmodem. So wird sichergestellt, dass möglichst keine Kompatibilitätsprobleme beim Installieren des Modems unter verschiedenen Betriebssystemen auftreten. Die Verbindungsparameter werden über das Point-to-Point Protocol (PPP) ausgehandelt. Zu ihnen gehören die IP-Adresse, das zu nutzende Standardgateway und die Adressen der empfohlenen Nameserver. Das mobile Endgerät bekommt eine global gültige IPAdresse zugewiesen, ohne dass ein Agent zum Einsatz kommt. Die zur Verwendung von Mobile IP“ notwendigen Agenten sind immer im Festnetz angesiedelt. Ein solcher darf ” nicht Bestandteil des mobilen Systems sein, da er sonst zusammen mit ihm vom Festnetz 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 17 getrennt werden würde und nicht mehr die Aufgaben eines Heimagenten übernehmen könnte. Demnach müsste der Agent bei der Verwendung von GPRS auf der Seite des Netzproviders angesiedelt sein. Das ist aber nicht der Fall, denn die Provider bieten zur Zeit noch keinen GPRS-Netzzugang mit integrierter Mobile IP“-Unterstützung (mit ” einem auf dem Gateway angesiedelten Mobile IP“-Agenten) an. ” Bei einem Netzabriss wird die Verbindung getrennt, und die vorher dem Endgerät zugewiesene IP-Adresse wird zur Neuvergabe freigegeben. Bei erneuter Einwahl wird eine abweichende Adresse an das mobile Gerät vergeben. Alle mit der alten Adresse verknüpften Datenströme müssen zwangsläufig abreißen, da die alte Absenderadresse zwischenzeitlich an ein anderes Gerät vergeben werden konnte. Ein Mechanismus zum Abfangen und Umleiten der Datenpakete steht nicht zur Verfügung. Ein Ausweg besteht in der Einführung von Mobile IP“ durch die Netzbetreiber. Ohne deren Unterstützung wird eine ” kombinierte Nutzung von GPRS und Mobile IP“ erschwert. Zusätzlich erbt“ eine solche ” ” Lösung sämtliche Probleme von Mobile IP“. Da es auf der Vermittlungsschicht arbei” tet, verbirgt es erfolgreich die Problematik der Adresswechsel vor der darüber liegenden Transportschicht. Allerdings sorgen die Zugangspunktwechsel für anfänglich lange Verzögerungen. Die Agenten müssen sich erst untereinander verständigen und einen neuen Tunnel etablieren. In dieser Zeit droht das darüber liegende TCP in einen Timeout zu laufen und es beginnt mit der Drosselung der Datenrate und der Wiederholung bereits gesendeter Daten. Spätestens bei einer länger anhaltenden Trennung vom Netz sterben“ ” die aufgebauten TCP-Verbindungen. Fazit: Bei dieser Lösung ist es nicht möglich, ein Endgerät länger als die in TCP enthaltene Timeoutzeitspanne vom Netz zu trennen. Ab diesem Zeitpunkt sterben die TCP-Verbindungen ab. Da der zu entwerfende Handovermechanismus zudem mit GPRS arbeiten soll, wird im Folgenden zur Realisierung eines vertikalen Handovers kein Mobile ” IP“ verwendet. Dabei gibt es noch weitere Probleme: Es ist nicht möglich, eine Kanalbündelung durch Kombination mehrerer paralleler Einwahlverbindungen zu realisieren. Soll der Download einer großen Datei per Kanalbündelung beschleunigt werden, gibt es ein Problem am Heimagenten. Dieser empfängt den Datenstrom vom Server aus dem Internet, und muss ihn an das mobile Endgerät weiterleiten. Dazu hat er zwei Möglichkeiten. Entweder kann er den Datenstrom direkt zustellen, weil das Gerät gerade Bestandteil des Heimatnetzes ist, oder er baut einen Tunnel zum zur aktuellen Care-of-Adresse“ gehörenden ” Fremdagenten auf, welcher seinerseits die Daten zustellen kann. Aber wie soll eine Ka- 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 18 nalbündelung ablaufen? Der Datenstrom müsste vom Heimatagenten geteilt werden. Die eine Hälfte wird über Weg A“ an das mobile Endgerät versandt, die andere Hälfte über ” Weg B“. Das wirft aber neue Fragen auf, welche ohne Beantwortung lediglich aufgezählt ” werden sollen: • In welchem Verhältnis sollen die Datenmengen aufgeteilt werden? • Wo liegen die Informationen über die Eigenschaften der einzelnen Luftschnittstellen? • Wie sieht der Mechanismus zur Trennung von auszusendenden Datenmengen am mobilen Endgerät aus? Wo werden die Teildatenströme wieder kombiniert? • Wie werden parallele Verbindungen gemäß den Mechanismen von Mobile-IP“ auf” gebaut? Wie werden sie wieder abgebaut? • Was passiert bei spontanen Verbindungsabrissen bei aktiver Kanalbündelung? Wer baut die dadurch absterbenden Tunnel vom Heimagenten zum Fremdagenten ab? Was passiert mit den verloren gegangenen Datenfragmenten? Diese Problemstellungen konnten aus zeitlichen Gründen im Rahmen dieser Diplomarbeit nicht weiter untersucht werden. Es besteht unter anderem das Problem der fehlenden Zugriffsmöglichkeit auf die GPRS-Infrastruktur der Netzbetreiber. Dies erschwerte weitere Untersuchungen. Zu der genannten Problematik von Mobile IP“ gibt es bereits eine vielversprechende ” Lösung. Sie basiert auf einer Kombination von Mobile IP“ und IPv6 (IP in der Version ” 6). Durch Verwendung von IPv6-über-IPv4-Tunnel“ wird das Problem der fehlenden ” Zugriffsmöglichkeiten auf die GPRS-Infrastrukturnetze umgangen. Der vorgeschlagene Mechanismus wurde aus [CVSP+ 04] und [CVSP+ ] entnommen. Dort wird über einen funktionsfähigen Prototyp berichtet, welcher in der Lage ist einen vertikalen Handover zwischen GPRS und WLAN IEEE 802.11b durchzuführen. Er weist jedoch, trotz Lösung des Mobile IP über GPRS“-Problems, die anderen genannten Probleme auf. So kommt ” es zu merkbaren Unterbrechungen des Datenstromes, wenn der aktive Netzzugang (egal ob WLAN oder GPRS) abreißt. Das liegt an der Zeitspanne, die zum Aufbau eines neuen Tunnels (→ Mechanismus von Mobile-IP“) benötigt wird. Zwischenzeitlich gehen IP” Pakete verloren, welche durch das darüberliegende TCP erkannt und wiederholt werden müssen. Es kommt zu Verzögerungen bis hin zur Trennung von TCP-Verbindungen. Über die Möglichkeit einer Kanalbündelung wird nicht berichtet, sie bleibt jedoch nach 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 19 Verständnis des Autors auch mit dem vorgestellten Mechanismus nicht oder nur mit großem Zusatzaufwand realisierbar. 2.3.2. Mobile Transportschicht: Indirect TCP“ (I-TCP) ” Indirect TCP“ (I-TCP) ist eine Erweiterung zu TCP, welches ein Protokoll der Trans” portschicht ist. I-TCP wurde entworfen, um den bereits mehrfach genannten Mobilitätsproblemen auf der Transportschicht (im Gegensatz zu Mobile IP“, welches auf der ” darunter liegenden Vermittlungsschicht ansetzt) zu begegnen [Schi00]. I-TCP separiert die bei normalem TCP auftretende Ende-zu-Ende-Verbindung in zwei Teilstrecken. Eine TCP-Verbindung besteht zwischen einer Anwendung auf einem Client und endet an einer Anwendung auf einem Server. Zwischen anfragendem Rechner (Client) und Zielsystem (Server) wird ein Zwischenrechner – ein Proxyserver – platziert. Er nimmt auf der einen Seite Verbindungen entgegen, welche ursprünglich nicht an ihn, sondern an einen Dienste erbringenden Server im Internet gerichtet waren. Nach erfolgreicher Annahme einer solchen Verbindung wird die zweite Teilstrecke etabliert. Dazu baut der Proxyserver eine weitere, dieses Mal ausgehende“, TCP-Verbindung zum ur” sprünglich gewünschten Zielsystem auf. Wenn beide Verbindungen bestehen, schaltet der Proxyserver in einen transparenten Weiterleitungsmodus. Er nimmt dabei Daten aus jeweils einer der beiden Verbindungen entgegen und übergibt sie an die jeweils andere Verbindung. Der Proxyserver ist dabei hinter der Luftschnittstelle angesiedelt und isoliert damit die mobile Teilstrecke vor dem eigentlichen Zielrechner. Durch den Ende-zu-Ende” Charakter“ von TCP-Verbindungen ist die mobile Teilstrecke im Vergleich zur Gesamtstrecke kürzer. Dadurch kann auf auftretende Paketverluste beim Transport über die mobile Teilstrecke schneller reagiert werden. Zur Behandlung von Paketverlusten auf der Luftschnittstelle reichen die Quittierungsmechanismen (und die damit einhergehenden Paketwiederholungen) auf der mobilen Teilstrecke aus. Auf dem mobilen Link auftretende Fehler können sich somit nicht ins Festnetz fortpflanzen, was ein Vorteil gegenüber unverändertem TCP darstellt. Die Anwendung von I-TCP setzt eine Unterstützung innerhalb des Betriebssystems des mobilen Endgerätes voraus. Bisher wurde I-TCP aber nicht für gängige Betriebssysteme implementiert. Zudem ist I-TCP zur Realisierung von vertikalen Handovern ungeeignet. Bei einem Verlust des Netzzugangspunktes werden weiterhin alle Transportschichtverbindungen getrennt. Daran ändert auch I-TCP nichts. Es liefert nur solange Vorteile gegenüber TCP, wie die Transportschichtverbindung an sich“ besteht. ” 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 20 2.3.3. Snooping TCP“ ” Snooping TCP“ separiert wie I-TCP die Übertragungsstrecke in zwei Teilstrecken, wo” bei als Zwischenstation(en) Agenten in topologischer Nähe der Luftschnittstelle platziert werden. Ein solcher Agent trennt die beiden Teilstrecken nicht so gründlich wie I-TCP. Stattdessen besteht weiterhin eine Ende-zu-Ende-Verbindung“ zwischen Client und Ser” ver, bei welcher der genannte Agent die ausgetauschten Quittierungsinformationen (von TCP) beobachtet. Im Normallfall erfolgt kein Eingriff, beim Ausbleiben einer Quittung kann ein Datenpaket aber bereits vom Agenten wiederholt werden. Voraussetzung hierfür ist, dass dieser die an das mobile Endgerät gerichteten Daten in einem Puffer zwischenspeichert. Dabei werden keine Änderungen am mobilen Endgerät notwendig. Der Agent vereint sämtliche durch Snooping TCP“ eingeführten Änderungen. Das funktio” niert aber nur, solange man sich auf Datenströme aus dem Netz an das mobile Endgerät beschränkt. Das ist nicht praxisnah. Zur Abhilfe müsste ein Mechanismus zur Erzeugung negativer Bestätigungen im Betriebssystem des mobilen Endgerätes implementiert werden. Neben dem Problem der bislang fehlenden Implementierung innerhalb verbreiteter Betriebssysteme besteht auch bei Snooping TCP“ keine Möglichkeit zur Hinterlegung von ” Handover-Mechanismen. Irgendwo muss ein Handover-Manager platziert werden können, welcher beispielsweise die Wahl des optimalen Netzes übernimmt. Diese Forderung ist nicht mit den Mechanismen von Snooping TCP“ vereinbar. ” 2.4. Das Protokoll SOCKSv5 Im Folgenden wird das Protokoll SOCKS in der Version 5 (SOCKSv5 [Netw96a]) vorgestellt. Es handelt sich um ein universelles Proxyprotokoll für TCP- und UDP-basierte Protokolle. Das SOCKSv5-Protokoll ist ein von der IETF (Internet Engineering Task Force) verabschiedeter Standard. In Kapitel 3 wird ein auf SOCKSv5 basierender handoverfähiger Mechanismus entwickelt. 2.4.1. Einsatzgebiet Der Mechanismus umfasst zwei verschiedene Komponenten. Es kommen ein zentraler SOCKSv5-Proxyserver und mehrere SOCKSv5-Clients zum Einsatz. Der SOCKSv5-Client ist im ISO/OSI-Schichtenmodell (International Organization for Standardization / Open Systems Interconnection) zwischen der Transportschicht und der Anwendungsschicht angesiedelt. Der Proxyserver befindet sich vollständig in der Anwendungsschicht. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 21 Abbildung 2.1 verdeutlicht dies. Client Proxy Anwendung Server SOCKS Server Anwendung SOCKS Client Transport Bitübertragung Transport Bitübertragung Transport Bitübertragung Transport Bitübertragung Abbildung 2.1: SOCKSv5 im ISO/OSI Schichtenmodell (nach [Perm]) Die Funktionsweise von SOCKSv5 basiert auf der Verwendung einer alternativen Kommunikationsbibliothek in den Anwendungen. Statt der normalerweise eingesetzten Socket-Bibliothek wird eine SOCKSv5-Bibliothek benutzt. Sie weist die selbe Schnittstelle wie die Socket-Bibliothek auf und bietet den Programmen den selben Funktionsumfang an. Allerdings unterscheiden sich die Innenleben beider Bibliotheken. Während die Socket-Bibliothek eine direkte Verbindung zum Zielrechner aufbaut, erfolgt der Verbindungsaufbau bei SOCKSv5 indirekt über einen Stellvertreter (→ Proxyserver). Anstatt eine Verbindung aufzubauen, wird ein Befehl zum Aufbau einer Verbindung an einen Proxyserver gesendet. Als Vorteil bietet diese Struktur die Möglichkeit der Isolation eines privaten Subnetzes vor dem weltweiten Internet an. Dabei können Authentifizierungsmechanismen eingesetzt und nutzergebundene Regeln (beim Zugriff auf das Internet) formuliert und durchgesetzt werden. Eine alternative Bezeichnung für SOCKSv5 lautet Authentica” ted Firewall Traversal Protocol“ (AFT). Es werden verschiedene Authentifizierungsverfahren angeboten, beispielsweise die Anmeldung über Nutzername und Passwort (RFC 1929 [Netw96b]). Die vom SOCKSv5-Protokoll bereit gestellten Funktionen sind unter [Netw96a] nachlesbar. Der Lebenszyklus einer SOCKSv5-Verbindung durchläuft dabei mehrere Stadien. Sie werden zusätzlich in Abbildung 2.2 dargestellt. 1. Der SOCKSv5-Client baut eine TCP-Verbindung zum SOCKSv5-Proxyserver auf 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 22 2. Der SOCKSv5-Client und der SOCKSv5-Proxyserver handeln untereinander einen Authentifizierungsmechanismus aus 3. Der gewählte Authentifizierungsmechanismus wird durchlaufen 4. Der SOCKSv5-Client setzt ein SOCKSv5-Kommando ab 5. Der SOCKSv5-Proxyserver bearbeitet das Kommando 6. Der SOCKSv5-Proxyserver schaltet in einen transparenten Datenweiterleitungs” Modus“ ( Datenrelais“) ” 7. Die Verbindung wird getrennt Anwendung / Client SOCKSv5 Sende verfügbare Authentifizierungsmethoden Vergleiche Angebot mit gewählter Sicherheitsstufe Überprüfe Wunsch des Proxyservers Sende gewählte Authentifizierungsmethode Authentifizierung gemäß gewählter Methode Authentifizierung gemäß gewählter Methode Anwendung / Server SOCKSv4 Sende SOCKS−Kommando Bearbeite eintreffendes SOCKS−Kommando Aufbau der ausgehenden Verbindung (zum Server) Überprüfe Status der weitergeleiteten Verbindung Anwendungsspezifische Protokolle Verbindungsannahme Sende Status der ausgehenden Verbindung (zum Server) "Datenrelais" Weiterleitung Anwendungsspezifische Protokolle Abbildung 2.2: SOCKSv5-Protokollablauf (nach [Perm]) 2.4.2. Unterstützung in den Anwendungen Die Verwendung eines SOCKSv5-Proxyservers erfolgt aus den Anwendungen heraus. Sie sind dafür verantwortlich, dass ausgehende Verbindungen nicht direkt an die wirklichen 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 23 Bestimmungsorte adressiert sondern an einen SOCKSv5-Proxyserver gerichtet werden. Es gibt vier Arten von Anwendungen, welche sich hinsichlich ihrer Fähigkeit, mit einem SOCKSv5-Proxyserver sprechen zu können, unterscheiden: • Anwendungen mit eingebauter SOCKSv5-Unterstützung: Es gibt Anwendungen, welche bereits von Haus aus“ eine integrierte Unterstützung ” für das SOCKSv5-Protokoll mit sich bringen. Beispiele hierfür sind die Browser Firefox [Mozi] und Netscape Navigator [Nets]. Solche Anwendungen können ohne Probleme selbst erstellt werden, da die API (Application Programming Interface, Bedienschnittstelle“) der SOCKSv5-Bibliothek ” mit der herkömmlichen Socket-API identisch ist. Das Programm wird so erstellt, als würde es normale“ Socket-Routinen benutzen. Im anschließenden Link“-Prozess ” ” wird das Programm gegen die SOCKSv5-Bibliothek gelinkt (statt gegen die SocketBibliothek) und man erhält ein SOCKSv5-fähiges Programm. • Anwendungen mit Wahl der Kommunikationsbibliothek: Der KDE-Desktop [KDEa] bietet in seinem Kontrollzentrum“ die Möglichkeit ” an, in allen auf dem Desktop laufenden KDE-Programmen die Nutzung eines SOCKSv5-Proxyservers zu aktivieren. Es wird beispielsweise die Nutzung der SOCKSv5-Client-Bibliothek aus dem Dan” te“-Paket [Infe] erlaubt. Diese Bibliothek wird zentral konfiguriert. Zu der verwendeten Dante-Bibliothek ist die systemweit geltende Konfigurationsdatei unter /etc/socks/socks.conf zu finden. Ein Beispiel einer funktionsfähigen Konfigurationsdatei befindet sich in Anhang A. • Austausch der Kommunikationsbibliothek: Die API der SOCKSv5-Bibliothek ist identisch mit der der Socket-Bibliothek. Anwendungen werden heutzutage meist dynamisch gelinkt. Dabei lagert man häufig verwendete Funktionen in Bibliotheken aus, welche dann anderen Programmen zur Verfügung stehen. Bei der Übersetzung der Programme aus den Quelltexten werden statt der vollständigen Routinen nur die Funktionsaufrufe übernommen, welche während der späteren Ausführung die geforderte Funktionalität aus der Bibliothek anspringen“. ” Beim Programmstart werden die Funktionsaufrufe vom so genannten Linker“ ” gegen die in den Bibliotheken enthaltenen Routinen gelinkt. Dies passiert eben- 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 24 falls mit den Socket-Funktionsaufrufen der Anwendungen, welche hier gegen die SOCKSv5-Bibliothek gelinkt werden. An dieser Stelle greifen die Programme socksify (unter GNU/Linux) und SocksCap (unter Microsoft Windows) ein. Sie machen sich die identischen Schnittstellen der SOCKSv5-Bibliothek und der Socket-Bibliothek zu Nutze. Socksify arbeitet mit dem Linker“ zusammen. Es sorgt dafür, dass dieser die zu startende Anwen” dung nicht gegen die Socket-Bibliothek, sondern gegen die SOCKSv5-Bibliothek linkt. Das Programm selbst bemerkt keinen Unterschied. Es setzt während des Betriebes weiterhin seine Funktionsaufrufe ab und wertet die Rückgabewerte aus. Dass diese dabei von der SOCKSv5-Bibliothek und nicht von der Socket-Bibliothek kommen, bleibt dabei verborgen. • Nicht SOCKSv5-fähige Programme: Nicht alle existierenden Programme können mit den genannten Mechanismen zu SOCKSv5-fähigen Anwendungen gemacht werden. Wenn die Unterstützung nicht bereits Bestandteil des entsprechenden Programmes ist, bleibt nur der Austausch der Kommunikationsbibliothek. Das ist aber nicht immer möglich. Wenn ein Programm nur in einer statisch gelinkten“ Version vorliegt, also die Kommunikati” onsbibliotheken bereits vor Programmstart gegen das Programm gelinkt wurden, versagt der von socksify verwendete Mechanismus. Ebenfalls problematisch ist es, wenn das betreffende Programm integraler Bestandteil des Betriebssystems ist (wie der Internet Explorer unter Microsoft Windows). Dann wird dieses bereits zusammen mit dem Betriebssystem gestartet, sodass der Austauschmechanismus“ zu spät ansetzt und versagt. ” 2.4.3. Protokollfunktionen von SOCKSv5 Nachdem eine SOCKSv5-fähige Anwendung einen Socket zum SOCKSv5-Proxyserver aufgebaut hat und die Authentifizierung durchlaufen wurde, erwartet der Proxyserver vom Client einen Befehl. Die folgende Aufzählung listet alle von SOCKSv5 unterstützten Kommandos auf und erläutert deren Aufgaben. • CONNECT-Request: Das CONNECT-Kommando wird für ausgehende TCP-Datenkanäle (Sockets) verwendet. Innerhalb des Befehls wird die gewünschte Zieladresse spezifiziert. Sie besteht aus einer TCP-Portnummer und wahlweise einer numerischen IP-Adresse (4 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 25 Bytes) oder einem DNS-Domainnamen5 . Der SOCKSv5-Server versucht daraufhin den Rechner unter der gewählten Adresse zu erreichen und baut dazu eine ausgehende TCP-Verbindung auf. Bei Erfolg sendet der Proxyserver dem Client eine positive Bestätigung. Sie enthält die IP-Adresse und die Portnummer, auf der der Proxyserver die ausgehende Verbindung lokal gebunden“ hat. Der Proxyserver ” beginnt nun alle folgenden Daten transparent weiterzuleiten. Der Server fährt solange mit der Weiterleitung fort, bis einer der beiden Kommunikationspartner die Verbindung schließt. • BIND-Request: Mit Hilfe des BIND-Kommandos werden eingehende TCP-Verbindungen ermöglicht. Dabei baut ein Rechner aus dem weltweiten Internet eine TCP-Verbindung an den Client auf. Vorher muss der Client dazu eine Rückrufadresse am Proxyserver reservieren, was er mit Hilfe des BIND-Kommandos einleitet. Nachdem der Proxyserver den Verbindungsannahmepunkt eingerichtet hat, sendet er dem Client die Adresse dieses Annahmepunktes. Die besteht aus der weltweit gültigen IPAdresse des SOCKSv5-Proxyservers und einer Portnummer. Eine an dieser Adresse eintreffende Verbindung wird an den SOCKSv5-Client weitergeleitet. Der Client benötigt dazu keine global gültige IP-Adresse. Er befindet sich eventuell nur mit einer lokalen IP-Adresse in einem privaten Subnetz hinter“ dem ” SOCKSv5-Proxyserver. Der SOCKSv5-Proxyserver sendet während der Bearbeitung zwei Nachrichten an den Client. Eine erste Bestätigung enthält die reservierte Adresse des Verbindungsannahmepunktes. Die zweite Bestätigung wird erzeugt, sobald eine eingehende Verbindung angenommen wurde. Sie enthält die Adresse des rufenden Kommunikationspartners. Der Proxyserver schaltet anschließend in einen transparenten Datenweiterleitungsmodus“. ” Dieser Mechanismus ist nicht dazu geeignet, umfangreiche Server nach außen zu leiten. Durch den BIND-Mechanismus kann immer nur eine einzige TCP-Verbindung angenommen werden. Weitere BIND-Requests belegen auf dem Server abweichende Portnummern. Der Mechanismus eignet sich daher nur zum Aufbau einzelner Begleitverbindungen“, wie dies bei bestimmten Betriebsarten des File ” ” Transfer Protocol’s“ (FTP) benötigt wird (aus RFC 1928 [Netw96a]). 5 In diesem Falle wird die Namensauflösung vom SOCKSv5-Proxyserver übernommen. Am Client braucht hierbei kein DNS-Server bekannt zu sein. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 2 THEORETISCHE GRUNDLAGEN 26 • UDP-Association: Dieses Kommando aktiviert die Behandlung von UDP-Verbindungen. Dabei erstellt der SOCKSv5-Proxyserver einen so genannten UDP-Relay-Server, welcher UDP-Datenpakete vom Client annimmt und an einen Server weiterleitet (und umgekehrt). Der Client teilt dem Proxyserver über die aufgebaute TCP-Verbindung die Adresse seines lokalen UDP-Annahmepunktes mit (bestehend aus IP-Adresse und UDP-Portnummer) und wartet auf die Antwort des SOCKSv5-Proxyservers. Dieser erzeugt den UDP-Relay-Server und teilt dem Client die dafür reservierte UDP-Portnummer zur Annahme von UDP-Paketen mit. Nun können der Client und der Proxyserver UDP-Pakete austauschen. Jedes dieser Pakete enthält einen Header, welcher die Zieladresse ausgehender bzw. die Absenderadresse eingehender UDP-Pakete nennt. Der UDP-Relay-Server bleibt bis zum Abriss der TCP-Verbindung bestehen. Der Client hält sie solange offen, wie er auf eintreffende UDP-Pakete warten will. Damit deckt das SOCKSv5-Protokoll fast alle gewünschten Anwendungsgebiete ab. Es werden ein- und ausgehende TCP-Verbindungen behandelt. Der UDP-Datenaustausch ist möglich und erlaubt beispielsweise die Namensauflösung über UDP. Diese wird aber nicht benötigt, da auch der SOCKSv5-Proxyserver die Aufgabe der Namensauflösung übernehmen kann. Nicht möglich ist das Herausschleusen“ eines Servers aus einem lo” kalen Subnetz in das weltweite Internet. Dabei wird das BIND-Kommando überfordert, welches immer nur eine einzige TCP-Verbindung annehmen und zum Server leiten kann. Ebenso fehlt eine Unterstützung zum IP-Hilfsprotokoll Internet Control Message Pro” tocol“ (ICMP). 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 27 3. Handoverfähige Strukturen In Abschnitt 2.3 wurden bereits die von anderen Autoren vorgeschlagenen Erweiterungen zur Mobilitätsunterstützung vorgestellt und ihre Eignung zur Realisierung eines vertikalen Handovers diskutiert. Einige der vorgestellten Verfahren weisen Schwächen auf, die die Eignung des jeweiligen Protokolls für Handoverzwecke in Frage stellen. Lediglich ein auf der Kombination von Mobile IP“ und IPv6“ basierender Vorschlag konnte bereits ” ” in Form eines funktionierenden Prototyps umgesetzt werden. Aus den jeweils gefundenen Problemen lassen sich Forderungen formulieren, welche ein noch zu suchender Handover-Mechanismus erfüllen sollte: • Es werden keine Änderungen an den Betriebssystemen erwünscht. Dies betrifft auf jeden Fall die mobilen Endgeräte und die breite Basis der im Internet erreichbaren Server aber auch eventuell zum Einsatz kommende Proxyserver und Agenten. • Der Mechanismus soll portabel sein. Zumindest die Plattformen Microsoft Windows und GNU/Linux sollen unterstützt werden. • Es dürfen Proxyserver verwendet werden. Ob Agenten verwendet werden können, hängt davon ab, ob ihre Installation in der Praxis realisierbar erscheint. • Mindestens die Netzzugangstechnologien Ethernet“, WLAN“ und GPRS“ sollen ” ” ” unterstützt werden. • Verbindungsabrisse dürfen weder die auf dem mobilen Endgerät laufenden Anwendungen beeinflussen noch sich ins Festnetz fortpflanzen. • Mehrere Netzzugangstechnologien sollten parallel benutzbar sein. Anwendungsfälle hierfür sind Kanalbündelungen und weiche Handover“. ” • Manche auf TCP aufsetzende Protokolle betten die IP-Adresse des Systems mit in die Verbindungslogik ein. Das File Transfer Protocol“ (FTP) ist ein Beispiel ” hierfür. Da FTP bei den Anwendern einen hohen Stellenwert genießt, sollte der zu suchende Handover-Mechanismus mit diesem Problem zurecht kommen (→ Herausforderung: Das mobile Endgerät muss seine IP-Adresse während des Bestehens einer FTP-Sitzung ändern dürfen). • Die Erstellung eines Prototyps soll möglich sein. Er soll bei erfolgreicher Suche ebenfalls im Rahmen dieser Diplomarbeit erstellt und getestet werden. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 28 3.1. Suche nach handoverfähigen Strukturen Bevor an die Implementierung eines Prototyps (→ Softwareentwicklung) gedacht werden kann, muss geklärt werden, welche Probleme zur Realisierung eines Handovers gelöst werden müssen. Dieses Problemfeld soll in den folgenden Abschnitten genauer beleuchtet werden. 3.1.1. Anforderungen an einen Handovermechanismus • Verbergen der Mobilität: Für die Kommunikationspartner im Festnetz darf die Mobilität des Endgerätes nicht bemerkbar sein. Mobilitätsspezifische Ereignisse wie der Wechsel von IPAdressen dürfen keine Auswirkungen auf das Festnetz haben. Mobile IP“ löst ” dieses Problem durch den Einsatz so genannter Agenten, I-TCP“ durch die Ver” wendung eines Proxyservers. Beide Ansätze verwenden einen festen“ Stellvertreter, welcher es den Rechnern ” im Internet ermöglicht zu einer konstant bleibenden Adresse zu senden. Dieser Stellvertreter verfolgt dabei den wahren Zugangspunkt des mobilen Endgerätes ( Care-of Address“). An das Endgerät gerichtete Datenpakete werden von ihm an ” den jeweils aktuellen Aufenthaltsort gesendet. • Abfangen von Datenströmen: Die Datenströme aller auf dem mobilen Endgerät laufenden Anwendungen müssen an einem Punkt gesammelt und über einen mobilitätsfreundlichen“ Mechanismus ” übertragen werden. Die Anwendungen verwenden wie die Server des Internets die Standardprotokolle TCP/IP und UDP/IP. Diese Protokolle eignen sich aber nicht für einen Einsatz im mobilen Umfeld. Es muss ein System entwickelt werden, welches diese Standardprotokolle vor der mobilen Teilstrecke abfängt. Die Datenströme müssen über einen Hilfsmechanismus, welcher an die Gegebenheiten mobiler Links anpasst ist, an den Proxyserver versendet werden. Dieser schließt die mobile Teilstrecke ab und leitet die Nutzdatenströme über Standardprotokolle an die urspünglichen Empfänger (→ die Server) weiter. Bei Mobile IP“ wird diese Aufgabe von den auf den Gateways laufenden Agenten ” übernommen. Alle Datenströme passieren das Gateway. Besucher“ im lokalen Netz ” werden durch ihre IP-Adresse als solche erkannt und vom Gateway entsprechend den Mechanismen von Mobile IP“ behandelt. ” 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 29 Bei GPRS können keine Agenten eingesetzt werden. Da man bei GPRS keinen Zugriff auf die Infrastruktur des Providers erhält [CVSP+ 04], muss die Konzentration der Datenströme bereits auf dem mobilen Endgeräten erfolgen. Es gibt verschiedene Punkte an denen die Datenströme der Anwendungen abgefangen werden können. Im Folgenden werden die verschiedenen Möglichkeiten genauer analysiert. – Innerhalb der Nutzeranwendungen: Die zu übertragenden Datenströme stammen aus den Anwendungen des Benutzers (beispielsweise Browser oder EMail-Programme). Sie erzeugen Datenströme, die direkt an die Zielrechner adressiert werden. Man könnte einen Mechanismus suchen, der die Zieladressen aller Datenströme auf eine zentrale Sammelstelle lenkt, um die Daten dort in einen handoverfähigen Mechanismus zu verpacken. Dieser Mechanismus müsste bereits innerhalb der Anwendungen greifen. Es ist aber so, dass verschiedene Nutzer unterschiedliche Anwendungen einsetzen. Eine Anpassung würde einen Eingriff in eine große Anzahl von Programmen erfordern, was auf Grund des hohen Aufwandes nicht realisierbar ist. Zudem sind nicht alle eingesetzten Programme im Quellcode verfügbar. Fazit: Eine Änderung innerhalb der Anwendungen mit dem Ziel einen Handover zu ermöglichen wird daher nicht weiter verfolgt. – Im Betriebssystem: Alle Datenströme laufen durch das Betriebssystem, unter dem die Anwendung gestartet wurde. Es wäre also denkbar, einen Datensammelpunkt innerhalb des Betriebssystems zu suchen und dort die zum Handover notwendigen Funktionen zu hinterlegen. Dieser Ansatz scheitert aber wiederum an der großen Vielfalt heutzutage eingesetzter Betriebssysteme. Ein praxistauglicher Mechanismus sollte sich universell auf verschiedenen Plattformen einsetzen lassen, ohne dass innerhalb der Betriebssysteme Änderungen vorgenommen werden müssen. Bei Betriebssystemen aus dem Hause Microsoft ist dieser Ansatz bereits ausgeschlossen, da man als Entwickler keinen Zugriff auf die Quelltexte erhält. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 30 Fazit: Als Zielplattform soll Microsoft Windows unterstützt werden. Daher kommt ein Handoveransatz innerhalb des Betriebssystems nicht in Frage. – In einem Treiber: Alle Netzzugangspunkte erfordern eine Nutzungshardware (in Form externer Baugruppen wie Modems oder als interne Steckkarten) und einen entsprechenden Treiber zur Einbindung der Hardware in das Betriebssystem. Bei den Treibern handelt es sich um eine Software, welche meistens von den Hardwareherstellern mitgeliefert wird. Sie nehmen die in den Anwendungen erzeugten Datenströme entgegen und wandeln sie in ein von der vorliegenden Hardware benötigtes Format um. Es lässt sich erkennen, dass alle nach außen gerichteten Datenkanäle über einen dieser Treiber laufen. Ein speziell auf vertikale Handover angepasster Treiber hätte Zugriff auf alle betroffenen Datenströme. Er könnte ein angepasstes Übertragungsverfahren anwenden, um die abgefangenen Datenströme an den Stellvertreter (Proxy) zu übermitteln. Dieser Ansatz ist realisierbar, hat aber den Nachteil, dass die zu erstellenden Treiber für jedes Betriebssytem neu geschrieben werden müssen. Es muss für alle zu unterstützenden Betriebssysteme ein passender Treiber entwickelt werden. Mit jeder neuen Systemversion besteht die Gefahr, dass sich interne Schnittstellen ändern und eine Anpassung notwendig wird. Die Programmierung von Treibern erfolgt systemnah und erfordert ein detailliertes Wissen über die Interna der Zielplattform. Wird ein solcher Handover-Mechanismus innerhalb eines Treibers bereit gestellt, bleibt das Problem der Datenübertragung an sich“. Für eine Über” tragung über WLAN wird ein WLAN-Treiber benötigt, für die Übertragung über GPRS ein Modemtreiber. Stattdessen werden die Datenströme an den selbst entwickelten Handover-Treiber“ übergeben. Nach der Vorverarbeitung ” müssen die Daten über die vom Handover-Entscheider ausgewählte Netzanbindung verschickt werden. Dazu muss es möglich sein, aus einem Treiber heraus – dem Handover-Treiber – einen Hardware-Treiber aufzurufen. Es war nicht bekannt, ob ein Treiber aus sich heraus wiederum einen anderen Treiber nutzen darf. Diese Aussage bezieht sich auf die zu unterstützenden Zielplattformen Microsoft Windows und GNU/Linux. Sicher ist jedoch, dass ein solcher Mechanismus ein hohes Maß an Komplexität aufweist und von Betriebssystem zu Betriebssystem abweichen wird. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 31 Fazit: Diese Idee wurde im Rahmen dieser Diplomarbeit nicht weiter verfolgt. In [CVSP+ 04] wird ein solcher Mechanismus für GNU/Linux erfolgreich angewendet. Die angestrebte Lösung sollte aber vor allem portabel sein und sich unter Microsoft Windows einsetzen lassen. – Im Paketfilter: Der Linuxkernel bringt in den aktuellen Versionen einen leistungsfähigen Paketfilter mit sich (ab Version 2.4 iptables). Solch ein Paketfilter wird häufig zur Implementierung so genannter Firewalls verwendet. Anfangs wurde hier eine Lösung des Handoverproblems vermutet. Alle Datenströme passieren den Paketfilter und können über dort hinterlegte Regelsätze beeinflusst werden. Dabei wurde speziell an das Ändern der Zieladresse von ausgehenden Datenpaketen, um die Daten in einem lokalen Handover-Manager zu kanalisieren, gedacht. Wie sich herausstellte, geht dabei die ursprüngliche Zieladresse verloren. Die Daten können nicht mehr an ihren Bestimmungsort weiter geleitet werden. Fazit: Paketfilterregeln eignen sich nicht zur Entwicklung von HandoverMechanismen. – In einem Proxyserver: In fast jedem aktuellen Browser lässt sich die Verwendung eines Proxyservers aktivieren. Ein solcher Proxyserver ist in der Regel Bestandteil des lokalen Netzwerkes. Er hat die Aufgabe, die von den Anwendern abgerufenen Objekte zwischenzuspeichern und bei wiederholter Anfrage die lokale Kopie aus dem Zwischenspeicher zu liefern. Dadurch wird die hinter“ dem Proxy an” gesiedelte Internetanbindung entlastet, da wiederholt angeforderte Objekte nicht mehrmals übertragen werden müssen. Eine solche Proxysoftware weist die geforderte Eigenschaft auf, Datenströme zu konzentrieren. Intern kann ein eigener Mechanismus zur Datenübertragung über abreißende Verbindungen implementiert werden. Ein Proxyserver ist eine Software, welche wie eine Anwendung auf einem Rechner installiert und gestartet wird. Jedoch erhält man für das mobile Endgerät keine Vorteile, wenn die Proxysoftware auf einem Rechner hinter der Luftschnittstelle im Festnetz platziert wird. Bei einem Verbindungsabriss sterben alle offenen Datenverbindungen zwischen mobilem Endgerät und Proxyserver. Allerdings isoliert dieser Ansatz 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 32 bereits die mobile Teilstrecke vom Festnetz. Der Proxy agiert als Stellvertreter des mobilen Endgerätes. Er baut seinerseits eine eigenständige Verbindung zu den Servern im Internet auf. Die Server sehen nicht mehr das mobile Endgerät, sondern lediglich den Proxyserver. Es sieht für die Server so aus, als würden die Anfragen vom Proxyserver stammen. Die mobile Strecke wird vor den Servern des Festnetzes isoliert. Es gibt aber Probleme mit den auf dem mobilen Endgerät laufenden Anwendungen. Aus ihrer Sicht wäre es ideal, wenn der Proxyserver lokal auf dem mobilen Endgerät installiert wäre. Die Verbindungen können dann aus Sicht der Anwendungen nicht mehr abreißen, da der Kommunikationspartner lokal läuft und immer erreichbar ist. Dann gibt es aber aus Sicht des Festnetzes keine Isolation mehr. Die Proxysoftware wechselt zusammen mit dem mobilen Endgerät ihre IP-Adresse, und alle an das Festnetz gerichteten Datenströme reißen hinter der Proxysoftware ab. Fazit: Die alleinige Nutzung einer mobilen oder einer festen Proxysoftware ermöglicht keine ausreichende Trennung der mobilen Teilstrecke sowohl vor den Anwendungen als auch vor den Servern des Internets. Ansonsten handelt es sich um einen vielversprechenden Ansatz. 3.1.2. Proxybasierte Lösung Das Ziel bestand darin, die proxybasierte Lösung weiter zu verfolgen und die im letzten Abschnitt angesprochene Isolation der mobilen Teilstrecke zu erreichen. Ein lokal laufender Proxyserver isoliert die mobile Teilstrecke vor den Anwendungen, ein fester Proxyserver dagegen verbirgt die Mobilität vor den Kommunikationspartnern im Internet. Um beides gleichzeitig zu erreichen, wird der Proxyserver in zwei Komponenten geteilt. Die mobile Komponente“ läuft auf dem mobilen Endgerät und übernimmt die ” Kopplung an die lokal laufenden Anwendungen. Die feste Komponente“ wird auf einem ” ortsfest im Netzwerk platzierten Rechner installiert und übernimmt die Aufgabe der Kopplung an das Festnetz. Zwischen beiden Komponenten wird ein auf die mobile Teilstrecke angepasster Kommunikationsmechanismus eingesetzt. Er muss Aspekte wie den Abriss von Einwählverbindung und den damit verbundenen Adresswechsel berücksichtigen, aber auch alle anderen Probleme aus dem Themengebiet des vertikalen Handovers lösen. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 33 SOCKSv5 als Proxyprotokoll: Die letzte hier noch nicht angesprochene Problematik befasst sich mit der Wahl des Proxyprotokolls. Der genannte HTTP-Proxyserver ist in der Lage einen Webbrowser zu bedienen, versagt jedoch bei vielen anderen Anwendungen wie EMail- oder Chatprogrammen. Für deren Protokolle gibt es keine speziellen Proxyserver, sodass eine andere Gemeinsamkeit gesucht werden musste. Es wurde sich für die Nutzung des Proxyprotokolls SOCKSv5 (RFC 1928, [Netw96a]) entschieden. Mit SOCKSv5 können beliebige TCP- bzw. UDP-basierte Protokolle über einen Proxy – einen SOCKS-Proxy“ – geleitet werden. Mehr Informationen zu SOCKSv5 wurden ” bereits in Abschnitt 2.4 geliefert. Im Folgenden wird die Praxistauglichkeit der SOCKSv5-basierten Proxylösung betrachtet. Dazu wird immer eine Rahmenbedingung genannt und gezeigt, dass die betreffende Anforderung erfüllt wird. • Nutzung von Standardsoftware: Die Nutzer können ihre gewohnte Standardsoftware weiter benutzen, da keine Änderungen innerhalb ihrer Programme notwendig sind. Manche Anwendungen sind bereits von Haus aus“ in der Lage mit einem SOCKSv5-Proxy zu arbeiten. Andere ” Programme können über Hilfsprogramme (so genannte Wrapper“) SOCKSv5-fähig ” gemacht werden. • Keine Eingriffe in das Betriebssystem: Da die Quelltexte zur Zielplattform Microsoft Windows nicht öffentlich zugänglich sind, darf kein Eingriff ins Betriebssystem notwendig sein. Das ist bei der Nutzung von SOCKSv5 nicht notwendig. Bei der Implementierung eines Proxyservers werden keine Kenntnisse über die Interna der Zielplattform benötigt. • Proxyserver oder Agent: Eine agentenbasierte Lösung schied wegen der Nutzung von GPRS aus. Die Alternative lag in der Nutzung eines Proxyservers im Festnetz, welcher die Rolle eines Stellvertreters mit fester IP-Adresse übernimmt. • Hilfsprogramme auf dem mobilen Endgerät: Der vorgeschlagene Mechanismus ist für das mobile Endgerät nicht transparent. Als Hilfsprogramm wird ein lokaler Proxyserver eingesetzt. Er übernimmt handoverspezifische Aufgaben wie die Sicherung von Datenströmen und die Wahl des optimalen Zugangsnetzes. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 34 • Nutzerinteraktion: Wie in Abschnitt 2.2.4 gezeigt wurde, gibt es bei der Wahl des optimalen Netzes gegenläufige Zielstellungen (beispielsweise die Minimierung von Übertragungskosten gegenüber der Maximierung des Datendurchsatzes). Das Problem kann durch Nutzerinteraktion gelöst werden. Da die Handover-Entscheidung in der lokal auf dem mobilen Endgerät laufenden Proxysoftware getroffen wird, können die benötigten Informationen durch direktes Befragen des Anwenders gewonnen werden. • Portabilität: In den Protokollschichten unterhalb von SOCKSv5 kommen die Standardprotokolle TCP/IP und UDP/IP zum Einsatz. Dadurch wird die Kompatiblität mit bestehenden Betriebssystemen, Treibern und Übertragungssystemem sichergestellt. Alle Netzzugangstechnologien, die einen IP-basierten Internetzugang bereit stellen, können in den vorgestellten Handovermechanismus eingebunden werden. Die selbst erstellten Programmkomponenten (mobile und feste Proxysoftware) arbeiten auf der Basis von TCP/IP-Sockets. Deren Nutzung ist unter Windows und Linux sehr ähnlich, sodass nur vereinzelte Anpassungen notwendig sind. Dadurch konnten die Programme so geschrieben werden, dass sie sowohl unter Linux als auch unter Windows übersetzt und genutzt werden können. • Isolation der mobilen Teilstrecke: Der mobile Proxyserver isoliert die Anwendungen vor den Eigenschaften der mobilen Teilstrecke. Durch den festen Proxyserver wird deren andere Seite abgeschlossen, sodass auch die Server des Festnetzes von den negativen Auswirkungen der Mobilität abgeschottet werden. Handoverereignisse werden weder von den Anwendungen noch von den Servern bemerkt. • Volle Kontrolle über die Protokolle der Luftschnittstelle: Auf der mobilen Teilstrecke kommt ein selbst entwickelter Kommunikationsmechanismus zum Einsatz. Er steht unter der vollen Kontrolle der beiden ProxyserverKomponenten. Dadurch können unerwünschte Auswirkungen der bestehenden Mobilitätsunterstützungen (siehe Abschnitt 2.3) bereits im Ansatz vermieden werden. Es kommt beispielsweise zu keiner ständigen Wiederholung bzw. Aussendung, wenn das mobile System kurzzeitig vom Festnetz isoliert ist. Zusätzlich ermöglicht die Teilung der Übertragungsstrecke in drei voneinander unabhängige Teilstrecken eine schnelle Reaktion auf auftretende Störungen (Paketverluste). Die jeweils im 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 35 Vergleich zur Gesamtübertragungsstrecke kürzere Teilstrecke weist eine kürzere Umlaufzeit auf und ermöglicht somit eine schnellere Reaktion auf auftretende Fehler. 3.1.3. Architektur Abbildung 3.1 zeigt eine Kombination von Client, Proxyserver und Server (→ Diensteer” bringer“). Sie kommt im Normalfall“ bei der Nutzung von SOCKSv5 zum Einsatz. Auf ” dem Proxyserver läuft die SOCKSv5-Proxysoftware, welche die Anfragen von SOCKSv5Clients entgegennimmt und in herkömmliche“ Anfragen umsetzt. Diese werden an die ” ursprünglichen Bestimmungsorte (die Server) übergeben. SOCKSv5− Serversoftware Server Anwendung (HTTP−Server) TCP/UDP Anwendung (Browser) SOCKSv5−Lib TCP/UDP SOCKSv5 Proxyserver TCP/UDP Client TCP/UDP Abbildung 3.1: SOCKSv5-Proxyserver in der Praxis Diese Struktur ist noch nicht in der Lage, die Datenströme zwischen Client und Server im Falle eines Handovers vor dessen Auswirkungen zu schützen. Zwar werden die Server des Festnetzes von der mobilen Teilstrecke (zwischen Client und Proxyserver) abgeschirmt, jedoch trifft dies nicht auf die auf dem mobilen Endgerät laufenden Anwendungen zu. In einer Handoversituation reißen alle Verbindungen zwischen den Anwendungen und der SOCKSv5-Serversoftware ab. Ein Lösungsvorschlag wird in den Abbildungen 3.2 und 3.3 gezeigt. Hierbei wird die Serversoftware in zwei Teile gegliedert, wobei der erste Teil auf dem mobilen Endgerät angesiedelt wird und für die Kopplung zu den SOCKSv5-fähigen Anwendungen sorgt. Der zweite Teil läuft weiterhin auf dem ortsfest installierten Proxyserver. Er enthält diejenigen Komponenten, welche mit den Servern im Festnetz kommunizieren. Zwischen Beiden kommt ein selbst entwickelter Übertragungsmechanismus zum Einsatz. Er ist in der Lage mit abreißenden Verbindungen zurecht zu kommen. Dies zeigt Abbildung 3.3. Der intelligente“ Kern der Serversoftware verbleibt dabei im ortsfest ” 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN Ortsfester Teil TCP/UDP SOCKSv5 TCP/UDP Mobiler Teil 36 Abbildung 3.2: Aufteilung der SOCKSv5-Serversoftware in einen mobilen und einen ortsfest installierten Teil installierten Teil, wodurch die auf den mobilen Endgeräten installierten Komponenten schlank“ bleiben können. ” Mobiles Endgerät 11 00 00 11 00 11 00 11 00 11 00 11 00 11 TCP/UDP SOCKSv5− Serversoftware 11 00 00 11 00 11 00 11 00 11 00 11 00 11 00 11 TCP/UDP SOCKSv5 SOCKSv5− Serversoftware 00 11 TCP/UDP Server Anwendung (HTTP−Server) Luftschnittstelle Anwendung (Browser) SOCKSv5−Lib TCP/UDP Proxyserver Abbildung 3.3: Zwischen mobiler und ortsfest installierter Serverhälfte wird ein handoverfreundlicher Übertragungsmechanismus angesiedelt. Ursprünglich sollte dieser Ansatz verwirklicht werden. Es erwies sich jedoch als aufwendig die verfügbaren Quelltexte des SOCKSv5-Servers in zwei Teile zu gruppieren und anschließend den genannten Übertragungsmechanismus zu integrieren. Die Quelltexte sind viel zu umfangreich und von der Struktur her nicht für eine solche Trennung geeignet. Zusätzlich gibt es Probleme, wenn zu einem späteren Zeitpunkt eine neue Version der ursprünglichen Serversoftware veröffentlicht wird (welche vielleicht kritische Sicherheitslöcher schließt). Die Quellen müssten abermals manuell getrennt und die eigenen Routinen erneut eingepflegt werden. Daher wurde nach einer Alternative gesucht, welche keine Änderungen an der komplexen Serversoftware erfordert. In Abbildung 3.4 werden hierfür zwei weitere Komponenten eingeführt: Ein so genannter Handover-Client und ein Handover-Server. Zwischen Handover-Client und Handover-Server liegt die von Verbindungsabrissen bedrohte Luftschnittstelle. Ihre Eigenschaften und Probleme werden von einem selbst 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN Mobiles Endgerät 37 Proxyserver Server Anwendung (HTTP−Server) TCP/UDP SOCKSv5− Serversoftware SOCKSv5 Handover− Server 11 00 00 11 00 11 00 11 00 11 00 11 00 11 00 11 TCP/UDP 11 00 00 11 00 11 00 11 00 11 00 11 00 11 00 11 TCP/UDP SOCKSv5 TCP/UDP Handover− Client TCP/UDP SOCKSv5 SOCKSv5−Lib TCP/UDP Luftschnittstelle Anwendung (Browser) Abbildung 3.4: Statt die SOCKSv5-Serversoftware in zwei Teile zu trennen kommen ein zusätzlicher Handoverclient und -server zum Einsatz. entwickelten Datenübertragungsmechanismus behandelt. Dadurch wird die mobile Teilstrecke auf beiden Seiten isoliert. Der Handover-Client gibt sich gegenüber den auf dem mobilen Endgerät laufenden Anwendungen als SOCKSv5-Server aus und nimmt deren Datenströme entgegen. Nachdem die Datenströme über Sicherungsmechanismen vor den Auswirkungen der mobilen Teilstrecke geschützt wurden, überträgt der Handover-Client die gesicherten Daten an den Handover-Server. Dieser packt“ die Datenströme wieder aus und leitet die einzelnen ” SOCKSv5-Verbindungen an den lokal laufenden unveränderten SOCKSv5-Server. Dieser verhält sich wie bereits in Abbildung 3.1 gezeigt. 3.2. Handover zwischen Ethernet, WLAN und GPRS Nachdem im letzten Abschnitt eine handoverfähige Struktur hergeleitet wurde, soll diese nun mit Blick auf die praxisrelevanten Netzzugangstechnologien Ethernet, WLAN und GPRS konkretisiert werden. Dies geschieht mit einem besonderen Blick auf die jeweiligen Eigenschaften der einzelnen Technologien. Welche Statusinformationen werden jeweils geliefert? Welche der bereits vorgestellten Nutzungsarten machen in der Praxis Sinn und sollten berücksichtigt werden? Diese und weitere Fragen sollen im Folgenden diskutiert werden. 3.2.1. Zur Handoverentscheidung nutzbare Statusinformationen Der Handover-Entscheider benötigt zur Entscheidungsfindung Informationen über die aktuell vorliegenden Zustände der einzelnen Netzzugänge. Die jeweils gelieferten Statusinformationen unterscheiden sich voneinander, und nicht jede Netzzugangstechnologie liefert alle Parameter (vgl. Kapitel 2.2.5). 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 38 • Ethernet: Eine Ethernetschnittstelle liefert nur eine einzige zur Handoverentscheidung verwertbare Information. Wenn das Ethernetkabel angeschlossen ist und eine Verbindung zum Netzwerk besteht, bedeutet dies: Ethernet ist verfügbar, der Netzzu” gang kann benutzt werden.“ Wird das Kabel entfernt, muss ein Abriss gemeldet werden. Es gibt dabei keine Rückmeldungen, welche auf einen drohenden Verbindungsabriss schließen lassen (wie beispielsweise der Feldstärkeverlauf bei drahtlosen Zugangsnetzen). Ethernet bietet eine vergleichsweise hohe Datenrate (→ 100 Mbps) bei niedrigen Verzögerungszeiten. Zudem fallen im vorliegenden Fall keine Kosten an, da sich beide Kommunikationspartner in einem kostenlos notzbaren lokalen Netzwerk befinden. • WLAN: WLAN ist von der Art der Nutzung her mit der einer Ethernet-Schnittstelle vergleichbar. Die Schnittstelle wird in den so genannten Infrastruktur-Modus“ ge” schaltet und meldet daraufhin ein Netz verfügbar und verbunden“ oder andernfalls ” keine Verbindung möglich“. Zusätzlich liefert WLAN als drahtlose Netzzugangs” technologie Informationen über die aktuell vorliegende Verbindungsqualität. Mit ihrer Hilfe können drohende Verbindungsabrisse bereits vor ihrem Eintritt erkannt und Maßnahmen getroffen werden. Die über WLAN (IEEE 802.11b) erreichbare Datenrate liegt mit theoretischen 11 Mbps unter der von Ethernet. Die Paketumlaufzeiten sind zudem länger. Im Testaufbau fielen hier ebenfalls keine Kosten an, da eine Funkverbindung zwischen zwei Stationen in unmittelbarer Nähe zum Einsatz kam. Beim praxisnäheren Szenario, in dem ein WLAN-Infrastrukturnetzwerk – bestehend aus mehrenen WLAN-Zugangspunkten – zum Einsatz kommt, ändert sich dies nicht. WLAN ist nicht flächendeckend verfügbar und bei Eigenbewegung des mobilen Endgerätes von Verbindungsabrissen bedroht. • GPRS: Die bei der Nutzung von GPRS verwertbaren Statusinformationen ähneln denen von WLAN. Es wird eine Einwahlverbindung benötigt, deren Aufbau entweder erfolgreich ist oder scheitert. Bei Netzverlust oder sonstigen Störeinflüssen kommt es zu einem Verbindungsabriss, welcher eine erneute Einwahl erforderlich macht. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 39 Damit lässt sich der Zustand einer GPRS-Einwahlverbindung auf eine Ja-Nein” Frage“ reduzieren: Entweder ist sie verfügbar oder nicht. Zusätzlich liefern manche GPRS-Modems Informationen über die aktuell vorliegende Netzqualität. Damit können ähnlich, wie bereits bei WLAN erläutert, Verbindungsabrisse vorhergesagt werden. GPRS bietet nur eine geringe Datenrate (171,2 kbps). Die Paketlaufzeiten sind hoch und schwanken zudem stark. Es ist mit Paketlaufzeiten von mehreren Sekunden zu rechnen. Zusätzlich ist GPRS die einzige Netzzugangstechnologie, welche im vorliegenden Testaufbau Kosten verursacht. GPRS wird über einen Mobilfunkprovider bereit gestellt, welcher dem Nutzer das übertragene Datenvolumen in Rechnung stellt. GPRS ist fast flächendeckend verfügbar und verursacht im Leer” lauf“ bei aufgebauter Verbindung keine Kosten. Je nach Tarif können aber vom Provider eine Einwahl- und eine Tagesnutzungsgebühr verlangt werden. In Kapitel 4.5 folgt eine detailliertere Beschreibung der im Prototyp ausgewerteten Statusinformationen. Dort wird auch die Frage beantwortet, wie und wo diese Daten gewonnen werden. 3.2.2. Praxistaugliche Handoverentscheidungen Der Handover-Entscheider auf dem mobilen Endgerät muss aus der Menge der verfügbaren Netzzugänge das optimale Netz ermitteln. Im letzten Abschnitt wurden die dazu verwertbaren Statusinformationen und Eigenschaften genannt. Es bleibt noch die Wahl einer Zielstellung, welche durch den Handoverentscheider verfolgt werden soll (vgl. Kapitel 2.2.4). Für den vorliegenden Fall bietet sich eine Strategie an, bei der immer der schnellste verfügbare Netzzugang verwendet werden soll. Dies entspricht der Nutzungspriorität Ethernet vor WLAN, WLAN vor GPRS.“ Kanalbündelungen werden nicht berücksich” tigt, da sie hier keinen Vorteil bringen. GPRS wird nur dann zur Datenübertragung genutzt, wenn weder Ethernet noch WLAN einen Netzzugang bieten. Da Ethernet und WLAN sehr plötzlich abreißen können, macht sich die lange Einwahldauer von GPRS (bis zu 36 Sekunden) negativ auf die Datenströme der Anwendungen bemerkbar. Da bei GPRS jedoch keine Zeitkosten, sondern wie im vorliegenden Tarif nur Volumenkosten anfallen, lohnt es sich die GPRSEinwahlverbindung schon im Vorfeld aufzubauen. Dadurch kann beim Handover auf 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 40 GPRS sofort mit der Datenübertragung begonnen werden, ohne dass erst eine zeitaufwendige Einwahlprozedur durchlaufen werden muss. 3.2.3. Netzstrukturen und Wegewahl Zwischen einem mobilen Endgerät und dem Proxyserver können mehrere parallele Verbindungen bestehen. Diese gehen über verschiedene Anbindungen ( Luftschnittstellen“ ” und kabelgebundene Medien wie Ethernet) und haben den Proxyserver zum Ziel. Dabei stellt sich die Frage, wie beim Aufbau einer solchen Verbindung ein bestimmter Weg über eine bestimmte Anbindung gewählt werden kann. Vereinfacht stellt sich die Situation wie in Abbildung 3.5 dar. Ein Sender (Abbildung 3.5 links) baut eine Verbindung zu einem Empfänger (Abbildung 3.5 rechts) auf. Er wählt als Ziel die Adresse des Empfängers und schickt seine Datenpakete auf die Reise. Es lässt sich erkennen, dass hierbei kein spezieller Weg ( Route“) gewählt werden kann. Es ist nicht eindeutig bestimmt, welchen ” Weg die Pakete nehmen werden. Zugriff über WLAN ? Zugriff über GPRS Mobiles Endgerät Proxyserver Abbildung 3.5: Ein Proxyserver soll über verschiedene Wege gleichzeitig erreicht werden. Die Wegewahl ist nicht eindeutig, wenn der Zielrechner nur über eine einzige IP-Adresse verfügt. Es wird aber eine strikte Bindung einer jeden ausgehenden Verbindung an einen festgelegten Weg gewünscht. Ansonsten würden sich alle ausgehenden Datenkanäle ein und denselben Weg (→ Link) teilen und Anwendungsfälle wie Kanalbündelung wären nicht möglich. Das Problem wird dadurch gelöst, dass man dem Empfänger verschiedene Adressen zuteilt. Im Betriebssystem des Senders steuert eine so genannte Routingtabelle die Wegewahl. Da der Zielrechner über mehrere Adressen verfügt, kann jeweils eine dieser Adressen einem bestimmten Netzzugang zugewiesen werden. Schickt der Sender ein Datenpaket an die erste Adresse, gehen die Pakete über die zugehörige Schnittstelle. Wählt er eine Alternativadresse, gehen die Pakete einen anderen Weg. Die Zuweisung von Adressen zu bestimmten Wegen erfolgt über zwei Mechanismen. Eine Art der Wegewahl erfolgt über die Nutzung von Subnetzen und Subnetzmasken, 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 41 die andere Art verwendet ein so genanntes Standardgateway. Wenn ein Rechner ein Paket verschicken will, vergleicht er die Zieladresse mit den Netzmasken der verfügbaren Schnittstellen. Wenn eine zutrifft, ist die Suche abgeschlossen und das Paket wird über die zugehörige Schnittstelle versendet. Schlagen alle Vergleiche fehl, wird das Paket dem Standardgateway übergeben. Dies ist ein weiterer Rechner, welcher über eine der vorhandenen Schnittstellen erreicht werden kann. Das mobile Endgerät kennt ein Standardgateway, welches es dann zur Wegewahl benutzt, wenn die lokale Wegewahl über Subnetzmasken fehlgeschlagen ist. Ein Standardgateway kann nur zu einer einzigen Netzwerkschnittstelle zugewiesen werden. GPRS und Standardgateway: Bei der Einwahl über GPRS bekommt der sich einwählende Rechner alle für ihn notwendigen Verbindungsdaten vom Netzprovider zugewiesen. Dazu gehören unter anderem seine IP-Adresse und die IP-Adresse eines Standardgateways. Diese Adressen werden automatisch in die Routingtabelle übernommen. Zur Nutzung von GPRS muss zwangsweise das Standardgateway des GPRS-Netzes verwendet werden. Daraus folgt, dass der Wegewahlmechanismus Standardgateway“ für GPRS be” nötigt wird und nicht mehr für andere Netzzugänge zur Verfügung steht. Alle weiteren Anbindungen müssen über Subnetzmasken verwaltet werden. Dieser Mechanismus wird in Abbildung 3.6, wo gemeinsam GPRS und WLAN zum Einsatz kommen, gezeigt. Die Datenpakete, die über GPRS verschickt werden sollen, passieren das zugewiesene Standardgateway. Zusätzlich ist der Proxyserver über eine zweite IP-Adresse erreichbar. Sie ist Bestandteil des WLAN-Subnetzes und wird mit Hilfe der Subnetzmaske zu diesem zugeordnet (→ aus Sicht des mobilen Endgerätes). Lokales WLAN−Subnetz Zugriff über WLAN Zugriff über GPRS Mobiles Endgerät Proxyserver Standardgateway GPRS−Infrastruktur Weltweites Internet Abbildung 3.6: Lösung des Wegewahlproblems durch Verwendung mehrerer IP-Adressen am Proxyserver. Die Wegewahl erfolgt mit Hilfe einer Subnetzmaske und eines Standardgateways. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 42 Mehrere Subnetze: Dieser Mechanismus erfordert, dass der Proxyserver gleichzeitig Bestandteil aller Subnetze ist und jeweils eine IP-Adresse aus dem Adressbereich des entsprechenden Subnetzes besitzt. Eine solche Struktur zeigt Abbildung 3.7. Der Proxyserver kann über zwei unterschiedliche Adressen, welche jeweils Bestandteil eines eigenen Subnetzes sind, erreicht werden. Dadurch ist eine eindeutige Wegewahl möglich. Ein Standardgateway kommt hierbei nicht zum Einsatz. Es muss für die exklusive Nutzung von GPRS – welche in der Abbildung nicht berücksichtigt wird – reserviert bleiben. AP Lokales WLAN−Subnetz AP Zugriff über WLAN Mobiles Endgerät Horizontaler Handover AP Zugriff über WLAN AP Lokales WLAN−Subnetz Proxyserver Abbildung 3.7: Wechsel eines WLAN-Netzes. Der Proxyserver muss hierbei Bestandteil aller Subnetze sein, damit er von den mobilen Endgeräten erreicht werden kann. (AP=WLAN-Access-Point) Die Struktur aus Abbildung 3.7 weist eine Schwäche auf, die ihren Einsatz in der Praxis erschwert. Die gezeigten WLAN-Netze können räumlich weit auseinander liegen. Beispielsweise könnte ein Nutzer Zugänge zu den WLAN-Campusnetzen zweier Universitäten besitzen. Der Proxyserver, welcher von beiden Netzen aus erreichbar sein soll, kann nicht Bestandteil beider Netze sein, da diese räumlich zu weit voneinander getrennt sind. Ein anderes Problem ist die große Anzahl verschiedener WLAN-Netze, zu welchen der Proxyserver jeweils gehören müsste. Daraus folgt, dass der Proxyserver in der Praxis nicht Bestandteil eines jeden WLAN-Subnetzes sein kann. Da wegen der gleichzeitigen Nutzung von GPRS zur Lösung des Problems kein Standardgateway verwendet werden kann, muss der Mechanismus erweitert werden. Zusammengefasst: Die Nutzung eines Standardgateways ist nicht möglich, es bleibt die Wegewahl über Subnetzmasken. Dabei können nur Zieladressen aus dem Adressbereich der zugehörigen Subnetzmaske erreicht werden. Ein solcher Rechner ist Bestandteil des betreffenden Subnetzes. Der Proxyserver kann aber nicht Bestandteil aller Subnetze sein, da deren Anzahl zu groß wird und sie räumlich weit auseinander liegen. Dieses Problem wurde durch den Einsatz einzelner Relaisstationen, welche jeweils 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 43 Bestandteile der vielen Subnetze sind und somit vom mobilen Endgerät erreicht werden können, gelöst. Diese Rechner nehmen lediglich Datenströme entgegen und leiten sie an den Proxyserver weiter. Dabei wird für den Proxyserver nur eine einzige weltweit gültige IP-Adresse benötigt. Sie ist die Zieladresse aller weiter geleiteten Verbindungen. Abbildung 3.8 verdeutlicht diesen Lösungsansatz. AP Lokales WLAN−Subnetz AP Relaisstation Mobiles Endgerät Horizontaler Handover Router AP Relaisstation AP Lokales WLAN−Subnetz Router Weltweites Internet Proxyserver Abbildung 3.8: Über Relaisstationen in den lokalen Subnetzen wird eine praxistaugliche Netzstruktur erreicht. Die einzelnen WLAN-Netze werden über ein Gateway mit dem weltweiten Internet verbunden. Für den Fall, dass innerhalb des Subnetzes lokale IP-Adressen verwendet werden, muss das Gateway an der Relaisstation als Standardgateway eingestellt werden. 3.2.4. Möglichkeiten zur Weiterleitung Der im vorherigen Abschnitt erwähnten Weiterleitung von TCP-Verbindungen begegnet man in der Praxis auch unter dem Namen TCP-Forwarding. Eine eingehende Verbindung wird von einem Stellvertreter ( Relaisstation“) entgegen genommen und ohne ” Auswertung des übertragenen Inhaltes an einen Diensterbringer weiter geleitet. Dieser Mechanismus ist von der Wirkung her mit einer geschalteten Rufumleitung im Telefonnetz vergleichbar. Der Anrufer“ wählt eine Telefonnummer (→ IP-Adresse), erreicht ” aber einen Anschluss mit einer abweichenden Rufnummer. Zieladressen werden bei TCP über die IP-Adresse des Zielrechners und eine Portnummer definiert. Beim TCP-Portforwarding können sowohl die Portnummer als auch die Zieladresse neu festgelegt werden. Im ersten Fall liegt das Ziel auf dem selben Rechner wie die Stellvertretersoftware, im zweiten Fall auf einem anderen Rechner mit abweichender IP-Adresse. Es gibt verschiedene Möglichkeiten, einen TCP-Forwarding-Mechanismus umzusetzen. Sie werden im folgenden Abschnitt vorgestellt. Zur Demonstration kommen ein Client 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 44 (Anrufer), ein Server (Gerufener) und der jeweils vorgestellte Mechanismus zur Verbindungsumleitung zum Einsatz. Als Server wird der Linux-Befehl netcat verwendet. Der in Abbildung 3.9 vorgestellte Befehl belegt Port 5000 und wartet auf eine eintreffende TCP-Verbindung. Bei erfolgreicher Verbindungsannahme wird eine Begrüßungsnachricht verschickt und die Verbindung getrennt florian@explorer3:~> echo "192.168.1.3, Port 5000" | netcat -p 5000 -l Abbildung 3.9: Einfacher TCP-Server mit Hilfe von netcat Der Server kann mit Hilfe des Befehls telnet erreicht werden. Er ist sowohl unter Linux als auch unter Microsoft Windows verfügbar. In Abbildung 3.10 wird eine direkte TCP-Verbindung zum netcat-Server aufgebaut. Die Begrüßungsmeldung wird angezeigt und die Verbindung getrennt. Dabei kam noch kein Weiterleitungmechanismus zum Einsatz. Es fand eine direkte Adressierung des Servers statt. florian@explorer3:~> telnet localhost 5000 Trying 127.0.0.1... Connected to localhost. Escape character is ’^]’. 192.168.1.3, Port 5000 Connection closed by foreign host. florian@explorer3:~> Abbildung 3.10: Erfolgreicher Aufbau einer Telnetsitzung • Weiterleitung über iptables: Der Linuxkernel [Linu] enthält ab Version 2.4 den integrierten Paketfilter iptables. Mit seiner Hilfe steht bereits direkt im Kernel ein Mechanismus zum TCPPortforwarding bereit. Er kann sowohl die Portnummer als auch die IP-Adresse des eintreffenden Datenstromes beeinflussen und somit die Weiterleitung ermöglichen. Abbildung 3.11 zeigt die Befehle, welche den Weiterleitungsmechanismus aktivieren. Auf dem Rechner eintreffende TCP-Verbindungen werden abgefangen, wenn sie an den TCP-Port 4000 gerichtet sind. Im Paketfilter werden die Zieladresse durch 192.168.1.2 und die Zielportnummer durch 5000 (→ PREROUTING ...DNAT, Destination Network Address Translation“) ersetzt. Die Pakete mit der nun auf ” 192.168.1.2 und Portnummer 5000 gesetzten Zieladresse dürfen den Paketfilter 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 45 passieren (→ FORWARD ...ACCEPT). Beim Verlassen des Paketfilters wird die Absenderadresse auf die IP-Adresse des lokalen Rechners (192.168.1.1) gesetzt (→ POSTROUTING ...SNAT, Source NAT“). Damit kann der Empfänger des weiter ge” leiteten Datenstromes nicht mehr erkennen, dass der Absender in Wirklichkeit nicht die Relaisstation war. Der Paketfilter pflegt intern eine Adressumsetzungstabelle. Bei den zurücklaufenden Antwortpaketen läuft der Mechanismus in umgekehrter Reihenfolge ab. #!/bin/bash LOCAL_IP ="192.168.1.1" LOCAL_PORT=4000 DEST_IP ="192.168.1.2" DEST_PORT =5000 IPT ="/sbin/iptables" $IPT -A PREROUTING -t nat -p tcp --destination $LOCAL_IP --dport \ $LOCAL_PORT -j DNAT --to-destination $DEST_IP:$DEST_PORT $IPT -A FORWARD -p tcp -d $DEST_IP --dport $DEST_PORT -j ACCEPT $IPT -A POSTROUTING -t nat -p tcp --dport $DEST_PORT -j SNAT \ --to-source $LOCAL_IP Abbildung 3.11: Weiterleitung von TCP-Verbindungen mit Hilfe von iptables Diese Variante ist einfach umzusetzen, da der Paketfilter bereits Bestandteil des Linuxkernels ist. Neben dem Konfigurationsprogramm iptables wird keine weitere Software benötigt. Mit Hilfe des telnet-Kommandos aus 3.10 kann die Weiterleitungsfunktion getestet werden, allerdings muss hierbei die Portnummer 4000 verwendet werden. Der Mechanismus läuft direkt im Kernel ab. Unter Microsoft Windows kann dieser Ansatz nicht verwendet werden, da sich der dort integrierte Paketfilter von iptables unterscheidet. • Weiterleitung über SSH und SSHD: Die benötigte Funktion lässt sich auch über das Werkzeug Secure Shell (ssh) und den zugehörigen SSH-Server Secure Shell Deamon (sshd) bereit stellen. Abbildung 3.12 zeigt den Befehl, welcher eine Weiterleitungsfunktion auf dem lokalen Rechner aktiviert. Es wird ein lokal laufender SSH-Server vorausgesetzt. Gängige Linuxdistributionen enthalten beide Werkzeuge bereits in der Minimalinstallation, bei Microsoft Windows muss auf Fremdprogramme zurückgegriffen werden. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 3 HANDOVERFÄHIGE STRUKTUREN 46 Es war nicht bekannt, ob es einen SSH-Server für Microsoft Windows gibt. florian@explorer3:~> ssh -L 4000:127.0.0.1:5000 localhost Password: Last login: Mon Sep 13 19:03:57 2004 from localhost Have a lot of fun... florian@explorer3:~> Abbildung 3.12: Weiterleiten von TCP-Verbindungen mit Hilfe von ssh und sshd. Verbindungen an Port 4000 des lokalen Rechners werden an den die Adresse 127.0.0.1, Port 5000, weiter geleitet • Weiterleitung über Windows-interne Mechanismen: Microsoft Windows 2000 wird mit einem integrierten Mechanismus zur Weiterleitung von TCP-Verbindungen ausgeliefert. Dieser dort als Gemeinsame Nutzung ” einer Internetverbindung“ bezeichnete Mechanismus ist in der Lage, die Ziel-IPAdresse zu verändern. Die Portnummer kann jedoch nicht verändert werden. Der Mechanismus lässt sich zudem nur aktivieren, wenn die eingehenden und die ausgehenden Verbindungen über unterschiedliche Netzwerkschnittstellen geleitet werden. Auf Grund dieser Einschränkungen wurde der Ansatz nicht weiter verfolgt. • Weiterleitung über selbstgeschriebene Software: Statt betriebssysteminterner Mechanismen (→ iptables) oder nicht plattformübergreifend verfügberer Hilfsprogramme (→ ssh und sshd) kann ein speziell zur Weiterleitung konzipiertes Programm verwendet werden. Es war kein solches Programm bekannt, daher wurde im Rahmen dieser Diplomarbeit ein entsprechendes Werkzeug erstellt. Es läuft sowohl unter Linux als auch unter Microsoft Windows. Der Anwender bestimmt einen zu überwachenden Port, welchen das Programm auf eingehende TCP-Verbindungswünsche überwacht. Zu jeder eingehenden Verbindung wird eine ausgehende Verbindung an den wahren Bestimmungsort ( Ziel” rechner“ mit IP-Adresse und TCP-Portnummer) aufgebaut. Übertragene Daten werden in beide Richtungen transparent weiter geleitet. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 47 4. Der Prototyp 4.1. Architektur Im folgenden Abschnitt werden die Komponenten der im Rahmen dieser Diplomarbeit gefundenen handoverfähigen Struktur beschrieben. Ihre Aufgabe besteht in der Anbindung mobiler Endgeräte an das Internet. Dabei soll der in Abschnitt 2.2.1 erläuterte vertikale Handover ermöglicht werden. Die problematische Luftschnittstelle (vgl. Abschnitt 2.1) muss von den Ende-zu-Ende-Datenverbindungen 6 zwischen Anwendungen und Diensteanbietern isoliert werden. Die einzelnen Komponenten werden in Abbildung 4.1 gezeigt. Mobiles Endgerät Proxyserver Anwendung (Sonstiges) Backend GPRS Backend WLAN Handover− Server SOCKSv5− Serversoftware Internet Handover− Client SOCKSv5 Schnittstelle Anwendung (Browser) Transportmechanismus Anwendung (Webradio) Transportmechanismus SOCKSv5 Schnittstelle Frontend Backend Ethernet Abbildung 4.1: Die Komponenten des Prototyps 4.1.1. Handover-Client Auf jedem mobilen Endgerät läuft ein Handover-Client, welcher sich gegenüber den SOCKSv5-fähigen Anwendungen über seine SOCKSv5-Schnittstelle als SOCKSv5-Proxyserver ausgibt. Dadurch werden alle aus den Anwendungen stammende Datenkanäle ( Sockets“) am Handover-Client zusammengeführt. Es entsteht ein gebündelter Daten” strom, welcher über einen selbst entwickelten Transportmechanismus an den Proxyserver gesendet wird. Dort läuft der Handover-Server, ein ebenfalls selbst entwickeltes Programm, welches den gebündelten Datenstrom entgegennimmt und weiter verarbeitet. 6 In Wirklichkeit gibt es keine Ende-zu-Ende-Datenverbindung mehr. Die Übertragungsstrecke wird in mehrere Teile geteilt. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 48 4.1.2. Handover-Server Der Handover-Server trennt den gebündelten Datenstrom wieder in seine einzelnen Datenströme auf und leitet sie an die ebenfalls auf dem Proxyserver laufende SOCKSv5Serversoftware. Diese interpretiert die ursprünglich von den Anwendungen kommenden Kommandos und übernimmt gemäß dem in Abschnitt 2.4 vorgestellten SOCKSv5Mechanismus eine Stellvertreterfunktion gegenüber den Dienste erbringenden Servern im Internet. 4.1.3. Backends Von besonderem Interesse ist die Übertragung über die Luftschnittstelle. Zu jeder Übertragungstechnologie gehört ein spezieller Nutzungsmechanismus, welcher auf den mobilen Endgeräten in den so genannten Backends zu finden ist. Sie konfigurieren die verwendete Netzzugangshardware, nehmen die Einwahl vor und überwachen die aufgebaute Verbindung. Da diese Mechanismen unmittelbar von der jeweils verwendeten Hardware abhängen, wird zu jeder Netzzugangstechnik ein angepasstes Backend benötigt. Die Backends erfüllen folgende Aufgaben: • Universellen Handover-Client ermöglichen: Der Zugriff auf Netzzugangshardware ist von Betriebssystem zu Betriebssystem unterschiedlich. Durch die Auslagerung in externe Backends kann der HandoverClient universell bleiben. Alle Backends haben eine einheitliche Schnittstelle zum Handover-Client, vor dem sie ihre Interna verbergen. Eine zusätzliche Netzzugangshardware erfordert lediglich ein weiteres Backend, jedoch keine Anpassungen im Handover-Client. • Erweiterbarkeit sicherstellen: Durch die modulare Struktur kann zu einem späteren Zeitpunkt weitere Netzzugangshardware zum System hinzugefügt werden. Zu jeder wird ein spezielles Backend benötigt, welches die Nutzungsmechanismen enthält. Das Backend kennt die medienspezifischen Eigenschaften der vorliegenden Hardware. • Auf Einwahlkommandos reagieren: Alle Backends werden vom Handover-Client über ein einheitliches Protokoll angesprochen. Es unterstützt Kommandos wie Einwahl starten“ oder Verbindung ” ” trennen“. Der Handover-Client kann mit einheitlichen Befehlen auf unterschiedliche Netzzugangshardware zugreifen. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 49 • Verbindungsüberwachung: Das Backend reagiert auf die Kommandos des Handover-Clients, und liefert Statusinformationen zurück. Dazu gehört beispielsweise die aktuell vorliegende Empfangsfeldstärke, welche vom Handover-Client zur Handover-Entscheidung herangezogen werden kann. Eine erfolgreich abgeschlossene Einwahl wird ebenso wie ein abrupter Verbindungsabriss an den Handover-Client gemeldet. • Bereitstellung medienspezifischer Handoverparameter: Für die Handoverentscheidung werden neben dem aktuellen Status der Netzzugangshardware noch weitere Informationen über die Schnittstelle benötigt. Dazu gehören die bei der Nutzung anfallenden Kosten. GPRS wird beispielsweise nach anfallendem Datenvolumen abgerechnet, bei leitungsvermittelten Systemen wie ISDN kommt meist ein zeitbasiertes Abrechnungssystem zum Einsatz. Des Weiteren gibt es Unterschiede hinsichtlich der nutzbaren Datenraten und der bei der Übertragung auftretenden Verzögerung. Diese und ähnliche Informationen werden vom Handover-Client aus den Backends gewonnen. 4.1.4. Frontend Dem Nutzer wird über ein optional gestartetes Frontend eine Bedienoberfläche angeboten. Mit ihr kann der aktuell vorliegende Status des Handover-Clients betrachtet werden. Gleichzeitig bietet er dem Nutzer die Möglichkeit, in den Handoverprozess einzugreifen. Der Nutzer kann bei Wunsch nach kurzzeitig hoher Übertragungsrate eine Kanalbündelung (siehe Abschnitt 2.2.2) aktivieren. Dadurch entsteht ein erhöhter Ressourcenbedarf (Übertragungskosten, Energiebedarf, . . . ), weshalb er an einer anschließenden Deaktivierung der Kanalbündelung interessiert ist. Solche Eingriffe erfordern eine Benutzerschnittstelle. Sie wurde nicht in den HandoverClient integriert, da dieser plattformunabhängig erstellt werden sollte. Bei der Erstellung von grafischen Oberflächen werden aber plattformspezifische Mechanismen verwendet. Unter Microsoft Windows bieten sich die so genannten Windows Forms“ an, unter ” GNU/Linux das Qt“-Toolkit der Firma Trolltech. Daher wurde sich für eine Auslage” rung der Bedienoberfläche in ein eigenständiges Frontend entschieden. Mit Kenntnissen über das verwendete Kommunikationsprotokoll kann ein solches Frontend in einer frei wählbaren Programmiersprache für beliebige Betriebssysteme erstellt werden. Im Rahmen dieser Diplomarbeit wurde kein Frontend erstellt. Vorher müsste ein Kommunikationsprotokoll entwickelt werden, welches die benötigten Informationen transpor- 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 50 tieren kann. Dabei ist zu entscheiden, ob die Handover-Entscheidung im Handover-Client oder im Frontend gefällt werden soll. Im ersten Fall bleibt das Frontend optional, allerdings kann der Handovermechanismus nur beeinflusst, nicht aber ausgetauscht werden. Der Nutzer könnte lediglich die Parameter des Entscheidungsalgorithmus ändern. Ein Handover-Entscheider innerhalb des Frontends würde diesen Nachteil nicht aufweisen. Für neue“ Entscheidungsalgorithmen bräuchte nur das Frontend getauscht werden, ” nicht jedoch der komplette Handover-Client. Die zum Zeitpunkt des Austausches über den Handover-Client laufende Datenstöme müssten nicht getrennt werden. Innerhalb des Handover-Clients könnte zusätzlich ein sehr einfach gestalteter Handovermechanismus integriert werden. Er würde nur aktiv werden, wenn kein Frontend verfügbar ist. Das Kommunikationsprotokoll müsste in der Lage sein, sämtliche zur Entscheidungsfindung notwendigen Statusinformationen zu transportieren (Handover-Client → Frontend). 4.2. Mechanismen zur Datenübertragung Zur Übertragung der einzelnen SOCKSv5-Datenströme über die von Verbindungsabrissen bedrohte Luftschnittstelle wurden im Rahmen dieser Diplomarbeit Mechanismen hergeleitet und implementiert. Sie sollen die Datenströme sichern und damit bei Handoverereignissen auftretende Datenverluste behandeln. Abbildung 4.2 zeigt die zum Einsatz kommenden Protokolle. Dieses Schema entspricht der real im Prototyp umgesetzten Struktur. Die einzelnen Komponenten werden in den folgenden Abschnitten erläutert. Mobiler Client Anwendung SOCKSv5 Client Transport 11111 00000 11111 00000 Handover−Client SOCKSv5 Interpreter Transport Fester Proxyserver Handover−Server Fluss− steuerung Fluss− steuerung MUX MUX Sicherung Sicherung Transport Transport 11111 00000 SOCKSv5 Server SOCKSv5 Generator Transport 11 00 Internet 11111 00000 Transport Abreißende Links Abbildung 4.2: Die zwischen Handover-Client und Handover-Server zum Einsatz kommenden Protokolle ermöglichen ein handoverfähiges System. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 51 4.2.1. Datenstromsicherung Alle verwendeten Netzwerkanbindungen sind im mobilen Umfeld von spontanen Abrissen bedroht. In einer solchen Situation kommt es zu Datenverlusten. Zwischen mobilem Endgerät und Proxyserver findet ein beidseitiger Datenaustausch statt. Im Falle eines Abrisses gehen alle bereits versendeten Pakete, die nicht mehr rechtzeitig über die Luftschnittstelle übertragen wurden, verloren (siehe Abbildung 4.3). Die bereits in TCP integrierten Mechanismen zur Datenstromsicherung (Erkennung von Lücken und Übertragungswiederholung) sind dabei nicht wirksam. Sie wirken nur solange, wie eine einzelne TCP-Verbindung besteht. Handoverereignis Sender 4 3 2 1 3 2 1 Empfänger 3 2 1 4 Verlorenes Paket Abbildung 4.3: Verlust von Datenpaketen durch Handoverereignisse Eine Anwendung, deren TCP-Verbindung abreißt, erhält keine Rückmeldung, welche der versendeten Daten bereits am Empfänger angekommen und welche durch den Abriss verloren gegangen sind. Diese Information wird aber benötigt, um die betreffenden Daten nach Aufbau einer Ersatzverbindung ( Handover“) erneut versenden zu können. ” Dafür muss ein Mechanismus oberhalb von TCP angesetzt werden. Alle zu versendenden Datenpakete werden dazu vom Sender mit Sequenznummern versehen und erst dann an die TCP-Verbindung übergeben. Der Empfänger nimmt die Daten entgegen und verfolgt die enthaltenen Sequenznummern. Er kann verloren gegangene Fragmente erkennen und für lückenlos empfangene Datenblöcke eine Quittung formulieren. Diese Quittung wird zurück an den Sender geschickt, welcher mit ihrer Hilfe auf die fehlerfreie Auslieferung der Daten schließt. Im Falle eines Abrisses geht entweder ein Datenblock verloren – die Daten erreichen dabei niemals den Empfänger und es wird keine Quittung generiert – oder die zugehörige Quittung wird ausgestellt, aber nie empfangen. In beiden Fällen wird am Sender eine Quittung vermisst. Dieser wartet eine gewisse Zeit7 auf die Quittung, und schließt nach deren Überschreitung auf einen Übertragungsfehler. Der Sender wird die nicht quittierten Datenfragmente erneut versenden. 7 Diese Zeit hängt von der Paketumlaufzeit des verwendeten Mediums ab. Auf sehr stark verzögernden Leitungen muss die Wartezeit länger sein als die Übertragungsdauer der Nutzdaten (Hinrichtung) plus die Übertragungsdauer der ausgestellten Quittung (Rückrichtung). 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 52 Diese Datenstromsicherung besteht zwischen einem jeden Handover-Client und dem zentralen Handover-Server. Im Folgenden werden die Bestandteile der selbst entwickelten Datenstromsicherung vorgestellt. • Sendepuffer Zwischen beiden Kommunikationspartnern besteht eine Zweiwegeverbindung ( Voll” duplexverbindung“). Beide können Daten an ihren Kommunikationspartner senden und von diesem empfangen. Versendete Datenpakete können bei der Übertragung verloren gehen, was eine Übertragungswiederholung erforderlich macht. Dazu müssen die versendeten Daten bis zum Eintreffen der Quittung vorgehalten werden. Zu jedem Datenfragment wird der Sendezeitpunkt und ein schnittstellenspezifischer Timeout vermerkt. Anhand des Sendezeitpunktes kann jederzeit das Alter des Datenfragmentes berechnet werden. Überschreitet das Alter die Timeoutzeitspanne, wird das Datenfragment zur erneuten Übertragung freigegeben. Erst beim Eintreffen einer Quittung werden die durch die enthaltene Sequenznummer referenzierten Daten aus dem Sendepuffer entfernt. • Empfangspuffer ( Reassemblierpuffer“) ” Die empfangenen Datenpakete werden vom Empfänger anhand ihrer Sequenznummer sortiert ( reassembliert“) und im Empfangspuffer abgelegt. Durch die Sequenz” nummern werden Lücken im Datenstrom erkannt. Lückenlos empfangene Datenbereiche werden dem Sender über Quittungen mitgeteilt. Beim Zusammensetzen des Datenstromes können verschiedene Situationen auftreten. Sie werden in der folgenden Aufzählung genannt und von der selbst entwickelten Software beachtet. – Lückenloser Empfang: Im Fall der ungestörten Datenübertragung gehen auf dem Weg vom Sender zum Empfänger keine Datenpakete verloren. Die einzelnen Pakete treffen am Empfänger ein und liefern nach der Reassemblierung einen lückenlosen Datenstrom. Es wird keine Übertragungswiederholung notwendig. In einer Quittung an den Absender wird der gesamte lückenlos empfangene Datenblock bestätigt. – Lücke im Reassemblierpuffer: Bei einem Verbindungsabriss mit anschließendem Handover kommt es zu Pa- 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 53 ketverlusten. Der Sender hat keine Möglichkeit festzustellen, welche der gesendeten Datenpakete am Empfänger angekommen und welche verloren gegangen sind. Er muss daher auf eine Rückmeldung vom Empfänger warten. Bei einem Paketverlust entsteht eine Lücke im Empfangsdatenpuffer, und alle ausgesendeten Quittungen bestätigen nur den lückenlos empfangenen Bereich. Der ursprüngliche Sender erhält keine Quittung zu dem Bereich mit dem verloren gegangenen Datenfragment. Bei der Überschreitung eines gewissen Alters wird das Paket erneut versendet. Bei fehlerfreier Übertragung füllt es am Empfänger die entstandene Lücke. – Datenblock mit Sequenznummernbereich vor Pufferstart: Das Datenpaket ist zu alt, denn sein Inhalt wurde bereits früher empfangen und als lückenlos empfangener Datenblock quittiert. Das Datenpaket wird verworfen. – Datenblock mit Sequenznummernbereich hinter Pufferende: Datenpakete, die über das Ende des Empfangspuffers hinaus ragen, sind ein Zeichen für eine Protokollverletzung. Der Sender darf nur so viele Daten versenden, wie der Empfänger ohne Probleme in seinem Empfangspuffer unterbringen kann. Solche Pakete müssen verworfen werden. – Duplikate: Bei redundanter Versendung von Daten oder Verlust einer Quittung kommt es zu einer Mehrfachversendung von Datenfragmenten. Sie treffen nacheinander am Empfänger ein, wobei nur das zuerst eintreffende Paket relevant ist. Die nachfolgend eintreffenden Wiederholungen enthalten keine weiteren Informationen und können verworfen werden. Für den Prototypen wurde auf eine Erkennung von Duplikaten verzichtet. Stattdessen werden die Daten immer in den Empfangspuffer geschrieben, auch wenn an der betreffenden Stelle bereits Daten hinterlegt wurden. Dadurch konnte das Programm übersichtlicher gehalten werden. – Sich überlappende Datenfragmente: Bei paralleler Versendung über unterschiedliche Netzzugänge kann mit unterschiedlichen Fragmentgrößen gearbeitet werden. Dabei können Überlappungen entstehen. Ein Teil der in einem Paket enthaltenen Daten kann bereits vorher durch ein anderes Paket am Empfänger angekommen sein. Das neue Paket wird trotzdem in den Empfangspuffer geschrieben, wobei der sich überlap- 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 54 pende Teil mit identischen Daten überschrieben wird. 4.2.2. Verwaltung logischer Verbindungen Der eben vorgestellte Sicherungsmechanismus sichert lediglich einen einzelnen Datenstrom. Von den Anwendungen wird aber eine Vielzahl von Verbindungen ( Sockets“) ” erzeugt. Diese Datenkanäle müssen zu einem einzelnen Datenkanal kombiniert (→ Multiplexer, siehe Abbildung 4.4) werden, damit dieser vom Sicherungsmechanismus erfasst werden kann. Diese Aufgabe der Kombination vieler einzelner Datenströme zu einem Gesamtdatenstrom übernimmt eine Programmkomponente namens LogicalLinkControl (LLC). Hier laufen senderseitig viele Datenströme zusammen, um dann als gesicherter Datenstrom an den Kommunikationspartner versendet zu werden. Dort wird der Datenstrom wieder getrennt (→ Demultiplexer ), wobei die einzelnen Datenströme wieder zum Vorschein kommen. 1111 00 0011 0011 0011 00 00 11 00 11 00 11 00 11 00 0011 11 0011 0011 0011 00 11 MUX 11 00 00 11 00 11 00 11 00 11 00 11 00 11 00 11 1111 00 00 0011 11 0011 00 0011 11 00 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 00 11 00 11 00 11 11 0011 00 11 0011 00 11 Abbildung 4.4: Ein Multiplexer (MUX) kombiniert mehrere Datenströme zu einem Gesamtdatenstrom. Notwendigkeit zur Flusssteuerung: Bei dem dargestellten Mechanismus des Multiplexens/Demultiplexens wird eine Flusssteuerung benötigt. Sie stellt sicher, dass ein Sender seine Datenpakete nicht schneller verschickt als sie der Empfänger verarbeiten kann. Unbedingt zu vermeiden sind Pufferüberläufe und Blockierungssituationen. Abbildung 4.5 zeigt die Ursache dieses Problems. Der Kommunikationspartner auf der rechten Seite überträgt zwei voneinander unabhängige Datenströme an den linken Empfänger. Der obere Datenstrom transportiert sehr viele Daten und unterliegt keinen zeitlichen Restriktionen (beispielsweise ein Dateidownload, bei dem die Daten so schnell gespeichert werden wie sie ankommen. Zeitliche Restriktionen treten beispielsweise bei MultimediaDatenströmen auf, wo zu große Verzögerungen zu Aussetzern bei der Wiedergabe führen würden). Der untere Datenstrom umfasst ein viel geringeres Übertragungsvolumen, soll aber möglichst schnell transportiert werden. Diese Situation tritt bei einer Konsolensitzung auf einem anderen Rechner auf. Es entsteht kaum Datenvolumen, aber der Nutzer reagiert empfindlich auf auftretende Verzögerungen. Wenn jetzt der Empfänger des hochratigen“ Datenstromes (die Anwendung, nicht der Handover-Client) die ” 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 55 Daten langsamer entgegennimmt als sie vom Handover-Server in den gebündelten Datenkanal geschrieben werden, gibt es beim Trennen des Datenstromes ein Problem: Der Empfangspuffer des hochratigen Stromes läuft voll, und anschließend aus dem gebündelten Datenstrom entnommene Datenpakete können nicht mehr untergebracht werden. Es kommt zu einer Blockierung, die solange anhält, bis die Anwendung den Empfangsdatenpuffer so weit geleert hat, dass das wartende Datenfragment in den Puffer kopiert werden kann. Der zweite Datenstrom, dessen Puffer nicht überzulaufen droht, wird dabei ebenfalls blockiert. Seine Datenpakete liegen weiter hinten im gebündelten Datenstrom und sind zum Zeitpunkt der Blockierung nicht erreichbar. Handover−Client 11 00 00 11 00 11 ? 11 00 00 11 00 11 00 11 00 11 11 00 00 11 00 11 11 00 00 00 00 00 00 11 0011 11 0011 11 0011 11 00 11 11 Empfangspuffer DEMUX 11 00 00 11 00 11 00 11 Handover−Server ! 11 00 00 11 00 11 00 11 00 11 00 11 00 11 1. 11 00 00 11 00 11 00 11 00 11 00 11 00 11 00 00 11 0011 11 0011 00 11 Sendepuffer 11 00 00 11 00.... 11 11 00 00 11 00 11 00 11 11 00 00 11 00 11 00.... 11 MUX 2. Empfangspuffer Sendepuffer 11 00 00 11 Hohes Datenaufkommen, langsame Anwendung auf Mobilgerät 00 11 00 11 00 11 00 11 00 11 Geringes Datenaufkommen, schnelle Übertragung wichtig Abbildung 4.5: Blockierungssituation beim Trennen des Gesamtdatenstromes. Der Empfangspuffer ist bereits gefüllt, und das wartende Paket kann nicht weitergereicht werden. Die Blockierung ist hierbei zwingend, denn ein Verwerfen des wartenden Datenpakets kommt nicht in Frage. Dies würde den Datenstrom unbrauchbar machen und die betreffende Anwendung durcheinander bringen. Richtig problematisch wird es aber, wenn eine Anwendung abstürzt und dabei deren Puffer voll läuft. Es käme zu einer dauerhaften Verklemmung, die sämtliche Datenströme einfrieren würde. Dieses Problem konnte durch Einsatz einer Flusssteuerung umgangen werden. Bei einem solchen Verfahren schickt der Sender nur solange Daten an den Empfänger, wie dieser die Daten ohne Pufferüberlauf entgegennehmen kann. Dadurch kann es beim Trennen des Datenstromes nicht mehr zur Blockierung kommen. Der Mechanismus zur Flusssteuerung wird in Abbildung 4.6 gezeigt. Es wird ein kreditbasierter Mechanismus mit Quittierung verwendet. Der niedrigratige Datenstrom wird hierbei nicht blockiert. Der hochratige Datenstrom wird zwar verzögert, was aber aus Sicht der empfangenden Anwendung nicht auffällt. Sie hat bei Bedarf Zugriff auf einen maximal gefüllten Empfangspuffer. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 56 Handover−Client 11 00 00 11 00 11 Handover−Server 11 00 00 11 00 11 00 11 00 11 0011 11 0011 0011 0011 00 11 0011 11 0011 0000 00 11 Empfangspuffer blockiert DEMUX 11 00 00 11 00 11 00 11 11 00 00 11 00 11 00 11 11 00 00 11 00 11 00 11 0011 11 0011 0011 00 11 0011 11 0000 00 11 Sendepuffer 11 00 00.... 11 00 11 11 00 00 11 00 11 00 11 11 00 00 11 00.... 11 00 11 MUX 11 00 00 11 00 11 00 11 Empfangspuffer Sendepuffer 11 00 00 11 Hohes Datenaufkommen, langsame Anwendung auf Mobilgerät 00 11 00 11 00 11 00 11 00 11 Geringes Datenaufkommen, schnelle Übertragung wichtig Abbildung 4.6: Bei Verwendung einer kreditbasierten Flusssteuerung darf der Multiplexer pro Teildatenstrom nur so viele Daten auf einmal versenden, wie sie ohne Probleme vom Empfänger gespeichert werden können. Dadurch werden Verklemmungen verhindert. Beim Aufbau einer logischen Verbindung werden diverse Informationen ausgetauscht. Sie enthalten unter anderem Informationen zur Flusssteuerung, welche vom Kommunikationspartner benötigt werden. Zu ihnen gehören: • Ein lokal eindeutiger Verbindungskenner8 ( Identifikator“), ” • die Größe des lokalen Empfangspuffers und • eine zufällige Startsequenznummer, die die erste Speicherstelle im Empfangspuffer benennt. Mit Hilfe dieser Daten kann ein Sender so viele Daten verschicken wie der Empfangspuffer seines Kommunikationspartners fasst. Diese Größe ist der so genannte Kreditrahmen, welchen der Empfänger dem Sender einräumt. Es dürfen nicht mehr Daten versendet werden als im Kreditrahmen gewährt wurden. Es bestünde die Gefahr, dass die Anwendung zu langsam ist und der Puffer bis zum Eintreffen der zusätzlichen Pakete nicht geleert wurde. Es käme zu der bereits genannten Verklemmungssituation oder zu Datenverlusten. Wenn die Anwendung bei Verwendung der Flusssteuerung die im Empfangspuffer wartenden Daten abruft, entsteht im Empfangspuffer freier Platz zur Annahme weiterer 8 Es gibt pro logischer Verbindung zwei Verbindungskenner, einen pro Endpunkt. Andernfalls können Kollisionen auftreten. Wenn beide Kommunikationspartner berechtigt sind, neue Verbindungen aufzubauen, besteht die Gefahr, dass sich beide Seiten den selben Identifikator aussuchen und sich die Verbindungen gegenseitig stören. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 57 Datenpakete. Darüber muss der Kommunikationspartner informiert werden. Dazu werden Quittungen erzeugt, die dem Kommunikationspartner über den Füllstand des lokalen Empfangspuffers unterrichten. Der dazu übermittelte Parameter ist die EmpfangspufferStartsequenznummer, also die Sequenznummer der ersten Speicherstelle im Empfangspuffer. Der Sender weiß bis zu welcher Sequenznummer er bereits Daten versendet hat, und kann daraus berechnen, wie viele Daten er noch senden darf, ohne den Empfänger zu überfluten. n/Bytes = Puffergröße/Bytes − (SeqNrgesendet bis − SeqNrPufferstart ) (4.1) Im folgenden Beispiel wird ein 1000 Bytes großer Empfangspuffer verwendet. Als Startsequenznummer SeqNrPufferstart wurde die 333 zufällig gewählt. Beide Zahlen (1000 und 333) wurden dem Kommunikationspartner im Rahmen des Verbindungsaufbaus mitgeteilt. Er darf maximal 1000 Bytes an Daten versenden: n/Bytes = 1000 − (333 − 333) = 1000 (4.2) Als Beispiel sollen 600 Bytes versendet werden. Der Sender weiß, dass das letzte gesendete Byte die Sequenznummer 932 haben wird. Das nächste freie Byte hat die Sequenznummer 933. n/Bytes = 1000 − (933 − 333) = 400 (4.3) Der Kreditrahmen von 1000 Bytes wird bereits durch 600 Bytes ausgenutzt und kann um weitere 400 Bytes in Anspruch genommen werden. Im Beispiel sollen nun am Empfänger 200 Bytes abgerufen werden. Die Startsequenznummer erhöht sich dadurch von 333 auf 533. Diese Sequenznummer wird in einem Quittierungspaket an die Gegenstation versendet. n/Bytes = 1000 − (933 − 533) = 600 (4.4) Nach Auswertung der Quittung dürfen wieder mehr Daten versendet werden. Die genannten Größen sind nochmals in Abbildung 4.7 gezeigt. Die optimale Größe des Kreditrahmens hängt von der Speicherkapazität des verwendeten Links ab. Diesen Kennwert kann man mit dem Durchmesser eines Wasserrohres vergleichen. Je größer der Durchmesser des Rohres, desto größer ist die Speicherkapazität des Links und desto mehr Daten (→ Wasser) wurden versendet bis das erste versendete 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 58 1111111111111 0000000000000 0000000000000 1111111111111 0000000000000 1111111111111 Empfangspuffer 0000000000000 1111111111111 0000000000000 1111111111111 11111111111111111111 Gesamtpuffergröße 00000000000000000000 1111111111111 0000000000000 Pufferfüllstand 1111111 Freier Pufferplatz 0000000 "StartSequenznummer" "FüllstandSequenznummer" Abbildung 4.7: Empfangspuffer, zur Flusssteuerung relevante Daten Byte am Empfänger ankommt. Bei wenig speichernden Medien reicht ein kleiner Empfangspuffer aus. Bei umfangreicher speichernden Medien kann es aber zu ungewollten Unterbrechungen des Datenflusses kommen. Wenn bereits ein einzelnes Datenpaket den vollständigen Kreditrahmen in Anspruch nimmt, dürfen bis zum Eintreffen der Quittung keine weiteren Daten versendet werden. Die Quittung wird aber erst generiert, wenn die empfangende Anwendung die Daten abgeholt hat und der Empfangspuffer geleert wurde. Sie muss dann erst noch über das Medium übertragen werden und bildet dabei den Flaschenhals“ für die erreichbare ” Datenübertragungsrate. Obwohl der Empfangspuffer geleert wurde, dürfen keine weiteren Daten versendet werden. Als Ausweg bietet sich ein größerer Empfangspuffer mit größerem Kreditrahmen an. Er verkürzt nicht die Laufzeit der Quittungen, mindert aber deren negative Auswirkungen auf den Datenstrom. Wenn die Quittungen beim ursprünglichen Sender eintreffen, hat dieser noch nicht seinen kompletten Kreditrahmen ausgeschöpft. Der Datenstrom musste nicht durch die Flusssteuerung eingefroren“ wer” den. Aufbau logischer Verbindungen: Die einzelnen Datenströme innerhalb des Gesamtdatenstromes werden logische Verbindungen genannt. Sie können von beiden Kommunikationspartnern gleichermaßen angefordert werden. Dazu wird an der Programmkomponente namens LogicalLinkControl (LLC) ein Verbindungsaufbauwunsch angemeldet. Es wird ein eindeutiger Verbindungskenner – eine Integerzahl – erzeugt. Mit ihrer Hilfe kann die Verbindung zur zukünftigen Nutzung referenziert werden. Die lokale und die entfernte LogicalLinkControl-Instanz durchlaufen einen Verbindungsaufbaumechanismus, um logische Verbindungen zu etablieren (siehe Abbildung 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 59 4.8). Dazu erzeugt die LLC-Instanz der aufbauenden Seite ein so genanntes SYN9 -Paket, welches den Verbindungsaufbau einleitet. Es enthält neben dem lokalen Identifikator noch zwei weitere Parameter zur Flusssteuerung. Dies sind die lokale Empfangspuffergröße und die lokale Startsequenznummer des Empfangspuffers. LogicalLinkControl LogicalLinkControl ID=connect(); Erzeugung PSSeqNr Erzeugung qNr IDG, PGG, PSSe SYNACK: IDR, Aufbau SYN: IDR, PGR, ID=accept(); Sendebereit Sendebereit t ID IDR IDG PGR PGG PSSeqNr Lokaler Identifikator Identifikator am Rufenden Identifikator am Gerufenen Empfangspuffergröße des Rufenden Empfangspuffergröße des Gerufenen "Puffer−Start−Sequenznummer" Abbildung 4.8: Aufbau einer logischen Verbindung Das SYN-Paket löst beim Eintreffen am LLC des Kommunikationspartners den dortigen Verbindungsaufbaumechanismus aus. Es wird ein zweiter, lokal eindeutiger Verbindungskenner gewählt. Eine logische Verbindung zwischen zwei LLC’s wird durch ein Verbindungskennerpaar eindeutig beschrieben. Als Antwort auf das eingetroffene SYNPaket wird ein SYNACK-Paket versendet. Es enthält vier Datenfelder: Den lokalen Verbindungskenner, den des Kommunikationspartners aus dem SYN-Paket und ebenfalls die zwei zur Flusssteuerung benötigten Informationen. An der gerufenen LLC-Instanz liegt jetzt eine logische Verbindung zur Abholung bereit. Sie dürfte bereits zur sofortigen Versendung von Daten herangezogen werden, während der anfordernde Kommunikationspartner noch auf das SYNACK-Paket warten muss. Er darf keine Datenpakete versenden, solange er nicht über die Empfangspuffergröße seines Kommunikationspartners (→ Flusssteuerung) bescheid weiß. Dieser Mechanismus wird als Zwei-Wege-Handshake“ bezeichnet. ” Nutzung logischer Verbindungen: Nach Aufbau einer logischen Verbindung kann diese von beiden Seiten zur Versendung und zum Empfang von Daten genutzt werden. Die Verbindung wird dabei von jedem Kommunikationspartner über ihren lokal gültigen Verbindungskenner angesprochen. Dieser kann vom Verbindungskenner am Kommunikationspartner abweichen, was aber nicht stört. Die integrierte Flusssteuerung arbeitet 9 In Anlehnung an die in TCP verwendeten Mechanismen hat sich der Autor entschieden die Begriffe SYN, SYNACK und CLOSE zu übernehmen. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 60 transparent und ist für den Aufrufer oberhalb des LLC nicht sichtbar. Die Quittungen werden intern erzeugt und ausgewertet. Wenn die Flusssteuerung aktiv wird und der Sendepuffer gefüllt ist, werden keine Daten mehr zur Versendung angenommen. Das bedeutet, dass ein send()-Kommando am LLC in der sinngemäßen Meldung Null Bytes ” gesendet“ resultiert. Abbau logischer Verbindungen: Nach ihrer Nutzung wird die logische Verbindung wieder freigegeben. Dazu wird intern ein CLOSE-Paket erzeugt, welches den Verbindungskenner des Kommunikationspartners enthält (siehe Abbildung 4.9). Beim Empfang schließt dieser seinerseits die logische Verbindung und antwortet abschließend ebenfalls mit einem CLOSE-Paket. Dieser Zwei-Wege-Handshake ist notwendig, da im Zeitraum zwischen Schließungsbefehl und Eintreffen des ersten CLOSE-Paketes am Partner von diesem noch Daten versendet werden. Diese Daten müssen am schließenden Ende noch zu einer Verbindung zugeordnet werden können. Dabei werden die eintreffenden Daten intern verworfen. Erst mit dem Eintreffen des zurücklaufenden CLOSE-Paketes wird die logische Verbindung endgültig entfernt. LogicalLinkControl close(ID); LogicalLinkControl Abbau Abbau CLOSE: IDR Freigabe t Freigabe recv: Geschlossen Abbau CLOSE: IDG close(ID); ID Lokaler Identifikator IDR Identifikator des Rufenden IDG Identifikator des Gerufenen Abbildung 4.9: Abbau einer logischen Verbindung 4.2.3. Sitzungsverwaltung Eine Sitzung beginnt mit der erstmaligen Anmeldung des Handover-Clients am Handover-Server und endet mit deren Freigabe bei Beendigung der Nutzung. Im Laufe einer Sitzung können mehrere Verbindungen über die mobilen Teilstrecken aufgebaut und wieder getrennt werden. Bei jedem Verbindungsabriss stirbt“ eine Verbindung, bei jedem ” Neuaufbau kommt eine hinzu. Der Handover-Server muss hierbei erkennen können, ob eine eingehende Verbindung von einem neuen Handover-Client stammt oder ob ein weiterer Datenkanal zu einer bereits bestehenden Sitzung aufgebaut werden soll. Im ersten 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 61 Fall wird eine neue Sitzung gestartet, im zweiten Fall muss die eingehende Verbindung zu der bereits laufenden Sitzung zugeordnet werden. Abbildung 4.10 verdeutlicht dies. Mobiles Endgerät Mobiles Endgerät Proxyserver Sitzung Sitzung Abbildung 4.10: Zwischen mobilem Endgerät und Proxyserver wird jeweils eine Sitzung aufgebaut. Parameter beim Verbindungsaufbau: Diese Frage: Stammt die eingehende Verbin” dung von einem bisher unbekannten Endgerät oder besteht bereits eine Sitzung?“ wird im Rahmen eines Anmeldeprozesses beantwortet. Der Verbindungsaufbau geht dabei immer vom Handover-Client (dieser läuft auf dem mobilen Endgerät) aus. Jeder HandoverClient identifiziert sich gegenüber dem Handover-Server über eine eindeutige Kennung, der Client-ID. Sie wird beim ersten Verbindungsaufbau (beim Start einer neuen Sitzung) vom Handover-Server zugewiesen. Die Client-ID ist für die Dauer der Sitzung gültig und dient der Zuordnung aller zukünftig aufgebauten Datenkanäle zu dieser Sitzung. In Abbildung 4.11 werden die während des Aufbaumechanismus ausgetauschten Informationen gezeigt. Zu einer jeden Verbindung gehören zwei Datenkanäle (Sockets). Einer dient zum Austausch von Steuerinformationen, der andere zum Austausch von Nutzdaten. Mit Nutzdaten“ sind die aus den Anwendungen stammenden SOCKSv5” Datenströme nach Durchlauf der Sicherungsmechanismen gemeint. Im Folgenden wird anhand verschiedener Szenarien gezeigt, wie die einzelnen Felder gesetzt werden können. • Aufbau einer Sitzung über eine einzelne Verbindung: Eine Sitzung beginnt mit der ersten Anmeldung des Handover-Clients am Handover- 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 62 Handover−Server (Port TCP:22) Handover−Client Steuerkanal aufbauen (CTRL) CTRL: [Typ=CTRL, ClientID, ServerID, LinkID, LinkIT, Checksum] CTRL: [ClientID, ServerID, DataID, Checksum] (Port TCP:22) Datenkanal aufbauen (DATA) DATA: [Typ=DATA, DataID, ClientID, Checksum] Aufgebauter Link (Datenkanal + Steuerkanal) t Abbildung 4.11: Aufbau einer Verbindung zwischen Handover-Server und HandoverClient. Sie besteht aus einem Steuer- und einem Datenkanal. Server. Zu diesem Zeitpunkt wurde dem mobilen Endgerät noch keine Client-ID zugewiesen. Er baut wie in Abbildung 4.11 dargestellt einen Steuerdatenkanal auf und übermittelt die folgenden Daten: – ClientID=0 Dies signalisiert dem Handover-Server, dass eine neue Sitzung erstellt werden soll. Es wurde vorher noch keine Client-ID ausgehandelt. – ServerID=0 Das mobile Endgerät hatte bisher noch keinen Kontakt zum Handover-Server. Da der Identifikator des Servers nicht bekannt ist, wird eine 0“ übermittelt. ” – LinkID=Zahl Jede dem mobilen Endgerät zur Verfügung stehende Datenanbindung – beispielsweise GPRS, WLAN und Ethernet – erhält einen eindeutigen numerischen Bezeichner, die Link-ID. Sie wird vom Handover-Client vergeben. Bei drei verfügbaren Anbindungen gibt es in der Sitzung drei unterschiedliche Link-ID’s. – LinkIT=0 Jede ausgehende Datenverbindung erhält einen so genannten Iterationszähler. Er wird mit Null initialisiert und bei jedem erneuten Verbindungsaufbau über den entsprechenden Link um Eins erhöht. Er ermöglicht die Unterscheidung 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 63 mehrerer gleichzeitig über einen Link eintreffender Verbindungen. Dies ist zwar nicht vorgesehen, kann aber bei Handoverereignissen10 passieren. – Checksum=Zahl Als letztes Feld wird eine Quersumme über die vorherigen Felder erwartet. Dadurch können offensichtlich nicht berechtigte eingehende Verbindungen abgewiesen werden. Das ist beispielsweise der Fall, wenn ein Nutzer mit Hilfe des telnet-Kommandos sinnlose Zeichenfolgen an den Handover-Server sendet. Der Handover-Server antwortet über den selben Kanal und schickt die folgenden Daten: – ClientID=Zahl Zuerst wird eine neue Sitzung erzeugt. Der Handover-Server weist dem mobilen Endgerät einen eindeutigen Identifikator – die Client-ID – zu. – ServerID=Zahl Der Handover-Server nennt seinen eigenen Identifikator. Mit seiner Hilfe kann der Handover-Client später feststellen, ob der Server zwischenzeitlich neu gestartet wurde. Wird, wie im vorliegenden Fall, ein erstmaliger Verbindungsaufbau durchgeführt, wird die ServerID vom Client vermerkt. – DataID=Zahl Eine jede Verbindung zwischen Handover-Server und -Client besteht aus zwei Sockets, dem Steuer- und dem Datenkanal. Damit im nächsten Schritt der Datenkanal aufgebaut werden kann, erzeugt der Handover-Server eine Rückrufnummer, die Data-ID. Sie wird ebenfalls dem Client mitgeteilt und dient der späteren Zuordnung des eintreffenden Datenkanals zu diesem Steuerkanal. Der Handover-Client wertet die empfangenen Daten aus und merkt sich die vom Server zugewiesene ClientID sowie dessen ServerID. Er baut über einen zweiten Socket den Datenkanal auf und schickt über ihn die folgenden Datenfelder an den Handover-Server: 10 Es kann mehrere Minuten dauern, bis eine TCP-Verbindung am Server als abgerissen“ gemeldet ” wird. Aus Sicht des Servers kommen keine weiteren IP-Pakete an, was ihn auf eine Stausituation schließen lässt. Erst nach Überschreitung eines maximalen Alters wird die Verbindung geschlossen. Ein zwischenzeitlich neu aufgebauter Datenkanal weist den selben Identifikator auf und muss sich daher in einem weiteren Parameter, dem Link-Iterationszähler, unterscheiden. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 64 – DataID=Zahl Über die Data-ID kann der Handover-Server den eingehenden Datenkanal zum bereits bestehenden Kontrollkanal zuordnen. – ClientID=Zahl Der Handover-Client bestätigt die vom Server zugewiesene ClientID. Zu diesem Zeitpunkt gilt die Verbindung als aufgebaut. Die Sitzung wird durch die ServerID und die ClientID eindeutig beschrieben. • Abriss und Neuaufbau einer Verbindung: Wenn eine bereits aufgebaute Verbindung abreißt, kann sie zu einem späteren Zeitpunkt erneut aufgebaut werden. Da dem mobilen Endgerät eine eindeutige ClientID zugewiesen wurde, kann es sich zu einem späteren Zeitpunkt wieder mit dem Server verbinden. Über die ClientID wird die neue Verbindung zu der bereits bestehenden Sitzung zugeordnet. Der Link-Identifikator LinkID bleibt dabei identisch, nur der Iterationszähler LinkIT wird erhöht. • Aufbau einer weiteren Verbindung: Ein vertikaler Handover erfordert die Nutzung mehrerer Netzzugangstechnologien. Die ClientID wird dabei über den ersten Verbindungsaufbau – hier ist sie noch auf Null gesetzt – ausgehandelt. Für alle folgenden Verbindungen wird die zugewiesene ClientID benutzt, damit alle Verbindungen vom Handover-Server zu der entsprechenden Sitzung gruppiert werden können. Es können mehrere parallele Verbindungen zwischen Handover-Server und Handover-Client existieren. Sie unterscheiden sich durch ihre LinkID. Die Link-Iterationszähler LinkIT werden für jeden Link einzeln gepflegt und bei jedem erneuten Aufbau erhöht. Zu jeder LinkID gehört die Verbindung mit dem zahlenmäßig größten Wert in LinkIT. Dies ist aber nur eine vereinfachte Darstellung, welche die Problematik von Zählerüberläufen unterschlägt. Im Programm wurde ein leicht abgewandelter Mechanismus implementiert. • Aufbau einer Sitzung über mehrere Verbindungen: Beim Sitzungsaufbau kann es zu einem Konflikt mit der Zuweisung der ClientID kommen, wenn mehrere Netzzugangstechnologien gleichzeitig zum Einsatz kommen. Werden bei der Nutzung von GPRS und WLAN beide Netzzugänge gleichzeitig zum Verbindungsaufbau herangezogen, muss geklärt werden, welchem der 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 65 beiden Links die ClientID anvertraut wird. Der Handover-Server kann nicht wissen, dass die beiden eintreffenden Verbindungen zueinander gehören, denn bei Beiden weist sowohl die Client-ID als auch die Server-ID den Wert Null auf. Der Server erstellt vorsorglich zwei Sitzungen und verschickt zwei unterschiedliche ClientID’s an das selbe mobile Endgerät. Hierbei entsteht für den Client das Problem, dass er hat zwei ClientID’s zur Auswahl hat. Dieses soeben angesprochene Problem wird dadurch gelöst, dass der HandoverClient die erste eintreffende ClientID übernimmt (hierbei ist seine ClientID noch gleich Null gesetzt) und die zweite eintreffende ClientID verwirft. Der Verbindungsaufbau wird erst im nächsten Schritt mit dem Aufbau des Datenkanals abgeschlossen. Hierbei wird dem Server die ausgewählte ClientID mitgeteilt. Am ehemals schnelleren Link führt dies zur endgültigen Erstellung einer neuen Sitzung, am anderen Link wird erkannt, dass die ausgewählte ClientID von der vorgeschlagenen abweicht. Die Verbindung wird der parallel aufgebauten Sitzung zugeordnet und die nicht mehr genutzte, vorsorglich aufgebaute zweite Sitzung, entfernt. • Absterben einer Sitzung: Wenn alle Verbindungen zwischen einem Handover-Client und dem HandoverServer abreißen, bleibt die Sitzung noch eine maximale Zeitspanne – die TimeoutZeitspanne – erhalten. Wenn innerhalb dieser Zeitspanne kein erneuter Verbindungsaufbau stattfindet, wird der Handover-Server die Sitzung entfernen und alle zugehörigen SOCKSv5-Datenströme schließen. Dieser Schritt ist notwendig, weil die Möglichkeit besteht, dass ein mobiles Endgerät nicht die Möglichkeit erhält seine laufende Sitzung geordnet zu beenden11 . Wird der Handover-Client zwischenzeitlich neu gestartet, hat er keine Erinnerung mehr an die vom Server vergebene ClientID und dessen ServerID. Stattdessen wird beim ersten Verbindungsaufbau eine neue Sitzung erstellt, obwohl die vorherige Sitzung noch existiert. Diese wird in Zukunft nicht mehr genutzt werden. Nach Ablauf eines internen Zeitzählers wird sie vom Handover-Server entfernt. • Zwischenzeitlich neu gestarteter Server: Es ist möglich, dass der Handover-Server innerhalb einer laufenden Sitzung neu gestartet wird. Für ein mobiles Endgeräte sieht dies wie ein Verbindungsabriss 11 Ursachen können ein längerfristig nicht verfügbarer Netzzugang oder ein spontanes Abschalten des Endgerätes (Stromausfall) sein. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 66 aus, und es wird versuchen, seine Verbindungen erneut aufzubauen. Dabei übermittelt der Handover-Client im ersten Verbindungsaufbauschritt seine zugewiesene ClientID und die ServerID des Handover-Servers. Dieser hat sich aber zwischenzeitlich durch den Neustart eine abweichende ServerID zugewiesen und kann den anrufenden Handover-Client nicht bedienen. Der Handover-Server hat keine Ahnung über die Vorgeschichte der Sitzung. Zusätzlich ist keine der früher aufgebauten SOCKSv5-Verbindungen mehr existent. Der Server erzeugt eine neue Sitzung und übermittelt dem mobilen Endgerät seine neue ServerID sowie die von nun an gültige ClientID. Der Handover-Client hat keine andere Wahl, als seinerseits alle weitergeleiteten SOCKSv5-Verbindungen zu schließen und die alte Sitzung zu vergessen. Dabei wird die neue vom Server zugewiesene Sitzung akzeptiert. Es ist unvermeidbar, dass dabei alle Datenströme auf Anwendungsebene absterben. 4.2.4. Effizienz vs. kurze Verzögerungszeiten Bei der Handhabung von zu versendenden Daten gibt es einen Interessenkonflikt. Einerseits ist man an einer möglichst kurzen Übertragungsdauer, andererseits an einer effizienten Ausnutzung der Übertragungsstrecke interessiert. Das Problem betrifft die Art und Weise, wie im Sendepuffer auf Versendung wartende Daten behandelt werden. Eine kurze Datenübertragungsdauer kann hier nur durch eine schnellstmögliche Versendung der wartenden Daten erreicht werden. Zu jedem Datenblock wird ein Header benötigt, welcher mindestens die zugehörige logische Verbindung identifiziert. Dadurch wird das zu versendende Nutzdatenvolumen um die Größe dieses Headers vergrößert. Es entsteht ein zusätzlicher Verwaltungsaufwand, bei Protokollen auch Overhead“ genannt. ” Je mehr Nutzdaten auf ihre Versendung warten, desto weniger fällt der Header – er weist eine konstante Größe pro Paket auf – ins Gewicht. Der relative Overhead“ wird gerin” ger. Problematisch wird dies aber bei sehr kleinen Datenmengen, wie sie beispielsweise bei einer telnet“-Sitzung anfallen. Durch die schnelle Verarbeitungsgeschwindigkeit ” moderner Rechner kann man von der sofortigen Behandlung eines jeden eingegebenen Zeichens ausgehen. Dabei wartet immer nur ein einziges Zeichen im Sendepuffer. Es wird um einen Header erweitert und auf den Weg zum Kommunikationspartner geschickt. Das nächste Zeichen trifft erst einige Zeit später ein. Dabei entsteht der maximal mögliche relative Overhead. Das ursprünglich angefallende Datenvolumen vervielfacht sich und belastet die Datenübertragungsstrecke. Der relative Overhead ist hierbei riesig. Auf ein einzelnes Byte an Nutzdaten entfallen im Prototyp: 13 Bytes im Multiplexer, 12 Bytes 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 67 in der Sicherung und zwei Bytes direkt oberhalb des Sockets. Das ergibt ein 28-faches Datenvolumen. Dabei wurden noch nicht die Quittung in der Datenstromsicherung und die Quittung zur Flusssteuerung im Multiplexer – welche wiederum eine Quittung in der Datenstromsicherung provoziert – berücksichtigt. Zur Lösung dieses Problems müsste man auf die Versendung kleiner Datenmengen verzichten. Dazu müssen zwei Fragen beantwortet werden: • Wie groß ist die geforderte Mindestpaketgröße? • Wie lange darf auf weitere Daten gewartet werden? Der relative Overhead kann somit verringert werden. Allerdings erkauft man sich diesen Vorteil durch eine längere Verweildauer der Daten im System. Dies macht sich besonders bei der genannten Konsolensitzung negativ bemerkbar. Der Nutzer drückt auf eine Taste, erhält aber keine Rückmeldung (oder erst nach längerer Zeit). Das System hätte damit aus Nutzersicht ein schlechtes Ansprechverhalten“. ” Dieser Widerspruch kann nicht durch einen universellen Algorithmus aufgelöst werden. Dazu fehlen in den Senderoutinen Informationen über die Natur der zu übertragenden Daten, welche eine selektive Wahl der beiden genannten Parameter erlauben würden. Diese Informationen stehen aber nicht zur Verfügung. Es werden lediglich SOCKSv5Verbindungen angenommen und weiter geleitet. Die Art der transportierten Informationen ist unbekannt. 4.3. Verbesserungen: Vermeidung von Paketumläufen An vielen Stellen des vorgestellten Systems treten Paketumläufe auf. Ein solcher Umlauf entsteht beispielsweise, wenn ein Teilnehmer seinem Kommunikationspartner eine Frage sendet und anschließend auf dessen Antwort wartet. Auch am Beispiel von Anmeldeprozessen lassen sich Paketumläufe demonstrieren. Ein Anwender baut einen Datenkanal auf (→ Hinrichtung), der Server antwortet mit einer Aufforderung zur Eingabe des Benutzernamens (→ Rückrichtung), der Nutzer sendet diesen (→ Hinrichtung), der Server fragt nach dem Passwort und so weiter. Bis zum erfolgreichen Abschluss eines solchen Anmeldeprozesses werden viele Paketumläufe durchlaufen. Dabei summiert sich die Übertragungsdauer des verwendeten Datenkanals auf. Besonders auf stark verzögernden Datenkanälen werden die negativen Auswirkungen von Paketumläufen in Form langer Wartezeiten spürbar. Es stellt sich die Frage, ob die Anzahl an Paketumläufen vermindert werden kann. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 68 Einige der bereits vorgestellten Mechanismen konnten im Sinne einer Vermeidung von Paketumläufen verbessert werden. Die getroffenen Maßnahmen werden in der folgenden Aufzählung genauer beleuchtet: • SOCKSv5-Authentifizierung: Das SOCKS-Protokoll sieht in der verwendeten Version 5 einen Anmeldeprozess vor. Dabei teilt der Client dem SOCKSv5-Server in einem ersten Schritt mit, welche Authentifizierungsverfahren er unterstützt. Der Server sucht sich aus der übergebenen Menge ein geeignet erscheinendes Verfahren aus und teilt dem Client seine Entscheidung mit. Für den Fall, dass sich beide Parteien auf einen Verzicht von Authentifizierungsmechanismen einigen konnten, ist der Anmeldeprozess an dieser Stelle abgeschlossen. Andernfalls folgen noch weitere Paketumläufe, wie beispielsweise bei einer Anmeldung über Benutzername und Passwort. Daraus wurden folgende Konsequenzen abgeleitet: – Es wird auf die von SOCKSv5 bereit gestellten Authentifizierungsmechanismen verzichtet. Später wird in Abschnitt 4.6.1 gezeigt, warum dadurch keine Sicherheitsprobleme entstehen. – Es verbleibt ein kompletter Paketumlauf zwischen der SOCKSv5-fähigen Anwendung auf dem mobilen Endgerät und dem SOCKSv5-Server auf dem Proxy. Dieser wird durch den Handover-Client abgefangen. Er nimmt die Anfrage der Anwendung entgegen und signalisiert dieser den Verzicht jeglicher Authentifizierungsmechanismen. Parallel dazu wird eine logische Verbindung zum Handover-Server aufgebaut. Dieser nimmt die Verbindung entgegen. Er baut seinerseits eine SOCKSv5-Verbindung zum SOCKSv5-Server auf. Hierbei wird ebenfalls der genannte Authentifizierunsgmechanismus durchlaufen, allerdings wiederum auf ein und dem selben Rechner. Die lange Übertragungsdauer der Luftschnittstelle spielt keine Rolle mehr. • Das SOCKSv5-Kommando UDP-Association“: ” SOCKSv5 kann (im Gegensatz zu SOCKS Version 4) UDP-Verbindungen handhaben. Dazu gibt es das Kommando UDP-ASSOCIATE“. Der Proxyserver er” zeugt auf diesen Befehl hin einen so genannten UDP-Relay-Server“, welcher auf ” der einen Seite UDP-Pakete vom Client (incl. SOCKSv5-Header) entgegennimmt und die Nutzdaten an die realen Bestimmungsorte weiterleitet. Der Client erfährt die UDP-Portnummer des Relay-Servers“ über dessen Antwort (→ Paketum” 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 69 lauf). Hier setzt wiederum der Handover-Client an. Er interpretiert das UDP” ASSOCIATE“-Kommando und erzeugt die UDP-Annahmestelle. Die dabei reservierte UDP-Portnummer wird ohne Einsatz der langsamen“ Luftschnittstelle lokal ” zugestellt. Der Handover-Client implementiert jedoch keinen UDP-Relay-Server“, ” sondern sendet die entgegengenommenen UDP-Pakete über eine logische Verbindung zum Handover-Server. Dieser erkennt die Ursache der eintreffenden logischen Verbindung (→ der Wunsch nach einer UDP-Association“) und sendet seiner” seits das UDP-ASSOCIATE“-Kommando an den SOCKSv5-Server. Auch hierbei ” erfolgt die Kommunikation vergleichsweise schnell. Ein weiterer Vorteil dabei ist, dass der Anwendung eine bereits komplett aufgebaute UDP-Association“ suggeriert wird. In Wahrheit kann keine Aussage getroffen ” werden, ob die UDP-Verbindung bereits bis zum SOCKSv5-Server vorgedrungen“ ” ist. Es können bereits Daten verschickt werden, obwohl der SOCKSv5-Server auf Grund der langsamen Luftschnittstelle noch nichts von der sich aufbauenden Verbindung weiß. Über sehr stark verzögernde Medien (→ GPRS) kann dieser Mechanismus trotz allen Overheads einen schnelleren Aufbau einer UDP-Association“ ” ermöglichen als dies ohne die Komponenten Handover-Client und -Server möglich wäre. • Aufbau logischer Verbindungen: In Abschnitt 4.2.2 wurde der Verbindungsaufbaumechanismus logischer Verbindungen vorgestellt. Er umfasst einen kompletten Paketumlauf, da sich beide Kommunikationspartner ihre lokalen Identifikatoren und ihre jeweilige Empfangspuffergröße (→ Flusssteuerung) mitteilen müssen. Logische Verbindungen werden sehr häufig benötigt. Für jedes eintreffende SOCKSv5-Kommando wird eine logische Verbindung zum Handover-Server benötigt. Die zum Aufbau notwendige Zeit lässt sich nicht vermeiden. Zwar könnte man sich beim Austausch der Empfangspuffergröße auf eine einmalig auszutauschende Konstante einigen, es bleibt jedoch das Problem des am Rufenden unbekannten Verbindungsidentifikators des Gerufenen. Daher werden bei bestehender Verbindung zwischen Handover-Client und -Server eine gewisse Anzahl logischer Verbindungen im Voraus aufgebaut. Jeder Kommunikationspartner pflegt einen Vorrat an vorsorglich aufgebauten logischen Verbindungen. Bei Bedarf steht sofort ein aufgebauter Datenkanal zur Verfügung. Der Vorrat wird anschließend wieder aufgefüllt, indem eine neue logische Verbindung etabliert 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 70 wird. Sie durchläuft den kompletten Paketumlauf, was aber zu keinen merkbaren Verzögerungen führt. Sie wird nicht unmittelbar gebraucht. Im Prototyp wird ein Vorrat im Umfang von zehn logischen Verbindungen gepflegt. Abbildung 4.12 zeigt die modifizierte Form des Verbindungsaufbaus. Im Vergleich dazu zeigte Abbildung 4.8 die unmodifizierte Form. LogicalLinkControl Erzeugung LogicalLinkControl SYN: IDR, PGR Aufbau , PSSeqNr qNrErzeugung IDG, PGG, PSSe SYNACK: LIR, Sendebereit ID=connect(); DATA: IDG, PS SeqNr qNr recv(ID, Data); DATA: IDR, PSSe ID=accept(); recv(ID, Puffer); send(ID, Data); t Nutzdatenübertragung send(ID, Data); Abbildung 4.12: Optimierter Aufbau logischer Verbindungen. Nach der Anforderung einer logischen Verbindung braucht kein voller Paketumlauf bis zur Versendung von Nutzdaten durchlaufen zu werden. 4.4. Algorithmen zur Auswahl des optimalen Netzes Eine der Aufgaben der vorliegenden Diplomarbeit bestand in der Suche nach einem Algorithmus zur Auswahl des optimalen Netzes. Der folgende Abschnitt beschreibt zuerst wo diese Entscheidung getroffen wird und mit Hilfe welcher Mechanismen die restlichen Komponenten über das Ergebnis unterrichtet werden. Anschließend wird auf die eigentliche Handoverentscheidung eingegangen. 4.4.1. Ort der Handoverentscheidung Es stellt sich die Frage, wo die Wahl des optimalen Netzes stattfinden soll. Sie kann prinzipiell im mobilen Endgerät (im Handover-Client) oder im Proxyserver (im HandoverServer) getroffen werden. Jedoch hat nur das mobile Endgerät eine direkte Übersicht 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 71 über die aktuell verfügbaren Zugangsnetze und deren Zustände. Daher findet die gesamte Handoverentscheidung im Handover-Client statt. Hier werden Einwahlverbindungen aufgebaut, über deren Nutzung bestimmt und bei Bedarf wieder getrennt. Zusätzlich muss der Handover-Server über die aktuell vorliegende Nutzungsentscheidung unterrichtet werden. Wenn beispielsweise im Fall des weichen Handovers“ der ” Hauptlink WLAN“ abzureißen droht, wird die GPRS-Einwahlverbindung frühzeitig auf” gebaut. Sie soll trotz bestehendem Datenkanal noch nicht zur Versendung von Nutzdaten herangezogen werden. Damit soll erst nach Abriss des WLAN-Links begonnen werden. Abbildung 4.13 zeigt, wo die Handoverentscheidung gefällt wird und wie die Daten an den Server übermittelt werden. Mobiles Endgerät von den Anwendungen Proxyserver Wegewahl zum SOCKSv5−Proxyserver Wegewahl [Nutzdaten] DE−MUX Datenkanal GPRS Sicherung Sicherung DE−MUX [Nutzdaten] Datenkanal WLAN erstellt Linkmanager Linkmanager wird genutzt von Nutzungs− tabelle Linkzustände wird genutzt von erstellt Nutzungs− tabelle erstellt [Linkmap] wird genutzt von Handover−Manager Clientseitig Steuerkanal GPRS [Linkmap] Handover−Manager Serverseitig Steuerkanal WLAN Einwahlbefehl Trennbefehl Status Backends Abbildung 4.13: An der Handoverentscheidung beteiligte Komponenten. Die Entscheidung wird auf dem mobilen Endgerät getroffen und in Form von Linkmaps dem auf dem Prosyserver laufenden Handover-Server mitgeteilt. Das Ergebnis der Handover-Entscheidung liegt in Form einer so genannten LinkNutzungstabelle am Handover-Client vor. Sie muss so schnell wie möglich dem HandoverServer mitgeteilt werden, wo ebenfalls eine Nutzungstabelle gepflegt wird. Die Übermittlung der aktuellen Entscheidung erfolgt über so genannte Linkmaps, welche im folgenden Abschnitt betrachtet werden. 4.4.2. Linkmaps Eine Linkmap spiegelt den Zustand aller zu einem Zeitpunkt vom mobilen Endgerät ausgehenden Datenkanäle wider. Immer wenn ein Socket (egal ob Steuer- oder Datenkanal) abreißt, ein Backend einen Verbindungsabriss meldet oder ein neuer Datenkanal 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 72 erfolgreich verbunden werden konnte, gibt es eine Änderung der Link-Nutzungstabelle. Ihr neuer Zustand wird in einer Linkmap abgebildet und über den Steuerkanal eines jeden verbundenen Links an den Handover-Server übermittelt. Diese Vorgehensweise ist notwendig, da nur der Handover-Client einen Linkabriss zeitnah bemerken kann. Wird beispielsweise die GPRS-Verbindung getrennt, wird nicht unbedingt auch die TCP-Verbindung getrennt. Für den Proxyserver bleiben lediglich weitere IP-Pakete aus, bis die TCP-Verbindung nach mehreren Minuten in einen Timeout läuft und getrennt wird. In der Zwischenzeit wurde die Verbindung eventuell bereits wieder hergestellt und ein neuer Datenkanal etabliert. Am Proxyserver würden zwei eingehende Datenkanäle existieren, von denen einer bereits getrennt werden müsste. Die Lösung besteht in der Versendung von Linkmaps, welche den Handover-Server explizit über abgerissene Datenkanäle informieren. Dadurch können bereits abgerissene Datenkanäle noch vor Eintritt eines Timeouts vom Server geschlossen und vergessen werden. Header 1 Byte Pro Eintrag 4 Bytes 1 Byte 1 Byte 1 Byte 1 Byte Sendenutzung Verbindungsstatus Link−Iterationszähler, 0..255 Link−Identifikator, 0..255 Anzahl an Einträgen, 1..255 Abbildung 4.14: Aufbau einer Linkmap Eine Linkmap enthält für jeden verfügbaren Netzzugang – pro am Handover-Client angemeldetem Backend – einen Eintrag. Ein solcher umfasst vier Felder, welche jeweils ein Byte an Speicher belegen. Die ersten beiden Felder identifizieren jeweils den Link (über den Link-Identifikator und den Link-Iterationszähler ), die anderen beiden geben Auskunft über dessen Status (drittes Feld) und dessen Verwendungszweck im Sinne von Nutzdatenversendung (viertes Feld). Eine Linkmap umfasst minimal 5 Bytes (bei nur einem Link) und maximal 1021 Bytes (bei der theoretischen Obergrenze von 255 angemeldeten Backends). Abbildung 4.14 verdeutlicht dies. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 73 4.4.3. Zweistufige Handoverentscheidung In Abschnitt 2.2.4 wurde bereits ausführlich über verschiedene Zielstellungen bei der Auswahl des optimalen Netzzuganges“ berichtet. Zudem stehen sehr unterschiedliche ” Anbindungseigenschaften zur Auswertung bereit, welche bereits in Abschnitt 2.2.5 diskutiert wurden. In diesem Abschnitt geht es um den Algorithmus, welcher bei gegebener Zielstellung und verfügbaren Eigenschaften die Auswahl des optimalen Netzzuganges durchführt. Der entwickelte Algorithmus umfasst zwei Schritte: 1. Sortieren nach Zielstellung: Die sich am Handover-Client angemeldeten Backends werden in einer Liste verwaltet. Der Zeitpunkt der Anmeldung bestimmt dabei den Platz in der Liste (neue Backends werden an das Listenende angehängt). Die Liste wird in dieser Form als unsortiert bezeichnet. Wahl einer Zielstellung (Nutzer) [...] Kostenminimierung Schnellste Anbindung Maximale Akkustandzeit [...] Angemeldete Backends und deren Eigenschaften GPRS: [ ... ] Ethernet: Kosten Datenraten Verzögerungszeiten [ ... ] WLAN: [ ... ] Nach Zielstellung sortieren GPRS WLAN Ethernet Steigende Nutzungspriorität Nach Zielstellung sortierte Backends Abbildung 4.15: Im Handover-Entscheider werden die am Handover-Client angemeldeten Backends gemäß einer vom Nutzer ausgewählten Zielstellung sortiert. Es entsteht eine nach Priorität sortierte Nutzungsreihenfolge. In einem ersten Schritt werden die verfügbaren Backends gemäß der vom Nutzer ausgewählten Zielstellung sortiert. Dabei werden die Netzzugangseigenschaften, welche die Backends dem Handover-Entscheider bereit stellen, ausgewertet. Es entsteht eine absteigend sortierte Liste, an deren Anfang das Backend mit der höchsten Priorität (dieses erfüllt die Zielstellung am ehesten) liegt. Diese Liste muss nur selten aus der unsortierten Liste ermittelt werden. Dieser Schritt ist nur erforderlich, wenn sich ein neues Backend anmeldet, wenn ein vorhandenes Backend beendet wird oder wenn der Nutzer die Zielstellung ändert. Der eben vorgestellte Mechanismus wird in Abbildung 4.15 gezeigt. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 74 2. Auf- und Abbau von Einwahlverbindungen und Links: Nachdem die Nutzungsreihenfolge anhand der Zielstellung ermittelt wurde, dient das Ergebnis (die sortierte Liste) als Vorlage für den Backend- und Linkmanager. Seine Aufgabe ist es, die Einwahlverbindungen aufzubauen, sie zu überwachen und anschließend zu trennen. Zusätzlich baut er die Sockets (→ Links) zum HandoverServer auf und bestimmt über deren Nutzungsart. Zur Entscheidungsfindung stehen ihm die sortierte Backendliste sowie die Zustände aller Backends und aller ausgehenden Links zur Verfügung. Der Manager geht dabei durch die sortierte Liste. Er beginnt mit dem Backend mit der höchsten Priorität, welches in Abbildung 4.16 das Ethernet-Backend ist. Nach Zielstellung sortierte Backends Niedrige Priorität GPRS WLAN Ethernet Hohe Priorität Aktuelle Auswahl Status der (Einwahl−)Verbindung Befehl an die (Einwahl−)Verbindung Status des Datenkanals (Socket) Befehl an den Datenkanal (Socket) Einwahlverbindungen aufbauen Unnötige Einwhlverbindungen trennen Datenkanäle aufbauen Aufgebaute Datenkanäle aktivieren Bearbeite nächstes Element Backend− und Linkmanager Status des Managers Noch keinen aufgebauten Datenkanal gefunden Bereits aufgebauten Datenkanal gefunden Abbildung 4.16: Der Backend-Manager verwaltet anhand der Nutzungsreihenfolge und der Zustände der Backends die ausgehenden Verbindungen. Da zu jeder Zeit eine Verbindung zum Handover-Server bestehen soll, versucht der Manager das aktuell vorliegende Backend zu aktivieren und den Socket zu etablieren. Für den Fall, dass dies scheitert (kein Kabel angeschlossen) oder eine längere Zeit dauert (Einwahlvorgang über GPRS), wird das nächste Backend aus der Liste verwendet. Wenn eine Einwahl mit anschließendem Linkaufbau erfolgreich war, merkt sich der Backendmanager dieses. Alle noch folgenden Backends (mit noch niedrigerer Nutzungspriorität) werden von hier an nicht mehr aktiviert, sondern deaktiviert. Der Durchlauf endet mit dem letzten Backend aus der sortierten Liste. Für den Fall, dass die Einwahl über Ethernet erfolgreich war, brauchen keine Daten über WLAN oder GPRS versendet zu werden. Sollten Ethernet und WLAN 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 75 abreißen, geht der Manager über das Ethernet-Backend und das WLAN-Backend hinweg und erreicht schließlich das GPRS-Backend. Da er bisher noch keinen Link aktivieren konnte, befindet er sich noch im Zustand des Verbindungsaufbaus“. Er ” wird den GPRS-Link aktivieren und, sobald die Einwahlverbindung besteht, den Socket etablieren. Da zu diesem Zeitpunkt kein weiterer Link zum Handover-Server besteht, wird der Manager die Versendung von Nutzdaten über GPRS befehlen. Wenn nun das WLAN-Netz verfügbar wird, beginnt der Manager einen erneuten Durchlauf durch die sortierte Liste. Das Ethernet-Backend liefert keine brauchbare Internetverbindung, das WLAN-Backend dagegen schon. Der Socket wird etabliert und die Versendung von Daten über WLAN befohlen. Der Manager merkt sich, dass er bereits einen aktiven Link bearbeitet hat, und wechselt zum GPRSBackend. Hier wird er den Datentransfer unterbrechen. Es fand ein weicherer ” Handover“ zwischen GPRS und WLAN statt. Es gab keinen unvorhergesehenen Linkabriss und damit keine Unterbrechung des Datenstromes auf Anwendungsebene. Der Manager wird immer dann aktiv, wenn eine Statusänderung an einem Backend oder an einem Link registriert wird. Als Folge werden Befehle an die einzelnen Backends und Links gesendet, welche zeitlich versetzt wiederum zu Statusänderungen führen. Eine denkbare Abfolge von Statusänderungen und Befehlen wäre: a) (erstmaliger Start) → Baue Ethernet auf b) Ethernet nutzbar → Baue Socket (Ethernet) auf c) Socket (Ethernet) steht → Sende Daten über Socket (Ethernet) d) Ethernet abgerissen → Schließe Socket (Ethernet), Baue WLAN auf e) WLAN nicht nutzbar → Baue GPRS auf f) GPRS eingewählt → Baue Socket (GPRS) auf g) Socket (GPRS) steht → Sende Daten über Socket (GPRS) h) Ethernet nutzbar → Baue Socket (Ethernet) auf i) Socket (Ethernet) steht → Sende Daten über Socket (Ethernet), Versende keine Daten über Socket (GPRS) ( weicherer Handover“) ” 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 76 4.5. Erstellte Backends Für den Testaufbau wurden drei Backends erstellt. Sie erlauben dem Handover-Client die Nutzung von WLAN, Ethernet und GPRS. Zu jedem Backend folgt eine Beschreibung der jeweils eingesetzten Mechanismen. 4.5.1. Ethernet-Backend Für die Verwendung von Ethernet müssen die vorhandenen Ethernetschnittstellen überwacht werden. Die Aufgabe des Backends besteht darin, herauszufinden, ob eine Anbindung über ein Netzwerkkabel besteht und ob diese Schnittstelle mit korrekten Einstellungen versehen wurde. Für die Ermittlung dieser Daten wird unter Microsoft Windows der Befehl ipconfig verwendet. Er zeigt alle nutzbaren Netzwerkschnittstellen und ihre zugewiesenen IP-Adressen an. In Abbildung 4.17 wird die Ausgabe von ipconfig bei nicht angeschlossenem Ethernetkabel gezeigt. Abbildung 4.18 zeigt die Ausgabe bei bestehender Netzwerkverbindung. C:\>ipconfig Windows 2000-IP-Konfiguration Ethernetadapter "LAN-Verbindung": Medienstatus. . . . . . . . . . . : Kabel nicht angeschlossen C:\> Abbildung 4.17: Ausgabe des Befehl ipconfig, wenn kein Ethernet verfügbar ist Es dauert mehrere Sekunden, bis ipconfig eine neu hinzugefügte Ethernetverbindung meldet. Wird das Kabel entfernt, ändert sich die Ausgabe fast augenblicklich. Das Backend ruft ipconfig schnell hintereinander in einer Schleife auf und interpretiert dessen Ausgabe. Im aktuellen Entwicklungsstand des Backends wird die Ausgabe des Befehls auf das Enthaltensein einer bestimmten IP-Adresse überprüft. Im Beispiel von Abbildung 4.18 untersucht das Backend den zurückgelieferten Text auf die Zeichenfolge 192.168.1.3. Bei Vorhandensein meldet es Netz verfügbar“, bei dessen Fehlen ein ” Netz ist nicht verfügbar.“ ” 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 77 C:\>ipconfig Windows 2000-IP-Konfiguration Ethernetadapter "LAN-Verbindung": Verbindungsspezifisches IP-Adresse. . . . . . . Subnetzmaske. . . . . . Standardgateway . . . . DNS-Suffix: . . . . . : 192.168.1.3 . . . . . : 255.255.255.0 . . . . . : 192.168.1.1 C:\> Abbildung 4.18: Netzzugang über Ethernet laut Befehl ipconfig verfügbar 4.5.2. WLAN-Backend Das WLAN-Backend dient der Kopplung des Handover-Clients an eine WLAN-Nutzungshardware. WLAN verhält sich aus Anwendersicht wie eine Ethernetschnittstelle, welche jedoch kein Kabel benötigt. Durch die Ähnlichkeit zu Ethernet kommt innerhalb des Backends der selbe Erkennungsmechanismus wie im Ethernet-Backend zum Einsatz. Dabei wird die Ausgabe des Befehls ipconfig auf das Enthaltensein einer bestimmten IP-Adresse untersucht. Als zu suchende IP-Adresse wird die der WLANSchnittstelle zugewiesene IP-Adresse verwendet. Sie darf nicht mit der IP-Adresse und dem Subnetz der Ethernetschnittstelle kollidieren. Im vorliegenden Prototyp erhielt die WLAN-Schnittstelle die IP-Adresse 192.168.2.3 und die Netzmaske 255.255.255.0. Auf eine Auswertung der Empfangsfeldstärke musste verzichtet werden, da diese nicht über ipconfig ermittelt werden kann. Es müsste ein anderer Mechanismus gesucht werden, beispielsweise die direkte Zusammenarbeit mit dem WLAN-Treiber. Aus Zeitgründen konnte dieser Ansatz nicht weiter verfolgt werden. Es erscheint aber lohnenswert, sich mit der Auswertung der Empfangsfeldstärke genauer zu befassen. Mit ihrer Hilfe können Verbindungsabrisse bereits anhand eines Abwärtstrends vorhergesagt werden (siehe dazu Abschnitt 2.2.5). 4.5.3. GPRS-Backend Die Art der Nutzung von GPRS ist mit der von Analogmodems vergleichbar. Über einen Einwahlbefehl wird eine Internetverbindung aufgebaut, welche bis zu einem unerwünschten Verbindungsabriss oder einem expliziten Trennbefehl bestehen bleibt. Die 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 78 Zugangshardware verhält sich wie ein Analogmodem. Es wird über so genannte AT” Kommandos“ angesprochen, welche als Hayes-Befehlssatz“ bei Analogmodems eine star” ke Verbreitung gefunden haben. Das GPRS-Backend ist daher mit einem Dialer“ vergleichbar. So werden sich selbst ” einwählende Programme bezeichnet, welche nur wenig oder gar keine Interaktion mit dem Benutzer benötigen. Das Backend sucht automatisch nach einem angeschlossenen GPRS-Modem und baut auf Befehl des Handover-Clients eine Internetverbindung auf. Diese wird bis zum expliziten Trennbefehl auf auftretende Ereignisse – wie beispielsweise ein Verbindungsabriss – überwacht. Dazu kommen ausschließlich Windows-interne Mechanismen zum Einsatz. Der Verbindungsaufbaumechanismus wird über eine Komponente namens Remote Access Service“ ” (RAS) bereit gestellt. Über die Befehle rasdial() und rashangup() können Einwahlund Trennbefehle an das Modem gesendet werden. Der weitere Ablauf liegt in der Verantwortung des Betriebssystems. Auch bei diesem Backend musste auf eine Auswertung der Empfangsfeldstärke verzichtet werden. Der RAS-Mechanismus liefert diese Information nicht zurück. Es müsste wiederum nach einem anderen Weg, eventuell die direkte Kommunikation mit dem Modemtreiber, gesucht werden. Aus Zeitgründen konnte diese Idee nicht weiter verfolgt werden. 4.6. Sicherheit Sicherheit ist ein wichtiges Thema, welches besonderes bei verteilten Systemen von Bedeutung ist. Die einzelnen Komponenten haben Zugriff zum weltweiten Internet und müssen daher ausreichend vor mutwilligen Beeinflussungen geschützt werden. Im Folgenden werden die dazu in Frage kommenden Mechanismen genauer betrachtet. 4.6.1. Authentifizierung Der verwendete SOCKSv5-Mechanismus bietet die Möglichkeit, beim Verbindungsaufbau (Anwendung → SOCKSv5-Proxyserver) einen Authentifizierungsmechanismus einzusetzen. Eine genauere Beschreibung zu den von SOCKSv5 bereit gestellten Mechanismen wurde bereits in Abschnitt 2.4 geliefert. Die Verwendung der genannten Authentifizierungsmechanismen bringt in Kombination mit den Programmen Handover-Client und Handover-Server Nachteile mit sich. Im Folgenden wird gezeigt, wieso auf die Nutzung dieser in SOCKSv5 enthaltenen Me- 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 79 chanismen verzichtet wird und stattdessen eine gegenseitige Authentifizierung zwischen Handover-Client und Handover-Server ausreicht. Die SOCKSv5-fähigen Anwendungen brauchen sich nicht vor dem Handover-Client, und der Handover-Server sich nicht vor dem SOCKSv5-Server zu authentifizieren. Es wurde ein anderer Mechanimus gefunden und umgesetzt: • SOCKSv5-Anwendung gegenüber Handover-Client: Sämtliche SOCKSv5-fähigen Anwendungen laufen auf dem selben mobilen Endgerät wie der Handover-Client. Er ist ein eigenständiges Pogramm. Die Kommunikation untereinander beschränkt sich auf lokale Verbindungen, die über das so genannte Loopback-Device (IP-Adresse 127.0.0.1, auch Localhost genannt) laufen und den Rechner nicht verlassen. Eine böswillige Nutzung des Handover-Clients von Außen kann durch Betrachtung der Absenderadressen unterbunden werden. Der Handover-Client lehnt dazu alle eingehenden Verbindungen mit einer von 127.0.0.1 abweichenden Absenderadresse ab, womit nur lokal laufende Anwendungen Zugriff erhalten. Die in SOCKSv5 enthaltenen Mechanismen werden nicht benötigt. • Handover-Server gegenüber SOCKSv5-Server: Ein schlecht konfigurierter ( offener“) SOCKSv5-Server stellt ein Sicherheitsrisi” ko dar. Da der Proxyserver an das weltweite Internet angeschlossen ist, muss mit großer Sorgfalt darauf geachtet werden, dass der Server nicht von Unbefugten genutzt werden kann. Dieses Problem lässt sich bereits mit einem ähnlichen Mechanismus, wie auf dem mobilen Endgerät eingesetzt, lösen. Da der SOCKSv5-Server aus seiner Sicht nur einen einzigen Client zu bedienen hat (dies ist der lokal laufende Handover-Server ) wird der SOCKSv5-Server auf Anfragen von Localhost (IP-Adresse 127.0.0.1) beschränkt. Der SOCKSv5-Server ist damit nach außen hin unsichtbar und nur für den lokal laufenden Handover-Server erreichbar. • Handover-Client gegenüber Handover-Server: Ein in Bezug auf Authentifizierung kritischer Punkt ist der Verbindungsaufbau zwischen Handover-Client und Handover-Server. Es kann zu häufigen Linkabrissen kommen. Anschließend muss jedes Mal der Link erneut aufgebaut werden. Es ist zu vermeiden, dass sich böswillige Nutzer zwischenzeitlich am Handover-Server anmelden und sich fälschlicherweise als ein Handover-Client ausgeben. Er könnte den Datentransfer belauschen, ihn verändern oder sogar die Verbindung abreißen 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 80 lassen. Daher muss sich ein Handover-Client vor dem Handover-Server authentifizieren, und zwar bei jedem einzelnen Verbindungsaufbau über jedes verwendete Medium. Nur so kann sich der Handover-Server sicher sein, dass der aktuell vorliegende Verbindungswunsch wirklich von einem berechtigten Handover-Client stammt. Weiterhin ist eine zusätzliche Authentifizierung des Handover-Servers vor dem Handover-Client sinnvoll. Nur dann kann sichergestellt werden, dass sich Niemand böswillig als Handover-Server ausgibt und somit eingehende Verbindungen abfangen kann ( Man-in-the-Middle“-Angriff). ” Hiermit wurde gezeigt, dass die von SOCKSv5 bereit gestellten Methoden zur Authentifizierung nicht benötigt werden. Es reicht, wenn an den Schnittstellen, wo reines ” SOCKSv5 gesprochen“ wird, eine Beschränkung auf lokale Verbindungen verhängt wird. Kritisch ist und bleibt die Schnittstelle zwischen Handover-Client und -Server, wo ein sichereres Verfahren mit gegenseitiger Authentifizierung eingesetzt werden sollte. 4.6.2. Verschlüsselung Daten können durch Verwendung von Verschlüsselung gegenüber Dritten geschützt werden. In [Schn96] nachlesbare Anwendungsfälle sind • Schutz der Privatsphäre ( unleserlich machen“), ” • Schutz vor Manipulation des Datenstromes durch Dritte und die • Sicherstellung der Identität des jeweiligen Kommunikationspartners. Speziell die Luftschnittstelle“ zwischen Handover-Client und Handover-Server ist für ” Viele zugänglich und sollte daher genau auf Sicherheitsprobleme untersucht werden. Es stellt sich aber die Frage, inwiefern zusätzliche Sicherungsmechanismen zwischen Handover-Server und -Client einen Sinn ergeben. Spätestens auf dem Proxyserver müssen alle Datenströme wieder ausgepackt ( entschlüsselt“) werden, da ihre Versendung ” ins Internet mit Hilfe der herkömmlichen Protokolle abgewickelt wird. Egal wie viel Mühe man sich beim Entwurf eines Verschlüsselungsmechanismus zwischen HandoverClient und -Server gibt, auf dem Proxy wird der Klartext benötigt und die Datenströme werden wenigstens für den Systemadministrator mitlesbar. Dies gilt ebenfalls für die von SOCKSv5 bereit gestellten Mechanismen. Sie sichern lediglich die Teilstrecke zwischen SOCKSv5-Anwendung und SOCKSv5-Proxyserver, nicht jedoch den Weg zwischen SOCKSv5-Proxyserver und den Kommunikationspartnern im Internet ab. Es ist 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 81 daher sinnvoller, bei Bedarf eine so genannte Ende-zu-Ende-Verschlüsselung auf Anwendungsebene einzusetzen. Dann erhält auch der Administrator auf dem Proxyserver keinen Zugriff mehr auf sensible Daten. Möglichkeiten hierfür bieten beispielsweise die Werkzeuge Secure Shell (SSH), Pretty Good Privacy (PGP) oder das auf dem Secure Socket Layer (SSL) basierende Protokoll Hypertext Transfer Protocol Secure (HTTPS). Alle sind bereits im breiten Einsatz und für die meisten Plattformen verfügbar. 4.7. Test unter realen Bedingungen Im Rahmen dieser Diplomarbeit sollten die erstellten Programme in einer praxisnahen Testumgebung getestet werden. Diese besteht aus mehreren Rechnern, deren Aufgaben und Konfiguration im Folgenden betrachtet werden sollen. 4.7.1. Verwendeter Testaufbau Die zentralen Komponenten im Testaufbau sind das mobile Endgerät und der Proxyserver. Das mobile Endgerät wird mit drei Netzzugangstechnologien ausgestattet. Zur Auswahl stehen Ethernet, WLAN (IEEE 802.11b) und GPRS. Dem mobilen Endgerät, im vorliegenden Fall ein Laptop, stehen alle drei Zugänge zur Verfügung. Je nach Verfügbarkeit und Zielstellung kann vom Handover-Entscheider das eine oder andere Netz als optimales Netz ausgewählt und genutzt werden. WLAN−Zugangspunkt USB WLAN − IEEE 802.11b Artem USB−W11 Internet− Server Cabletron RoamAbout PCMCIA Ethernet Ethernet Ethernet Proxyserver Mobiles Endgerät PCMCIA Nokia D211 Internet GPRS− Provider− Netz GPRS über GSM Basisstation Abbildung 4.19: Schematische Übersicht des Testaufbaus 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 82 Abbildung 4.19 zeigt eine schematische Übersicht der einzelnen Komponenten des Testaufbaus. Man erkennt die drei Netzzugangstechnologien; von oben nach unten dargestellt WLAN, Ethernet und GPRS. Über Ethernet besteht eine direkte Verbindung zwischen Laptop und Proxyserver. Bei WLAN wird ein zusätzlicher Rechner als WLAN” Access Point“ (AP) eingesetzt. Er nimmt eintreffende Verbindungen vom Laptop entgegen und leitet sie über Ethernet an den Proxyserver weiter. Der Grund für diesen Umweg“ ist eine Antwort auf das Wegewahlproblem, welches in Abschnitt 3.2.3 bespro” chen wurde. Tabelle 4.1 zeigt die Konfiguration der einzelnen Netzschnittstellen des Laptops. Für die USB-WLAN-Antenne und die Ethernetschnittstelle werden feste IP-Adressen vergeben, bei GPRS wird eine solche vom Provider zugewiesen. Ein so genannter Nameserver braucht nicht gesetzt zu werden, da die Namensauflösung durch das SOCKSv5-Protokoll vom Proxyserver durchgeführt wird. Anschluss WLAN-Antenne GPRS Ethernet IP-Adresse Netzmaske Standardgateway Sonstiges 192.168.2.3 255.255.255.0 kein automatisch automatisch automatisch T-D1 192.168.1.2 255.255.255.0 kein → Proxy Tabelle 4.1: Netzwerkkonfiguration des Laptops In Tabelle 4.2 werden die im Prototypen verwendeten Einstellungen des Proxyservers gezeigt. Er erhält über das universitätseigene Netz eine feste, weltweit gültige IP-Adresse. Über diesen Zugang kann auf Inhalte des Internets zugegriffen werden. Andererseits muss das mobile Endgerät den Proxyserver bei Nutzung von GPRS aus dem weltweiten Inter” net heraus“ erreichen können. Die Netzanbindung darf daher keine Einbahnstraße“ sein. ” Der auf dem Proxyserver laufende Handover-Manager muss von außen aus dem Internet heraus erreichbar sein. Ein einziger TCP-Port reicht dabei aus, falls eine vorgeschaltete Firewall eingehende Verbindungswünsche blockieren sollte. Dieses Problem trat während der Inbetriebnahme des Prototyps auf. Die universitätseigene Firewall blockierte alle eingehenden Ports bis auf TCP 22 (für SSH). Daher wartet der Handover-Server auf Port 22 auf eingehende Verbindungen. Bei der WLAN-Anbindung wurde ein weiterer Rechner eingesetzt (zur Konfiguration der Netzschnittstellen siehe Tabelle 4.3). Er weist einen PCMCIA-Steckplatz zur Aufnahme einer WLAN-Karte auf. Als Betriebssystem kommt Microsoft Windows XP zum Einsatz. Nach der Installation der Treiber gab es keine Probleme bei der Nutzung der Karte. Zwischen Proxyserver und dieser Relaisstation“ erfolgt der Datenaustausch über ” Ethernet. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 83 Anschluss IP-Adresse Netzmaske Standardgateway Sonstiges Ethernet 141.24.92.184 255.255.252.0 141.24.95.254 → Uni-Netz Ethernet 192.168.1.1 255.255.255.0 kein → Laptop Ethernet 192.168.1.1 255.255.255.0 kein → WLAN-AP Bridge 192.168.1.1 255.255.255.0 kein ETH1“+ ETH2“ ” ” Tabelle 4.2: Netzwerkkonfiguration des Proxyservers Anschluss Ethernet PCMCIA-WLAN IP-Adresse Netzmaske Standardgateway Sonstiges 192.168.1.2 255.255.255.0 kein → Proxy 192.168.2.2 255.255.255.0 kein Tabelle 4.3: Netzwerkkonfiguration des WLAN-Zugangspunktes 4.7.2. Beeinflussung durch Handoverereignisse Nachdem der Prototyp erfolgreich aufgebaut und die Programme installiert wurden, konnte der Handovermechanismus unter praxisnahen Bedingungen getestet werden. Von besonderem Interesse waren dabei die durch Handoverereignisse verursachten Ausfallzeiten und wie sich diese auf den Datenstrom auf Anwendungsebene auswirken. Während des normalen Datenaustausches werden die Verzögerungszeiten und die erreichbare Datenrate im Wesentlichen durch die Eigenschaften des gerade aktiven Netzzuganges bestimmt. Ethernet erlaubt beispielsweise eine höhere Datenrate als GPRS. Durch Eigenbewegung der mobilen Geräte kann das aktive Netz abreißen und der Aufbau eines Ersatznetzes erforderlich sein. Je nach ausgewählter Handover-Strategie steht bei einem solchen Abriss bereits ein vorsorglich aufgebauter Ersatzlink bereit ( Soft-“ ” und Softer-Handover“) oder auch nicht ( Hard Handover“). Je nachdem wie lange es ” ” dauert, bis der Abriss bemerkt und der Ersatzlink aufgebaut ist, können keine Daten an die Gegenstation versendet werden. Allerdings verlangt nicht jeder Netzzugang eine vorherige Einwahl. Bei Ethernet und WLAN wird lediglich zyklisch geprüft, ob eine nutzbare Internetanbindung vorliegt. tG = tA + tE + tAD (4.5) Nach der Abrisserkennungsdauer tA wird der Verbindungsabriss vom Betriebssystem und damit vom Programm registriert. Nach einer Handover-Entscheidung, deren Dauer vernachlässigt werden kann, wird ein ausgewählter Ersatzlink aufgebaut. Dieser Vorgang dauert im Fall von GPRS bis zu tE = 36 Sekunden (siehe Tabelle 4.4). Nach Aufbau der Internetverbindung muss der Datenkanal vom Handover-Client zum Handover-Server 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 84 etabliert werden (dies dauert tAD ). Erst wenn bis zu diesem Punkt alle Schritte durchlaufen wurden, kann mit der Übertragung der Nutzdaten begonnen werden (Gesamtausfallzeit tG ). Dass bei dem Verbindungsabriss verloren gegangene Datenfragmente erneut übertragen werden müssen, wurde hierbei noch nicht berücksichtigt. Diese zusätzliche Verzögerungszeit ist stark vom verloren gegangenen Datenvolumen (abhängig von der genutzten Datenrate während des Abrisses) und der Übertragungsleistung des Ersatzlinks abhängig. Bei Verwendung eines Softer-Handover“-ähnlichen Mechanismus kann ” diese Ausfallzeit komplett kompensiert werden. Netzzugang und Einwahldauer bzw. AbrissAufbaudauer Art der Beeinflussung Erkennungsdauer erkennungsdauer Datenkanal (in s) (in s) (in ms) Ethernet 0, 92 . . . 6, 66 0, 77 . . . 2, 82 110 . . . 150 (→ Kabel) 3, 40 ± 2, 06 1, 53 ± 0, 66 129 ± 12 WLAN 2, 70 . . . 7, 33 0, 18 . . . 0, 63 370 . . . 631 (→ USB-Kabel) 5, 33 ± 1, 46 0, 49 ± 0, 20 472 ± 76 GPRS, erstmalig 21, 41 . . . 22, 29 1, 27 . . . 5, 33 3976 . . . 4767 → 1. Häufung 21, 66 ± 0, 32 3, 19 ± 1, 87 4307 ± 198 GPRS, erstmalig 36, 50 . . . 37, 83 s. o. s. o. → 2. Häufung 36, 75 ± 0, 53 s. o. s. o. GPRS, Wdhlg. 13, 00 . . . 16, 87 s. o. s. o. 15, 22 ± 0, 88 s. o. s. o. Tabelle 4.4: Für Auf- und Abbau von Netzwerkverbindungen benötigte Zeitspannen. Die genannten Zeiten sind abhängig von den Eigenschaften des abreißenden Netzzuganges, den Eigenschaften des Ersatznetzes und der Handover-Strategie. Die Zeiten für die einzelnen Ereignisse sind in Tabelle 4.4 aufgeführt. Diese Zeiten wurden teilweise innerhalb der Software ermittelt (→ Dauer einer Einwahl, Aufbau des Datenkanals) oder mit Hilfe einer Stoppuhr (→ Abrisserkennungsdauer bei Entfernung einer Hardwarekomponente) gemessen. Bei den angegebenen Zeiten handelt es sich bereits um die empirischen Mittelwerte und Standardabweichungen, welche aus den in Anhang B hinterlegten Messwerten berechnet wurden. Je nach Handover-Strategie werden die Ersatzlinks bereits vor oder erst nach Abriss des Hauptlinks aufgebaut. Dadurch ergeben sich unterschiedlich lange Ausfallzeiten, welche nach Formel 4.5 berechnet wurden und in Tabelle 4.5 dargestellt sind. Die dort geklammert dargestellten Werte sind nicht praxisrelevant. Ethernet und WLAN müssen sich nicht explizit einwählen und die GPRS-Verbindung wird im Testaufbau schon im Vorfeld aufgebaut, um die lange Einwahlzeit im Handoverfall zu vermeiden. Alle dort 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 4 DER PROTOTYP 85 genannten Zeiten beziehen sich auf abreißende Links, wie im Falle des gezogenen Ethernetkabels. Es handelt sich um erzwungene Handover, welche für eine gewisse Ausfallzeit sorgen. Diese hält mindestens solange an wie das Betriebssystem und das Backend benötigen um den Linkverlust zu erkennen. Im Gegensatz dazu gibt es die freiwilligen Handover, bei denen der aktive Link nicht abreißt, aber ein besser geeigneter Ersatzlink verfügbar wird. Dieser wird ohne Ausfall des Datenstromes aktiv, da der alte Datenstrom erst unterbrochen werden braucht, wenn der neue Datenstrom etabliert wurde. Der Handover erzeugt damit keinen Ausfall des Datenstromes. Szenario Hard Handover“ Soft Handover“ ” ” Kein Ersatzlink Ersatzlink +Datenkanal Linkverlust“ aufgebaut aufgebaut aufgebaut ” vorher: nachher: (x̄ ± ∆x in ms) (x̄ ± ∆x in ms) (x̄ ± ∆x in ms) Ethernet → WLAN (7332 ± 1604) 2002 ± 664 1530 ± 660 Ethernet → GPRS (21057 ± 1118) 5837 ± 689 1530 ± 660 WLAN → Ethernet (4019 ± 2070) 619 ± 200 490 ± 200 WLAN → GPRS (20017 ± 924) 4797 ± 281 490 ± 200 GPRS → Ethernet (6719 ± 2782) 3319 ± 1870 3190 ± 1870 GPRS → WLAN (8992 ± 2374) 3662 ± 1872 3190 ± 1870 Tabelle 4.5: Ausfallzeiten durch Linkabrisse (6= freiwillige Linkwechsel). Sie beziehen sich auf den gesicherten Datenstrom, welcher in die Sockets geschrieben wird. Die geklammerten Werte sind nicht praxisrelevant (siehe Text), wurden aber der Vollständigkeit halber mit berechnet. Bisher blieb jedoch als weiterer Aspekt der SlowStart-Mechanismus von TCP (siehe Abschnitt 2.1) unberücksichtigt. Nach Aufbau des Ersatzlinks kann anfangs noch nicht mit der maximalen Datenübertragungsrate gesendet werden. Stattdessen dauert es ein paar Sekunden, bis sich die Datenrate an das erreichbare Maximum angenähert hat. Erst nach dieser zusätzlichen Zeitspanne ist der Handover-Mechanismus mit seinen Auswirkungen komplett durchlaufen. Diese Verzögerung lässt sich durch die Verwendung eines Softer Handover“ kompensieren. Die über den Hauptlink versendeten Daten werden zu” sätzlich über einen Ersatzlink geleitet, wodurch der SlowStart-Mechanismus bereits vor dem eigentlichen Abriss durchlaufen wird. Zusätzlich treten bei dieser Variante keine negativ wirkenden Datenverluste am Empfänger auf, da die Daten während des Handovers redundant versendet werden und bei Ausfall keine Informationen verloren gehen. Damit ist, wenn man den zusätzlichen Aufwand für die redundante Datenversendung vernachlässigt, ein Umschwenken des Nutzdatenstromes möglich, ohne dass es zu einer zwischenzeitlichen Unterbrechung auf Anwendungsebene kommt. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 5 ZUSAMMENFASSUNG 86 5. Zusammenfassung Die vorliegende Diplomarbeit beschäftigt sich mit den Problemen mobiler Endgeräte beim Zugriff auf das Internet. Das sich im breiten Einsatz befindende Protokoll TCP ist nicht in der Lage, mit kurzzeitigen Unterbrechungen eines Netzzuganges zurecht zu kommen. Bei einer erneuten Einwahl erhält das mobile Endgerät eine abweichende IPAdresse zugewiesen, was zum Verlust aller aktiven Transportschichtverbindungen führt. Motivation dieser Diplomarbeit war die Suche nach einer Lösung zu diesem Problem. Das mobile Endgerät sollte zudem in die Lage versetzt werden, bereits bei drohendem Verbindungsabriss einen alternativen Internetzugang zu aktivieren. Der Nutzdatenstrom soll bei Eintritt des Abrisses umgeschwenkt“ werden. Dieser als vertikaler Handover“ ” ” bezeichnete Mechanismus nutzt hierbei unterschiedliche Netzzugangstechnologien. Dazu zählen: Ethernet“, Wireless LAN“ und GPRS. ” ” Vor Arbeitsaufnahme war bereits ein Handover-tauglicher Mechanismus verfügbar. Er basiert auf den Protokollen Mobile IP“ und IPv6“. Mit Hilfe eines Proxyservers kann ein ” ” vertikaler Handover zwischen GPRS und WLAN durchgeführt werden. Hier wirken die in Mobile IP“ integrierten Mechanismen, welche im Falle eines Zugangspunktwechsels ” den Aufbau eines neuen Tunnels“ veranlassen. Bevor dieser Tunnel“ nicht vollstän” ” dig aufgebaut und alle an der Datenübertragung beteiligten Systeme über die neuen Gegebenheiten informiert wurden, findet kein Transport von Nutzdaten statt. Ein so genannter weicher Handover“, bei dem nur eine geringe bis keine Unterbrechnung des ” Nutzdatenstromes auftritt, ist mit diesem Ansatz nicht möglich. Das mit dem vertikaler ” Handover“ verwandte Problem Kanalbündelung“ ist ebenfalls nicht realisierbar. ” Damit war es notwendig, nach einem anderen Lösungsansatz zu suchen. Es wurde sich dabei auf das Protokoll SOCKSv5“ bezogen. Es stellt ein universelles Proxyprotokoll ” dar, welches es erlaubt, Datenströme beliebiger UDP- und TCP-basierter Anwendungen über einen Proxyserver zu leiten. Diese Proxysoftware, sofern sie auf dem mobilen Endgerät installiert ist, isoliert die lokal laufenden Anwendungen von den negativen Auswirkungen der mobilen Teilstrecke (der Luftschnittstelle“). Zusätzlich muss das andere ” Ende der mobilen Teilstrecke abgeschlossen werden. Dazu wird ein Proxyserver im Festnetz hinter der Luftschnittstelle angesiedelt. Er isoliert die Server des festen Internet von der Luftschnittstelle. Es wurden zwei Programme erstellt, welche die mobile Teilstrecke zu beiden Seiten hin abschließen. Auf jedem mobilen Endgerät läuft ein Handover-Client. Er ist für die Kopplung an die lokal laufenden Anwendungen verantwortlich und gibt sich gegenüber 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 5 ZUSAMMENFASSUNG 87 den Anwendungen als SOCKSv5-Proxyserver aus. Auf dem Proxy, ein zwischen mobilem Endgerät und Server angesiedelter Rechner, läuft der Handover-Server. Er sorgt für die Kopplung an den ebenfalls auf dem Proxy laufenden SOCKSv5-Server. Gegenüber dem SOCKSv5-Server gibt sich der Handover-Server als SOCKSv5-Client aus. Damit werden sowohl die auf dem mobilen Endgerät laufenden Anwendungen als auch die Server des festen Internet (einschließlich des SOCKSv5-Servers) von der Luftschnittstelle mit ihren negativen Auswirkungen auf die Transportschichtverbindungen isoliert. Zwischen Handover-Client und -Server kommt ein selbstentwickelter Übertragungsmechanismus zum Einsatz. Er kompensiert die bei einem Handover auftretenden Verbindungsabrisse, erkennt Paketverluste und sorgt selbstständig für Wiederholungen (im Falle eines Datenverlustes). Der Übertragungsmechanismus besteht aus drei hintereinander geschalteten Komponenten. Dies sind die SOCKSv5-Ankopplung, der Multiplexer/Demultiplexer und die Transportsicherung. Eine weitere Aufgabe bestand im Entwurf einer geeigneten Handoverstrategie. Dazu wurden die zur Ermittlung des optimalen Netzes notwendigen Algorithmen hergeleitet und implementiert. Anhand einer vom Nutzer zu wählenden Zielstellung – er muss sich beispielsweise entscheiden, ob er lieber eine maximale Datenrate wünscht oder ob stattdessen die Übertragungskosten minimiert werden sollen – und der Kenntnis der Eigenschaften der verfügbaren Netzzugänge wird eine Netz-Nutzungsreihenfolge“ ermittelt. ” Falls gerade kein Netz verwendet werden kann, ist das mobile Endgerät zeitweise iso” liert“. Die Sitzung zwischen Handover-Client und -Server wird in einen Wartezustand versetzt, bei dem keine Transportschichtverbindungen abreißen. Für den praktischen Test wurde ein Prototyp erstellt, welcher auf der vorgestellten Struktur basiert. Er ermöglicht vertikale Handover zwischen Ethernet, WLAN und GPRS. Darüber hinaus kann auf Wunsch eine Kanalbündelung aktiviert werden. Durch die Möglichkeit des weichen und weicheren Handovers“ kann eine Unterbrechung des ” Datenstromes auf Anwendungsebene verhindert werden. Aus Sicht der Anwendungen ändert sich lediglich die Rate, mit der Daten versendet und empfangen werden können. Sie ist von den Eigenschaften der Netzzugänge vor- und nach dem Handover abhängig. Die entwickelten Programme wurden mit besonderem Blick auf Portabilität entwickelt. Sie funktionieren bereits unter den Betriebssystemen GNU/Linux und Microsoft Windows. Eine Portierung auf Windows CE ist denkbar, erfordert allerdings die Unterstützung von SOCKSv5 durch die jeweiligen Anwendungen. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 6 AUSBLICK 88 6. Ausblick Der in dieser Diplomarbeit entwickelte Handovermechanismus ist geeignet, um einen vertikalen Handover zwischen den Netzzugangstechnologien Ethernet“, WLAN“ und ” ” GPRS“ durchzuführen. Dies wird durch den ebenfalls erstellten Prototyp bestätigt. ” Dabei sind noch weitere Verbesserungen denkbar. Das in Abschnitt 4.1.4 vorgestellte Frontend konnte aus Zeitgründen nicht mehr im Rahmen dieser Diplomarbeit erstellt werden. Somit existiert zum aktuell vorliegenden Stand der Entwicklung noch keine Möglichkeit der Interaktion mit dem Anwender. Diese wird aber benötigt, damit beispielsweise eine Zielstellung für den Handover-Entscheider ausgewählt werden kann. Weiterhin benötigt der Nutzer Zugriff auf den aktuellen Status einer jeden verfügbaren Netzzugangsschnittstelle. Wenn zur Nutzung des einzigen verbleibenden Weges“ auf GPRS geschaltet wird, ist der Anwender über die anfallenden ” Volumenkosten zu unterrichten. Deshalb ist es sinnvoll, wenn im Zuge der Weiterentwicklung der Software ein Frontend erstellt wird. Vorher muss aber das Kommunikationsprotokoll zwischen Frontend und Handover-Client entworfen werden. Es muss mächtig“ genug sein, um alle denk” baren Statusinformationen und Nutzerkommandos zwischen den beiden Komponenten transportieren zu können. Weitere Verbesserungen können am Handover-Entscheidungsalgorithmus vorgenommen werden. Im erreichten Entwicklungsstadium werden noch keine Informationen über die Empfangsfeldstärke der einzelnen Netzzugänge ausgewertet. Wie in Abschnitt 3.2.1 erläutert, kann so ein drohender Verbindungsabriss bereits im Vorfeld erkannt werden. Problematisch sind hierbei die Backends, welche die Kopplung an die jeweilige Zugangshardware vornehmen. Sie sind für die Ermittlung der Empfangsfeldstärke verantwortlich. Es muss untersucht werden, über welche Mechanismen ein Backend an die jeweiligen Parameter gelangen kann. Denkbar wäre eine Zusammenarbeit mit dem Hardwaretreiber oder der Einsatz von externen Programmen. Es sind beispielsweise Programme verfügbar, welche die Empfangsfeldstärke einer WLAN-Hardware auslesen können. Dabei reicht es aber nicht aus, wenn der ermittelte Wert vom Programm in einem Fenster angezeigt wird. Er muss stattdessen maschinenlesbar“ in Form eines Zahlenwertes vorliegen, ” damit ihn das Backend anschließend an den Handover-Client übergeben kann. Vor einem Einsatz in der Praxis müsste der Prototyp weitere Tests außerhalb des vorgestellten Versuchsaufbaus bestehen. In den durchgeführten Untersuchungen waren meist ein, maximal zwei mobile Endgeräte am Handover-Server angemeldet. Bisher wur- 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 6 AUSBLICK 89 de das System noch nicht auf seine Fähigkeit zu skalieren“ hin untersucht. Dabei wird ” die Frage Wie viele Sitzungen können gleichzeitig bearbeitet werden, ohne dass der ” Handover-Server wegen Überlast zum Flaschenhals“ wird?“ geklärt. Ein weiteres Pro” blem wird deutlich: Der Proxyserver ist ein so genannter single point of failure“. Im Falle ” einer Störung (→ Überlast oder Ausfall) des Proxyservers bricht das ganze System zusammen. Es handelt sich um den wunden Punkt“ des Gesamtsystems. Ein Ausweg bietet ” die Verwendung mehrerer voneinander unabhängiger Proxyserver, wie es beispielsweise im Domain Name Service“ (DNS) angewendet wird. Auch bei stark besuchten Websei” ten wird ein solcher Mechanismus eingesetzt. Beim so genannten load balancing“ werden ” eingehende Aufträge (→ Sitzungen) auf unterschiedliche Server verteilt. Die Last kann so auf verschiedene Rechner ausgelagert werden. Wenn ein einzelner Rechner ausfällt, bleibt das Gesamtsystem weiterhin intakt. Ein solcher Ansatz wäre auch auf das vorgeschlagene Handover-System übertragbar. Dazu müssten nur weitere Proxyserver vorgesehen werden. Entweder überlässt man dem Nutzer die Wahl eines Proxyservers (beispielsweise durch Eingabe einer IP-Adresse) oder es wird ein Lastverteiler implementiert. Dieser könnte Sitzungen im Aufbaustadium“ an einen geeigneten Proxyserver übergeben. Ein ” Sitzungstransfer zwischen einzelnen Proxyservern untereinander ist aber nicht möglich. Dies würde die Fähigkeiten von TCP in Bezug auf die letzte Teilstrecke zwischen Proxyserver und Diensteerbringer überfordern und einen Verbindungsabriss provozieren. Momentan kommt auf der mobilen Teilstrecke zwischen Handover-Client und Handover-Server TCP zum Einsatz. TCP erweist sich aber wegen seines integrierten Slow” Start-Mechanismus“ bei manchen Netzzugangstechnologien als ungeeignet. Bei auftretenden Verlusten einzelner Datenpakete geht TCP von einer Stausituation im Netz aus und drosselt die Datenrate. Schon bei geringen Fehlerraten kann der Datenstrom über TCP fast vollständig zum Erliegen kommen. Es wäre daher vorteilhaft, wenn zwischen Handover-Client und -Server ein anderes Protokoll als TCP eingesetzt wird. Bei entsprechender Eignung für fehlerbehaftete“ Übertragungsstrecken ist eine höhere Datenrate ” zu erwarten. Der Link wird dabei besser ausgenutzt. In Abschnitt 2.3 wurden bereits verschiedene Erweiterungen zu TCP vorgestellt. Ihre Bewertung erfolgte allerdings mit Blick auf ihre Eignung zur Realisierung eines vertikalen Handovers. Die genannten Protokolle müssen nochmals mit besonderem Blick auf die reine Datenübertragung über fehleranfällige Übertragungsstrecken untersucht werden. Ansonsten spricht nichts gegen einen Praxiseinsatz des vorgestellten Systems. Im Sinne einer breiten Installationsbasis müssen noch die Backends für die Betriebssysteme GNU/Linux und Microsoft Windows CE erstellt werden. Es war nicht bekannt, inwiefern 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers 6 AUSBLICK 90 Windows CE mit seinen mitgelieferten Anwendungen in der Lage ist einen SOCKSv5Server zu nutzen. Das müsste vor Portierung der Backends auf Windows CE geprüft werden. Zudem wäre ein umfangreicher Test mit mehreren wirklich12 mobilen Endgeräten – dies könnte im Umfeld des Ilmenauer Campus geschehen – ein interessantes Projekt für die Zukunft. 12 Der als Prototyp bezeichnete Versuchsaufbau sieht keine umfassende Mobilität“ vor. Die nächste ” Ausbaustufe würde mehrere WLAN-Zugangspunkte umfassen. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers A KONFIGURATIONSDATEIEN 91 Anhang A. Konfigurationsdateien Handover-Server clients_portnum 22 socksserver_portnum 1080 Abbildung A.1: Konfigurationsdatei hoserver.conf Handover-Client backends_portnum 2000 frontends_portnum 2001 socksapp_portnum 1080 Abbildung A.2: Konfigurationsdatei hoclient.conf 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers A KONFIGURATIONSDATEIEN 92 DANTE SOCKSv5 Server logoutput: stderr /home/florian/dante.log internal: 127.0.0.1 port = 1080 external: eth0 method: none clientmethod: none user.privileged: proxy user.notprivileged: nobody compatibility: sameport connecttimeout: 30 iotimeout: 86400 client pass { from: 127.0.0.1/32 port 1-65535 to: 127.0.0.1/32 method: none } client block { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect error } pass { from: 127.0.0.1/32 to: 0.0.0.0/0 protocol: tcp udp } pass { from: 0.0.0.0/0 to: 127.0.0.1/32 protocol: tcp udp } block { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect error } Abbildung A.3: Konfigurationsdatei /etc/danted.conf (Debian GNU/Linux) 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers A KONFIGURATIONSDATEIEN 93 DANTE SOCKSv5 Client debug: 1 logoutput: /socks.log #resolveprotocol: udp #resolveprotocol: tcp route { from: 0.0.0.0/0 to: 0.0.0.0/0 via: 127.0.0.1 port = 1080 proxyprotocol: socks_v5 } route { from: 0.0.0.0/0 to: . via: 127.0.0.1 port = 1080 proxyprotocol: socks_v5 } Abbildung A.4: Konfigurationsdatei /etc/socks/socks.conf (Gentoo GNU/Linux) 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers A KONFIGURATIONSDATEIEN 94 Backends Ethernet-Backend client_ip 127.0.0.1 client_portnum 2000 server_ip 192.168.1.1 server_portnum 22 ip_string 192.168.1.3 Abbildung A.5: Konfigurationsdatei backend_ethernet.conf WLAN-Backend client_ip 127.0.0.1 client_portnum 2000 server_ip 192.168.2.2 server_portnum 2000 ip_string 192.168.2.3 Abbildung A.6: Konfigurationsdatei backend_wlan.conf 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers A KONFIGURATIONSDATEIEN 95 GPRS-Backend client_ip 127.0.0.1 client_portnum 2000 server_ip 141.24.92.184 server_portnum 22 Abbildung A.7: Konfigurationsdatei backend_gprs.conf TCP-Relais (WLAN-Zugangspunkt) listen_portnum 2000 server_ip 192.168.1.1 server_portnum 22 Abbildung A.8: Konfigurationsdatei tcprelay.conf 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers B MESSUNGEN AM PROTOTYP 96 B. Messungen am Prototyp Die folgenden Tabellen zeigen die am Prototyp gemessenen Zeiten. Pro Messreihe wurden jeweils zwölf Messwerte aufgenommen. Diese Zahl erschien ausreichend. Es wurden keine hochgenauen“ Ergebnisse benötigt, sondern nur eine grobe Aussage über die in der ” Praxis zu erwartenden Zeitspannen. Zu jeder Messreihe werden der empirische Mittelwert und die empirische Standardabweichung mit angegeben. Bei der Messreihe zu den erstmaligen Verbindungsaufbauzeiten bei GPRS gibt es eine Verteilung mit zwei Häufungspunkten. Diese Messreihe, gezeigt in Tabelle B.3, wird gesondert betrachtet. Die Messwerte werden gruppiert und für jede der beiden Teilmengen eine gesonderte Betrachtung des empirischen Mittelwertes und der empirischen Standardabweichung durchgeführt. x̄ ∆x Erkennungsdauer Erkennungsdauer Dauer für Aufbau verfügbar“ Abriss“ des Datenkanals ” ” (in s) (in s) (in ms) 5,05 1,77 130 1,00 0,87 131 3,03 0,77 130 6,66 1,48 130 0,92 1,00 150 1,81 2,30 140 1,82 1,04 120 5,97 1,20 110 4,55 1,02 130 2,95 2,07 140 5,63 2,03 131 1,57 2,82 110 3,40 1,53 129 2,06 0,66 12 Tabelle B.1: Messwerte zur Netzanbindung über Ethernet 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers B MESSUNGEN AM PROTOTYP x̄ ∆x 97 Erkennungsdauer Erkennungsdauer Dauer für Aufbau verfügbar“ Abriss“ des Datenkanals ” ” (in s) (in s) (in ms) 4,50 0,57 390 7,33 0,45 531 6,20 0,63 631 2,70 0,77 481 4,51 0,42 550 4,55 0,18 370 4,49 0,58 450 6,72 0,77 491 6,07 0,59 490 3,72 0,18 431 6,03 0,40 471 7,19 0,37 380 5,33 0,49 472 1,46 0,20 76 Tabelle B.2: Messwerte zur Netzanbindung über WLAN 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers C INSTALLATION DER SOFTWARE Einwahldauer x̄ ∆x x¯1 ∆x1 x¯2 ∆x2 (in s) 13,00 (36,53) 15,73 (21,58) 16,87 (36,50) 14,82 (21,41) 15,39 (22,29) 15,27 (36,53) 15,55 (21,66) 15,15 (36,52) 15,03 (21,46) 15,23 (36,57) 15,59 (37,83) 14,99 (21,57) 15,22 (29,20) 0,88 (7,89) (21,66) (0,32) ( 36,75) (0,53) 98 Erkennungsdauer Dauer für Aufbau Abriss“ des Datenkanals ” (in s) (in ms) 1,27 (2,23) 4347 1,48 (2,20) 4036 1,34 (1,63) 3976 1,30 (2,03) 4347 5,23 (1,87) 4327 1,48 (3,13) 4346 5,07 (2,36) 4246 5,33 (1,87) 4216 1,62 (2,15) 4436 4,76 (1,89) 4286 4,65 (2,13) 4767 4,76 (3,09) 4356 3,19 (2,22) 4307 1,87 (0,46) 198 Tabelle B.3: Messwerte zur Netzanbindung über GPRS. Die geklammerten Aufbauzei” ten“ beschreiben erstmalige Einbuchungen, die nicht geklammerten nichterstmalige Einbuchungen. Die Abrisse wurden durch Ziehen der PCMCIAKarte ermittelt. Die geklammerten Werte wurden bei der manuellen Deaktivierung des Treibers gemessen C. Installation der Software Der Handover-Server, der Handover-Client und die Backends müssen bei der Installation aus den Quelltexten übersetzt werden. In diesem Anhang werden die zur Installation notwendigen Schritte erklärt und auf die im Testaufbau eingesetzten Konfigurationsdateien eingegangen. C.1. Aufsetzen des Proxyservers Auf dem Proxyserver im Prototyp läuft das Betriebssystem Debian GNU/Linux“ [Debi]. ” Auf ihm werden der SOCKSv5-Proxyserver Dante“ [Infe] und der selbst erstellte Hand” over-Server gestartet. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers C INSTALLATION DER SOFTWARE 99 C.1.1. Installation des SOCKSv5-Proxyservers Je nach eingesetzter Linux-Distribution müssen unterschiedliche Werkzeuge zur Installation des SOCKSv5-Proxyservers eingesetzt werden. Bei Debian GNU/Linux“ erfolgt ” die Installation mit Hilfe des Kommandos apt-get dante-server. Nach der Installation folgt die Konfiguration des SOCKSv5-Proxyservers. Er wird so eingestellt, dass nur Anfragen vom Loopback-Device“, also der IP-Adresse 127.0.0.1, ” akzeptiert werden. Bei Debian liegt die Konfigurationsdatei unter /etc/danted.conf. Abbildung A.3 auf Seite 92 zeigt die im Prototyp verwendete Version. Mit der Anpassung dieser Datei ist die Konfiguration des Dante“ SOCKSv5-Proxyser” vers abgeschlossen. Er wird anschließend durch den Befehl /etc/init.d/danted start gestartet. Mit Hilfe des Programmes telnet kann der Proxyserver getestet werden. Abbildung C.1 zeigt zwei Telnetaufrufe. Der erste Anruf an IP-Adresse 127.0.0.1 erreicht den SOCKSv5-Proxyserver. Wird die IP-Adresse 192.168.1.1 verwendet – sie ist ebenfalls dem Proxyserver zugewiesen – schlägt der Anruf fehl. Der SOCKSv5-Proxyserver ist nur für lokal laufende Programme erreichbar. florian@spielwiese:~$ telnet 127.0.0.1 1080 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is ’^]’. Connection closed by foreign host. florian@spielwiese:~$ telnet 192.168.1.1 1080 Trying 192.168.1.1... telnet: Unable to connect to remote host: Connection refused florian@spielwiese:~$ Abbildung C.1: Test des SOCKSv5-Proxyservers mit Hilfe von Telnet C.1.2. Installation des Handover-Servers Der Handover-Server ist der Ansprechpartner der auf den mobilen Endgeräten laufenden Handover-Clients. Gegenüber dem SOCKSv5-Proxyserver verhält sich der HandoverServer wie ein SOCKSv5-Client“. Ein solcher stellt Anfragen in Form von SOCKSv5” Kommandos und nimmt die Ergebnisse des SOCKSv5-Proxyservers entgegen. Auf der anderen Seite stehen die mobilen Endgeräte mit ihren Handover-Clients, welche über 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers C INSTALLATION DER SOFTWARE 100 unterschiedliche Zugriffsmedien mit dem Handover-Server in Kontakt treten können. Der Handover-Server wird in mehreren Schritten installiert: 1. Entpacken des Quelltextarchives: Die Quellen der Linuxversion liegen als so genanntes Tar-GZip“-Archiv vor. Es ” kann, wie in Abbildung C.2 dargestellt, im Heimatverzeichnis des Anwenders entpackt werden. Der Inhalt des Archives wird in das Unterverzeichnis ./handover/ geschrieben. florian@spielwiese ~ $ tar -xzvf handover.tgz handover/ handover/src/ ... ... [Viele Einträge entfernt] ... ... handover/templates/h handover/templates/cpp florian@spielwiese ~ $ Abbildung C.2: Entpacken des Quelltextarchives 2. Übersetzen der Quelltexte: Die Quelltexte werden in zwei Schritten übersetzt. Im ersten Schritt werden die Skripte zur automatischen Übersetzung an das vorliegende System angepasst. Dieser Schritt wird durch den Befehl ./configure eingeleitet. Die Ausführung dauerte auf dem Proxyserver des Autors (ein System mit Pentium-90 Prozessor und 72 MiB Arbeitsspeicher) etwas über zwei Minuten, auf dem Entwicklungsrechner (Ein Dual AMD Athlon MP 2000+ mit 512 MiB Arbeitsspeicher) war der Durchlauf nach 15 Sekunden beendet. Der Befehl ./configure prüft das vorliegende System, ob es in der Lage ist, die Übersetzung vorzunehmen. Sollten notwendige Werkzeuge fehlen, bricht der Durchlauf mit einer Fehlermeldung ab. Das entsprechende Programmpaket muss dann nachinstalliert werden. Sollte ./configure ohne Fehlermeldungen bis zum Ende durchgelaufen sein, können im nächsten Schritt die Quelltexte übersetzt werden. Dazu reicht die Eingabe des Befehls make. Dieser Schritt dauerte auf dem Pentium-90 System neun Minuten; der Entwicklungsrechner war nach 30 Sekunden fertig. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers C INSTALLATION DER SOFTWARE 101 3. Installation der übersetzten Programme: Nach dem vollständigen Durchlauf von make müssen die übersetzten Programme in das System kopiert werden. Dies erledigt der Befehl make install. Zu seiner Ausführung werden Administratorrechte benötigt. Abbildung C.3 zeigt die notwendigen Schritte. Der ausführbare Handover-Server liegt anschließend im Verzeichnis /usr/local/bin/. florian@spielwiese ~/handover $ su Password: root@spielwiese /home/florian/handover # make install Making install in src make[1]: Entering directory ‘/home/florian/handover/src’ ... ... [Viele Einträge entfernt] ... root@spielwiese /home/florian/handover # exit exit florian@spielwiese ~/handover $ Abbildung C.3: Installation des Handover-Servers C.1.3. Konfiguration des Handover-Servers Der Handover-Server wird über eine Konfigurationsdatei mit seinen Einstellungen versorgt. In Abbildung A.1 auf Seite 91 werden die im Prototyp verwendeten Einstellungen gezeigt. Sie haben die folgenden Aufgaben: • clients_portnum 22 Auf dieser Portnummer nimmt der Handover-Server die eingehenden Verbindungen der Handover-Clients entgegen. • socksserver_portnum 1080 Mit diesem Eintrag wird dem Handover-Server die Portnummer des ebenfalls auf dem Proxyserver laufenden SOCKSv5-Proxyservers mitgeteilt. Im vorliegenden Fall ist dies die TCP-Portnummer 1080. C.1.4. Start des Handover-Servers Der Handover-Server muss mit Systemadministratorrechten ( als Root“) gestartet wer” den. Der Grund ist die Portnummer, auf der Verbindungen von Handover-Clients entge- 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers C INSTALLATION DER SOFTWARE 102 gen genommen werden. Es wird die Portnummer 22 verwendet, welche nur von Programmen mit Administratorrechten belegt werden kann. Abbildung C.4 zeigt den Befehl, mit welchem der Handover-Server auf dem Proxyserver gestartet wird. root@spielwiese /home/florian # hoserver hoserver.conf Versuche Config-Datei hoserver.conf einzulesen... Handover-Server gestartet. Abbildung C.4: Start des Handover-Servers C.2. Aufsetzen der mobilen Endgeräte Auf den mobilen Endgeräten kommen drei Arten von Programmen zum Einsatz. Das sind der Handover-Client, die Backends und die Anwendungen. C.2.1. Installation des Handover-Clients und der Backends Der Handover-Client und die Backends wurden im Prototyp für die Zielplattform Microsoft Windows übersetzt. Die eigentliche Softwareentwicklung erfolgte unter GNU/Linux mit Hilfe der freien Entwicklungsumgebung KDevelop“ [KDEb]. ” Unter Microsoft Windows kommt Microsoft Visual Studio“ in Kombination mit Vi” ” sual C++ 6.0“ zum Einsatz. Dabei müssen zu jedem Programm (Handover-Client und Backends) ein neues Projekt (→ Konsolenanwendung“) erstellt und die Dateien aus ” dem Quelltextarchiv in das jeweilige Unterverzeichnis des angelegten Projektes kopiert werden. Die Programme können dann übersetzt werden. Das Ergebnis ist jeweils eine ausführbare Datei mit der Endung .exe. C.2.2. Konfiguration des Handover-Clients Der Handover-Client wird mit Hilfe einer Textdatei konfiguriert. Der Name dieser Textdatei wird als dem Handover-Client beim Start als Kommandozeilenparameter übergeben. Der Inhalt der im Prototyp verwendeten Konfigurationsdatei ist in Abbildung A.2 (Seite 91) dargestellt. Die einzelnen Zeilen haben die folgende Bedeutung: • backends_portnum 2000 Auf dem genannten TCP-Port (→ 2000) nimmt der Handover-Client Backends entgegen. Die Backends müssen diesen Port nutzen um sich am Handover-Client anzumelden. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers C INSTALLATION DER SOFTWARE 103 • frontends_portnum 2001 Auf diesem Port kann sich ein lokal gestartetes Frontend13 am Handover-Client anmelden. Das Frontend bietet dem Nutzer eine grafische Benutzeroberfläche an. • socksapp_portnum 1080 Die auf dem mobilen Endgerät gestarteten Anwendungen müssen zur Internetnutzung einen SOCKSv5-Proxyserver benutzen. Dieser SOCKSv5-Proxyserver ist aus Sicht der Anwendungen der lokal laufende Handover-Client. Er wartet auf der angegebenen Portnummer auf Anfragen. C.2.3. Start des Handover-Clients Der Handover-Client wird über die Kommandozeile gestartet. Der Name der Konfigurationsdatei wird dabei als Kommandozeilenparameter übergeben. Die Ausgabe des Programmes wird in Abbildung C.5 gezeigt. florian@powerstation ~ $ hoclient hoclient.conf Versuche Config-Datei hoclient.conf einzulesen... Handover-Client gestartet. Abbildung C.5: Start des Handover-Clients auf dem mobilen Endgerät Der Handover-Client nimmt nach seinem Start Backends entgegen. Es muss mindestens ein Backend angemeldet sein, damit eine Datenübertragung zwischen HandoverClient und Handover-Server erfolgen kann. C.2.4. Konfiguration der Backends Zu jedem Backend gehört eine eigene Konfigurationsdatei. Deren Inhalt ist von Backend zu Backend unterschiedlich, da die verschiedenen Backends für unterschiedliche Kommunikationshardware entworfen werden. Die drei im Prototyp verwendeten Konfigurationsdateien werden in den Abbildungen A.5 (→ Ethernet), A.6 (→ WLAN) und A.7 (→ GPRS) gezeigt. Die einzelnen Parameter haben die folgende Bedeutung: • client_ip 127.0.0.1 und client_portnum 2000 Auf dieser Adresse wartet der Handover-Client auf neu gestartete Backends. Das Backend versucht ihn unter dieser Adresse zu erreichen. 13 Im Rahmen dieser Diplomarbeit wurde kein solches Frontend erstellt. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers C INSTALLATION DER SOFTWARE 104 • server_ip 192.168.1.1 und server_portnum 22 Wenn das Backend seine Internetverbindung aufgebaut hat, kann der HandoverClient über diese IP-Adresse den Handover-Server erreichen. Auf Grund des Wegewahlproblems (vgl. Abschnitt 3.2.3) muss der Handover-Server für jeden Netzzugangspunkt über eine eigene IP-Adresse erreichbar sein. • ip_string 192.168.1.3 Dieser Parameter ist für das Ethernet-Backend und das WLAN-Backend relevant. Diese ermitteln den Status der Netzzugangshardware über den Befehl ipconfig. Die Ausgabe dieses Befehls wird nach der von ip_string beschriebenen Zeichenfolge (vgl. Abschnitt 4.5) durchsucht. C.2.5. Start eines Backends Die Backends werden wie der Handover-Client über die Kommandozeile gestartet. Als Kommandozeilenparameter wird der Dateiname der Konfigurationsdatei angegeben. Abbildung C.6 zeigt den Befehl zum Starten des GPRS-Backends. Der Aufruf weiterer Backends erfolgt nach dem selben Schema. C:\>backend_gprs_d211.exe backend_gprs.conf Link-Backend "GPRS-Modem Nokia D211" gestartet. Versuche Config-Datei backend_gprs.conf einzulesen... ok Verschicke ATTACH ACK empfangen CONNECT (->Medium) empfangen Hardware soll sich einwaehlen! Keine Hardware gefunden! Verschicke DISCONNECTED Abbildung C.6: Start des GPRS-Backends auf dem mobilen Endgerät. Im vorliegenden Fall war keine Netzzugangshardware verfügbar. C.2.6. Konfiguration der Anwendungen Nachdem der Handover-Client und mindestens ein Backend gestartet wurden, kann eine SOCKSv5-fähige Anwendung das handoverfähige System nutzen. Dazu muss in den Anwendungen die Verwendung eines SOCKSv5-Proxyservers aktiviert werden. Seine IPAdresse lautet 127.0.0.1, seine Portnummer 1080. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers LITERATUR 105 Literatur [Allm99] M. Allman. RFC2581: TCP Congestion Control. Network Working Group, http://www.faqs.org/rfcs/rfc2581.html, April 1999. This document defines TCP’s four intertwined congestion control algorithms: slow start, congestion avoidance, fast retransmit, and fast recovery. [CVSP+ ] Rajiv Chakravorty, Pablo Vidales, Kavitha Subramanian, Ian Pratt und Jon Crowcroft. On Inter-network Handover Performance Using Mobile IPv6. http://citeseer.ist.psu.edu/633547.html. [CVSP+ 04] Rajiv Chakravorty, Pablo Vidales, Kavitha Subramanian, Ian Pratt und Jon Crowcroft. GPRS Cellular And Performance Issues with Vertical Handovers – Experiences from GPRS Cellular and WLAN Hot-spots Integration, 2004. http://citeseer.ist.psu.edu/657636.html. [DAFU] DAFU - Datenfunk Deutschland, http://www.dafu.de/redir/gprs.html. GPRS - General Packet Radio Service. Allgemeine Informationen über GPRS, Übertragungstechnik: Verwendbare Coding Schemes“, Zeitschlitze, ” erreichbare Übertragungsraten im Up- und Downlink. [Debi] Debian, http://www.debian.org. Debian GNU/Linux – Das universelle Betriebssystem. Homepage der Debian-Linux Distribution. [Infe] Inferno Nettverk A/S, http://www.inet.no/dante. Dante – A Free Socks Implementation. A free socks4,5 and msproxy implementation. [KDEa] KDE, http://www.kde.org. KDE Homepage. KDE is a powerful Free Software graphical desktop environment for Linux and Unix workstations. It combines ease of use, contemporary functionality, and outstanding graphical design with the technological superiority of the Unix operating system. [KDEb] KDE, http://www.kdevelop.org. KDevelop – an Integrated Development Environment - Homepage. Das KDevelop Projekt wurde 1998 gestart um eine einfach zu bedienende IDE (Integrated Development Environment = Integrierte Entwicklungsumgebung) für KDE zu erstellen. Seitdem ist KDevelop öffentlich unter der GPL frei verfügbar und unterstützt viele Programmiersprachen. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers LITERATUR 106 [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. [Mozi] The Mozilla Organization, http://www.mozilla.org/products/firefox. Firefox – Rediscover the web. Homepage des Browsers Firefox“. ” [Nets] Netscape, http://www.netscape.de. NETSCAPE.DE Homepage. Homepage des Browsers Netscape“. ” [Netw96a] Network Working Group, http://archive.socks.permeo.com/rfc/ rfc1928.txt. RFC1928: SOCKS Protocol Version 5, March 1996. This memo describes a protocol that is an evolution of the previous version of the protocol, version 4. [Netw96b] Network Working Group, http://archive.socks.permeo.com/rfc/ rfc1929.txt. RFC1929: Username/Password Authentication for SOCKS V5, March 1996. The protocol specification for SOCKS Version 5 specifies a generalized framework for the use of arbitrary authentication protocols in the initial socks connection setup. [Perk96] C. Perkins. RFC2002: IP Mobility Support. Network Working Group, http://www.faqs.org/rfcs/rfc2002.html, October 1996. This document specifies protocol enhancements that allow transparent routing of IP datagrams to mobile nodes in the Internet. Each mobile node is always identified by its home address, regardless of its current point of attachment to the Internet. [Perm] Permeo Technologies, Inc., http://www.socks.permeo.com/AboutSOCKS/ SOCKSOverview.asp. SOCKS Overview. SOCKSv5 is an IETF (Internet Engineering Task Force) approved standard (RFC 1928) generic, proxy protocol for TCP/IP-based networking applications. [Schi00] Jochen Schiller. Mobilkommunikation. Techniken für das allgegenwärtige Internet. net.com: networking and communications. Addison Wesley, München. 557 Seiten, 1. Auflage, 2000. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers LITERATUR 107 [Schn96] Bruce Schneier. Angewandte Kryptographie. Protokolle, Algorithmen und Sourcecode in C. Reihe Informationssicherheit. Addison Wesley, München. 844 Seiten, 1996. [Solo98] James D. Solomon. Mobile IP. The Internet Unplugged. Computer Networking and Distributed Systems. Prentice Hall, New Jersey. 350 Seiten, 1. Auflage, 1998. [StKa98] Mark Stemm und Randy H. Katz. Vertical Handoffs in Wireless Overlay Networks. Mobile Networks and Applications 3(4), 1998, S. 335–350. http: //citeseer.ist.psu.edu/stemm96vertical.html. [WuMa00] J. Wu und G. Maguire. Agent Based Seamless IP Multicast Receiver Handover, 2000. http://citeseer.ist.psu.edu/wu00agent.html. 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers ABBILDUNGSVERZEICHNIS 108 Abbildungsverzeichnis 2.1. SOCKSv5 im ISO/OSI Schichtenmodell . . . . . . . . . . . . . . . . . . . 2.2. SOCKSv5-Protokollablauf . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1. SOCKSv5-Proxyserver in der Praxis . . . . . . . . . . . . . . . . . . . . . 3.2. Aufteilung der SOCKSv5-Serversoftware . . . . . . . . . . . . . . . . . . 3.3. Handoverfreundlicher Übertragungsmechanismus . . . . . . . . . . . . . . 3.4. Handoverclient und -server statt geteiltem SOCKSv5-Proxy . . . . . . . 3.5. Wegewahlproblem bei mehreren Netzanbindungen . . . . . . . . . . . . . 3.6. Lösung des Wegewahlproblems: Subnetzmasken und Standardgateway . . 3.7. Wechsel eines WLAN-Netzes . . . . . . . . . . . . . . . . . . . . . . . . . 3.8. Praxistaugliche Netzstruktur durch Verwendung von Relaisstationen . . . 3.9. Einfacher TCP-Server mit Hilfe von netcat . . . . . . . . . . . . . . . . 3.10. Erfolgreicher Aufbau einer Telnetsitzung . . . . . . . . . . . . . . . . . . 3.11. Weiterleitung von TCP-Verbindungen mit Hilfe von iptables . . . . . . 3.12. Weiterleiten von TCP-Verbindungen mit Hilfe von ssh und sshd . . . . . 4.1. Die Komponenten des Prototyps . . . . . . . . . . . . . . . . . . . . . . . 4.2. Protokollstapel des handoverfähigen Systems . . . . . . . . . . . . . . . . 4.3. Verlust von Datenpaketen durch Handoverereignisse . . . . . . . . . . . . 4.4. Ein Multiplexer kombiniert Datenströme zu einem Gesamtdatenstrom . . 4.5. Blockierungssituation beim Trennen des Gesamtdatenstromes . . . . . . 4.6. Kreditbasierte Flusssteuerung . . . . . . . . . . . . . . . . . . . . . . . . 4.7. Empfangspuffer, zur Flusssteuerung relevante Daten . . . . . . . . . . . . 4.8. Aufbau einer logischen Verbindung . . . . . . . . . . . . . . . . . . . . . 4.9. Abbau einer logischen Verbindung . . . . . . . . . . . . . . . . . . . . . . 4.10. Sitzungen zwischen Proxyserver und mobilen Endgeräten . . . . . . . . . 4.11. Aufbau einer Verbindung zwischen Handover-Server und Handover-Client 4.12. Optimierter Aufbau logischer Verbindungen . . . . . . . . . . . . . . . . 4.13. Mechanismus der Handoverentscheidung . . . . . . . . . . . . . . . . . . 4.14. Aufbau einer Linkmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.15. Sortieren der Backends nach Zielstellung . . . . . . . . . . . . . . . . . . 4.16. Anwendung der Nutzungsreihenfolge . . . . . . . . . . . . . . . . . . . . 4.17. Ausgabe des Befehl ipconfig, wenn kein Ethernet verfügbar ist . . . . . 4.18. Netzzugang über Ethernet laut Befehl ipconfig verfügbar . . . . . . . . 4.19. Schematische Übersicht des Testaufbaus . . . . . . . . . . . . . . . . . . 2004-11-09 / 104 / II99 / 2115 21 22 35 36 36 37 40 41 42 43 44 44 45 46 47 50 51 54 55 56 58 59 60 61 62 70 71 72 73 74 76 77 81 Diplomarbeit Florian Evers ABBILDUNGSVERZEICHNIS A.1. A.2. A.3. A.4. A.5. A.6. A.7. A.8. C.1. C.2. C.3. C.4. C.5. C.6. 109 Konfigurationsdatei hoserver.conf . . . . . . . . . . . . . . . . . . Konfigurationsdatei hoclient.conf . . . . . . . . . . . . . . . . . . Konfigurationsdatei /etc/danted.conf (Debian GNU/Linux) . . . Konfigurationsdatei /etc/socks/socks.conf (Gentoo GNU/Linux) Konfigurationsdatei backend_ethernet.conf . . . . . . . . . . . . Konfigurationsdatei backend_wlan.conf . . . . . . . . . . . . . . . Konfigurationsdatei backend_gprs.conf . . . . . . . . . . . . . . . Konfigurationsdatei tcprelay.conf . . . . . . . . . . . . . . . . . . Test des SOCKSv5-Proxyservers mit Hilfe von Telnet . . . . . . . . Entpacken des Quelltextarchives . . . . . . . . . . . . . . . . . . . . Installation des Handover-Servers . . . . . . . . . . . . . . . . . . . Start des Handover-Servers . . . . . . . . . . . . . . . . . . . . . . . Start des Handover-Clients auf dem mobilen Endgerät . . . . . . . Start des GPRS-Backends auf dem mobilen Endgerät . . . . . . . . 2004-11-09 / 104 / II99 / 2115 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 91 92 93 94 94 95 95 99 100 101 102 103 104 Diplomarbeit Florian Evers TABELLENVERZEICHNIS 110 Tabellenverzeichnis 4.1. 4.2. 4.3. 4.4. 4.5. B.1. B.2. B.3. Netzwerkkonfiguration des Laptops . . . . . . . . . Netzwerkkonfiguration des Proxyservers . . . . . . . Netzwerkkonfiguration des WLAN-Zugangspunktes Zeitspannen von Einzelereignissen . . . . . . . . . . Ausfallzeiten durch Linkabrisse . . . . . . . . . . . Messwerte zur Netzanbindung über Ethernet . . . . Messwerte zur Netzanbindung über WLAN . . . . . Messwerte zur Netzanbindung über GPRS . . . . . 2004-11-09 / 104 / II99 / 2115 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 83 83 84 85 96 97 98 Diplomarbeit Florian Evers ABKÜRZUNGSVERZEICHNIS UND FORMELZEICHEN 111 Abkürzungsverzeichnis und Formelzeichen x̄ . . . . . . . . . . . . . . . . . . . ∆x . . . . . . . . . . . . . . . . . tAD . . . . . . . . . . . . . . . . . tA . . . . . . . . . . . . . . . . . . tE . . . . . . . . . . . . . . . . . . tG . . . . . . . . . . . . . . . . . . ACK . . . . . . . . . . . . . . . AFT . . . . . . . . . . . . . . . . AP . . . . . . . . . . . . . . . . . API . . . . . . . . . . . . . . . . AT . . . . . . . . . . . . . . . . . bzw. . . . . . . . . . . . . . . . . CPU . . . . . . . . . . . . . . . . DEMUX . . . . . . . . . . . . DNAT . . . . . . . . . . . . . . DNS . . . . . . . . . . . . . . . . DSL . . . . . . . . . . . . . . . . ETHx . . . . . . . . . . . . . . GNU . . . . . . . . . . . . . . . GPRS . . . . . . . . . . . . . . HTTP . . . . . . . . . . . . . . HTTPS . . . . . . . . . . . . . I-TCP . . . . . . . . . . . . . . ICMP . . . . . . . . . . . . . . ID . . . . . . . . . . . . . . . . . . IDG . . . . . . . . . . . . . . . . IDR . . . . . . . . . . . . . . . . IEEE . . . . . . . . . . . . . . . IETF . . . . . . . . . . . . . . . IMAP . . . . . . . . . . . . . . incl. . . . . . . . . . . . . . . . . IP . . . . . . . . . . . . . . . . . . IPv6 . . . . . . . . . . . . . . . . 2004-11-09 / 104 / II99 / 2115 Empirischer Mittelwert Empirische Standardabweichung Aufbaudauer eines Datenkanals Abrisserkennungsdauer Einwahldauer oder Netzerkennungsdauer Gesamtdauer eines Handoverereignisses Acknowledgement, Bestätigung Authenticated Firewall Traversal Access Point Application Programming Interface Attention (-Codes), Hayes-Befehlssatz Beziehungsweise Central Processing Unit Demultiplexer Destination Network Address Translation Domain Name Server, Domain Name Service Digital Subscriber Line Ethernet, Schnittstelle Nr. x GNU is not Unix General Packet Radio Service Hypertext Transfer Protocol Hypertext Transfer Protocol Secure Indirect Transmission Control Protocol Internet Control Message Protocol Identifikator Identifikator am Gerufenen Identifikator am Rufenden Institute of Electrical and Electronics Engineers Internet Engineering Task Force Internet Message Access Protocol inclusive Internet Protocol (Version 4) Internet Protocol Version 6 Diplomarbeit Florian Evers ABKÜRZUNGSVERZEICHNIS UND FORMELZEICHEN 112 ISDN . . . . . . . . . . . . . . . Integrated Services Digital Network ISO/OSI . . . . . . . . . . . . International Organization for Standardization / Open Systems Interconnection kbps . . . . . . . . . . . . . . . . Kilobit pro Sekunde LAN . . . . . . . . . . . . . . . . Local Area Network Lib . . . . . . . . . . . . . . . . . Library, Bibliothek LLC . . . . . . . . . . . . . . . . Logical Link Control Mbps . . . . . . . . . . . . . . . Megabit pro Sekunde MiB . . . . . . . . . . . . . . . . Mebibyte (Megabinary-), 1 MiB = 220 Bytes = 1048576 Bytes Modem . . . . . . . . . . . . . Modulator, Demodulator ms . . . . . . . . . . . . . . . . . . Millisekunden MUX . . . . . . . . . . . . . . . Multiplexer NAT . . . . . . . . . . . . . . . . Network Address Translation PC . . . . . . . . . . . . . . . . . Personal Computer PCMCIA . . . . . . . . . . . Personal Computer Memory Card International Association PDA . . . . . . . . . . . . . . . Personal Digital Assistent PGG . . . . . . . . . . . . . . . Empfangspuffergröße am Gerufenen PGP . . . . . . . . . . . . . . . . Pretty Good Privacy PGR . . . . . . . . . . . . . . . Empfangspuffergröße am Rufenden PIN . . . . . . . . . . . . . . . . Personal Identification Number POP3 . . . . . . . . . . . . . . Post Office Protocol Version 3 PPP . . . . . . . . . . . . . . . . Point-to-Point Protocol PSSeqNr . . . . . . . . . . . . Empfangspuffer-Startsequenznummer RAS . . . . . . . . . . . . . . . . Remote Access Service RFC . . . . . . . . . . . . . . . . Request For Comments s . . . . . . . . . . . . . . . . . . . . Sekunden s. o. . . . . . . . . . . . . . . . . Siehe oben SNAT . . . . . . . . . . . . . . Source Network Address Translation SSH . . . . . . . . . . . . . . . . Secure Shell SSHD . . . . . . . . . . . . . . Secure Shell Daemon SSL . . . . . . . . . . . . . . . . Secure Socket Layer SYN . . . . . . . . . . . . . . . . Synchronisation (Verbindungsaufbau) SYNACK . . . . . . . . . . . Synchronisation mit enthaltener Bestätigung (ACK) T-D1 . . . . . . . . . . . . . . . Telekom, D1 TCP . . . . . . . . . . . . . . . . Transmission Control Protocol 2004-11-09 / 104 / II99 / 2115 Diplomarbeit Florian Evers ABKÜRZUNGSVERZEICHNIS UND FORMELZEICHEN TCP/IP . . . . . . . . . . . . UDP . . . . . . . . . . . . . . . USB . . . . . . . . . . . . . . . . Vgl. . . . . . . . . . . . . . . . . vs. . . . . . . . . . . . . . . . . . . Wdhlg. . . . . . . . . . . . . . WLAN . . . . . . . . . . . . . WWW . . . . . . . . . . . . . 2004-11-09 / 104 / II99 / 2115 113 Transmission Control Protocol / Internet Protocol User Datagram Protocol Universal Serial Bus Vergleiche Versus (gegen, im Gegensatz zu) Wiederholung Wireless Local Area Network World Wide Web Diplomarbeit Florian Evers THESEN ZUR DIPLOMARBEIT 114 Thesen zur Diplomarbeit 1. Die Protokolle des herkömmlichen Internets wurden nicht mit Blick auf mobile Endgeräte entwickelt. 2. Moderne mobile Endgeräte werden häufig mit mehreren Netzzugangstechnologien gleichzeitig ausgestattet. 3. Bei einem Wechsel des Netzzugangspunktes ändert sich die IP-Adresse des Endgerätes, was einen Abriss aller involvierten Transportschichtverbindungen verursacht. 4. Zugangspunktwechsel, welche verschiedene Netzzugangstechnologien einschließen ohne dass die Datenströme der Anwendungen abreißen, werden vertikale Handover genannt. 5. Mit Hilfe des Protokolls SOCKSv5 kann eine proxybasierte Infrastruktur geschaffen werden, die einen vertikalen Handover ermöglicht. Die dazu notwendige Unterstützung ist bereits in vielen Anwendungen integriert oder kann nachgerüstet werden. 6. Dieser Handoveransatz erfordert keinen Eingriff in die Betriebssysteme und ist portabel. Die entwickelte Software lässt sich bereits unter GNU/Linux und Microsoft Windows betreiben. Ilmenau, den 09. 11. 2004 2004-11-09 / 104 / II99 / 2115 Florian Evers Diplomarbeit Florian Evers ERKLÄRUNG 115 Erklärung Die vorliegende Arbeit habe ich selbststä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. Ilmenau, den 09. 11. 2004 2004-11-09 / 104 / II99 / 2115 Florian Evers Diplomarbeit Florian Evers