[Berlin-wireless] [technix] Bitratenkontrolle, traffic-mengen- und radio-aware routing

Marco Tidow martidow
Sa Mär 24 23:54:04 CET 2007


Hallo Rolf,

On Fri, Mar.23. 07:52 +0100, Rolf Pfeiffer wrote:
> Ganz ohne Boshaftigkeit - ich glaube, du siehst die Welt aus der 
> Kopfstand-Perspektive. Vielleicht bin ich es auch, der auf dem Kopf steht - 
> ich schreib mal, wie es für mich aussieht.
> 
> Konkret hast du eine Vorstellung, wie Netzstruktur und Links sein SOLLTEN und 
> versuchst das von Oben nach Unten auf allen Layern "durchzudrücken" - 
> angefangen von der Einteilung in wichtige und unwichtige Links, massiven 
> Einsatz von Filtern und LQs, Manipulationen am TCP-Stack, bis zu fixen 
> Bitraten.
> 
> Du möchtest also ein geplantes, strukturiertes, kontrolliertes Netz. Das ist 
> aber von einer Person in einem sich ständig wechselndem Umfeld gar nicht zu 
> leisten und führt irgendwann zwangsläufig zum Kollaps. (Sama ??)

aehm, schreibst Du das auf meinen beitrag?  zu allem ein klares NEIN.
aber erstmal der reihe nach:


> Auf die Füße gestellt sieht das aber so aus: Die physikalischen Bedingungen 
> sind ersteinmal gegeben, und ändern sich ständig (gedrehte Antennen, lose 
> Stecker, neue Nodes...)
Ack.


> Die Bitratenautomatik soll dort das Mögliche herausholen, so gut oder schlecht 
> sie es vermag - und basierend auf diesen Gegebenheiten soll der Routingdaemon 
> seine Entscheidungen treffen - nicht umgekehrt.

genau betrachtet, liefern batman oder olsrd derzeit eine aussage darüber, wiegut
broadcast-packets von einem zum nachbar-node durchgehen, ohne RTS und TACK (gibt´s
bei broadcasts ja nicht), und mit der mode-typischen basic-rate, also 1M oder 6M.

allein der CSMA/CA (carrier-sense, multiple-access / collison-avoidance) und
contention-window back-off auf elementarstem MAC-layer hindert nodes, diese
broadcasts rauszusenden.  trotzdem passieren auch hierbei kollisionen (wegen
hidden-node szenarien).

die bit-raten automatik spielt hierbei überhaupt keine rolle, sie wirkt nur für
unicast-packets (noch genauer: auch nur ihren payload-anteil).

bei der tx-power automatik bin ich mir dagegen sicher, daß sie auch broadcasts
betrifft. (auf broadcom-radio´s mit binary-wl driver bezogen)
sobald man sie ausschaltet, also einen festen wert != 255 vorgibt, verschwinden
artefakte wie sporadisch einseitige LQ==0.00 .


> Allen Unkenrufen zum Trotz macht der olsrd diesen Job gar nicht schlecht, wenn 
> man ihn nur läßt. Jedenfalls waren viele Probleme auf unabgesprochene (und 
> zum Teil vergessene) LQ- und Filtereinstellungen, Zwangs-Default-Routen uä. 
> zurückzuführen und verschwanden auf wundersame Weise, sobald der ganze foo 
> gelöscht war.

Ack.  aber das setzte ich sowieso voraus.  mit "ff_lqmult" _kann_ man eine menge
störungen durch temporäre, mobile nodes raushalten, muß das aber homogen auf
allen fest-installierten routern durchziehen (<fixe-nodes>:1.0;default:0.1)


> >  - das raten switching muß langsamer ablaufen, als das routing-proto für die
> >   anpaßung der routen benötigt, bzw. braucht nicht schneller zu sein
> Kopfstand - das raten-switching soll so schnell sein, wie sich die phys. 
> Bedingungen ändern. Der Routingdämon muß entscheiden, ob er einen Link mit 
> wechselner Qualität beibehalten will.

