15.10.2013 Aufrufe

Dynamic Fast Send Protocol - Fakultät für Informatik und Mathematik ...

Dynamic Fast Send Protocol - Fakultät für Informatik und Mathematik ...

Dynamic Fast Send Protocol - Fakultät für Informatik und Mathematik ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Universität Passau<br />

<strong>Fakultät</strong> <strong>für</strong> <strong>Informatik</strong> <strong>und</strong> <strong>Mathematik</strong><br />

Lehrstuhl <strong>für</strong> Verteilte Informationssysteme<br />

Bedienungsanleitung<br />

<strong>Dynamic</strong> <strong>Fast</strong> <strong>Send</strong> <strong>Protocol</strong><br />

Passau, 14. März 2009


Inhaltsverzeichnis<br />

Abbildungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

1 Systemanforderungen 6<br />

2 Erzeugung <strong>und</strong> Verwaltung von Zertifikaten mit keytool 7<br />

2.1 Erzeugung von Zertifikaten . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.2 Exportierung von Zertifikaten . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

2.3 Importierung von Zertifikaten . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

2.4 Andere Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

2.4.1 Anzeigen von Zertifikaten . . . . . . . . . . . . . . . . . . . . . . 11<br />

2.4.2 Anzeigen des Inhaltes eines Zertifikates . . . . . . . . . . . . . . . 11<br />

2.4.3 Änderung des Keystore-Passwortes . . . . . . . . . . . . . . . . . 11<br />

2.4.4 Änderung des Passwortes <strong>für</strong> einen bestimmten geheimen Schlüssel 12<br />

2.4.5 Löschen eines Eintrags in Keystore . . . . . . . . . . . . . . . . . 12<br />

3 Installation des DFSP-Servers 13<br />

3.1 Installation von Zertifikaten . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

3.2 Anpassung der Konfigurationsdatei . . . . . . . . . . . . . . . . . . . . . 14<br />

4 Installation des DFSP-Clients 18<br />

4.1 Installation von Zertifikaten . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

4.2 Anpassung der Konfigurationsdatei . . . . . . . . . . . . . . . . . . . . . 18<br />

5 Starten des Servers <strong>und</strong> der Zwischenstationen 21<br />

6 Starten des Clients 23<br />

6.1 Kommandozeilen-Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

6.1.1 FSP-Client-Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

6.1.2 DFSP-Client-Befehle . . . . . . . . . . . . . . . . . . . . . . . . . 30<br />

6.1.3 Anwendungsbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />

6.2 GUI-Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />

3


6.2.1 Verbindungsfunktionen . . . . . . . . . . . . . . . . . . . . . . . . 38<br />

6.2.2 Übertragungsoptionen . . . . . . . . . . . . . . . . . . . . . . . . 38<br />

6.2.3 Dienstfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />

Literaturverzeichnis 45<br />

4


Abbildungsverzeichnis<br />

6.1 Arbeitsfenster des DFSP-Clients . . . . . . . . . . . . . . . . . . . . . . . 37<br />

6.2 Verbindungsfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />

6.3 FSP-Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

6.4 DFSP-Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

6.5 Visualisierung von Meridian-Knoten . . . . . . . . . . . . . . . . . . . . . 42<br />

6.6 Dienstfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

5


Kapitel 1<br />

Systemanforderungen<br />

Die Hardware-Anforderungen sind folgende:<br />

Prozessor 1 GHz oder höher<br />

Arbeitspeicher 1 GB oder höher<br />

Festplatte genügende Kapazität<br />

Netzwerkkarte TCP/IP Unterstützung<br />

Es gibt keine spezielle Anforderung <strong>für</strong> Festplatte bzw. Netzwerkkarte. Die Kapazität der<br />

Festplatte ist von der Größe der zu übertragenden Dateien abhängig. Bei Übertragung<br />

von großen Dateien sind Festplatten mit großer Kapazität <strong>und</strong> hoher Geschwindigkeit<br />

zu empfehlen. Netzwerkkarten, die TCP/IP-Protokoll unterstützen, können verwendet<br />

werden. Dabei ist es zu empfehlen, Netzwerkkarten mit hoher Geschwindigkeit bei Übertragung<br />

von großen Dateien zu verwenden. Es gibt keinen Unterschied zwischen der<br />

Harware-Anforderung von Server <strong>und</strong> Client.<br />

Da DFSP Java-basierte Anwendung ist, muss das Java Runtime Environment (JRE) 6<br />

im System vorhanden sein. Es ist zu empfehlen, die aktuelle Version von Java Development<br />

Kit (JDK) 6 zu installieren, da es die Java Hotspot Server Virtual Machine enthält,<br />

damit eine bessere Leistung erzielt werden kann. Die aktuelle Version von JDK (JDK 6<br />

Update 11) <strong>und</strong> JRE (JRE 6 Update 11) können von der Sun-Website 1 heruntergeladen<br />

werden. Die Installationsanleitung ist ebenfalls auf derselben Website zu finden.<br />

Um die GUI vom Client in Linux-Betriebsystemen verwenden zu können, muss das X<br />

Window System (X11) im System vorhanden sein.<br />

1 http://java.sun.com/javase/downloads/index.jsp<br />

6


Kapitel 2<br />

Erzeugung <strong>und</strong> Verwaltung von<br />

Zertifikaten mit keytool<br />

keytool 1 ist ein Bestandteil von Java-Installation, mit dem Zertifikate erzeugt bzw. verwaltet<br />

werden können. In diesem Abschnitt wird gezeigt, wie man Zertifikate mit Hilfe<br />

von keytool bearbeiten kann.<br />

2.1 Erzeugung von Zertifikaten<br />

Zur Erzeugung eines Zertifikates muss zunächst das Schlüsselpaar generiert werden. Dazu<br />

wird folgende Anweisung benötigt<br />

keytool -genkey -alias alias -keyalg keyalg -keysize keysize -validity valDays -keystore<br />

keystore -storepass storepass -keypass keypass<br />

Das Schlüsselpaar wird generiert <strong>und</strong> in einer Keystore-Datei gespeichert. Dabei wird der<br />

öffentliche Schlüssel in Form eines X.509-Zertifikates gespeichert. Die Optionen werden<br />

nachfolgend erläutert:<br />

-alias gibt das Alias <strong>für</strong> das zu erzeugende Schlüsselpaar an. Standardmäßig wird mykey<br />

verwendet.<br />

-keyalg gibt an, welcher asymmetrische Algorithmus verwendet werden soll. Wird er<br />

nicht spezifiziert, wird DSA standardmäßig verwendet.<br />

1 siehe http://java.sun.com/j2se/1.3/docs/tooldocs/win32/keytool.html <strong>für</strong> weitere Informationen<br />

7


-keysize spezifiziert die Größe der Schlüssel in Bits. Wird sie nicht angegeben, wird ein<br />

Schlüsselpaar mit einer Größe von 1024 Bits erzeugt.<br />

-validity gibt den Gültigkeitszeitraum <strong>für</strong> das Schlüsselpaar in Tagen an. Standardmäßig<br />

sind die erzeugten Schlüssel innerhalb 90 Tage nach der Erzeugung gültig.<br />

-keystore gibt den Name der Keystore-Datei an. Falls er nicht spezifiziert wird, wird<br />

eine Datei mit dem Namen “.keystore” erzeugt <strong>und</strong> die Schlüssel werden dort gespeichert.<br />

-storepass gibt das Passwort <strong>für</strong> die Keystore-Datei an. Falls es nicht spezifiziert wird,<br />

wird der Benutzer später bei der Erzeugung angefordert, das Passwort einzugeben.<br />

-keypass gibt das Passwort zur Geheimhaltung des geheimen Schlüssels an. Wird es<br />

nicht spezifiziert, wird den Benutzer später angefordert, es einzugeben. Drückt der<br />

Benutzer auf der Eingabetaste, wird dasselbe Password wie Keystore-Passwort<br />

verwendet.<br />

Das folgende Beispiel zeigt, wie ein Zertifikat mit RSA-Algorithmus <strong>und</strong> einer Schlüsselgröße<br />

von 2048 Bits erzeugt werden kann. Das erzeugte Zertifikat wird in einer Datei<br />

unter dem Namen mystore gespeichert.<br />

