viernes, 24 de mayo de 2013

Tarea 8

Vehicle classification in distributed sensor networks


Hola compañeros y gente que regularmente visita mi blog, esta entrada corresponde a la tarea número 8 de la materia de "Redes de telecomunicaciones". La actividad consiste en elaborar un resumen y dar mis conclusiones de una publicación referente a las "redes sensoras", la publicación que yo elegí se titula: Vehicle classification in distributed sensor networks, los autores de la publicación son Marco F. Duarte y Yu Hen Hu (2003).



Introducción

La aparición de dispositivos pequeños y de bajo consumo que integran micro-sensores y actuación con capacidades de comunicación de procesamiento a bordo y wireless, estimula un gran interés en las redes de sensores inalámbricos distribuidos (WDSN). Un WDSN es frecuentemente usado para realizar tareas tales como la detección, clasificación, la localización y el seguimiento de uno o más objetivos dentro del campo del sensor. Los sensores son típicamente baterías y un ancho de banda de comunicación inalámbrica limitada. Por lo tanto, se necesitan algoritmos de procesamiento de señales de colaboración eficientes que consumen menos energía para el cálculo y la comunicación para estas aplicaciones.La clasificación por tipo de vehículo es una tarea importante de procesamiento de señal que ha encontrado aplicaciones militares y civiles en general, como los sistemas de transporte inteligentes. Típicamente, los sensores acústicos o sísmicos se utilizan para tal fin. Sin embargo, los resultados anteriores se han centrado en la clasificación en base a señales obtenidas en un único o pocos sensores y procesados ​​de una manera centralizada. Por lo tanto estos resultados existentes son sólo parcialmente útiles para una aplicación WDSN.

En este trabajo, consideramos la aplicación de dicha tarea en un entorno WDSN. Cada sensor en el WDSN estará equipado con un micrófono o un geófono. Tras la detección de la presencia de un vehículo en las cercanías del sensor, el procesador a bordo va a extraer vectores de características sobre la base de la acústica o señal sísmica detectada por los sensores. En una red de sensores inalámbricos, el ancho de banda de la comunicación es muy limitada. Por lo tanto, en lugar de enviar el vector de características, un clasificador de patrones local en cada nodo sensor primero realizará decisiones locales sobre qué tipo de vehículo se basa en su propio vector de características.  

La probabilidad de clasificación correcta también puede ser estimada. La toma de decisiones locales, junto con la probabilidad estimada de ser una decisión correcta, se puede codificar y se transmite de manera eficiente a través del canal inalámbrico a un centro local de fusión, listo para la decisión de fusión. Por lo tanto, desde un punto de vista de procesamiento de señales, el problema de clasificación de vehículos WDSN consta de dos partes: la clasificación local y fusión de decisiones globales.

El propósito de este trabajo es describir el desarrollo de la clasificación de datos de vehículos en una red de sensores inalámbricos distribuidos y el rendimiento de referencia cuando se aplica un conjunto de métodos existentes de clasificación de patrones.


Características de una red de sensores inalámbricos distribuidos

En una red de sensores inalámbricos distribuidos, los nodos individuales se despliegan al azar sobre un campo determinado sensor. Cada nodo sensor estará equipado con un procesador a bordo, un transceptor de comunicación inalámbrica, varios tipos de sensores, dispositivos de toma de muestras digitales, y la batería. A menudo, los nodos de sensores dentro de una región geográfica se agruparán para formar un grupo local de modo que una cierta jerarquía de mando y control sobre todo el campo de sensor puede ser establecida. Cada clúster local elegirá a uno o más nodos de sensores como la cabeza, donde se realizará la fusión de decisión espacial de los sensores dentro de un grupo. 

