Skip to content

Route Reply

Marvin Rausch edited this page Apr 15, 2021 · 1 revision

Route Reply wäre unser ACK Paket (Flag=4)

source flag ttl hops endNode nextNode

Format der Nachricht in Byte (x = 1 Byte)

xxxx x x x xxxx xxxx

Die Route Reply Nachricht geht als Broadcast an alle Knoten im Empfangsbereich.

  • | ist das Trennzeichen das vor und nach jedem Feld eingefügt wird.
  • Source enthält die Adresse des Anfragestellers der Rout im vierstelligen Format (zB. 0131)
  • Flag enthält den Integer Wert 4
  • TTL enthält die noch verbleibenden hops bis die Nachricht verworfen wird im einelligen Format
    • Startwert = 5
    • jeder sendende Knoten subtrahiert 1
    • bei 0 verarbeitet der Knoten das Paket, aber verwirft es danach. (Schliesst auch den Fall aus, dass die end_node das lang erwartete Paket ungesehen verwirft.)
  • hops Feld beinhaltet den Wert als signed integer die das Paket schon zurückgelegt hat im einstelligen Format
    • Der ursprüngliche Absender trägt der Startwert = 0 ein.
    • jeder empfangende Knoten addiert dem Wert beim Senden 1 hinzu.
  • endNode beinhaltet die Adresse des Zielknotens der Route
  • nextNode beinhaltet die Adresse des vorherigen Knotens von dem die RouteRequest Nachricht kam

Erklärung source/endNode

Beispiel

Die Bezeichnungen für die Adressen sind nur Platzhalter für eine bessere Lesbarkeit. Kn1 entspricht also 0131.

Knoten6 hat ein Route Request von Knoten1 erhalten. Knoten6 soll nun Kontakt mit Knoten1 herstellen.

  1. Knoten6 schickt per Broadcast ein Route Reply

Knoten 6 weiß anhand seines Eintrags das Kn5 ein Nachbar ist also sieht die Nachricht die Kn6 als Broadcast sendet so aus:

LR,Kn1,{len},|Kn1|4|5|0|Kn6|Kn5|

source flag ttl hops endNode nextNode
Kn6 4 5 0 Kn1 Kn5

Knoten 5 weiß jetzt das Knoten 6 ein Nachbar ist und trägt in seine Tabelle ein:

Zielknoten Nachbar Hops
Kn1 Kn2 2
Kn6 Kn6 1 neu

Knoten5 holt sich aus der Tabelle den Nachbarknoten (nextNode), passend zu dem Zielknoten (source)

  1. Knoten5 wartet eine zufällige Zeit zwischen 0 und 5 Sekunden und schickt dann per Broadcast ein weiteres Route Reply

LR,Kn1,{len},|Kn1|4|4|2|Kn6|Kn2|

source flag ttl hops endNode nextNode
Kn6 4 4 2 Kn1 Kn2

Knoten2 erhält diese Nachricht und trägt die Verbindungsinformationen in die Routingtabelle ein:

Zielknoten Nachbar Hops
Kn1 Kn1 1
Kn6 Kn5 2 neu
  1. Knoten2 eine zufällige Zeit zwischen 0 und 5 Sekunden und schickt dann per Broadcast ein weiteres Route Reply

LR,Kn1,{len},|Kn1|4|3|3|Kn6|Kn1|

source flag ttl hops endNode nextNode
Kn6 4 3 3 Kn1 Kn1

Nun erhält Knoten1 die Nachricht und trägt in die Routingtabelle ein:

Zielknoten Nachbar Hops
Kn6 Kn2 3

Da endNode==1weiß Knoten1, dass die Route Reply das Ziel erreicht hat und nicht mehr weitergeleitet werden muss.

Jetzt hat auch Knoten 1 die Bestätigung das Knoten 6 über Knoten 2 zum Preis von 3 Hops erreichbar ist (über Knoten 3 könnte der Knoten 6 ebenfalls mit 2 Hops erreicht werden.)

Für die alternative Route hätten wir einen zweiten Eintrag:

Zielknoten Nachbar Hops
Kn6 Kn3 3
Clone this wiki locally