Beispiel <strong>für</strong> Zertifikat<br />

keytool -genkey -alias mykey -keystore mystore -validity 999<br />

-keyalg rsa -keysize 2048<br />

Geben Sie das Keystore-Passwort ein: 123456<br />

Geben Sie das Passwort erneut ein: 123456<br />

Wie lautet Ihr Vor- <strong>und</strong> Nachname?<br />

[Unknown]: <strong>Dynamic</strong> <strong>Fast</strong> <strong>Send</strong> <strong>Protocol</strong><br />

Wie lautet der Name Ihrer organisatorischen Einheit?<br />

[Unknown]: DFSP<br />

Wie lautet der Name Ihrer Organisation?<br />

[Unknown]: Universität Passau<br />

Wie lautet der Name Ihrer Stadt oder Gemeinde?<br />

[Unknown]: Passau<br />

Wie lautet der Name Ihres B<strong>und</strong>eslandes oder Ihrer Provinz?<br />

[Unknown]: Bayern<br />

Wie lautet der Landescode (zwei Buchstaben) <strong>für</strong> diese Einheit?<br />

[Unknown]: DE<br />

Ist CN= <strong>Dynamic</strong> <strong>Fast</strong> <strong>Send</strong> <strong>Protocol</strong>, OU=DFSP, O=Universität Passau,<br />

8


L=Passau, ST=Bayern, C=DE richtig? [Nein]: ja<br />

Geben das Passwort <strong>für</strong> ein.<br />

(EINGABETASTE, wenn Passwort dasselbe wie <strong>für</strong> Keystore): Enter<br />

Falls die Keystore-Datei noch nicht existiert, wird eine neue Datei mit dem gegebenen<br />

Namen erzeugt. Ist die Datei bereits vorhanden, wird sie durch die neue ersetzt.<br />

2.2 Exportierung von Zertifikaten<br />

Um die bereits erzeugten Zertifikate benutzen zu können, müssen sie zuerst exportiert<br />

werden. Dazu wird folgender Befehl verwendet<br />

keytool -export -alias alias -file cert-file -keystore keystore -storepass storepass -rfc<br />

Es wird ein Zertifikat mit dem gegebenen Alias in einer Datei mit dem gegebenen Namen<br />

exportiert. Die standardmäßige Ausgabe von Zertifikaten ist binäres Format. Wird<br />

die Option -rfc angegeben, wird das Zertifikat in druckbarem Format, welches in RFC<br />

1421 [?] definiert wird, gespeichert. Das folgende Beispiel zeigt, wie das oben erzeugte<br />

Zertifikat exportiert werden kann<br />

Exportierung von Zertifikaten<br />

keytool -export -alias mykey -keystore mystore -rfc -file myCert.cer<br />

Geben Sie das Keystore-Passwort ein: 123456<br />

Zertifikat in Datei gespeichert.<br />

Das exportierte Zertifikat wird in der Datei myCert.cer gespeichert <strong>und</strong> kann nun benutzt<br />

werden.<br />

2.3 Importierung von Zertifikaten<br />

Eine kommunizierende Instanz, die einer anderen Instanz vertraut, kann deren Zertifikat<br />

in ihre Keystore-Datei importieren. Dazu wird folgender Befehl verwendet<br />

9


keytool -import -alias alias -file cert-file -keystore keystore -storepass storepass -keypass<br />

keypass<br />

Im folgenden Beispiel wird gezeigt, wie ein Zertifikat, welches in der Datei myCert.cer<br />

gespeichert ist, zu mystore1 hinzugefügt wird.<br />

Importierung von Zertifikaten<br />

keytool -import -alias trustedcert -file myCert.cer -keystore mystore1<br />

Geben Sie das Keystore-Passwort ein: 123456<br />

Reenter keystore password: 123456<br />

Eigner: CN=<strong>Dynamic</strong> <strong>Fast</strong> <strong>Send</strong> <strong>Protocol</strong>, OU=DFSP,<br />

O=Universität Passau, L=Passau, ST=Bavaria, C=DE<br />

Aussteller: CN=<strong>Dynamic</strong> <strong>Fast</strong> <strong>Send</strong> <strong>Protocol</strong>, OU=DFSP,<br />

O=Universität Passau, L=Passau, ST=Bavaria, C=DE<br />

Serial number: 493d2ba3<br />

Gültig von: Mon Dec 08 15:13:55 CET 2008<br />

bis: Sun Mar 08 15:13:55 CET 2009<br />

Certificate Digitale Fingerprint:<br />

MD5: 79:E0:49:3C:18:[...]:87:0C:AC<br />

SHA1: 0D:1E:00:CE:8D:[...]:EF:85:07<br />

Unterschrift-Algorithmusname: SHA1withRSA<br />

Version: 3<br />

Diesem Zertifikat vertrauen? [nein]: ja<br />

Zertifikat wurde zu Keystore hinzugefügt.<br />

2.4 Andere Anweisungen<br />

Andere Anweisungen zur Verwaltung von Zertifikaten werden in den folgenden Abschnitten<br />

kurz vorgestellt. Weitere Informationen sind auf der Website von keytool 2 zu finden.<br />

2 http://java.sun.com/j2se/1.3/docs/tooldocs/win32/keytool.html<br />

10


2.4.1 Anzeigen von Zertifikaten<br />

Zum Anzeigen von Zertifikaten, die in einer bestimmten Keystore-Datei gespeichert sind,<br />

wird folgende Anweisung verwendet<br />

keytool -list -alias alias -keystore keystore [-v | -rfc]<br />

Wird das Alias nicht spezifiziert, werden alle Zertifikate, die in keystore gespeichert<br />

sind, angezeigt. Wird die Option -rfc angegeben, werden die Informationen in druckbarem<br />

Format angezeigt. Dagegen werden sie in visuell lesbarem Format angezeigt, falls<br />

die Option -v spezifiziert wird.<br />

2.4.2 Anzeigen des Inhaltes eines Zertifikates<br />

Um den Inhalt eines Zertifikates, welches in einer bestimmten Datei gespeichert ist, anzuzeigen,<br />

wird folgende Anweisung verwendet<br />

keytool -princert -file cert-file -v<br />

Der Inhalt kann entweder in visuell lesbarem Format (mit -v Option) oder in druckbarem<br />

Format (standardmäßig) angezeigt werden.<br />

2.4.3 Änderung des Keystore-Passwortes<br />

Zur Änderung des Keystore-Passwortes einer gegebenen Keystore-Datei wird folgende<br />

Anweisung verwendet<br />

keytool -storepasswd -new new-storepass -keystore keytore -storepass storepass<br />

Wird die Option -new oder -storepass nicht angegeben, wird der Benutzer später abgefragt.<br />

11


2.4.4 Änderung des Passwortes <strong>für</strong> einen bestimmten geheimen<br />

Schlüssel<br />

Um das Passwort <strong>für</strong> einen bestimmten privaten Schlüssel, der in Keystore-Datei gespeichert<br />

ist, zu ändern, kann folgende Anweisung eingegeben werden<br />

keytool -keypasswd -alias alias -keypass old-keypass -new new-keypass -keystore keysore<br />

2.4.5 Löschen eines Eintrags in Keystore<br />

Folgende Anweisung wird zum Löschen eines bestimmten Eintrags in Keystore-Datei<br />

verwendet<br />

keytool -delete -alias alias -keystore keystore -storepass storepass<br />

Wird das Alias nicht angegeben, wird der Benutzer später darüber abgefragt.<br />

12


Kapitel 3<br />

Installation des DFSP-Servers<br />

Es gibt keinen Unterschied zwischen Installation von Server <strong>und</strong> Zwischenstationen. Die<br />

Installation besteht aus zwei Schritten:<br />

• Installation von Zertifikaten.<br />

• Anpassung der Konfigurationsdatei.<br />

In den folgenden Abschnitten werden diese Schritte beschrieben.<br />

3.1 Installation von Zertifikaten<br />

Zur Authentifizierung muss der Server <strong>und</strong> jede Zwischenstation eigenes Zertifikat besitzen.<br />

Zur Erzeugung von Zertifikaten wird keytool verwendet (siehe dazu Abschnitt 2).<br />

Nachdem ein Zertifikat erzeugt wurde, muss es exportiert werden. Die Exportierung von<br />

