martes, 26 de febrero de 2013

Entrada # 4 Materia

Redes de Telecomunicaciones

Para esta entrada consiste en haber elegido 2 factores que afectan el QoS (Quality of Service) de mi entrada de laboratorio aplicándolo con la pagina de Cuevana.

Los elegidos para aplicarlos son el de Retardo y el de Perdida de Paquetes.

Estos dos se obtienen de forma directa desde terminal, mediante la siguiente sintaxis.

ping 'Dirección a Hacer Ping'

La instrucción anterior hace un ping infinito y la única manera de terminarlo es matando todo el proceso con Ctrl + C.

Si se desea enviar una cantidad especifica de paquetes se teclea lo siguiente:

ping -c 'Número de Paquetes a Enviar' 'Dirección a Hacer Ping'

Para conocer el Retardo y la Perdida de Paquetes se observan en la ejecución del Ping; el primero cada vez que se envió satisfactoriamente el ping y el último al final de haberse efectuado el ping.

La columna time es el Retardo del paquete

La cantidad de paquetes perdidos es el porcentaje de packet loss, como es un porcentaje solo saca el valor de la cantidad de paquetes enviados.

Ahora con el ejemplo (Como el ping lo hice muy grande pues puse el principio y el final de la ejecución) :



Como vemos los retardos andan entre 200 y 300 ms por paquete.

La cantidad de paquetes perdidos ronda el 76% de los 255 paquetes que se enviaron, por lo tanto tenemos que:

Cantidad de Paquetes enviados en total: 255
Cantidad de paquetes perdidos: 193
Cantidad de paquetes recibidos con éxito: 62

Esto se debió a varias razones: 

Que en el momento en el que se efectuó la prueba el internet se encontraba muy lento.
Buffer se encontraba lleno
El rendimiento de la red era muy bajo en ese momento para poder efectuar este proceso.

Entrada # 4 - Laboratorio

Laboratorio de

Redes de Telecomunicaciones


En esta entrada sera un reporte sobre los factores que afectan la QoS (Quality of Service).
Primeramente que son las QoS:

Son el acrónimo de Quality of Service (Calidad de Servicio), son encargadas de garantizar la transmisión de información en un cierto tiempo.

Existen varios factores que afectan la calidad de servicio comúnmente para lo que concierne a audio y vídeo.

Algunos factores los explicare a continuación:

Bajo Rendimiento de la Señal

Esto comúnmente ocurre debido a que los usuarios que se encuentran en una red tienen una velocidad de flujo de datos muy baja para lo que desean hacer.

Perdida de Paquetes

Esto ocurre comúnmente cuando los paquetes que se desean enviar se encuentran dañados o el buffer al que se envían se encuentra lleno, comúnmente la aplicación que recibe el buffer envía un mensaje al remitente para que este vuelva a enviar el paquete haciendo que tarde mas el paquete.

Errores en el paquete

Estos errores impiden que los paquetes enviados se reciban con éxito ocasionando perdidas, estos errores son causados por ruidos o interferencias.

La perdida se ocasiona ya que el que recibe el paquete detecta que este tiene error y lo elimina y le envía una información al remitente de que fallo y este lo retransmitirá lo que ocasionaría que el proceso se tarde mas.

Retardo (Latency)

Es el tiempo empleado por un paquete en ser enviado de un host origen a uno destino.
Algunas veces el retardo ocurre cuando el paquete se encuentra en espera para ser enviado, también si la ruta que toma el paquete para llegar al destino es la incorrecta ocasionando que se tome mas tiempo de lo debido.


Jitter

Diferencia de retardos de los paquetes. Estas variaciones afectan la calidad del flujo del audio y vídeo.

Entrega de Paquetes fuera de Orden

Esto ocurre cuando se envía un conjunto de paquetes comúnmente siguen distintas rutas ocasionando que el orden de los paquetes recibidos no sea el mismo al de los enviados.

jueves, 21 de febrero de 2013

Entrada # 2

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

Para esta entrada se nos encargo una simulación utilizando los métodos de búsqueda para palabras.

El primer método es el de Boyer-Moore.

Es un Algoritmo de búsqueda de cadenas desarrollado por Bob Boyer y J Strother Moore en 1977.