Una vez que se realiza una detección positiva, el algoritmo de clasificación de patrones se pondrá en marcha para clasificar la firma acústica de entrada en una de las clases predefinidas. Hasta ahora, todas estas tareas se llevan a cabo en el microprocesador a bordo de cada nodo individual del sensor. Por lo tanto, la cuestión clave en este caso es reducir la complejidad de cálculo y los requisitos de almacenamiento a bordo y por lo tanto conservar la reserva de energía. Esta restricción de la energía implica que no todos los algoritmos de clasificación serán adecuados para la aplicación en un nodo sensor WDSN. Por lo tanto, se debe buscar una compensación del rendimiento y la energía. Las decisiones locales pueden ser codificadas de manera eficiente y transmitidas desde el nodo sensor individual al cluster local principal para la fusión de decisión. Dado que no todos los nodos de sensores dentro de un WDSN detectarán la presencia de un vehículo en movimiento dentro del campo del sensor, no todos los nodos del sensor producirán un resultado de clasificación local. Por otra parte, debido a un error de comunicación inalámbrica y la posible congestión de la red, no todas las decisiones locales se pueden reportar de nuevo a la cluster local principal en el momento de la fusión decisión. Como tal, la decisión de fusión debe realizarse con conocimiento imperfecto de las decisiones locales. 

Los nodos distribuidos en una región geográfica generalmente están particionados de acuerdo a las células de espacio de tiempo como se ilustra en la siguiente imagen:


Cada célula tiene un nodo gestor que es responsable de la coordinación del enrutamiento y algoritmos de CSP dentro de esa célula.
Los datos en tiempo real del muestreo se obtuvieron a partir de los sensores en diferentes modalidades de percepción de las distintas situaciones que involucran vehículos de objetivo móvil. Las modalidades de detección podría ser acústica, sísmica, infrarrojo pasivo, por nombrar algunas.
Han sido propuestos una amplia variedad de algoritmos para los fines de clasificación, que tienen cada uno sus propias ventajas y desventajas. El objetivo principal en el caso de redes de sensores distribuidos es el desarrollo de algoritmos de baja complejidad que clasifican estas características extraídas con el fin de hacer un uso eficiente del limitado poder y la capacidad de ancho de banda de los nodos. Diferentes algoritmos podrían ser utilizados en conjunción para proporcionar heterogeneidad algorítmica.

Descripción del experimento

El conjunto de datos que se están discutiendo en este documento se obtuvo en el tercer experimento situacional SensIT (SITEX02), organizado por el programa DARPA / IXOS SensIT (Tecnología de Información de Sensores). En este experimento, 75 nodos WINS NG 2,0 fueron desplegados en el Cuerpo Aéreo de Marina del Centro de Combate Terrestre en Twenty-nine Palms, CA, Estados Unidos. Durante un período de dos semanas, se han llevado a cabo varios experimentos. Un mapa de todo el campo se representa en la siguiente imagen:

  (Sistema del sensor de campo)


Que consiste en una carrera de este a oeste y una carretera norte-sur y una zona de intersección. Los datos recogidos para este conjunto de datos se registraron en una subregión rectangular. Estos datos describen las carreras, que tipo de vehículo se mueve de dónde a dónde, etc, las carreras de pruebas se llevaron a cabo por la conducción de diferentes tipos de vehículos en todo el campo de pruebas, donde se despliegan los nodos después de la disposición mostrada en la imagen anterior. El sensor de campo es un área de aproximadamente 900 x 300 m2 en MCAGCC. Los sensores, indicados por puntos de diferentes colores en la imagen anterior, se colocan a lo largo del lado de la carretera. Los rangos de separación de sensores adyacentes son de 20m a 40m
 

Los nodos WINS NG 2,0 (que se muestra en la primera imagen), proporcionan un sistema en el que los usuarios SensIT pueden construir y probar sus algoritmos de sensores distribuidos. Cada nodo sensor está equipado con tres tipos de modalidades de percepción: acústico (micrófono), sísmicos (geófonos) e infrarrojos (sensor IR polarizado).

Extracción de eventos