Zertifikaten kann ebenfalls mit Hilfe von keytool durchgeführt werden. Es ist zu empfehlen,<br />

dass das exportierte Zertifikat in druckbarem Format gespeichert wird. Sonst<br />

können Probleme beim Lesen des Zertifikates bei Authentifikation kommen. Dabei ist<br />

zu beachten, dass folgende Informationen bei der XML-Konfigurationsdatei später angepasst<br />

werden müssen:<br />

• Der Pfad zur Keystore-Datei <strong>und</strong> deren Passwort<br />

• Der Pfad zum Zertifikat<br />

• Das Alias <strong>für</strong> den geheimen Schlüssel in Keystore-Datei <strong>und</strong> das Passwort <strong>für</strong> den<br />

geheimen Schlüssel, falls es vorhanden ist 1<br />

1 Das bedeutet, dass dieses Passwort nicht gleich das Keystore-Passwort ist.<br />

13


Um TLS verwenden zu können, muss der Server den Zwischenstationen vertrauen. Dazu<br />

bekommt er die Kopien von deren Zertifikaten <strong>und</strong> kann in seine Keystore-Datei importieren.<br />

Die Methode zur Importierung von Zertifikaten mit keytool wird im Abschnitt 2<br />

beschrieben.<br />

3.2 Anpassung der Konfigurationsdatei<br />

Alle Optionen, die <strong>für</strong> das Starten des Servers bzw. der Zwischenstation benötigt sind,<br />

können mit einer XML-Datei konfiguriert werden. Nachfolgend wird ein Beispiel <strong>für</strong> eine<br />

typische Konfiguration des Servers gezeigt.<br />

Konfigurationsdatei des DFSP-Servers<br />

<br />

<br />

<br />

bootstraphost:3021<br />

<br />

<br />

both<br />

/var/logs/fsp/<br />

2021<br />

2022<br />

false<br />

100<br />

600<br />

500<br />

100<br />

60<br />

/local/DFSP/<br />

1<br />

1048576<br />

trust-server:5021<br />

serverstore<br />

123456<br />

mykey<br />

server.cer<br />

<br />

14


true<br />

intermediatehost1:3021<br />

intermediatehost2:4021<br />

<br />

fspuser<br />

fspuser<br />

<br />

write<br />

<br />

<br />

<br />

Die Optionen werden nachfolgend erläutert:<br />

• bootstraphost:3021 gibt die Informationen über den<br />

Bootstrap-Knoten in Meridian an. Die IP-Adresse oder der Name des Knotens <strong>und</strong><br />

die TCP-Portnummer müssen vorhanden sein.<br />

• both gibt an, ob dieser Knoten als Server (server), Zwischenstation<br />

(intermediate) oder beides (both) dient.<br />

• /var/logs/fsp/ spezifiziert, wo die Log-Datei<br />

sich befindet. Ist dieses Verzeichnis nicht vorhanden, wird keine Log-Datei generiert.<br />

Dieses Verzeichnis muss ein Unterverzeichnis des Hauptverzeichnisses sein.<br />

• 2021 gibt die Portnummer des Kontrollkanals an.<br />

Die Portnummer muss größer als 1 <strong>und</strong> kleiner als 65536 sein. Es ist allerdings zu<br />

empfehlen, die Portnummer größer als 1024 zu wählen, da die kleiner als 1024 bei<br />

manchen Systemen vom Administrator blockiert werden.<br />

• 2022 spezifiziert die Portnummer des Datenkanals. Häufig<br />

wird sie um 1 größer als die Portnummer des Kontrollkanals gewählt.<br />

• false Wird diese Option auf true gesetzt, wird<br />

der Kontrollkanal vom Anfang bis zum Ende durch TLS verschlüsselt. Beim Setzen<br />

auf false wird der Kontrollkanal unverschlüsselt, bis der Client das expliziert<br />

auffordert.<br />

• 100 gibt die maximale Anzahl von eingehenden<br />

Verbindungen an.<br />

15


• 600 definiert das maximale Zeitintervall in<br />

Sek<strong>und</strong>en, innerhalb dessen der Client die Verbindung ohne irgendeine Anforderung<br />

an den Server halten kann. Nach dessen Ablauf wird die Verbindung terminiert.<br />

• 500 definiert die maximale Anzahl von Threads, die<br />

von Server verwaltet werden können.<br />

• 100 definiert die maximale Anzahl von unbenutzten<br />

Threads, die der Server verwalten muss.<br />

• 60 definiert das maximale Zeitintervall<br />

in Sek<strong>und</strong>en, innerhalb dessen ein unbenutzter Thread am Leben bleiben kann,<br />

wenn die Anzahl von unbenutzten Threads größer als der in corethreads definierte<br />

Wert ist.<br />

• /local/DFSP/ spezifiziert das Hauptverzeichnis<br />

<strong>für</strong> DFSP.<br />

• 1 definiert die Anzahl der parallelen Übertragungen.<br />

• 1048576 gibt die standardmäßige Blockgröße in Byte<br />

an.<br />

• trust-server:5021 spezifiziert den Knoten, der<br />

als Trust-Server dient. Als Adresse kann entwerder IP-Adresse:Portnummer oder<br />

Hostname:Portnummer angegeben werden.<br />

• serverstore gibt den Name der Keystore-Datei an. Falls<br />

diese Datei nicht im Hauptverzeichnis gespeichert ist, muss der absolute Pfad angegeben<br />

werden.<br />

• 123456 gibt das Passwort <strong>für</strong> Keystore-Datei<br />

an.<br />

• mykey gibt das Alias <strong>für</strong> den eigenen geheimen Schlüssel<br />

an.<br />

• server.cer gibt den Name der Datei an, in der<br />

das eigene Zertifikat gespeichert ist. Wird die Datei nicht im Hauptverzeichnis<br />

gespeichert, muss der absolute Pfad angegeben werden.<br />

16


• gibt das Passwort <strong>für</strong> den geheimen Schlüssel an. Falls es<br />

dasselbe wie das Keystore-Passwort ist, sollte man diese Option leer lassen.<br />

• true Wird diese Option auf true gesetzt, vertraut der<br />

Server allen Zertifikaten von Zwischenstationen. Falls sie hingegen auf false gesetzt<br />

wird, darf der Server eine Verbindung zu einer Zwischenstation aufbauen, nachdem<br />

er deren Zertifikat vertraut.<br />

• intermediatehost1:3021 Für statische Auswahl<br />

von Zwischenstationen können die Zwischenstationen hier aufgelistet werden.<br />

Man kann entweder IP-Adresse:Portnummer oder Hostname:Portnummer als<br />

Adresse angeben.<br />

• ... gibt die Informationen über die Benutzer an. Normalerweise<br />

werden sie in DFSP nicht benutzt. Werden sie trotzdem angegeben, kann ein<br />

FSP-Client mit dem DFSP-Server durch Benutzernamen <strong>und</strong> Passwörter authentifizieren.<br />

Nachdem die Konfigurationsdatei fertig angepasst wurde, können der Server bzw. die<br />

Zwischenstationen gestartet werden. Die Vorgehensweise wird im Abschnitt 5 beschrieben.<br />

17


Kapitel 4<br />

Installation des DFSP-Clients<br />

Ähnlich wie bei der Installation von Server besteht die Installation des DFSP-Clients<br />

ebenfalls aus zwei Schritten:<br />

• Installation von Zertifikaten<br />

• Anpassung der Konfigurationsdatei<br />

Nachfolgend werden die beiden Schritte erläutert.<br />

4.1 Installation von Zertifikaten<br />

Um Zertifikate beim Client zu installieren, müssen dieselben Schritte, die im Abschnitt<br />

3.1 beschrieben wurden, durchgeführt werden. Dabei ist es wichtig, dass die Informationen<br />

über die Keystore-Datei, deren Passwort, das Zertifikat <strong>und</strong> dessen Passwort<br />

später bei Konfiguration angepasst werden. Zur Verwendung von TLS muss der Client<br />

dem Server <strong>und</strong> den Zwischenstationen vertrauen, indem er deren Zertifikate in seine<br />

Keystore-Datei importiert. Nach der erfolgreichen Installation von Zertifikaten kann die<br />

