28.06.2013 Aufrufe

Facharbeit Physik - Arnold-Gymnasium Neustadt bei Coburg: Home

Facharbeit Physik - Arnold-Gymnasium Neustadt bei Coburg: Home

Facharbeit Physik - Arnold-Gymnasium Neustadt bei Coburg: Home

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Arnold</strong>–<strong>Gymnasium</strong> Abiturjahrgang 2010<br />

<strong>Neustadt</strong> <strong>bei</strong> <strong>Coburg</strong><br />

<strong>Fachar<strong>bei</strong>t</strong><br />

aus dem Fach<br />

<strong>Physik</strong><br />

Thema: Lateration via Wireless Local Area Network<br />

Verfasser: Alexander Bleitner<br />

Kursleiter: Arno Hoffmann<br />

Themenstellung: 2. März 2009 Abgabetermin: 29. Januar 2010<br />

Bewertung: Notenpunkte für die schriftliche Ar<strong>bei</strong>t:<br />

Notenpunkte für die mündliche Prüfung:<br />

Gesamtleistung [(3 * s + m)]:<br />

Gesamtleistung (einfache Wertung):<br />

[(3 * s + m) : 4 gerundet]<br />

Gesamtleistung (doppelte Wertung):<br />

[(3 * s + m) : 2 gerundet]<br />

Notenpunkte eingetragen am Unterschrift des Kursleiters<br />

Datum Unterschrift des Kollegstufenbetreuers


Inhaltsverzeichnis<br />

I Einleitung 4<br />

II Theorie 5<br />

1 Verfahren zur Positionsbestimmung 5<br />

1.1 (Tri–)Angulation . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

1.2 (Tri–/Multi–)Lateration . . . . . . . . . . . . . . . . . . . . . . 6<br />

1.2.1 Trilateration . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

1.2.2 Multilateration . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2 Verfahren zur Entfernungsbestimmung 7<br />

2.1 Direktes Messen . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.2 Indirektes Messen . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

2.2.1 Laufzeitmessung . . . . . . . . . . . . . . . . . . . . . . 8<br />

2.2.2 Messung der Signalstärke . . . . . . . . . . . . . . . . . . 9<br />

2.3 Relevanz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

2.4 Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

III Praxis 12<br />

3 Implementierung 12<br />

3.1 Plattform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />

3.2 Messung von Zeitintervallen im ns–Bereich . . . . . . . . . . . . 12<br />

3.3 Berechnung der Entfernung x . . . . . . . . . . . . . . . . . . . 12<br />

3.4 Genauigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

3.5 Softwaretechnische Implementierung . . . . . . . . . . . . . . . 14<br />

4 Messungen 15<br />

4.1 Versuchsaufbau und Durchführung . . . . . . . . . . . . . . . . 15<br />

4.2 Auswertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

4.2.1 Analyse und graphische Darstellung . . . . . . . . . . . . 15<br />

4.2.2 Deutung . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

IV Schluss 19<br />

2


V Anhang 20<br />

5 Herleitungen 20<br />

5.1 zu 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

5.2 zu 2.2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

5.3 zu 2.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

5.4 zu 3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

5.5 zu 3.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

6 Source–Code 22<br />

6.1 Kernel–Anpassung . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

6.2 Kernel–Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

6.3 Messung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

6.4 Datentransfer und Durchführung der Messung . . . . . . . . . . 25<br />

6.5 Auswertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />

VI Literaturverzeichnis 28<br />

3


Teil I<br />

Einleitung<br />

Stellen Sie sich vor, sie befinden sich in einem fremden Bürogebäude. Sie su-<br />

chen ein Zimmer, in dem Sie noch nie waren. Wie wäre es jetzt, eine Art<br />

Navigationssystem innerhalb des Hauses zu besitzen?<br />

Ich habe mir als <strong>Fachar<strong>bei</strong>t</strong>sthema vorgenommen, die Laufzeit von WLAN–<br />

Signalen zu messen, um damit die Position von z.B. einem Laptop bestimmen<br />

zu können. Damit wäre dann ein solches Positionierungssystem realisierbar,<br />

denn aus der Entfernung von genügenden Referenzpunkten ließe sich dann<br />

die Position bestimmen. Es fehlte nur noch ein Name für das Projekt: ” tri-<br />

via“, TRIangulation VIA Wireless Local Area Network (WLAN), wie ich die<br />

<strong>Fachar<strong>bei</strong>t</strong> zuerst betiteln wollte. Die Bezeichnung ist zwar, wie sich später<br />

herausstellen sollte, nicht ganz korrekt, fasst aber das Thema in weitestem<br />

Sinne auf.<br />

Zum Aufbau der Ar<strong>bei</strong>t ist noch zu sagen, dass alle Formeln, die nicht von<br />

anderen Quellen übernommen wurden, im Anhang zu finden sind.<br />

4


Teil II<br />

Theorie<br />

1 Verfahren zur Positionsbestimmung<br />

1.1 (Tri–)Angulation<br />

Das Prinzip der Triangulation beruht auf dem Messen zweier Winkel α und<br />

β zwischen der Verbindungsstrecke von zwei Fixpunkten F1 und F2 und den<br />

jeweils zugehörigen Strecken zu Punkt P, dessen Position bestimmt werden<br />

soll, sowie der Entfernung F1F2 der <strong>bei</strong>den Fixpunkte. Das gesamte Messsy-<br />

stem lässt sich durch das Dreieck ∆F1F2P (lat. triangulare: dreieckig machen<br />

[1]) beschreiben (Abb. 1):<br />

Abb. 1:<br />

Triangulation<br />

F2<br />

F1<br />

β<br />

α<br />

Nun lassen sich mit Hilfe des aus der Dreiecksinnenwinkelsumme erhaltenen<br />

Winkels<br />

γ<br />

P<br />

γ = 180 ◦ − α − β (1)<br />

und des Sinussatzes die übrigen Strecken F1P und F2P nach der Formel<br />

bzw.<br />

berechnen.<br />

F2P = F1F2 ∗ sin(α)<br />

sin(γ)<br />

F1P = F1F2 ∗ sin(β)<br />

sin(γ)<br />

5<br />

(2)<br />

(3)


Übertragen auf das Orten im WLAN werden demnach zwei Access–Points<br />

benötigt, um ein Laptop zu lokalisieren. Da es nun aber eine elementare Ei-<br />

genschaft von elektromagnetischen Wellen, aus denen WLAN–Signale beste-<br />

hen, ist, dass sie sich orthogonal zum Senderdipol (Antenne) ausbreiten (Abb.<br />

2), die Abstrahlung also in alle Richtungen senkrecht zur Antenne erfolgt, ist<br />

die Triangulation auf Basis dieses Systems nicht möglich, da die dazu nötigen<br />

Winkel α und β nicht bestimmbar sind.<br />

Abb. 2:<br />

Ausbreitung<br />

elektroma-<br />

gnetischer<br />

Wellen<br />

Um eine solche Messung trotzdem durchführen zu können, muss der Abstrahl-<br />

winkel, der <strong>bei</strong> normalen Antennen eben 360 ◦ beträgt, eingeschränkt werden.<br />

Dadurch wird die Antenne zu einer Richtfunkantenne. Diese hat ihr Sende–<br />

/Empfangsmaximum, wenn sie direkt auf ihr Gegenüber zeigt und dadurch in<br />

einem bestimmten Winkel zum zweiten Fixpunkt steht.<br />

Dieses Verfahren hat zwei große Nachteile. Zum einen muss die Antenne auf ih-<br />

ren Kommunikationspartner ausgerichtet sein. Dazu ist eine mechanische Vor-<br />

richtung nötig, was wiederum Verschleiß und einen hohen technischen Aufwand<br />

bedeutet. Zum anderen hat die Antenne eben nur einen bestimmten Abstrah-<br />

lungsbereich, weshalb andere WLAN–Geräte, die sich nicht in diesem befin-<br />

den, nicht mit diesem Access–Point kommunizieren können. Eine verläßliche<br />

WLAN–Infrastruktur ist also mit dieser Technik nicht vereinbar.<br />

1.2 (Tri–/Multi–)Lateration<br />