El algoritmo funciona de esta manera:



  • Teniendo una frase o cadena de caracteres se pretende buscar una palabra en esta cadena.
  • La palabra se pre procesada  primero invierte la palabra: si la palabra es "perro" se convierte a "orrep".
  • Teniendo la palabra pre procesada se elimina el primer carácter de este.
  • Después se genera una especie de patrón, el cuál contiene la palabra y las letras de la frase que no están en la palabra.
  • Teniendo estos datos el proceso del algoritmo seria un ciclo repetitivo del siguiente paso hasta que se haya encontrado la palabra en la frase o ya se halla pasado por toda la frase.
  • Se colocan la palabra al principio de la frase y se hace una comparación de derecha a izquierda, si el ultimo elemento de la palabra es diferente a la letra de la frase que se encuentra en la misma posición 
Generalmente el algoritmo es más rápido cuanto más grande es la clave que es buscada, usa la información conseguida desde un intento para descartar tantas posiciones del texto como sean posibles en donde la cadena no coincida.

Solo tengo un mugrero de código.

martes, 19 de febrero de 2013

Entrada # 3

Redes de Telecomunicaciones

Para esta semana se nos encarga separar un tipo de ataque Wi-Fi y la aplicación en específico que se hará.


Monitoreo de Consumo de Ancho de Banda

Para realizar el monitoreo se hizo uso de un programa que se llama iptraf; para instalarlo en ubuntu se teclea la siguiente instrucción.


Una vez instalado se teclea la siguiente instrucción en terminal para correrlo.



Para obtener la ventana en la cuál nos muestra el monitoreo le damos a lo siguiente.



Y nos mostrara la ventana siguiente:


Para entender mejor la imagen anterior explicare lo que dice cada columna (en orden de aparición):

  • Dirección IP del dispositivo y la dirección a las que se envían los paquetes (comúnmente el modem).
  • Operadores (>, <, =) y la cantidad de Paquetes enviados.
  • Cantidad en Bytes enviada
  • Estado del Paquete (Flag)
  • Conexión en la que estoy.


Para conocer cuál IP es la mía utilizo la siguiente instrucción:


Como vemos la IP que tengo es 192.168.0.3, comparándola con la imagen anterior:



Vemos que mi IP a estado enviando muchos paquetes al modem y el peso en Bytes de cada uno.

Entrada # 3 - Lab

Laboratorio de 
Redes de Telecomunicaciones

Para esta ocasión se nos encargo el hacer un monitoreo de las redes que se encuentren disponibles en un lugar elegido por nosotros y mapearlo junto con Google Maps.

El monitoreo de redes (conocer las redes disponibles en un punto) fue realizado por una herramienta la cuál se llama wavemon.

Para instalar esta herramienta tecleamos en terminal:


Y para correrlo:


Después nos desplegara la ventana:


En esta imagen nos muestra la red a la que te encuentras conectada y la velocidad de esta; como ven en imagen la red a la que me encuentro conectada es InterCable634710.

Para poder observar las redes disponibles tecleamos F3. Las redes que me fueron detectadas son las siguientes:


Como vemos en las imagen unas tienen una buena intensidad y otras no tanto, lo anterior se comenta ya que embace a esto serán las posiciones de los círculos en el HTML.

El siguiente paso seria dibujarlos en el HTML.


Como ven en el código se requiere unas coordenadas ya que en base a estas es donde se dibujaran los círculos. Para realizar lo anterior se hizo uso de Google Maps. Seleccionamos un punto (el de InterCable634710) y Google Maps nos da la coordenada.



Esta sera puesta en el código de HTML.

Este punto sera la referencia para las demás redes detectadas. 

En general los pasos que se utilizaron fueron los siguientes:


  • Identificar el punto referencia (El Lugar de donde se tomara de referencia para las demás redes), este punto es la posición de InterCable634710 (25.814752,  -100.238205).
  • En base a este punto, a los porcentajes de intensidad y unas vueltas que me di a la calle para revisar hasta que punto dejo de detectar la red, se trazaron los puntos.


Teniendo estas coordenadas solo las copiamos y pegamos al código de HTML y abrimos el código en el navegador y veremos el resultado:


Cada color significa una de las redes. Las líneas del siguiente color pertenecen a la siguiente red:


  • Gris ---- InterCable634710
  • Blanco --- InterCable758049
  • Rojo --- InterCable680966
  • Oro --- InterCable813975
  • Magenta --- InterCable711243


Referencias:

Código de Colores HTML
Liga al Repositorio

