• No results found

3.4 Security in WSN

4.1.2 Node Communication

As mentioned above in ESTR only the node that holds the token receives mes- sages from neighboring nodes. After expiration of the token holding time (T HT ) the current node A has to hand over the token to its next ring neighbor B. In order to be sure that B is awake and able to receive the token, A waits for a Midle message from B. If A receives this messages in the time of TwaitM ax it forwards the token to B. The time TwaitM ax is two times longer than the maximum sleep period of the nodes TsleepM ax to ensure enough time for token hand-over.

If node B doesn’t receive the token after sending Midle, it repeats the Midle mes- sage. If the token is still missing after TwaitM ax, B stops sending Midle assuming that its predecessor failed. On the other side node A will only go asleep when B stops to send the awake message Midle ensuring that the token is received correctly. Through this secure transmission a token can only be lost if the to- ken holder fails or if the token holder cannot reach its neighbor in TwaitM ax. In both cases the process of token recovery is the same. If the token could not be transferred in the designated time, either the token holder or the token expect- ing node will induce the dissolution and then the reorganization of the ring by sending respective messages. If the network consists of multiple smaller rings the

4.1 The ESTR Protocol 31

reorganization is executed with only few messages.

Nevertheless delay or failure in communication can lead to the case that more than one token can exist in the ring. In order to solve this problem each token has two numbers: the sequence number (SN) and the generation sequence number (GSN). SN is used to count the number of passed nodes. GSN can only be increased by the root and counts the number of rounds. A node deletes all tokens with a SN or GSN smaller than the last sent token. The root which can only change GSN , deletes all multiple tokens.

Assuming that there is no node failure and the token is transferred correctly from A to B, the communication can go on. In this case, node A sends its data to B, since B as the new token holder is now allowed to receive data. B acknowledges each received data packet by sending an ACK message. Figure 4.3 describes the message exchange.

3 Das ESTR-Protokoll

Errichtung einer speziellen Struktur wie den eulerschen Kreis ausgegeben werden

m¨ussen.

Weiterhin kann ¨uber die maximale Anzahl an Knoten in einem Ring die Variante

mit mehreren Ringen an die Variante mit einem Ring angen¨ahert werden.

Bei der Implementierung mit wenigen Knoten ist die Verwendung eines einzigen

großen Ringes von Vorteil, da im Regelfall kleine Ringe eine Erh¨ohung der Nach-

richtenkollisionen bedeuten.

Bei einer großen Anzahl an Knoten allerdings steigt die Latenz bei einem einzigen

Ring st¨arker als bei der Verwendung mehrerer Ringe und es kann zum ¨Uberlaufen in

den Nachrichtensendepuffern kommen. Ob nun ein großer Ring oder mehrere kleine

Ringe f¨ur die Implementierung verwendet werden, ist abh¨angig von der Anzahl an

Knoten in dem Netzwerk, aber auch von der Daten¨ubertragungsrate.

3.4 Nachrichtenaustausch

Knoten A ist im Besitz des Token f¨ur seinen Ring und will es an seinen Nachfol-

ger Knoten B weiterreichen. A wartet dann, wie bereits beschrieben, auf die M

idle

Nachricht von B, wie in Bild 3.3 zu sehen. Sobald diese kommt, schickt A das Token.

Sollte B das Token nicht erhalten, wird er versuchen durch erneutes Verschicken

von M

idle

an A das Token zu erhalten. Hat B das Token, wird er auf die Daten von

A warten. Die ankommenden Datenpakete wird B dabei mit einer ACK-Nachricht

beantworten. Schickt A keine neuen Daten mehr, d¨urfen die Knoten an B Nach-

richten schicken, die sich in Nachbarringen befinden.

Abbildung 3.3: Tokenweitergabe bei ESTR-Protokoll

Dazu warten sie nach dem letzten Datenpaket von A eine Zeit zuf¨allig lange Dau-

er, damit ihr Sendewunsch mit den Sendew¨unschen anderen Knoten aus anderen

Ringen nicht kollidiert. Dann schicken sie einen Sendewunsch und - hat B noch

genug Zeit und kein Sendewunsch ist vorher bei B eingegangen - erhalten sie eine

Sendeerlaubnis. Das l¨asst sich mit dem im vorhergegangen Kapitel vorgestellten

RTS/CTS-Verfahren, hier in Bild2.2 gezeigt, verwirklichen.

C ist der Knoten, der Senderecht von B erhalten hat. Die Knoten, die zwar an B

senden wollen, aber nicht die Erlaubnis erhalten haben, horchen das Medium ab,

wann der Datenaustausch zwischen B und C beendet ist, und dann versuchen sie

ihrerseits wieder das Senderecht von B zu erhalten.

Da A außer Funkreichweite von Knoten aus anderen Ringen, die an B senden wol-

len, sein kann, kann es sein, dass diese Knoten das Senden des Token von A nach

34

Figure 4.3: Token hand-over and message exchange

Other nodes from neighbor rings that desire to send data to B, have to wait until A has no more packets to transfer. This initiates the contention-based phase of ESTR. After the last packet of A the other nodes set a random timer before they send a request to B. Node B decides if it has enough time before T HT expires and sends a permission to the first node. This process reflects the RTS/CTS-approach of IEEE 802.11 that is also used in S-MAC and T-MAC. The nodes cyclically change their state during the lifetime in order to react cor- rectly to incoming messages. All possible states and transitions are described in Figure 4.4. After the initial phase all nodes are in the sleep-state except for the root node which generates the token at first. The root is in the state sendToken. As soon as its successor awakes, it changes to the waitToken. After the state sendData a node can either go to sleep or wait for another node in a neighboring ring if it wants to send data to it. In some cases, a node could miss its sleep phase waiting for other nodes and changes directly to the waitToken state. Figure 4.5 shows all sections of the awake phase.

