martes, 30 de abril de 2013

Entrada # 9 - Laboratorio


Laboratorio de 
Redes de Telecomunicaciones


Energy-Aware Routing in Cluster-Based 
Sensor Networks
Mohamed Younis
Moustafa Youssef
Khaled Arisha


En este artículo nos presenta un enfoque novedoso para el enrutamiento consciente de energía y consciente del contexto de los sensores de datos.

Este enfoque consiste en llamar a la red de agrupamiento y le asigna al nodo del gateway menos energía para que actué como un gestor de red centralizada.

Este enfoque basa en el uso de energía en cada nodo sensor y los cambios en el medio ambiente y en la misión para que el gateway establezca las rutas de datos de los sensores, controlar la latencia en todo el cluster y arbitrar el acceso entre los sensores.



La imagen siguiente nos explica el proceso aplicándolo cuando fuera :

Para una red de un solo cluster cuando alguien desee comunicarse a un nodo este debe de solicitárselo al gateway el cuál establece la ruta para llegar al nodo (como va a pasar por varios puntos alimentaria la perdida de energía sería proporcional), en lugar de la manera tradicional (hacer un recorrido directo de un punto a otro lo que ocasionaría perdida de energía o que se consuma mas energía de la que requiera).


Su fuera una red de varios clusters, cada uno de estos tendrían su propio gateway y estos a su vez estarían comunicados y la forma de trabajar sería la misma que con un solo cluster solo que cuando se requiera comunicar con un nodo de otro cluster el gateway se conecta con el otro a fin de evitar que la persona tenga que desconectarse de este y entrar al correcto.

El problema de los sensores utilizados es que ya que son desechables (dejan de funcionar cuando se quedan sin energía), se tiene que administrar la energía de estos a fin de que duren el mayor tiempo posible y evitar el tener que cambiar un sensor por otro.

Critica Constructiva

Esta manera me parece muy buena ya que trabajando mediante cluster nos permitiría que la distribución de la energía de cada sensor sea equitativa.

En lugar de la forma común que sería comunicar de un punto a otro haciendo que estos tengan un consumo mayor a los demás nodos que están en el cluster.

Referencia

http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1167069

Entrada # 5 - Materia

Redes de Telecomunicaciones

Control de Congestión con ns2

Código Utilizado

Graficas



En la gráfica siguiente la franja roja son la cantidad de paquetes enviados y la línea verde es la cantidad de paquetes perdidos.

Como ven no existe perdida de paquetes.

martes, 23 de abril de 2013

Entrada # 8 - Laboratorio

Laboratorio de 
Redes de Telecomunicaciones

A Survey on TCP-Friendly Congestion Control
Joerg Widmer, Robert Denda, and Martin Mauve

En este articulo nos muestra un estudio acerca de la clasificación de los protocolos TCP-Friendly incluyendo los tipos de congestiones en los que se puede dividir así como la clasificación de cada uno y los protocolos que están en cada lista.

En la siguiente imagen nos muestra todo la clasificación.


Por consiguiente comenzare a explicar cada punto de la clasificación, iniciando desde lo que es el TCP-Friendly hasta los protocolos.

Comenzando

Primeramente el protocolo TCP es utilizado transferencia de datos mediante una conexión unicast (envío de información desde un emisor único a un receptor único).

TCP-Friendly.- Se les conoce al flujo de las conexiones No-TCP, cuando el rendimiento a largo plazo de estas no supere el rendimiento de una conexión TCP estando en las mismas condiciones.

La congestión que pueden tener el TCP-Friendly se divide en dos tipos:

TCP Friendliness para Unicast (Single-Rate).- Son cuando se tiene un flujo unicast (envío de un emisor a un receptor) y el rendimiento a largo plazo de este no reduce el de otro TCP que coexista al mismo en tiempo en comparación a si se tiene un flujo TCP que tiene en el mismo camino otro TCP que haría que el rendimiento de la segundo disminuya.

TCP Friendliness para Multicast (Multirate).- Se les conoce así a los flujos multicast (un emisor y múltiples destinatarios) cuando para cada par de receptor-emisor, el flujo multicast tiene la propiedad de ser TCP-Friendly unicast.

En el articulo menciona que los dos tipos de congestión anteriores se pueden clasificar según su carga de red basándose en:

Window-Based (Ventana de Congestión).- Utilizan una ventana de congestión que puede ir en el emisor o en el receptor con el fin de garantizar que se cumpla el TCP-Friendly. En estos cada paquete a transmitir ocupa una ranura en esta ventana la cuál se liberara hasta que se haya recibido la notificación de que el paquete haya llegado al receptor (Este proceso es parecido al TCP).

