Download
e strategias d e t ransici n a ip v 6 e n e ntornos j ava n.
Skip this Video
Loading SlideShow in 5 Seconds..
E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA PowerPoint Presentation
Download Presentation
E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA

E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA

145 Views Download Presentation
Download Presentation

E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. ESTRATEGIAS DE TRANSICIÓN AIPv6EN ENTORNOS JAVA Óscar Saavedra Villa

  2. Índice • Introducción. • Análisis del paquete java.net. • Diseño de los cambios. • Fase de codificación. • Pruebas. • Conclusiones.

  3. Índice • INTRODUCCIÓN. • Análisis del paquete java.net. • Diseño de los cambios. • Fase de codificación. • Pruebas. • Conclusiones.

  4. IntroducciónEntorno 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”.

  5. IntroducciónNecesidad de un nuevo protocolo IP • Entorno actual  IPv4 obsoleto. • Número de dispositivos conectados. • Seguridad. • Movilidad. • Calidad de servicio. • Etc.

  6. IntroducciónVentajas 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.

  7. IntroducciónMecanismos de transición • Dual IP Stack Implementation. • Embedding IPv4 Addresses Into IPv6 Addresses. • IPv6 over IPv4 Tunneling. • IPv4/IPv6 Header Transition.

  8. IntroducciónObjetivo 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 aplicacionescomunicarse tanto con nodos IPv4 como con nodos IPv6.

  9. Índice • Introducción. • ANÁLISIS DEL PAQUETE JAVA.NET. • Diseño de los cambios. • Fase de codificación. • Pruebas. • Conclusiones.

  10. Análisis del paquete java.netComposició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.

  11. Análisis del paquete java.netDiagrama UML

  12. Análisis del paquete java.netConclusiones • Delegación  Sustitución. • Estructura en niveles o capas. PROGR./DESARR. API JDK NÚCLEO

  13. Índice • Introducción. • Análisis del paquete java.net. • DISEÑO DE LOS CAMBIOS. • Fase de codificación. • Pruebas. • Conclusiones.

  14. Diseño de los cambiosLa interfaz JNI API Código Java API JNI NÚCLEO Código C API sockets Librerías S.O.

  15. Diseño de los cambiosBasic 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.

  16. Diseño de los cambiosLos cambios API Código Java JNI Código C API sockets IPv6 Librerías S.O.

  17. Diseño de los cambiosEstrategia de realización • Clases que representan las direcciones IP. • Clases encargadas del protocolo UDP. • Clases encargadas del protocolo TCP.

  18. Índice • Introducción. • Análisis del paquete java.net. • Diseño de los cambios. • FASE DE CODIFICACIÓN. • Pruebas. • Conclusiones.

  19. Fase de codificaciónAlgunos detalles • Las direcciones IP. • El cliente SOCKS v4/v5. • El soporte para multicast. • Etc.

  20. Fase de codificaciónLas 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.

  21. Fase de codificaciónHerramienta 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.

  22. Fase de codificaciónHerramienta de compilación: Ant • Ficheros de configuración XML: build.xml Proyecto ... <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> Objetivo 1 Tarea 1.1 ... Objetivo 2 Tarea 2.1 ...

  23. Índice • Introducción. • Análisis del paquete java.net. • Diseño de los cambios. • Fase de codificación. • PRUEBAS. • Conclusiones.

  24. PruebasConsideraciones 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.

  25. PruebasMarco 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.

  26. PruebasMarco 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 Test 1.1 ... Prueba 2 Test 2.1 ...

  27. PruebasCiclo de ejecución $>ant alltests Compilación ftes. Java Creación fichero .jar Creación cabeceras JNI Ejecución Test_IA Compilación batería JUnit Creación librería .so Compilación ftes. C Ejecución Test_PDSI Ejecución Test_PSI Conversión XML  HTML $>_

  28. PruebasCiclo de ejecución $>ant alltests <javac=“src”> <jar> <javah> <junit=“IA”> <javac=“test”> <exec=“ld”> <exec=“gcc”> <junit=“PDSI”> <junit=“PSI”> <junitreport> $>_

  29. Índice • Introducción. • Análisis del paquete java.net. • Diseño de los cambios. • Fase de codificación. • Pruebas. • CONCLUSIONES.

  30. ConclusionesResumen • 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.

  31. ConclusionesJANO • 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.

  32. ConclusionesMejoras y futuros trabajos • Flow labels. • Traffic classes. • Authentication. • Hop-By-Hop options. • Destination options. • Routing header options.

  33. ConclusionesMá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.

  34. Índice • Introducción. • Análisis del paquete java.net. • Diseño de los cambios. • Fase de codificación. • Pruebas. • Conclusiones.