martes, 30 de noviembre de 2010

Notas acerca de direcciones IP y la dirección IP en .NET

Las direcciones IP se dividen en tres clases generales (A, B, C) y dos especializadas que son utilizadas para propósitos experimentales (D, E). Las direcciones IP se representan por cuatro octetos u ocho bits, separados por puntos, así como la dirección MAC nos proporciona identificación, la dirección IP nos da ubicación.

Cada dirección IP se compone de dos campos un campo de red y un campo de host. El tamaño de cada uno de esos campos varía según la clase:
Para la clase A tenemos el primer octeto para identificar la red y los restantes tres para identificar al host.
Para la clase B tenemos los dos primeros octetos para identificar la red y los dos restantes para identificar al host.
Para la clase C tenemos los tres primeros octetos para identificar al host y el último octeto para identificar al host.
El primer octeto en decimal siempre nos indica la clase a la que pertenece una red, dependiendo de su valor en decimal dentro de los siguientes rangos:


  • 0 a 127 es clase A

  • 128 a 191 es clase B

  • 192 a 223 es clase C


Aquí si observamos el inicio del rango es par y el final es impar.
En la clase A, la dirección IP 127.0.0.1 se reserva como dirección de loopback.
Existen además tipos reservados de IP como por ejemplo si los octetos de host son puestos en 0 (cero) esa dirección IP identifica a la red o si todos los octetos de host son puestos en 1 o 255 en decimal esa dirección IP es una dirección IP de Broadcast.

Una manera de identificar los tipos de red es buscar la posición del bit 0 (cero) dentro del primer octeto, la reglas son:
Si el primer bit es 0 (cero) la dirección es clase A, si el segundo bit es 0 (cero) la dirección es clase B, si el tercer bit es 0 (cero) entonces es clase C. Como en el siguiente esquema:


clase A | 0 1 1 1 1 1 1 1
---------+-----------------
clase B | 1 0 1 1 1 1 1 1
---------+----------------
clase C | 1 1 0 1 1 1 1 1


IP local en .NET

.Net tiene diversas clases dentro del ensamblado System.Net para el manejo de direcciones IP mostraremos el uso básico de esas clases para obtener la dirección o las direcciones IP de la máquina en donde se ejecute el siguiente listado.



Para acceder a las clases de red, primeramente hacemos referencia a los ensamblados

using System.Net;
using System.Net.Sockets;

En la siguiente línea

IPHostEntry ipinfo = Dns.GetHostByName(Dns.GetHostName());

Utilizamos el método GetHostByName de la clase Dns el cual nos devuelve un objeto IPHostEntry del cual utilizamos la propiedad AddressList que es una lista de objetos del tipo IPAddress que representa cada IP de la máquina en caso de tener más de una interface de red y que recorremos con un ciclo utilizando el método GetAddressBytes() para obtener los octetos como un arreglo.

foreach(IPAddress ip in ipinfo.AddressList){
byte[] b = ip.GetAddressBytes();
}

Por último utilizamos las propiedades estáticas IPAddress.Loopback y IPAddress.Broadcast para imprimir la dirección Loopback y de Broadcast respectivamente.
Al compilar y ejecutar el programa obtendremos algo similar a lo que se muestra en la siguiente imagen:



  Descarga el código fuente

jueves, 25 de noviembre de 2010

Notas de la certificación CCNA de Cisco

Notas de las primeras clases del módulo Aspectos básicos de Networking de CCNA Exploration 4.0.



La problemática básica de toda red está dividida en 3 aspectos:

  1. La interconexión

  2. La colisión de paquetes

  3. El ancho de banda



Debido a la distancia en la conexión física la señal se debilita por lo que es necesario poner un dispositivo en la capa física que ayude a propagar la señal, este dispositivo en capa física se conoce como Hub.
El hub resuelve el problema de la interconexión en cuanto a la propagación de la señal, pero no logra evitar las colisiones debido a que también propaga el residuo de la trama y las colisiones se producen cuando chocan dos tramas. El hub solo reproduce bit a bit y no es capaz de ver la longitud de trama que son 64 bits por lo que no distingue cuando es una trama completa y cuando un residuo de trama.
El tamaño del dominio de colisión es el número de computadoras conectadas a un medio físico y es todo aquel dispositivo que puede verse afectado por una colisión.
A nivel de capa 1 el segmento de red es el cable físico y el dispositivo para segmentar es el hub, si se extiende el cable se extiende también la colisión.



El switch es un dispositivo de capa 2 y hace lo mismo que el hub pero tiene una tabla de conmutación y además es capaz de revisar la longitud de la trama de 64 bits y si es menor a 64 bits elimina la trama por lo que elimina el dominio de colisión.
Todo dispositivo que des encapsule de capa 1 a capa 2 detiene el dominio de colisión y todo dispositivo de capa 2 que des encapsule a capa tres detiene el dominio de broadcast.
La diferencia entre un brigde y un switch es que hacen lo mismo pero el switch lo hace en base a hardware y el brigde lo hace en base a software.
La segmentación en capa 2(a nivel de switches) incluye los dispositivos de capa 1(a nivel de hubs), esta segmentación hace más pequeño el dominio de colisión.
Lo único que no puede detener el switch es el dominio de broadcast, un dominio de broadcast es hasta a donde puede llegar el broadcast.



El dominio de broadcast solo se puede detener en capa tres y a ese nivel trabajan los routers que tienen capacidades para detener el dominio de broadcast y las capacidades de los dispositivos en capas inferiores.
Es decir un router detiene las colisiones y destruye los paquetes de broadcast, además puede diferenciar si es una red WAN o una red LAN.
La segmentación en capa 3 incluye dispositivos de capa 2 (switches) y de capa 1 (hubs) y esta segmentación hace más pequeño el dominio de broadcast.
El switch trabaja con dirección MAC y el router con dirección IP, para sacar el ancho de banda de cada PC la formula es el ancho de banda del medio por el tamaño del dominio de colisión.

Ancho de banda = capacidad del medio (mbps)/tdc

Cada puerto del switch o cada interface del switch es un dominio de colisión.
En resumen:

  • El hub manipula bits

  • El switch manipula tramas

  • El router manipula paquetes

  • La dirección MAC son de 48 bits que representan en Hexadecimal.

  • La dirección MAC nos proporciona identificación.


jueves, 18 de noviembre de 2010

Lecturas de ingeniería de software

El día 19 de noviembre de 2010 dentro del grupo de procesos y estándares para el desarrollo de software se tendrá una lectura acerca de cada una de las posturas de cada autor o empresa que están publicadas en este sitio http://www.semat.org dedicado a la ingeniería de software.


Las posturas se encuentran en el enlace de http://www.semat.org/bin/view/Main/WorkshopPositions


En mí caso me toca leer las posturas de las empresas Ericsson y Fujitsu.


En ese sitio también hacen mención de la muerte de Watts Humphrey un personaje importante en la ingeniería de software, sin duda una lamentable perdida.