1 / 34

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. Óscar Saavedra Villa. Índice. Introducción. Análisis del paquete java.net . Diseño de los cambios. Fase de codificación. Pruebas. Conclusiones. Índice. INTRODUCCIÓN. Análisis del paquete java.net . Diseño de los cambios.

elisa
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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.

More Related