[Actualités]
Gemini s'est installé automatiquement dans Google Messages : voici comment le m...
[Actualités]
Android Auto arbore une nouvelle icône verte : un petit changement, un grand si...
[Actualités]
Test Pizza Slice (PC) - Gérez votre pizzeria mais pas seulement.
[Actualités]
Google Messages présente un bug important : il envoie d’anciens messages aux ...
[Actualités]
Windows 11 va bientôt ajouter un bouton permettant de refuser OneDrive.
[Actualités]
Google développe automatiquement les aperçus de l'IA
[Actualités]
La fonctionnalité Xbox Disc-to-Digital devrait également fonctionner avec les ...
[Actualités]
Windows 11 est de nouveau perturbé suite à une mise à jour.
[Actualités]
NVIDIA a conclu un accord de partenariat avec MediaTek.
[Actualités]
AMD se prépare à commercialiser des processeurs basés sur l'architecture Zen 6.
[Articles]
Pizza Slice
[Articles]
Infection Free Zone
[Articles]
Choujin X tome 13
[Articles]
After God tome 10
[Articles]
Ultimate Exorcist Kiyoshi tome 1
[Articles]
GRIDbeat!
[Articles]
Pets Survivors
[Articles]
Marvel Tokon : Fighting Souls
[Articles]
Hercule Poirot - Le Meurtre de Roger Ackroyd
[Articles]
Scanner ESET ultra-rapide et haute précision pour menaces, désormais disponibl...
Se connecter
Se connecter
Inscription
Mot de passe perdu
Connexion
Actualités
Lettre d'information
Proposer une actualité
Archives
Actualités
Articles
Programmation
Press Release
Matériel
Logiciels
Livres
Bandes Dessinées
Interviews
Derniers commentaires
Jeux Vidéos
PC
PlayStation 5
Xbox Series X
Nintendo Switch 2
Nintendo Switch
PlayStation 4
Autres plateformes
Forum
Derniers messages
Informatique
Fun
Divers
Logithèque
Blogs
Divers
A Propos
Annonceurs
Contact
Recherche
RSS
Se connecter
Se connecter
Inscription
Mot de passe perdu
Connexion
Editer un article
Titre
Mots Clés
Texte
[size=18] [b]Nom[/b] [/size] ipv6, PF_INET6 - Implémentation Linux du protocole IPv6 [size=18] [b]Résumé[/b] [/size] [b]#include
[/b] [b][/b] [b]#include
[/b] [b][i]tcp6_socket = socket(PF_INET6, SOCK_STREAM, 0);[/i][/b] [b][/b] [b][i]raw6_socket = socket(PF_INET6, SOCK_RAW, protocol );[/i][/b] [b][/b] [b][i]udp6_socket = socket(PF_INET6, SOCK_DGRAM, protocol );[/i][/b] [size=18] [b]Description[/b] [/size] Linux 2.2 implémente en option le protocole internet version 6 (IPv6). Cette page de manuel contient la description de l'API IPv6 de base, telle qu'implémentée dans le noyau Linux et la GlibC 2.1 L'interface est basée sur l'interface des sockets BSD. Voir [b]socket (7). [/b] L'API IPv6 est conçue pour être essentiellement compatible avec l'API [b]ip (7) [/b] v4. Seules les différences sont décrites dans cette page de manuel. pour attacher une socket [b]AF_INET6 ,[/b] l'adresse locale doit être copiée dans une variable [b]in6addr_any[/b] qui a le type [b]in6_addr .[/b] Dans les initialisations statiques, [b]IN6ADDR_ANY_INIT[/b] peut servir aussi et se développe en une expression constante. Toutes les valeurs sont dans l'ordre des octets du réseau. L'adresse de boucle IPv6 (::1) est disponible dans la variable globale [b]in6addr_loopback .[/b] Pour les initialisation, on doit utiliser [b]IN6ADDR_LOOPBACK_INIT .[/b] Les connexions IPv4 peuvent être traitée avec l'API v6 en utilisant le type d'adresse v4-projeté-dans-v6. Ainsi un programme n'a qu'un seul type d'API à utiliser pour supporter les deux protocoles. Ceci est géré de manière transparente par les fonctions d'adressage de la LibC. IPv4 et IPv6 partagent l'espace des ports locaux. Lorsqu'une connexion IPv4 ou un paquet est obtenu sur une socket IPv6, son adresse source sera projetée en v6. [size=18] [b]Format dadresse[/b] [/size] [table][row][col] [/col][col] .nf .ta 4n 5n 20n struct sockaddr_in6 { u_int16_t sin6_family; /* AF_INET6 */ u_int16_t sin6_port; /* numéro port */ u_int32_t sin6_flowinfo; /* information flux IPv6 */ struct in6_addr sin6_addr; /* adresse IPv6 */ u_int32_t sin6_scope_id; /* Scope id (nouveauté 2.4) */ }; struct in6_addr { unsigned char s6_addr[16]; /* adresse IPv6 */ }; .ta .fi[/col][/row][/table] [b]sin6_family [/b] est toujours rempli avec [b]AF_INET6 ;[/b] [b]sin6_port [/b] est le port du protocole (voir [b]sin_port[/b] dans [b]ip (7));[/b] [b]sin6_flowinfo[/b] est l'identificateur de flux IPv6, [b]sin6_addr[/b] est l'adresse IPv6 sur 128 bits. [b]sin6_scope_id [/b] est un identificateur qui dépend de la portée de l'adresse. C'est une nouveauté Linux 2.4. Linux ne le supporte que pour les adresse ayant une portée liaison, dans ce cas [i]sin6_scope_id[/i] contient le numéro d'interface (voir [b]netdevice (7))[/b] IPv6 supporte plusieurs types d'adresses : unicast pour représenter un hôte unique, multicast pour un groupe d'hôtes, anycast pour indiquer le membre le plus proche d'un groupe d'hôtes (non implémenté sous Linux), IPv4-on-IPv6 pour un hôte IPv4, et d'autres types d'adresse réservés. La notation d'adresse pour l'IPv6 est un groupe de 16 nombres hexadécimaux sur 2 chiffres, séparés par un deux-points `:'. Un `::' représente une chaîne de zéros. Les adresses spéciales sont ::1 pour le bouclage loopback et ::FFFF:
pour les projections d'adresses IPv4 sur l'IPv6. L'espace des ports de l'IPv6 est partagé avec l'IPv4. [size=18] [b]Options[/b] [/size] IPv6 supporte quelques options des sockets spécifiques du protocole, qui peuvent être fixées avec [b]setsockopt (2)[/b] et consultées avec [b]getsockopt (2).[/b] Le niveau d'option de socket pour l'IPv6 est [b]IPPROTO_IPV6 .[/b] Un entier booléen est faux quand il est nul et vrai sinon. [b]IPV6_UNICAST_HOPS[/b] [table][row][col] [/col][col]Fixe la limite du nombre de sauts (hops) unicast. L'argument est un pointeur sur un entier. La valeur -1 correspond à la valeur par défaut de routage, sinon il doit s'agir d'un entier entre 0 et 255.[/col][/row][/table] [b]IPV6_MULTICAST_HOPS[/b] [table][row][col] [/col][col]Fixe la limite du nombre de sauts (hops) multicast. L'argument est un pointeur sur un entier. La valeur -1 correspond à la valeur par défaut de routage, sinon il doit s'agir d'un entier entre 0 et 255.[/col][/row][/table] [b]IPV6_MULTICAST_IF[/b] [table][row][col] [/col][col]Fixe le périphérique pour les paquets multicasts sortants de la socket. Ceci n'est permis que pour les sockets [i]SOCK_DGRAM[/i] et [b]SOCK_RAW .[/b] L'argument est un pointeur sur un numéro d'interface (voir [b]netdevice (7))[/b] dans un entier.[/col][/row][/table] [b]IPV6_ADDRFORM[/b] [table][row][col] [/col][col]Transformer une socket [i]AF_INET6[/i] en une socket d'une famille d'adresse différente. Seul [i]AF_INET[/i] est actuellement supporté pour cela. Cela n'est autorisé que pour les sockets IPv6 connectées et attachées à une adresse v4-sur-v6. L'argument est un pointeur sur un entier contenant [b]AF_INET. [/b] Cela est utile pour passer des sockets projetées en v4 comme descripteurs à des programmes ne sachant pas manipuler l'API IPv6.[/col][/row][/table] [b]IPV6_PKTINFO[/b] [table][row][col] [/col][col]Fixe la distribution des messages de contrôle [b]IPV6_PKTINFO [/b] des datagrammes entrants. Uniquement autorisé pour les sockets [b]SOCK_DGRAM[/b] ou [b]SOCK_RAW .[/b] L'argument est un pointeur sur une valeur booléenne dans un entier.[/col][/row][/table] [table][row][col] [/col][col].nh [b]IPV6_RTHDR, IPV6_AUTHHDR, IPV6_DSTOPS, IPV6_HOPOPTS, IPV6_FLOWINFO, IPV6_HOPLIMIT[/b] .hy Fixe la distribution des messages de contrôle des datagrammes entrants contenant les en-têtes d'extensions. [i]IPV6_RTHDR[/i] délivre l'en-tête de routage, [i]IPV6_AUTHHDR[/i] délivre l'en-tête d'authentification, [i]IPV6_DSTOPTS[/i] délivre les options de destination, [i]IPV6_HOPOPTS[/i] délivre les options de saut, [i]IPV6_FLOWINFO[/i] délivre un entier contenant l'identificateur de flux, [i]IPV6_HOPLIMIT[/i] délivre un entier contenant le nombre de sauts du paquet. Les messages de contrôle ont le même type que l'option de socket. Toutes ces options d'en-tête peuvent aussi être fixées pour les paquets sortants en mettant le message de contrôle approprié dans le buffer de [b]sendmsg (2).[/b] Uniquement autorisé pour les sockets [b]SOCK_DGRAM[/b] ou [b]SOCK_RAW[/b] L'argument est un pointeur sur une valeur booléenne.[/col][/row][/table] [b]IPV6_MULTICAST_LOOP[/b] [table][row][col] [/col][col]Détermine si la socket voit les paquets multicast qu'elle a elle-même émis. L'argument est un pointeur sur une valeur booléenne.[/col][/row][/table] [b]IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP[/b] [table][row][col] [/col][col]Détermine l'appartenance aux groupes multicast. L'argument est un pointeur sur une structure [b]struct ipv6_mreq .[/b][/col][/row][/table] [b]IPV6_MTU[/b] [table][row][col] [/col][col]Fixe le MTU à utiliser pour la socket. Le MTU est limité par celui du périphérique ou celui du chemin lorsque la recherche du MTU par chemin est activée. L'argument est un pointeur sur un entier.[/col][/row][/table] [b]IPV6_MTU_DISCOVER[/b] [table][row][col] [/col][col]Commander la recherche du MTU par chemin sur la socket. Voir l'option [i]IP_MTU_DISCOVER[/i] dans [b]ip (7)[/b] pour plus de précisions.[/col][/row][/table] [b]IPV6_RECVERR[/b] [table][row][col] [/col][col]Commande la réception des erreurs asynchrones. Voir [i]IP_RECVERR[/i] dans [b]ip (7)[/b] pour plus de précisions. L'argument est un pointeur sur un booléen.[/col][/row][/table] [b]IPV6_ROUTER_ALERT[/b] [table][row][col] [/col][col]Passer sur cette socket tous les paquets redirigés (forwarded) contenant une option d'alerte du routeur. Uniquement autorisé pour les sockets datagrammes, et pour root. L'argument est un pointeur vers un booléen.[/col][/row][/table] [size=18] [b]Versions[/b] [/size] L'ancienne implémentation IPv6 pour Linux basée sur [i]libinet6[/i] de la LibC5 n'est pas décrite ici, et peut être légèrement différente. Linux 2.4 rompt la compatibilité binaire pour la structure sockaddr_in6 des hôtes sur 64 bits, en modifiant l'alignement de [i]in6_addr [/i] et en ajoutant un champ [i]sin6_scope_id[/i] supplémentaire. Les interfaces du noyau restent compatible, mais un programme contenant des sockaddr_in6 ou des in6_addr dans d'autres structures ne l'est peut être pas. Ce n'est pas un problème pour les hôtes sur 32 bits comme les i386. Le champ [b]sin6_flowinfo[/b] est une nouveauté Linux 2.4. Il est écrit/lu de manière transparente par le noyau quand la longueur de l'adresse passée le contient. Certains programmes qui passent un buffer d'adresse plus long et vérifient ensuite la longueur de l'adresse renvoyée peuvent échouer. [size=18] [b]Notes[/b] [/size] La structure [b]sockaddr_in6[/b] est plus grande que la structure [b]sockaddr[/b] générique. Les programmes qui supposent que tous les types d'adresses peuvent être stockés dans une [b]struct sockaddr[/b] doivent être modifiés pour utiliser [b]struct sockaddr_storage[/b] à la place. [size=18] [b]Bugs[/b] [/size] L'API IPv6 étendue, telle que dans la RFC 2292, n'est encore que partiellement implémentée. Bien que les noyaux 2.2 ont un support pratiquement complet pour les options de réception, les macros déclarant les options IPv6 manquent dans la GlibC 2.1. Le support IPSec pour les en-têtes EH et AH est manquant. La gestion des étiquettes de flux n'est pas complète, ni documentée ici. Cette page de manuel n'est pas complète. [size=18] [b]Voir aussi[/b] [/size] [b]ip (7),[/b] [b]cmsg (3)[/b] RFC2553: API IPv6 de base, avec laquelle Linux essaye d'être compatible. RFC2460: Spécifications IPv6 [size=18] [b]Traduction[/b] [/size] Christophe Blaess, 2001-2003.
Fichier
Newsletter
Recevez les dernières actualités tech directement dans votre boîte mail.
S'inscrire
Forum
-
Derniers messages
Réseaux et Télécom
Edpnet
Bavardages
Séries TV, vous regardez quoi?
Bavardages
Aujourd'hui, je rénove ou je construis ^^
Informations
Besoin d’avis sur l’UX de mon mini-projet web (et plus globalement sur ce qui vous rebute sur un site) ?
Software
problème sur windows 10
Réseaux et Télécom
Problème wifi (POE)
Software
Postfix - Need help
Bavardages
Oh râge oh désespoir !
Programmation
Enregistrement client et envoi mail
Software
SÉCURITÉ MACBOOK
Actualités
-
Archives
Google
01-09
Gemini s'est installé automatiquement dans Google Messages : voici comment le masquer
Android
01-09
Android Auto arbore une nouvelle icône verte : un petit changement, un grand signal.
Jeux Vidéos
01-09
Test Pizza Slice (PC) - Gérez votre pizzeria mais pas seulement.
Google
01-09
Google Messages présente un bug important : il envoie d’anciens messages aux mauvais destinataires.
Windows
01-09
Windows 11 va bientôt ajouter un bouton permettant de refuser OneDrive.
Ada
CSS
Cobol
CPP
HTML
Fortran
Java
JavaScript
Pascal
Perl
PHP
Python
SQL
VB
XML
Anon URL
DailyMotion
eBay
Flickr
FLV
Google Video
Google Maps
Metacafe
MP3
SeeqPod
Veoh
Yahoo Video
YouTube
6px
8px
10px
12px
14px
16px
18px
Informaticien.be
- © 2002-2026
Akretio
SRL - Generated via
Kelare
Haut de page