32 Energy-Efficient Communication

3.4 Nachrichtenaustausch B nicht mitbekommen. Deswegen ist es notwendig, dass B bei der ¨Ubergabe des Token selber eine Nachricht, die Midle-Nachricht, verschickt, damit die Knoten aus

anderen Ringen in jedem Fall ¨uber den Zustand von B Bescheid wissen.

Die Knoten wechseln w¨ahrend ihrer Lebenszeit zyklisch in mehrere Zust¨ande ¨uber, damit sie in den jeweiligen Phasen korrekt auf eingehende Nachrichten reagieren k¨onnen. Die m¨oglichen Zust¨ande und ihre ¨Uberg¨ange sind in Bild 3.4 zu sehen. Die Knoten sind anfangs im Zustand sleep, außer einem Knoten A, der das Token hat und der Ringbesitzer ist. Dieser befindet sich im Zustand sendToken. Sobald sein Nachfolger B aufwacht, geht dieser in den Zustand waitToken ¨uber und schickt eine Midle-Nachricht. Sobald B das Token hat, geht B in den Zustand waitData

¨

uber. A dagegen, der nun keine Midle-Nachricht mehr erh¨alt, wechselt in den Zu-

stand sendData ¨uber und sendet nun Daten an B. Sobald A keine Daten mehr zu verschicken hat, geht er schlafen. Hat A noch Daten f¨ur einen oder mehrere Knoten in einem oder mehreren der benachbarten Ringe, wird er seine Schlafphase ganz oder nur teilweise daf¨ur aufgeben und auf das Erwachen des Empf¨angers im ande- ren Ring zu warten.

Hat A seine Schlafphase dadurch verpasst, geht er gleich von sendData in waitTo- ken ¨uber, ansonsten in den Zustand sleep. Knoten B hat das Token und wird nun wie A seinen Zustandszyklus weiter behandeln, also auf die Midle-Nachricht seines

Nachfolgers warten. Die Unterteilungen der Wachphase eines Knotens sind auch in Bild 3.5 zu sehen.

Abbildung 3.4: Zustandsdiagramm der MAC-Schicht bei ESTR

Umso gr¨oßer nun die Ringe sind, umso gr¨oßer ist die Latenz und umso geringer ein m¨oglicher Durchsatz, sollte man von Kollisionen absehen. Diese wiederum sind

35

Figure 4.4: State chart of the ESTR-MAC-level 3 Das ESTR-Protokoll

Abbildung 3.5: Abschnitte der Wachphase bei ESTR

umso h¨aufiger, je kleiner die Ringe sind und umso mehr Ringe es gibt, denn nur der Datenaustausch innerhalb eines Ringes ist synchronisiert.

Außerdem liegen die einzelnen Ringe n¨aher beieinander, je kleiner die durchschnitt- liche Ringgr¨oße ist. Mit der Anzahl an Kollisionen sinkt auch die maximal m¨ogliche Daten¨ubertragungsrate und die Latenz, so dass die Ringgr¨oße eine entscheidende Rolle bei der Effizienz des Protokolls spielt. Die maximale Ringgr¨oße wird - wie im WTRP - vor der Initialisierung des Netzwerkes festgelegt und danach dem Token immer mitgegeben.

Sollte es nur Ringe mit einem Knoten als Teilnehmer geben, so funktioniert das ESTR Ring Protokoll genau wie das Etiquette-Protokoll. Damit ist das ESTR eine Mischung aus dem Etiquette-Protokoll und dem WTRP.

Mit Ausnahme der Initialisierungsphase ist ein Broadcast innerhalb des ESTR nicht sinnvoll, da die meisten Knoten in der Umgebung des Knotens, der den Broadcast verschickt, schlafen.

3.5 Routing

Die Aufgabe des Routings f¨allt nicht in den Bereich des MAC Protokolls, da MAC Protokolle zust¨andig sind f¨ur den geregelten Zugriff auf das Medium und nicht f¨ur die lokale Bestimmung des n¨achsten Kandidaten.

Falls aber die Sensorknoten in einem Ring angeordnet sind, so werden die Pakete einfach ¨uber die Ringstruktur weitergeleitet, bis sie bei dem Adressaten angekom- men sind. Damit ist zus¨atzliches Routing nicht mehr notwendig.

Bei der Netzwerkstruktur, bei der es mehrere Ringe gibt, wird ¨uber dem MAC- Protokoll ein weiteres Protokoll benutzt, das in der Network Layer liegt. Dieses ¨

ubernimmt das Routing zwischen den einzelnen Ringen. Innerhalb eines Ringes werden die Nachrichten weiterhin ¨uber die Ringstruktur weitergegeben.

3.6 L¨ange der Schlafpause

Die L¨ange der Schlafpause ist abh¨angig von der Anzahl an Knoten in dem Ring. Je mehr Knoten in dem Ring sind, desto l¨anger kann der einzelne Knoten schlafen.

36

Figure 4.5: Sections of the awake phase