Die Tri– bzw. Multi–Lateration stellt ein Lokalisationsverfahren dar, das im<br />

Gegensatz zur Triangulation nicht auf dem Messen von Winkeln, sondern auf<br />

dem Ermitteln von Entfernungen zu den jeweiligen Fixpunkten aufbaut.<br />

6


1.2.1 Trilateration<br />

Um den Ort eines Punktes P in einer Ebene zu bestimmen, sind mit dieser<br />

Methode drei Fixpunkte Fi nötig. Dazu zieht man Kreise mit den entsprechen-<br />

den Radien PFi um die Fixpunkte, um deren Schnittpunkt zu ermitteln, der<br />

dann dem gesuchten Punkt P entspricht (vgl. Abb. 3).<br />

Abb. 3:<br />

Trilateration<br />

F2<br />

1.2.2 Multilateration<br />

F1<br />

P<br />

Ist eine Lokalisierung im dreidimensionalen Raum gewünscht, so benötigt man<br />

vier Fixpunkte und anstelle des Schnittpunktes dreier Kreise ist der der ent-<br />

sprechenden Kugeln zu bestimmen. Ansonsten sind die Verfahren identisch.<br />

Des Weiteren kann man, um Ungenauigkeiten <strong>bei</strong> der Entfernungsmessung<br />

auszugleichen, zusätzliche Bezugspunkte verwenden und dann die erhaltenen<br />

Schnittpunkte mitteln.<br />

2 Verfahren zur Entfernungsbestimmung<br />

2.1 Direktes Messen<br />

Das direkte Messen einer Entfernung, z.B. den Abstand zwischen zwei Punkten<br />

auf einem Blatt Papier mit einem Lineal oder ähnlichen, ist in diesem Fall<br />

sicher die geläufigste und einfachste Methode, Entfernungen zu messen. Sie ist<br />

jedoch nicht auf jede Situation anwendbar. Ist z.B. die Entfernung zwischen<br />

zwei Schiffen, Kontinenten oder gar Planeten gefragt, stößt dieses Verfahren<br />

schnell an seine Grenzen. Hier sind indirekte Messmethoden effizienter.<br />

7<br />

F3


2.2 Indirektes Messen<br />

Im Gegensatz zur direkten Messung wird <strong>bei</strong> der indirekten Messung erst eine<br />

andere Größe als die Gesuchte gemessen, die jedoch im Zusammenhang mit der<br />

gesuchten Größe steht und deshalb Rückschlüsse auf diese ermöglicht. Diese<br />

Art der Messung wird vorwiegend dort eingesetzt, wo das direkte Messen zu un-<br />

genau oder wie bereits oben beschrieben unpraktisch bzw. nicht durchführbar<br />

ist. Da<strong>bei</strong> ist wichtig, dass die <strong>bei</strong>den Messgrößen in einem möglichst simplen<br />

Verhältnis zueinander stehen, um Fehler <strong>bei</strong> der Umrechnung gering zu halten.<br />

Geradezu prädestiniert für diese Methode sind Größen, die direkt oder indi-<br />

rekt proportional zueinander sind. Zur Lokalisierung sind folgende 7 indirekte<br />

Messverfahren bekannt [3]:<br />

• COO: engl. Cell of Origin: Abstammungszelle (Gebiet, in dem das Signal<br />

empfangen wird)<br />

• AOA: engl. Angel of Arival: Eingangswinkel (Triangulation)<br />

• RSS: engl. Received Signal Strength: Eingangssignalstärke<br />

• SNR: engl. Signal to Noise Ratio: Signal–Rausch–Verhältnis (ähnlich<br />

RSS)<br />

• TOA: engl. Time of Arival: Ankunftszeit (Laufzeit)<br />

• RTOF: engl. Round Trip Time of Flight: Signalumlaufzeit (siehe 2.4)<br />

• TDOA: engl. Time Difference of Arival: Unterschied zwischen Ankufts-<br />

zeiten (siehe 2.2.1)<br />

Im Detail werden die Laufzeit– und die Signalstärkemessung vorgestellt.<br />

2.2.1 Laufzeitmessung<br />

Die Laufzeitmessung bezeichnet ein Verfahren zur Entfernungsmessung, <strong>bei</strong><br />

dem die Zeit t, die ein Signal zum Zurücklegen der Strecke vom Sender zum<br />

Empfänger benötigt, gemessen und aus diesem Wert mit Hilfe der Ausbrei-<br />

tungsgeschwindigkeit v des Signals die Entfernung zwischen <strong>bei</strong>den berechnet<br />

wird. Ist diese Geschwindigkeit, wie z.B. <strong>bei</strong> elektromagnetischen Wellen kon-<br />

stant, so besteht die Beziehung<br />

⇒ s = v ∗ t (4)<br />

mit der die gesuchte Entfernung s berechnet werden kann.<br />

8


2.2.2 Messung der Signalstärke<br />

Elektromagnetische Wellen werden <strong>bei</strong> ihrer Ausbreitung im Raum sowohl<br />

durch Freiraumdämpfung[4] als auch durch Absorption[5] des Mediums ab-<br />

geschwächt. Ein entsprechendes WLAN–Signal verliert demnach je nach Ent-<br />

fernung zwischen Sender und Empfänger einen entsprechenden Energiebetrag.<br />

Im Falle von WLAN spricht man, wenn es um die Signalstärke geht, meist<br />

vom RSSI (Maß für die RSS), dessen Berechnung aus der Eingangsenergie<br />

der WLAN–Antenne, die wiederum von oben genannter Freiraumdämpfung<br />

und Absorption abhängt, in [6] beschrieben wird. Auf die Darstellung und Er-<br />

klärung der diese Phänomene beschreibenden Formeln wird hier verzichtet, da<br />

sie nur von geringer Bedeutung für diese <strong>Fachar<strong>bei</strong>t</strong> sind. Das Ergebnis der<br />

Messung hängt da<strong>bei</strong> stark von äußeren Einflüssen, wie z.B. baulichen Gege-<br />

benheiten, die Veränderungen des Absorptionskoeffizienten zufolge haben, ab,<br />

weshalb <strong>bei</strong> derartigen Verfahren häufig spezielle Karten (sog. Fingerprint–<br />

Maps, Abb. 4 (jede der drei Grundfarben steht für einen Access–Point)) von<br />

der Umgebung erstellt werden, in denen der RSSI graphisch dargestellt ist,<br />

um entsprechende Stellen konkreten Empfangsstärken zuzuordnen. Damit wird<br />

rückwirkend jedem vorkommenden RSSI–Wert ein konkretes Gebiet im Emp-<br />

fangsbereich des Access–Point zugeordnet.<br />

Abb. 4:<br />

Fingerprint–<br />

Map[7]<br />

2.3 Relevanz<br />

Jedes der vorgestellten Verfahren hat seine Vor– und Nachteile. Das direkte<br />

Messen der Entfernung zwischen Objekten ist zwar relativ genau, jedoch sind<br />

mechanische Hindernisse wie z.B. Mauern, die in Gebäuden durchaus vorkom-<br />

men könnten, nur mit sehr hohem Aufwand überwindbar. Deswegen scheidet<br />

sie von vorne herein aus.<br />

9


Lokalisierungsverfahren via Signalstärkemessung wurden bereits mehrfach im-<br />

plementiert (z.B. ” RADAR“ von Microsoft TM [8] und [9]). Das Erstellen und<br />

Betreuen der oben beschriebenen Fingerprint–Maps ist sehr zeitaufwendig.<br />

Will man eine hohe Genauigkeit erreichen, muss die Karte ständig an bau-<br />

liche Veränderungen und andere Einflüße angepasst werden.<br />

Im Gegensatz dazu ist die Laufzeitmessung von äußeren Einflüssen, wenn man<br />

über wenige, in der Praxis sehr gering schwankende Faktoren, wie z.B. der<br />

Abhängigkeit der Lichtgeschwindigkeit von der Dichte des Medium, hinweg-<br />

sieht, weitgehend unabhängig. Die Schwierigkeit da<strong>bei</strong> stellen hingegen die<br />

extrem hohe Ausbreitungsgeschwindigkeit elektromagnetischer Wellen und die<br />

