Noticias

Los ultimos avances Tecnológicos.

Arduino

Proyectos hechos en Arduino.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Redes Sociales

Visitamos en nuestras redes sociales.

jueves, 25 de febrero de 2016

PROTOCOLOS DE CISCO

  • Estándar IEEE 802.1Q 

El protocolo IEEE 802.1Q, también conocido como dot1Q, fue un proyecto del grupo de trabajo 802 de la IEEE para desarrollar un mecanismo que permita a múltiples redes compartir de forma transparente el mismo medio físico, sin problemas de interferencia entre ellas (Trunking) o enlace troncal. Es también el nombre actual del estándar establecido en este proyecto y se usa para definir el protocolo de encapsulamiento usado para implementar este mecanismo en redes Ethernet. Todos los dispositivos de interconexión que soportan VLAN deben seguir la norma IEEE 802.1Q que especifica con detalle el funcionamiento y administración de redes virtuales.

Existen dos tipos de puertos:

1. Puertos de acceso: Se conectan las estaciones directamente. Mapean el puerto a una VLAN programada. Cuando entra una trama Ethernet se le añade el TAG de 802.1Q. Cuando sale una trama 802.1Q se le quita el TAG, para que llegue a la estación correspondiente con el formato IEEE 802.3 original. 

2. Puertos 1Q Trunk: Se utilizan para conectar Switches entre si y que pase el tráfico de diferentes VLANs a través de ellos. Las tramas que le llegan y que salen llevan el Tag 802.1Q.


  • Estándar IEEE 802.1Q/1P

El estándar IEEE 802.1Q/1P define el funcionamiento de los puentes LAN virtuales (VLAN) que permite la definición, operación y administración de topologías de VLAN dentro de una infraestructura LAN puenteada. Utilizando el GA511 con conmutadores o routers compatibles con 802.1p ofrece una gama de priorización de tráfico de tramas de nivel 2, que proporciona una mayor calidad de servicio en redes de área local de alta velocidad.


Prioridad IEEE 802.1
IEEE 802.1 especifica el campo de prioridad de usuario y define hasta ocho separar el tráfico tipos mediante la inserción de una etiqueta en una trama MAC-capa que contiene bits para definir la clase de servicios.




Mas información de Estándar IEEE 802.1Q 
Mas información de Estándar IEEE 802.1Q/1P

martes, 26 de enero de 2016

VLSM (Variable Length Subnet Mask)


Máscara variable ó máscara de subred de longitud variable, es uno de los métodos que se implementó para evitar el agotamiento de direcciones IPv4 permitiendo un mejor aprovechamiento y optimización del uso de direcciones.

VLSM es un proceso de dividir un espacio IP en las subredes de diferentes tamaños sin perder direcciones IP. Cuando realizamos la división en subredes, todas las subredes tienen el mismo número de ordenadores, esto se conoce como FLSM (Longitud fija máscara de subred). En FLSM todas las subredes utilizan misma máscara de subred, esto llevó a ineficiencias. En el escenario de la vida real, algunas subredes pueden requerir gran número de direcciones de host, mientras que otros pueden requerir solamente algunas direcciones.

El objetivo principal de VLSM es asignar direcciones IP a los diferentes host dentro de una red divida en subredes con el menor desperdicio de IP's posible.

CARACTERÍSTICAS
  • Solo se aplicable con los protocolos de enrutamiento sin clase  RIPv2, OSPF, EIGRP, BGP 4 e IS-IS.
  • Éste es el proceso de dividir una subred en subredes.
  • Se puede usar más de una máscara de subred.  
  • Uso más eficaz de las direcciones IP en comparación con el direccionamiento IP classful.

VENTAJAS

  • Permite el uso eficaz del espacio de direccionamiento.
  • Permite el uso de varias longitudes de la máscara de subred.
  • Divide un bloque de direcciones en bloques más pequeño. 
  • Permite la sumarización de ruta.
  • Proporciona mayor flexibilidad en el diseño de red.
  • Soporta redes empresariale jerárquicas.

Para mayor información link

lunes, 18 de enero de 2016

CONEXIÓN CON BASE DE DATOS



Código para poder conectar la base de datos a MySQL


Connection miconexion = null;
public Connection connection() {
try {
Class.forName("com.mysql.jdbc.Driver");
miconexion = DriverManager.getConnection("jdbc:mysql://localhost/BD_Practica", "root", "root");
} catch (Exception e) {
System.out.print(e.getMessage());
}
return miconexion;
}