kein kopfstand.  derzeit hat der routing-daemon bei automatischer tx-bit-rate
fast keine info zu vermuten, wie gut ein link tatsächlich sein wird.  s.o.,
er bewertet _broadcasts_, die mit _fixer_ + niedriger bit-rate versandt werden.

wenn ich die reale unicast bandbreite eines links mit in die routing-entschei-
dung einbeziehen will, muß ich dem routing-daemon die nötige zeit lassen, auf
schrittweise änderungen der tx-rate (<= phys. bedingungen) richtig zu reagieren.
falls die bedingungen sich schnell ändern, muß ich trotzdem ein "schwingen" der
beiden regel-kreise dämpfen.

nur für den fall, das unicasts auch mit einer der broadcast-rate nahezu
identischen bit-rate + modulations-typ versendet werden, sagt der LQ etwas
der realität nahe kommendes aus, taugt die routing-entscheidung derzeit was;
und genau dann, ja, _dann_ funktioniert das routing _super_ gut.

wahrscheinlich resultiert die hohe latenz-schwankung in links aus dem umstand,
daß nachdem ein packet einen weg eingeschlagen hat, sich die betreffenden nodes
langwierig und fast packet-weise neu darauf "zurücknehmen" müssen, anstelle
mit 54M doch nur mit einer der broadcast-rate vergleichbar niedrigen unicast-
rate zu senden.

aber auch wiederum nur, wenn unicasts ebenfalls auf RTS verzichten, sonst kommt
zusätzliche unbestimmtheit ins spiel, abgesehen von der anfälligkeit der RTS-
steuerung für sich nicht ebenfalls RTS-bedienende nachbar-netze (was den
typischen fall darstellt, wahrscheinlich zu 99%, weil hersteller-vorgabe).


> >  - auswirkungen der in kauf genommenen 50% packet-loss auf andere links?
> >    optimiert dies zwangsläufig auch die overall-performance im mesh?
> Je schneller die Übertragung (egal bei wieviel Packetloss), desto kürzer die 
> notwendige Zeit desto weniger Beeinträchtigung anderer Links.
> 
> Schnelle Übertragung braucht aber hohe Pegel und hat deshalb eine höhere 
> Störreichweite. Steht aber auf einem anderen Blatt (optimale Senderadien).

eben, deshalb mein fragezeichen.  von ihrer rolle innnerhalb der sich dyna-
misch ergebenden topologie der nodes "weiß" die lokale bit-raten selection
nichts.

intensiver traffic zwischen zwei nahen nodes muß nicht aus einem fern-link
dahinter stammen, kann von lokalen clients der beiden stammen; und zöge damit
den fern-link erheblich in mitleidenschaft.


> >  - untersuchungen in [6] fehlt komponente, notwendige links aufrecht zu
> >    erhalten, oder ausgefallene zu ersetzen, die aber ein ganz wesentliches
> >    element von mesh-networks darstellt
> Kopfstand - widerum Job des Routingdämons - eine Bitratensteuerung kann nur 
> das phys. Mögliche bestmöglich nutzen.

nö:  eine bitratensteuerung hat das potential, dem routing-daemon selbst
essentielle links weg-zuoptimieren ;-)
sie muß deshalb auf die aktuelle routing-konstellation ihrer node reagieren,
letzteres vermeiden.

> > was man _jetzt_ machen könnte, ohne eine elegantere lösung zu blockieren:
> >    trennung von routing-algo  und link-layer optimierung...
> Ack. 
> 
> >   (Companion)...der die seitens des routing-daemons getroffene
> >   nachbar==link-entscheidung optimiert, d.h. die bit-rate soweit
> >   hoch-fährt, daß die minimal notwendigen links noch gut funktionieren ...
> Kopfstand - der Routingdaemon kann die Entscheidungen erst treffen, wenn die 
> Linkqualität ermittelt (und evtl. optimiert) ist. Dasselbe Problem hat 
> übrigens das Rostocker Script zur Sendeleistungs-Anpassung

