Structures d'adresse
Adresses réseau
Les adresses réseau représentent un mappage des adresses du type de réseau (par exemple IP) aux adresses logiques au sein d'un réseau de contrôle. Ce mappage est effectué par le pilote de bloc correspondant. Les trois premiers octets de l'adresse IP sont identiques pour tous les périphériques réseau au sein d'un réseau Ethernet avec des adresses IP de "Classe C". Par conséquent, les 8 derniers bits de l'adresse IP suffisent comme adresse réseau, car ils permettent un mappage sans ambiguïté entre les deux adresses sur le pilote de bloc.
Un nœud a une adresse réseau différente pour chaque connexion réseau. Différentes connexions réseau peuvent avoir la même adresse réseau, puisque chaque adresse doit seulement être localement unique.
Terminologie : L'adresse réseau dans le réseau principal est généralement désignée comme l'adresse réseau d'un nœud sans spécification de la connexion réseau.
La longueur d'une adresse réseau est spécifiée en bits et peut être choisie par le pilote de bloc selon les besoins. La même longueur doit être utilisée pour tous les nœuds d'une zone de réseau. Une adresse réseau est représentée par un tableau d'octets selon le codage suivant :
Longueur de l'adresse réseau : n bits
Octets requis : b = (n + 7) DIV 8
Les (n MOD 8) bits de rang le plus bas du premier octet et tous les autres (n DIV 8) sont utilisés pour l'adresse réseau.
Longueur : 11 bits
Adresse : 111 1000 1100

Adresses de nœud
L'adresse de nœud indique l'adresse absolue d'un nœud au sein d'un réseau de contrôle et est donc unique dans l'ensemble de « l'arborescence du réseau ». L'adresse est composée de jusqu'à 15 composants d'adresse, dont chacun occupe 2 octets. Plus un nœud est situé bas dans la hiérarchie du réseau, plus son adresse est longue.
L'adresse de nœud complète se compose des adresses partielles de tous les nœuds précédents et de l'adresse partielle du nœud lui-même. Chaque adresse partielle consiste en un ou plusieurs composants d'adresse. La longueur est donc toujours un multiple de 2 octets. L'adresse partielle d'un nœud est formée à partir de l'adresse réseau du nœud dans son réseau principal et de l'indice de sous-réseau du réseau principal dans le cas du nœud parent. Les bits requis pour le sous-index sont déterminés par le routeur du nœud parent. Des bits de remplissage peuvent être insérés entre l'index de sous-réseau et l'adresse réseau afin de s'assurer que la longueur de l'adresse partielle est un multiple de 2 octets.
Cas spéciaux:
Nœud sans réseau : Cela signifie qu'il n'y a ni index de sous-réseau ni adresse réseau dans le réseau principal. Dans ce cas, l'adresse est définie sur 0x0000.
Nœud dans le réseau principal sans parent : dans ce cas, un index de sous-réseau de longueur 0 est supposé. L'adresse partielle correspond à l'adresse réseau éventuellement complétée par des bits de remplissage.