jueves, 14 de febrero de 2013

Entrada # 1


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


Para esta entrega se nos pidió realizar un programa para generar y transmitir palabras y mostrar de forma gráfica.

Explicación de lo realizado (Cabe resaltar que este proceso que se explicara a continuación se realizo varias veces).

Las palabras del generador y el transmisor consisten en listas de 0 y 1, para generar estas palabras utilizan ciertas variables.

Generador:
  • Porcentaje de Ceros que puede llevar
  • Tamaño de la palabra
Transmisor:
  • Frecuencia de Ceros
  • Frecuencia de Unos
  • El Generador
  • Tamaño de la palabra
Después estos son comparados si son iguales el éxito es 1 si no es 0.

Para ver una mejor explicación del Generador y el Transmisor muestro la siguiente imagen:



En esta imagen se muestra que cuando se corre el python le indicamos que las variables tendrán tamaño 5 el porcentaje de 0 para el Generador sera 0.3, La frecuencia de 0 y 1 para el transmisor sera 0.9 y el ultimo 8 indica la cantidad de veces que se hará este proceso.

En este mismo código se determino un porcentaje de éxito el cuál sera una comparación del generador y el transmisor, en la imagen el primer dato es el Generador y la otra es la del Transmisor el dato siguiente es 0 si son distintos y 1 si son iguales.

Después estos éxitos se suman y se saca un promedio que seria el porcentaje de éxito que se menciono anteriormente.

Este dato es tratado por AWK para obtener el promedio de este.

Y el resultado es guardado en un archivo el cuál sera gráficado con Gnuplot.


Código de la Ejecución:

Código de Bash

Este es el encargado de realizar todo el proceso; este primeramente revisa si los archivos que se utilizaran en el proceso si existen los borra, después crea el cuál utilizara gnuplot, el siguiente punto son los for aninados la cantidad de for es igual a la cantidad de variables que recibe Python.

En el transcurso de los for se obtiene el promedio de éxitos el cuál sera agregado al archivo Promedios.puddi que sera utilizado por el AWK para obtener el promedio de todos los promedios del archivo.

Ese dato obtenido en conjunto con los de los for's (A excepción del último) son enviados al archivo Canales.puddi el cuál sera graficado.

Código de Python

Esté obtiene un ciclo en el cuál se realiza el siguiente proceso varias veces: nos da el Generador y la Transmisión; los compara si son iguales, la variable éxito es igual a uno si no cero.

Terminando todo el ciclo se saca el promedio de todos los éxitos del ciclo y este dato sera utilizado mas adelante.

Código de AWK

Nos da el promedio de todos los elementos del Archivo Promedios.puddi

Código de Gnuplot

Gráfica el archivo Canales.puddi

Imágenes de la ejecución


Probando con otros tipos de tamaño:



A continuación la liga al repositorio donde se encuentra el código: Liga

martes, 12 de febrero de 2013

Entrada # 2 Laboratorio

Laboratorio de 
Redes de Telecomunicaciones

Para esta semana se no encargo el realizar un diagrama (Tipo Infographics) acerca de los protocolos que son utilizados por las redes alambricas e inalambricas.


Para visualizar la imagen mejor: link

Entrada # 2 Materia

Redes de Telecomunicaciones
Entrada # 2

Para esta entrada se realizo un código en el cuál nos apoyamos del protocolo UDP para el envío de información de un cliente a un servidor.

Primeramente muestro una definición de este protocolo:


Consiste en un protocolo el cuál nos permite el envío de mensajes a través de la red sin que se haya establecido previamente una conexión (de forma local).

Este protocolo no cuenta con un control de flujo por lo que los algunos mensajes pueden adelantarse a otros; y no cuenta con una confirmación de envió y recibido por lo tanto no sabemos si ha llegado correctamente el mensaje.


Comúnmente las aplicaciones cliente-servidor que tienen una solicitud y una respuesta utilizan el protocolo UDP en lugar de tomarse la molestia de establecer y luego liberar una conexión. 

El protocolo UDP se describe en el RFC 768

Refiriéndome a la entrada:

Primeramente algunos comentarios:

Para la conexión se hizo uso de Sockets en Python
Manejo de Archivos en el cuál se guarda los mensajes enviados por el cliente al servidor.
Se manejaron dos archivos en Python uno es el del Servidor y otro es el del Cliente.