;-) henne-ei problem: die bit-rate optimierung muß wissen, 

 1) ob es überhaupt derzeit einen nachbarn gibt, sonst runter mit den raten
    und ggfs. sogar rauf mit der sende-leistung, damit der routing-daemon zum
    zug kommen kann

 2) welche nachbarn die bis dato vom routing-daemon als die besten eingestuft
    wurden, um _dann_ genau so weit bit-rate und sende-leistung zu verändern,
    daß sich ein minimum an sendeleistung + maximum an lokaler unicast bit-rate
    ergibt  (=> hohe lokalität, Du nennst es minimal nötiger sende-radius)

    ABER, ohne ein absolutes minimum notwendiger links dabei einzubüßen,
    denen richtung inet-gateway einerseits,
    solche zu anderen node-häufungen aber _auch_ (anhand der 2-hop neigbours,
    die mal vorhanden waren)

 beides erfährt sie aus der routing-table + abfrage der ermittelten LQ zu
 unmittelbaren nachbarn...

 3) und sie muß berücksichtigen, wenn z.b. olsr-lose gesellen in der nähe
    auf zuwendung angewiesen sind, ob sie sich ggfs. selbst entsprechend
    "weit-sichtig" verhalten sollte


> >  info über link-layer anderen nodes via routing-proto message type bekannt
> >  machen ...
> Ack. Ich wünsche mir besonders die Empfangspegel.
> 
> >   (? gateway-bandwidth als virtuelle node im inet behandeln ?  ;-)
> Ack. Dazu braucht es LQ/NLQ für die Verbindung ff-gateway-node -> inet. Sollte 
> auch mit olsr gehen.
> 
> >   inidviduelle bit-raten behandlung von nachbarn aufgeben,
> >   dafür nachteile der aktuellen rate-automatik loswerden 
> NAck! Das wäre ein zu hoher Preis. Stell dir einen Knoten vor mit 2 Nachbarn, 
> jeweils 100m u. 1km entfernt. Entweder du hängst den einen ab oder bremst den 
> anderen aus. Und wenn ein Knoten dazukommt oder wegfällt, sieht wieder alles 
> ganz anders aus. Kopfstand.

tja, an dieser stelle greife ich mal Deine eingangsfragen nach meiner
intention bzgl. ob top-down topologie-planung etc. wieder auf.

punkt 2 des henne-ei problems oben fragt eben nicht nur, ob eine default-route
zum nächsten inet-gateway existiert.  schwieriger, aber IMO im sinne eines
"stadt-weiten intranets" ebenso gefordert ist, innerhalb einer node-gruppe
mit untereinander gut und schnell funktionierender links

  1. festzustellen, daß man eine insel bildet und

  2. zu probieren, ob man wirklich allein ist, oder ob´s
     auch andere erden im universum gibt ("ich will hier raus" ;-)

und eben _deshalb_ _muß_ mindestens ein knoten runter mit der rate, und rauf
mit der sende-leistung, bis entweder feststeht:

   sorry, wir funken auf helgoland  => no chance to berlin  ;-)
     (wir gucken aber alle halbe stunde, ob helgoland nicht vllt. doch
      neben berlin liegt!)

   oder welcher der insel-gruppe mit geringsten einbußen eine fern-brücke
   für die ganze gruppe schlagen kann


nochmal:
letzteres passiert derzeit bei auto-bitrate überhaupt nicht.  man bleibt
einfach insel.  nix mit stadtweitem intranet bislang oft, obwohl in der
technik beim derzeitigen node-ausbau meistens eben doch mehr brauchbare links
drinstecken, mehr leute einbezogen werden könnten.


dieser einwand mag manch einen zu der vermutung bringen, ich wolle "das netz
top-down durchorganisieren".  nö.  aber inseln sind blöd, wenn sie zwar
brücken haben, diese aber (automatisch) nur halb ausfahren.