L'adresse de nœud est toujours spécifiée en hexadécimal. Les composants d'adresse individuels (deux octets dans chaque cas) sont séparés par deux points ":". Comme il s'agit d'un tableau d'octets et non d'une valeur 16 bits, les composants ne sont pas affichés au format Intel. Pour les adresses saisies manuellement, les parties manquantes dans un composant d'adresse sont complétées par des zéros non significatifs : "274
" = "0274
". Afin d'améliorer la lisibilité, l'affichage doit également toujours contenir les zéros non significatifs.
Adresses absolues et relatives
La communication entre deux nœuds peut être basée sur des adresses relatives ou absolues. Les adresses absolues sont identiques aux adresses de nœud. Les adresses relatives spécifient un chemin de l'expéditeur au destinataire. Ils se composent d'un décalage d'adresse et du chemin descendant vers le récepteur.
Le décalage d'adresse (négatif) décrit le nombre de composants d'adresse par lesquels un paquet doit être transmis vers le haut dans l'arborescence avant de pouvoir être redescendu par le nœud parent commun. Étant donné que les nœuds peuvent utiliser des adresses partielles composées de plusieurs composants, le nombre de composants parents à transmettre est toujours égal au décalage d'adresse. Cela signifie que la démarcation entre les nœuds parents n'est plus claire. C'est pourquoi le début commun de l'adresse des partenaires de communication est utilisé comme adresse parent. Chaque composant d'adresse est compté comme un pas vers le haut, indépendamment du nœud parent actuel. Chaque erreur résultant de cette hypothèse peut être détectée par le nœud parent correspondant et doit être traitée par celui-ci en conséquence.
Après avoir atteint le nœud parent commun, le chemin relatif, en tant que tableau de composants d'adresse, est suivi vers le bas comme d'habitude. Formellement : l'adresse de nœud du récepteur est formée en supprimant les derniers composants de décalage d'adresse de l'adresse de nœud de l'expéditeur et en ajoutant le chemin relatif à l'adresse restante.
Dans l'exemple suivant, chaque composant d'adresse est représenté par une lettre ; dans chaque cas, un point sépare les nœuds les uns des autres. Puisqu'un nœud peut porter plusieurs composants d'adresse, il y en a certains dans l'exemple qui sont représentés avec plusieurs lettres.
Nœud A : a.bc.d.ef.g
Nœud B : a.bc.i.j.kl.m
Adresse du parent le moins commun :
a.bc
Adresse relative de A à B :
-4/i.j.kl.m
Le nombre 4 résulte des 4 composants –
d
,e
,f
etg
– qui doit transmettre le paquet de données vers le haut.
Afin de garantir le bon fonctionnement du routage, l'adresse relative doit être adaptée à chaque passage sur un noeud intermédiaire. Il suffit d'adapter le décalage d'adresse. Ceci est toujours fait par le nœud parent. Si un nœud reçoit un paquet de données d'un de ses sous-réseaux, le décalage d'adresse est augmenté de la longueur de la composante d'adresse de ce sous-réseau.
Si le nouveau décalage d'adresse est < 0, alors le paquet de données doit être transmis plus haut.
Si le décalage d'adresse est >= 0, alors le paquet de données doit être transmis au nœud enfant dont l'adresse locale correspond au chemin relatif, en commençant par le décalage d'adresse. Cependant, tout d'abord, le décalage d'adresse doit être augmenté de la longueur de l'adresse locale du nœud enfant, afin que le nœud enfant voie l'adresse correcte.
Une situation particulière se produit si l'erreur mentionnée ci-dessus se produit lors de la détermination du nœud parent commun. Dans ce cas, le décalage d'adresse du nœud parent réel est négatif, mais cette valeur est supérieure à la longueur de l'adresse partielle du sous-réseau d'où provient le package. Pour que le nœud suivant voie une adresse relative correcte dans ce cas, le nœud concerné doit faire ce qui suit : découvrir l'erreur, calculer l'adresse locale du nœud enfant sur la base de l'adresse du nœud prédécesseur et de la différence de longueur, et adaptez le décalage d'adresse en conséquence. Dans ce cas également, les composants d'adresse en tant que tels restent inchangés ; seul le décalage est modifié.
Adresses de diffusion
Il existe deux types de diffusion - globale et locale. Une diffusion globale est envoyée à tous les nœuds d'un réseau. L'adresse de nœud vide d'une longueur de 0 est réservée à cet effet.
Les diffusions locales sont envoyées à tous les appareils d'une zone de réseau. A cet effet, tous les bits de l'adresse réseau sont mis à 1. Ceci est permis aussi bien en adresse relative qu'en adresse absolue.
Un pilote de bloc doit pouvoir traiter les deux types d'adresses de diffusion. Cela signifie que les adresses réseau vides ainsi que les adresses réseau dont les bits étaient tous définis sur 1 doivent être interprétées et envoyées à tous les participants concernés.