IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar...

34
IPv6 & Java - 1 - Mayo 2001 ESTRATEGIAS DE TRANSICIÓN A IPv6 EN ENTORNOS JAVA Óscar Saavedra Villa

Transcript of IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar...

Page 1: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 1 - Mayo 2001

ESTRATEGIAS DE TRANSICIÓN A IPv6 EN

ENTORNOS JAVA

Óscar Saavedra Villa

Page 2: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 2 - Mayo 2001

Índice

Introducción.

Análisis del paquete java.net.

Diseño de los cambios.

Fase de codificación.

Pruebas.

Conclusiones.

Page 3: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 3 - Mayo 2001

Índice

INTRODUCCIÓN.

Análisis del paquete java.net.

Diseño de los cambios.

Fase de codificación.

Pruebas.

Conclusiones.

Page 4: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 4 - Mayo 2001

Introducción

Entorno Actual Sociedad de la Información (SI).

Tecnologías de la Información y las Comunicaciones (TIC).

Entorno complejo y turbulento.

“Todo el mundo, toda la información, en cualquier momento, en cualquier lugar”.

Page 5: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 5 - Mayo 2001

Introducción

Necesidad de un nuevo protocolo IP

Entorno actual IPv4 obsoleto. Número de dispositivos conectados. Seguridad. Movilidad. Calidad de servicio. Etc.

Page 6: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 6 - Mayo 2001

Introducción

Ventajas de IPv6 frente IPv4

Mayor capacidad de direccionamiento.

Servicios de seguridad.

Soporte integrado de la movilidad.

Soporte para calidad de servicio (QoS).

Simplificación de cabeceras.

Otras.

Page 7: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 7 - Mayo 2001

Introducción

Mecanismos de transición

Dual IP Stack Implementation.

Embedding IPv4 Addresses Into IPv6 Addresses.

IPv6 over IPv4 Tunneling.

IPv4/IPv6 Header Transition.

Page 8: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 8 - Mayo 2001

Introducción

Objetivo del proyecto

Realizar una implementación de

la pila dual de protocolos IP en Java,

que permita a las aplicaciones existentes y

a las nuevas aplicaciones comunicarse

tanto con nodos IPv4 como con nodos IPv6.

Page 9: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 9 - Mayo 2001

Índice

Introducción.

ANÁLISIS DEL PAQUETE JAVA.NET.

Diseño de los cambios.

Fase de codificación.

Pruebas.

Conclusiones.

Page 10: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 10 - Mayo 2001

Análisis del paquete java.net

Composición

Clases encargadas de los URL.

Clases encargadas de los sockets. Clases encargadas de las direcciones IPv4. Clases encargadas del protocolo UDP. Clases encargadas del protocolo TCP.

Page 11: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 11 - Mayo 2001

Análisis del paquete java.net

Diagrama UML

PlainDatagramSocketImpl(from net)

DatagramSocket(from net)

InetAddressImpl(from net)

Socket(from net)

InetAddress(from net)

ServerSocket(from net)

SocketImpl(from net)

SocketOptions

(from net)

MulticastSocket(from net)

DatagramSocketImpl(from net)

delega en

produce

delega en

delega en delega en delega en

SocketImplFactory(from net)

<<Interface>>

PlainSocketImpl(from net)

DatagramPacket(from net)

SocketInputStream(from net)

SocketOutputStream(from net)

Page 12: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 12 - Mayo 2001

Análisis del paquete java.net

Conclusiones Delegación Sustitución.

Estructura en niveles o capas.

PROGR./DESARR.

API

NÚCLEO

JDK

Page 13: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 13 - Mayo 2001

Índice

Introducción.

Análisis del paquete java.net.

DISEÑO DE LOS CAMBIOS.

Fase de codificación.

Pruebas.

Conclusiones.

Page 14: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 14 - Mayo 2001

Diseño de los cambios

La interfaz JNI

Código Java

JNI

Código C

API sockets

Librerías S.O.

API

NÚCLEO

API

Page 15: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 15 - Mayo 2001

Diseño de los cambios

Basic Socket Interface for IPv6

API usado por el 90% de las aplicaciones.

Cambios especificados en el RFC 2553. Funciones del núcleo de sockets. Estructuras de datos para las direcciones. Funciones de traducción de nombres a direcciones. Funciones de conversión de direcciones.

Page 16: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 16 - Mayo 2001

Diseño de los cambios

Los cambios

Código Java

JNI

Código C

API sockets IPv6

Librerías S.O.

API

Page 17: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 17 - Mayo 2001

Diseño de los cambios

Estrategia de realización Clases que representan las direcciones IP.

Clases encargadas del protocolo UDP.

Clases encargadas del protocolo TCP.

Page 18: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 18 - Mayo 2001

Índice

Introducción.

Análisis del paquete java.net.

Diseño de los cambios.

FASE DE CODIFICACIÓN.

Pruebas.

Conclusiones.

Page 19: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 19 - Mayo 2001

Fase de codificación

Algunos detalles Las direcciones IP.

El cliente SOCKS v4/v5.

El soporte para multicast.

Etc.

Page 20: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 20 - Mayo 2001

Fase de codificación

Las direcciones IP Java 2 de Sun para Linux int address; JANO byte address[];

