Comment les ports fonctionnent-ils avec IPv6?

143

La notation quadruple pointillée IPv4 conventionnelle sépare l'adresse du port par deux points, comme dans cet exemple de serveur Web sur l'interface de bouclage:

127.0.0.1:80

mais avec la notation IPv6, l'adresse elle-même peut contenir des deux-points. Par exemple, voici la forme abrégée de l'adresse de bouclage:

::1

Comment les ports (ou leur équivalent fonctionnel) sont-ils exprimés dans une représentation textuelle d'une adresse IPv6 / d'un point de terminaison de port?

Peter Wone
la source

Réponses:

33

Les protocoles utilisés dans IPv6 sont les mêmes que les protocoles dans IPv4. La seule chose qui a changé entre les deux versions est le schéma d'adressage, DHCP [DHCPv6] et ICMP [ICMPv6]. Donc, fondamentalement, tout ce qui concerne TCP / UDP, y compris la plage de ports (0-65535) reste inchangé.

Edit: Le port 0 est un port réservé dans TCP mais il existe. Voir RFC793

Andrew Moore
la source
6

Ce sont les mêmes, n'est-ce pas? Maintenant, je perds confiance en moi, mais je pensais vraiment qu'IPv6 n'était qu'un changement d'adressage. TCP et UDP sont toujours adressés car ils le sont sous IPv4.

Oli
la source
3
Ce n'est pas seulement un changement d'adresse. Il est censé apporter des fonctionnalités intéressantes (par exemple la multidiffusion globale). Mais oui, il est transparent pour les couches supérieures.
Tarnay Kálmán
4
C'est "juste" un changement d'adresse. Ce dont vous parlez, c'est de l'adressage :) Mais la raison pour laquelle cela concerne / déroute les gens, c'est que la conception du réseau traite «l'adressage» comme des adresses et les «services» comme des numéros de port. Mais vous ne pouvez rien faire dans TCP ou UDP sans les deux, donc la plupart des gens essaient de faire fonctionner l'adressage au niveau du socket, et ne peuvent pas comprendre pourquoi les gens continuent de créer ou de changer le délimiteur: des espaces, puis des points, puis deux points, puis des signes dièse? Donc, oui, je peux voir IPv6 inquiéter les gens.
benc le
6

Je suis à peu près certain que les ports n'ont qu'une partie dans tcp et udp. C'est donc exactement la même chose même si vous utilisez un nouveau protocole IP

svrist
la source
1
DCCP et SCTP ont également des ports, mais les ports dans SCTP sont un peu différents en raison de l'identifiant d'association supplémentaire.
james woodyatt
6

Wikipedia souligne que la syntaxe d'une adresse IPv6 comprend des deux-points et a une forme courte empêchant l'analyse de longueur fixe, et par conséquent, vous devez délimiter la partie d'adresse avec []. Cela évite complètement les erreurs d'analyse impaires.

(Tiré d' une modification apportée par Peter Wone à la question d'origine.)

Ajedi32
la source
5

Je dirais que la meilleure référence est le format des adresses IPv6 littérales dans les URL où l'utilisation de [] est définie.

De plus, si c'est pour la programmation et le code, en particulier Java, je suggérerais de lire la classe pour la définition Inet6Address java / net / URL où l'utilisation de l'adresse Inet4 dans la connotation Inet6 et d'autres cas sont présentés en détails. Pour mon cas, l'adresse mappée IPv4 de la forme :: ffff: wxyz, pour l'adresse IPv6 est utilisée pour représenter une adresse IPv4 a également résolu mon problème. Il permet au programme natif d'utiliser la même structure de données d'adresse et également le même socket lors de la communication avec les nœuds IPv4 et IPv6. C'est le cas sur la configuration par défaut des boîtes Amazon cloud Linux.

zhrist
la source