damit verbundenen sehr kurzen Zeitintervalle dar.<br />

2.4 Laufzeit<br />

Bereits aus der Tatsache, dass man die Lichtgeschwindigkeit nicht überholen<br />

kann, dass also keine größeren Geschwindigkeiten als die des Lichts existie-<br />

ren, ergibt sich die Unmöglichkeit der direkten Messbarkeit der Laufzeit von<br />

elektromagnetischen Wellen. Man kann eben nicht am Ort S (Sender) auf eine<br />

Stoppuhr drücken, ein elektromagnetisches Signal aussenden, vor diesem an<br />

Ort E (Empfänger) ankommen und <strong>bei</strong> dessen Ankunft die Laufzeit stoppen.<br />

Wohl kann man aber in S bleiben, das Signal in E reflektieren lassen und <strong>bei</strong>m<br />

Zurückkehren desselbigen in S die Messung beenden. Da<strong>bei</strong> sind die ermittelte<br />

Zeit (RTOF), sowie die vom Signal zurückgelegte Strecke doppelt so groß wie<br />

die Gesuchten, aber die Messung möglich.<br />

Im Fall von WLAN–Signalen handelt es sich da<strong>bei</strong> um Datenpakete, die hin–<br />

und hergeschickt werden. Die entsprechende Spezifikation [10] schreibt fest,<br />

dass eingehende Datenpakete, soweit sie korrekt empfangen wurden, mit einem<br />

Acknowledgement–Paket (engl. Acknowledgement: Bestätigung) beantwortet<br />

werden müssen. Durch diese Prozedur ist es nicht erforderlich, explizit eine<br />

Antwort anzufordern, was die Implementierung vereinfacht. Da<strong>bei</strong> ist zu be-<br />

achten, dass die Eingangsprüfung und Antwortgenerierung in E weitere Zeit tG<br />

in Anspruch nehmen. Außerdem hat jedes Paket eine gewisse Länge. Es dauert<br />

also eine entsprechende Zeit tV , bis der jeweilige Sende– bzw. Empfangsprozess<br />

abgeschlossen ist. Soweit zur Laufzeitmessung nur Pakete der gleichen Länge<br />

verwendet werden, ist tV konstant. Die oben beschriebene Antwort übernimmt<br />

die Firmware der WLAN–Karte. Somit ist die dafür benötigte Zeit tG weitge-<br />

hend unabhängig vom verwendeten (Betriebs–)System und dessen Auslastung.<br />

Daher werde auch tG als konstant angesehen. Beginnt man die Zeitmessung<br />

10


direkt vor dem Senden des Pakets in S und beendet sie gleich nach dem Ab-<br />

schluss der Empfangstätigkeit, ergibt sich folgende Formel für die gesuchte<br />

Signallaufzeit (vgl. Abb. 5)<br />

tSignal + 2 ∗ tV + tG = t ′ S = tS<br />

(5)<br />

⇒ tSignal = tS − (2 ∗ tV + tG) (6)<br />

Dies entspricht in Abbildung 5 einem Verschieben von t ′ V um tV +tG auf t ′′ V . Da<br />

die Steigung der gestrichelten Linie der Geschwindigkeit des Signals entspricht<br />

und diese für den Bereich tSignal nun konstant ist, lässt sich nach<br />

⇒ x = vSignal<br />

2 ∗ tSignal<br />

aus der Signallaufzeit die Entfernung zwischen E und S berechnen. Da tV und<br />

tG konstant sind, steht tS also in unmittelbarem Zusammenhang mit x. Die<br />

Konstatante 2 ∗ tV + tG ist noch empirisch zu bestimmen. D.h. in WLAN–<br />

Netzen kann die Entfernung zwischen zwei Geräten allein durch Zeitmessung<br />

an einem der <strong>bei</strong>den mit Hilfe obiger Formel bestimmt werden.<br />

Abb. 5:<br />

Signal-<br />

Strecke<br />

übertragung<br />

S<br />

S ′<br />

E<br />

s<br />

tV<br />

tSignal<br />

tV<br />

11<br />

t ′′ t<br />

V<br />

′ S<br />

tG<br />

tS<br />

tV<br />

t ′ G<br />

t ′ V<br />

tV<br />

x ′<br />

x<br />

(7)<br />

Zeit


Teil III<br />

Praxis<br />

3 Implementierung<br />

3.1 Plattform<br />

Als Plattform für das Projekt habe ich mich für die OpenSource Firmware DD–<br />

WRT entschieden. Sie ist quelloffen und damit wesentlich einfacher anpass–<br />

und erweiterbar als proprietäre Systeme. Die Hardware–Basis bildet der Buf-<br />

falo WHR–G300N Router/Access–Point. Dieser besitzt das RaLink RT3052<br />

SoC[11] (engl. System on a Chip: Ein–Chip–System [12]) mit MIPS–CPU und<br />

RaLink RT2860 Netzwerkkarte.<br />

3.2 Messung von Zeitintervallen im ns–Bereich<br />

Gewöhnliche Zeitmessungen am PC bedürfen keiner Genauigkeit, die 1µs un-<br />

terschreitet. Um doch genauere Ergebnisse erzielen zu können, bieten viele<br />

CPU–Architekturen einen Time Stamp Counter, der <strong>bei</strong> jedem CPU–Zyklus<br />

inkrementiert (um eins erhöht) wird. Dieser besteht im Falle der 384Mhz<br />

MIPS24KEc CPU[11] des RT3052 SoC aus dem Register 9 des Co–Prozes-<br />

sors[13], das mit dem Assembler–Befehl<br />

mfc0 $t, 9;<br />

ausgelesen werden kann. Man ließt nun dieses Register am Anfang und am<br />

Ende der Messung aus und zählt die vergangenen CPU–Takte. Die Abweichung<br />

beträgt dann maximal 1 Takt pro Auslesevorgang, d.h. insgesamt 2 Takte.<br />

Beim MIPS24KEc entsprechen diese ca. 5, 208ns. Die Zeitmessung ist also<br />

sehr genau.<br />

3.3 Berechnung der Entfernung x<br />

Definition<br />

8 m<br />

Ausbreitungsgeschwindigkeit[15]: vSignal = c = 2, 99792458 ∗ 10 s<br />

CPU–Frequenz[11]: fCPU = 3.84 ∗ 108hz Entfernung: x<br />

Anzahl der vergangenen CPU–Takte: k (∼ tS)<br />

12


Formel<br />

x =<br />

c ∗ k<br />

2 ∗ fCPU<br />

= 0, 39035476m ∗ k (8)<br />

c und fCPU sind konstant. Lediglich k schwankt um die Messungenauigkeit ∆k.<br />

Damit beträgt der Fehler:<br />

3.4 Genauigkeit<br />

c ∗ ∆k<br />

⇒ ∆x = = 0, 39035476m ∗ ∆k (9)<br />

2 ∗ fCPU<br />

Das Messen von Zeitintervallen im ns–Bereich ist, wie bereits in 3.2 beschrie-<br />

ben, mit PC–Hardware nur mit hohem Aufwand möglich. Außerdem kommt es<br />

<strong>bei</strong> der Kommunikation zwischen CPU und Netzwerkkarte wegen der im Ver-<br />

gleich zum CPU–Takt geringen Geschwindigkeit zu Verzögerungen und Un-<br />

genauigkeiten. Deshalb gab es nach meinem Kenntnisstand bisher nur einen<br />

Versuch, die Laufzeitmessung von WLAN–Paketen auf dieser Plattform durch-<br />

zuführen [14]. Es existieren jedoch mathematische Algorithmen, die dieses Pro-<br />

blem minimieren.<br />

Jede Messung hat einen gewissen Fehler. Führt man eine Messung mehrmals<br />

jeweils unabhängig voneinander (z.B. unter immer gleichen Ausgangsbedin-<br />

gungen) durch, so erhält man Ergebnisse, die um einen Mittelwert schwanken.<br />

Nimmt man nun an, E(M) sei der Erwartungswert der Zufallsgröße<br />

M := ” Messung“<br />

mit den Einzelmessungen mi und den relativen Häufigkeiten der Einzelmes-<br />