El emisor esta autorizado para transmitir paquetes cuando cuente con una ranura libre.

Rate-Based (Velocidad de Transmisión) .- En estos para que se cumpla el TCP-Friendly la velocidad de transmisión se adapta gracias a algún mecanismo de red que indique si exista alguna congestión.

Los anteriores aplican tanto para TCP Friendly Unicast y Multicast.

Protocolos del TCP Friendly Unicast basados en la Velocidad de Transmisión:

En este apartado están los siguientes protocolos:

RAP (Rate Adaption Protocol - Protocolo de Adaptación de Velocidad).- En este cada paquete es reconocido por el receptor. Utiliza los ACK (informa cuando se envío un paquete) para detectar si hubo perdida de paquetes. En este protocolo cuando ocurre la congestión la tasa de envío se reduce a la mitad, en caso contrario la tasa se incrementa en 1 paquete.

LDA+.- Se basa en el Protocolo de control de transporte en Tiempo Real (RTCP) usando los mensajes del Protocolo de Transporte en Tiempo Real (RTP) para controlar la tasa de envío de paquetes.

El control de la congestión se basa usando las condiciones de la red.

TFRC (TCP-Friendly Rate Control Protocol).- Es la evolución del TFRCP. Su taza de envío de basa de la ecuación del TCP complejo pero utilizando métodos mas sofisticados para reunir la información que requiera la ecuación.

TEAR (Emulation at Receivers - Emulación de Receptores).- Protocolo híbrido ya que combina la congestión mediante ventanas y de velocidad de recepción.

En estos el tamaño de la ventana aumenta o disminuye dependiendo la cantidad de paquetes que llegan.

Protocolos del TCP Friendly Unicast basados en Ventanas de Congestión:

RLA (Random Listening Algorithm) y LPR (Linear Proportional Response) .- Estos combinados logran un buen TCP Friendly.

MTCP (Multicast TCP).- La estructura de este protocolo es como un árbol lógico teniendo como raíz del árbol el remitente de los datos y en las ramas del árbol irían los destinatarios.

El padre viene siendo el nodo anterior y el envió de información es unicast.

NCA (Nominee-Based Congestion Avoidance) y pgmmc (pragmatic general multicast congestion control).- Estos dos protocolos que aunque son distintas ventanas de congestión tienen la misma idea (Seleccionar como grupo representativo del receptor aquel que cuente con la peor conexión de red).

Protocolos del TCP Friendly Multicast basados en la Velocidad de Transmisión:

RLC (Receiver-Driven Layered Congestion Control).- El proceso que el control de la congestión sea por capaz de modo que el ancho de banda consumido por cada nueva capa que se genere aumente de forma exponencial.

FLID-DL.- En este el remitente codifica los datos de origen y la información importante de modo que los que reciban la información decodifiquen los datos originales una vez que se haya recibido una cantidad definida de distintos paquetes.

LTS (Layered Transmission Scheme) y TFRP (TCP-Friendly Transport Protocol).- Protocolos similares para el envío de streams de vídeo.

MLDA (Multicast Loss-Delay Based Adaption Algorithm).- Protocolo basado en el LDA+ usando los reportes que genera el RTCP para señalizar entre el emisor y los receptores.

El MLDA conserva el aumento y disminución que hace el LDA+ pero el calculo lo hace con la velocidad de envío (El LDA+ lo hace dependiendo las condiciones de la red), este dato lo tomar el receptor el cuál se lo envía al remitente el cuál ajusta continuamente el ancho de la banda de las capas.

Protocolos del TCP Friendly Multicast basados en Ventanas de Congestión:

Rainbow.- Sistema de congestión usado para la transferencia por lotes.

Critica Constructiva

Lo aprendido de este articulo es el que existe no todo es TCP, ya que existen los No-TCP.

Y existen también los TCP-Friendly el cuál se puede utilizar tanto en Multicast como Unicast  y se apoyan en la Velocidad de Transferencia y en las Ventanas de congestión para el envió de paquetes.

También de que existen una gran cantidad de paquetes dentro de estas categorías y cada uno tiene se utiliza dependiendo la ocasión.

Referencia:

martes, 16 de abril de 2013

Entrada # 7 - Laboratorio

Laboratorio de Redes de Telecomunicaciones