Konfigurationsdatei angepasst werden.<br />

4.2 Anpassung der Konfigurationsdatei<br />

Alle Optionen werden in einer XML-Datei gespeichert <strong>und</strong> sollen vor dem Starten von<br />

Benutzer konfiguriert werden. Das folgende Beispiel zeigt eine typische Konfigurationsdatei<br />

des Clients<br />

18


Konfigurationsdatei des DFSP-Clients<br />

<br />

<br />

<br />

/local/dfspclient<br />

1<br />

1048576<br />

mystore<br />

123456<br />

mykey<br />

myCert.cer<br />

<br />

true<br />

<br />

<br />

Der Client enthält deutlich wenigere Optionen als der Server. Die Bedeutung der Optionen<br />

sind folgende:<br />

• /local/dfspclient gibt das Hauptverzeichnis<br />

des Clients an. Wird diese Option leer gelassen, wird das aktuelle Verzeichnis<br />

als Hauptverzeichnis verwendet.<br />

• 1 definiert die standardmäßige Anzahl von parallelen<br />

Übertragungen.<br />

• 1048576 definiert die standardmäßige Blockgröße in<br />

Bytes.<br />

• mystore gibt den Name der Keystore-Datei an. Wird die<br />

Datei nicht im Hauptverzeichnis gespeichert, muss der absolute Pfad angegeben<br />

werden.<br />

• 123456 gibt das Passwort <strong>für</strong> Keystore-Datei<br />

an.<br />

• mykey gibt das Alias <strong>für</strong> den geheimen Schlüssel des Clients<br />

an.<br />

19


• myCert.cer gibt den Pfad <strong>für</strong> das Zertifikat des<br />

Clients an. Falls das Zertifikat im Hauptverzeichnis gespeichert wird, muss nur den<br />

Dateiname angegeben werden. Ansonten muss man den absoluten Pfad angeben.<br />

• definiert das Passwort <strong>für</strong> den geheimen Schlüssel des Clients.<br />

Ist dieses Passwort dasselbe wie das Keystore-Passwort, soll diese Option leer<br />

gelassen werden.<br />

• true Wird dies Option auf true gesetzt, vertraut der Client<br />

den Zertifikaten von dem Server <strong>und</strong> Zwischenstationen. Beim Setzen auf false<br />

werden nur die Stationen, deren Zertifikaten in Keystore-Datei gespeichert sind,<br />

vertraut.<br />

Nach der Anpassung der Konfigurationsdatei kann der Client gestartet werden. Im Abschnitt<br />

6 wird gezeigt, wie man den Client starten kann.<br />

20


Kapitel 5<br />

Starten des Servers <strong>und</strong> der<br />

Zwischenstationen<br />

Neben der Hauptdatei, DFSP.jar, wird eine entsprechende Konfigurationsdatei zum<br />

Starten des Servers bzw. einer Zwischenstation benötigt. Das folgende Beispiel zeigt<br />

eine Anweisung, mit der der Server direkt von Kommandozeile gestartet werden kann.<br />

Als Parameter wird der Name der Konfigurationsdatei angegeben. Wird diese Datei nicht<br />

im aktuellen Verzeichnis gespeichert, muss man den absoluten Pfad angeben.<br />

Starten des DFSP-Servers<br />

java -server -Xmx512m -jar DFSP.jar -s serverconf.xml<br />

11.12.2008 12:24:46 <strong>Fast</strong><strong>Send</strong>Server run<br />

INFO: <strong>Dynamic</strong> <strong>Fast</strong> <strong>Send</strong> <strong>Protocol</strong> Server started at europa.cluster<br />

on port 2021 using explicit SSL mode.<br />

11.12.2008 TrustBooting run<br />

INFO: trust booting run<br />

11.12.2008 12:24:50 TrustBooting begin<br />

INFO: trust booting begin<br />

11.12.2008 12:25:08 TrustBooting shutdown<br />

INFO: trust booting finished<br />

Es gibt keinen Unterschied zwischen dem Starten eines Servers <strong>und</strong> einer Zwischenstation,<br />

wobei man nur noch den Name der Konfigurationsdatei anpassen muss. Mit Hilfe<br />

der Option -server wird die Server Virtual Machine gestartet. Die Option -Xmx512m<br />

setzt die Heap-Größe des Servers auf 512 MB. Was zu beachten ist, dass eine größere<br />

Heap-Größe den Server erlaubt, mehrere Verbindungen zu bedienen, aber höheren<br />

21


Speicherbedarf fordert. Mit einer Heap-Größe von 512 MB kann der Server bereits einige<br />

h<strong>und</strong>ert Verbindungen verwalten.<br />

22


Kapitel 6<br />

Starten des Clients<br />

Der DFSP-Client kann in zwei Modi arbeiten: dem Kommandozeilen- <strong>und</strong> GUI-Modus.<br />

In folgenden Abschnitten wird gezeigt, wie man den Client in diesen Modi starten <strong>und</strong><br />

verwenden kann.<br />

6.1 Kommandozeilen-Modus<br />

In diesem Modus kann der Benutzer die FSP- bzw. DFSP-Befehle verwenden, die er<br />

durch eine textuelle Schnittstelle eingeben kann, um mit DFSP arbeiten zu können.<br />

Im nächsten Abschnitt werden alle Interaktionsbefehle von FSP bzw. DFSP vorgestellt.<br />

Danach wird in einem Beispiel gezeigt, wie man mit den Befehlen arbeiten kann.<br />

6.1.1 FSP-Client-Befehle<br />

Die Befehle von FSP werden hier nur kurz beschrieben. Eine genauere Beschreibung ist<br />

in Anhang C in [1] zu finden.<br />

6.1.1.1 HELP<br />

Listet alle implementierten Befehle auf. Wird der Name eines Befehls angegeben, wird<br />

das Format des gegebenen Befehls angezeigt.<br />

HELP []?<br />

23


6.1.1.2 OPEN<br />

Öffnet eine Verbindung zu einem bestimmten Server. Als Parameter wird die IP-Adresse<br />

oder der Name des Servers angegeben. Ist die Portnummer anders als 21, muss die<br />

entsprechende Portnummer angegeben werden.<br />

OPEN []?<br />

6.1.1.3 CLOSE<br />

Schließt den aktuellen Kontrollkanal zum Server.<br />

CLOSE<br />

6.1.1.4 QUIT<br />

Loggt den Benutzer aus <strong>und</strong> baut die aktuelle Verbindung zum Server ab. Der Client<br />

wird beendet.<br />

QUIT<br />

6.1.1.5 USER<br />

Gibt dem Server den Name des Benutzers zur Authentifizierung. Danach muss der Benutzer<br />

sein Passwort eingeben.<br />

USER<br />

6.1.1.6 MODE<br />

Schaltet zwischen dem Stream-Modus <strong>und</strong> Block-Modus um. Verbindet der Client mit<br />

einem DFSP-Server, wird der Übertragungsmodus standardmäßig auf Block-Modus gesetzt.<br />

MODE [STREAM | BLOCK]<br />

24


6.1.1.7 CD<br />

Wechselt das aktuelle Arbeitverzeichnis zu einem gegebenen Verzeichnis auf Serverseite.<br />

CD <br />

6.1.1.8 LCD<br />

Wechselt das aktuelle Arbeitverzeichnis zu einem gegebenen Verzeichnis auf Clientseite.<br />

LCD <br />

6.1.1.9 DIR<br />

Listet alle Dateien, die in einem gegebenen Verzeichnis auf Server gespeichert sind, auf.<br />

DIR [pattern]?<br />

6.1.1.10 MKDIR<br />

Generiert ein neues Verzeichnis auf Server. Als Parameter muss der Pfad des neuen<br />

Verzeichnisses angegeben werden.<br />

MKDIR <br />

6.1.1.11 RMDIR<br />

Löscht ein bestimmtes Verzeichnis <strong>und</strong> seinen Inhalt auf Server.<br />

RMDIR <br />

6.1.1.12 DEL<br />

Löscht eine bestimmte Datei, die auf Server gespeichert ist.<br />

DEL <br />

25


6.1.1.13 RENAME<br />

Eine Datei auf Server wird umbenannt.<br />

RENAME <br />

6.1.1.14 STARTTLS<br />

