1. Introduzione
Le reti a bassa potenza e con perdite (LLN) sono costituite in gran parte da nodi vincolati (con potenza di elaborazione limitata, memoria e talvolta energia quando sono alimentati a batteria o raccolgono energia). Questi router sono interconnessi da collegamenti con perdite, che tipicamente supportano solo basse velocità di dati, che sono solitamente instabili con tassi di consegna dei pacchetti relativamente bassi. Un'altra caratteristica di tali reti è che i modelli di traffico non sono semplicemente punto-punto, ma in molti casi punto-multipunto o multipunto-punto. Inoltre, tali reti possono potenzialmente comprendere fino a migliaia di nodi. Queste caratteristiche offrono sfide uniche a una soluzione di instradamento: il gruppo di lavoro IETF ROLL ha definito requisiti di instradamento specifici per l'applicazione per un protocollo di instradamento per reti a bassa potenza e con perdite (LLN), specificati in [RFC5867], [RFC5826], [RFC5673] e [RFC5548].
Questo documento specifica il protocollo di instradamento IPv6 per LLN (RPL). Si noti che sebbene RPL sia stato specificato in base ai requisiti stabiliti nei documenti dei requisiti sopra menzionati, il suo utilizzo non è in alcun modo limitato a queste applicazioni.
1.1. Principi di progettazione
RPL è stato progettato con l'obiettivo di soddisfare i requisiti enunciati in [RFC5867], [RFC5826], [RFC5673] e [RFC5548].
Una rete può eseguire più istanze di RPL contemporaneamente. Ciascuna di tali istanze può servire vincoli o criteri di prestazione diversi e potenzialmente antagonistici. Questo documento definisce come opera una singola istanza.
Per essere utile in un'ampia gamma di domini applicativi LLN, RPL separa l'elaborazione e l'inoltro dei pacchetti dall'obiettivo di ottimizzazione dell'instradamento. Esempi di tali obiettivi includono la minimizzazione dell'energia, la minimizzazione della latenza o il soddisfacimento di vincoli. Questo documento descrive la modalità di funzionamento di RPL. Altri documenti di accompagnamento specificano le funzioni obiettivo di instradamento. Un'implementazione RPL, a supporto di una particolare applicazione LLN, includerà la/e funzione/i obiettivo necessaria/e come richiesto dall'applicazione.
Le operazioni RPL richiedono collegamenti bidirezionali. In alcuni scenari LLN, tali collegamenti possono mostrare proprietà asimmetriche. È necessario che la raggiungibilità di un router sia verificata prima che il router possa essere utilizzato come genitore. RPL prevede che un meccanismo esterno venga attivato durante la fase di selezione del genitore al fine di verificare le proprietà del collegamento e la raggiungibilità del vicino. Neighbor Unreachability Detection (NUD) è uno di questi meccanccanismi, ma sono possibili alternative, tra cui Bidirectional Forwarding Detection (BFD) [RFC5881] e suggerimenti dai livelli inferiori tramite trigger Layer 2 (L2) come [RFC5184]. In generale, si preferisce un meccanismo di rilevamento reattivo al traffico al fine di ridurre al minimo il costo del monitoraggio dei collegamenti che non vengono utilizzati.
RPL prevede anche un meccanismo esterno per accedere e trasportare alcune informazioni di controllo, denominate "Informazioni pacchetto RPL", nei pacchetti di dati. Le informazioni pacchetto RPL sono definite nella Sezione 11.2 e consentono l'associazione di un pacchetto di dati a un'istanza RPL e la convalida degli stati di instradamento RPL. L'opzione RPL [RFC6553] è un esempio di tale meccanismo. Il meccanismo è richiesto per tutti i pacchetti tranne quando viene utilizzato l'instradamento alla fonte rigoroso (cioè per i pacchetti che vanno verso il basso in modalità non memorizzazione come descritto in dettaglio più avanti nella Sezione 9), che per natura impedisce cicli infiniti e allevia la necessità delle informazioni pacchetto RPL. Future specifiche di accompagnamento potrebbero proporre modi alternativi per trasportare le informazioni pacchetto RPL nei pacchetti IPv6 e potrebbero estendere le informazioni pacchetto RPL per supportare funzionalità aggiuntive.
RPL fornisce un meccanismo per diffondere informazioni sulla topologia di rete formata dinamicamente. Questa diffusione consente una configurazione minima nei nodi, consentendo ai nodi di operare per lo più in modo autonomo. Questo meccanismo utilizza Trickle [RFC6206] per ottimizzare la diffusione come descritto nella Sezione 8.3.
In alcune applicazioni, RPL assembla topologie di router che possiedono prefissi indipendenti. Tali prefissi possono o non possono essere aggregabili a seconda dell'origine dei router. Un prefisso posseduto da un router viene pubblicizzato come on-link.
RPL introduce anche la capacità di legare una sottorete insieme a un prefisso comune e di instradare all'interno di quella sottorete. Una sorgente può iniettare informazioni sulla sottorete da diffondere tramite RPL e tale sorgente è autorevole per quella sottorete. Poiché molti collegamenti LLN hanno proprietà non transitive, un prefisso comune che RPL diffonde sulla sottorete non deve essere pubblicizzato come on-link.
In particolare, RPL può diffondere informazioni IPv6 Neighbor Discovery (ND) come l'opzione di informazioni sul prefisso (PIO) [RFC4861] e l'opzione di informazioni sulla rotta (RIO) [RFC4191]. Le informazioni ND diffuse da RPL conservano tutta la loro semantica originale da router a host, con estensioni limitate per router a router, sebbene non debbano essere confuse con gli annunci di instradamento e non debbano mai essere ridistribuite direttamente in un altro protocollo di instradamento. Un nodo RPL combina spesso comportamenti di host e router. Come host, elaborerà le opzioni come specificato in [RFC4191], [RFC4861], [RFC4862] e [RFC6275]. Come router, il nodo RPL può pubblicizzare le informazioni dalle opzioni come richiesto per il collegamento specifico, ad esempio, in un messaggio ND Router Advertisement (RA), sebbene l'operazione esatta sia fuori ambito.
Una serie di documenti di accompagnamento a questa specifica fornirà ulteriori indicazioni sotto forma di dichiarazioni di applicabilità che specificano una serie di punti operativi appropriati agli scenari applicativi di automazione degli edifici, domotica, industriale e urbano.
1.2. Aspettative sul tipo di livello di collegamento
In conformità con l'architettura a livelli di IP, RPL non si basa su alcuna caratteristica particolare di una specifica tecnologia a livello di collegamento. RPL è progettato per poter operare su una varietà di diversi livelli di collegamento, inclusi quelli vincolati, potenzialmente con perdite o tipicamente utilizzati in combinazione con dispositivi host o router altamente vincolati, come, ma non limitato a, tecnologie wireless a bassa potenza o PLC (Power Line Communication).
Gli implementatori possono trovare [RFC3819] un riferimento utile durante la progettazione di un'interfaccia a livello di collegamento tra RPL e una particolare tecnologia a livello di collegamento.