Scatternet Formation - Ausarbeitung zum Seminarvortrag der Abteilung Rechnernetze, WS2001/02 Roland Gronarz
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Scatternet Formation Aufbau von Bluetooth AdHoc-Netzwerken Ausarbeitung zum Seminarvortrag der Abteilung Rechnernetze, WS2001/02 Roland Gronarz
Inhaltsverzeichnis 1. Einleitung .......................................................................................................................2 1.1. Über dieses Dokument ............................................................................................2 1.2. Bluetooth ................................................................................................................2 1.3. Technische Eigenschaften .......................................................................................3 1.4. Motivation ..............................................................................................................4 1.5. Stand der Dinge ......................................................................................................5 1.6. Problemstellung ......................................................................................................5 1.7. Formalismen ...........................................................................................................5 1.8. Effizienzanforderungen...........................................................................................6 2. Scatternet Formation mit Bluetrees .................................................................................7 2.1. Voraussetzungen.....................................................................................................7 2.2. Erstellen von Bluetrees mit einer Wurzel ................................................................7 2.3. Begrenzung der Anzahl Slaves eines Master ...........................................................8 2.4. Variante: Verteilte Bluetrees ...................................................................................9 2.5. Bewertung ............................................................................................................10 3. Das Blueroot Topology Construction Protocol (BTCP).................................................11 3.1. Der Algorithmus........................................................................................................11 3.2. Bewertung .................................................................................................................13 4. Scatternet Formation mit Komponenten (NewTCP)......................................................13 4.1. Überblick...................................................................................................................13 4.2. Der Algorithmus........................................................................................................14 4.3. Erweiterung für dynamische Umgebungen.................................................................17 4.4. Bewertung .................................................................................................................17 5. Zusammenfassung ........................................................................................................18 6. Quellen.........................................................................................................................18 1. Einleitung 1.1. Über dieses Dokument Bei diesem Dokument handelt es sich um eine Ausarbeitung zu einem Seminarvortrag in der Abteilung Rechnernetze der Universität Bonn im Wintersemester 2001/02. Kapitel 1 bietet einen Einstieg in die Thematik Bluetooth, Scatternets und Effizienzkriterien. Kapitel 2, 3 und 4 beschreiben jeweils verschiedene Ansätze zur Scatternet Formation auf Basis wissenschaftlicher Ausarbeitungen [3], [4], [5]. 1.2. Bluetooth Bluetooth ist ein Kommunikationsstandard für drahtlose Funkkommunikation, der einen Datenaustausch zwischen allen denkbaren Gerätetypen ermöglichen soll. Ob Notebook, Organizer, Mobiltelefon oder Peripheriegeräte von Computern, alles soll durch Bluetooth die Fähigkeit erhalten, miteinander kommunizieren zu können. Bluetooth arbeitet in der stromsparenden Variante über Reichweiten von bis zu 10 Metern. Und auch eine Ad-hoc- Vernetzung verschiedener Geräte ist vorgesehen, allerdings noch nicht genauer spezifiziert. Dieses Dokument befasst sich vor allem mit dem Aufbau von Ad-hoc-Netzen, der sogenannten Scatternet Formation.
1.3. Technische Eigenschaften Bluetooth Geräte operieren auf 79 Kanälen mit jeweils 1 MHz Bandbreite im 2.45 GHz Frequenzbereich. Bei der Kommunikation wird nicht ständig ein und der selbe Kanal benutzt, sondern es wird 1600 mal in der Sekunde die Frequenz gewechselt (Frequency Hopping), um Interferenzen zu anderen Geräten auszugleichen. Dies ist notwendig, da das benutzte Frequenzband frei verfügbar ist. Wesentliche Eigenschaften eines Bluetooth Gerätes sind zum einen eine innere Uhr (Clock), welche die Taktung bei den Frequenzsprüngen vorgibt, sowie eine eindeutige Bluetooth Device Adress. Aus dieser ergibt sich dann auch die Identität des Gerätes, welche die verschiedenen Frequenzen der Hopping-Sequence festlegt. Bei der Verbindung zweier Bluetooth Geräte übernimmt eines die Rolle des Master und das andere die Rolle des Slave. Dabei ist zu beachten, dass es so etwas wie dezidierte Master oder Slave Geräte nicht gibt, die Rollenverteilung findet dynamisch beim Verbindungsaufbau statt. Der Master legt verbindlich für den Slave die Hopping-Sequence, also die „Sprünge“ zwischen den Frequenzen, fest und verteilt Senderechte. Beim Verbindungsaufbau werden zwei Phasen durchlaufen. Verbindungsaufbau, Phase 1: INQUIRY Die INQUIRY-Methode wird dann verwendet, wenn nach noch nicht entdeckten Geräten gesucht werden soll, über die noch keinerlei Informationen vorliegen. Solange keine Verbindung besteht, wechselt ein Bluetooth Gerät ständig zwischen den Zuständen INQUIRY (Anfrage) und INQUIRY SCAN (suche nach Anfrage). Im Zustand INQUIRY springt das Gerät zwischen 32 Frequenzen und schickt seine Suchanfrage aus. Im Zustand INQUIRY SCAN springt das Gerät ebenfalls zwischen 32 Frequenzen und sucht nach einer INQUIRY-Nachricht. Empfängt ein Gerät im Zustand INQUIRY SCAN eine solche Anfrage, so antwortet es, indem es seine Adresse und seine Clock übermittelt, und eine Kommunikation kann beginnen. Die Rollenverteilung ist dabei so festgelegt, dass das anfragende Gerät Master und das andere Slave wird. Verbindungsaufbau, Phase 2: PAGE In dieser Phase befindet sich der Master im Zustand PAGE (Ruf) und der Slave im Zustand PAGE SCAN (Suche nach Ruf). Voraussetzung ist, dass dem Master die Bluetooth- Device Adress des Slave bekannt ist. Der Page-Vorgang kann beschleunigt werden, wenn dem Master neben der Adresse auch die Clock des Slave vorliegt. Der Master übermittelt dem Slave seine eigene Taktung und Hopping-Sequence und weist ihn an, diese zu übernehmen. Der Slave synchronisiert sich daraufhin auf den Master und kann so mit ihm kommunizieren. Piconets Ein Piconet besteht aus einem Master und bis zu sieben aktiven Slaves. Ein Master kann prinzipiell mehr als sieben Slaves kontrollieren, indem er einige Slaves in eine Art Schlafmodus schickt. Dies kann den Datenaustausch allerdings erheblich verlangsamen, vor allem, wenn ein aktiver Slave Daten an einen Schläfer schicken will. Die Kommunikation läuft hierbei grundsätzlich ausschließlich über den Master, welcher Senderechte verteilt und die zu nutzenden Frequenzen vorgibt. Eine Master-Master oder Slave-Slave Kommunikation ist nicht möglich. Der Master verteilt abwechselnd Senderechte an die einzelnen Slaves.
S S M S S Abb. 1.1: Ein Piconet Scatternets Wegen der Anwendung von Frequency-Hopping ist eine Koexistenz mehrer Piconets nebeneinander möglich. Dabei kann ein Gerät B sogar Mitglied in mehreren Piconets sein. Dazu speichert B einfach die Hopping-Sequence aller Master, in deren Piconet B Mitglied ist und kann sich so auf die Frequenz eines jeden Piconet einstellen. Ein solches Gerät wird als Bridge-Node bezeichnet, da es quasi eine Brücke zwischen Piconets darstellt. Mehrere, auf diese Weise verbundene Piconets bilden ein Scatternet. Dabei kann ein Gerät M zwar Master in einem Piconet und Slave in einem anderen sein, jedoch niemals die Master-Rolle für zwei Piconets übernehmen, da ja sonst beide nach der Hopping-Sequence von M arbeiten würden und somit ein und dasselbe Piconet wären. Master Bridge Slave Abb 1.2: Ein Scatternet Anders als bei Wireless LAN gibt es bei Bluetooth Scatternets keine von vorneherein festgelegten oder gar statischen Master-Nodes, welche die Kommunikation im Netzwerk koordinieren. 1.4. Motivation Ursprünglich wurde der Bluetooth Standard entwickelt, um eine drahtlose Kommunikation verschiedenster Geräte über kurze Entfernung zu ermöglichen. Erst mit der Zeit kam der Bedarf an einer Vernetzung von Bluetooth Geräten, der Erstellung eines sogenannten adhoc-Netzwerks. Beispielsweise befinden sich mehrere Teilnehmer eines Seminars mit Bluetooth-fähigen Geräten in einem Raum und diese Personen möchten ihre Daten untereinander austauschen. Idealerweise würde nun jeder Teilnehmer einen Befehl der Art „Baue Verbindung zu Adhoc Netzwerk auf“ ausführen, nach kurzer Zeit eine Meldung
„Verbindung zu Adhoc Netzwerk steht“ erhalten und daraufhin den Datenaustausch mit beliebigen anderen Teilnehmern aufnehmen können. Dabei gibt es allerdings einige Probleme: • Wie soll ein Bluetooth Netzwerk aufgebaut werden? • Wie soll Routing geschehen? • Wie soll auf räumliche Bewegung von Geräten reagiert werden, nachdem der Netzwerkaufbau abgeschlossen ist? Dieses Dokument beschäftigt sich vor allem mit dem Aufbau eines Bluetooth Netzwerkes, der Scatternet Formation. Dieses Gebiet ist noch Teil der Forschung, einen einheitlichen Standard gibt es noch nicht. In den Kapiteln 2, 3 und 4 werden drei verschiedene Ansätze zur möglichst effizienten Scatternet Formation beschrieben. 1.5. Stand der Dinge Aktuelle Bluetooth Geräte haben noch nicht die Möglichkeit, zwischen Piconets hin- und herzuschalten, dies soll erst in zukünftigen Bluetooth-Implementationen realisiert werden. Ein reales Bluetooth Scatternet ist also noch nicht implementierbar. Dies hat zur Folge, dass die Bewertungen der vorgestellten Algorithmen auf Simulationen basieren und eben noch nicht in „Real Life“ getestet werden konnten. Dabei ergibt sich dann auch die Frage nach der Vollständigkeit der vorliegenden Simulationsergebnisse. 1.6. Problemstellung Ausgangspunkt ist eine Menge von Bluetooth Nodes, die initial nur wissen, dass sie Teil eines Adhoc Netzwerkes werden sollen. Informationen über Anzahl der Nodes, der Nachbarn und so weiter sind anfangs nicht verfügbar und müssen im Laufe eines Protokolls in Erfahrung gebracht werden. Nach Beendigung des Protokolls soll ein vollständig verbundenes Scatternet vorhanden sein. Vollständig verbunden heißt hierbei, dass erstens alle Nodes in das Netzwerk integriert sind und zweitens dass es zwischen allen Nodes mindestens einen Kommunikationspfad gibt. Die Wahrscheinlichkeit für ein Versagen des Protokolls, was beispielsweise in einem nicht vollständig verbundenen Scatternet bestehen würde, muss dabei auf ein hinreichend kleines Maß reduziert werden. Neben diesen grundsätzlichen Anforderung gibt es noch eine Reihe von Constrains, die in 1.8. erläutert werden. 1.7. Formalismen In den folgenden Algorithmen werden zur Veranschaulichung Digraphen G = (V,E) verwendet. In diesen werden die Bluetooth-Geräte als Knoten (im weiteren Verlauf als Nodes bezeichnet) aufgefasst. Master-Slave Beziehungen werden als gerichtete Kanten (M,S) dargestellt. Farben kennzeichnen die Funktion der einzelnen Nodes: • Dunkelblauer Node = Master • Hellblauer Node = Slave • Oranger Node = Bridge
Dabei stellt die Anordnung der Nodes nicht zwangsläufig die tatsächliche Topologie der Bluetooth-Geräte dar. 1.8. Effizienzanforderungen Eine vergleichende Bewertung der vorgestellten Protokolle erweist sich als schwierig. Die vorliegenden Informationen enthalten zwar Simulationsergebnisse, allerdings konzentrieren diese sich dabei jeweils auf unterschiedliche Aspekte der Scatternet Formation, so dass ein direkter Vergleich zweier Protokolle nur sehr begrenzt möglich ist. Grundsätzlich gibt es zwei Gesichtspunkte, nach welchen ein Scatternet Formation Protocol beurteilt werden kann. Zum einen kann man die eigentliche Scatternet Formation betrachten und dort Größen wie Geschwindigkeit oder Wahrscheinlichkeit für Korrektheit feststellen. Zum anderen ist natürlich auch die Topologie des entstehenden Ad hoc Netzwerkes von Interesse, da hiervon vor allem Übertragungszeiten zwischen einzelnen Nodes abhängen. Folgende Auflistung soll einen Überblick über die verschiedenen Anforderungen an ein Scatternet Formation Protocol geben. • Korrektheit: Das Protokoll sollte natürlich alle Geräte in Reichweite in das Netzwerk integrieren. Dabei sollte die Wahrscheinlichkeit, dass ein Gerät nicht integriert wird, „hinreichend klein“ sein, bestenfalls sogar gleich null sein. Zusätzlich soll das Scatternet vollständig verbunden sein. • Geschwindigkeit: Die Scatternet Formation sollte in „akzeptabler“ Zeit stattfinden. Es wird sich zeigen, dass Korrektheit und Geschwindigkeit konkurrierende Constrains sind. • Mobilität: Es ist wünschenswert, dass das entstandene Scatternet ein gewisses Maß an Toleranz gegenüber Bewegungen der einzelnen Geräte aufweist. Würde die Verbindung zu einem Gerät abbrechen, wenn es bewegt wird, oder sogar das ganze Scatternet zusammenbrechen, so würde dies die praktische Anwendbarkeit des Bluetooth Adhoc Netzwerkes stark einschränken. • Flexibilität: Müssen alle Geräte gleichzeitig mit der Scatternet Formation beginnen? Wäre es vielleicht sogar möglich, ein Gerät nach Beendigung des Protokolls trotzdem noch in das Netzwerk zu integrieren? Was geschieht, falls ein Gerät ausfällt? • Beschränkung für Bridge-Nodes: Jeder Bridge-Node sollte in so wenig Piconets wie möglich sein, bestenfalls in zwei. Die zeitliche Overhead für das Routing über eine Bridge wächst mit jedem Piconet, an welchem die Bridge teilnimmt. Dies liegt zum einen daran, dass die Bridge zu jedem Zeitpunkt in nur einem Piconet „lauschen“ kann und zum anderen, dass in den Wechselzeiten, in denen sich die Bridge auf ein anderes Piconet synchronisiert, keinerlei Kommunikation mit der Bridge stattfinden kann.
[6] • Beschränkung für die Zahl der Piconets: Je weniger Piconets vorhanden sind, um so weniger groß ist die Anzahl an verwendeten FH-Kanälen und damit sinkt die Wahrscheinlichkeit von Interferenz. Außerdem sinkt mit der Anzahl der Piconets auch der „Network Diameter“, d.h. die Länge eines maximalen Kommunikationspfades zwischen zwei Geräten. • Reichweite: Es würde die Einsetzbarkeit des Protokolls erheblich erhöhen, wenn es keine zwingende Voraussetzung ist, dass alle Geräte paarweise in direkter Kommunikationsreichweite sind. 2. Scatternet Formation mit Bluetrees In diesem Abschnitt wird ein Lösungsansatz von drei Mitarbeitern der Universität Texas beschrieben [3]. 2.1. Voraussetzungen Gegeben seien Bluetooth Nodes in einer räumlichen Umgebung. Nach Ausführung ihrer Boot Sequenzen kennen alle Nodes die Anzahl und Identities (=Bluetooth Adressen) ihrer Nachbarn. Die Menge der Nachbarn eines Node x besteht in diesem Fall aus allen Nodes, die in der Kommunikationsreichweite von x liegen. Des weiteren wird gefordert, dass die einzelnen Nodes nicht sehr stark bewegt werden. 2.2. Erstellen von Bluetrees mit einer Wurzel Theorem – Zu jedem geographisch verbundenen Netzwerk gibt es mindestens ein zugehöriges Bluetooth Scatternet, in welchem für jeden Node X gilt: • X ist entweder Master, oder • X ist Slave, oder • X ist Master in einem Piconet und Slave in einem anderen und damit Bridge-Node. Beweisen lässt sich dieses Theorem mittels folgendem Algorithmus. Begonnen wird das Protokoll mit der Auswahl eines Nodes, der Blueroot. Diese Wurzel übernimmt die Rolle eines Master. Nun wird ein Spannbaum auf folgende Weise aufgebaut: 1. Wähle einen noch nicht markierten Knoten t des Baumes 2. Falls dieser Knoten keine nicht markierten Nachbarn hat, so ist dieser Knoten Blatt und hat damit die einzige Rolle eines Slaves. Andernfalls hat t Nachbarn, für die er jetzt die Rolle des Master übernimmt. Dadurch übernehmen die Nachbarn alle die Rolle des Slave. Sofern t nicht die Blueroot ist, ist t innerer Knoten des Bluetree und hat damit die Rollen Master/Slave. 3. Markiere t 4. Falls es noch nicht markierte Knoten gibt, gehe zu Schritt 1.
Es wird vorausgesetzt, dass jedem Node bekannt ist, • Ob er Blueroot ist oder nicht • Wie die Adressen seiner Nachbarn sind (lässt sich durch INQUIRY herausfinden) • Ob sie bereits Teil eines Piconet im resultierenden Scatternet sind Die vorliegenden Informationen schweigen sich darüber aus, wie man einen eindeutigen Knoten als Blueroot auswählen kann. Eine Möglichkeit wäre der unter ?? beschriebene Algorithmus zur „Leader Election“. Dies funktioniert allerdings nur, wenn alle Geräte paarweise miteinander kommunizieren können, was bei der Scatternet Formation mit Blueroots nicht explizit vorausgesetzt wird. Wird ein Node von einem anderen gerufen („page“) und ist noch nicht Teil eines Piconet, so akzeptiert er und wird Slave des ihn rufenden Nodes. Andernfalls wird er den rufenden Knoten entweder ignorieren, oder er wird ihn sofort davon unterrichten, dass er bereits Teil eines Piconet ist und die Kommunikation abbrechen. Sobald ein Knoten die Funktion eines Slave übernommen hat, beginnt er seine Nachbarn zu rufen und so weiter. 2.3. Begrenzung der Anzahl Slaves eines Master Problem: Obiger Algorithmus kann bei der tatsächlichen Implementierung in Bluetooth versagen, da ein Master maximal sieben Slaves kontrollieren kann. Was ist, wenn ein Node mehr als sieben Nachbarn hat? Um eine Lösung für dieses Problem zu entwickeln, macht man zuerst folgende Beobachtung: Hat ein Bluetooth-Node n in einer offenen, interferenzfreien Umgebung mehr als fünf Nachbarn, so gibt es unter diesen wenigstens zwei Nodes, die selber Nachbarn sind. Beweis: Wähle unter den nach Voraussetzung mehr als fünf Nachbarn von n sechs aus. Im worst case haben alle Nachbarn maximalen Abstand voneinander. In diesem Fall bilden sie ein perfektes Sechseck um den Knoten n. In einem solchen ist aber der Radius genauso groß wie die Kantenlänge. Also haben die benachbarten Eckpunkte zueinander den gleichen Abstand wie ein Eckpunkt zum Mittelpunkt. Diese Beobachtung kann nun dazu verwendet werden, die Anzahl der Slaves, die ein Master im Scatternet kontrollieren soll, auf fünf zu beschränken: Sei m ein Master mit mehr als fünf Slaves. m kann sicher sein, dass mindestens zwei seiner Slaves eine eigenständige Beziehung aufbauen können. Der Master m pollt nun seine Slaves an, um die Identifier ihrer Nachbarn zu erhalten. m kann nun zwei seiner Slaves s1 und s2 auswählen und ihnen die Aufgabe zuteilen, eine eigenständige Verbindung aufzubauen. Dabei wird s1 Master von s2. s1 sollte dabei so ausgewählt werden, dass er der Node mit der kleinsten Anzahl eigener Slaves ist.
2.4. Variante: Verteilte Bluetrees Um eine bessere Verteilung der Verbindungen zu erreichen gibt es folgende Variante der unter 2.3. beschriebenen Technik: Anstatt einem einzigen großen Bluetree werden hier zunächst mehrere kleine erstellt und diese dann letztendlich mit dem gleichen Algorithmus verbunden. Phase 0: Auswahl der Blueroots Initial werden mehrere Blueroots ausgewählt und zwar so, dass sie möglichst verteilt liegen. Dies kann dadurch sichergestellt werden, dass alle Nodes ihre Identifier mit denen ihrer Nachbarn vergleichen. Hat ein Node den höchsten Identifier unter seinen Nachbarn, so ernennt sich selber zur Blueroot. Phase 1: Erstellen der Scatternets Danach wird in jedem Blueroot der unter 2.3. beschriebene Algorithmus mit folgenden Modifikationen gestartet: • Bei Etablierung einer Intra-Piconet Verbindung wird der neu hinzugenommene Slave über den Identifier der Blueroot des zugehörigen Baumes informiert • Werden Nodes gerufen, die bereits Teil eines Piconet sind, so werden Informationen über die jeweiligen Blueroots zwischen rufendem und antwortendem Node ausgetauscht. Diese Knoten stellen potentielle Bridge-Nodes für die Verbindung der Scatternets in Phase 2 dar. Die in Phase 1 gesammelten Informationen werden in Phase 2 benötigt werden.
Phase 2: Verbinden der Scatternets Es wird nun ein neuer virtueller Graph erstellt, in welchem die in Phase 1 erstellten Scatternets als Knoten aufgefasst werden. Auf diesen Graphen wird nun wiederum Algorithmus 2.3. angewandt. Um eine Verbindung zwischen zwei Scatternets zu erstellen werden die Informationen aus Phase 1 benötigt. Die Koordination läuft dann jeweils über die Blueroots der einzelnen Scatternets. 2.5. Bewertung Der große Vorteil dieses Protokolls (vor allem der Variante mit verteilten Bluetrees) liegt in seiner Anwendbarkeit für Scatternets mit einer sehr großen Anzahl Nodes. Simulationen zeigen, dass dieses Protokoll für 2000 Nodes eine Scatternet Formation durchführen kann. Außerdem fällt für die Variante die Forderung nach paarweiser Erreichbarkeit weg, welche bei sehr großen Scatternets auch kaum erfüllbar ist. Average Route Errors Zur Qualität des entstehenden Scatternets wurden in der Simulation „Average Route Errors“ betrachtet. Diese sind ein Maß für die Länge von Kommunikationspfaden und geben die durchschnittliche Abweichung vom Idealfall (berechnet durch einen Kürzesten Wege Algorithmus angewandt auf den Topologie-Graphen) an. Ein ARE-Wert von 4 würde beispielsweise bedeuten, dass jede Route im tatsächlichen Scatternet um 4 Hops größer ist als im Idealfall.
3. Das Blueroot Topology Construction Protocol (BTCP) Dieser Algorithmus zur Scatternet Formation hat eine besondere Voraussetzung: Alle Geräte müssen paarweise in ihrer Kommunikationsreichweite liegen [3]. 3.1. Der Algorithmus Phase 1: Wahl des Koordinators In dieser Phase wird ein eindeutiger Node ausgewählt, welcher die spätere Scatternet Formation koordiniert. Am Ende dieser Phase wird dieser „Koordinator“ die Anzahl, Identifier und die Taktung aller am Netzwerk teilnehmenden Nodes kennen. Jeder Node x speichert in einer Variable VOTES die Anzahl der Stimmen, die er schon erhalten hat. Initial hat jeder Node einen VOTES-Wert von 1. Nu beginnt jeder Node damit, zwischen den Zuständen INQUIRY (Aussenden eines Verbindungswunsches) und INQUIRY SCAN (Warten auf eintreffende Verbindungswünsche). Bei einer Verbindung zwischen zwei Nodes kommt es zu einer Konfrontation: Der Node mit dem höheren VOTES-Wert (bzw. der größeren Bluetooth-Adresse bei Gleichheit der VOTES) gewinnt die Auseinandersetzung und addiert die VOTES-Werte des Verlierers zu seinen eigenen hinzu. Der Verlierer geht in den PAGE SCAN Modus über (wird in Phase 2 und 3 benötigt) und wird von nun an alle INQUIRY-Rufe ignorieren. Der Gewinner alterniert wieder zwischen den Zuständen INQUIRY und INQUIRY SCAN. Gibt es in der Scatternet Formation N Nodes, so steht nach N-1 Konfrontationen der Koordinator fest. Bereits in dieser Phase wird die Notwendigkeit der oben angesprochenen Voraussetzung klar: Seien X und Y Nodes, welche sich nicht direkt gegenseitig erreichen können. In einem ungünstigen Fall bleiben X und Y in Phase 1 am Ende übrig, können aber nicht in die Konfrontation eintreten, da sie ja nicht miteinander kommunizieren können. Beide Knoten würden also annehmen, dass sie die Rolle des Koordinators haben und somit würde ein nicht- verbundenes Scatternet entstehen. An dieser Stelle gibt es allerdings ein Problem: Woher soll der Koordinator wissen, dass er die Wahl gewonnen hat und in Phase 2 übergehen kann? Dazu wird für jeden Node ein Timer eingeführt, welcher immer dann, wenn ein Node eine Auseinandersetzung gewinnt oder gebootet wird auf den Initialwert ALT_TIMEOUT gesetzt. Sobald der Timer abläuft geht der zugehörige Node davon aus, dass er die Wahl gewonnen hat und Koordinator ist. Was ist nun ein geeigneter Wert für ALT_TIMEOUT? • Ein zu großer Wert würde dazu führen, dass der gewählte Koordinator noch lange nach seiner Wahl im alternierenden Modus verbleibt. Daraus würde eine zu lange Phase 1 resultieren. • Ein zu kleiner Wert kann bewirken, dass mehrere Nodes fälschlicherweise von einem Gewinn der Wahl ausgehen und es somit mehrere Koordinatoren gibt, was zwangsläufig ein nicht vollständig verbundenes Scatternet zur Folge hätte. Folgende Überlegungen können bei der Bestimmung eines ALT_TIMEOUT-Wertes behilflich sein: Da die Dauer eines Verbindungsaufbaus bei zwei Nodes den schlimmsten Fall
darstellt, kann diese als Basis für die Berechnung von ALT_TIMEOUT verwendet werden. Aus Platzgründen wird auf eine detailliertere Betrachtung verzichtet. Am Ende dieser Phase (also nach Ablauf von ALT_TIMEOUT beim Koordinator) sieht die Situation folgendermaßen aus: • Der Koordinator hat FHS-Pakete und damit Clock und Hopping Sequence aller an der Scatternet Formation teilnehmenden Geräte. Er ist damit in der Lage, mittels Page jedes dieser Geräte anzusprechen. • Alle anderen Nodes warten im Zustand PAGE SCAN auf Anfragen Phase 2: Rollenbestimmung Zu Beginn dieser Phase überprüft der Koordinator die Anzahl N aller Nodes, die ihm ja aus Phase 1 bekannt ist. Sollte N 8, so reicht ein Piconet nicht mehr aus. Da dem Koordinator sämtliche Informationen über alle Nodes vorliegen, kann er nun eigenständig das Scatternet planen und die Rolle (Master, Slave, Bridge) eines jeden Nodes festlegen. Dabei geht der Koordinator folgendermaßen vor: • Für ein Scatternet mit N Nodes werden mindestens 17 − 289 − 8 N P= Master benötigt. Dies gilt für 1 ≤ N ≤ 36 2 Der Koordinator selektiert also P Nodes als Master. • Des weiteren wählt er P(P-1)/2 Bridge-Nodes aus. • Die restlichen Nodes bekommen die Rolle eines einfachen Slave zugeteilt. Der Koordinator weist sich selber dabei grundsätzlich eine Master-Rolle zu. Danach erstellt er für jeden ausgewählten Master x eine SLAVELIST(x) und eine BRIDGELIST(x), welche alle x zugehörigen Slaves und Bridge-Nodes enthalten. Jeder der Einträge der Liste enthält Adresse und Taktung (also die FHS-Pakete) der Nodes, so dass der spätere Verbindungsaufbau sofort mit PAGE beginnen kann. Daraufhin baut der Koordinator durch Paging eine Verbindung zu allen von ihm bestimmten Mastern auf und übermittelt ihnen die SLAVELIST und BRIDGELIST. Sobald die Master die Informationen erhalten haben beginnen sie mit Phase 3. Der Koordinator verliert seine Rolle und geht als Master ebenfalls in Phase 3 über. Phase 3: Verbindungsaufbau Jeder Master baut nun gemäß seiner SLAVE/BRIDGELIST eine Verbindung zu den ihm zugeordneten Nodes auf und teilt diesen ihre Rolle mit. Dabei beginnt er mit den reinen Slaves und fährt erst danach mit den Bridge-Nodes fort. Sobald ein Node darüber informiert wird, dass er Bridge-Node ist, wartet er auf die Verbindung mit seinem zweiten Master. Ist dies geschehen, so schickt er an beide Master eine Nachricht „CONNECTED“. Hat ein Master diese Nachricht von allen ihm zugeordneten Bridge-Nodes erhalten, wird das BTCP beendet in diesem Master beendet und es ist sichergestellt, dass ein vollständig verbundenes Scatternet entsteht.
3.2. Bewertung Im Gegensatz zur Scatternet Formation mittels Bluetrees ist dieses Protokoll nur für relativ kleine Scatternets brauchbar. Dies liegt zum einen daran, dass alle Teilnehmer während Phase 0 paarweise miteinander kommunizieren können müssen und zum anderen, dass die in Phase 1 angewandten Formeln nicht mehr für N > 36 gelten. Dauer der Formation Die durchgeführten Simulationen mit dem BTCP konzentrieren sich auf die Dauer der Scatternet Formation. Die Geschwindigkeit der Scatternet Formation mittels BTCP hängt wesentlich von der Wahl von ALT_TIMEOUT ab. Die vorliegende Abbildung zeigt die Dauer von Phase 0 in Abhängigkeit der Anzahl der Nodes N. Die Kurven „exp1000“ und „exp2000“ entstehen bei der Annahme, dass alle Benutzer innerhalb von 1000 bzw. 2000 ms ihre Bluetooth-Geräte anweisen, an der Scatternet Formation teilzunehmen. Die Kurve „no offset“ setzt voraus, dass alle beteiligten Geräte gleichzeitig in Phase 0 eintreten. Diese sehr flachen Kurven sprechen dafür, dass die Dauer der Scatternet Formation nicht sehr stark mit der Anzahl der Geräte wächst. Eine Angabe der Größenordnung liegt allerdings nicht vor. 4. Scatternet Formation mit Komponenten 4.1. Überblick In diesem Ansatz werden Komponenten gebildet [4]. Eine Komponente besteht dabei
• aus einem einzelnen Gerät, oder • aus einem Piconet oder • aus einem Scatternet. Initial bestehen die Komponenten aus den einzelnen Nodes. Ziel ist es, die einzelnen Komponenten zusammenzufügen, so dass am Ende nur noch ein einziges Scatternet übrigbleibt. Jede Komponente hat hierbei genau einen Leader. • Ist die Komponente ein einzelnes Gerät, so ist dieses der Leader • In einem Piconet ist der zugehörige Master der Leader • In einem Scatternet ist einer der Master der Leader Die Leader bestimmen jeweils die auszuführenden Aktionen und koordinieren die Verschmelzungen der Komponenten. Alle Geräte, die keine Leader sind, verhalten sich passiv. Ein Leader kann seine Rolle verlieren, indem er „zurücktritt“ (retires). Umgekehrt kann einem Gerät die Leaderrolle übertragen werden, wobei immer gilt: Ein Leader ist grundsätzlich Master eines (möglicherweise einelementigen) Piconets. Als Formalismus wird noch für jedes Gerät v die Bezeichnung S(v) eingeführt, welche die Menge aller Slaves von v angibt. Zusätzlich wird die Maximalzahl der aktiven Slaves eines Masters die Variable k statt der Zahl Sieben verwendet, damit die Arbeitsweise des Algorithmus leichter nachvollzogen werden kann. Bei allen Zeichnungen wird k=7 vorausgesetzt. Folgende Bedingungen sind invariant gegenüber dem vorgestellten Algorithmus: • Jeder Leader hat entweder keinen Slave, oder mindestens einen „ungeteilten“ Slave, der nicht Teil eines weiteren Piconet ist. • Jeder Leader hat weniger als k Slaves in seinem Piconet. Invariant bedeutet hier: Diese Bedingungen sind bei Start des Protokolls erfüllt und sind nach jedem Schritt des Algorithmus ebenfalls erfüllt. 4.2. Der Algorithmus Im Folgenden werden die Methoden beschrieben, mit welchen die Scatternet Formation durchgeführt werden soll. Dabei wird so vorgegangen, dass ein Leader u entweder nach anderen Komponenten Ausschau hält, oder einen seiner Slaves auffordert, anderen Leadern auf ihre Suchanfrage zu antworten. Wird eine andere Komponente entdeckt, so werden die beiden Komponenten mittels der Connected Funktion zu einer Komponente vereinigt. Verhalten der Komponenten Im Laufe der Scatternet Formation wenden die Komponenten mehrmals folgenden Algorithmus an: • Mit der Wahrscheinlichkeit p (1/3 < p < 2/3) suchen die Komponenten aktiv nach anderen Komponenten. Dabei führt der Leader u solange INQUIRY aus, bis er eine Antwort einer bis dahin unbekannten Komponente über deren Mitglied v erhält. Der Leader verbindet sich dann mittels PAGE mit v. Daraufhin werden die
beiden Komponenten durch die CONNECTED-Methode zu einer Komponente verschmolzen. • Andernfalls (d.h. mit Wahrscheinlichkeit 1-p) lauscht die Komponente auf Suchanfragen anderer Komponenten. Dabei gibt es zwei Fälle: 1. Leader u hat mindestens einen ungeteilten Slave w: Dann wird w durch u angewiesen, INQUIRY SCAN auszuführen und bei Anfragen anderer Komponenten in PAGE SCAN zu wechseln. 2. Leader u hat keinen ungeteilten Slave. Damit ist |S(u)|=0 (siehe Voraussetzung!) und u ist dazu gezwungen, selber INQUIRY SCAN auszuführen. CONNECTED(leader u, slave v) Diese Methode stellt das Herzstück des Algorithmus dar, da hier die Zusammenlegung der Komponenten stattfindet. Dazu müssen alle möglichen Konstellationen behandelt werden. Man beachte, dass in jedem Fall die geforderten Voraussetzungen (Jeder Leader u mit |S(u)| > 0 hat mindestens einen ungeteilten Slave und |S(u)| < k für alle Leader u) invariant gegenüber den angegebenen Algorithmen sind. Fall 1: v ist selber Leader Dann ist v isoliert, da v ansonsten nicht die SCAN-Methode aufgerufen hätte und u demnach auch keine Verbindung zu v hätte aufbauen können. Fall 1.1: |S(u)| < k Dann ist im Piconet von u noch Platz für ein weiteres Gerät und v kann einfach hinzugefügt werden: v retires Fall 1.2: |S(u)| = k In diesem Fall ist u ausgelastet und gibt einen ungeteilten Slave y sowie seine Leader Rolle an v ab. Dieser ungeteilte Slave existiert nach Voraussetzung. MOVE({y}, u, v) u retires u u y v v y Fall 2: v ist Slave eines anderen Master w Fall 2.1: |S(u) ∪ S(w)| + 1 < k Im Piconet von u ist soviel Platz, dass sämtliche Slaves von w sowie w selber aufgenommen werden können. u wird also Leader und Master aller Nodes vom Piconet von w. Die Piconets werden „verschmolzen“. MERGE(u, v, w)
u w u w v v Fall 2.2: |S(u)| = 1 u übernimmt v von w und fügt sich selber dem Piconet von w hinzu. Daraufhin wird u Leader des so entstehenden Scatternet. MOVE(u, NULL, w) v disconnects from w u w u w v v Fall 2.3: |S(u) ∪ S(w)| + 1 = k Zunächst werden die Piconets wie in Fall 2.1 verschmolzen. Dies kann jedoch nicht so bleiben, da sonst u genau k Slaves kontrollieren müsste. Daher wählt u einen ungeteilten Slave y und übergibt diesen sowie seine Leader Rolle an v. u retires MERGE(u, v, w) MOVE({y}, u, v) v becomes leader u w u w v y v y Fall 2.4: alle sonstigen Fälle u gibt solange Nodes an w ab, bis w keine weiteren Slaves mehr aufnehmen kann (d.h. |S(w)| = k), oder bis die Anzahl der Slaves von u auf 2 gesunken ist. Im ersten Fall wird u für den Rest der Scatternet Formation inaktiv. MIGRATE(u, v, w) u w u w v v
4.3. Erweiterung für dynamische Umgebungen In der tatsächlichen Anwendung eines Scatternets ist es nahezu ausgeschlossen, dass alle Geräte quasi gleichzeitig mit der Scatternet Formation beginnen, oder dass kein Gerät ausfällt. Das beschriebene Protokoll erlaubt bereits die Integration neuer Geräte in das Scatternet, indem diese als Leader starten und dann andere Komponenten entdecken bzw. von diesen entdeckt werden. Einzige Voraussetzung dafür ist, dass der letzte Leader der Scatternet Formation damit fortfährt, nach anderen Geräten zu suchen bzw. seine Slaves anzuweisen, auf Suchanfragen zu reagieren. Einzig der Ausfall von Geräten ist noch nicht vollständig ausgearbeitet, einige grundlegende Gedanken wurden allerdings bereits formuliert: • Bei Ausfall eines Masters kann einer seiner Slaves seine Rolle übernehmen. Falls der Master Slave in einem anderen Piconet war, so wird der neue Master Leader seines Piconet und integriert sich wie beschrieben in das Scatternet. • Falls ein geteilter Slave ausscheidet, so wird der ihm zugehörige Master Leader und integriert sein Piconet wieder in das Scatternet. • Falls ein ungeteilter Slave ausscheidet, ist keine Aktion notwendig, außer dieser Slave war der einzige ungeteilte Slave eines Leaders u. Dies wäre dann der schlimmste Fall, der Leader müsste sich von seinen Slaves trennen, die anderen Master würden wieder zu Leadern und der Rest würde wieder durch das vom Protokoll vorgeschriebene Verhalten ausgeführt. 4.4. Bewertung Dieses Protokoll bemüht sich um eine Minimierung der Anzahl Piconets. Außerdem ist die Rollenzahl für jedes Gerät auf zwei beschränkt. Anzahl an versendeten Nachrichten Dies ist sowohl insgesamt, als auch für jedes einzelne Gerät zu prüfen, da die Zahl der durch ein Gerät verschickten und empfangenen ein direkter Hinweis darauf ist, wie viel Energie ein Bluetooth Gerät bei der Scatternet Formation benötigt. Gerade bei mobilen Geräten wie Mobiltelefonen oder PDAs ist ein sparsamer Umgang mit Energie sehr angebracht. Dabei lassen sich drei verschiedene Nachrichtentypen unterscheiden: • Inquiries – Bluetooth INQUIRY und INQUIRY RESPONSE Pakete • Pages – Bluetooth PAGE und PAGE RESPONSE Pakete • Sonstige Nachrichten (z.B. Slave informiert seinen Leader über eintreffendes INQUIRY Paket) Simulationsergebnisse belegen, dass die Gesamtzahl der versendeten Nachrichten linear mit der Anzahl der Nodes steigt, was zu einer Größenordnung von O(N) führt. Daraus folgt auch, dass der durchschnittliche Energieverbrauch eines einzelnen Gerätes während der Scatternet Formation nicht mit der Größe des Scatternets steigt.
Die Anzahl der Nachrichten, die ein einzelnes Gerät verschicken muss, liegen in O(log N). Der worst case trifft dabei genau den Leader, der als letzter zurücktritt. Laufzeit Zunächst stellt sich die Frage, wie viele Runden der Algorithmus benötigt, um das Scatternet zu etablieren. Simulationen liefern einen Wert von 1,2log N + 2, was eine Zeitkomplexität von O(log N) rechtfertigt. Die Dauer der einzelnen Runden hängt von dem eingestellten Timeout-Wert ab. Dieser sollte der Anzahl der Nodes angepasst sein. Simulationen haben gezeigt, dass ein Wert von 1,4 Sekunden für jede Runde bei 32 Nodes ausreichend ist. 5. Zusammenfassung Alle der vorgestellten Protokolle erfüllen ihre Aufgabe, eine Menge von isolierten Bluetooth Geräten zu einem Scatternet zu verbinden. Dabei wurden verschiedene Schwerpunkte gesetzt. Es ist schwer zu sagen, welcher der beschriebenen Ansätze der beste ist, für eine solche Aussage kommt es auf die Anforderungen an. Das Distributed Blueroot Construction Protocol eignet sich vor allem für sehr große Netze, die über einen größeren räumlichen Bereich angesiedelt sind. Das BTCP hat einen theoretischen Laufzeitvorteil gegenüber dem Komponenten-basierten Protokoll, allerdings funktioniert BTCP nur korrekt bei paarweiser Erreichbarkeit der Geräte. Als für den praktischen Einsatz am geeignetsten scheint das Komponenten-Protocol zu sein, vor allem wegen der Möglichkeit, neue Geräte in ein bereits vorhandenes Scatternet zu integrieren bzw. Geräte ausscheiden zu lassen, ohne dass das gesamte Netz zusammenbricht. Allen vorgestellten Protokollen ist gemein, dass sie noch keine endgültige Lösung darstellen, sondern weiterentwickelt werden müssen, um einen praktischen Einsatz zu ermöglichen. Die Bluetooth-Spezifikation erwähnt Scatternet-Unterstützung nur am Rande, eine tatsächliche Lösung steht also noch aus. 6. Quellen [1] The Bluetooth Radiosystem, Jaap C. Haartsen, Ericsson Radio Systems B.V., Februar 2000 [2] BLUETOOTH: A new radio interface providing ubiquitous connectivity, Jaap C.Haartsen, Ericsson Radio Systems B.V. [3] Bluetrees – Scatternet Formation to Enable Bluetooth-Based Ad Hoc Networks, Gergely V. Záruba/Stefano Basagni/Imrich Chlamtac [4] Distributed Topology Construction of Bluetooth Personal Area Networks, Theodoros Salonidis/Pravin Bhagwat/Leandros Tassiulas/Richard LaMaire
[5] Performance of a New Bluetooth Scatternet Formation Protocol, Ching Law/Amar K. Mehta/Kai-Yeung Siu, Massachusetts Institute of Technology [6] Performance Aspects of Bluetooth Scatternet Formation, Gy.Miklos/A.Racz/Z.Turanyi/A.Valko,P.Johanson, Traffic Analysis and Network Performance Lab, Ericsson Research, Budapest
Sie können auch lesen