Size: 2144
Comment:
|
Size: 2444
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)}}}'', oppure il blocco precedente, oppure il nodo che ha ricevuto l'ETP. 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[0][1][0]}}} 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}}} è 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. |
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 è 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.
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.
flag = 1 # oppure 0