Size: 2444
Comment:
|
Size: 2340
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 31: | Line 31: |
. {{{rem}}} è un'istanza di Rem che indica l'efficienza del link tra il (g)nodo {{{pair}}}''{{{n}}}'' e {{{pair}}}''{{{(n+1)}}}''; se questo {{{pair}}} è l'ultimo del {{{block}}} la Rem si riferisce al link verso il primo {{{pair}}} del {{{block}}} successivo; se questo {{{block}}} è l'ultimo del {{{TPL}}} la Rem si riferisce al link verso me stesso e sarà sicuramente una {{{NullRem}}}. <<BR>> Considera che ad ogni passo percorso dall'ETP il successivo nodo si mette in coda a questa TPL. Il nodo che '''riceve''' un {{{ETP}}} valorizza il REM del link da lui stesso verso il nodo che glielo ha appena trasmesso. Quindi il contenuto di {{{TPL[-1][1][-1]}}} al momento della ricezione di un {{{ETP}}} è sempre {{{NullRem}}}. '''TODO''' verifica. | . {{{rem}}} è un'istanza di Rem che indica l'efficienza del link tra il (g)nodo {{{pair}}}''{{{n}}}'' e {{{pair}}}''{{{(n-1)}}}''; se questo {{{pair}}} è il primo del {{{block}}} la Rem si riferisce al link verso l'ultimo {{{pair}}} del {{{block}}} precedente; se questo {{{block}}} è il primo del {{{TPL}}} la Rem non indica nulla e sarà sicuramente una {{{NullRem}}}. <<BR>> Considera che ad ogni passo percorso dall'ETP il corrente nodo si mette in coda a questa TPL. Il nodo che '''riceve''' un ETP valorizza la Rem del link da lui stesso verso il nodo che glielo ha appena trasmesso. Lo fa costruendo un nuovo {{{pair}}} da accodare al TPL. |
Extended Tracer Packet (ETP)
Come concetto generale, un ETP è un Acyclic Tracer Packet (ATP) che contiene una porzione di una mappa di routes.
Siccome una route è rappresentata da un Tracer Packet (TP) possiamo dire che un ETP è composto da un ATP e un insieme di TP.
Inoltre l'ETP contiene anche un flag di interesse, perché è sottoposto alla "Interesting Information Rule".
Per un maggiore dettaglio dei concetti di Tracer Packet e derivati rimandiamo al documento qspn.pdf.
Dal punto di vista della struttura dati che il programma Netsukuku usa e che i nodi si scambiano, un ETP è:
etp = (R, TPL, flag)
- dove:
R = [L0, L1, L2, L3]
- dove:
Li = [tuple0, tuple1, ...]
- dove:
tuplej = (dst, rem)
- dove:
dst è l'ID di un (g)nodo di livello i di cui abbiamo una route nota all'host che ha spedito l'ETP
rem è l'efficienza della route di cui sopra
TPL = [block0, block1, ...]
- dove:
blockm = (lvl, TP)
- dove:
lvl è il livello a cui si trovano i (g)nodi rappresentati in questo block
TP = [pair0, pair1, ...]
- dove:
pairn = (hop, rem)
- dove:
hop se siamo al livello lvl == 0 è l'ID a livello 0 del nodo rappresentato da questo pair; altrimenti è l'intero netsukuku-ip (vedi la classe Map) del g-nodo rappresentato da questo pair
rem è un'istanza di Rem che indica l'efficienza del link tra il (g)nodo pairn e pair(n-1); se questo pair è il primo del block la Rem si riferisce al link verso l'ultimo pair del block precedente; se questo block è il primo del TPL la Rem non indica nulla e sarà sicuramente una NullRem.
Considera che ad ogni passo percorso dall'ETP il corrente nodo si mette in coda a questa TPL. Il nodo che riceve un ETP valorizza la Rem del link da lui stesso verso il nodo che glielo ha appena trasmesso. Lo fa costruendo un nuovo pair da accodare al TPL.
flag = 1 # oppure 0