sungen HR(mi) (= 1 , da alle Einzelmessungen die gleiche Wahrscheinlichkeit<br />

n<br />

haben), so gilt:<br />

E(M) = m (10)<br />

Damit entspricht der Erwartungswert dem arithmetischen Mittel m der Ein-<br />

zelmessungen. Die Zufallsgröße M hat die Standardabweichung σ, die nach der<br />

Formel ([16] Seite 109)<br />

σ = σ √ n<br />

(11)<br />

mit wachsendem n abnimmt. Das bedeutet, dass E(M) und damit auch m<br />

<strong>bei</strong> steigender Anzahl von Messungen immer genauer wird. Damit kann das<br />

Messergebnis, sofern keine systematischen Fehler bestehen, unabhängig vom<br />

Messverfahren durch n–fache Wiederholung weit präzisiert werden.<br />

13


Angewandt auf (9) wird dadurch aus dem Fehler ∆x der Entfernung:<br />

∆x =<br />

c ∗ ∆k<br />

2 ∗ fCPU ∗ √ n<br />

= 0, 39035476m ∗ ∆k<br />

√ n<br />

(12)<br />

Um zu erreichen, dass die maximale Abweichung ∆x ≤ 1m ist, der berechne-<br />

te Wert also um weniger als 1m vom tatsächlichen Wert abweicht, muss ∆k<br />

weniger als<br />

√ n<br />

0,39035476 betragen.<br />

3.5 Softwaretechnische Implementierung<br />

Das Betriebssystem eines Computers dient anderen Programmen hauptsächlich<br />

zum Zugriff auf die Hardware des PCs. Dazu stellt es den Programmen Funk-<br />

tionen bereit, die sie ausführen können, um mit der Hardware zu kommu-<br />

nizieren. Dieser abstrahierte Zugriff bedeutet jedoch, dass Zeitverzögerungen<br />

eintreten. Da diese <strong>bei</strong> Laufzeiten im ns–Bereich einen erheblichen Fehler ver-<br />

ursachen würden, muss die Zeitmessung direkt im Betriebssystem verankert<br />

werden. Das in 3.2 beschriebene Auslesen des Time Stamp Counters ist auf-<br />

grund sicherheitstechnischer Aspekte auch nur dem Betriebssystem möglich.<br />

Die Implementierung muss also im Betriebssystem selbst erfolgen.<br />

Das hat weitreichende Folgen für den Aufbau des Programmcodes, deren Er-<br />

klärung den Rahmen einer <strong>Fachar<strong>bei</strong>t</strong> sprengen würde, da solche Anpassungen<br />

des Betriebssystems einen tiefen Eingriff in die Struktur desselbigen bedeuten.<br />

Wichtig für den physikalischen Hintergrund der Messung ist, dass die An-<br />

zahl der vergangenen CPU–Takte <strong>bei</strong> der Ausführung der Sendefunktion des<br />

Betriebssystems, die die Netzwerkkarte direkt anspricht, gemessen wird. Die<br />

eigentliche Übermittlung eines Netzwerk–Pakets und die Überprüfung einge-<br />

hender Pakete übernimmt die Firmware der Netzwerkkarte, weshalb <strong>bei</strong> Netz-<br />

werkkarten, mit Chipsätzen, wie dem RT2860 von RaLink, für die keine quell-<br />

offene Firmware verfügbar ist, keine softwareseitige Möglichkeit besteht, noch<br />

näher am Sendevorgang selbst zu messen.<br />

Abgesehen davon, dass meiner Kenntniss nach keine quelloffene Firmware für<br />

irgendeine WLAN–Karte existiert, würde man durch die Verlagerung der Mes-<br />

sung in die Firmware, Messung auf Netzwerkkarten mit exakt diesem Chipsatz<br />

begrenzen.<br />

14


4 Messungen<br />

4.1 Versuchsaufbau und Durchführung<br />

Der Versuchsaufbau besteht aus einem Access–Point (in diesem Fall dem WHR–<br />

G300N Router/Access–Point von Buffalo) und einem Laptop (IBM Thinkpad<br />

X30) bzw. einem Standard–PC (Eigenbau), die im Abstand x vom Access–<br />

Point aufgestellt werden (vgl. Abb. 6). Da<strong>bei</strong> ist darauf zu achten, potentielle<br />

Fehlerquellen wie z.B. Interferenzen, die durch zwischen den Geräten stehende<br />

Objekte zustande kommen können, auf ein Minimum zu reduzieren, um eine<br />

möglichst hohe Genauigkeit zu erreichen.<br />

Abb. 6:<br />

Versuchs-<br />

aufbau<br />

S<br />

x<br />

Der Abstand x wird in 30cm–Schritten bis auf 15m erhöht. Da<strong>bei</strong> erfolgt jeweils<br />

eine Entfernungsmessung mit 10000 Paketen mit dem Programmaufruf:<br />

./trivia_measure 10000 <br />

Zur Überprüfung ermittelt man die Daten mit jeweils 100000 Paketen <strong>bei</strong><br />

einem gröberen 3m–Raster mit dem entsprechend abgewandelten Befehl.<br />

4.2 Auswertung<br />

4.2.1 Analyse und graphische Darstellung<br />

Zur Analyse der Messung ruft man<br />

./trivia_data <br />

auf und erhält die Datei:<br />

.dat<br />

15<br />

E


In dieser befindet sich nun die Verteilung der relativen Häufigkeiten HR(ki) der<br />

Laufzeiten ki (in CPU–Takten) für die Messung, die sich mit einem Datenplot-<br />

ter, wie gnuplot, graphisch darstellen lässt. Für die folgende Verteilung (Abb.<br />

7) wurden ca. 600000 Einzelmessungen mit einem IBM Thinkpad X30 Laptop<br />

(WLAN–Chipsatz Cisco Aironet Wireless 802.11b) und einem Abstand von<br />

8m zum Access–Point durchgeführt.<br />

Abb. 7:<br />

Cisco<br />

600000<br />

Häufigkeit<br />

3500<br />

3000<br />

2500<br />

2000<br />

1500<br />

1000<br />

500<br />

0<br />

2500 7500 12500 17500 22500 27500 32500<br />

Vergangene CPU–Takte<br />

Im Vergleich dazu eine Verteilung (Abb. 8) mit ca. 1800000 Einzelmessungen<br />

und einem Standard–PC mit dem WLAN–Chipsatz RaLink RT2500 802.11g<br />

<strong>bei</strong> 0, 5m Entfernung.<br />

Abb. 8:<br />

RaLink<br />

1800000<br />

Häufigkeit<br />

3500<br />

3000<br />

2500<br />

2000<br />

1500<br />

1000<br />

500<br />

0<br />

2500 7500 12500 17500 22500 27500 32500<br />

Vergangene CPU–Takte<br />

16


4.2.2 Deutung<br />

Man stellt fest, dass <strong>bei</strong>de Verteilungen ihr Hauptmaximum <strong>bei</strong> ca. 12400 auf-<br />

weisen. Jedoch liegt ihr Nebenmaximum <strong>bei</strong> verschiedenen Werten. Beim PC<br />

mit RaLink–Chipsatz liegt es <strong>bei</strong> ca. 9000. Das der Messung des Laptops mit<br />

Cisco–WLAN–Karte ist <strong>bei</strong> ca. 4000 erkennbar, auch wenn es wegen der gerin-<br />

geren Anzahl an Messungen weniger stark ausgeprägt ist. Der Erwartungswert<br />

der Verteilungen, der ein Maß dafür ist, welchen Wert die durchschnittliche<br />

Laufzeit hat, beträgt im Falle der Messung mit Cisco–Netzwerk–Karte ca.<br />

11948; der der anderen Messung ca. 12054. Man könnte nun annehmen, dass<br />

der größere Erwartungswert der RaLink–Messung trotz geringerer Entfernung<br />

zum Access–Point durch die unterschiedliche Hardware zu erklären ist. Doch<br />

weitere Messungen mit verschiedenen Abständen mit <strong>bei</strong>den Systemen zeig-<br />

ten, dass der Unterschied der Erwartungswerte zwar hardwarebedingt ist, aber<br />

