2010/12/13 Xavier Nicollet <nicol...@jeru.org>:
> Le 10 décembre 2010 à 23:39, Mattieu Baptiste a écrit:
>> Ça n'a rien à voir avec les adresses IP, ça a voir avec sockaddr_in6,
>> qui, contrairement à sockaddr_in peut ne pas être aligné et qui oblige
>> de recourir en permanence à des hacks pour s'assurer de l'alignement.
>
> Avec des @ qui font 128 bits, je vois mal comment ça peut ne pas être
> aligné. Est-ce vraiment si important que ça l'alignement, de nos jours,
> sur les archi qu'on utilise ?

Encore une fois, l'alignement n'a rien à voir avec la taille de l'adresse !

La structure de base dans l'implémentation d'IPv4 est sockaddr_in.
Celle-ci fait en principe 16 octets. Ce qui est aligné pour la
majorité des machines/os (par exemple x86 et x86-64 qui ont des
pointeurs alignés sur 4 et 8 octets respectivement). En IPv6,
sockaddr_in6 fait 28 octets, ce qui n'est pas une puissance de 2.
C'est aligné pour les machines/os alignés sur des pointeurs de 4
octets mais pas pour 8. Et avec la démocratisation des architectures
64 bits... c'est assez ballot pour un protocole qui doit être celui du
futur !

Un exemple ? Parcourir les sources des daemons de routage libres comme
OpenBGPD et Quagga pour se convaincre des hacks nécessaires uniquement
pour IPv6 sur des architectures 64 bits.


-- 
Mattieu Baptiste
"/earth is 102% full ... please delete anyone you can."
---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à