Código de Get y Set para poder obtener los datos ingresados


public String strNombre;
public String strEdad;
public String strCedula;
public String strDireccion;
public void Cls_Estudiante() {
}
public Cls_Estudiante(String strNombre, String strEdad, String strCedula, String strDireccion) {
this.strNombre = strNombre;
this.strEdad = strEdad;
this.strCedula = strCedula;
this.strDireccion = strDireccion;
}
public String getStrNombre() {
return strNombre;
}
public void setStrNombre(String strNombre) {
this.strNombre = strNombre;
}
public String getStrEdad() {
return strEdad;
}
public void setStrEdad(String strEdad) {
this.strEdad = strEdad;
}
public String getStrCedula() {
return strCedula;
}
public void setStrCedula(String strCedula) {
this.strCedula = strCedula;
}
public String getStrDireccion() {
return strDireccion;
}
public void setStrDireccion(String strDireccion) {
this.strDireccion = strDireccion;
}

Código para poder insertar los datos a nuestra tabla creada como es Tb_estudiante

int op = JOptionPane.showConfirmDialog(null, "Desea insertar los datos", "Mensaje de Informacion", JOptionPane.YES_NO_OPTION);
if (op == JOptionPane.YES_NO_OPTION) {
try {
PreparedStatement pst = (PreparedStatement) cn.prepareStatement("INSERT INTO Tb_estudiante(Nombre,Apellido,Cedula,Edad,Direccion,Telefono,Curso)VALUES(?,?,?,?,?,?,?)");

String Nombre = txt_nombre.getText();
String Apellido = txt_apellido.getText();
String Cedula = txt_cedula.getText();
String Edad = (String) cbm_edad.getSelectedItem();
String Direccion = txt_direccion.getText();
String Telefono = txt_telefono.getText();
String Curso = txt_curso.getText();

Cls_Estudiante obj = new Cls_Estudiante(Nombre, Apellido, Cedula, Edad, Direccion, Telefono, Curso);
pst.setString(1, obj.getNombre());
pst.setString(2, obj.getApellido());
pst.setString(3, obj.getCedula());
pst.setString(4, obj.getEdad());
pst.setString(5, obj.getDireccion());
pst.setString(6, obj.getTelefono());
pst.setString(7, obj.getCurso());
pst.executeUpdate();
mostrardatos("");
JOptionPane.showMessageDialog(null, "Los datos fueron insertados");
btn_ingresar.setText("GUARDADO");
} catch (Exception e) {
}
} else {
JOptionPane.showMessageDialog(null, "Los datos no fueron insertados");
btn_ingresar.setText("CANCELADO");
}
}

Código para conectar a nuestra base de datos

Cls_Conexion cc = new Cls_Conexion();
Connection cn = (Connection) cc.connection();

Código para poder mostrar los datos en una tabla


void mostrardatos(String valor) {
DefaultTableModel modelo = new DefaultTableModel();
modelo.addColumn("ID");
modelo.addColumn("Nombre");
modelo.addColumn("Apellido");
modelo.addColumn("Cedula");
modelo.addColumn("Edad");
modelo.addColumn("Direccion");
modelo.addColumn("Telefono");
modelo.addColumn("Curso");
tb_datos.setModel(modelo);
String sql = "";
if (valor.equals("")) {
sql = "Select * from Tb_estudiante;";
} else {
sql = "Select * from Tb_estudiante Where id='" + valor + "'";
}

String[] datos = new String[8];
try {
Statement st = (Statement) cn.createStatement();
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {
datos[0] = rs.getString(1);
datos[1] = rs.getString(2);
datos[2] = rs.getString(3);
datos[3] = rs.getString(4);
datos[4] = rs.getString(5);
datos[5] = rs.getString(6);
datos[6] = rs.getString(7);
datos[7] = rs.getString(8);
modelo.addRow(datos);
}
tb_datos.setModel(modelo);
} catch (Exception e) {
}
}

Código para cambiar de estado del radio botón 

private void rbd_mostrarActionPerformed(java.awt.event.ActionEvent evt) {
mostrardatos("");
rbd_mostrar.setText("OCULTAR");
if(rbd_mostrar.isSelected()==false){
mostrardatosn("");
rbd_mostrar.setText("MOSTRAR");
}
}