sehe uns derzeit eher so:

es gibt z.z. die einen, die stellen autobahn-brücken in die berliner wlandschaft.
das ist nützlich.  man kann mit einer diskette bis zur nächsten brücke latschen,
eine leiter anstellen, oben mit dem ferrari in null-zeit zum anderen ende in
100m entfernung düsen, wieder die andere leiter runter, und zu fuß die zwei
kilometer zur nächsten autobahn-brücke durch den matsch latschen.

ich bevorzuge dagegen, feldwege mit kopfstein-pflaster der marke
"1M" oder "2M" anzulegen, und die brücken-enden auf bordstein-niveau runter-
zubrechen.  so kommt man wenigstens per fahrrad voran, ohne abzusteigen;
auch wenn ich kopfstein-pflaster persönlich hasse.

quer-verkehr an kreuzungen seitens der firma "managed-mode", der frech alle
ampeln der polizei RTS ignoriert, bringe ich schon mal mit ganz kleinen
steinchen-fragmenten in´s hoppeln, um zwischen seinen breiten reifen einfach
flink hindurch zu huschen.  auf RTS pfeife ich mittlerweile ebenso, auch wenn´s
manchmal weh tut.

tja:

die ferrari-feti´s mögen mich nicht, zuviel fuß-volk? sorry : shit happens
auch to your feet, if you wanna be part of this concert.

die firma "managed-mode" hat mittlerweile angst um ihre blöden video-konserven,
mag die dosen auch nicht nach jeder kreuzung wieder neu sortieren und ist auf
andere straßen ausgewichen.


the end  ;-)


o.k., im zweifel zugunsten eines durchgängigen netzes, um es kurz zusammen
zufassen, selbst wenn´s erstmal langsam läuft.  anhand dessen zeigen sich
dann automatisch die strecken, die per antennen-technik gepuscht, das ganze
netz flüssiger machen können, that´s all.



> >     -> in hinsicht auf mögliche nachbar-anzahl evtl. sogar einfach reeller
> >     (wg. beschränkung gleichzeitig individuell verwalteter link-param. in 
> >     broadcom-radios) 
> Wieviel verwaltet er denn? Eigentlich wollen wir sowieso eine begrenzte 
> Nachbar-Zahl - ich zumindest.

nix genaues ahnt niemand, die rede war von 4 individuell gleichzeit in chipset-
registern (oder firmware-daten-strukturen?) möglichen link-parameter-sets,
laut Sven-Ola, nach welcher Quelle?


> Die Bitratenautomatik vorhandener Treiber können wir evtl. austricksen. Das 
> Hauptproblem bei Broadcomm liegt (in meinen Augen) darin, daß er bei 
> Nichtaktivität auf viel zu hohe Bitraten schaltet - und dann eine Weile 
> braucht, bis das erste Paket durchkommt.

Ack.

> Wenn wir alle paar Sekunden zu jedem Nachbarn (wir wollen nur wenige) ein 
> Unicast-Paket schicken (das sehr kurz sein kann), können wir das vielleicht 
> verhindern. Und wenn wir clever sind, benutzen wir das gleich zur 
> Bandbreitenbestimmung. Scheint mir jedenfalls den Versuch wert :-)

Ack.  arping´s reichen schon.

> Mit batman haben wir ein Protokoll, das Linkeigenschaften und Routing sehr eng 
> verknüpft - und gerade daraus seine elegante Einfachheit zieht. Ob sich dort 
> die Bandbreite einzubeziehen lässt, ohne den Algorithmus über den Haufen zu 
> werfen ???

da bin ich leidenschaftslos, wer zuerst das nötige macht.

> Gruß Rolf
Gruß, marco


_______________________________________________
Berlin mailing list
Berlin at olsrexperiment.de
https://www.olsrexperiment.de/cgi-bin/mailman/listinfo/berlin





Mehr Informationen über die Mailingliste Berlin