Los nodos utilizados en el experimento registran los datos para  diferentes sensores, o modalidades, los datos se registran para la  modalidades acústicas, sísmicas e infrarrojas a una velocidad de 4960 Hz. Para los diferentes tipos de vehículos, el vehículo era conducido por las tres carreteras que se muestran en imagen anterior; cada carretera recibió un número de ejecución diferente. El camino de Oeste a Norte fue el número 1, el camino de Norte a Este fue el número 2, y el camino de Este a Oeste fue el número 3. Las carreras posteriores fueron nombrados incrementalmente. 
Después se registró la serie, que era necesaria para extraer el acontecimiento real de la serie de ejecución. Aunque la carrera puede ser de varios minutos de duración, la serie de eventos será mucho más corta, ya que sólo se extiende por el corto período de tiempo cuando el objetivo está cerca del nodo. Durante las tareas de procesamiento de señal de colaboración, el algoritmo de detección determina si el vehículo está presente o no en la región con el fin de realizar la clasificación en la serie de tiempo. El algoritmo de detección  CFAR da salida a una decisión cada 0.75 segundos; basado en el nivel de energía de la señal acústica, como se muestra en la siguiente imagen:

(Algoritmo de tasa de falsas alarmas: los tiempos marcados con altos valores de energía fueron marcados como detecciones)
 
Para la extracción de conjunto de datos, se utilizó un clasificador k-Nearest Neighbor para etiquetar cada 0.75 segundos los segmentos de datos de cada nodo separado como una detección o no detección.
Dos características se utilizan para esta clasificación: la distancia entre el vehículo y el nodo y la energía de la señal acústica para el tiempo dado. Las pistas AAV3 y DW3 se utilizaron para el entrenamiento, y los eventos en estas pistas fueron identificados de forma manual, es decir, esuchando directamente las series de tiempo.
De este clasificador se obtiene el etiquetado de eventos para cada uno de los nodos para cada ejecución. Utilizamos la agrupación para reducir el número de eventos por corrida si es posible (ver la siguiente imagen):

(Detección de etiquetado para corridas de entrenamiento. Los 2 ejes representan las 2 dimensiones de la característica; las marcas oscuras representan las detecciones y las marcas claras representan las no detecciones)


El resultado de este procedimiento es la extracción de las series de tiempo de los largos de la varible que contendrá la información acústica sísmica y PIR del tiempo que rodea el punto de enfoque del vehículo más cercano al nodo (ver la siguiente imagen):

(Etiqueta de detección de muestras y resultado de la detección de CFAR, la línea azul representa la energía, la línea negra representa la etiqueta de detección derivado del clasificador kNN, y la línea roja representa el resultado de la detección de CFAR)


Extracción de características

Las series de tiempo de evento se utilizan para extraer características multidimensionales para su clasificación. La modalidad de infrarrojos no se utiliza en esta etapa, ya que la longitud de la señal observada es muy corta y no uniforme a través de eventos. Para este conjunto de datos, el featuresare extraída basado en el espectro de frecuencia de la acústica y
señales sísmicas del evento. La transformada rápida de Fourier (FFT) de estas señales se calcula para cada 512 puntos de muestra (cada 10.32 ms para la frecuencia de muestreo actual), que produce 512 puntos de la transformada rápida de Fourier con la resolución de 9.6875 Hz.

Para la modalidad acústica se optó por los primero 100 puntos, que contiene información de frecuencia de hasta 968.75 Hz.

Clasificación local

En esta sección, se ofrecerá algún tipo de evaluación de referencia del conjunto de datos usando tres algoritmos de clasificación comunes. Vale la pena señalar que, en situaciones de la vida real, el mayor factor de error de inducción para el caso de detección de la vigilancia de vehículos es la presencia de factores de ruido de alta energía, como la eólica y las transmisiones de radio. Con el fin de evitar la clasificación errónea de estas falsas detecciones en una clase de vehículo válido, se ha implementado una clase de ruido con las características extraídas de las series de tiempo que muestran la ocurrencia de uno de estos eventos de ruido de alta energía. Por lo tanto, para los experimentos, hemos creado un escenario de clasificación de tres categorías, lo probamos con el algoritmo k-Nearest neighbor, Maximum likelihood y el algoritmo Support Vector Machine. 

Región de fusión