kein Zusammenhang zwischen Erwartungswert und dem tatsächlichen Abstand<br />

nachweisbar ist.<br />

Auch die Annahme, das Hauptmaximum entspräche der Timeout–Zeit, also<br />

der Zeit, nach der die Sendefunktion das Warten auf eine Bestätigung oh-<br />

ne erfolgreiche Antwort (vgl. Acknowledgement–Verfahren <strong>bei</strong> 2.4) abbricht,<br />

erwies sich als falsch, da einerseits die (wenn auch geringen) Messergebnis-<br />

se im Bereich zwischen 17500 und 20000 (Abb. 9) nicht erklärbar wären und<br />

andererseits die Erwartungswerte der Verteilungen im Bereich unterhalb des<br />

Hauptmaximums in weiterhin keinem Verhältnis zur Entfernung stünden.<br />

Abb. 9:<br />

Ausschnitt 800<br />

aus Abb. 8<br />

600<br />

Häufigkeit<br />

1000<br />

400<br />

200<br />

0<br />

11250 12500 13750 15000 16250 17500 18750 20000<br />

Vergangene CPU–Takte<br />

Eine weitere Theorie, die das Zustandekommen von Haupt– und Nebenma-<br />

17


xima in Abbildung 8 bzw. 9 erklärt, besagt, dass das Senden der Netzwerk-<br />

pakete, die erfolgreich <strong>bei</strong>m Empfänger ankommen, das 1. Nebenmaximum<br />

(links vom Hauptmaximum) erzeugten und die anderen Maxima durch das<br />

wiederholte Senden der restlichen Pakete aufgrund des in 2.4 beschriebenen<br />

Prüfverfahrens entstünden. Da sich die Informationen dann bereits im Cache<br />

(Zwischenspeicher) der WLAN–Karte befänden und nicht noch über die PCI–<br />

Bus–Anbindung zur Netzwerkkarte übertragen und dort aufbereitet werden<br />

müssten, dauerte das erneute Versenden der Pakete weniger lang, wodurch die<br />

Maxima dann näher zusammenrückten. Auf Abbildung 7 lässt sich diese These<br />

jedoch nicht anwenden und ist damit falsifiziert. Eine Lösung des Problems ist<br />

mir nicht ersichtlich.<br />

Warum die Messung letztenendes keinen Erfolg zeigt, kann nur vermutet wer-<br />

den. Ich nehme an, dass die Interna der Netzwerkkarte und ihre Verbindung<br />

zum Prozessor eine zu große unbekannte Zeitverzögerung und damit auch zu-<br />

viel Ungenauigkeit in die Messung bringen. Vielleicht ist auch die Art der<br />

Auswertung für das Problem ungeeignet.<br />

18


Teil IV<br />

Schluss<br />

Auch wenn die Laufzeitmessung zu keinem brauchbaren Ergebnis kam, heißt<br />

das nicht, das es prinzipiell unmöglich ist. Da durch [14] gezeigt wurde, dass<br />

das Verfahren, wenn auch anders implementiert, durchaus funktioniert, bin<br />

ich zuversichtlich, in nächster Zeit von weiteren Forschungsergebnissen in die-<br />

sem Bereich zu hören. Durch die Komplexität, die mit der Implementierung<br />

und Auswertung verbunden ist, wäre das Projekt wahrscheinlich an einer Uni-<br />

versität besser aufgehoben, und lässt somit noch Spielraum für kommende<br />

Verbesserungen.<br />

Für mich selbst bleibt neben den vielem Know–How, das ich mir im Rahmen<br />

dieser <strong>Fachar<strong>bei</strong>t</strong> angeeignet habe, die Erkenntnis, dass Software stets gut<br />

dokumentiert werden sollte, um anderen die Mitar<strong>bei</strong>t an diversen Projekten<br />

zu ermöglichen, oder um selbst aus fremdem Code zu lernen.<br />

19


Teil V<br />

Anhang<br />

5 Herleitungen<br />

5.1 zu 1.1<br />

Dreiecksinnenwinkelsumme<br />

Sinussatz<br />

Aus [16] Seite 27<br />

5.2 zu 2.2.1<br />

Berechnung von s<br />

Aus [15] Seite 11<br />

5.3 zu 2.4<br />

Berechnung von x<br />

Vgl. Abbildung 4<br />

Mit 5.2<br />

α + β + γ = 180 ◦<br />

⇒ γ = 180 ◦ − α − β<br />

F2P<br />

sin(α)<br />

= F1P<br />

sin(β)<br />

= F1F2<br />

sin(γ)<br />

⇒ F2P = F1F2 ∗ sin(α)<br />

sin(γ)<br />

⇒ F1P = F1F2 ∗ sin(β)<br />

sin(γ)<br />

vSignal = s<br />

t<br />

v = s<br />

t<br />

⇒ s = v ∗ t<br />

x = x ′<br />

= x + x′<br />

tSignal<br />

20<br />

= 2 ∗ x<br />

tSignal


5.4 zu 3.3<br />

Zusammenhang zwischen x und k<br />

⇒ x = vSignal ∗ tSignal<br />

2<br />

k ist die Anzahl der vergangen CPU–Takte während einer Signallaufzeit.<br />

Aus [15] Seite 18<br />

Mit 5.3<br />

x = s<br />

2 = vSignal ∗ tSignal<br />

2<br />

Einsetzen der Konstanten aus 3.3<br />

Einheitenprobe<br />

5.5 zu 3.4<br />

Beweis E(M) = m<br />

Aus [16] Seite 108<br />

Vgl. 3.4<br />

q.e.d.<br />

x =<br />

⇒ tSignal = k ∗ tCPU–Takt<br />

c ∗ k<br />

2 ∗ fCPU<br />

[x] =<br />

E(M) =<br />

=<br />

n<br />

i=1<br />

f = 1<br />

t<br />

⇒ t = 1<br />

f<br />

= vSignal ∗ k ∗ tCPU–Takt<br />

2<br />

m<br />

s<br />

hz<br />

= 0, 39035476m ∗ k<br />

= m<br />

s ∗ 1<br />

s<br />

= m<br />

n<br />

mi ∗ HR(mi)<br />

i=1<br />

mi ∗ 1<br />

n =<br />

21<br />

n<br />

mi<br />

i=1<br />

n<br />

= m<br />

= vSignal ∗ k<br />

2 ∗ fCPU–Takt


6 Source–Code<br />

6.1 Kernel–Anpassung<br />

Wie in 3.5 beschrieben, müssen Teile des Linux–Kernel angepasst werden, um<br />

die Messung durchführen zu können. Die Version des von mir verwendeten<br />

Kernels ist 2.6.23. Die Anpassungen beschränken sich auf die Datei:<br />

net/core/dev.c<br />

Um zu prüfen, ob eine Messung stattfinden soll, wird die globale Kernel–<br />

Variable trivia capture direkt nach dem Einbinden der Header–Files eingeführt<br />

und exportiert.<br />

i n t t r i v i a c a p t u r e = 0 ;<br />

EXPORT SYMBOL( t r i v i a c a p t u r e ) ;<br />

Nun die Zeitmessung selbst. Dazu definiert man am Anfang der Funktion<br />

dev hard start xmit die lokale Variablen ticks pre, ticks post und return value<br />

mit<br />

l o n g i n t t i c k s p r e ;<br />

l o n g i n t t i c k s p o s t ;<br />

i n t r e t u r n v a l u e ;<br />

und ersetzt<br />

r e t u r n dev−>h a r d s t a r t x m i t ( skb , dev ) ;<br />

durch:<br />

/∗ Time Stamp Counter a u s l e s e n ∗/<br />

a s m v o l a t i l e ( ” mfc0 %0, $9 ; nop ” : ”=r ” ( t i c k s p r e ) ) ;<br />

/∗ S e n d e f u n k t i o n ∗/<br />

r e t u r n v a l u e = dev−>h a r d s t a r t x m i t ( skb , dev ) ;<br />

/∗ e r n e u t Time Stamp Counter a u s l e s e n ∗/<br />

a s m v o l a t i l e ( ” mfc0 %0, $9 ; nop ” : ”=r ” ( t i c k s p o s t ) ) ;<br />

