¿Cómo funcionan los puertos con IPv6?

143

La notación cuádruple con puntos IPv4 convencional separa la dirección del puerto con dos puntos, como en este ejemplo de un servidor web en la interfaz de bucle invertido:

127.0.0.1:80

pero con la notación IPv6, la dirección en sí puede contener dos puntos. Por ejemplo, esta es la forma abreviada de la dirección de bucle invertido:

::1

¿Cómo se expresan los puertos (o su equivalente funcional) en una representación textual de una dirección IPv6 / punto final de puerto?

Peter Wone
fuente

Respuestas:

33

Los protocolos utilizados en IPv6 son los mismos que los protocolos en IPv4. Lo único que cambió entre las dos versiones es el esquema de direccionamiento, DHCP [DHCPv6] e ICMP [ICMPv6]. Básicamente, todo lo relacionado con TCP / UDP, incluido el rango de puertos (0-65535) permanece sin cambios.

Editar: el puerto 0 es un puerto reservado en TCP pero existe. Ver RFC793

Andrew Moore
fuente
6

Son lo mismo, ¿no? Ahora estoy perdiendo la confianza en mí mismo, pero realmente pensé que IPv6 era solo un cambio de direccionamiento. TCP y UDP todavía se abordan ya que están bajo IPv4.

Oli
fuente
3
No es solo un cambio de dirección. Se supone que trae algunas características interesantes (por ejemplo, multidifusión global). Pero sí, es transparente para las capas superiores.
Tarnay Kálmán
44
Es "solo" un cambio de dirección. De lo que estás hablando es de abordar :) Pero la razón por la que preocupa / confunde a las personas es que el diseño de redes trata el "direccionamiento" como direcciones y los "servicios" como números de puerto. Pero no puede hacer nada en TCP o UDP sin ambos, por lo que la mayoría de las personas intentan que funcione el direccionamiento a nivel de socket y no pueden entender por qué las personas siguen inventando o cambiando el delimitador: espacios, puntos, luego dos puntos, luego signos de libra? Entonces, sí, puedo ver que IPv6 preocupa a la gente.
benc
6

Estoy bastante seguro de que los puertos solo tienen una parte en tcp y udp. Entonces es exactamente lo mismo incluso si usa un nuevo protocolo IP

svrist
fuente
1
DCCP y SCTP también tienen puertos, pero los puertos en SCTP son un poco diferentes debido al identificador de asociación adicional.
James Woodyatt
6

Wikipedia señala que la sintaxis de una dirección IPv6 incluye dos puntos y tiene una forma corta que evita el análisis de longitud fija y, por lo tanto, debe delimitar la parte de la dirección con []. Esto evita por completo los errores de análisis extraños.

(Tomado de una edición que Peter Wone hizo a la pregunta original).

Ajedi32
fuente
5

Yo diría que la mejor referencia es Formato para direcciones IPv6 literales en URL donde se define el uso de [].

Además, si es para programación y código, específicamente Java, sugeriría que esto lea Clase para la definición de Inet6Address java / net / URL donde el uso de la dirección Inet4 en connotación Inet6 y otros casos se presentan en detalles. Para mi caso, la dirección asignada a IPv4 de la forma :: ffff: wxyz, para la dirección IPv6 que se usa para representar una dirección IPv4 también resolvió mi problema. Permite que el programa nativo use la misma estructura de datos de dirección y también el mismo socket cuando se comunica con los nodos IPv4 e IPv6. Este es el caso de la configuración predeterminada de los cuadros de Amazon Cloud Linux.

zhrist
fuente