La topología diseñada para esta ocasión consiste en 3 computadoras que desean enviar paquetes UDP a una sola maquina pero antes tienen que pasar por un servidor el cuál recibe los paquetes y se los envía a la computadora destino.



El proceso de ejecución fue el siguiente se corre el simulador y todo el trafico se guarda en un archivo, el cuál es tratado por dos archivos AWK para obtener dos archivos los cuales serán graficados para obtener la gráfica de latencia y Throughput.

Vídeo de la Simulación


video

A continuación muestro el código de la simulación:


Código Bash


El bash en el cuál se generan las imágenes.


Código AWK

Para los Retardos

Para los Throughput's


Imágenes de las graficas de Latencia







jueves, 11 de abril de 2013

Entrada # 3

Teoría de la Información y 
Métodos de Codificación

Algoritmo de Huffman

Para esta ocasión haremos uso del algoritmo de huffman para realizar la compresión en forma binaria de una frase.

Primeramente que es Algoritmo de Huffman

Este algoritmo fue creado por David A. Huffman con el propósito de la compresión de frases demasiado grandes.

El propósito de algoritmo es crear un árbol binario, a fin de obtener un código, la gran ayuda del árbol es que al seguir la raíz de arriba hacia abajo se obtiene el código de una manera fácil y gráfica.

Los pasos del Algoritmo:

  • Se crean varios arboles uno por cada letra de la frase, a estas se le coloca su letra respectiva y la cantidad de veces que aparece.
  • Se eligen los dos que tengan la menor frecuencia, estos se unen para crear un nuevo árbol (nodo) y los dos arboles que se unieron se unen mediante ramas (líneas) para indicar que son raíces del árbol que se acaba de crear. A este árbol que se creo, al igual que los anteriores, debe de tener su letra y la cantidad de repeticiones ... Estas se obtienen uniendo las dos letras  y se suman la frecuencia de estas letras.
  • Se repite el paso anterior hasta que solo quede un solo árbol el cuál contendrá todas las letras y el tamaño de la frase (o la suma de las frecuencias de los arboles).


El proceso del programa es el siguiente:
  • Te pide la frase a la que se le aplicara el algoritmo
  • Se obtiene la cantidad de veces que se encuentra un carácter en la frase, por ejemplo: en la frase 'perro' nos detectaría 1 p, 1 e, 2 r, 1 o
  • Después se ordena de menor a mayor en base a la cantidad de veces que esta cada carácter.
  • La parte siguiente seria aplicar el Algoritmo.
  • Teniendo lo que vale cada letra solo se sustituye el binario con la palabra y se obtendría la frase.
  • Para regresar la frase solo se lee cada parte del binario y se compara si esta existe en la lista, si no existe se incrementa lo que va ahorita con el siguiente y se vuelve a aplicar el proceso

Código Realizado en Python



Imágenes del Resultado


Como ven en la imagen, nos pide la frase a comprimir; después obtiene la cantidad de veces que aparece cada letra y las ordena en base de menor a mayor según la cantidad de veces que aparece.

Una vez aplica el proceso del árbol y obtenemos una lista la cuál se barrera para obtener el binario de cada letra y para obtener el grafo.

Se obtiene la frase en binario y después se descomprime.

Imagen del grafo:
Corriendo con otra frase:


El único problema que tuve fue que no encontré el como acomodar la imagen a fin de que tenga una mejor presentación ya que mientras existían mas letras la imagen se veía mas horrible.

Referencias

http://networkx.github.io/documentation/latest/tutorial/tutorial.html
http://networkx.lanl.gov/pygraphviz/tutorial.html
http://www.danielmunoz.com.ar/blog/2010/07/07/el-algoritmo-de-huffman/
http://es.wikipedia.org/wiki/Algoritmo_de_Huffman

martes, 9 de abril de 2013

Entrada # 6 - Laboratorio

Laboratorio de

Redes de Telecomunicaciones

Ruteo en Simulador NS2

El Ruteo es el encargado de dirigirnos de un origen a un destino; este camino debe de ser el mejor (el que nos genere la menor distancia y tiempo), para lograrlo se hacen uso de los protocolos de ruteo.

Los Protocolo de Ruteo


Estos nos permite la comunicación de un router con otro.
Algunos ejemplos de protocolos:
  • Protocolo de Gateway fronterizo (BGP)
  • Protocolo "Primero la ruta más corta" (OSPF)
  • Protocolo de información de enrutamiento (RIP)
  • Protocolo de enrutamiento de gateway interior (IGRP)

Topologías de Red

Es la forma en la que se acomodan las computadoras (nodos) para poder enviar información.