/∗ p r u e f e n , ob Messung e r f o l g t ∗/<br />

i f ( t r i v i a c a p t u r e == 1 ) {<br />

}<br />

/∗ D i f f e r e n z d e r b e i d e n Time Stamp Counter zusammen mit dem ∗/<br />

/∗ Name d e s N e t z w e r k i n t e r f a c e s i n den Kernel −Log s c h r e i b e n ∗/<br />

p r i n t k (KERN INFO ”:% s :% l i : \ n” , dev−>name , t i c k s p o s t − t i c k s p r e ) ;<br />

/∗ Rueckgabewert d e r S e n d e f u n k t i o n u e b e r g e b e n und F u n k t i o n beenden ∗/<br />

r e t u r n r e t u r n v a l u e ;<br />

Damit ist die Modifikation des Kernels, der jetzt neu compiliert werden kann,<br />

abgeschlossen.<br />

6.2 Kernel–Modul<br />

Das Initiieren und Beenden von Messungen wird vom Kernel–Modul trivia<br />

erledigt. Es muss daher geladen sein, um eine Messung durchzuführen.<br />

22


∗ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗\<br />

∗ f i l e : t r i v i a . c ∗<br />

∗ ∗<br />

∗ d e s c r i p t i o n : Kernel −Modul zum I n i t i i e r e n und Beenden d e r Z e i t m e s s u n g ∗<br />

∗ ∗<br />

∗ a u t h o r : A l e x a n d e r B l e i t n e r ∗<br />

∗ ∗<br />

∗ c o p y r i g h t : 2010 by A l e x a n d e r B l e i t n e r ∗<br />

∗ ∗<br />

∗ l i c e n s e : GPL ∗<br />

∗ I t i s f r e e s o f t w a r e . You can r e d i s t r i b u t e i t and / o r modify i t ∗<br />

∗ under t h e terms o f t h e GNU G e n e r a l P u b l i c L i c e n s e a s p u b l i s h e d ∗<br />

∗ by t h e F r e e S o f t w a r e Foundation , e i t h e r v e r s i o n 3 o f t h e ∗<br />

∗ l i c e n s e , o r ( a t your own o p i n i o n ) any l a t e r v e r s i o n . ∗<br />

∗ ∗<br />

∗ T h i s code i s d i s t r i b u t e d i n t h e hope t h a t i t w i l l be u s e f u l , ∗<br />

∗ but WITHOUT ANY WARRANTY, w i t h o u t even t h e i m p l i e d w a r r a n t y o f ∗<br />

∗ MERCHANTABILITY o f FITNESS FOR A PARTICULAR PURPOSE. See t h e ∗<br />

∗ GNU G e n e r a l P u b l i c L i c e n s e f o r more d e t a i l s . ∗<br />

∗ ∗<br />

∗ You s h o u l d have r e c e i v e d a copy o f t h e GNU G e n e r a l P u b l i c ∗<br />

∗ L i c e n s e a l o n g w i t h t h i s f i l e . I f not , s e e ∗<br />

∗ . ∗<br />

∗ ∗<br />

\∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗/<br />

#i n c l u d e <br />

#i n c l u d e <br />

#i n c l u d e <br />

#i n c l u d e <br />

MODULE LICENSE( ”GPL” ) ;<br />

MODULE AUTHOR( ” A l e x a n d e r B l e i t n e r ” ) ;<br />

MODULE DESCRIPTION( ”En−/ d i s a b l e o u t p u t o f t r i v i a ’ s t i c k c o u n t e r ” ) ;<br />

s t r u c t p r o c d i r e n t r y ∗ t r i v i a ;<br />

e x t e r n i n t t r i v i a c a p t u r e ;<br />

s t a t i c c h a r p r o c f s b u f f e r [ 2 0 4 8 ] ;<br />

i n t t r i v i a r e a d ( c h a r ∗ b u f f e r , c h a r ∗∗ b u f f e r l o c a t i o n , o f f t o f f s e t ,<br />

i n t b u f f e r l e n g t h , i n t ∗ e o f , v o i d ∗ d a t a ) {<br />

i f ( o f f s e t > 0 ) {<br />

r e t u r n 0 ;<br />

}<br />

e l s e {<br />

r e t u r n s p r i n t f ( b u f f e r , ” S t a t u s : %i \n” , t r i v i a c a p t u r e ) ;<br />

}<br />

}<br />

i n t t r i v i a w r i t e ( s t r u c t f i l e ∗ f i l e , c o n s t c h a r ∗ b u f f e r , u n s i g n e d l o n g count ,<br />

v o i d ∗ d a t a ) {<br />

i n t v a l u e ;<br />

}<br />

i f ( c o u n t > 2 0 4 8 ) {<br />

c o u n t = 2 0 4 8 ;<br />

}<br />

i f ( c o p y f r o m u s e r ( p r o c f s b u f f e r , b u f f e r , c o u n t ) ) {<br />

r e t u r n −EFAULT ;<br />

}<br />

v a l u e = s i m p l e s t r t o l ( b u f f e r , &b u f f e r , 1 0 ) ;<br />

i f ( v a l u e == 0 ) {<br />

p r i n t k (KERN INFO ” D i s a b l i n g t r i v i a ’ s t i c k c o u n t e r \n” ) ;<br />

t r i v i a c a p t u r e = 0 ;<br />

}<br />

e l s e i f ( v a l u e == 1 ) {<br />

p r i n t k (KERN INFO ” E n a b l i n g t r i v i a ’ s t i c k c o u n t e r \n” ) ;<br />

t r i v i a c a p t u r e = 1 ;<br />

}<br />

r e t u r n c o u n t ;<br />

i n t i n i t m o d u l e ( v o i d ) {<br />

23


}<br />

p r i n t k (KERN INFO ”Module t r i v i a l o a d e d . \ n” ) ;<br />

t r i v i a = c r e a t e p r o c e n t r y ( ” t r i v i a ” , 0 6 4 4 , NULL ) ;<br />

i f ( t r i v i a == NULL) {<br />

r e m o v e p r o c e n t r y ( ” t r i v i a ” , NULL ) ;<br />

p r i n t k (KERN ALERT ” E r r o r : Could not i n i t i a l i z e / p r o c / t r i v i a \n” ) ;<br />

r e t u r n −ENOMEM;<br />

}<br />

t r i v i a −>r e a d p r o c = t r i v i a r e a d ;<br />

t r i v i a −>w r i t e p r o c = t r i v i a w r i t e ;<br />

t r i v i a −>owner = THIS MODULE ;<br />

t r i v i a −>mode = S IFREG | S IRUGO ;<br />

t r i v i a −>u i d = 0 ;<br />

t r i v i a −>g i d = 0 ;<br />

t r i v i a −> s i z e = 8 0 ;<br />

r e t u r n 0 ;<br />

v o i d c l e a n u p m o d u l e ( v o i d ) {<br />

r e m o v e p r o c e n t r y ( ” t r i v i a ” , NULL ) ;<br />

}<br />

p r i n t k (KERN INFO ”Module t r i v i a u n l o a d e d . \ n” ) ;<br />

6.3 Messung<br />

Die Messung an sich erfolgt durch das Senden von ICMP–Paketen durch<br />

den ping–Befehl. Aus Performancegründen werden 10 Instanzen dieses Befehls<br />

(fast) parallel ausgeführt. Somit entfällt das Warten auf eine Antwort, bevor<br />

das nächste Paket gesendet wird.<br />

#! / b i n / sh<br />

################################################################################<br />

# f i l e : t r i v i a p i n g #<br />

# #<br />

# d e s c r i p t i o n : S h e l l −S c r i p t zum Senden von Datenpaketen #<br />

# #<br />

# a u t h o r : A l e x a n d e r B l e i t n e r #<br />

# #<br />

# c o p y r i g h t : 2010 by A l e x a n d e r B l e i t n e r #<br />

# #<br />

# l i c e n s e : GPL #<br />

# I t i s f r e e s o f t w a r e . You can r e d i s t r i b u t e i t and / o r modify i t #<br />

# under t h e terms o f t h e GNU G e n e r a l P u b l i c L i c e n s e a s p u b l i s h e d #<br />

