# Signal Stability-based Adaptive Routing Protocol

Das Signal Stability-based Adaptive Routing Protocol (SSA) versucht, stärkere Routen basierend auf Signalstärke und Ortsstabilität der Knoten, zu finden. SSA basiert teilweise auf DSR. Das Hauptziel von SSA ist, dass nur Routen gewählt werden, welche stärkere Verbindungen aufweisen.
SSA ist ebenso wie das Associativity-Based Routing Protocol (ABR) beacon-basiert, was bedeutet, dass die Signalstärke der Beacons (spezielle Nachrichten) gemessen wird, um die Verbindungsstabilität zwischen den Knoten zu messen. Die Ortsstabilität definiert Pfade, die schon längere Zeit existieren. Mit Hilfe der Verbindungsstabilität und Ortsstabilität werden die Verbindungen als stabil oder instabil klassifiziert.
Die Signalstärke der Nachbarknoten wird in eine Tabelle namens SST (signal stability table) gespeichert. Jeder Knoten erneuert permanent seine SST mit Hilfe der erhaltenen Beacon-Pakete. Die Informationen aus der SST werden genutzt, um die Route-Request-Nachrichten zum Ziel weiterzuleiten, aber nur über stabile Verbindungen.
Ein Unterschied zwischen SSA und ABR besteht darin, dass Knoten Route-Request-Nachrichten nur dann weiterleiten, wenn sie diese über eine stabile Verbindung erhalten haben. Andernfalls werden die entsprechenden Pakete verworfen. Des Weiteren verwendet SSA nur eine Metrik: die Signalstärke zwischen den Knoten.

## Aufbau einer Route

Bevor SSA zum Einsatz kommt, überprüft der Initiator, ob in seinem Route-Cache eine Route zum Ziel vorhanden ist. Nur wenn keine solche Route existiert, kommt SSA zum Einsatz.
* Zuerst wird das Netzwerk mit Route-Request-Paketen geflutet.
* Wenn nun ein Knoten ein solches Paket erhält, überprüft er ob ihm das Paket über eine stabile Verbindung geschickt wurde. Alle Pakete, die er über eine instabile Verbindung oder doppelt erhalten hat, werden verworfen. Im Route-Request-Paket wird die Adresse eines jeden Zwischenknotens der bisherigen Route gespeichert (also dieses vor jedem Weitersenden modifiziert).
* Wenn das erste Route-Request-Paket beim Ziel über eine als stabil eingestufte Verbindung ankommt, sendet das Ziel sofort ein Route-Reply-Paket, um der Quelle die ausgewählte Route mitzuteilen. Das Route-Reply-Paket wird über denselben Pfad zurückgeschickt.

## Aufrechterhaltung einer Route

* Sofort wenn eine Verbindung unterbrochen wird, senden die beiden betroffenen Zwischenknoten eine entsprechende Nachricht an den Startknoten und den Zielknoten.
* Der Startknoten flutet das Netzwerk wieder mit Route-Request-Nachrichten, um eine andere stabile Route zu finden.
* Ältere Routen werden nur gelöscht wenn das Datenpaket mit der Routeninformation den nächsten Knoten nicht erreicht.
* Wenn kein Weg über stabile Verbindungen gefunden werden kann (und nur dann), werden auch instabile Verbindungen genutzt.

## Vorteile

Der Hauptvorteil von SSA besteht darin, dass dieses Protokoll mehr stabile Routen zu seinem Ziel findet als DSR. Der kürzeste Pfad ist nicht unbedingt auch der beste. Mit der Überprüfung der Signalstärke via Beacons kann SSA eine stabile Route finden.

## Nachteile

Unterbrochene Verbindungen werden lokal entdeckt, aber nicht repariert. Mehrfaches Fluten des Netzwerks mit Route-Request-Nachrichten schränkt die Bandbreite des Netzwerks ein. Außerdem werden Route-Request-Pakete über schwache Verbindungen nicht berücksichtigt, sondern direkt verworfen.