Buscar este blog

lunes, 9 de junio de 2014

Protocolo TCP/IP


Para comenzar veremos que significa TCP/IP. TCP son las siglas de Transmission Control Protocol (en español Protocolo de Control de Transmisión),Con el uso del protocolo TCP, las aplicaciones pueden comunicarse en forma segura (gracias al sistema de acuse de recibo del protocolo TCP), este protocolo posibilita la realización de una tarea importante: multiplexar/demultiplexar; es decir transmitir datos desde diversas aplicaciones en la misma línea o, en otras palabras, ordenar la información que llega en paralelo.

Todo dispositivo conectado a Internet que desee comunicarse con otros dispositivos en línea debe tener un identificador exclusivo. El identificador se denomina dirección IP. Una dirección IP es un número que identifica de manera lógica y jerárquica a una interfaz de un dispositivo dentro de una red que utilice el protocolo IP (Internet Protocol), que corresponde al nivel de red o nivel 3 del modelo de referencia OSI.
El Modelo TCP/IP esta compuesto por cuatro capas o niveles, cada nivel se encarga de determinados aspectos de la comunicación y a su vez brinda un servicio específico a la capa superior. Estas capas son:Aplicación, Transporte, Internet y Acceso a Red.

Algunas de las capas del modelo TCP/IP poseen el mismo nombre que las capas del modelo OSI. Resulta fundamental no confundir las funciones de las capas de los dos modelos ya que si bien tienen aspectos en común, estas desempeñan diferentes funciones en cada modelo. Ya que tres de cuatro capa del modelo TCP/IP es la agrupación de dos o mas capas del modelo OSI, como se ve a continuación.

Capa 1: Aplicación

Como podemos ver esta capa cumple con las funciones de las tres primeras capas del modelo OSI (capa de aplicación, de presentación y sesión) de forma conjunta. El modelo TCP/IP combina todos los aspectos relacionados con las aplicaciones en una sola capa y asegura que estos datos estén correctamente empaquetados antes de que pasen a la capa siguiente. En esta capa se define cómo se conectan los programas de los computadores que van a utilizar la red. Es decir esta capa contiene las aplicaciones de red que permiten la comunicación mediante las capas inferiores. Por lo tanto, el software en esta capa se comunica mediante uno o dos protocolos de la capa inferior (la capa de transporte).
Capa 2: Transporte
La capa de transporte proporciona servicios de transporte desde el computador de origen hacia el computador de destino. En esta capa se forma una conexión lógica entre dos puntos  de la red, el computador o hots transmisor y el host receptor. Los protocolos de transporte segmentan y re-ensamblan los datos mandados por las capas superiores en el mismo flujo de datos, o conexión lógica entre los extremos. La corriente de datos de la capa de transporte brinda transporte de extremo a extremo.
En resumen, se suele decir que internet es una nube, la capa de transporte envía los paquetes de datos desde la fuente transmisora hacia el destino receptor a través de la nube, es el deber básico de la capa de transporte cuando utiliza TCP.

Capa 2: Internet

Esta capa tiene como propósito seleccionar la mejor ruta para enviar paquetes por la red. El protocolo principal que funciona en esta capa es el Protocolo de Internet (IP). La determinación de la mejor ruta y la conmutación de los paquetes ocurren en esta capa. Además de esto esta capa también tiene otras funciones tales como:

Define un paquete y un esquema de direccionamiento. 
Transfiere los datos entre la capa Internet y las capas de acceso de red. 
Enruta los paquetes hacia los hosts remotos.

Capa 1: Acceso a la Red

También denominada capa de host de red. Esta es la capa que maneja todos los aspectos que un paquete IP requiere para efectuar un enlace físico real con los medios de la red. Esta capa incluye los detalles de la tecnología LAN y WAN y todos los detalles de las capas física y de enlace de datos del modelo OSI.
Los controladores para las aplicaciones de software, las tarjetas de módem y otros dispositivos operan en la capa de acceso de red. 

Son funciones de esta capa: la asignación de direcciones IP a las direcciones físicas, el encapsulamiento de los paquetes IP en tramas.

Basándose en el tipo de hardware y la interfaz de la red, la capa de acceso de red definirá la conexión con los medios físicos de la misma.

