QoS Ausarbeitung Has..

Transcription

QoS Ausarbeitung Has..
Netzwerktechnologien Quality of Services
Mobile Messaging und QoS
Dustin Haß
[email protected]
707747
Swen Kummer
[email protected]
716720
Institut für Informatik
1
Inhaltsverzeichnis
1. Einleitung .......................................................................................................................................... 3
2. Jimm ................................................................................................................................................. 3
2.1 Das Oscar Protokolls.................................................................................................................... 3
2.2 Quellcode Änderungen ................................................................................................................ 5
2.3 JAVA SIP....................................................................................................................................... 6
2.4 Messdaten ................................................................................................................................... 7
2.5 QoS-Parameter ............................................................................................................................ 8
3. Mopiphant......................................................................................................................................... 9
3.1 Netzwerkstrukturen: Client-Server, Peer-to-Peer, Mobile-Peer-to-Peer ..................................... 10
3.2 Mopiphant – Aufbau................................................................................................................... 10
3.2.1 Architektur.......................................................................................................................... 10
3.2.2 Cache-Peer ......................................................................................................................... 11
3.3 QoS-Parameter .......................................................................................................................... 12
5. Quellcode ........................................................................................................................................ 14
5.1 Contactlist.java I ........................................................................................................................ 14
5.2 Contactlist.java II ....................................................................................................................... 14
5.3 Contactlist.java III ...................................................................................................................... 14
5.4 Traffic.java I............................................................................................................................... 14
5.5 Traffic.java II.............................................................................................................................. 14
5.6 Traffic.java III............................................................................................................................. 15
5.7 Traffic.java IV............................................................................................................................. 15
5.8 Traffic.java V ............................................................................................................................. 16
5.9 Traffic.java VI............................................................................................................................. 16
6. Glossar............................................................................................................................................ 17
2
1. Einleitung
Durch die wachsende Anzahl an javafähigen Mobiltelefonen hat die Menge der Java-Applikationen stark
zugenommen. Eine dieser Applikationen ist der ICQ-Clone Jimm, ehemals bekannt als MobICQ. Derzeit
hat ICQ 200 Millionen registrierte Nutzer, so dass mit Jimm eine hohe Personenzahl erreicht werden
kann. Auf Grund der hohen SMS- und Telefonkosten sind viele Menschen ständig auf der Suche nach
günstigen Alternativen. Durch Jimm bietet sich die Möglichkeit unterwegs kostengünstig Nachrichten zu
versenden, da lediglich Gebühren für die GPRS Nutzung entstehen.
Unsere Motivation war die Frage, wie sehr wir mit Jimm das GSM-/GPRS-Netz belasten und unter welchen Umständen welche Menge an Datenverkehr verschickt wird. Da Jimm der GPL unterliegt, wäre es
möglich den Quelltext zu analysieren und zu modifizieren.
Die Verlegung typischer PC-Anwendungen wie Instant Messaging (IM) auf ein Mobiltelefon ließ uns nach
weiteren portierten Anwendung Ausschau halten. Dabei fiel uns der Mopiphant auf, welcher ein Peer-to-
Peer Client für Smartphones ist. Das Hauptaugenmerk soll jedoch auf Jimm liegen, daher wird der Mopiphant weniger intensiv von uns behandelt.
2. Jimm
Jimm unterliegt der GPL und ist somit kostenlos. Die Vorraussetzungen sind weiterhin ein J2ME – fähiges
Mobiltelefon mit Raw Socket Support. Da Jimm in Java geschrieben ist und benötigt er J2ME und durch
die Verbindung über mehrere Kanäle parallel, muss Raw Socket Support vorhanden sein. Dieser funktionieren ähnlich wie Ports am PC und man kann auf den entsprechenden Sockets Nachrichten empfangen
und daher passend zuordnen.
2.1 Das Oscar Protokolls
ICQ Clienten kommunizieren mit verschiedenen Oscar Protokollversionen, wobei Oscar 8 in Jimm imp-
lementiert ist. Das Oscar Protokoll ist eine AOL Entwicklung und propertiär. Daher sind nur begrenzt
Informationen verfügbar, jedoch sind diese für die ICQ Nutzung ausreichend. Die Protokolle sind bis zur
Version 10 entwickelt und untereinander kompatibel, denn die Versionsnummer gibt lediglich den Funktionsumfang des Clienten wieder. Während in der Version 8 nur Dateitransfer und Chat möglich ist, so
kann man in den neueren Versionen bereits Push-to-Talk, Videoconferencing und Flashgames nutzen.
Aktuell wird Oscar 8 bis 10 eingesetzt, doch weitere Entwicklungen sind nicht absehbar durch die Ge-
heimhaltung von seitens AOL. Viele ICQ Clones kämpfen mit dem propertiären Oscar Protokoll, wie seit
Anfang Februar 2006 sichtbar bei Miranda. Die DLL mit dem Oscarprotokoll war unvollständig, so dass
durch eine Änderung bei ICQ keine Nachrichten mehr die Miranda-Nutzer erreichten. Ein Log Auszug:
[10:13:41 ICQ] Message (format 2) through server - UIN: 293327524, FirstTLV: 19
[10:13:41 ICQ] Unsupported TLV (19) in message (format 2)
Als UIN wurde in diesem Log 293327524 gezeigt, da sie eine von uns genutzte UIN ist und als Fehlermeldung beim jeweiligen Nutzer steht. Das erste TLV war bisher TLV(11), doch selbst diese Funktionali-
tät ist nicht hinreichend bekannt. Ein Bugfix behob den Fehler, wobei das bisher implementierte Protokoll nur erweitert werden musste. Das Message Format 2 ist wie folgt bekannt:
3
Bildquelle: http://www.micq.org/ICQ-OSCAR-Protocol-v7-v8-v9/Packets/Fam4/Com0/Sub2.html
Das Protokoll besteht aus den drei Grundformaten FLAP, SNAC und TLV, wobei eine Nachricht im SNAC
Format im FLAP enthalten sein kann. Das TLV kann wie das SNAC im FLAP enthalten sein, oder im data
Teil des SNAC eingefügt werden. Die folgende Grafik veranschaulicht die Verbindung der Formate untereinander und deren Bestandteile:
Zu erkennen ist, dass FLAP die Basis der verschickten
Nachrichten an den ICQ Server ist. Die Nachrichten
werden über fünf Channel geschickt, welche mit Hilfe
von Sockets implementiert wurden. Sämtliche Nach-
richten im SNAC Format werden auf dem Channel 2
übertragen. Auf den restlichen Channel’s wird FLAP
oder FLAP mit TLV gesendet. Das Oscar-Protokoll
wird jedoch nicht nur von ICQ, sondern auch von AIM
genutzt, denn beide gehören zu AOL. Durch kleine
Unterschiede sind sie nicht immer 100%ig kompatibel.
4
Die Details der Inhalte für Service ID, Family und Subfamily sind auf der Seite von A. V. Shutko nachzule-
sen. Auf eine nähere Beschreibung jeder einzelnen Funktion wurde verzichtet, da dieses Detailwissen für
das Projekt nicht unbedingt nötig ist.
2.2 Quellcode Änderungen
Der Client Jimm ist komplett in Java geschrieben und nutzt die Klassen von J2ME. Da der vollständige
Quellcode verfügbar ist, konnte so die Funktionsweise nachvollzogen werden. Das Ziel war es, die Höhe
des Datenverkehrs festzuhalten. Daher waren Änderungen in der Traffic.java und Contactlist.java notwendig. Die Modifikationen wurden mit einem „// QoS Mod“ Kommentar versehen, sowie wichtige Vari-
ablen mit den Anfangsbuchstaben qos_ gekennzeichnet. Daher sind die Codemodifikationen leicht zu
finden.
Die oberste Zeile der Buddy-Liste wurde ersetzt durch eine Anzeige des Sessiontraffic in Byte sowie der Größe des letzten Paketes. Eine ursprüngliche
Planung der Anzeige in kB/s wurde auf Grund zu geringer Datenübertragung
verworfen. Die Daten über GPRS sind nur einzelne Pakete und ergeben einen
nicht immer im Sekundentakt messbaren Datenfluss. In der Contactlist.java
wurde unter I der Kontruktor angepasst, im Teil II wurde die Rückgabe des
Sessiontraffic von kb in byte geändert und im III. Teil die Bildschirmausgabe
angepasst. Der Befehl „ResourceBundle.getString“ wandelt den Text in einen
String um, so dass er im Ausgabestring abgelegt werden konnte. AusgegeBildquelle: jimm.org
ben wird immer ein String, in dem z.B. die Variablenwerte abgelegt werden.
Für die Änderung der Anzeige des Traffic wurde die Bezeichnung in der
Sprachdatei auf QoS-Traffic geändert. Der Ausgabestring wurde dahingehend
geändert, dass die Bytes der Session, das Anfangsdatum sowie die Gesamtbytezahl ausgegeben werden. Weiterhin wird vom Paket 48 bis 57 die Größe
und der Zeitpunkt, seit dem Jimm Start, in Millisekunden ausgegeben. Da im
Durchschnitt 39 Pakete für einen Verbindungsaufbau bzw. 47 Pakete beim
erstmaligen Verbindungsaufbau, inklusive des Ladens der Buddyliste vom
Server verschickt werden, haben wir uns für eine Protokollierung ab dem 48.
Paket entschieden. Ursprünglich wollten wir die Ergebnisse in einem Array der
Form Daten[Paketgröße,Zeitpunkt] festhalten, doch der Prozessor des S65 war
damit überfordert und wir bekamen Verbindungsabbrüche. Als Möglichkeit
sahen wir daher die Speicherung in den Variablen z1 bis z10. Da wir beim
Bildquelle: jimm.org
Start von Jimm den Zeitpunkt in qos_starttimer auf Grund der großen Zahl
vom Typ Long festlegen mussten, brauchten wir durch die Speicherung der
Differenz von qos_starttimer zum aktuellen Zeitpunkt nur noch Integer Werte.
Sparsame Ressourcenverwaltung ist wegen der Speicherlimitierung sehr bedeutsam. Während des Versendens der Pakete ließen wir einen Zähler (qos_i)
mitlaufen, so konnten wir feststellen, wann das 48. bis 57. Pakete verschickt
wurde.
Mit einer IF-Abfrage wird dies überprüft und gegebenenfalls die Differenz des
aktuellen
Zeitpunktes
und
des
Jimm
Starts
ermittelt.
Da
mit
Sys-
tem.currentTimeMillis() eine Rückgabe vom Typ long erfolgt ist, war ein Cast
des Ergebnisses auf Integer erforderlich.
Bildquelle: Screenshot
5
Zu Beginn der Messungen haben wir 100 Pakete gespeichert, um einen Überblick zu erhalten, doch aus
den 100 Paketen (48. bis 157.) reichte die Erfassung der ersten 10 aus. Die Schlussfolgerung von 10
Paketen war identisch mit der von 100 Paketen und nur zeigte eine ständige Wiederholung (Buddy
kommen online, Dateiversand, Idletime,…) der Ereignisse. Für die Ausgabe auf der Buddyliste und die
Speicherung des letzten Paketes der Messungen wurde die Methode QoS_getlastPacket eingefügt. Passend dazu wurde die Methode addTraffic erweitert. Um den modifizierten Jimm Client zu testen, muss
lediglich Java SDK, Java WTK, Siemens WTK und der Siemens S65 Emulator installiert werden. Die Grund-
funktionalität ohne Dateiversand sollte auf jeden MIDP2 Mobiltelefon lauffähig sein. Ein Zugriff auf das
Dateisystem ist nur bei Siemens Telefonen möglich, da hier die fileaccess.jar zur Verfügung stand. Diese
Datei war bereits im Sourcebundle von Jimm enthalten.
2.3 JAVA SIP
Die Implementierung von
SIP in Java ist im JSR 180
sowie im White Paper „SIP
and the Java Platforms“
von
Phelim
detailiert
Dabei
O'Doherty
beschrieben.
entspricht
dies
einer Umsetzung des SIP
RFC’s 3261 inklusive den
zusätzlichen Umsetzungen der RFC 2976, 3262,
3265, 3311, 3326, 3428
und 3515.
Das
Session
Initiation
Protocol wurde in Java
für Computer (JAIN), sowie für Mobiltelefone (SIP
for J2ME) integriert.
Bildquelle: http://java.sun.com/products/jain/images/ims-java.gif
Allerdings gibt es zwischen den beiden deutliche Unterschiede, denn es ist nur die jeweils passende
Implementierung adressierbar. Durch den Unterschied im Befehlssatz ist eine JAIN SIP Applikation nicht
auf einem Handy ausführbar und umgekehrt.
Die SIP Verbindung wird vom Mobiltelefon mittels Request zum P-CSCF aufgebaut. Doch dieser reicht
den Request weiter an den I-CSCF. Der I-CSCF nimmt aber den Request ebenfalls nicht an, sondern
leitet alle SIP Nachrichten an den S-CSCF weiter. Erst dort wird die SIP Nachricht bearbeitet und eine
neue SIP Server Connection aufgebaut. Die Antwort (Response) wird über den I-CSCF und P-CSCF wieder an das Mobiltelefon zurück geleitet. Zusätzlich erhält das Mobiltelefon ein Request von der SIP Client
Connection, um eine SIP Server Connection aufzubauen. Danach kann der Datenfluss erfolgen. Zum Beenden wird dann ein Bye versendet und mit 200 OK quittiert.
6
2.4 Messdaten
Unter dem Menüpunkt Traffic-QoS konnten wir die Daten direkt ablesen.
Empfang von 5 Textmessages
Hier ist erkennbar, jede Textnachricht hat 215 Byte
im Header plus je 1 Byte für jedes Chat-Zeichen.
Dabei wurde die erste Nachricht mit 1, die nächste
mit 2 Zeichen usw. versendet. Nach Erhalt einer
Nachricht folgte ein 131 Byte Quittungspaket.
Idlen mit einigen Buddys im Online-Status
Onlinestatusmeldungen erfolgen ohne Quittierung.
Sehr geringer Traffic von 40 - 100 Bytes je Paket.
Idle, danach connected ein Buddy
Zu Beginn befinden wir uns allein online ohne Aktivität. Die dann folgenden Onlinestatusmeldungen sind
ohne Quittierung, ansonsten werden nur 46 Bytes
große Keep Alive Pakete gesendet.
Senden von 4kb an PC - Client
Zu Beginn keine Aktivität, dann wird ein Dateitransfer durchgeführt. Anschließend wieder Ruhezustand.
Je Datenpaket wurden maximal 2091 Byte versendet
Æ 3 Pakete (2 x maximale Größe) nötig. Sendezeit
der max. Pakete fast gleich:
Senden von 24kb an PC - Client
Am Anfang Ruhezustand, dann folgt Datentransfer
mit maximaler Auslastung und 2091 Byte Paketen.
Der konstante Datenstrom ist von gleich bleibender
Größe, doch die Sendezeiten sind zunehmend höher,
wobei 7,8 sowie 9,10 von
gleicher Dauer sind.
Senden von 95kb an PC - Client
Beim Datentransfer haben wir einen konstanten
Strom von 2091 Byte Paketen erhalten. Deutlich
sichtbar ist eine Paarung der Sendezeiten. Diese
Resultiert daher, dass der Provider Vodafone für
GPRS maximal zwei Uploadslots gleichzeitig ermöglicht.
7
2.5 QoS-Parameter
Datendurchsatz:
Idle = 46 Bytes werden alle 120 Sekunden gesendet
Chat = 215 Bytes + Nachrichtentext + 131 Bytes Quittung je Nachricht
Burst = 2091 Bytes je Paket konstant, wobei die Paketsendezeiten steigen
Beim erstmaligem Laden oder Update der Buddylist fallen 3-10kb Transfer je nach
Listengröße an.
Prioritäten:
Kosten:
Beim Chat und Datentransfer kann auf dem Mobiltelefon nur jeweils eine Aktivität
angezeigt werden, daher ist eine Priorisierung nicht nötig.
Sind als gering einzustufen, da je nach Tarif unterschiedlich.
Beispiel Vodafone Classic Business Premium Tarif:
Je 10kb GPRS Volumen 9 Cent + 2 Cent je Nutzungstag.
Verzögerung:
Abhängig vom GSM Empfang und der Nutzung von GPRS durch andere Personen in
der gleichen Funkzelle. Bei voller Ausnutzung aller GPRS Zeitschlitze durch viele
Nutzer würde es zu hohen Verzögerungen kommen.
Stabilität:
Das Programm Jimm selbst lief bei allen Tests und auch im Alltag komplett fehlerfrei. Kommunikationsfehler (bei Chat / Dateitransfer) werden durch OSCAR im Kanal
3 übermittelt. Doch kann es auch zu Datenverlust zum Beispiel durch GSMFunklöcher kommen, wobei es dafür keine Absicherung gibt. Die Daten werden aber
auf dem P-CSCF vorgehalten und bei Erreichbarkeit des Empfängers an diesen
übermittelt.
Verfügbarkeit:
Benutzbarkeit:
Je nach GSM Empfang überall nutzbar. Die ICQ Server selbst hatten keine nennens-
werten Ausfälle, wobei dies auf Erfahrung aus fast 8 Jahre Nutzung zurückgeht.
- langsames Tippen
+ unkomplizierte Installation
+ oftmals deutlich geringe Kosten als SMS oder Telefonat
+ Konzept des Instant Messaging gut umgesetzt – chat anytime, anywhere
8
3. Mopiphant
Die Universitäten von Würzburg und Passau verwirklichten zusammen mit der
Siemens Communication im Rahmen eines Forschungsprojektes das Ziel Peer-
to-Peer über mobile Endgeräte. Die daraus entstandene Umsetzung des eMule-
Client wurde auf den Namen Mopiphant getauft. Angefangen hatte alles mit der Idee,
den immer weiter ansteigenden Konsum von Musik, Filmen usw. über Handy besser
nutzen zu können. Schließlich suchen auch Netzbetreiber nach Möglichkeiten, den Traffic in ihren Netzen zu erhöhen, insbesondere im Hinblick auf UMTS. Mobil-Peer-to-Peer ist das Zauberwort, welches
auf den kommenden Seiten von uns betrachtet wird.
Die Voraussetzungen, die das Mobilfunkendgerät mitbringen muss, werden bereits durch den gängigen
PocketPC’s erfüllt:
-
-
-
WindowsCE-Plattform PocketPC (für Smartphones wie XDA oder MDA),
Microsofts .NET-Compact-Framework (Pocket-PC 2000 & 2002),
mindestens 10MB RAM.
Der Mopiphant setzt auf den Iphant auf, welcher eine abgespeckte Version des edonkey-Client ist. Es
wurden also alle unnötigen und überflüssigen Komponenten des eDonkey-Client weggelassen, wie zum
Beispiel den IRC-Chat.
Es stellt sich die Frage, ob es technisch überhaupt machbar und sinnvoll ist, P2P-Systeme über GPRSoder UMTS-Netze abzuwickeln. Was angesichts geringer Bandbreiten, P2P-hinderlicher Netzbetreiber-
Konfigurationen und hier zu Lande hoher Tarife auf den ersten Blick absurd erscheinen mag, könnte sich
mit einigen Anpassungen aber zu einem sowohl für Nutzer als auch für Netzbetreiber höchst interessanten Ansatz entwickeln.
T-Mobile bot für einen Testzeitraum einen direkten IP-Verkehr zwischen Handys an, so dass der Einsatz
von VPN hier nicht notwendig war. Deutliche Abstriche sind bei direkten Verbindungen von Handy zu
Handy zu verzeichnen, schließlich müssen hier zwei Strecken per Mobilfunk überbrückt werden. Die Zahl
wiederholter Paketübertragungen durch Paketverluste bei der Übermittlung mittels UMTS ist gering und
liegt bei unter 0,5 Prozent. Je nach Netzbetreiber gibt es aber deutliche Unterschiede, was beispielsweise abgebrochene Downloads angeht. eDonkey anfälliger als einfache Dateiübertragungen per FTP zu
sein, was aber auch am frühen Stadium der Endgeräte und Netze liegen kann.
Der Mopiphant kann von der speziellen P2P-Architektur des MoPi-Projekts profitieren, funktioniert aber
auch ohne diese. Die Grundlage für entsprechende Applikationen existiert, seit es IP-Stacks auf mobilen
Endgeräten gibt, insbesondere wenn Java- oder .NET compact als Ausführungsumgebungen vorhanden
sind.
Der Ansatz hat aber auch noch einen positiven
Nebeneffekt, zumindest für den Mobilfunkbetreiber. Dieser hat die Kontrolle über die Proxy Server
und so auch über die getauschten Inhalte und
kann außerdem dafür sorgen, dass möglichst viel
vom ansonsten hoch redundanten P2P-Traffic im
eigenen Netz verbleibt. Dieses ist sinnvoll, um
zum Beispiel Filesharing von DRM-geschützten
Dateien herauszufiltern bzw. zu verhindern.
9
Mit kommenden UMTS-Techniken wie HSDPA erwarten die Entwickler positive Einflüsse auf mobiles P2P.
Für entsprechende Inhalte sorgen nicht zuletzt Kamera-Handys mit wachsender Auflösung.
3.1 Netzwerkstrukturen: Client-Server, Peer-to-Peer, Mobile-Peer-to-Peer
Ein Client-Server-System besteht aus einem Client, der eine Verbindung mit einem Server aufbaut und
aus einem Server der einen Dienst zur Verfügung stellt. Der Client bietet die Benutzeroberfläche oder die
Benutzerschnittstelle der Anwendung an.
In einem Peer-to-Peer-Netz sind alle Computer gleichberechtigt und können sowohl Dienste in An-
spruch nehmen als auch Dienste zur Verfügung stellen. Die Computer können als Arbeitsstationen genutzt werden, aber auch Aufgaben im Netz übernehmen.
-
-
-
-
Es gibt keine zentrale Datenbank, jeder Peer stellt einen Teil der vorhandenen Informationen zur
Verfügung. Kein Peer verwaltet (oder kennt) den Gesamtbestand.
Es gibt keine zentrale Instanz, die Interaktionen steuert oder koordiniert.
Die angebundenen Peers sind autonom.
Kein Peer hat (notwendigerweise) einen Überblick über das Gesamtsystem. Jeder Peer kennt nur
die Peers, mit denen er interagiert.
Das Verhalten des Systems ergibt sich dynamisch aus der Kombination der Interaktionen zwi-
schen den Peers.
Peers, Verbindungen und Informationen sind nicht verlässlich.
Keine „single point of failure“ Architektur, d.h. wird ein Peer aus dem Netz genommen, besteht
keine Gefahr, dass das ganze Netz zusammenbricht.
Beim Mobile P2P ist es möglich, dass mobile Endgeräte eigenständige Peers eines P2P-Systems sind.
3.2 Mopiphant – Aufbau
3.2.1 Architektur
Beim Mopiphant stand man vor dem Problem, dass Aufgrund der derzeit geringen Bandbreite Falschenhälse entstehen könnten, diese galt es zu vermeiden, um so eine effiziente und effektive Nutzung von
P2P-Systemen auch in mobilen Netzen zu ermöglichen. Auch in UMTS-Netzen, die HSDPAGeschwindigkeiten von rund 1,4 MBit/s im Downstream erreichen, fallen die Upstream-Bandbreiten
noch recht bescheiden aus und die Funkübertragungen weisen allgemein noch immer höhere Latenzzeiten auf als bei drahtgebundene Übertragungen.
Es wurden drei neue Elemente in die bestehende P2P-Architektur eingefügt: ein erweiterten Index-
Server, ein Cache-Peer und ein Crawler. Die beiden Letzteren verhalten sich wie normale Peers, sind aber
besonders leistungsfähig ausgelegt und alle drei werden vom Netzbetreiber kontrolliert. Dem Index-
Server werden alle Anfragen nach Ressource-IDs mitgeteilt, so dass eine populäre Ressource, die besonders häufig nachgefragt wird, identifizieren werden kann.
Um von diesen Informationen profitieren zu können, wird ein Cache-Peer eingeführt, der die so ermittelten, besonders populären Ressourcen zwischenspeichern kann. Mobile Peers müssen allerdings dazu
gebracht werden, bevorzugt auf diesen Cache-Peer zuzugreifen, sofern dort die gewünschten Daten zur
Verfügung stehen. Dafür sorgt ebenfalls der Index-Server: Sofern eine zwischengespeicherte Kopie vorliegt, wird der Cache-Peer als Quelle für diese Datei zurückgeliefert.
10
Der Crawler stellt die Verbindung zwischen den Index-Servern sowie den zugehörigen P2P-Communities
innerhalb des Mobilfunknetzes und Festnetz-Index-Servers her. Schließlich ist es wünschenswert, die
mobilen Peers davon abzuhalten, Verbindungen nach außen aufzubauen. Sind diese Voraussetzungen
nicht gegeben könnten sie nicht von den Vorteilen der erweiterten P2P-Architektur profitieren.
In der nachfolgenden Tabelle sind die Upload- und Download-Geschwindigkeiten aufgeführt für gängige
Netzabindungen . Der Cache-Peer soll die Hauptlast tragen und ist daher besonders leistungsfähig.
access type of peer
upload bandwidth
download bandwidth
max. upload connection
UMTS
64 kbps
384 kbps
4
DSL – 1000
128 kbps
768 kpbs
10
Cache
4 Gbps
4 Gbps
400
3.2.2 Cache-Peer
Um die Leistungsfähigkeit des Cache-Peers darzustellen, haben wir uns ein Bespiel zur Verdeutlichung
ausgesucht. Dieses Szenario fand in einem speziellen Testareal statt, welches mit HSDPA ausgestattet ist
(Oberhausen/CentrO) und optimale Übertragungsgeschwindigkeiten bietet.
11
Gegeben waren 3333 Mobil-Peers und 6667 In-
3MB Datei zur Verfügung, welche von den
verbleibenden 9999 Peers in die Download-Liste
genommen wurde.
Angesetzt war ein 150-stündiger Simulations-
zeitraum, während man das Transfervolumen der
einzelnen Peers beobachtete.
Man erkennt, wie der Cache-Peer immer mehr die
Rolle der Internet-Peers übernimmt und somit
den Mobile-Peers eine höhere Bandbreite zur
Verfügung stellt. So erreichten die Mobile-Peers
im Durchschnitt ~900MB/h Transfervolumen.
1.4
transfered volume [GB/h]
ternet-Peers. Eines der Internet-Peers stellte eine
1.2
mobile peer
1
0.8
0.6
0.4
internet peer
cache peer
0.2
0
0
50
100
simulation time [h]
150
3.3 QoS-Parameter
Datendurchsatz:
Ist abhängig vom UMTS-Empfang. Handelt es sich bei dem Download um eine populäre Datei auf dem Cache - Peer, so werden Wartezeiten reduziert und der Datendurchsatz erhöht sich.
Prioritäten:
Wird ebenfalls vom Cache-Peer unterstützt.
Kosten:
Beim Filesharing ist allgemein eine echte Flatrate sinnvoll, von einer Volumenflatrate
ist abzuraten auf Grund des hohen Traffic.
Verzögerung:
Ist abhängig vom Empfang und der Anzahl der Nutzer in der UMTS Zelle.
Stabilität:
Wird eine Datei zum Download hinzugefügt, welche größer als ein eMule-Chunk mit
9,28MB ist, stürzt der Mopiphant ab. Mehr als 1 Chunk wird bisher noch nicht unterstützt.
Verfügbarkeit:
Ist abhängig von der UMTS-Verfügbarkeit, sowie der Anbindung an das Internet P2P.
Die entsprechende server.met, welche zum Mopiphanten dazugehört, beinhaltet
mehrere Indexserver.
Benutzbarkeit:
Einfache Benutzung durch eine textuelle Indexierung und die Textsuche in Dateina-
men.
Der Nutzer muss zudem nicht alle seine Inhalte "blind" hochladen, nur in der Hoffnung, dass irgendwer
diese später herunterladen kann, wie es beispielsweise bei aktuellen Foto-Sharing-Angeboten der Fall
ist. Dennoch steht eine große Vielfalt an Inhalten zur Verfügung. Auch der psychologische Aspekt - die
Befriedigung von Neugier - wird durch den Ansatz beibehalten.
12
4. Quellen
Internet:
http://de.hsupa.com/
http://www.faqs.org/rfcs/rfc3261.html
http://www.golem.de/0504/37235.html
http://scr3.golem.de/?d=0504/mopiphant&a=37235
http://www.vodafone.de/unternehmen/presse/44003.html
http://www.3gpp.org/ftp/Specs/archive/23_series/23.218/
http://www-info3.informatik.uni-wuerzburg.de/staff/mopi/index.shtml
http://www.fokus.gmd.de/bereichsseiten/testbeds/ims_playground/playground/cscf.php?lang=de
http://www.siemens.com/index.jsp?sdc_p=ft3ml0s2u1436o1328988i1328988pMNDEc61z2&sdc_bcpath=1333982.s_2,1333984.
s_2,1332842.s_2,1328988.s_2,&sdc_sid=2792387237&
http://www.semanticmediashowcase.de/WerkstattCM/CrossMedia/SS04/Ausarbeitungen/IP%20Multimedia%20Subsystem(IMS)_Ausarbeitung.pdf
Programmierung:
http://ant.apache.org
http://www.jedit.org
http://www.7-zip.org
http://www.ihse.net/icq
http://jimm.sourceforge.net
http://www.jcp.org/en/jsr/all
http://iserverd1.khstu.ru/oscar
http://proguard.sourceforge.net
http://de.wikipedia.org/wiki/ICQ
http://java.sun.com/products/sjwtoolkit
http://www.mindfusion.org/product1.html
http://www.siemens-mobile.com/developer
http://www.motocoder.com/motorola/pcsHome.jsp
http://www.blackberry.com/developers/index.shtml
Bücher:
Mobile Computing Grundlagen, Jörg Roth, ISBN 3-89864-366-2
13
5. Quellcode
5.1 Contactlist.java I
// QoS Mod Traffic false statt true liefert Byte, hier aber nur Constructor
this.updateTitle(Jimm.jimm.getTrafficRef().getSessionTraffic(false));
5.2 Contactlist.java II
// QoS Mod Traffic false statt true liefert Byte, hier fürs Display
Jimm.jimm.getContactListRef().updateTitle(Jimm.jimm.getTrafficRef().getSessionTraffic(false));
5.3 Contactlist.java III
// QoS Mod kb-> Byte, aus "text += sep + " wurde "text =" und Util.getDateString(true) getauscht gegen letztes Paket
text = traffic + ResourceBundle.getString(" Byte") + sep +
Jimm.jimm.getTrafficRef().QoS_getlastPacket(false);
5.4 Traffic.java I
// Array: Transfervolumen1,Transferzeit1 in Millisekunden; TV2, TZ2; ...
private int[] qos_array = new int[100];
private int qos_i;
// qos_array[qos_i] = xyz;
private long qos_starttimer; // Variable fuer Transferstart
private String qos_messungen_buffer; // Variable für Ausgabe der Messergebnisse
private int qos_last_paket;
private int t1,t2,t3,t4,t5;
private int z1,z2,z3,z4,z5,z6,z7,z8,z9,z10; // z = Zeit
5.5 Traffic.java II
qos_i = 0;
// QoS Mod Variablen initialisieren
qos_starttimer = System.currentTimeMillis(); // Startwert für erste Zeitmessung ist 0
14
5.6 Traffic.java III
ResourceBundle.getString("QoS Mod:") + "\n" +
ResourceBundle.getString("Paketanzahl = ") +
qos_i + "\n" + ResourceBundle.getString("letztes Paket ") + qos_last_paket + "\n" +
qos_messungen_buffer + "\n" +
ResourceBundle.getString("48. Paket ") + qos_array[0] + ResourceBundle.getString(" ") + z1 + "\n" +
ResourceBundle.getString("49. Paket ") + qos_array[1] + ResourceBundle.getString(" ") + z2 + "\n" +
ResourceBundle.getString("50. Paket ") + qos_array[2] + ResourceBundle.getString(" ") + z3 + "\n" +
ResourceBundle.getString("51. Paket ") + qos_array[3] + ResourceBundle.getString(" ") + z4 + "\n" +
ResourceBundle.getString("52. Paket ") + qos_array[4] + ResourceBundle.getString(" ") + z5 + "\n" +
ResourceBundle.getString("53. Paket ") + qos_array[5] + ResourceBundle.getString(" ") + z6 + "\n" +
ResourceBundle.getString("54. Paket ") + qos_array[6] + ResourceBundle.getString(" ") + z7 + "\n" +
ResourceBundle.getString("55. Paket ") + qos_array[7] + ResourceBundle.getString(" ") + z8 + "\n" +
ResourceBundle.getString("56. Paket ") + qos_array[8] + ResourceBundle.getString(" ") + z9 + "\n" +
ResourceBundle.getString("57. Paket ") + qos_array[9] + ResourceBundle.getString(" ") + z10 + "\n"
5.7 Traffic.java IV
//QoS Mod Returns value of last traffic packet
protected int QoS_getlastPacket(boolean kb)
{
if (kb) return (qos_last_paket / 1024);
return (qos_last_paket);
}
15
5.8 Traffic.java V
public void QoS_addTraffic(int bytes)
{
qos_last_paket = bytes;
if (qos_i == 48) qos_starttimer = (int) (System.currentTimeMillis());
if (qos_i == 48) z1 = (int) (System.currentTimeMillis() - qos_starttimer);
if (qos_i == 49) z2 = (int) (System.currentTimeMillis() - qos_starttimer);
if (qos_i == 50) z3 = (int) (System.currentTimeMillis() - qos_starttimer);
if (qos_i == 51) z4 = (int) (System.currentTimeMillis() - qos_starttimer);
if (qos_i == 52) z5 = (int) (System.currentTimeMillis() - qos_starttimer);
if (qos_i == 53) z6 = (int) (System.currentTimeMillis() - qos_starttimer);
if (qos_i == 54) z7 = (int) (System.currentTimeMillis() - qos_starttimer);
if (qos_i == 55) z8 = (int) (System.currentTimeMillis() - qos_starttimer);
if (qos_i == 56) z9 = (int) (System.currentTimeMillis() - qos_starttimer);
if (qos_i == 57) z10 = (int) (System.currentTimeMillis() - qos_starttimer);
if ((qos_i >= 48) && (qos_i <= 99)) qos_array[qos_i-48] = bytes;
//if (qos_i <= 99) qos_array[1][qos_i] = (int) (System.currentTimeMillis() - qos_starttimer);
// Paketanzahl ermitteln
qos_i++;
}
5.9 Traffic.java VI
public void addTraffic(int bytes)
{
session_traffic = session_traffic + bytes;
// QoS Mod sichert aktuelles Packet
this.QoS_addTraffic(bytes);
16
6. Glossar
BOS
BURST
Basic OSCAR Service
Eine Menge von Datenpaketen, die direkt aufeinander folgend (mit der ma-
ximalen bzw. beinahe maximalen Datenrate auf dem Netzinterface) in einem
knoten ankommen bzw. vom Knoten gesendet werden.
DC
EDGE
Direct Connection = direkte Verbindung zwischen Clienten
Enhanced Data Rates for GSM Evolution; Technik zur Erhöhung der Datenrate
in GSM-Mobilfunknetzen
FLAP
FDDITalk Link Access Protokoll
GPRS
General Packet Radio Service; Datenübertragung mit Paketvermittlung über
GSM
Global System for Mobile Communications: digitales Mobilfunksystem der
HSDPA
HSS
GSM.
zweiten Generation (2G)
High Speed Downlink Packet Access (HSDPA) ist ein zukünftiges Übertragungsverfahren des Mobilfunkstandards UMTS.
Home Subscriber Server
HSUPA
High Speed Downlink Packet Access (HSDPA) ist ein zukünftiges Übertra-
I-CSCF
Interrogating Call Session Control Function
IDLE
gungsverfahren des Mobilfunkstandards UMTS.
allgemein für Leerlauf(-zeit). Beispielsweise die Zeit, die ein Benutzer eines
Telekommunikationsnetzes oder –dienstes nicht mehr aktiv das Netz oder
den Dienst genutzt hat.
IM
Instant Messaging
J2ME
Java 2 Micro Edition (J2ME) ist eine reduzierte Version von J2EE und J2SE.
JAIN
Java advanced intelligent network ist ein Satz von Java-basierten APIs mit
J2ME ist optimiert für Mobilgeräte wie Handys, Handhelds, Palmtops.
denen neuen Entwicklungen von Telefonprodukten und -diensten eine JavaPlattform bereitgestellt wird.
JSLEE/JSIP
LLC
MDA
MGCF
MGW
OSCAR
P2P
JAIN Service Logic Execution Environment
Logical Link Control: OSI-Protokoll; identisch für LAN-Subsysteme im
Standard IEEE 802
Mobil Digital Assistant
Media Gateway Control Function
Media Gateway
Open System for Communication in Realtime
Peer-to-Peer: Netzwerk, bei dem jeder angeschlossene PC gleichberechtigt
ist.
17
P-CSCF
RLC/MAC
Proxy Call Session Control Function
Abk. Radio Link Control. In der Protokollarchitektur des Mobilfunksystems
der dritten Generation UMTS (Universal Mobile Telecommunications System)
eine Protokollschicht, die - aufsetzend auf die MAC-Schicht (Media Access
Control) - für die Übertragungssteuerung und -sicherung auf den logischen
Kanälen zuständig ist.
S-CSCF
SIP
Serving Call Session Control Function
Session Initiation Protocol: ist ein Signalisierungsprotokoll zum Einrichten,
Modifizieren und Beenden von Multimedia-Konferenzen, IP-TelefonieVerbindungen und ähnlichen Anwendungen.
SNAC
SNDCP
Simple Network for Atomic Communication
Subnetzwork Dependent Convergence Protocol
TCP
Transmission Control Protocol: Transportschicht 4 von OSI für den verbin-
TLV
Abk. Type, Length, Value. Im Internetprotokoll IPv6 (Internet Protocol, Versi-
dungsorientierten Datenaustausch mit Fehlererkennung
on 6) eine Header-Komponente der so genannten Erweiterungs-Header (Ex-
tension Header, EH) mit den in der Protokollspezifikation festgelegten "Optionen", die von den "besuchten" Routern interpretiert werden.
UMTS
Universal Mobile Telecommunications System: Projekt eines künftigen, universell nutzbaren Mobilfunknetzes der so genannten dritten Generation im
Frequenzband von 2 GHz. UMTS soll die bestehenden zellularen Mobilfunk-
netze (z.B. GSM, C 450), schnurlose Systeme (z.B. CT, DECT), private Bündelfunksysteme (TETRA) sowie drahtlose lokale Netze (WLAN - Wireless Local
Area Network) zusammenführen und neue Dienste bereitstellen.
VoIP
Voice-over-IP: Sprache über das Internetprotokoll, das sowohl über en Backbone eines Netzes geschehen kann, als auch im lokalen Bereich (à IPTelefonie).
XDA
Extended Digital Assistant
18