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 ...
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