# by t h e F r e e S o f t w a r e Foundation , e i t h e r v e r s i o n 3 o f t h e #<br />

# l i c e n s e , o r ( a t your own o p i n i o n ) any l a t e r v e r s i o n . #<br />

# #<br />

# T h i s code i s d i s t r i b u t e d i n t h e hope t h a t i t w i l l be u s e f u l , #<br />

# but WITHOUT ANY WARRANTY, w i t h o u t even t h e i m p l i e d w a r r a n t y o f #<br />

# MERCHANTABILITY o f FITNESS FOR A PARTICULAR PURPOSE. See t h e #<br />

# GNU G e n e r a l P u b l i c L i c e n s e f o r more d e t a i l s . #<br />

# #<br />

# You s h o u l d have r e c e i v e d a copy o f t h e GNU G e n e r a l P u b l i c #<br />

# L i c e n s e a l o n g w i t h t h i s f i l e . I f not , s e e #<br />

# . #<br />

# #<br />

################################################################################<br />

# p s e u d o p a r a l l e l e s Senden von 10 Paketen<br />

# −> Performance<br />

p i n g $3 −c $2 $1 > / dev / z e r o &<br />

p i n g $3 −c $2 $1 > / dev / z e r o &<br />

p i n g $3 −c $2 $1 > / dev / z e r o &<br />

p i n g $3 −c $2 $1 > / dev / z e r o &<br />

p i n g $3 −c $2 $1 > / dev / z e r o &<br />

p i n g $3 −c $2 $1 > / dev / z e r o &<br />

p i n g $3 −c $2 $1 > / dev / z e r o &<br />

24


p i n g $3 −c $2 $1 > / dev / z e r o &<br />

p i n g $3 −c $2 $1 > / dev / z e r o &<br />

p i n g $3 −c $2 $1 > / dev / z e r o<br />

6.4 Datentransfer und Durchführung der Messung<br />

Solange sich die Daten auf dem Access–Point befinden, haben sie noch keinen<br />

Nutzen. Der Transfer auf einen anderen Computer sowie die Durchführung der<br />

Messung erfolgen durch das Perl–Script trivia measure mit den Parametern<br />

, , , und .<br />

#! / u s r / b i n / p e r l<br />

################################################################################<br />

# f i l e : t r i v i a m e a s u r e #<br />

# #<br />

# d e s c r i p t i o n : P e r l −S c r i p t zum A u s f u e h r e n d e r Messung und T r a n s f e r e n #<br />

# d e r Daten #<br />

# #<br />

# a u t h o r : A l e x a n d e r B l e i t n e r #<br />

# #<br />

# c o p y r i g h t : 2010 by A l e x a n d e r B l e i t n e r #<br />

# #<br />

# l i c e n s e : GPL #<br />

# I t i s f r e e s o f t w a r e . You can r e d i s t r i b u t e i t and / o r modify i t #<br />

# under t h e terms o f t h e GNU G e n e r a l P u b l i c L i c e n s e a s p u b l i s h e d #<br />

# by t h e F r e e S o f t w a r e Foundation , e i t h e r v e r s i o n 3 o f t h e #<br />

# l i c e n s e , o r ( a t your own o p i n i o n ) any l a t e r v e r s i o n . #<br />

# #<br />

# T h i s code i s d i s t r i b u t e d i n t h e hope t h a t i t w i l l be u s e f u l , #<br />

# but WITHOUT ANY WARRANTY, w i t h o u t even t h e i m p l i e d w a r r a n t y o f #<br />

# MERCHANTABILITY o f FITNESS FOR A PARTICULAR PURPOSE. See t h e #<br />

# GNU G e n e r a l P u b l i c L i c e n s e f o r more d e t a i l s . #<br />

# #<br />

# You s h o u l d have r e c e i v e d a copy o f t h e GNU G e n e r a l P u b l i c #<br />

# L i c e n s e a l o n g w i t h t h i s f i l e . I f not , s e e #<br />

# . #<br />

# #<br />

################################################################################<br />

u s e Net : : SSH : : P e r l ;<br />

my ( $command out , $command err , $command exit , $ a p i p , $ a p u s e r , $ap passwd ,<br />

$ t a r g e t , $count , $ f i l e ) ;<br />

i f ($#ARGV != 4 ) {<br />

p r i n t ”\ n u s a g e : \ n\ t . / t r i v i a m e a s u r e <br />

\n\n” ;<br />

}<br />

$ t a r g e t = $ARGV [ 0 ] ;<br />

# pro A n f r a g e werden 10 Messungen Access −Point − s e i t i g a u s g e f u e h r t<br />

# −> b e s s e r e Performance<br />

$ c o u n t = $ARGV [ 1 ] / 1 0 ;<br />

$ a p i p = $ARGV [ 2 ] ;<br />

$ap passwd = $ARGV [ 3 ] ;<br />

$ f i l e = $ARGV [ 4 ] ;<br />

my $ m e a s u r e i n i t = ”dmesg −c > / dev / z e r o && echo \”1\” > / p r o c / t r i v i a ” ;<br />

my $measure = ” / u s r / b i n / t r i v i a p i n g $ t a r g e t 1 ” ;<br />

my $ m e a s u r e o u t p u t = ”dmesg −c | g r e p r a 0 ” ;<br />

my $ m e a s u r e c l e a n = ” echo \”0\” > / p r o c / t r i v i a ” ;<br />

my $command = $measure . ” && ” . $ m e a s u r e o u t p u t ;<br />

# Verbindung zum Access −P o i n t a u f b a u e n<br />

my $ s s h = Net : : SSH : : P e r l −>new ( $ a p i p ) ;<br />

25


# L o g i n<br />

$ s s h −>l o g i n ( ” r o o t ” , $ap p a s s w d ) ;<br />

# K e r n e l m i t t e i l e n , d a s s Messung e r f o l g t<br />

$ s s h −>cmd ( $ m e a s u r e i n i t ) ;<br />

# Messungen d u r c h f u e h r e n<br />

f o r (my $ i = 1 ; $ i cmd ( $command ) ;<br />

chomp ( $command out ) ;<br />

i f ( $command exit ) {<br />

p r i n t ”ERROR r e s e n d i n g P a c k a g e s \n” ;<br />

$ i −−;<br />

}<br />

e l s e {<br />

system ” echo \” $command out \” > $ f i l e \ $ i ” ;<br />

}<br />

}<br />

# K e r n e l m i t t e i l e n , d a s s Messung b e e n d e t i s t<br />

$ s s h −>cmd ( $ m e a s u r e c l e a n ) ;<br />

# E r g e b n i s s e zu EINER D a t e i zusammenfuegen<br />

system ” c a t $ f i l e \ ∗ > $ f i l e ” ;<br />

system ”rm $ f i l e \ ∗” ;<br />

6.5 Auswertung<br />

Das folgende Perl–Script berechnet aus der Datei , die die<br />

Messdaten enthält (vgl. 6.4) die relative Häufigkeits–Verteilung der Messung<br />

und schreibt sie in .dat. Zusätzlich wird der Erwartungswert<br />

berechnet. Der Datenbereich, der für diese Berechnung verwendet werden soll,<br />

kann durch weitere Parameter und <br />

übergeben werden.<br />

#! / u s r / b i n / p e r l<br />

################################################################################<br />

# f i l e : t r i v i a d a t a #<br />

# #<br />

# d e s c r i p t i o n : P e r l −S c r i p t zum A n a l y s i e r e n d e r Daten #<br />

# #<br />

# a u t h o r : A l e x a n d e r B l e i t n e r #<br />

# #<br />

# c o p y r i g h t : 2010 by A l e x a n d e r B l e i t n e r #<br />

# #<br />

# l i c e n s e : GPL #<br />

# I t i s f r e e s o f t w a r e . You can r e d i s t r i b u t e i t and / o r modify i t #<br />

# under t h e terms o f t h e GNU G e n e r a l P u b l i c L i c e n s e a s p u b l i s h e d #<br />

# by t h e F r e e S o f t w a r e Foundation , e i t h e r v e r s i o n 3 o f t h e #<br />

