Wednesday, March 6, 2019

Modelo OSI

Open System Interconnection, Interconexión de Sistemas Abiertos, es un modelo para estudiar las categorías en que se pueden dividir los protocoles.  Esta clasificación se puede dividir en 7 capas (niveles).
Los 7 niveles son:
  1. Capa física
  2. Capa de enlace de datos
  3. Capa de red
  4. Capa de transporte
  5. Capa de sesión
  6. Capa de presentación
  7. Capa de aplicación

Explicación:
  1. En primer nivel tenemos la capa física, physical layer, se encarga de las conexiones hacia la red, medios físicos (tipos de cables, fibra óptica,…) y forma en que se transmite la información, incluyendo la interpretación de las señales eléctricas, electromagnéticas o luz. También se ocupa de envío y recepción de los bits. 
  2. El segundo nivel es la capa de enlace de datos, data link layer,  el cual garantiza la transmisión segura y sin errores. Además, en este nivel se dividen los bits en bloques o paquetes. Se ocupa de direccionamiento físico, notificación de errores (haciendo un control de redundancia cíclica se pueden volver a pedir los bloques que se hayan perdido o sean erróneos), distribución de tramas y del control de flujo.  Los dispositivos que se usan en esta capa son el SWITCH o BRIDGES.
  3. El siguiente es la capa de red, network layer, que se encarga de activar conexiones y de reenviar los paquetes de datos. El objetico de esta capa es hacer que los datos lleguen desde origen al destino, aun cuando ambos no estén conectados directamente, es decir, que hay dispositivos intermedios. Por este motivo los dispositivos routers y switch de nivel 2  trabajan en esta capa. Se determina la ruta de los datos (tabla de ruta) y su receptor final IP.
  4. La capa de transporte, transport layer, simplemente dicho tiene la función dividir los datos enviados por la capas superiores en pequeñas partes, es decir,  la segmentación de paquetes de datos y pasarlos a capa de red. También se asegura de evitar la congestión.
  5. El quinto nivel es la capa de sesión, sesión layer, que establece y gestiona las comunicaciones/conexiones entre dos sistemas.  También ofrece servicio de checkpoints  por si la conexión se corta y no haber de enviar otra vez los datos des de principio.
  6. En la capa de presentación, presentation layer, se convierten los datos de un sistema en otro para mejorar la representación de la  información. Además, permite cifrar loa datos y comprimirlos.
  7. El último nivel es la capa de aplicación,  application layer, el cual ofrece las funciones de comunicación al software. los protocolos que utilizan las aplicaciones para intercambiar datos, como correo electrónico (Post Office Protocol y SMTP), gestores de bases de datos y servidor de ficheros (FTP).

Ejercicio con SWITCH en java.

Se teclea un numero entre 1-7 y hay que decir que dia de semana es, teniendo Lunes como 1 y domingo como 7. Si se teclea cualquier numero fuera de este rango de muestra un mensaje de "Error". 
public static void ejercicio(){
       
        System.out.println("Entra un numero entre 1-7 : ");
        int numero = teclado.nextInt();
        teclado.nextLine();
       
        switch(numero){
            case 1:
                System.out.println("Lunes");
                break;
               
            case 2:
                System.out.println("Martes");
                break;
               
            case 3:
                System.out.println("Miércoles");
                break;
               
            case 4:
                System.out.println("Jueves");
                break;
               
            case 5:
                System.out.println("Viernes");
                break;
               
            case 6:
                System.out.println("Sábado");
                break;
               
            case 7:
                System.out.println("Domingo");
                break;
           
            default:
                System.out.println("Error");
                break;
        }
       
    }

Dado una letra, decir si es un vocal o constante en java.

Codigo :

public static void ejercicio(){
        char c = teclado.next().charAt(0);
       
        if((c == 'a')|| (c == 'e') || (c == 'i') || (c == 'o') || (c == 'u')){
            System.out.println(c + " es un vocal.");
        }
        else {
            if(c >= 'a' && c <= 'z'){
                System.out.println(c + " es un constante.");
            }
            else System.out.println("ERROR");
        }
    }

Mostrar el maxim y el minim de tres numero.

Codigo :

public static void ejercicio(){
        System.out.println("Enter three numbers: ");
       
        int primero = teclado.nextInt();
        int segundo = teclado.nextInt();
        int tercero = teclado.nextInt();
       
        int maxim = 0;
        int minim = 0;
       
        if((primero > segundo) && (primero > tercero) && (segundo < tercero)){
            maxim = primero;
            minim = segundo;
        }
       
        if((segundo > primero) && (segundo > tercero) && (primero < tercero)){
            maxim = segundo;
            minim = primero;
        }
       
        if((tercero > primero) && (tercero > segundo) && (primero < segundo)){
            maxim = tercero;
            minim = primero;
        }
       
        if((primero > segundo) && (primero > tercero) && (segundo > tercero)){
            maxim = primero;
            minim = tercero;
        }
       
        if((segundo > primero) && (segundo > tercero) && (primero > tercero)){
            maxim = segundo;
            minim = tercero;
        }
       
        if((tercero > primero) && (tercero > segundo) && (primero > segundo)){
            maxim = tercero;
            minim = segundo;
        }
       
        System.out.println(maxim + " " + minim);
       
    }

Leer en java !

Para poder introducir/leer datos desde teclado es necesario añadir Scanner al principio de la clase.

Se puede poner cualquier nombre a este Scanner.

public class nombre_de_clase {
    /**
     * @param args the command line arguments
     */
    static Scanner teclado = new Scanner(System.in);
}

Decir si el primero es divisible entre segundo

Codigo :

public static void ejercicio(){
     
        System.out.println("Entra dos numero que quieres dividir: ");

       //Aqui leo las dos variables desde taclado ! 
                 Para ver como se puede añadir Scanner para leer en java consulta : Leer
        int primero = teclado.nextInt();
        int segundo = teclado.nextInt();
     
        if(primero % segundo == 0){
            System.out.println(primero + " es divisible por " + segundo);
        }
        else {
            System.out.println(primero + " no es divisible por " + segundo);
        }
    }

Modelo OSI

Open System Interconnection , Interconexión de Sistemas Abiertos, es un modelo para estudiar las categorías en que se pueden dividir los pr...