Problemas de la interfaz de usuario para aplicaciones IPv6 Winsock
Uno de los cambios más obvios de IPv4 a IPv6 es el tamaño de la dirección IP. Muchas interfaces de usuario proporcionan cuadros de diálogo que permiten a un usuario escribir una dirección IP, como se muestra en la ilustración siguiente.
El direccionamiento en IPv6, debido a muchos factores como la longitud, la complejidad y la importancia de las secciones dentro del espacio de direcciones IPv6, no es favorable a la modificación o especificación de los usuarios. Por lo tanto, se reduce la necesidad de proporcionar a los usuarios la capacidad de especificar su propia dirección. Además, debido a la complejidad asociada al direccionamiento IPv6, es probable que los administradores proporcionen a los administradores la funcionalidad de especificar información de direcciones IPv6 por nodo.
Mostrar una dirección IPv6 en la interfaz de usuario no es inconcebible y, por lo tanto, los desarrolladores deben tener en cuenta la variabilidad en el tamaño de una dirección IPv6 al modificar una aplicación para admitir IPv6.
En el resto de esta sección se describe la diferencia entre la previsibilidad de longitud de dirección IPv4 y las consideraciones de longitud de dirección IPv6. En esta sección se supone que las direcciones IPv6 se muestran en su representación hexadecimal.
Las direcciones IPv4 son predecibles en tamaño, ya que siguen rígidamente la notación decimal punteada, como se muestra en el ejemplo de dirección siguiente:
10.10.256.1
Las direcciones IPv6 no son tan predecibles, debido a la convención de direcciones IPv6 que permite el uso de dos puntos (::) para representar una serie de ceros. Por lo tanto, las siguientes representaciones de dirección IPv6 equivalen a la misma dirección IPv6:
1040:0:0:0:0:0:0:1
1040::1
La capacidad de representar una serie de ceros con dos puntos da como resultado una longitud impredecible para cualquier IPv6 determinado, que requiere que los programadores tengan en cuenta esta funcionalidad al crear pantallas de interfaz de usuario de direcciones IPv6. Sin duda, los desarrolladores deben asegurarse de que la interfaz de usuario es capaz de mostrar direcciones IP que no usan dos puntos para representar una serie de ceros (primera dirección a continuación), así como ser capaz de mostrar la dirección IPv6 más larga posible (segunda dirección a continuación, con la dirección IPv4 incrustada) al crear su interfaz de usuario compatible con IPv6. Tenga en cuenta también que agregar el identificador de ámbito (ID) a la siguiente dirección aumentaría su longitud hasta otros once caracteres:
21DA:00D3:0010:2F3B:02AA:00FF:FE28:9C5A
0000:0000:0000:0000:0000:ffff:123.123.123.123
Otra consideración importante es si las direcciones basadas en nombres son más adecuadas que las direcciones IPv6 basadas en números. Si las direcciones basadas en nombres son más adecuadas, se debe tener en cuenta las convenciones de nomenclatura en la interfaz de usuario, incluida la comprobación de errores de entrada adecuada para la tarea.
Hay otras complejidades asociadas con la visualización de direcciones IPv6 que los desarrolladores deben tener en cuenta al modificar su aplicación y al diseñar representaciones de interfaz de usuario de direcciones IPv6. Algunas de estas consideraciones son las siguientes:
- ¿La dirección debe contener todas las secuencias de ceros o usar la notación de dos puntos?
- ¿Es más adecuado usar una representación de dirección basada en números o una representación basada en nombres?
- ¿El usuario está interesado en distinguir un aspecto determinado del esquema de direccionamiento, como el prefijo de subred, el identificador de ámbito u otros subcampos?
- ¿El usuario está interesado en determinar otros aspectos de la dirección, como el identificador de TLA, el identificador de NLA o el identificador del Acuerdo de Nivel de Servicio?
- ¿La interfaz de usuario será capaz de distinguir las direcciones IPv6 insertadas y, si es así, cómo se controlarán y mostrarán? ¿Distinguirá entre las direcciones compatibles con IPv4 y las direcciones IPv4 asignadas a IPv6 al mostrar la información de direcciones al usuario?
También hay otras consideraciones, y los desarrolladores deben considerar cuidadosamente a su audiencia de clientes al desarrollar interfaces de usuario de dirección IP.
Prácticas recomendadas
- Los desarrolladores deben tener en cuenta el enfoque adecuado para cada interfaz de usuario al modificar su aplicación para admitir IPv6. Asegurarse de que la interfaz de usuario contiene la longitud suficiente para mostrar direcciones IPv6 es imperativa, ya que determina si esa dirección está basada en el número o el nombre.
- Siempre que sea posible, use las funciones de Winsock y del asistente de IP existentes al usar direcciones IPv6 en lugar de volver a implementar esta lógica. Por ejemplo, las funciones RtlIpv6AddressToString, RtlIpv6AddressToStringEx, RtlIpv6StringToAddress y RtlIpv6StringToAddressEx se pueden usar para convertir entre direcciones IPv6 y representaciones de cadena de estas direcciones IPv6.
Código que se va a evitar
- Los elementos de la interfaz de usuario que dependen de una dirección de tamaño IPv4 deben someterse a un examen y parte de ese examen deben incluir si la información que proporcionó (en IPv4) es adecuada para IPv6.
- La capacidad de especificar una dirección IP también debe depender de si IPv4 está en uso o IPv6 está disponible. Si IPv6 está disponible, ¿es adecuado especificar direcciones basadas en números (hexadecimales) o direcciones basadas en nombres?
Tareas de codificación
Para revisar la base de código existente de IPv4 a IPv4 e interoperabilidad IPv6
- Realice una revisión visual de la interfaz de usuario y busque cualquier elemento que dependa de una longitud específica para la cadena de dirección IP. Los controles con la notación decimal con puntos de cuatro secciones fácilmente identificados son fáciles de detectar, pero otros no. Puede haber lugares en los que se puedan mostrar las direcciones IP, como en los cuadros de diálogo, donde una dirección IPv6 podría quedar sin sala de visualización.
- Después de encontrar cualquiera de estos controles, examine si es adecuado mostrar la dirección al usar IPv6. Si es posible que IPv4 o IPv6 esté en uso, asegúrese de que la interfaz de usuario pueda acomodar cualquiera de las dos. Reemplace o aumente los controles por controles de interfaz de usuario que puedan mostrar una dirección IPv6 completa.
- Siga las pruebas de la interfaz de usuario para asegurarse de que los cambios que habilitan la visualización de direcciones IPv6 mantienen la facilidad de uso prevista al usar direcciones IPv4. Además, pruebe las ubicaciones de visualización de direcciones de protocolo, como los cuadros de diálogo informativos, para asegurarse de que controlan correctamente las direcciones IPv6.
Temas relacionados