La ejecución del código fue el siguiente.

Corro cada script de python en una distinta terminal:


Le envía un mensaje el cliente al servidor.



Después el Servidor le responde al cliente que recibió información 



Por último se muestra el .dat con la información enviada al servidor 


A continuación muestro el código:

Código del Cliente

Código del Servidor

Liga al repositorio: https://github.com/PedritoMtz/RedesdeTelecomunicaciones.git

martes, 5 de febrero de 2013

Entrada # 1 Laboratorio

Entrada # 1                                  Laboratorio de                                     Redes de Telecomunicaciones

Para esta semana se nos encargo analizar la siguiente imagen y elegir un tipo de problema que nos demuestre los problemas de la imagen.



El tema elegido para esta entrada fue acerca de los diferentes tipos de extensiones de compresores de archivos.

Un Compresor de Archivos (datos).- Consiste en la reducción del volumen de información, se utiliza comúnmente en el envió de archivos o datos demasiado pesados o el envió de varios archivos a la vez almacenando todo en el archivo comprimido el cuál es mas ligero (en tamaño) a los archivos comprimidos.



Existen dos tipos de archivos:


ASCII: Archivos que se pueden ver en uno o varios editores de texto, por ejemplo: .doc, .html, etc.


Binario: Archivos no ASCII, que si se desean visualizar en un editor de texto aparecen puros caracteres extraños, este es usado cuando se trata de archivos comprimidos, ejecutables para PC, imágenes, archivos de audio.


Como vemos anteriormente lo archivos comprimidos entran en la parte de Archivos Binarios.


Existen una gran cantidad de extensiones para archivos comprimidos entre los cuales mencionamos algunos:


.arc --> Utilizado para comprimir ficheros de archivo (Varios archivos en un solo comprimido), actualmente el algoritmo es anticuado por lo tanto se encuentra en desuso.
.sit --> Extensión standard para las computadoras Macintosh.
.zip -->  Formato de fichero bastante simple, que comprime cada uno de los archivos de forma separada. Esto nos permite recuperar cada uno de los ficheros uno en uno sin tener que leer todo el archivo, lo que aumenta el rendimiento. Tienes problemas cuando se manejan muchos archivos pequeños.
.rar --> Formato de Archivo que es el segundo más popular (el primero es el .zip). Utiliza un algoritmo basado en el LZSS que, a su vez, se basaba en el LZ77
.zoo --> Archivo compresor utilizado en Windows.
.7z --> Archivador de ficheros libre para Microsoft Windows. Tienen un mejor comprensión de los archivos pequeños en comparación con el .zip; Utiliza el algoritmo LZMA.
.tar --> Compresor utilizado en las plataformas UNIX para almacenar archivos y directorios en un solo archivo, este es utilizado junto con otras extensiones para hacer que estas puedan comprimir varios archivos.
.gz --> Gzip.-  El principal formato de compresión que usan los sistemas Unix; se basa en el algoritmo Deflate. Comúnmente se utiliza con el .tar para crear los .tar.gz o .tgz. Se encuentra estandarizado  RFC 1952.
.bz2 --> bzip2.- Compresor usado en Unix.  Es bastante mejor al los compresores gzip y zip en el tamaño de los archivos (mas pequeño) pero estos archivos son mas lentos.
.lz --> Lzip.- Compresor usado en las plataformas Unix. Utiliza el algoritmo LZMA tiene para comprimir un archivo, se puede hacer para ficheros de archivos utilizando .tar (.tar.lz.tlz).

Observando lo anterior vemos que existen una gran cantidad de compresores; el por que se crean tantos compresores tiene que ver con la imagen al principio que ellos querían un estándar que tuviera todo pero lo que hacen es que exista otro estándar mas.

El compresor seria el estándar que tuviera algunas cosas que las ya existentes no las tenían  por ejemplo: tamaño mas pequeño de los archivos, manejo mas rápido de los archivos, compresores gratis, multiplataforma, etc.

Pero lo unico que logran es que exista otro compresor mas que puede ser utilizado en lugar de desbancar a los ya existentes.


Referencias

http://es.wikipedia.org/wiki/File_Transfer_Protocol#Tipos_de_transferencia_de_archivos_en_FTP
http://www.slideshare.net/saneli/formatos-de-archivo-y-compresores-163877
http://es.wikipedia.org/wiki/Lista_de_formatos_de_archivo
http://es.kioskea.net/contents/systemes/format.php3

