Resumenes de los Capítulos de CISCO.

Resumenes de los capitulos del CCNA 2 y CCNA 3 V4.0 algunos de ellos muestran videos explicativos acerca del capitulo, sientanse libres de copiarlos y distribuirlos! d(^_^).

Programa Calculo de Mensualidades.

Programa que calcula el precio y las mensualidades a pagar de 12 modelos de autos PEUGEOT.

Programa BASE DE DATOS com MySQL

Este programa permite la consulta y manejo de bases de datos, simulando el sistema de pagos de colegiaturas

TUTORIAL, Conectar MySQL y vb.NET

Este tutorial explica de manera breve la manera de conectar MySQL y vb.NET, Ejemplos sencillos.

Programacion para iOS

Ejemplos Básicos de Programacion para iPhone y iPad

lunes, 20 de febrero de 2012

CISCO - CCNA 2 --------- Capítulo 4 ------ Resumen

PROTOCOLOS DE ENRUTAMIENTO DE VECTOR DISTANCIA

Estos  protocolos  son  de  ayuda  al  configurar  y  dar  mantenimiento  a  la  red.

Los  protocolos  de  enrutamiento  de  vector  distancia  existentes  son:

 RIP
  • Se  utilizan  hops  para  determinar  la  ruta.
  • Si  el  conteo  de  hops  es  mas  grande  de  15  entonces  la  red  se  hace  inalcanzable.
  • Se  actualiza  cada  30 seg.

 IGRP
  • Ancho  de  banda,  retardo,  carga  y  fiabilidad  se  utilizan  para  crear  un  compuesto  de métricas.
  • Actualizaciones  cada  90  seg.
  • Ahora  es  obsoleto.

    EIGRP

    • Se  puede  realizar  la  desigualdad  de  los  costos  en  el  balanceo  de  cargas  VECTOR DISTANCIA

      El  vector  distan cia  es  un  indicador  que  se  usa  para  saber  la  distancia  que  hay  entre  un  router  u  otro  en  funcion  de  parametros   c omo  HOPS (Saltos)

      Los  routers,  al  usar  un  protocolo  a  base  de  verctores  de  distancia,  mandan periodicamente  una  emision   al  estilo  broadcast  para  compartir  su  tabla  de  direcciones. Aun  cuando  este  metodo  es  bueno  no  es  del  todo  confiable  ya  que  al  realizar  el intrcambio  de  tablas  los  routers  consumen  ancho  de  banda  y  recursos  del  musmo  CPU (Router).

      CARACTERISTICAS DEL VERCTOR DISTANCIA

      Se actualiza:
      Dependiendo   del  protocolo (RIP,IGRP, ETC...) este  realiza  actualizaciones  de  la  tabla  de  enrutamiento  cada  cierto  tiempo (entre 30 y 100 segundos).

      Tiene Vecinos:
      Estos  colectan  información  de  la  rut a  de  red  y  a  su  vez  comparten  la  información  de manera  que  todos  puedan  tener  la  misma  lista  de  enrutamiento.


      ALGORITMOS  DE  LOS   PROTOCOLOS

      Estos  algoritmos  se  usan  para  calcular  la  mejor  ruta  y  luego  mandar  esa  información  a los  vecinos.

      Podemos  desarmar  los  algoritmos  en:
      1. Mecanismos  para  recibir  y  enviar  la  información  de  enrutamiento.
      2. Calculo  de  los  enlaces  e  instalacion  de  rutas  en  la   t abla  de   en  rutamiento.
      3. Detectar   y  reaccionar a  los  cambios  de  topologia.

      CARACTERISTICAS   DE   PROTOCOLOS   DE   ENRUTAMIENTO

      Tienen:

      Un  tiempo  de  convergencia   que  indica  que  tan  rápido  son  capaces  los  rotures  en actualizar  sus  tablas  y  mantener  TODOS  la  misma  informacion.

      Son  Escalables   ya  que  pueden  transformar  su  tamaño  para  ser  redes  mas  grandes  o pequeñas  según  el  protocolo  de  enrolamiento  ocupado.

      Tienen Clase   la  cual  se  define  como  aquellas  que  son  capaces  de  incorporar  la mascara  de  subred .

      Pueden  usar  recursos  tales  como  memoria,  uso  de  CPU, ancho  de  banda, etc...

    • Requieren  una   implementacion  y  mantemiento   por  parte  de  un  buen  administrador de  red.

      Caracteristicas   de  los   protocolos:




      Ventajas   y   desventajas




      Arranque  en  frio:
      Cuando  un  router  arranca, este  no  sabe  de  las  configuraciones  y  los  vecinos  que previamente  se  an  descubierto,  para  que  un  router  pueda  mantener  la  configuracion  es guardado  en  un  archivo  en  la  NVRAM.  Una  vez  que  un  router  arranca  con  éxito,  se aplica  la  configuracion  guardada.


      Convergencia:
      La  cantidad  de  tiempo  en  poder  alcanzar  la  con vergencia  es  directamente  proporcional al  tamaño  de  red.

      La  velocida  de  convergencia  depende  de:
      • Que  tan  rapido propagan  los  routers  la  informacion  de  sus  tablas
      • La  velocidad  de  calculo  de  la  mejor  ruta.


      ACUALIZACIONES

      RIPv1
      El término actualizaciones periódicas se refiere al hecho de que un router envía la tabla de enrutamientocompleta a sus vecinos en un intervalo predefinido de tiempo. Para RIP, estas actualizaciones se envían cada 30

       Loscambios pueden ocurrir por varias razones, incluyendo:
      1. Falla de un enlace
      2. Colocación de un nuevo enlace
      3. Falla de un router
      4. Cambio de los parámetros de enlace
      Invalid Timer.
      Si una actualización no se ha recibido para refrescar un router después de 180 segundos (pordefecto), la ruta se marca como inválida por el establecimiento de las métricas a 16. La ruta se mantiene en latabla de enrutamiento hasta que el temporizador expira.
      Flush Timer.
      Por defecto, el temporizador flush  está configurado para 240 segundos, 60 segundos más que el temporizador    
      Invalid. Cuando el flush timer expira, la ruta se elimina de la tabla de enrutamiento.
      Holddown Timer.
      Este temporizador estabiliza la información de enrutamiento y ayuda a evitar loopsdurante los períodos en que la topología converge con la nueva información. Una vez que la ruta se marca comoinalcanzable, debe permanecer en el Holddown Timer lo suficiente para todos los routers de la topologíaobtengan más información sobre la red inalcanzable. Por defecto, el Holddown Timer está configurado para180 segundos.
      EIGRP   y sus actualizaciones.

      Non-periodic (no periodicas), ya que no se envían de manera regular.
      Partial updates (Actualizaciones parciales)
      enviada sólo cuando haya un cambio en la topología que influye  en  la  información de  enrutamiento.
      Bounded (Limitadas),
      Sólo los routers que la necesidad de información se actualizan.
    • Utiliza Diffusing Update Algorithm (DUAL) para calcular el camino más corto.
    • No existen actualizaciones periódicas como con RIP y IGRP.
    • Actualizaciones de enrutamiento se envían sólo cuando haya un cambio en la topología.

     

    jueves, 16 de febrero de 2012

    CISCO - CCNA 2 -****- Capítulo 3 -****- Resumen

    INTRODUCCION AL ENRUTAMIENTO DINAMICO

    Podemos decir que uno de los primeros protocolos utilizadosd formalmente es el RIP en su version 1, aunque muchos de los algoritmos usados en el son producos direstos del abuelo ARPANET.

    Aun cuando el RIP ha evolucionado a su version 2, este aun presenta algunos problemas de escalamiento, dejandolo atras cuando se requiere de redes grandes, una mejor opcion es usar versiones de protocolos mas avanzados tales como el IGRP y el EIGRP, ambos productos de CISCO.

    La principal caracteristica de un protocolo de enrutamientos es que esta permite compartir informacion  entre los diversos ROUTERS de manera remota y actualizar de manera dinamica la informacion de enrutamiento a sus propias tablas y compartirlas entre si.

    La ventajamas significativa de los routers con protocolo dinamico es que este permite hacer un informe en el cambio de la topologia (RUTAS) entre los distintos routers de la red y estos a su ves aprenden automaticmaente las nuevas redes asi como las bajas de las mismas.

    Los protocolos de enrutamiento se componen de:

    *Estructuras de datos

    *Algoritmo
    *Mensajes del protocolo de enrutamiento
    Todos los routers trabajan bajo el mismo mantra:
    Obtener más información sobre redes remotas y adaptarse rápidamente cuando se produzca un cambio en la topología.
    Ventajas dentro de los protocolos de enrutamiento dinamico.
    El administrador tiene menos trabajo en el mantenimiento de la configuración al añadir o eliminarlas redes.
    Los protocolos reaccionan automáticamente a la topología de los cambios.
    La configuración es menos propensa a errores.
    Más escalable, el aumento de la red por lo general no representa un problema.
    Clasificacion de los protocolos de enrutamiento:

    Un conjunto de redes bajo una administracion comun se le conoce como AS y como internet esta regido por este sistema, es necesarlo el uso de 2 protocolos, Exterior e Interior.

    Interior Gateway Protocol (IGP)  (Usado para conectar unidades y formar sistemas)
    y
    Exterior Gateway Protocol (EGP) (Usado para conectar sistemas entre si)

    IGP.
    Un protocolo dividido VECTOR DISTANCIA y ESTADO DE ENLACE.

    El primero hace referencia a la caracteristica de poder determinar la mejor ruta para alcanzar un router, para ello se utilizan diferentes metricas que se transforman en HOPS (saltos), algunas de las metricas mas comunes para determinar la mejor ruta entre routers son:
    COSTO, TIEMPO, NUMERO DE SALTOS, ETC...

    El segundo verifica el estado de cada coneccion y hace una simple comparacion para determinar si esta actiivo o inactivo y asi modificar la topologia (RUTAS) de la red, tomando en cuenta que algunos routers estan baja una gerarquia, un souter fuera de estado podria significar que una RED ENTERA es inalacnable y por lo tanto no existe manera alguna de entablar coeccion.

    CONVERGENCIA.
    Todos los routers comparten informacion entre ellos (tablas de las rutas de enlace), en teoria para que una red se encuentre en perfecto estado funcional, todos los routers deben poseer la misma informacion con respecto a las tablas de enrutamiento, el protocolo dinamico se encarga de este trabajo, el termino de CONVERGENCIA se refiere a que TODOS los routers poseen la misma informacion en sus tablas.

    METRICA
    Cuando un router conoce mas de un camino para llegar a otro entonces este hace uso de la METRICA, esta es una forma de decicion para determinar el mejor camino para comunicarse con el router, hay que destacar que cada protocolo usa sus propias metricas de desicion, lo que convierte a unos en opciones mas asequibles que otros en ciertas situaciones.

    Los parametros mas comunes son:

    Conteo de Hops
    - Un simple indicador que cuenta el número de routers que debe atravesar unpaquete
    Ancho de banda
    - El camino con el mayor ancho de banda
    Load (Carga)
    - Considera la utilización del tráfico de un determinado enlace
    Delay (Retraso)
    - Considera el tiempo en que un paquete tarda en recorrer un camino
    Reliability (Fiabilidad)
    - Se evalúa la probabilidad de fracaso de un enlace, calculado a partir deerrores en la interfaz o fallas previaqs del enlace.
    Costo (Costo)
    - Un valor determinado, ya sea por el IOS o por el administrador de la red paraindicar la preferencia de una ruta. El costo puede representar una métrica.


    Balanceo de cargas.
    Cuando un router encuentra mas de un camino para alcanzar a otro y las metricas son las mismas, entonces este toma la decicion de mandar paquetes de manera ocilatoria entre los diferentes camino descubiertos, usando asi todos al mismo tiempo.


    Multiples fuentes de enrutamiento
    Dentro de las redes es posible que se conecten entre si redes que tengan en funcionamiento diferentes protocolos, entonces, para determinar el mejor camino  entre ellos se usa el parametro conocido como DISTANCIA ADMINISTRATIVA, entonces, la metrica se transforma en la comparacion de un simple numero que va desde 0 hasta 255, asi el protocolo con el menor valor se convierte en la ruta mas viable y por tanto la mejor para alcanzar su destino.

    Aqui los valores de distancia administrativa de cada uno de los protocolos:



    Dentro de esta metrica de DISTANCIA ADMINISTRATIVA, cave destacar que hay dos casos especiales cuya DA (Distancia administrativa) tienen los valores MAS CONFIABLES.

    Las rutas estaticas o aquellas introducidas manualmente por el daministrador, son las que obtienen el beneficio de poseer el valor DA=1 (Grado de confiabilidad = EXTRA CONFIABLE) y las que mas confiabilidad tienen sol las redes DIRECTAMENTE CONECTADAS con un valor de DA=0 (Grado de confiabilidad=ULTRA MEGA CONFIABLE), convirtiendolas en las rutas por defecto cuando la metrica refiere a una distancia administrativa.

    Edgar García Flores


    lunes, 28 de noviembre de 2011

    Base de Datos con Netbeans y MySQL




    Pequeña introducción a las bases de datos:

    Una vez iniciada la terminal (o CMD en Microsoft) procedemos a crear la tabla PRODUCTOS, para eso se usa el comando sql CREATE TABLE:


    CREATE TABLE productos(
    Producto VARCHAR (10),    <----- 10 caracteres para escribir en un 
    Cantidad NUMERIC (2),                  campo que guarda tanto números como letras
    precio NUMERIC (5)  <----- En ORACLE se usa NUMBER en lugar de NUMERIC
    );
    Luego insertamos datos dentro de la tabla productos con el comando INSERT INTO:
    insert into productos values ( 'LapTop', 23, 4000);   <-----Recordar que las cadenzas de 
    insert into productos values ( 'Mouse', 3, 300);                  caracteres van con comillas simples  '
    insert into productos values ( 'Pantalla', 10, 3500);
    insert into productos values ( 'DiscoDuro', 2, 600);
    insert into productos values ( 'CDs', 99,10);


    Verificamos que los datos se hayan insertado con el comando SELECT FROM:

    Select * From productos;

    De esa manera se ha creado la base de datos de los productos para poder usarla en NetBeans.
    Conectando Con NetBeans
    //Se importa la libreria de la jTable y de la base de datos SQL
    import   javax.swing.table.DefaultTableModel;
    import   java.sql.*;

             String db = "Eriolmk1";  //Nombre de la base de datos
             String url = "jdbc:mysql://localhost:3306/"+db;
             String user = "root";  //Usuario de MySql
             String pass = "Er6U%h&8y";  //Password de entrada
             DefaultTableModel modelo;
             String sSQL = "";

    public Connection conectar(){
        
          //Se crea una conexión llamada LINK
          Connection link = null;
    try
        {
        //Se le pasan los datos de coneccion a la variable LINK
        link = DriverManager.getConnection(url, userpass);
        }
    catch (Exception ex) //Se guarda el mensaje de error (en caso de existir) en la variable EX
        {
         //Se muestra el mensaje de error guardado en la variable EX
        JOptionPane.showMessageDialog (null, ex);
        }
    return link; 
    }


    void CargarTablaProductos(){

            
            //Se crean 2 arrays para guardar datos extraidos de la base de datos

            //En uno de los arrays se declaran los nombres de las columnas MANUALMENTE
            String[] titulos = {"PRODUCTO", "CANTIDAD", "PRECIO"};
            String[] registro = new String[3];
            
            //Se cargan los títulos de las columnas a la tabla
            modelo = new DefaultTableModel  (null, titulos);
            
            //Se usa la coneccion para establecer contacto con la base de datos de MySQL
            Connection cn = conectar();
            
            //Hay que guardar en la variable la instrucción que "pasaremos" a MySQL
            sSQL = "SELECT * from Productos";
            try 
            {
                //HAy que mandar la instrucción a MySQL con el Statement y el resultado de ese 
                //comando se guarda en un ResulSet
                //(ambos pertenecen a la libreria IMPORT JAVA.SQL )

                Statement st = (Statement) cn.createStatement();
                ResultSet rs = st.executeQuery(sSQL);
                
               //El ResultSet se explora y se extraen los datos para guardarlos
              // en los arrays creados anteriormente
                while (rs.next())
                {
                    registro [0] = rs.getString("Producto");
                    registro [1] = rs.getString("Cantidad");
                    registro [2] = rs.getString("Precio");

                   // Al "modelo" de la jTable se mandan los datos guardados en los arrays
                    modelo.addRow(registro);
                }
                //Una vez se ha terminado el llenado del modelo, este se manda a la jTable
                jTable1.setModel (modelo);
            } 
            catch (SQLException ex)
            {
                JOptionPane.showMessageDialog(null, ex);
               
            }
         
        }

    //Accion del botón para cargar la tabla

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
          CargarTablaProductos();
        } 


    INSERTAR DATOS Y BORRAR DATOS +++++++++++++++++++

    /////Para poder insertar y borrar datos de la base en MySQL hay que insertar 3 jTextField y 3 /////jLabel ademas de 2 botones nuevos que servirán para insertar y borrar datos.






    //////Se crean las sig. funciones

    void  insertar(){
        
        String prod = jTextField1.getText();
        String cant = jTextField2.getText();
        String prec = jTextField3.getText();
        
        Connection con = conectar();
        
        sSQL = "Insert Into productos values ('"+prod+"',"+cant+","+prec+");";
        
        try
        {
            Statement st = (Statement) con.createStatement();
            st.executeUpdate(sSQL);
        }
        catch(SQLException ex){
            JOptionPane.showMessageDialog(null,ex);  
        }
        
    }


    BORRAR DATOS+++++++++++++++++++++


    void borrar(){
        
         String prod = jTextField1.getText();
        
        Connection con = conectar();
        
        sSQL = "delete from productos where producto = '"+ prod+"';";

    try
        {
            Statement st = (Statement) con.createStatement();
            st.execute(sSQL);
        }
        catch(SQLException ex){
            JOptionPane.showMessageDialog(null,ex);  
        }


    }

    // y luego se procede a agregarlas a los nuevos botones+++++++++++++++

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
            insertar();
        }

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
            borrar();
        }


    Para que estos botones funcionen es necesario que los campos con los jTextField sean llenados y con el tipo de dato correcto+++++++++++


    NOTA
    **Recuerden que se deve instalar MySQL y descargar el j/conector de la pagina de MySQL
    si tienen duda de como instalar el conector para MySQL aquí les dejo un link del tutorial del conector  http://eriolmkprogramming.blogspot.mx/2011/09/conectar-vb-net-con-mysql.html, descarguenlo y sigan el tutorial del paso 1 al 4. cualquier duda dejen un comentario


    domingo, 6 de noviembre de 2011

    Programa Figuras


    Programa para calcular el area de figuras geométricas


    Al insertar el codigo este se hace entre las lineas de GENERATED CODE y las VARIABLES.





    Aqui el codigo:

      int figura = 1;
        double area, aux1;
        
        
        private void reiniciarComponentes(){
            jLabel1.setVisible (false);
            jLabel12.setVisible (false);
            jLabel13.setVisible (false);
            jLabel14.setVisible (false);
            
            jLabel8.setText("");
            jLabel9.setText("");
            
            jTextField1.setText("");
            jTextField2.setText("");
            
            jTextField2.setVisible(false);
    }
          
        
        private void jLabel6MouseClicked(java.awt.event.MouseEvent evt) {                                     
        
            //Codigo de cirulo
            reiniciarComponentes();
            
            jLabel12.setVisible (true);
            
            jLabel9.setText("Radio:");
            
            figura = 1;    
        }                                    

        private void jLabel5MouseClicked(java.awt.event.MouseEvent evt) {                                     
            //Codigo de rectangulo
            reiniciarComponentes();
            
            jLabel13.setVisible (true);
            jTextField2.setVisible(true);
            
            jLabel9.setText("Ancho:");
            jLabel8.setText("Largo:");
            
            figura = 2;
        }                                    

        private void jLabel4MouseClicked(java.awt.event.MouseEvent evt) {                                     
            // Codigo triangulo
            reiniciarComponentes();
            
            jLabel1.setVisible (true);
            jTextField2.setVisible(true);
            
            jLabel9.setText("Base:");
            jLabel8.setText("Altura:");
            
            figura = 3;
           
        }                                    

        private void jLabel7MouseClicked(java.awt.event.MouseEvent evt) {                                     
            // Codigo cuadrado
            reiniciarComponentes();
            
            jLabel14.setVisible (true);
            
            jLabel9.setText("Lado:");
            
            figura = 4;
            
        }                                    

        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            // Codigo del boton
            
            if (figura == 1){
                
                aux1 = Double.parseDouble(String.valueOf(jTextField1.getText()));
                area = 3.1416*(aux1*aux1);
                
              jLabel11.setText(""+area);  
            }
            
            else if (figura==2){
                aux1 = Double.parseDouble(String.valueOf(jTextField1.getText()));
                area = Double.parseDouble(String.valueOf(jTextField2.getText()));
                
                area = (area*aux1);
                
                jLabel11.setText(""+area);
            }
            
            else if (figura==3){
                
                aux1 = Double.parseDouble(String.valueOf(jTextField1.getText()));
                area = Double.parseDouble(String.valueOf(jTextField2.getText()));
                
                area = (aux1*area)/2;
                
                jLabel11.setText(""+area);
            }
            
            else if (figura==4){
                
                aux1 = Double.parseDouble(String.valueOf(jTextField1.getText()));
                
                
                area = aux1 * aux1;
                
                jLabel11.setText(""+area);
            }
        }                                       




    Descargar archivos de imagen

    **********---------------->AQUI  <----------------------------***********


    Descarga el proyecto completo

    **********---------------->AQUI<----------------------------***********

    Share

    Twitter Delicious Facebook Digg Stumbleupon Favorites More