Strutture di indirizzi
Indirizzi di rete
Gli indirizzi di rete rappresentano una mappatura degli indirizzi del tipo di rete (ad esempio IP) agli indirizzi logici all'interno di una rete di controllo. Questa mappatura viene eseguita dal driver di blocco corrispondente. I primi tre byte dell'indirizzo IP sono identici per tutti i dispositivi di rete all'interno di una rete Ethernet con indirizzi IP di "Classe C". Di conseguenza, gli ultimi 8 bit dell'indirizzo IP sono sufficienti come indirizzo di rete, poiché consentono una mappatura univoca tra i due indirizzi sul block driver.
Un nodo ha un indirizzo di rete diverso per ogni connessione di rete. Diverse connessioni di rete possono avere lo stesso indirizzo di rete, poiché ogni indirizzo deve essere solo localmente univoco.
Terminologia: l'indirizzo di rete nella rete principale è generalmente designato come l'indirizzo di rete di un nodo senza alcuna specifica della connessione di rete.
La lunghezza di un indirizzo di rete è specificata in bit e può essere scelta dal block driver secondo necessità. La stessa lunghezza deve essere utilizzata per tutti i nodi all'interno di un'area di rete. Un indirizzo di rete è rappresentato da un array di byte secondo la seguente codifica:
Lunghezza dell'indirizzo di rete: n bit
Byte richiesti: b = (n + 7) DIV 8
I bit (n MOD 8) di rango più basso del primo byte e tutti gli altri (n DIV 8) vengono utilizzati per l'indirizzo di rete.
Lunghezza: 11 bit
Indirizzo: 111 1000 1100

Indirizzi di nodo
L'indirizzo del nodo indica l'indirizzo assoluto di un nodo all'interno di una rete di controllo ed è quindi univoco all'interno dell'intero "albero della rete". L'indirizzo è composto da un massimo di 15 componenti di indirizzo, ognuno dei quali occupa 2 byte. Più basso si trova un nodo all'interno della gerarchia di rete, più lungo è il suo indirizzo.
L'indirizzo di nodo completo è costituito dagli indirizzi parziali di tutti i nodi precedenti e dall'indirizzo parziale del nodo stesso. Ogni indirizzo parziale è costituito da uno o più componenti di indirizzo. La lunghezza è quindi sempre un multiplo di 2 byte. L'indirizzo parziale di un nodo è formato dall'indirizzo di rete del nodo nella sua rete principale e dall'indice di sottorete della rete principale nel caso del nodo padre. I bit richiesti per il sottoindice sono determinati dal router del nodo padre. I bit di riempimento possono essere inseriti tra l'indice di sottorete e l'indirizzo di rete per garantire che la lunghezza dell'indirizzo parziale sia un multiplo di 2 byte.
Casi speciali:
Nodo senza rete: significa che nella rete principale non è presente né un indice di sottorete né un indirizzo di rete. In questo caso l'indirizzo è impostato su 0x0000.
Nodo nella rete principale senza genitore: in questo caso si assume un indice di sottorete con lunghezza 0. L'indirizzo parziale corrisponde all'indirizzo di rete, eventualmente ampliato con bit di riempimento.