Startet die Verwendung von TLS zur Ver- <strong>und</strong> Entschlüsselung der über Kontrollkanal<br />

übertragenen Nachrichten.<br />

STARTTLS<br />

6.1.1.15 BUFFER<br />

Setzt die Puffergröße <strong>für</strong> die Übertragung. Folgende Optionen werden unterstützt: DRS<br />

(DRS), standardmäßige Puffergröße des Betriebsystems (DEFAULT ) <strong>und</strong> feste Puffergröße.<br />

BUFFER [DEFAULT | DRS | ]<br />

6.1.1.16 PARALLEL<br />

Setzt die Anzahl von parallelen Übertragungen.<br />

PARALLEL <br />

6.1.1.17 STRIPE<br />

Setzt die Verteilungsstrategie <strong>für</strong> die Übertragung. Folgende Strategien werden unterstützt:<br />

• FCFS-Strategie (AUTO)<br />

• zyklische Strategie (CYCLIC )<br />

• partitionierte Strategie (BLOCK )<br />

STRIPE [AUTO | CYCLIC | BLOCK ]<br />

26


6.1.1.18 CIPHER<br />

Setzt den Verschlüsselungsalgorithmus <strong>für</strong> die Übertragung. Der AES- <strong>und</strong> Blowfish Algorithmus<br />

mit verschiedenen Schlüsselgrößen werden unterstützt. Bei der Option NONE<br />

wird die Verschlüsselung deaktiviert. Als zweiter Parameter kann der Schlüssel angegeben<br />

werden. Sonst wird ein zufälliger Schlüssel generiert <strong>und</strong> verwendet.<br />

CIPHER [NONE | AES128 | AES192 | AES256 | BLOWFISH128 | BLOWFISH256<br />

| BLOWFISH448] [key]?<br />

6.1.1.19 CHECKSUM<br />

Setzt den Algorithmus zur Prüfung der Datenintegrität. Verschiedene Algorithmen werden<br />

unterstützt.<br />

CHECKSUM [NONE | ADLER32 | CRC32 | MD5 | SHA1]<br />

6.1.1.20 ZIP<br />

Setzt den Algorithmus <strong>für</strong> Datenkompression. Bei NONE wird die Datenkompression<br />

deaktiviert.<br />

ZIP [NONE | ZLIB | ZLIBFAST | ZLIBBEST]<br />

6.1.1.21 SOPTION<br />

Erlaubt den Client zum Setzen der Optionen <strong>für</strong> zweistufige Datenübertragung. Die<br />

Änderung folgender Optionen ist möglich:<br />

• DIRECTRCV Standardmäßig wird diese Option aktiv gesetzt. Das heißt, dass der<br />

Client an der Distributionsphase teilnehmen darf.<br />

• PRESTARTIS diese Option erlaubt eine Überlappung zwischen der Distributions<strong>und</strong><br />

Aggregationsphase. Standardmäßig wird sie deaktiviert. Ansonsten muss die<br />

Anzahl von Blöcken, die von Server verteilt werden müssen, bevor der Client den<br />

Einsammlungsprozess startet, angegeben werden.<br />

SOPTION [DIRECTRCV | PRESTARTIS= [ | NO]]<br />

27


6.1.1.22 ICONSTRS<br />

Erlaubt den Benutzer, die Bedingungen <strong>für</strong> die dynamische Auswahl von Zwischenstationen<br />

zu setzen. Als Parameter können entweder die maximalen Distanzen zum Server<br />

<strong>und</strong> Client in ms oder relative Distanz angegeben werden (siehe Abschnitt 3.3.4.3 in [1]).<br />

ICONSTRS [, | ]<br />

6.1.1.23 ISET<br />

Hat mehrere Verwendungen:<br />

• ISET listet alle Zwischenstationen, die in der Distributionsphase verwendet werden.<br />

• ISET [[:]?]* die gegebenen Zwischenstationen sollen in<br />

der Distributionsphase verwendet werden.<br />

• ISET RESET löscht die gerade ausgewählten Zwischenstationen.<br />

6.1.1.24 PUT<br />

Erlaubt den Benutzer, eine Datei zum Server hochzuladen.<br />

PUT <br />

6.1.1.25 GET<br />

Lädt eine Datei vom Server zum Clientrechner direkt runter.<br />

GET <br />

6.1.1.26 SGET<br />

Lädt eine Datei vom Server zum Client durch Verwendung zweistufiger Übertragung<br />

runter. Die Daten werden zuerst an die Zwischenstationen verteilt. Danach können sie<br />

abgeholt werden.<br />

SGET <br />

28


6.1.1.27 PGET<br />

Fordert einen Teil einer Datei an. Als Parameter müssen der Dateiname, der Offset <strong>und</strong><br />

die Länge angegeben werden.<br />

PGET [,,]+<br />

6.1.1.28 TYPE<br />

Erlaubt den Benutzer, zwischen dem ASCII- (A) oder binären Modus (I ) umzuschalten.<br />

Verbindet der Client mit einem DFSP-Server, wird der binäre Modus als Standard<br />

gesetzt.<br />

TYPE [A | I]<br />

6.1.1.29 PASSIVE<br />

Schaltet zwischen dem ACTIVE- <strong>und</strong> PASSIVE-Modus.<br />

PASSIVE<br />

6.1.1.30 TSERVER<br />

Erlaubt den Client, die Adresse <strong>für</strong> den <strong>Send</strong>eserver bei thrid-party Übertragung zu<br />

setzen. Zuerst muss ein Verbindung zum Empfangsserver aufgebaut werden. Danach<br />

kann die Adresse des <strong>Send</strong>eservers mit Hilfe dieses Befehls gesetzt werden.<br />

TSERVER [[:]?]*<br />

6.1.1.31 TDIR<br />

Listet alle Dateien, die im gegebenen Verzeichnis auf <strong>Send</strong>eserver gespeichert sind, auf.<br />

Dieser Befehl wird <strong>für</strong> thrid-party Übertragung verwendet.<br />

TDIR []?<br />

29


6.1.1.32 TGET<br />

Überträgt eine Datei vom <strong>Send</strong>eserver zum Empfangsserver bei thrid-party Übertragung.<br />

Die Datei soll direkt vom <strong>Send</strong>eserver zum Empfangsserver übertragen werden.<br />

TGET <br />

6.1.1.33 TSGET<br />

Überträgt eine Datei vom <strong>Send</strong>eserver zum Empfangsserver durch Verwendung von zweistufiger<br />

Übertragung in thrid-party Übertragung. Die Datei wird zuerst in Blöcken geteilt,<br />

die dann an die Zwischenstationen verteilt werden. Danach kann der Empfangsserver<br />

die Blöcke von Zwischenstationen abholen.<br />

TSGET <br />

6.1.1.34 TISET<br />

Wird in third-party Übertragung verwendet. Dieser Befehl erlaubt, die Zwischenstationen<br />

<strong>für</strong> zweistufige Übertragung zwischen <strong>Send</strong>e- <strong>und</strong> Empfangsserver zu setzen. Seine<br />

Funktionalität ist dem Befehl ISET sehr ähnlich (siehe ISET <strong>für</strong> weitere Informationen).<br />

6.1.1.35 LITERAL<br />

Ermöglicht es, eine Zeichenkette wörtlich zum Server zu übertragen.<br />

LITERAL <br />

6.1.2 DFSP-Client-Befehle<br />

Neben den Befehlen von FSP werden einige Befehle in DFSP implementiert. Sie werden<br />

nachfolgend ausführlich vorgestellt.<br />

30


6.1.2.1 STRATEGY<br />

Dieser Befehl erlaubt den Benutzer, die Strategie <strong>für</strong> die dynamische Anpassung der<br />

Anzahl von Zwischenstationen auszuwählen. Als Parameter muss der Name der Strategie<br />

angegeben werden. Zwei Strategie werden unterstützt: MI- <strong>und</strong> MIAD-Strategie (siehe<br />

Abschnitt 4.2.2 in [2]).<br />

STRATEGY [MI | MIAD]<br />

6.1.2.2 NCSTRATEGY<br />

Mit Hilfe dieses Befehls wird die Strategie <strong>für</strong> den dynamischen Austausch von Zwischenstationen<br />

