1.1. Design Principles (Principi di progettazione)
RPL è stato progettato con l'obiettivo di soddisfare i requisiti indicati in [RFC5867], [RFC5826], [RFC5673] e [RFC5548].
Una rete può eseguire più istanze di RPL contemporaneamente. Ogni istanza di questo tipo 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 del routing. Esempi di tali obiettivi includono la minimizzazione dell'energia, la minimizzazione della latenza o il soddisfacimento di vincoli. Questo documento descrive la modalità operativa di RPL. Altri documenti di accompagnamento specificano le funzioni obiettivo di routing (Objective Functions). Un'implementazione RPL, a supporto di una particolare applicazione LLN, includerà le funzioni obiettivo necessarie come richiesto dall'applicazione.
Le operazioni RPL richiedono collegamenti bidirezionali. In alcuni scenari LLN, tali collegamenti possono mostrare proprietà asimmetriche. È necessario verificare la raggiungibilità di un router prima che il router possa essere utilizzato come genitore. RPL prevede che venga attivato un meccanismo esterno durante la fase di selezione del genitore al fine di verificare le proprietà del collegamento e la raggiungibilità del vicino. Il rilevamento dell'irraggiungibilità del vicino (NUD) è uno di questi meccanismi, ma sono possibili alternative, tra cui il rilevamento dell'inoltro bidirezionale (BFD) [RFC5881] e suggerimenti dai livelli inferiori tramite trigger di livello 2 (L2) come [RFC5184]. In generale, è preferito 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 inoltre un meccanismo esterno per accedere e trasportare alcune informazioni di controllo, denominate "Informazioni pacchetto RPL", nei pacchetti di dati. Le informazioni sul pacchetto RPL sono definite nella Sezione 11.2 e consentono l'associazione di un pacchetto dati a un'istanza RPL e la convalida degli stati di routing RPL. L'opzione RPL [RFC6553] è un esempio di tale meccanismo. Il meccanismo è richiesto per tutti i pacchetti tranne quando viene utilizzato il routing sorgente rigoroso (ovvero per i pacchetti che vanno verso il basso in modalità Non-Storing come dettagliato ulteriormente nella Sezione 9), che per natura impedisce loop infiniti e allevia la necessità delle informazioni sul pacchetto RPL. Le future specifiche di accompagnamento potrebbero proporre modi alternativi per trasportare le informazioni sul pacchetto RPL nei pacchetti IPv6 e potrebbero estendere le informazioni sul 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 meno essere aggregabili a seconda dell'origine dei router. Un prefisso posseduto da un router viene annunciato come on-link.
RPL introduce anche la capacità di legare insieme una sottorete con un prefisso comune e di instradare all'interno di tale 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 annunciato come on-link.
In particolare, RPL può diffondere informazioni IPv6 Neighbor Discovery (ND) come l'opzione Prefix Information (PIO) [RFC4861] e l'opzione Route Information (RIO) [RFC4191]. Le informazioni ND diffuse da RPL conservano tutta la loro semantica originale per router-host, con estensioni limitate per router-router, sebbene non debbano essere confuse con gli annunci di routing e non debbano mai essere ridistribuite direttamente in un altro protocollo di routing. Un nodo RPL combina spesso comportamenti host e router. Come host, elaborerà le opzioni come specificato in [RFC4191], [RFC4861], [RFC4862] e [RFC6275]. Come router, il nodo RPL può annunciare 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 per gli scenari applicativi di automazione degli edifici, domotica, industriale e urbana.