Differences between revisions 7 and 22 (spanning 15 versions)
Revision 7 as of 2015-01-09 12:14:52
Size: 1831
Editor: lukisi
Comment:
Revision 22 as of 2016-03-12 16:15:57
Size: 4632
Editor: lukisi
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
 * un demone (ntkd) che si occupa di rilevare i vicini e implementare il protocollo di routing;
 * un resolver di nomi (libnss_andna.so) agganciato al [[https://en.wikipedia.org/wiki/Name_Service_Switch|Name Service Switch]];
 * un server (dns-to-andna) che traduce le richieste DNS in richieste ANDNA;
 * un tool di risoluzione nomi (ntk-resolv) che interroga direttamente il database ANDNA;
 * alcune librerie di supporto.
 * Un demone (ntkd) che svolge le seguenti mansioni:
  * Rileva i vicini.
  * Comunicando con i vicini implementa il protocollo distribuito di routing.
  * Assegna gli indirizzi al nodo e mantiene le tabelle di routing del kernel.
  * Svolge il ruolo di server ANDNA, accedendo al database distribuito dei nomi.
  . '''Nota''': le mansioni del demone ntkd sono meglio illustrate all'inizio del documento [[Netsukuku/ita/docs/DemoneNTKD/AnalisiFunzionale|analisi funzionale]].
 * Un resolver di nomi (libnss_andna.so) che interroga il server ANDNA su richiesta delle applicazioni che girano nel nodo, le quali lo richiamano in modo del tutto trasparente tramite l'uso del [[https://en.wikipedia.org/wiki/Name_Service_Switch|Name Service Switch]].
 * Un server (dns-to-andna) che traduce le richieste DNS in richieste ANDNA e interroga il server ANDNA. Questo è utile per le applicazioni che vogliono interrogare direttamente il DNS senza passare attraverso il NSS. Permette inoltre di dare supporto ai Sistemi Operativi che non hanno un NSS o per i quali la suite Netsukuku non fornisce ancora un'applicazione nativa.
 * Un tool di risoluzione nomi (ntk-resolv) che interroga direttamente il server ANDNA. Può essere utile durante un troubleshooting in una rete.
 * Alcune librerie di supporto.

Oltre al software suddetto, per il corretto funzionamento di un nodo nella rete Netsukuku il sistema operativo deve soddisfare alcuni requisiti. Nel documento [[Netsukuku/ita/docs/Sistema/Requisiti|Requisiti]] prendiamo in esame questi requisiti annotando per ogni sistema operativo quali sono le impostazioni da configurare per soddisfarli.
Line 11: Line 18:
Per una descrizione formale del ruolo del demone ntkd in una rete Netsukuku si legga la relativa [[Netsukuku/ita/docs/AnalisiFunzionale|analisi funzionale]]. Per una descrizione formale del ruolo del demone ntkd in una rete Netsukuku si legga la relativa [[Netsukuku/ita/docs/DemoneNTKD/AnalisiFunzionale|analisi funzionale]].

La logica delle operazioni svolte dal demone ntkd è stata suddivisa in moduli, ognuno dei quali si occupa di un determinato aspetto. Essi sono isolati, indipendenti gli uni dagli altri. Questo rende più facile verificarne il corretto funzionamento e apportare modifiche o correzioni.

Poi ci sono alcune librerie che offrono funzionalità che vengono usate da quasi tutti i moduli. Su queste librerie tutti i moduli hanno una dipendenza.

 * '''tasklet-system'''. Con una dipendenza su questa libreria, un modulo può usare un generico sistema di tasklet (thread cooperativi) senza dover conoscere la specifica implementazione che il programma adotterà. [[Netsukuku/ita/docs/Librerie/TaskletSystem|TaskletSystem]]
 * '''ZCD'''. Questa libreria formalizza e realizza il passaggio di messaggi tra nodi della rete, anche quando ancora i nodi non hanno configurato le loro interfacce di rete con indirizzi e parametri concordati. [[Netsukuku/ita/docs/Librerie/ZCD|ZCD]]
 * '''ntkd-common'''. Questa libreria contiene alcune classi e funzioni che sono note a più di un modulo. [[Netsukuku/ita/docs/Librerie/Common|Common]]
Line 14: Line 29:
||<style="text-align:left;vertical-align:top" |2>Neighborhood ||[[Netsukuku/ita/docs/ModuloNeighborhood/AnalisiFunzionale|Analisi funzionale]] ||
||[[Netsukuku/ita/docs/ModuloNeighborhood/Appunti|Appunti]] ||
||<style="text-align:left;vertical-align:top" |6>QSPN ||[[Netsukuku/ita/docs/ModuloQSPN/AnalisiFunzionale|Analisi funzionale]] ||
||[[Netsukuku/ita/docs/ModuloQSPN/Appunti|Appunti]] ||
||<style="text-align:left;vertical-align:top" |3>Neighborhood ||[[Netsukuku/ita/docs/ModuloNeighborhood/AnalisiFunzionale|Analisi funzionale]] ||
||[[Netsukuku/ita/docs/ModuloNeighborhood/DettagliTecnici|Dettagli Tecnici]] ||
||[[Netsukuku/ita/docs/ModuloNeighborhood/Requisiti|Requisiti]] ||
||<style="text-align:left;vertical-align:top" |
2>Identities ||[[Netsukuku/ita/docs/ModuloIdentities/AnalisiFunzionale|Analisi funzionale]] ||
||[[Netsukuku/ita/docs/ModuloIdentities/DettagliTecnici|Dettagli Tecnici]] ||
||<style="text-align:left;vertical-align:top" |4>QSPN ||[[Netsukuku/ita/docs/ModuloQSPN/AnalisiFunzionale|Analisi funzionale]] ||
Line 19: Line 36:
||[[Netsukuku/ita/docs/ModuloQSPN/RotteDisgiunte|Rotte disgiunte]] ||
||[[Netsukuku/ita/docs/ModuloQSPN/LivelliBits|Livelli e Bits]] ||
||[[Netsukuku/ita/docs/ModuloQSPN/StrutturaETP|Struttura ETP]] ||
||[[Netsukuku/ita/docs/ModuloQSPN/PercorsiDisgiunti|Percorsi disgiunti]] ||
||[[Netsukuku/ita/docs/ModuloQSPN/DettagliTecnici|Dettagli Tecnici]] ||
Line 23: Line 39:
||[[Netsukuku/ita/docs/ModuloPeers/Appunti|Appunti]] || ||[[Netsukuku/ita/docs/ModuloPeers/DettagliTecnici|Dettagli Tecnici]] ||
||<style="text-align:left;vertical-align:top" |2>Coordinator ||[[Netsukuku/ita/docs/ModuloCoordinator/AnalisiFunzionale|Analisi funzionale]] ||
||[[Netsukuku/ita/docs/ModuloCoordinator/DettagliTecnici|Dettagli Tecnici]] ||

Netsukuku - Documenti di analisi

La suite di software per un nodo nella rete Netsukuku si compone di:

  • Un demone (ntkd) che svolge le seguenti mansioni:
    • Rileva i vicini.
    • Comunicando con i vicini implementa il protocollo distribuito di routing.
    • Assegna gli indirizzi al nodo e mantiene le tabelle di routing del kernel.
    • Svolge il ruolo di server ANDNA, accedendo al database distribuito dei nomi.
    • Nota: le mansioni del demone ntkd sono meglio illustrate all'inizio del documento analisi funzionale.

  • Un resolver di nomi (libnss_andna.so) che interroga il server ANDNA su richiesta delle applicazioni che girano nel nodo, le quali lo richiamano in modo del tutto trasparente tramite l'uso del Name Service Switch.

  • Un server (dns-to-andna) che traduce le richieste DNS in richieste ANDNA e interroga il server ANDNA. Questo è utile per le applicazioni che vogliono interrogare direttamente il DNS senza passare attraverso il NSS. Permette inoltre di dare supporto ai Sistemi Operativi che non hanno un NSS o per i quali la suite Netsukuku non fornisce ancora un'applicazione nativa.
  • Un tool di risoluzione nomi (ntk-resolv) che interroga direttamente il server ANDNA. Può essere utile durante un troubleshooting in una rete.
  • Alcune librerie di supporto.

Oltre al software suddetto, per il corretto funzionamento di un nodo nella rete Netsukuku il sistema operativo deve soddisfare alcuni requisiti. Nel documento Requisiti prendiamo in esame questi requisiti annotando per ogni sistema operativo quali sono le impostazioni da configurare per soddisfarli.

ntkd

Per una descrizione formale del ruolo del demone ntkd in una rete Netsukuku si legga la relativa analisi funzionale.

La logica delle operazioni svolte dal demone ntkd è stata suddivisa in moduli, ognuno dei quali si occupa di un determinato aspetto. Essi sono isolati, indipendenti gli uni dagli altri. Questo rende più facile verificarne il corretto funzionamento e apportare modifiche o correzioni.

Poi ci sono alcune librerie che offrono funzionalità che vengono usate da quasi tutti i moduli. Su queste librerie tutti i moduli hanno una dipendenza.

  • tasklet-system. Con una dipendenza su questa libreria, un modulo può usare un generico sistema di tasklet (thread cooperativi) senza dover conoscere la specifica implementazione che il programma adotterà. TaskletSystem

  • ZCD. Questa libreria formalizza e realizza il passaggio di messaggi tra nodi della rete, anche quando ancora i nodi non hanno configurato le loro interfacce di rete con indirizzi e parametri concordati. ZCD

  • ntkd-common. Questa libreria contiene alcune classi e funzioni che sono note a più di un modulo. Common

Il software si compone dei moduli seguenti:

Neighborhood

Analisi funzionale

Dettagli Tecnici

Requisiti

Identities

Analisi funzionale

Dettagli Tecnici

QSPN

Analisi funzionale

Esplorazione rete

Percorsi disgiunti

Dettagli Tecnici

PeerServices

Analisi funzionale

Dettagli Tecnici

Coordinator

Analisi funzionale

Dettagli Tecnici

libnss_andna

dns-to-andna

Per i software che non supportano NSS o per offrire connettività a sistemi operativi al momento non supportati dalla suite software Netsukuku.

Netsukuku/ita/docs/development (last edited 2016-03-12 16:15:57 by lukisi)