ausgewählt. Der Name der Strategie muss angegeben werden. Zur Zeit<br />

wird nur eine Strategie, die SENDTIME-Strategie, implementiert. Bei der Wahl von<br />

NONE wird der dynamische Austausch von Zwischenstationen deaktiviert (siehe dazu<br />

Abschnitt 4.3 in [2]).<br />

NCSTRATEGY [NONE | SENDTIME]<br />

6.1.2.3 KSAFETY<br />

Der Wert k <strong>für</strong> K-Safety wird durch Verwendung dieses Befehls gesetzt (siehe dazu<br />

Abschnitt 4.4 in [2]). Standardmäßig wird dieser Wert auf 1 (ohne K-Safety) gesetzt.<br />

Dabei ist zu beachten, dass der Durchsatz sich bei einem hohen Wert von k drastisch<br />

reduzieren kann.<br />

KSAFETY <br />

6.1.2.4 SETFACT<br />

Dieser Befehl ermöglicht den Benutzer, die Kontrollfaktoren <strong>für</strong> die dynamische Anpassung<br />

der Anzahl <strong>und</strong> den dynamischen Austausch von Zwischenstationen manuell<br />

ändern zu können. Folgende Optionen stehen zur Verfügung:<br />

• MI: Der MI-Faktor. Standardmäßig wird er auf 2.0 gesetzt. Die Anzahl von Zwischenstationen<br />

kann mit einem großen Wert von MI-Faktor sehr schnell ansteigen,<br />

was wiederum dazu führt, dass der Server sehr schnell überlastet wird (siehe Abschnitt<br />

4.2.2.1 in [2]).<br />

31


• AD: Der AD-Faktor <strong>für</strong> die MIAD-Strategie. Er wird standardmäßig auf 1 gesetzt.<br />

Es ist zu empfehlen, diesen Wert klein zu setzen, damit die Anzahl von Zwischenstationen<br />

langsam reduziert werden kann (siehe Abschnitt 4.2.2.2 in [2] <strong>für</strong> weitere<br />

Informationen).<br />

• I: Der MC-Faktor ist ein wichtiger Faktor <strong>für</strong> dynamische Anpassung der Anzahl<br />

von Zwischenstationen. Ein kleiner Wert von MC-Faktor kann dazu führen, dass<br />

die Anzahl von Zwischenstationen einfach erhöht wird. Dadurch wird der Server<br />

schnell überlastet. Es ist zu empfehlen, dass dieser Wert gleich der MC-Faktor<br />

gesetzt wird (siehe Abschnitt 4.2.2.1 in [2]). Standardmäßig wird er auf 2.0 gesetzt.<br />

• D: Der AC-Faktor <strong>für</strong> MIAD-Strategie. Wird dieser Faktor gleich der MC-Faktor<br />

gesetzt, wird die Anzahl von Zwischenstationen entweder erhöht oder reduziert. Die<br />

Anzahl der Zwischenstationen wird erhöht, reduziert oder bleibt sie unverändert,<br />

wenn der AC-Faktor kleiner als der MC-Faktor gesetzt ist. Als Standard wird er<br />

auf 1.0 gesetzt. Weitere Informationen sind im Abschnitt 4.2.2.2 in [2] zu finden.<br />

• T: Der TC-Faktor <strong>für</strong> die SENDTIME-Strategie. Ob schlechte Zwischenstationen<br />

schnell erkannt <strong>und</strong> ausgetauscht werden können, hängt viel von diesem Faktor ab.<br />

Mit einem kleinen Wert von TC-Faktor können schlechte Zwischenstationen zwar<br />

schnell erkannt werden, allerdings kann es zu einem unnötigen Austausch führen.<br />

In DFSP wird er standardmäßig auf 2.0 gesetzt.<br />

SETFACT [MI | AD | I | D | T] <br />

6.1.3 Anwendungsbeispiel<br />

In diesem Beispiel wird Schritt <strong>für</strong> Schritt gezeigt, wie der DFSP-Client gestartet <strong>und</strong><br />

verwendet werden kann. Die Datei testfile, die sich im Verzeichnis test befindet, soll<br />

heruntergeladen werden. Sie wird zunächst in mehreren Blöcken geteilt, die später an<br />

die dynamisch ausgewählten Zwischenstationen verteilt werden, bevor sie vom Client<br />

abgeholt werden. Zur dynamischen Anpassung der Anzahl von Zwischenstationen wird<br />

die MI-Strategie verwendet. Der dynamische Austausch von Zwischenstationen wird aktiviert.<br />

Zur Erhöhung der Ausfallsicherheit des Systems wird K-Safety mit k = 2 eingesetzt.<br />

Außerdem wird DRS verwendet, um einen besseren Durchsatz zu erzielen. Im<br />

ersten Schritt muss der Client eine Verbindung zum Server herstellen.<br />

32


6.1.3.1 Verbinden mit dem Server<br />

Zum Starten des DFSP-Clients wird folgende Anweisung verwendet. Als Parameter werden<br />

der Pfad der Konfigurationsdatei <strong>und</strong> die Adresse des zu verbindenden Servers angegeben.<br />

Verinden mit dem europa-Server<br />

java -server -jar DFSP.jar -c clientconf.xml europa -cp 2021<br />

Connected to europa/10.0.0.254:2021.<br />

220 Welcome to the <strong>Dynamic</strong> <strong>Fast</strong> <strong>Send</strong> <strong>Protocol</strong> Server<br />

on /10.0.0.0:2021.<br />

Switching to TLS succeeded. About to start TLS handshake.<br />

6.1.3.2 Authentifizierung<br />

Nach dem Verbindungsaufbau wird der Authentifizierungsprozess zwischen beiden Kommunikationspartnern<br />

automatisch gestartet. Nach der erfolgreichen Authentifizierung<br />

bekommt der Client einen temporären Benutzername <strong>und</strong> ein temporäres Passwort vom<br />

Server (siehe Abschnitt 4.1.3.3 in [2]).<br />

Authentifizierung<br />

Authentification begins.<br />

Authentification successful.<br />

Creating an account for user node1:39163.<br />

User node1:39163 logged in successfully.<br />

6.1.3.3 Setzen der Übertragungsoptionen<br />

Die Übertragungsparameter können nun gesetzt werden. Das folgende Beispiel zeigt,<br />

wie man die Strategie <strong>für</strong> dynamische Anpassung der Anzahl von Zwischenstationen<br />

<strong>und</strong> deren Austausch, den Wert k <strong>für</strong> K-Safety <strong>und</strong> DRS-Algorithmus <strong>für</strong> Puffergröße<br />

setzen kann.<br />

Setzen der Übertragungsoptionen<br />

fsp> strategy MI<br />

200 Strategy is already set to MI;<br />

fsp> ncstrategy SENDTIME<br />

33


200 Strategy is already set to SENDTIME;<br />

fsp> ksafety 2<br />

200 Options set, command successful.<br />

fsp> buffer drs<br />

200 Options set, command successful.<br />

fsp> setfact mi 2.0<br />

200 MI-Factor is already set to 2.0;<br />

fsp> setfact t 1.5<br />

200 Options set, command successful.<br />

6.1.3.4 Setzen der Bedingungen <strong>für</strong> dynamische Auswahl von<br />

Zwischenstationen<br />

Zum Setzen der Bedingungen <strong>für</strong> dynamische Auswahl von Zwischenstationen kann der<br />

Befehl iconstrs verwendet werden. Stationen, deren Distanz zum Server nicht größer als<br />

15 ms <strong>und</strong> deren Distanz zum Client nicht größer als 30 ms ist, können als Zwischenstationen<br />

<strong>für</strong> die Übertragung ausgewählt werden.<br />

Setzen der Bedingungen <strong>für</strong> Zwischenstationen<br />

fsp> iconstrs 15,30<br />

200 Options set, command successful.<br />

fsp> iset<br />

Intermediate nodes for the given constraints<br />

10.0.0.2:3021 constraints: [11, 21]<br />

10.0.0.4:5021 constraints: [7, 18]<br />

10.0.0.5:6021 constraints: [13, 23]<br />

10.0.0.6:7021 constraints: [8, 22]<br />

10.0.0.7:8021 constraints: [9, 28]<br />