Para finalizar el tema debemos recalcar la importancia de los modelos antes descritos ya que el conjunto de protocolos TCP/IP y Modelo OSI, ha sido de vital importancia para el desarrollo de las redes de comunicación, sobre todo para Internet. El ritmo de expansión de Internet también es una consecuencia de estos protocolos, sin los cuales, conectar redes de distintas naturalezas (diferente Hardware, sistema operativo, etc..), hubiese sido mucho mas difícil, por no decir imposible. Así pues, podemos decir que los protocolos TCP/IP y el Modelo OSI fueron y son el motor necesario para que las redes en general, e Internet en particular, se mejore y se pueda lograr una buena "autopista de la información".

Modelo OSI

El internet se desarrolló para brindar una red de comunicación que pudiera continuar funcionando en tiempos de guerra. Aunque la Internet ha evolucionado en formas muy diferentes a las imaginadas por sus creadores, todavía se basa en un conjunto de protocolos.

Es muy útil conocer los modelos OSI y TCP/IP para comprender como se produce la comunicación de los distintos dispositivos. Cada modelo ofrece su propia estructura para explicar cómo funciona una red, pero los dos comparten muchas características.

Modelo OSI:

Siempre es conveniente comenzar con un poco de historia, el modelo OSI  fue creado y publicado en el año 1984 por la ISO (Organización de Estándares Internacionales) para unificar criterios referente a los sistemas de comunicaciones y es llamado así por las siglas en ingles de Open Systems Interconnection, lo que traducido al español significa sistemas de interconexión abiertos,  es normal que nos  preguntemos ¿Por qué lo crearon?, la respuesta es que aunque a la mayoría de las personas les parezca sencillo, conectar en red dos equipos o conectarlo al internet, esto es un complicado problema de ingeniería. Cuando se abordó dicho problema de tal magnitud, la forma de solucionarlos fue dividir el problema grande en problemas pequeños. Esto es lo que propone el modelo de redes OSI. Este modelo divide el “gran problema” en 7 pequeños problemas a los que se conoce como los siete niveles o capas del  OSI. La división también se hizo pensando en facilitar la evolución. Es decir una persona puede desarrollar tecnologías para cualquier capa, sin tener que preocuparse por los demás.


Las siete capas o niveles son los siguientes:


Estas capas son las encargadas de transportar todos los datos a través de las redes. Pero antes de explicar la función de cada nivel,es conveniente hablar un poco sobre que es un protocolo de red, debemos saber que es un protocolo para lograr comprender por qué los necesitamos.Podemos definir protocolo, como el conjunto de normas que regulan la comunicación (establecimiento, mantenimiento y cancelación) entre los distintos componentes de una red informática. Pera entender mejor este concepto hagamos una analogía mas apagada a nuestra vida diaria. Cuando dos personas quieren comunicarse entre ellas, se puede tener el caso que, ambas hablen el mismo idioma. Cuando esto sucede se debe saber cuándo hablar y cuando dejar de hacerlo para escuchar. Por supuesto, también es posible el caso de una comunicación en diversas lenguas, por ejemplo, un venezolano comunicándose con un francés y un japonés, pero en este caso, debe haber una traducción.

En las redes de computadoras,la comunicación entre terminales se basa en la misma idea. Y el lenguaje que ellas usan se llama protocolo de comunicación,el cual es solamente un conjunto de reglas a seguir para corregir el envío y recepción de información.

Una vez aclarado el punto continuamos con la explicación de cada capa del modelo OSI:


7
aplicación
6
presentación
5
sesión
4
transporte
3
red
2
enlace de datos
1
física

A su vez, esos 7 niveles se pueden subdividir en dos categorías, las capas superiores y las capas inferiores. Las 4 capas superiores trabajan con problemas particulares a las aplicaciones, y las 3 capas inferiores se encargan de los problemas pertinentes al transporte de los datos.

Capa 7 - Aplicación

Esta capa es la que el usuario esta mas acostumbrado a ver, es la encargada de las interfaces de usuario, que son las que generan  los  datos (correo electrónico, transferencia de archivos, etc.), es decir que esta capa tiene una  función muy especifica la cual es hacer el enlace entre los usuarios finales y los programas de comunicación.

Aquí es donde los datos son enviados y recibidos por los usuarios. Estas peticiones se realizan por las aplicaciones de acuerdo a los protocolos utilizados.

En resumen esta capa sería cualquier programa que le permita tratar con datos para después ser enviados por la red. (Outlook, Word, Live Messenger, etc.).


