Ich beschäftige mich momentan ein bisschen mit Routing-Verfahren. Speziell geht es um Routing in Funknetzwerken, wo sich jederzeit neue Klienten einwählen und verschwinden.
Um das ganze besser anschaulich zu verstehen definiere ich einfach mal ein paar Dinge:
- ein Paket mit Informationen ist 100 Bit groß, egal mit welcher INformation es "gefüllt" ist
- die Bandbreite die zur Verfügung steht sind 100 MBit/s
- jeder Klient will je Sekunde 100 Pakete verschicken
=> maximal 1.000.000 Pakete pro Sekunde können übertragen werden.
So wie ich es verstanden habe gibt es verschiedene Prinzipen für kabellose Netzwerke:
1: anmelden an einem Klient, der das zentrale Routing übernimmt
2: alle Klienten kommunizieren untereinander und jeder übernimmt das Routing
Der erste Fall ist relativ langweilig, deswegen geht es im Grunde eigentlich nur um den 2. Fall. Der sieht in etwa so aus:

(Quelle:
Wikipedia)
Zum 2. Verfahren gibt es wiederum mehrere Möglichkeiten die Organisation zu übernehmen, dafür muss aber vorher "festgelegt" werden wer überhaupt dabei ist, sprich mit dem Netzwerk verbunden ist. Dazu sendet jeder jede Sekunde 1 Paket an alle, dass er "dabei" ist, sprich es sind nur noch 99 Pakete zum eigentlichen Informationstransport übrig.
Nun gibt es mehrere Möglichkeiten das Routing zu übernehmen:
Die einfachste Lösung wäre, wenn jeder jede Information einfach an alle weitersendet. Jedes Paket wird also empfangen und auch weitergeleitet. Zusätzlich spaart man sich das Paket, welches die Information der Teilnehmer enthält, weil es jeder alles Empfängt. Leider sinkt die "maximale Anzahl an Paketen unterwegs" und somit auch die "maximale Zahl an Klienten". Damit nicht instantan die komplette Bandbreite verstopft ist, muss nachdem der Empfänger das Paket empfangen hat ein weiteres Paket losschicken worin gesagt wird, dass das Paket nun nicht mehr weitergesendet werden muss. Dieses letzte Paket wird nur 1x weitergeschickt, nachdem es empfangen wurde, wird es ein 2. mal empfangen wird es nicht mehr weitergeschickt. Also werden 3 Pakete insgesammt verschickt, sprich es können nur noch 333.333 Pakete real verschickt werden, vorausgesetzt das Paket wird gleich beim 1. mal empfangen. Ist dies nicht der Fall sinkt die Rate auf (1.000.000)/(3^n), wobei n die Anzahl der Versuche zur Datenübermittlung ist. Bei x Teilnehmern beträgt die maximale Datenübertragungsrate also nur noch (1.000.000)/(x*3^n). Also beträgt die maximale Anzahl an Teilnehmern x(n)=(10000)/(3^n). Bei einem Versuch wären es also 3333 Teilnehmer und schon nur bei 7 Versuchen nur noch 4 Teilnehmer.
Fazit: Keine akzeptable Lösung
Wenn man noch die Information hinzunimmt, wie weit jemand von jemandem entfernt ist kann eine durchaus größere Anzahl an Nutzern erreicht werden. Nun kann man dies wiederum in zwei Verfahren unterteilen. Entweder wird die Information immer zum nächstgelegenen geschicht aber nicht zu dem, von dem die Information kam oder es wird vorher ausgerechnet an wen ein paket geschickt werden muss, damit es den kürzesten Weg nimmt. Empfängt trotzdem jemand ein Paket, welches nicht an ihn gerichtet ist, wird es nicht weitergeleitet.
Nun gibt es noch viele andere Möglichkeiten zu routen. Mein Problem ist, dass es laut Wikipedia momentan mehr als 70 verschiedene Entwürfe für die Kommunikation innerhalb eines Netzwerks gibt. Das sind ein paar viele um sie alle zu kennen, geschweige denn die genauen Unterschiede zu kennen - zumindest momentan auf meinem Wisstensstand.
Im Grunde suche ich eine Möglichkeit mit möglichst vielen Teilnehmern möglichst viele Informationen zu übertragen. Als "zusätzliche Information" ist nur die Empfangsstärke der umliegenden Teilnehmer vorhanden. Kennt jemand so eine Architektur, mit der so etwas möglich ist?