Ventajas: Válido tanto para direcciones IPv4 como

direcciones IPv6. Longitud del array distingue entre un tipo u otro

de dirección.

Inconvenientes: Aumenta la complejidad de algunas funciones.

Page 21: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 21 - Mayo 2001

Fase de codificación

Herramienta de compilación: Ant “It’s a kind of like make, without make’s wrinkles”.

Ventajas: Escrita en Java Independiente de la plataforma. Extensión de tareas mediante clases Java. Utilización de XML en los ficheros de configuración. Permite ejecutar comandos de shell.

Page 22: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 22 - Mayo 2001

Ficheros de configuración XML: build.xml

Fase de codificación

Herramienta de compilación: Ant

Proyecto

...

Objetivo 1

Objetivo 2

Tarea 1.1

...

Tarea 2.1

...

<project name=”prueba” default=”compilar”>  <target name=”compilar”> <mkdir dir=”build”/> <javac srcdir=”src” dstdir=”build”> <include name=”*.java”/> </javac> </target>  <target name=”jar” depends=”compilar”> <mkdir dir=”lib”/> <jar jarfile=”test.jar” includes=”*.class”/> </target></project>

Page 23: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 23 - Mayo 2001

Índice

Introducción.

Análisis del paquete java.net.

Diseño de los cambios.

Fase de codificación.

PRUEBAS.

Conclusiones.

Page 24: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 24 - Mayo 2001

Pruebas

Consideraciones iniciales

Probar es descubrir errores; cuantos más mejor.

La prueba exhaustiva es imposible.

Hay que documentar las pruebas.

Las pruebas requieren tiempo y esfuerzo.

Page 25: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 25 - Mayo 2001

Pruebas

Marco de pruebas: JUnit

Objetivo: Automatizar e integrar las pruebas en el proceso de compilación.

Solución: JUnit.

Características: Es muy sencillo. Se integra con Ant, mediante la tarea <junit>. Comprueba los resultados e informa de ellos. Está íntegramente escrito en Java.

Page 26: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 26 - Mayo 2001

Pruebas

Marco de pruebas: JUnit

Una batería de pruebas.

Cuatro pruebas: InetAddressTest. PlainDatagramSocketTest. PlainSocketTest. SocksTest.

Al menos, un test por cada método.

testGetByName(). Etc.

Batería de pruebas

...

Prueba 1

Prueba 2

Test 1.1

...

Test 2.1

...

Page 27: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 27 - Mayo 2001

Pruebas

Ciclo de ejecución

$>ant alltests$>ant alltests Compilaciónftes. Java

Compilaciónftes. Java

Creaciónfichero .jarCreación

fichero .jar

EjecuciónTest_PDSIEjecuciónTest_PDSI

Creacióncabeceras JNI

Creacióncabeceras JNI

Creaciónlibrería .soCreación

librería .soCompilaciónbatería JUnitCompilaciónbatería JUnit

Compilaciónftes. C

Compilaciónftes. C

EjecuciónTest_IA

EjecuciónTest_IA

Conversión XML HTMLConversión XML HTML $>_$>_Ejecución

Test_PSIEjecuciónTest_PSI

Page 28: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 28 - Mayo 2001

Pruebas

Ciclo de ejecución

$>ant alltests$>ant alltests <javac=“src”><javac=“src”> <jar><jar>

<junit=“PDSI”><junit=“PDSI”>

<javah><javah>

<exec=“ld”><exec=“ld”><javac=“test”><javac=“test”> <exec=“gcc”><exec=“gcc”><junit=“IA”><junit=“IA”>

<junitreport><junitreport> $>_$>_<junit=“PSI”><junit=“PSI”>

Page 29: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 29 - Mayo 2001

Índice

Introducción.

Análisis del paquete java.net.

Diseño de los cambios.

Fase de codificación.

Pruebas.

CONCLUSIONES.

Page 30: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 30 - Mayo 2001

Conclusiones

Resumen Situación: Entorno actual IPv4 obsoleto IPv6.

Problema: Transición entre versiones.

Solución: Mecanismos de transición.

Objetivo: Implementar pila dual IPv4/IPv6 en Java.

Resultado: JANO.

Page 31: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 31 - Mayo 2001

Conclusiones

JANO Proceso de desarrollo sw: C.V. en cascada.

Ritmo de desarrollo: ~400 horas de trabajo. Análisis: ~50 horas. Diseño: ~25 horas. Codificación: ~80 horas. Pruebas: ~100 horas. Redacción de la memoria: ~145 horas.

Redacción continua de la memoria.

Page 32: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 32 - Mayo 2001

Conclusiones

Mejoras y futuros trabajos Flow labels.

Traffic classes.

Authentication.

Hop-By-Hop options.

Destination options.

Routing header options.

Page 33: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 33 - Mayo 2001

Conclusiones

Más información JANO:

http://sourceforge.net/projects/jano

IPv6: http://www.ipv6.org/ http://www.stardust.com/ipv6/ http://playground.sun.com/ipng/ http://www.6bone.net/ Etc.

Page 34: IPv6 & Java - 1 - Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa.

IPv6 & Java- 34 - Mayo 2001

Índice

Introducción.

Análisis del paquete java.net.

Diseño de los cambios.

Fase de codificación.

Pruebas.

Conclusiones.