6.1.3.5 Suche nach der herunterzuladenden Datei<br />

Mit Hilfe von CD- <strong>und</strong> DIR-Befehl kann der Benutzer das Arbeitverzeichnis auf Serverseite<br />

wechseln, um nach der anzufordernden Datei zu suchen. Die Datei testfile befindet<br />

sich im Verzeichnis test, ein Unterverzeichnis des Hauptverzeichnisses auf Server.<br />

34


Suche nach der herunterzuladenden Datei<br />

fsp> dir<br />

150 Opening ASCII mode data connection for file list<br />

09-01-08 10:43AM 1073741824 tempfile11<br />

09-01-08 10:44AM 1073741824 tempfile12<br />

09-01-08 10:44AM 1073741824 tempfile13<br />

13-12-08 11:51PM test<br />

226 Transfer completed.<br />

fsp> cd test<br />

250 CWD command successful<br />

fsp> dir<br />

150 Opening ASCII mode data connection for file list<br />

13-12-08 11:51PM 1073741824 testfile<br />

226 Transfer completed.<br />

6.1.3.6 Anforderung der Datei<br />

Die Datei kann jetzt heruntergeladen werden. Dazu wird der Befehl sget benötigt.<br />

Anforderung der Datei<br />

fsp> sget testfile<br />

229-Entering Striped Passive Mode<br />

10,0,0,254,142,69<br />

229 Finished Entering Striped Passive Mode<br />

150 Opening BINARY mode data connection for testfile (1073741824 bytes).<br />

0001024 KB received. 0001024 KB striped from server.<br />

...<br />

0051200 KB received. 0055296 KB striped from server.<br />

Node 10.0.0.4:5021 has been changed.<br />

...<br />

0323586 KB received. 0001024 KB striped in K-Safety.<br />

01048576 KB striped from server.<br />

...<br />

0323586 KB received. 0724992 KB striped in K-Safety.<br />

1048576 KB striped from server.<br />

...<br />

1048576 KB received. 0724992 KB striped in K-Safety.<br />

35


1048576 KB striped from server.<br />

Transfer finished.<br />

Total Throughput:<br />

54.392,86 KB/s (1073741824 bytes in 19259 ms.)<br />

Striping Throughput:<br />

82.231,28 KB/s (1073741824 bytes in 12764 ms.)<br />

Direct Throughput:<br />

33.928,68 KB/s (330301440 bytes in 12764 ms.)<br />

10,0,0,6,27,109 Throughput:<br />

55.493,31 KB/s (254803968 bytes in 4484 ms.)<br />

10,0,0,5,23,133 Throughput:<br />

39.110,56 KB/s (258998272 bytes in 6467 ms.)<br />

10,0,0,2,11,205 Throughput:<br />

35.597,51 KB/s (228589568 bytes in 6271 ms.)<br />

Nach der Übertragung werden folgende Informationen angezeigt:<br />

• Der Gesamtdurchsatz der Übertragung,<br />

• Der Verteilungsdurchsatz,<br />

• Der Durchsatz der direkten Verbindung zwischen Server <strong>und</strong> Client <strong>und</strong><br />

• Die Durchsätze der jeweiligen Verbindung zu Zwischenstationen während der Aggregrationsphase.<br />

6.1.3.7 Beenden der Sitzung<br />

Zum Ausloggen <strong>und</strong> Beenden der Sitzung wird der Befehl Quit verwendet.<br />

Beenden der Sitzung<br />

fsp> quit<br />

221 Closing control connection.<br />

Connection closed.<br />

Goodbye!<br />

Die Verbindung zum Server wird abgebaut <strong>und</strong> der Client wird beendet.<br />

36


6.2 GUI-Modus<br />

Neben der textuellen Schnittstelle bietet DFSP eine graphische Benutzeroberfläche, welche<br />

die Arbeit des Benutzers erleichtert. In Abbildung 6.1 wird das Arbeitsfenster des<br />

DFSP-Clients dargestellt.<br />

Übertragungsoptionen<br />

Dienstsfunktionen<br />

Client-Fenster<br />

Kosole<br />

Verbindungsfunktionen<br />

Server-Fenster<br />

Abbildung 6.1: Arbeitsfenster des DFSP-Clients.<br />

Ganz oben befinden sich die Verbindungsfunktionen, die <strong>für</strong> Verbindungsaufbau <strong>und</strong> -<br />

abbau zuständig sind. Links unter den Verbindungsfunktionen ist das Konsole-Fenster,<br />

auf dem die Ereignisse angezeigt werden. Rechts neben dem Konsole-Fenster sind die<br />

Übertragungsoptionen, wo der Benutzer die Übertragungsparameter setzen kann. Links<br />

darunter ist das Client-Fenster, wo das aktuelle Arbeitsverzeichnis des Clients angezeigt<br />

werden soll, während das Server-Fenster sich rechts unter dem Konsole-Fenster befindet.<br />

Zwischen dem Client- <strong>und</strong> Server-Fenster sind die wichtigen Dienstfunktionen von DFSP.<br />

In den folgenden Abschnitten werden die Komponenten vorgestellt.<br />

37


6.2.1 Verbindungsfunktionen<br />

Abbildung 6.2: Verbindungsfunktionen.<br />

Trennen<br />

Verbinden<br />

Mit Hilfe der Verbindungsfunktionen kann der Benutzer eine Verbindung zu einem Server<br />

herstellen bzw. von einem Server trennen. Es gibt zwei wichtige Funktionen:<br />

6.2.1.1 Verbinden zu einem Server<br />

Zum Aufbau einer Verbindung zu einem Server werden folgende Schritte durchgeführt:<br />

• Geben Sie die IP-Adresse oder den Name des zu verbindenden Servers ein.<br />

• Die Portnummer muss ebenfalls eingegeben werden.<br />

• Wählen Sie “SSL”, falls Sie SSL am Anfang der Sitzung verwenden möchten.<br />

• Klicken Sie auf Verbinden, um den Verbindungsprozess zu starten.<br />

Die Authentifizierung wird automatisch durchgeführt. Auf dem Konsole-Fenster wird<br />

angezeigt, ob die Verbindung erfolgreich hergestellt wird.<br />

6.2.1.2 Trennen von einem Server<br />

Um eine bestehende Verbindung von einem Server zu trennen, klicken Sie auf Trennen<br />

(siehe Abb. 6.2). Die Verbindung wird getrennt.<br />

6.2.2 Übertragungsoptionen<br />

Hier kann der Benutzer die <strong>für</strong> die Übertragung benötigten Parameter konfiguriert werden.<br />

Man unterscheidet drei Arten von Optionen: die FSP- bzw. DFSP-Optionen <strong>und</strong><br />

die Optionen <strong>für</strong> Visualisierung von Meridian-Knoten.<br />

38


6.2.2.1 FSP-Optionen<br />

Um die FSP-Optionen zu konfigurieren, klicken Sie auf FSP Options. In Abbildung 6.3<br />

werden alle Optionen <strong>für</strong> FSP dargestellt.<br />

Folgende Optionen stehen zur Verfügung:<br />

Abbildung 6.3: FSP-Optionen.<br />

Bestätigen<br />

Zurücksetzen<br />

TCP Optimierungen Diese Optionen ermöglichen den Benutzer, die Parameter <strong>für</strong><br />

TCP zu ändern, um einen besseren Durchsatz zu erzielen. Es gibt zwei Parameter,<br />

die geändert werden können:<br />

• Anzahl von parallelen TCP-Verbindungen: die Anzahl n von parallelen Verbindungen<br />

kann konfiguriert werden. Die Anzahl ist immer 2 n , wobei n eine<br />

natürliche Zahl ist (n ∈ N).<br />

• Puffergröße: dieser Parameter spezifiziert die Puffergröße <strong>für</strong> TCP Verbindungen.<br />

Man kann drei Arten von Größen wählen: die standardmäßige Größe<br />

von Betriebsystem (DEFAULT ), DRS (DRS) <strong>und</strong> eine feste Größe (FIXED).<br />

Bei fester Größe muss die Größe des Puffers zusätzlich angegeben werden.<br />

39


Verteilung Mit Hilfe dieser Optionen kann man festlegen, ob die Distributions- <strong>und</strong><br />