# l i c e n s e , o r ( a t your own o p i n i o n ) any l a t e r v e r s i o n . #<br />

# #<br />

# T h i s code i s d i s t r i b u t e d i n t h e hope t h a t i t w i l l be u s e f u l , #<br />

# but WITHOUT ANY WARRANTY, w i t h o u t even t h e i m p l i e d w a r r a n t y o f #<br />

# MERCHANTABILITY o f FITNESS FOR A PARTICULAR PURPOSE. See t h e #<br />

# GNU G e n e r a l P u b l i c L i c e n s e f o r more d e t a i l s . #<br />

# #<br />

# You s h o u l d have r e c e i v e d a copy o f t h e GNU G e n e r a l P u b l i c #<br />

# L i c e n s e a l o n g w i t h t h i s f i l e . I f not , s e e #<br />

# . #<br />

# #<br />

################################################################################<br />

my ( $r0 , $r1 , $b , @t , @d , @v , $e , $ i , $o ) ;<br />

# Daten e i n l e s e n<br />

open (DATA, ”< $ARGV [ 0 ] ” ) ;<br />

f o r e a c h () {<br />

26


chomp ( ) ;<br />

@t = s p l i t ( / : / , $ ) ;<br />

push (@d , $ t [ 2 ] ) ;<br />

}<br />

c l o s e (DATA) ;<br />

# a u f r i c h t i g e Verwendung p r u e f e n<br />

i f ($#ARGV == 2 ) {<br />

$ r 0 = $ARGV [ 1 ] ;<br />

$ r 1 = $ARGV [ 2 ] ;<br />

$b = ” d e r Daten im B e r e i c h $ r 0 b i s $ r 1 ” ;<br />

}<br />

e l s i f ($#ARGV == 0 ) {<br />

$ r 0 = 1 ;<br />

$ r 1 = $#d ;<br />

}<br />

e l s e {<br />

d i e ”\ n u s a g e : \ n\ t . / t r i v i a d a t a [< range1> ]\n\n” ;<br />

}<br />

# V e r t e i l u n g b e r e c h n e n<br />

map { $v [ $ ]++} @d ;<br />

# f a l l s b e n o e t i g t Werte im I n t e r v a l l z a e h l e n<br />

i f ( $b ) {map { i f ( $ ) { i f ( $r0


Teil VI<br />

Literaturverzeichnis<br />

[1] Ugur Teker:<br />

” Realisierung und Evaluation eines Indoor–<br />

Lokalisierungssystems mittels WLAN“, 2005, Seite 17.<br />

http://www.sfbtr8.uni-bremen.de/project/r1/theses/<br />

diplomar<strong>bei</strong>t_ugur_teker.pdf<br />

(Letzter Zugriff: 10.01.2010, 22:43 Uhr)<br />

[2] Peter Dornbusch, Max Zündt: ” Realisierung von Positionsortungen in<br />

WLAN“, 2002, Seite 3.<br />

http://www4.in.tum.de/publ/papers/RvPiWLAN_final.pdf<br />

(Letzter Zugriff: 10.01.2010, 22:03 Uhr)<br />

[3] Stephan Müller: ” Positionierung im WLAN“, 2004, Seite 9ff.<br />

http://wwwcs.uni-paderborn.de/cs/ag-kao/de/teaching/ws04/pg_<br />

lbs/Seminarausar<strong>bei</strong>tungen/M%C3%BCller.pdf<br />

(Letzter Zugriff: 28.01.2010, 14:39 Uhr)<br />

[4] Wikipedia: Freiraumdämpfung.<br />

http://de.wikipedia.org/wiki/Freiraumd%C3%A4mpfung<br />

(Letzter Zugriff: 29.01.2010, 01:16 Uhr)<br />

[5] Christian Gerthsen, Dieter Meschede: ” Gerthsen <strong>Physik</strong>“, 23. Auflage,<br />

2006, Seite 556.<br />

[6] Choongill Yeh, Hyoungsoo Lim, Dongseung Kwon: ” RSSI Measurements“,<br />

2003.<br />

http://www.ieee802.org/16/tgd/contrib/C80216d-03_92.pdf<br />

(Letzter Zugriff: 28.01.2010, 14:46 Uhr)<br />

[7] Hendrik Lemelson: ” In– und Outdoor Positionierungssysteme“, 2005,<br />

Seite 9.<br />

http://pi4.informatik.uni-mannheim.de/pi4.data/content/<br />

courses/2005-ws/seminar/Vortrag_Positionierung-Uebersicht_<br />

Indoor_und_Outdoor_Positionierungssysteme.pdf<br />

(Letzter Zugriff: 28.01.2010, 20:56 Uhr)<br />

28


[8] Paramvir Bahl, Venkata N. Padmanabhan: ” RADAR: An In-Building<br />

RF-based User Location and Tracking System“, 2000.<br />

http://research.microsoft.com/en-us/um/people/padmanab/<br />

papers/infocom2000.pdf<br />

(Letzter Zugriff (nur mit Microsoft TM Windows R○ Internet Explorer R○<br />

möglich): 20.01.2010, 19:37Uhr)<br />

[9] Paramvir Bahl, Venkata N. Padmanabhan, Anand Balachandran: ” En-<br />

hancements to the RADAR User Location and Tracking System“, 2000.<br />

http://research.microsoft.com/pubs/69861/tr-2000-12.pdf<br />

(Letzter Zugriff (nur mit Microsoft TM Windows R○ Internet Explorer R○<br />

möglich): 20.01.2010, 20:06 Uhr)<br />

[10] IEEE Standard for Information Technology: ” IEEE 802.11r“, 2008 .<br />

Download unter http://standards.ieee.org/getieee802/download/<br />

802.11r-2008.pdf<br />

(Letzter Zugriff: 28.01.2010, 14:50 Uhr)<br />

[11] Ralink: RT3052 802.11n Wireless Single Chip AP/Router SoC.<br />

Download unter http://www.ralinktech.com/product.php?s=32<br />

(Letzter Zugriff: 25.01.2010, 14:54 Uhr)<br />

[12] Wikipedia: System on a Chip.<br />

http://de.wikipedia.org/wiki/System_on_a_Chip<br />

(Letzter Zugriff: 25.01.2010, 14:45 Uhr)<br />

[13] Massachusetts Institute of Technology: ” MIPS-6371 Processor Specifica-<br />

tion“, 2002, Seite 3, Tabelle 1.<br />

http://6004.csail.mit.edu/6.371/handouts/mips6371.pdf<br />

(Letzter Zugriff: 25.01.2010, 15:36 Uhr)<br />

[14] Andre Günther, Christian Hoene: ” Measuring Round Trip Times to<br />

Determine the Distance between WLAN Nodes“, 2005.<br />

http://ics2.cs.uni-tuebingen.de/publications/papers/hoene_<br />

paper2.pdf<br />

(Letzter Zugriff: 29.01.2010, 00:20 Uhr)<br />

[15] Hammer, Hammer: ” <strong>Physik</strong>alische Formeln und Tabellen“, 8. Auflage,<br />

2002, Seite 80f.<br />

[16] Barth, Mühlbauer, Nikol, Wörle: ” Mathematische Formeln und Definitio-<br />

nen“, 8. Auflage, 2004.<br />

29


[17] Andreas Biesdorf, Andreas Kurtz: ” <strong>Fachar<strong>bei</strong>t</strong>en in LaTeX“, Deckblatt<br />

und Einverständniserklärung<br />

Download unter http://www.skg-world.de/content/kollegstufe/<br />

fachar<strong>bei</strong>t/index.php<br />

(Letzter Zugriff: 25.01.2010, 17:04 Uhr)<br />

30


<strong>Arnold</strong>–<strong>Gymnasium</strong> Abiturjahrgang 2010<br />

<strong>Neustadt</strong> <strong>bei</strong> <strong>Coburg</strong><br />

Ich erkläre hiermit, dass ich die <strong>Fachar<strong>bei</strong>t</strong> ohne fremde Hilfe angefertigt und<br />

nur die im Literaturverzeichnis angeführten Quellen und Hilfsmittel benutzt<br />

habe.<br />

, den<br />

Ort Datum<br />

Unterschrift des Kollegiaten

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!