L'indirizzo del nodo è sempre specificato in esadecimale. I singoli componenti dell'indirizzo (due byte in ogni caso) sono separati da due punti ":". Poiché rappresenta una matrice di byte e non un valore a 16 bit, i componenti non vengono visualizzati nel formato Intel. Per gli indirizzi inseriti manualmente, le parti mancanti in un componente di indirizzo sono integrate da zeri iniziali: "274
" = "0274
". Per migliorare la leggibilità, il display deve contenere sempre anche gli zeri iniziali.
Indirizzi assoluti e relativi
La comunicazione tra due nodi può essere basata su indirizzi relativi o assoluti. Gli indirizzi assoluti sono identici agli indirizzi di nodo. Gli indirizzi relativi specificano un percorso dal mittente al destinatario. Sono costituiti da un offset di indirizzo e dal percorso discendente verso il ricevitore.
L'offset di indirizzo (negativo) descrive il numero di componenti di indirizzo per cui un pacchetto deve essere passato verso l'alto nell'albero prima che possa essere ritrasmesso dal nodo padre comune. Poiché i nodi possono utilizzare indirizzi parziali costituiti da più componenti, il numero di componenti principali da passare è sempre uguale all'offset di indirizzo. Ciò significa che la demarcazione tra i nodi principali non è più chiara. Per questo motivo come indirizzo principale viene utilizzato l'inizio comune dell'indirizzo dei partner di comunicazione. Ogni componente dell'indirizzo viene conteggiato come un passaggio verso l'alto, indipendente dal nodo padre corrente. Ogni errore risultante da questa assunzione può essere rilevato dal nodo padre corrispondente e deve essere gestito da esso di conseguenza.
Dopo aver raggiunto il nodo padre comune, il percorso relativo, come un array di componenti di indirizzo, viene seguito come di consueto verso il basso. Formalmente: L'indirizzo di nodo del ricevitore è formato rimuovendo le ultime componenti di offset dell'indirizzo dall'indirizzo di nodo del mittente e aggiungendo il percorso relativo all'indirizzo rimanente.
Nell'esempio seguente ogni componente dell'indirizzo è rappresentato da una lettera; in ogni caso un punto separa i nodi l'uno dall'altro. Poiché un nodo può trasportare diversi componenti di indirizzo, nell'esempio ce ne sono alcuni che sono rappresentati con più lettere.
Nodo A: a.bc.d.ef.g
Nodo B: a.bc.i.j.kl.m
Indirizzo del genitore meno comune:
a.bc
Indirizzo relativo da A a B:
-4/i.j.kl.m
Il numero 4 risulta dai 4 componenti –
d
,e
,f
eg
– che deve inoltrare il pacchetto dati verso l'alto.
Per garantire il corretto funzionamento dell'instradamento, il relativo indirizzo deve essere adattato ogni volta che passa un nodo intermedio. È sufficiente adattare l'offset di indirizzo. Questo viene sempre eseguito dal nodo padre. Se un nodo riceve un pacchetto di dati da una delle sue sottoreti, l'offset dell'indirizzo viene aumentato della lunghezza del componente dell'indirizzo di questa sottorete.
Se il nuovo offset di indirizzo è < 0, il pacchetto di dati deve essere passato ulteriormente verso l'alto.
Se l'offset dell'indirizzo è >= 0, allora il pacchetto di dati deve essere passato al nodo figlio il cui indirizzo locale corrisponde al percorso relativo, a partire dall'offset dell'indirizzo. Prima di tutto, però, l'offset dell'indirizzo deve essere aumentato della lunghezza dell'indirizzo locale del nodo figlio, in modo che il nodo figlio veda l'indirizzo corretto.
Una situazione speciale si verifica se l'errore sopra menzionato si verifica durante la determinazione del nodo padre comune. In questo caso l'offset di indirizzo del nodo padre effettivo è negativo, ma questo valore è maggiore della lunghezza dell'indirizzo parziale della sottorete da cui ha avuto origine il pacchetto. Affinché il nodo successivo veda un indirizzo relativo corretto in questo caso, il nodo in questione deve fare quanto segue: scoprire l'errore, calcolare l'indirizzo locale del nodo figlio sulla base dell'indirizzo del nodo predecessore e della differenza di lunghezza, e adattare di conseguenza l'offset di indirizzo. Anche in questo caso le componenti dell'indirizzo in quanto tali restano invariate; viene modificato solo l'offset.
Indirizzi di trasmissione
Esistono due tipi di trasmissione: globale e locale. Una trasmissione globale viene inviata a tutti i nodi di una rete. A questo scopo è riservato l'indirizzo di nodo vuoto con lunghezza 0.
Le trasmissioni locali vengono inviate a tutti i dispositivi in un'area di rete. A tale scopo tutti i bit dell'indirizzo di rete vengono impostati a 1. Ciò è consentito sia in indirizzi relativi che assoluti.
Un driver di blocco deve essere in grado di elaborare entrambi i tipi di indirizzi broadcast. Ciò significa che gli indirizzi di rete vuoti e gli indirizzi di rete i cui bit erano tutti impostati su 1 devono essere interpretati e inviati a tutti i partecipanti interessati.