Aggregationsphase überlappend sind (Prestart). Ist es der Fall, muss die Anzahl<br />

von Blöcken, die von Server verteilt werden müssen, bevor der Client den Einsammlungsprozess<br />

startet, angegeben werden. Außerdem kann festgelegt werden,<br />

ob der Client an der Distributionsphase beteiligen darf (Direct). Schließlich kann<br />

der Benutzer die Verteilungsstrategie wählen. Es sind drei Strategien auszuwählen:<br />

FCFS- (AUTO), zyklische (CYCLIC ) <strong>und</strong> partitionierte Strategie (BLOCK ).<br />

Zwischenstationen Durch Verwendung dieser Optionen können die Bedingungen <strong>für</strong><br />

dynamische Auswahl von Zwischenstationen konfiguriert werden. Es gibt zwei Methoden:<br />

ABSOLUTE (Distanzen zum Server <strong>und</strong> Client in ms) <strong>und</strong> RELATIVE<br />

(eine dezimale Zahl).<br />

Datenoptionen Hier kann man den Algorithmus <strong>für</strong> Verschlüsselung, Kompression <strong>und</strong><br />

Integrität setzen. Standardmäßig werden alle deaktiviert (NONE).<br />

Nachdem alle Optionen konfiguriert wurden, klicken Sie auf Bestätigen, um die Änderungen<br />

vorzunehmen. Möchten Sie die Optionen auf ihre Standardwerte zurücksetzen,<br />

klicken Sie auf Zurücksetzen.<br />

6.2.2.2 DFSP-Optionen<br />

Drücken Sie auf DFSP Options, um die DFSP-Optionen zu konfigurieren. Die Abbildung<br />

6.4 stellt alle Optionen von DFSP dar.<br />

Abbildung 6.4: DFSP-Optionen.<br />

Hier können Sie folgende Parameter ändern:<br />

Zurücksetzen<br />

Bestätigen<br />

Dynamischer Austausch von Zwischenstationen Es ist zur Zeit nur eine Strategie<br />

implementiert, die SENDTIME-Strategie. Wird NONE gesetzt, wird der dynamische<br />

Austausch von Zwischenstationen deaktiviert. Außerdem können Sie den<br />

Wert <strong>für</strong> TC-Faktor ändern.<br />

40


Dynamische Anpassung der Anzahl von Zwischenstationen Folgende Strategien stehen<br />

Ihnen zur Verfügung: die MI - <strong>und</strong> MIAD-Strategie. Bei jeder Strategie können<br />

die entsprechenden Faktoren geändert werden.<br />

K-Safety-Modus Hier können Sie den Wert k <strong>für</strong> K-Safety angeben. Um den K-Safety-<br />

Modus zu aktiviert, markieren Sie zuerst die Checkbox K-Safety. Danach geben<br />

Sie den Wert k ein.<br />

Zum Vornehmen von Änderungen klicken Sie auf Bestätigen. Die standardmäßigen Werte<br />

aller Optionen können durchs Drücken auf Zurücksetzen zurückgesetzt werden.<br />

6.2.2.3 Visualisierung von Meridian-Knoten<br />

Meridian-Knoten, die zu Ringen des Servers gehören, können visualisiert werden. Außerdem<br />

bietet das Werkzeug dem Benutzer die Möglichkeit, die Zwischenstationen, die in<br />

der Distributionsphase verwendet werden sollen, manuell auszuwählen. Durchs Klicken<br />

auf Meridian können Sie zum Visualisierungsfenster kommen (siehe Abb. 6.5).<br />

Das Visualisierungswerkzeug bietet drei Optionen an:<br />

Visualisierung von Meridian-Knoten Um die Knoten zu visualisieren, klicken Sie auf<br />

Update. Knoten, zu den Ringen des Servers gehören, werden als gelb gefärbte<br />

Kreischen dargestellt. Wird ein Knoten mit der Maus darauf gezeigt, werden die<br />

Informationen wie z.B. den Hostnamen, die IP-Adresse <strong>und</strong> die Distanz zum Server<br />

angezeigt.<br />

Auflistung von Zwischenstationen Wurden die Bedingungen <strong>für</strong> dynamische Auswahl<br />

von Zwischenstationen bereits gesetzt, können die Stationen, deren Distanzen zum<br />

Server <strong>und</strong> Client die Bedingungen erfüllen, hier anzeigen lassen. Zur Auflistung<br />

aller Stationen klicken Sie auf Get Nodes. Eine Liste mit Hostnamen <strong>und</strong> deren<br />

Distanzen zum Server <strong>und</strong> Client wird angezeigt.<br />

Auswahl von Zwischenstationen Sie können bestimmte Stationen, welche <strong>für</strong> die Blockverteilung<br />

verwendet werden sollen, manuell auswählen, indem Sie auf die Einträge<br />

in der Liste klicken. Nach dem Drücken auf Set Nodes werden die ausgewählten<br />

Stationen als Zwischenstationen in der Distributionsphase verwendet.<br />

41


6.2.3 Dienstfunktionen<br />

Abbildung 6.5: Visualisierung von Meridian-Knoten.<br />

Es wurden 6 wichtige Funktionen von DFSP implementiert, die entweder durchs Drücken<br />

auf dem entsprechenden Button (siehe Abb. 6.6) oder Auswahl vom Menü Operations<br />

gestartet werden können. Nachfolgend werden sie beschrieben.<br />

6.2.3.1 Herunterladen mit direkter Übertragung<br />

Um eine Datei von Server herunterzuladen, muss die Datei zuerst im Server-Fenster<br />

markiert werden. Durchs Drücken auf Get wird die direkte Übertragung zwischen Server<br />

<strong>und</strong> Client gestartet.<br />

42


GET<br />

SGET<br />

PUT<br />

New Folder<br />

Rename<br />

Delete<br />

Abbildung 6.6: Dienstfunktionen.<br />

6.2.3.2 Herunterladen mit zweistufiger Übertragung<br />

Sollte eine Datei durch zweistufige Übertragung von Server heruntergeladen werden,<br />

müssen die entsprechenden Zwischenstationen <strong>für</strong> die Distributionsphase ausgewählt<br />

werden. Außerdem können die Parameter wie z.B. der Algorithmus <strong>für</strong> Verschlüsselung,<br />

Kompression, . . . gesetzt werden. Nach Markierung der herunterzuladenen Datei<br />

im Server-Fenster drücken Sie auf SGet, um die Übertragung zu starten.<br />

6.2.3.3 Hochladen<br />

Zum Hochladen einer Datei vom lokalen Rechner zum Server muss die Datei zunächst im<br />

Client-Fenster gewählt werden. Nach dem Drücken auf Put wird der Prozess begonnen.<br />

6.2.3.4 Erzeugung eines neuen Verzeichnisses<br />

Zur Erzeugung eines neuen Verzeichnisses auf Server muss der New Folder-Button gedrückt<br />

werden. Geben Sie den Name <strong>für</strong> das neue Verzeichnis ein <strong>und</strong> drücken Sie danach<br />

auf OK. Das neue Verzeichnis mit dem gegebenen Namen wird erzeugt.<br />

6.2.3.5 Umbenennen<br />

Um eine Datei, die auf Server gespeichert ist, umzubenennen, muss zunächst die Datei<br />

gewählt werden. Klicken Sie auf Rename <strong>und</strong> geben Sie den neuen Namen ein.<br />

43


6.2.3.6 Löschen<br />

Diese Funktion ermöglicht den Benutzer, eine Datei auf Server zu löschen. Wählen Sie<br />

zuerst die zu löschende Datei im Server-Fenster <strong>und</strong> drücken Sie danach auf Delete.<br />

44


Literaturverzeichnis<br />

[1] Christoph Koch. <strong>Fast</strong> <strong>Send</strong> <strong>Protocol</strong> - Minimizing <strong>Send</strong>ing Time in High-Speed Bulk<br />

Data Transfer. Master’s thesis, Universität Passau, 2007.<br />

[2] The Thong Vang. <strong>Dynamic</strong> <strong>Fast</strong> <strong>Send</strong> <strong>Protocol</strong>-Eine dynamische Erweiterung des<br />

<strong>Fast</strong> <strong>Send</strong> Protokolls. Master’s thesis, Universität Passau, 2009.<br />

45

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!