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

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

  • Upload
    elisa

  • View
    46

  • Download
    0

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

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

IPv6 & Java- 1 - Mayo 2001

ESTRATEGIAS DE TRANSICIÓN A IPv6 EN

ENTORNOS JAVA

Óscar Saavedra Villa

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

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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: E STRATEGIAS  D E  T RANSICIÓN  A IP v 6 E N  E NTORNOS  J AVA

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.