Capa 6 - Presentación

La capa de presentación garantiza que la información que envía la capa de aplicación de un sistema pueda ser leída por la capa de aplicación de otro. De ser necesario, la capa de presentación traduce entre varios formatos de datos utilizando un formato común. Entonces la capa de presentación tiene la función de formato de los datos, este formato incluye la compresión y cifrado de datos.

Es más fácil entender esta capa como la que traduce los datos en un formato que pueda entender el protocolo usado. Es como cuando mandamos un mensaje y debemos saber que nuestro idioma será entendido por el receptor, sencillo para nosotros con sólo escribir en español, pero en las computadoras como se manejan diferentes protocolos la capa 6 debe escoger el adecuado para que el mensaje pueda ser entendido

En cuanto a la compresión, podemos entender como un archivador de ficheros donde el transmisor comprime los datos en esa capa, y descomprime el receptor. Esto hace que la comunicación sea más rápida.

Capa 5: Sesión

El trabajo de la capa 5 es establecer mantener y terminar sesiones entre equipos remotos. 

Una sección es algo así como el entablar una comunicación por teléfono o  correo, pero para comunicarnos con alguna persona o institución no necesitamos haber iniciado una conversación con anterioridad. Imaginémoslo que para donde se necesita comunicar se exige que en primer lugar la identificación o datos de pertenecer a la institución y demás contenidos que nos identifiquen como miembros, esa es la labor de la capa de sesión establecer, administrar y finalizar las sesiones entre dos computadores que se están comunicando. También sincroniza el diálogo entre las capas de presentación y administra su intercambio de datos. 

Un punto importante aquí es la necesidad de sincronización entre los anfitriones, de lo contrario la comunicación se verá comprometida, incluso dejar de trabajar.

Esta capa añade marcas de los datos transmitidos. Por lo tanto, si la comunicación falla, puede ser reiniciado por última vez el marcado recibió válida.es decir Gestiona problemas ajenos a la comunicación.

Hasta los momentos se a pasado por las 3 primeras capas del modelo OSI, desde arriba hacia abajo, cabe preguntar ¿qué tipo de información manejan estas capas?, la respuesta sería: cualquiera que se origine en los programas de aplicación, descrita en una sola palabra seria: "Datos".Es importante mencionar que desde la capa 1 hasta la 4 son llamadas capas de transporte (Superiores) y las capas desde la 5 hasta la 7 capas de aplicación (Inferiores).Antes de hablar de las últimas cuatros capas, es importante hacer una observación. 
Es común que las capas del modelo OSI se agrupan en capas superiores e inferiores, como se dijo antes. Las tres primeras capas discutidas anteriormente se puede denominar como capas de aplicación (que no debe confundirse con la primera capa cuyo nombre también es de aplicación). Y las cuatro capas que vamos a describir ahora se conocen como capa de transporte (que no debe confundirse con la capa número 4 cuyo nombre también es de transporte).

A continuación veremos como se efectúa el proceso de envío de esa información a través de la red.

Capa 4: Transporte

La capa de transporte cumple una función vital, la misma debe garantizar la calidad en la entrega y recepción de datos.

Supongamos que queremos mandar una serie de datos las cual es muy grande, la capa de transporte segmenta los datos hasta convertirlos en pedazos manejables llamados “Segmentos”, por lo cual una de las tareas de esta capa es la de segmentar los datos en porciones manejables.

Es decir la capa de transporte segmenta los datos originados en el computador emisor y los re-ensambla en el computador receptor y es la encargada de asegurar un transporte confiable y de calidad. Otra función de esta capa es hacer frente a todas las cuestiones de transporte, entrega y recepción de datos de la red, con calidad de servicio.

Capa 3: Red

Este nivel define el enrutamiento y el envío de paquetes entre redes.La capa de red es una capa compleja que proporciona conectividad y selección de ruta entre dos computadores en una red sin importar su ubicación geográfica. Para ello, cuenta con dispositivos que identifican el mejor camino posible a seguir, y que establecen dichas rutas.

Es la encargada de asignarle a un segmento los datos tales como direcciones de origen y destino y responsable de tráfico de los mismos. En el caso humano serían: nombre de ciudad, nombre de municipio, nombre de parroquia, código postal, dirección de calle y casa. 