Además de la localización y el seguimiento del objetivo, también es necesario clasificar el tipo de vehículo dentro de los resultados reportados de la clasificación de objetivo de destino de los nodos sensores. Tenga en cuenta que en la arquitectura del sistema actual, la localización objetivo puede ser realizada antes de la clasificación en toda la región de destino.
Por lo tanto, si la posición de destino es relativamente exacta, es posible utilizar la localización estimada del objetivo y el sensor de coordenadas conocidas, para calcular la distancia al sensor objetivo. Entonces, se puede estimar la probabilidad derivada empíricamente de clasificación correcta en un nodo sensor en particular sobre la base de la información de la distancia.


(Clasificación promedio y resultados de la tasa de aceptación de diferentes
métodos de fusión de la región de clasificación
)
  


Bibliografía

- Vehicle classification in distributed sensor networks. Marco F. Duarte, Yu Hen Hu. (2003). [Documento en línea. <http://www-ece.rice.edu/~duarte/images/JPDC.pdf>. [Consulta: 24-05-13]

Cualquie duda o aclaración pueden dejarla en la caja de comentarios.

Saludos a todos!

 

Laboratorio 13

Laboratorio 13 - Simulación de una red sensora

Hola a todos mis compañeros y gente que regularmente visita mi blog, esta entrada corresponde a la actividad número 13 del laboratorio de "Redes de telecomunicaciones". La actividad consiste en elaborar una simulación simple de una red sensora (ad hoc) pequeña con nodos estáticos en un terreno 3D. Donde la comunicación entre los nodos es con rangos ajustables y TTL (Time To Live).

Para estudiar una propiedad de mi interés decidí simular un escenario en el que se usen sensores ambientales, podrían entrar variables como temperatura, fuego, humedad, etc.
Podemos tomar cualquiera de estas 3 variables para simular el escenario (en realidad no importa cual de las 3 tomemos).

Bien, yo preparé un plano en 3D en el que desde cualquier nodo se envia la información hacia la estación base, que es la que procesa y toma medidas en función a los datos recibidos por los demás nodos sensores.
El plano se ve de la siguiente manera (dependiendo de los nodos que yo ponga, puedo pasar como parámetro el número de nodos que yo quiera):
Bien para comenzar, yo obtuve de manera aleatoria los rangos de alcance de cada nodo sensor (cobertura), donde todo los nodos tienen exactamente el mismo rango de alcance.
Seguido de esto, también establezco de manera aleatoria el TTL, que será nuestro indicador de por cuántos nodos puede pasar el paquete antes de ser descartado por la nuestra red. 

Luego de obtener estos valores lo que hice fue generar el plano en 3D, seguido de esto ingrese cada uno de los nodos en el mismo plano. El código que realiza este proceso es el siguiente (posicioné hasta el último la estación base):
def main():

 fig = plt.figure()
 ax = fig.add_subplot(111, projection='3d')

 propx = random.randint(0, 5) #Proporcion de crecimiento en el eje x
 ttl = random.randint(0, 4) # Cuantos nodos puede pasar un paquete antes de ser descartado por la red
 cober = random.randint(0, 5) #Cobertura de rango para cada nodo (todos los nodos tienen la misma cobertura)

 #ax.text2D(0.05, 0.95, "Terreno 3D", transform=ax.transAxes)

 ax.set_xlim3d(0, 10)
 ax.set_ylim3d(0, 10)
 ax.set_zlim3d(0, 10)

 c = 'r'
 m = 'o'

 coords = [] # Guardar las coordenadas de cada uno de los nodos en el plano (formato x, y, z)
 listacoords = [] # Guarda cada una de las coordenadas
 n = int(argv[1]) #Para agregar n nodos a la simulacion
 for i in range(n):
  if i == 0:
   coords = []
   xs = random.randint(0, 10)
   ys = random.randint(0, 10)
   zs = random.randint(0, 10)
   coords.append(i)
   coords.append(xs)
   coords.append(ys)
   coords.append(zs)
   ax.scatter(xs, ys, zs, c=c, marker=m)
   ax.text(xs, ys, zs, ("nodo: ", i), color='green')
   listacoords.append(coords)

  elif (i != 0) and (i != (n-1)):
   coords = []
   #xs = random.randint(xs+propx, 10)
   xs = xs + propx   
   ys = random.randint(0, 10)
   zs = random.randint(0, 10)
   coords.append(i)
   coords.append(xs)
   coords.append(ys)
   coords.append(zs)
   ax.scatter(xs, ys, zs, c=c, marker=m)
   ax.text(xs, ys, zs, ("nodo: ", i), color='green')
   listacoords.append(coords)
    elif i == (n-1):
   c = 'black'
   coords = []
   #xs = random.randint(0, 10)
   xs = xs + propx   
   ys = random.randint(0, 10)
   zs = random.randint(0, 10)
   coords.append(i)
   coords.append(xs)
   coords.append(ys)
   coords.append(zs)
   ax.scatter(xs, ys, zs, c=c, marker=m)
   ax.text(xs, ys, zs, ("Base"), color='green')
   listacoords.append(coords)
   print "\n", i, " es el ultimo elemento del for"
   print coords
 
 ax.set_xlabel('X Label')
 ax.set_ylabel('Y Label')
 ax.set_zlabel('Z Label')


Además en el punto donde posiciono a cada nodo, agrego una nota sobre el ID del nodo sensor (el último nodo tiene la etiqueta de "estación base").

Como ya lo comenté antes, obtendo primero el valor de rango que tiene cada nodo sensor, pero, ¿qué sucede si los valores de rango de cobertura no son de la magnitud suficiente como para comunicarse son su vecino?, es decir, si el rango de cobertura no abarca hasta su vecino, la transmisión no podrá efectuarse y la red queda incomunicada, impidiendo que todos los datos le lleguen a la estación base para su futuro procesamiento y toma de medidas.

Para esto calculé la distancia entre cada uno de los nodos próximos, con el fin de obtener un valor para comparar con el rango de cobertura. Si el rango de cobertura de nodo1 + rango de cobertura de nodo2 es mayor o igual a la distancia entre estos nodos, la comunicación puede efectuarse entre ellos, en caso contrario la comunicación no podría llevarse acabo, quedando incomunicada la red.

El código que implementé que realiza este proceso es el siguiente:
def getDistance(p1, p2):
     #p son listas de coordenadas, en formato [nodo, x, y, z]
     #p1 representa al punto inicial    
 x1 = p1[1] #Solo para darle claridad al codigo, aunque salgan mas lineas
 x2 = p2[1]

 y1 = p1[2] #Solo para darle claridad al codigo, aunque salgan mas lineas
 y2 = p2[2]
 
 z1 = p1[3]
 z2 = p2[3]

     c = (((x2 - x1)**2) + ((y2-y1)**2) + ((z2-z1)**2))
 distancia = math.sqrt(c)
 return distancia


 distancias = [] # Coleccionar las distancias entre los nodos 
 for j in range(len(listacoords)):
  if j != (len(listacoords)-1):
   print listacoords[j]
   d = getDistance(listacoords[j], listacoords[j+1])
   distancias.append(d)
  else:
   print "Este es el ultimo nodo, osea nodo = ", j
   print listacoords[j]
   
 print distancias

 print "Cobertura = ", cober

 for x in range(len(distancias)):
  if cober*2 >= distancias[x]:
   print "Existe comunicacion entre nodo ", x, " y nodo ", x+1
  if cober*2 < distancias[x]:
   print "No existe comunicacion por auscencia de cobertura entre nodo ", x, " y nodo ", x+1 
 #getDistance(listacoords)

 print ">>>\nAhora checando estructura del paquete IP, TTL = ", ttl
 if ttl > (n-1):
  print "!!!! El paquete de datos puede ser entregado a la estacion base..."
 else:
  print "**** El paquete no puede ser entregadoa a la estacion base porque su TTL no es suficiente..." 
 
 plt.show() #Al final para mostrar el plano


Luego de obtener las distancias y realizar las verificaciones de que existiera una correcta cobertura en la red sensora, el siguiente paso fue verificar si el valor aleatorio que generé de TTL era suficiente para la transmisión desde el nodo 0, hasta la estación de la base.
Recordemos que si el valor de TTL es 0, la red descarta ese paquete para que no esté creando un loop infinito en la misma (causa de congestión en una red). Las líneas finales del código anterior son las que realizan este proceso.

Al final imprimo todos los datos de las coberturas y las distancias entre los nodos, además, también imprimo un aviso si existen comunicación entre ciertos nodos, o si no existe la comunicación debido a las coberturas y TTL (esto con el fin de que se reubiquen los nodos en que no tengan la suficiente cobertura).

En conclusión, cuando mando el aviso de que existe comunicación por buena cobertura entre todos los nodos, y también que el valor de TTL (recuerden que lo genero aleatoriamente) es suficiente con respecto al valor de nodos presentes en la red sensora, el paquete puede ser entregado desde su origen hasta la "estación base" sin ningún problema.

A continuación les muestro un ejemplo de la simulación realizada con 8 nodos (plano 3D con los nodos + salida en terminal):



El código completo lo pueden encontrar en mi repositorio: https://github.com/eddypre/Telecomunicaciones


 

Bibliografía

- Tiempo de vida (informática), [Documento en línea]. <http://es.wikipedia.org/wiki/Tiempo_de_vida_%28inform%C3%A1tica%29>. [Consulta: 23-05-13].
- Distancia entre puntos en el espacio, [Documento en línea]. <http://distanciapuntosenelespacio.blogspot.mx/http://distanciapuntosenelespacio.blogspot.mx/>. [Consulta: 23-05-13].
- matplotlib, [Documento en línea]. <http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html>. [Consulta: 23-05-13]


Cualquier duda o aclaración que quieran hacer pueden dejarla en la caja de comentarios.

Saludos a todos!

martes, 21 de mayo de 2013

Laboratorio 12

Laboratorio 12 - Building underwater ad-hoc networks and sensor networks for large scale real-time aquatic applications

Hola a todos mis compañeros y gente que regularmente visita mi blog, esta entrada corresponde a la actividad número 12 del laboratorio de "Redes de telecomunicaciones", consiste en la elaboración de un resumen y dar nuestro punto de vista de un documento relacionado a las redes ad-hoc
El documento que yo elegí es titulado: "Building underwater ad-hoc networks and sensor networks for large scale real-time aquatic applications", y fue escrito por: Jiejun Kong, Jun-hong Cui, Dapeng Wu, Mario Gerla.



Desde hace ya tiempo el océano ha jugado un rol importante en las comunicaciones entre aplicaciones y campañas militares. Esto exige la construcción a corto plazo y a gran escala de redes de datos en aplicaciones acuáticas.
Las aplicaciones acuáticas a gran escala exigen que construyamos redes ad-hoc bajo el agua a gran escala (UANET) y redes de sensores subacuáticos (UWSN) para explorar los océanos. La diferencia entre UANET y UWSN se debe a la movilidad controlada y costo de implementación asociada. 
En un UANET, los nodos móviles pueden ser implementados por los vehículos autónomos submarinos (AUV) o vehículos teledirigidos (ROV), que son los robots de alto costo que pueden moverse bajo el agua, siguiendo los patrones de movimiento pre-programados o autónomos. Sin embargo, el costo de implementación de tales nodos de autopropulsión es mucho más alto que el de cualquier nodo sin alimentación. En un futuro se provee que estos robots móviles no tripulados de alto costo jugarán un papel importante en las exploraciones submarinas, por ejemplor, en campañas militares acuáticas.

Por otro lado, UWSN sólo incurre en una fracción del costo de implementación de UANET en la misma escala de la red. Todos los nodos de sensores en un UWSN son de bajo costo (sin fuente de autopropulsión).

Hoy en día la tecnología satélite es capaz de escanear toda la superficie terrestre en horas. Por lo tanto el centro de procesamiento de datos puede identificar cualquier submarino emergido. Para reducir la firma acústica de un submarino, el casco del submarino está cubierto con tejas de protección anti-sonido de goma para reducir la detección acústica. La tecnología LPD esconde la firma acústica del submarino y también reduce el ruido dentro de submarino. El nivel de ruido del submarino es comparable al ruido de fondo de los océanos, por lo tanto son acústicamente legibles.
 

Una serie de robots submarinos y un gran nodos sensores ofunderwater cantidad puede ser lanzadas desde el aire a la sede. Un área de cientos de millas náuticas cuadradas puede necesitar miles de unidades de sensores. En tiempo real, cada nodo sensor supervisa las actividades subacuáticas locales e informes de datos de sensores acústicos a través de rutas múltiples saltos a un centro de mando a distancia o robots no tripulados cercanas. La probabilidad de que el submarino de destino puede escapar a la detección coordinada es insignificante.

Una serie de robots submarinos y una gran cantidad de nodos de sensores submarinos pueden ser lanzados desde el aire a el área acuática. Un área de cientos de millas náuticas cuadradas puede necesitar miles de unidades de sensores. En tiempo real, cada nodo sensor supervisa las actividades subacuáticas locales e informes de datos de sensores acústicos a través de rutas de múltiples saltos a un centro de mando a distancia o robots no tripulados cercanos. La probabilidad de que el submarino de destino pueda escapar a la detección coordinada es insignificante. Después, las redes también pueden ser utilizadas como parte de un posicionamiento bajo el agua y sistema de guía para dirigir las armas antisubmarinas (por ejemplo, torpedos) para encontrar y destruir el objetivo detectado.  

Nuestras contribuciones.

En este trabajo se adopta un enfoque de arriba hacia abajo para explorar el nuevo tema de investigación. Bajamos de la capa de aplicación superior a la capa física inferior según la conocida pila de protocolos de red. En cada capa se muestran los nuevos retos de diseño.  

En aplicaciones bajo el agua, es fundamental para que cada nodo bajo el agua sepa su posición actual y la hora sincronizada con respecto a otros nodos de coordinación. Por desgracia, como el Sistema de Posicionamiento Global (GPS) no está disponible bajo la superficie del agua, las redes submarinas escalables deben depender de la localización GPS-libre distribuida y de los esquemas de sincronización de tiempo para permitir que los nodos submarinos conozcn sus posiciones y el valor de tiempo sincronizado. La amenaza a la seguridad es un tema transversal que afecta a la capa de toda la pila de protocolos. Una red ad-hoc de auto-organización necesita más protección que la criptografía. Hemos estudiado los ataques de denegación de servicio bajo el agua de bajo costo. El resultado es desastroso para la entrega de paquetes multi-hop, localización distribuida, y el tiempo de sincronización.  

Un sistema fiable equivalente-TCP tiene que hacer frente a problemas como la ventana inusualmente grande retransmisión e impredecible pérdida de enlace acústico.  
En la capa de red, la entrega de paquetes multi-hop se ve agravada por la movilidad del nodo y acceso al canal pesado. Detección proactiva y vecino (en términos de red o de alcance limitado) inundaciones son ampliamente utilizados en los teléfonos de enrutamiento ad-hoc o regímenes de difusión. Desafortunadamente, debido al acceso al canal pesada causada por gran retardo de propagación en los canales acústicos, las inundaciones no puede ser a la vez robusta (es decir, entregado a casi todos los miembros de la red en el área de inundación prevista) y eficiente (es decir, con baja latencia y coste de transmisión). Además, el coste de la detección proactiva vecino podría ser más caro que las inundaciones.

Al final llegamos a la conclusión que la construcción escalable UANET y UWSN es un reto que debe ser respondida por los esfuerzos interdisciplinarios de la comunicación acústica, procesamiento de señales y diseño de la red móvil.

Retos de comunicación, procesamiento de señal y diseño de red móvil 

En esta sección se identifican problemas de diseño a lo largo del protocolo de red de pila de una manera de arriba hacia abajo. en cada capa hay problemas críticos que precisan de soluciones.

Localización GPS-libre distribuida y servicios de sincronización de tiempo


En aplicaciones bajo el agua, es fundamental hacer saber a cada nodo sub-acuático su posición actual y su tiempo de sincronizado con respecto a otros nodos coordindos. Sin embargo, la ond de radio de alta frecuencia utilizada por el Sistema de Posicionamiento Global (GPS) se absorbe rápidamente por el agua, por lo tanto, no puede propagar profundamente bajo la superficie del agua.

Seguridad, resistencia y robustez

Un aspecto que sin duda requerirá revisar (con respecto a la labor previa en redes ad-hoc y redes de sensores en tierra) es la vulnerabilidad a las amenazas de seguridad. Este es un tema transversal que afecta a la capa de toda la pila de protocolos. Para llevar a cabo una solución escalable de red ad-hoc, los nodos deben ser de bajo coste y económicamente viables. Ellos están limitados en las capacidades de energía, computación, y la comunicación. Esto hace que muchos mecanismos de seguridad existentes inadecuados, y por lo tanto inspira a una nueva investigación de seguridad, como eficiencia de gestión de claves, la autenticación, privacidad de datos y el anonimato, que evitan costosas cripto-operaciones.

Sin embargo, una red ad hoc de auto-organización necesita más protección que la criptografía. Muchos ataques de seguridad continúan amenazando las redes ad-hoc, incluso cuando un sistema criptográfico ideal protege eficazmente la red.

En particular, el ataque agujero de gusano y sus variantes imponen una gran amenaza para la comunicación acústica bajo el agua. La siguiente figura muestra una implementación de bajo coste que conecta dos puntos espaciales (es decir, interfaces de red) entre sí por un cable o conexión equivalente de alta velocidad.  

 (Agujero de gusano, dispositivos submarino de bajo costo están conectados por cable)
 
El adversario utiliza el agujero de gusano para obtener los mensajes recibidos en una ubicación en la red y reproducirlas en una ubicación diferente. En comparación con ataques de fuerza bruta, el ataque agujero de gusano es más "secreto" y más difícil de detectar. Sin embargo, como se muestra en la siguiente imagen, el resultado es desastroso para la localización distribuida, sincronización y enrutamiento.

 (Vista de localización distribuida, con un agujero de gusano)



Punto de vista
 
Existen bastantes aplicaciones para la redes y redes sensoras bajo el agua, incluso hay sistemas que aprovechan bastante bien el ambiente acuático. Por ejemplo es bien conocido que algunos servidores de Google se encuentran bajo o en el océano, luego estos servidores son alimentados por medio de la energía que se crea con el oleaje del mar, también aprovechan el ambiente acuático para enfriar el calentamiento producido por el procesamiento de los servidores.

Y podríamos realizar una extensa lista de beneficios de las redes y sensores de redes en aplicaciones bajo el agua, sin embargo existen temas muy importantes de seguridad que hay que abordar; desde seguridad informática (como las amenazas que comentan los autores acerca de ataques a las redes bajo el agua, en específico, agujeros de gusano, que pueden llegar  ser más peligrosos que los conocidos ataques de fuerza bruta) hasta seguridad física como cortos circuitos, hardware perdido, etc.
Sin embargo, a pesar de los puntos en contra, existen aplicaciones bajo el agua en las que es forzosamente necesario hacer uso de las redes y sensores de redes, y conforme vayamos avanzando tecnológicamente, el uso será cada vez más frecuente.


Bibliografía

"Building underwater ad-hoc networks and sensor networks for large scale real-time aquatic applications", Jiejun Kong, Jun-hong Cui, Dapeng Wu, Mario Gerla. (Published in Military Communications Conference, 2005). [Documento en línea]. <http://ubinet.engr.uconn.edu/bibtex/files/80de17727e526887b14612d1f93cf405.pdf>. [Consulta 20-05-13]
 

Cualquier duda o aclaración pueden dejarla en la caja de comentarios.

Saludos a todos!