Entrada # 1 Materia

Entrada # 1 RFC

Para esta semana se nos encargo elegir un RFC(Request for Comments), el elegido es el FTP.

RFC 414.- File Transfer Protocol (FTP)

Este RFC consiste solamente en un informe sobre los servidores FTP que estaban funcionando.

Antes de mostrar los servidores hablaremos acerca de lo que es el FTP.


Como esta puesto al comienzo de la entrada FTP son las siglas de File Transfer Protocol (Protocolo de Transferencia de Archivos) utilizado como protocolo para intercambiar archivos en Internet. Este nos permite obtener o hacer copias de archivos hacia una computadora remota de la red.

El servicio FTP es ofrecido por la capa de aplicación del modelo de capas de red TCP/IP al usuario, utilizando normalmente el puerto de red 20 y el 21. 

Un problema básico de FTP es que está pensado para ofrecer la máxima velocidad en la conexión, pero no la máxima seguridad, ya que todo el intercambio de información, desde el login y password del usuario en el servidor hasta la transferencia de cualquier archivo, se realiza en texto plano sin ningún tipo de cifrado, con lo que un posible atacante puede capturar este tráfico, acceder al servidor y/o apropiarse de los archivos transferidos.

Para solucionar este problema son de gran utilidad aplicaciones como scp (Secure Copy) y sftp, incluidas en el paquete SSH, que permiten transferir archivos pero cifrando todo el tráfico.
Procedimiento
Observando el procedimiento del FTP, primeramente iniciamos una conexión cliente-servidor mediante el intérprete de protocolo (IP) de usuario a travez del puerto 21. 
Una vez conectados, todas las ordenes a realzar se envían desde la IP de usuario del cliente hacia la IP del servidor.
Estas órdenes FTP especifican parámetros para la conexión de datos (puerto de datos, modo de transferencia, tipo de representación y estructura) y la acción a hacer con los archivos del servidor (almacenar, recuperar, añadir, borrar, etc.). 

El Proceso de Transferencia de Datos (DTP) de usuario u otro proceso en su lugar, debe esperar a que el servidor inicie la conexión al puerto de datos especificado (puerto 20 en modo activo o estándar) y transferir los datos en función de los parámetros que se hayan especificado.

La conexión de datos es bidireccional, es decir, se puede usar simultáneamente para enviar y para recibir, y no tiene por qué existir todo el tiempo que dura la conexión FTP.

Nota

Cabe mencionar que existen toda una serie de linea de comandos para realizar las ordenes, como son muchas dejo solamente varias ligas que muestran algunas de estos y uso respectiva forma de uso.



Explicación RFC 414

Una vez explicado acerca de lo que es FTP nos pasamos a explicar la parte del RFC 414

Como comentaba al principio, este RFC nos proporciona un informe sobre los servidores FTP que estaban funcionando (los que se hicieron pruebas y tuvieron algún estado satisfactorio).

Tenemos que se estaban haciendo pruebas cliente-servidor a algunos servidores en algunos casos eran servidores y en otras clientes.

De entre los servidores en los que se hicieron pruebas tenemos:
  • El servidor del sistemas TENEX BBN desarrollado por Bob Clements.
  • Servidor MIT-AI and MIT-ML desarrollados por Pitts Jarvis de MAC estos son idénticos.
  • Tenemos el MIT-DMCG creado por Arvola Chan (AC@MIT-DMCG)
  • Multics de Ken Pogran (Multics)
  • UTAH de Greg Hicks (HICKS@UTAH)
  • AMES-67 de Wayne Hathaway (AMES-67)
  • SU-AI de Ralph Gorin (SU-AI)
  • CMU de Rick Werme (CMU)
  • UCSB de Ron Stoughton (UCSB)

Según el RFC los que obtuvieron un mejor funcionamiento son los siguientes:
  • BBN(A and B)
  • SRI-ARC
  • UTAH
  • CASE
  • USC-ISI
  • CCA
  • MIT-AI MIT-Mathlab
  • MIT-DMCG
  • CMU
  • AMES-67
  • SU-AI
Nos habla también de otro servidor MIT-Multics pero este mostró algunos problemas en la parte de servidor ya que no quería escuchar.

Otro también es el UCSB pero este próximamente tendría soporte para cliente-servidor.

Referencias Bibliográficas