Dicho en pocas palabras la capa 3 es la que  encamina la información a través de lared, la cual en la mayoría de los casos suele ser muy compleja.Además de esto esta capa define el estado de los mensajes que se envían a los distintos computadores de la red.

Capa 2: Enlace de Datos

Este nivel proporciona facilidades para la transmisión de bloques de datos entre dos computadores en la red. Básicamente organiza los 1's y los 0's del nivel físico en formatos o grupos lógicos de información, para detectar errores en el nivel físico.

Otra de sus funciones es establecer esquema de detección de errores para:

Las retransmisiones o reconfiguraciones de la red.
Establecer el método de acceso que la computadora debe seguir para transmitir y recibir mensajes.
         Realizar la transferencia de datos a través del enlace físico.
Enviar bloques de datos con el control necesario para la sincronía.
En general controla el nivel y es la interfaces con el nivel de red, al comunicarle a este una transmisión libre de errores.

En resumen, la capa de enlace de datos proporciona tránsito de datos confiable a través de un enlace físico. Dicho de otra forma es el encargado de transportar por los cables o medios físicos los datos y controla posibles errores entre dos puntos.

Capa 1: Nivel Físico

Para entender mejor el funcionamiento de la capa uno, es conveniente mencionar que la señal se transmite en forma de impulsos y se transforma en 0's y 1's. En el caso de las señales eléctricas, por ejemplo, si la señal tiene un voltaje negativo, se identifica como 0. Y si tiene un voltaje positivo, se identifica como 1.

La función del nivel físico es definir el medio de comunicación utilizado para la transferencia de información, disponer del control de este medio y especificar bits de control, esto es posible realizando los siguientes pasos:

Definir conexiones físicas entre computadoras.
Describir el aspecto mecánico de la interface física.
Describir el aspecto eléctrico de la interface física.
Describir el aspecto funcional de la interface física.
Definir la Técnica de Transmisión.
Definir el Tipo de Transmisión.
Definir la Codificación de Línea.
Definir la Velocidad de Transmisión.
Definir el Modo de Operación de la Línea de Datos.

La capa física define las especificaciones eléctricas, mecánicas, de procedimiento y funcionales para activar, mantener y desactivar el enlace físico (es decir todo el cableado y sus especificaciones, que permiten a las computadoras en una red comunicarse). 

En resumen la capa uno es medio de transmisión. (Este medio son los cables, conectores, voltajes, entre otros.) Y su función es recibir los datos e iniciar el proceso (o lo contrario, introducir datos y completar el proceso).Conectando físicamente a dos computadores.

Una vez visto el modelo OSI los invito a ver el protocolo TCP/IP el cual es un poco mas simple.



miércoles, 9 de abril de 2014

Métodos de ordenamiento

Métodos de ordenamiento:


Ordenamiento Burbuja (Bubblesort): 

La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas "burbujas". También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación, siendo el más sencillo de implementar. En resumen este es el algoritmo más sencillo probablemente. Ideal para empezar. Consiste en ciclar repetidamente a través de la lista, comparando elementos adyacentes de dos en dos. Si un elemento es mayor que el que está en la siguiente posición se intercambian. ¿Sencillo no? 

