Bonjour,

Rarement actif sur cette mailing liste, je me permets d'intervenir furtivement sur ce thread devenu inopinément semi-technique :)

On 07/30/2014 07:31 PM, fr...@jack.fr.eu.org wrote:
Si ton application (niveau 7) se soucie du niveau 4, c'est que tu es
programmeur de bien piètre qualité.

Un exemple de code venant de toi (aka "programmeur de qualité supérieure") serait bienvenu pour illustrer ce propos. Par exemple un code C de quelques lignes permettant de créer un socket, le binder, et l'ouvrir en écoute. Cela sans *aucune* spécificité IPv4/IPv6. Bien entendu ceci fonctionnant sur tout système POSIX, et indépendamment de la disponibilité d'un stack IPv6. Sans cela, ton commentaire ne représente que méchanceté gratuite et infondée.

Pour info, AF_INET ne permet que l'IPv4, alors que AF_INET6 inclue les
deux protocoles.
On peut donc dire que AF_INET6 inclue AF_INET.
Et qui peut le plus, peut le moins.

C'est une demi-vérité un peu simpliste.

1. sur un système sans support IPv6, un appel socket() sur AF_INET6 n'ouvrira rien du tout (exemple: la distribution ARM "Raspbian" en configuration par défaut) 2. sur un système où IPV6_BINDV6ONLY est actif (cas par défaut par ex. sur FreeBSD), un appel AF_INET6 n'ouvrira un socket que sur IPv6, rendant ainsi l'application injoignable en IPv4. Bien sur ceci est modifiable en runtime via un appel setsockopt(), mais l'hypothèse étant "qu'une application ne doit pas se soucier du niveau 4", la tâche devient quelque peu compliquée.

Mateusz


---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à