Otro ejemplo:
 for(i=0; i < n-1; i++){
 for(j=0; j < n-1; j++){ 
 if(vec[j] > vec[j+1]){ 
 aux=vec[j]; 
 vec[j]=vec[j+1];
 vec[j+1]=aux;
 } 
 }



Método de ordenamiento Quicksort:

Si bien el método de la burbuja era considerado como el mejor método de ordenación simple, el método Quicksort basa su estrategia en la idea intuitiva de que es más fácil ordenar una gran estructura de datos subdividiéndolas en otras más pequeñas introduciendo un orden relativo entre ellas. En otras palabras, si dividimos el array a ordenar en dos subarrays de forma que los elementos del subarray inferior sean más pequeños que los del subarray superior, y aplicamos el método reiteradamente, al final tendremos el array inicial totalmente ordenado. Existen además otros métodos conocidos, el de ordenación por montículo y el de shell. A continuación el algoritmo en Lenguaje C para ordenar un arreglo mediante el método quicksort:

#include <stdlib.h>
#include <stdio.h>

/*funcion para intercambiar los valores de dos elementos*/
void intercambio(int* a, int* b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

/*funcion recursiva quicksort para ordenar el arreglo*/
void quicksort(int* izq, int* der) {
    if (der < izq)
        return;
    int pivote = *izq;
    int* ult = der;
    int* pri = izq;


    while (izq < der) {
        while (*izq <= pivote && izq < der+1)
            izq++;
        while (*der > pivote && der > izq-1)
            der--;
        if (izq < der)
            intercambio(izq, der);


    }
    intercambio(pri, der);
    quicksort(pri, der-1);
    quicksort(der+1, ult);
}


int main(void) {
    int i;
    int tam;
    /*definimos el tamaño del arreglo*/
    printf("Ingrese el tamaño del arreglo:\n");
    scanf("%d", &tam);
    int arreglo[tam];

    /*llenamos el arreglo*/
    printf("Ingrese valores para el arreglo:\n");
    for (i = 0; i < tam; i++)
        scanf("%d", &arreglo[i]);
    printf("n");

    /*mostramos el arreglo original*/
    printf("Arreglo Original\n");
    for (i = 0; i < tam; i++)
        printf("%d ", arreglo[i]);
    printf("nn");

    /*hacemos el llamado a la funcion quicksort
      para que ordene el arreglo*/
    quicksort(&arreglo[0], &arreglo[tam-1]);

    /*mostramos el arreglo ordenado*/
    printf("Arreglo Ordenado\n");
    for (i = 0; i < tam; i++)
        printf("%d ", arreglo[i]);
    printf("\n\n");


}




En Lenguaje C hay una función que realiza este método de ordenamiento sin tener que implementarla, la función se encuentra incluida en la librería stdlib.h, se llama qsort, a continuación les dejo un algoritmo usando esta función:
#include <stdlib.h>
#include <stdio.h>

/*funcion para comparar dos elementos del arreglo*/
int comparacion(const void *i, const void *j) {
    return *(int *)i - *(int *)j;
}

int main(void) {
    int i;
    int tam;
 

    /*definimos el tamaño del arreglo*/
    printf("Ingrese el tamaño del arreglo:n");
    scanf("%d", &tam);
    int arreglo[tam];
  
    /*llenamos el arreglo*/
    printf("Ingrese valores para el arreglo:n");
    for (i = 0; i < tam; i++)
        scanf("%d", &arreglo[i]);
    printf("n");
  
    /*mostramos el arreglo original*/
    printf("Arreglo Originaln");
    for (i = 0; i < tam; i++)
        printf("%d ", arreglo[i]);
    printf("nn");

    /*hacemos el llamado a la funcion qsort
      para que ordene el arreglo*/
    qsort(arreglo, tam, sizeof(int), comparacion);

    /*mostramos el arreglo ordenado*/
    printf("Arreglo Ordenadon");
    for (i = 0; i < tam; i++)
        printf("%d ", arreglo[i]);
    printf("nn");
}



Gerencia en logistica

He publicado varias de mis investigaciones en gerencia logística, las mismas están en las paginas enlazadas al blog, ubicadas al final del mismo.

Eliminar virus de acceso directo

Existe un virus llamado "MICROS" el cual oculta los archivos que contiene el pendrive y crea accesos directos.

Para solucionar este problema realice los siguientes pasos:

 1- Abra un bloc de notas
 2- escriba attrib -h -r -s *.* /s /d
 3- guarde el archivo con extensión .bat
 4- Copie el archivo en el pendrive a desinfectar y ejecútelo
 5- Borre todos los accesos directos y listo!

miércoles, 15 de mayo de 2013

CÓDIGO PARA GRUB DE CAMAINA 3.0

Mi primera publicación es sobre un problema frecuente, el cual se presenta cuando se quiere instalar Camaina y Windows en un mismo pc, el problema se ocasión cuando se instala el Windows (sea xp, vista o seven) y luego Canaima (el orden es importante, de lo contrario no servirá de nada los códigos ya que el Windows no configura el grub para compatibilidad el Camaina si, por ello se instala de segundo). Una vez instalado no se ve Windows desde el menu de inicio sino solo Canaima, para resolverlo hay que hacer lo siguiente:

Se presiona sobre aplicaciones y luego sabre root y se teclea:

 sudo apt-get install os-prober (se presiona enter)
sudo update-burg (se presiona enter)
reboot (se presiona enter)

Y listo... 

Espero que les haya sido de utilidad. 

Augusto García.