Mostrando entradas con la etiqueta Redes. Mostrar todas las entradas
Mostrando entradas con la etiqueta Redes. Mostrar todas las entradas

Modelo OSI

| 0 comentarios

Pila-osi-es-2.svg


Durante los años 60 y 70 se crearon muchas tecnologías de redes, cada una basada en un diseño específico de hardware. Estos sistemas eran construidos de una sola pieza, una arquitectura monolítica. Esto significa que los diseñadores debían ocuparse de todos los elementos involucrados en el proceso, estos elementos forman una cadena de transmisión que tiene diversas partes: Los dispositivos físicos de conexión, los protocolos software y hardware usados en la comunicación.

Los programas de aplicación realizan la comunicación y la interfaz hombre-máquina que permite al humano utilizar la red. Este modelo, que considera la cadena como un todo monolítico, es poco práctico, pues el más pequeño cambio puede implicar alterar todos sus elementos.

El diseño original de Internet del Departamento de Defensa Americano disponía un esquema de cuatro capas, aunque data de los 70 es similar al que se continúa utilizando:

Capa Física o de Acceso de Red: Es la responsable del envío de la información sobre el sistema hardware utilizado en cada caso, se utiliza un protocolo distinto según el tipo de red física.

Capa de Red o Capa Internet: Es la encargada de enviar los datos a través de las distintas redes físicas que pueden conectar una máquina origen con la de destino de la información. Los protocolos de transmisión, como el IP están íntimamente asociados a esta capa.

Capa de Transporte: Controla el establecimiento y fin de la conexión, control de flujo de datos, retransmisión de datos perdidos y otros detalles de la transmisión entre dos sistemas. Los protocolos más importantes a este nivel son TCP y UDP (mutuamente excluyentes).

Capa de Aplicación: Conformada por los protocolos que sirven directamente a los programas de usuario, navegador, e-mail, FTP, TELNET, etc.

Respondiendo a la teoría general imperante el mundo de la computación, de diseñar el hardware por módulos y el software por capas, en 1978 la organización ISO (International Standards Organization), propuso un modelo de comunicaciones para redes al que titularon "The reference model of Open Systems Interconnection", generalmente conocido como MODELO OSI.

Su filosofía se basa en descomponer la funcionalidad de la cadena de transmisión en diversos módulos, cuya interfaz con los adyacentes esté estandarizada. Esta filosofía de diseño presenta una doble ventaja: El cambio de un módulo no afecta necesariamente a la totalidad de la cadena, además, puede existir una cierta inter-operabilidad entre diversos productos y fabricantes hardware/software, dado que los límites y las interfaces están perfectamente definidas.

Esto supone por ejemplo, que dos softwares de comunicación distintos puedan utilizar el mismo medio físico de comunicación.

El modelo OSI tiene dos componentes principales:

  • Un modelo de red, denominado modelo básico de referencia o capa de servicio.
  • Una serie de protocolos concretos.

El modelo de red, aunque inspirado en el de Internet no tiene más semejanzas con aquél. Está basado en un modelo de siete (7) capas, mientras que el primitivo de Internet estaba basado en cuatro (4). Actualmente todos los desarrollos se basan en este modelo de 7 niveles que son los siguientes: 1 Físico; 2 de Enlace; 3 de Red; 4 de Transporte; 5 de Sesión; 6 de Presentación y 7 de Aplicación. Cada nivel realiza una función concreta, y está separado de los adyacentes por interfaces conocidas, sin que le incumba ningún otro aspecto del total de la comunicación.

Generalmente los dispositivos utilizados en las redes circunscriben su operación a uno o varios de estos niveles. Por ejemplo, un hub (concentrador) que amplifica y retransmite la señal a través de todos sus puertos está operando exclusivamente en la capa 1, mientras que un conmutador (switch) opera en las capas 1 y 2; un router opera en las capas 1, 2 y 3. Finalmente una estación de trabajo de usuario generalmente maneja las capas 5, 6 y 7.

En lo que respecta al software, hay que señalar que cada capa utiliza un protocolo específico para comunicarse con las capas adyacentes, y que añade a la cabecera del paquete cierta información adicional.

Capas del modelo OSI

La descripción de las diversas capas que componen este modelo es la siguiente:

1. Capa física

Es la encargada de transmitir los bits de información por la línea o medio utilizado para la transmisión. Se ocupa de las propiedades físicas y características eléctricas de los diversos componentes, de la velocidad de transmisión, si esta es unidireccional o bidireccional (simplex, duplex o flull-duplex).

También de aspectos mecánicos de las conexiones y terminales, incluyendo la interpretación de las señales eléctricas.

Como resumen de los cometidos de esta capa, podemos decir que se encarga de transformar un paquete de información binaria en una sucesión de impulsos adecuados al medio físico utilizado en la transmisión. Estos impulsos pueden ser eléctricos (transmisión por cable), electromagnéticos (transmisión Wireless) o luminosos (transmisón óptica). Cuando actúa en modo recepción el trabajo es inverso, se encarga de transformar estos impulsos en paquetes de datos binarios que serán entregados a la capa de enlace.

2. Capa de enlace

Puede decirse que esta capa traslada los mensajes hacia y desde la capa física a la capa de red. Especifica como se organizan los datos cuando se transmiten en un medio particular. Esta capa define como son los cuadros, las direcciones y las sumas de control de los paquetes Ethernet.

Además del direccionamiento local, se ocupa de la detección y control de errores ocurridos en la capa física, del control del acceso a dicha capa y de la integridad de los datos y fiabilidad de la transmisión. Para esto agrupa la información a transmitir en bloques, e incluye a cada uno una suma de control que permitirá al receptor comprobar su integridad. Los datagramas recibidos son comprobados por el receptor. Si algún datagrama se ha corrompido se envía un mensaje de control al remitente solicitando su reenvío.

La capa de enlace puede considerarse dividida en dos subcapas:

  • Control lógico de enlace LLC: define la forma en que los datos son transferidos sobre el medio físico, proporcionando servicio a las capas superiores.

  • Control de acceso al medio MAC: Esta subcapa actúa como controladora del hardware subyacente (el adaptador de red). De hecho el controlador de la tarjeta de red es denominado a veces "MAC driver", y la dirección física contenida en el hardware de la tarjeta es conocida como dirección. Su principal consiste en arbitrar la utilización del medio físico para facilitar que varios equipos puedan competir simultáneamente por la utilización de un mismo medio de transporte. El mecanismo CSMA/CD ("Carrier Sense Multiple Access with Collision Detection") utilizado en Ethernet es un típico ejemplo de esta subcapa.


3. Capa de Red

Esta capa se ocupa de la transmisión de los datagramas (paquetes) y de encaminar cada uno en la dirección adecuada tarea esta que puede ser complicada en redes grandes como Internet, pero no se ocupa para nada de los errores o pérdidas de paquetes. Define la estructura de direcciones y rutas de Internet. A este nivel se utilizan dos tipos de paquetes: paquetes de datos y paquetes de actualización de ruta. Como consecuencia esta capa puede considerarse subdividida en dos:

  • Transporte: Encargada de encapsular los datos a transmitir (de usuario). Utiliza los paquetes de datos. En esta categoría se encuentra el protocolo IP.
  • Conmutación: Esta parte es la encargada de intercambiar información de conectividad específica de la red. Los routers son dispositivos que trabajan en este nivel y se benefician de estos paquetes de actualización de ruta. En esta categoría se encuentra el protocolo ICMP responsable de generar mensajes cuando ocurren errores en la transmisión y de un modo especial de eco que puede comprobarse mediante ping.

Los protocolos más frecuentemente utilizados en esta capa son dos: X.25 e IP.

4. Capa de Transporte

Esta capa se ocupa de garantizar la fiabilidad del servicio, describe la calidad y naturaleza del envío de datos. Esta capa define cuando y como debe utilizarse la retransmisión para asegurar su llegada. Para ello divide el mensaje recibido de la capa de sesión en trozos (datagramas), los numera correlativamente y los entrega a la capa de red para su envío.

Durante la recepción, si la capa de Red utiliza el protocolo IP, la capa de Transporte es responsable de reordenar los paquetes recibidos fuera de secuencia. También puede funcionar en sentido inverso multiplexando una conexión de transporte entre diversas conexiones de datos. Este permite que los datos provinientes de diversas aplicaciones compartan el mismo flujo hacia la capa de red.

Un ejemplo de protocolo usado en esta capa es TCP, que con su homólogo IP de la capa de Red, configuran la suite TCP/IP utilizada en Internet, aunque existen otros como UDP, que es una capa de transporte utilizada también en Internet por algunos programas de aplicación.

5. Capa de Sesión

Es una extensión de la capa de transporte que ofrece control de diálogo y sincronización, aunque en realidad son pocas las aplicaciones que hacen uso de ella.


6. Capa de Presentación

Esta capa se ocupa de garantizar la fiabilidad del servicio, describe la calidad y naturaleza del envío de datos. Esta capa define cuando y como debe utilizarse la retransmisión para asegurar su llegada. Para ello divide el mensaje recibido de la capa de sesión en trozos (datagramas), los numera correlativamente y los entrega a la capa de red para su envío.

Durante la recepción, si la capa de Red utiliza el protocolo IP, la capa de Transporte es responsable de reordenar los paquetes recibidos fuera de secuencia. También puede funcionar en sentido inverso multiplexando una conexión de transporte entre diversas conexiones de datos. Este permite que los datos provinientes de diversas aplicaciones compartan el mismo flujo hacia la capa de red.

Esta capa se ocupa de los aspectos semánticos de la comunicación, estableciendo los arreglos necesarios para que puedan comunicar máquinas que utilicen diversa representación interna para los datos. Describe como pueden transferirse números de coma flotante entre equipos que utilizan distintos formatos matemáticos.

En teoría esta capa presenta los datos a la capa de aplicación tomando los datos recibidos y transformándolos en formatos como texto imágenes y sonido. En realidad esta capa puede estar ausente, ya que son pocas las aplicaciones que hacen uso de ella.

7. Capa de Aplicación

Esta capa describe como hacen su trabajo los programas de aplicación (navegadores, clientes de correo, terminales remotos, transferencia de ficheros etc). Esta capa implementa la operación con ficheros del sistema. Por un lado interactúan con la capa de presentación y por otro representan la interfaz con el usuario, entregándole la información y recibiendo los comandos que dirigen la comunicación.

Algunos de los protocolos utilizados por los programas de esta capa son HTTP, SMTP, POP, IMAP etc.

En resumen, la función principal de cada capa es:

Aplicación

El nivel de aplicación es el destino final de los datos donde se proporcionan los servicios al usuario.

Presentación

Se convierten e interpretan los datos que se utilizarán en el nivel de aplicación.

Sesión

Encargado de ciertos aspectos de la comunicación como el control de los tiempos.

Transporte

Transporta la información de una manera fiable para que llegue correctamente a su destino.

Red

Nivel encargado de encaminar los datos hacia su destino eligiendo la ruta más efectiva.

Enlace

Enlace de datos. Controla el flujo de los mismos, la sincronización y los errores que puedan producirse.

Físico

Se encarga de los aspectos físicos de la conexión, tales como el medio de transmisión o el hardware.


Dirección IP

| 0 comentarios

¿Qué es una dirección IP?

Los equipos comunican a través de Internet mediante el protocolo IP (Protocolo de Internet). Este protocolo utiliza direcciones numéricas denominadas direcciones IP compuestas por cuatro números enteros (4 bytes) entre 0 y 255, y escritos en el formato xxx.xxx.xxx.xxx. Por ejemplo, 194.153.205.26 es una dirección IP en formato técnico.

Los equipos de una red utilizan estas direcciones para comunicarse, de manera que cada equipo de la red tiene una dirección IP exclusiva.

El organismo a cargo de asignar direcciones públicas de IP, es decir, direcciones IP para los equipos conectados directamente a la red pública de Internet, es el ICANN (Internet Corporation for Assigned Names and Numbers) que remplaza el IANA desde 1998 (Internet Assigned Numbers Agency).
Cómo descifrar una dirección IP

Una dirección IP es una dirección de 32 bits, escrita generalmente con el formato de 4 números enteros separados por puntos. Una dirección IP tiene dos partes diferenciadas:

* los números de la izquierda indican la red y se les denomina netID (identificador de red).
* los números de la derecha indican los equipos dentro de esta red y se les denomina host-ID (identificador de host).

Veamos el siguiente ejemplo:

ejemplo de red

Observe la red, a la izquierda 194.28.12.0. Contiene los siguientes equipos:

  • 194.28.12.1 a 194.28.12.4

Observe la red de la derecha 178.12.0.0. Incluye los siguientes equipos:

  • 178.12.77.1 a 178.12.77.6

En el caso anterior, las redes se escriben 194.28.12 y 178.12.77, y cada equipo dentro de la red se numera de forma incremental.

Tomemos una red escrita 58.0.0.0. Los equipos de esta red podrían tener direcciones IP que van desde 58.0.0.1 a 58.255.255.254. Por lo tanto, se trata de asignar los números de forma que haya una estructura en la jerarquía de los equipos y los servidores.

Cuanto menor sea el número de bits reservados en la red, mayor será el número de equipos que puede contener.

De hecho, una red escrita 102.0.0.0 puede contener equipos cuyas direcciones IP varían entre 102.0.0.1 y 102.255.255.254 (256*256*256-2=16.777.214 posibilidades), mientras que una red escrita 194.24 puede contener solamente equipos con direcciones IP entre 194.26.0.1 y 194.26.255.254 (256*256-2=65.534 posibilidades); ésta es el concepto de clases de direcciones IP.

Direcciones especiales

Cuando se cancela el identificador de host, es decir, cuando los bits reservados para los equipos de la red se reemplazan por ceros (por ejemplo, 194.28.12.0), se obtiene lo que se llama dirección de red. Esta dirección no se puede asignar a ninguno de los equipos de la red.

Cuando se cancela el identificador de red, es decir, cuando los bits reservados para la red se reemplazan por ceros, se obtiene una dirección del equipo. Esta dirección representa el equipo especificado por el identificador de host y que se encuentra en la red actual.

Cuando todos los bits del identificador de host están en 1, la dirección que se obtiene es la denominada dirección de difusión. Es una dirección específica que permite enviar un mensaje a todos los equipos de la red especificados por el netID.

A la inversa, cuando todos los bits del identificador de red están en 1, la dirección que se obtiene se denomina dirección de multidifusión.

Por último, la dirección 127.0.0.1 se denomina dirección de bucle de retorno porque indica el host local.

Clases de redes

Las direcciones de IP se dividen en clases, de acuerdo a la cantidad de bytes que representan a la red.

Clase A

En una dirección IP de clase A, el primer byte representa la red.

El bit más importante (el primer bit a la izquierda) está en cero, lo que significa que hay 2 7 (00000000 a 01111111) posibilidades de red, que son 128 posibilidades. Sin embargo, la red 0 (bits con valores 00000000) no existe y el número 127 está reservado para indicar su equipo.

Las redes disponibles de clase A son, por lo tanto, redes que van desde 1.0.0.0 a 126.0.0.0 (los últimos bytes son ceros que indican que se trata seguramente de una red y no de equipos).

Los tres bytes de la izquierda representan los equipos de la red. Por lo tanto, la red puede contener una cantidad de equipos igual a:
224-2 = 16.777.214 equipos.

En binario, una dirección IP de clase A luce así:

0XxxxxxxXxxxxxxxXxxxxxxxXxxxxxxx
RedEquipos

Clase B

En una dirección IP de clase B, los primeros dos bytes representan la red.

Los primeros dos bits son 1 y 0; esto significa que existen 214 (10 000000 00000000 a 10 111111 11111111) posibilidades de red, es decir, 16.384 redes posibles. Las redes disponibles de la clase B son, por lo tanto, redes que van de 128.0.0.0 a 191.255.0.0.

Los dos bytes de la izquierda representan los equipos de la red. La red puede entonces contener una cantidad de equipos equivalente a: Por lo tanto, la red puede contener una cantidad de equipos igual a:
216-21 = 65.534 equipos.

En binario, una dirección IP de clase B luce así:

10XxxxxxXxxxxxxxXxxxxxxxXxxxxxxx
RedOrdenadores

Clase C

En una dirección IP de clase C, los primeros tres bytes representan la red. Los primeros tres bits son 1,1 y 0; esto significa que hay 221 posibilidades de red, es decir, 2.097.152. Las redes disponibles de la clases C son, por lo tanto, redes que van desde 192.0.0.0 a 223.255.255.0.

El byte de la derecha representa los equipos de la red, por lo que la red puede contener:
28-21 = 254 equipos.

En binario, una dirección IP de clase C luce así:

110XxxxxXxxxxxxxXxxxxxxxXxxxxxxx
RedOrdenadores

Asignación de direcciones IP

El objetivo de dividir las direcciones IP en tres clases A, B y C es facilitar la búsqueda de un equipo en la red. De hecho, con esta notación es posible buscar primero la red a la que uno desea tener acceso y luego buscar el equipo dentro de esta red. Por lo tanto, la asignación de una dirección de IP se realiza de acuerdo al tamaño de la red.

Clase Cantidad de redes posibles Cantidad máxima de equipos en cada una
A 126 16777214
B 16384 65534
C 2097152 254

Las direcciones de clase A se utilizan en redes muy amplias, mientras que las direcciones de clase C se asignan, por ejemplo, a las pequeñas redes de empresas.

Direcciones IP reservadas

Es habitual que en una empresa u organización un solo equipo tenga conexión a Internet y los otros equipos de la red acceden a Internet a través de aquél (por lo general, nos referimos a un proxy o pasarela).

En ese caso, solo el equipo conectado a la red necesita reservar una dirección de IP con el ICANN. Sin embargo, los otros equipos necesitarán una dirección IP para comunicarse entre ellos.

Por lo tanto, el ICANN ha reservado una cantidad de direcciones de cada clase para habilitar la asignación de direcciones IP a los equipos de una red local conectada a Internet, sin riesgo de crear conflictos de direcciones IP en la red de redes. Estas direcciones son las siguientes:

  • Direcciones IP privadas de clase A: 10.0.0.1 a 10.255.255.254; hacen posible la creación de grandes redes privadas que incluyen miles de equipos.
  • Direcciones IP privadas de clase B: 172.16.0.1 a 172.31.255.254; hacen posible la creación de redes privadas de tamaño medio.
  • Direcciones IP privadas de clase C: 192.168.0.1 a 192.168.0.254; para establecer pequeñas redes privadas.

Máscaras de subred Para entender lo que es una mascara, puede ser interesante consultar la sección “ensamblador” acerca del enmascarado en binario

Máscaras de subred Para entender lo que es una mascara, puede ser interesante consultar la sección “ensamblador” acerca del enmascarado en binario

Brevemente, una máscara se genera con números uno en la ubicación de los bits que usted quiera conservar y ceros en aquellos que quiera cancelar. Una vez que se crea una máscara, simplemente coloque un Y lógico entre el valor que quiere enmascarar y las máscara, a fin de mantener intacta la parte deseada y cancelar el resto.

Por lo tanto una máscara de red se presenta bajo la forma de 4 bytes separados por puntos (como una dirección IP), y está compuesta (en su notación binaria) por ceros en lugar de los bits de la dirección IP que se desea cancelar (y por unos en lugar de aquellos que se quiera conservar).

Usos interesantes de las máscaras de subred

El interés principal de una máscara de subred reside en que permite la identificación de la red asociada con una dirección IP.

Efectivamente, la red está determinada por un número de bytes en la dirección IP (1 byte por las direcciones de clase A, 2 por las de clase B y 3 bytes para la clase C). Sin embargo, una red se escribe tomando el número de bytes que la caracterizan y completándolo después con ceros. Por ejemplo, la red vinculada con la dirección 34.56.123.12 es 34.0.0.0 , porque es una dirección IP de clase A.

Para averiguar la dirección de red vinculada con la dirección IP 34.56.123.12, simplemente se debe aplicar una máscara cuyo primer byte esté solamente compuesto por números uno (o sea 255 en decimal), y los siguientes bytes compuestos por ceros.
La máscara es: 11111111.00000000.00000000.00000000
La máscara asociada con la dirección IP34.208.123.12 es, por lo tanto, 255.0.0.0.
El valor binario de 34.208.123.12 es: 00100010.11010000.01111011.00001100
De este modo, una operación lógica de AND entre la dirección IP y la máscara da el siguiente resultado:

00100010.11010000.01111011.00001100
AND
11111111.00000000.00000000.00000000
=
00100010.00000000.00000000.00000000
O sea 34.0.0.0 Esta es la red vinculada a la dirección 34.208.123.12

Generalizando, es posible obtener máscaras relacionadas con cada clase de dirección:

  • Para una dirección de Clase A, se debe conservar sólo el primer byte. La máscara tiene el siguiente formato 11111111.00000000.00000000.00000000, es decir, 255.0.0.0 en decimales;
  • Para una dirección de Clase B, se deben retener los primeros dos bytes y esto da la siguiente máscara 11111111.11111111.00000000.00000000, que corresponde a 255.255.0.0en decimales;
  • Para una dirección de Clase C, siguiendo el mismo razonamiento, la máscara tendrá el siguiente formato 11111111.11111111.11111111.00000000, es decir, 255.255.255.0 en decimales;

Creación de subredes

Volvamos a analizar el ejemplo de la red 34.0.0.0 y supongamos que queremos que los dos primeros bits del segundo byte indiquen la red.
La máscara a aplicar en ese caso sería: 11111111.11000000.000000.000000

11111111.11000000.00000000.00000000

Es decir, 255.192.0.0

Si aplicamos esta máscara a la dirección 34.208.123.12, obtenemos:

34.192.0.0

En realidad, existen 4 figuras posibles para el resultado del enmascaramiento de una dirección IP de un equipo en la red 34.0.0.0

  • Cuando los dos primeros bits del segundo byte son 00, en cuyo caso el resultado del enmascaramiento es 34.0.0.0
  • Cuando los dos primeros bits del segundo byte son 01, en cuyo caso el resultado del enmascaramiento es 34.64.0.0
  • Cuando los dos primeros bits del segundo byte son 10, en cuyo caso el resultado del enmascaramiento es 34.128.0.0
  • Cuando los dos primeros bits del segundo byte son 11, en cuyo caso el resultado del enmascaramiento es 34.192.0.0

Por lo tanto, este enmascaramiento divide a una red de clase A (que puede admitir 16.777.214 equipos) en 4 subredes (lo que explica el nombre máscara de subred) que pueden admitir 2 22 equipos es decir 4.194.304 equipos.

Es interesante tener en cuenta que en estos dos casos la cantidad total de equipos es la misma, 16.777.214 Ordenadores (4 x 4,194,304 - 2 = 16,777,214).

La cantidad de subredes depende del número de bits adicionales asignados a la red (aquí 2). La cantidad de subredes es entonces:

Número de bits Número de subredes
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 (imposible para la clase C) 256

Fuente: http://es.kioskea.net/contents/internet/ip.php3

IP Addressing and subnets

First thing you should know is that the Internet Protocol (IP) uses logical addressing to transport a packet from it's source to destination. That's the principle on which the Internet works and can be easily compared with a classical postal service, where every letter needs a sender and a receiver on the envelope, with detailed information on area codes, city, street number, etc.

An IP address (referring to IPv4) consists of a string of 32 bits. For the end user, these 32 bits are organized in 4 bytes represented in a system called "dotted decimal". This means that the bytes are marked with points between, like 192.168.0.1.

I. Network Math

Before talking about addressing schemes, you should know the basic math involved in IP networking.

A) Binary to decimal conversion

To fully understand these kind of transformations, you should firstly know these values:

2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
(will refer to this as Table A.)

Now how do we transform binary to decimal?

Let's take the number 10100110 which is in binary (ones and zeros) and transform it to decimal.

We just take all values and form a table, starting with 2^0 (lowest value) from the right position of our binary number. (you'll do this only the first times, after some practice you'll do it mentally with no problems):

1 0 1 0 0 1 1 0
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0

Now we count only the values with a one (1) above and calculate their sum.
The result is 2^7+2^5+2^2+2^1=(using Table A.)=128+32+4+2=166
So 10100110 (binary) = 166 (decimal).


B) Decimal to binary conversion

For this transformation you also need the values in Table A.

Let's take for example the number 240 and try to find out the binary equivalent.
The main idea behind this is to try to write the decimal number as a sum of numbers in Table A. (exponential powers of 2).
The easiest way is this:

Find the highest number that can be written as a power of 2 that is smaller or equal then our decimal number (from Table A).

256 is the highest, but its bigger than our number (240) so it's not good. Next is 128 which matches our criteria.

Subtract 128 from 240: 240 - 128 = 112
Note the number 128 down.

Now do the same for 112. Find the highest number in Table A smaller then 112. This value will be 64.
Subtract: 112 - 64 = 48.
Note the number 64 down.

Find the highest value smaller than 48 in Table A. It's 32.
Subtract: 48 - 32 = 16
Note 32 down.

Now 16 is a an exponential power of two, it's the highest value in Table A smaller or equal to 16 so we stop. Note 16 down too.

Put all numbers noted down:
128+64+32+16=240 our number. We managed to write our decimal number as a sum of exponentials powers of 2.

Now write all values from 2^0 to 2^7 (one byte long data). Write the decimal equivalent of our noted down numbers, and put ones (1) under them. Put zeros under the numbers we didn't noted down.

2^7(128) 2^6(64) 2^5(32) 2^4(16) 2^3 2^2 2^1 2^0
1 1 1 1 0 0 0 0

The number in ones and zeros you obtains is the binary equivalent of the decimal.
SO 240 (=2^7+2^6+2^5+2^4) = 11110000.

When working with IP addresses, we work with 4 bytes of data (32 bits).
This means that an IP address in binary (as a computer sees it) looks like this:

11000101101001010011101110101000.

If we make a binary dotted notation, it would look like this:

11000101.10100101.00111011.10101000


To transform an address from binary to decimal (or the opposite), we take each 8 bit group and work like in A) or B).

11000101=2^7+2^6+0+0+0+2^2+0+2^0=128+64+4+1=197.
So the first part of the dotted decimal would be 197.
10100101=2^7+0+2^5+0+0+2^2+0+2^0=128+32+4+1=165.
So the first two parts are 197.165.
00111011=(................................)=59.
10101000=(................................)=168.
And so we get the whole IP address in dotted decimal 197.165.59.168.

C) The ANDing

The third (and last, don't worry) math mechanism you should know is something called logical ANDing. It's part of Boolean Algebra.
It sounds complicated, but it's a very simple rule. Just keep the following three combinations in mind:

1 AND 1 = 1
1 AND 0 = 0
0 AND 0 = 0.

This will get handy when trying to calculate the address of a network.


II. Addressing standards: IP classes

The first thing you should know is that an IP address is made up from two logical parts: the network and the host part.
As an analogy, the network part is like the street name is postal service and the host part is like house numbers.

When a postman delivers a letter, it's hard to see where's the number let's say 32 in all the city. It's rather impossible and will lead to failure in delivery. Instead, the postman finds the street and then goes to the house number on that specific street.
This is true in networking, too. The routers find network addresses based on the network bits in the IP address and send the packet to that "street" to a specific host. It's easier and more efficient this way.

So how many bits are for network and how many bits for host? These are categorized in some IP classes:

Class A: Includes all the IP addresses from 1.0.0.0 to 126.255.255.255. The first 8 bits are Network bits and the rest of 24 are host bits. (a network mask of 255.0.0.0)

Class B: Includes all the IP addresses from 128.0.0.0 to 191.255.255.255. The first 16 bits are Network bits and the rest of 16 are host bits. (a network mask of 255.255.0.0)

Class C: Includes all the IP addresses from 192.0.0.0 to 223.255.255.255. The first 24 bits are Network bits and the rest of 8 are host bits. (a network mask of 255.255.255.0)

These are the usable spaces.

There are several special classes:

Class D: 224.0.0.0 - 239.255.255.255 - Reserved for multicasting

Class E: 240.0.0.0 - 254.255.255.255 - Reserved for testing and experimental purposes.


The range 127.0.0.0 - 127.255.255.255 is reserved for loopback addresses for devices.


We also have some private IP addresses (NON routable on the Internet - this means any ISP will drop you packets if you want to get on the Internet with a private address). They are used for private networking (closed LANs), using Network Address Translation to get on the Internet (sharing a public address).
These are:

10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255



The network mask actually marks the network and host bits. If we take an IP address (in binary) like


0000 1010.1100 1101.1010 0100.1011 1111
1111 1111.0000 0000.0000 0000.0000 0000 and a network mask in binary (255.0.0.0 - Class A).


We see that 255.0.0.0 means 11111111 and 24 zeros. This means that the first bits set to 1 (8 bits) mark network bits in the IP above. That's why any IP with a mask address of 255.0.0.0 has the first 8 bits as a network part of the address.

This binary representation leads to another notation of the network mask called CIDR (Classless Interdomain Routing). Using this notation we write only how many network bits we have in the IP address. Like 10.12.40.0/8 - this means we have a network mask of 255.0.0.0 = 8 network bits.

160.17.40.0 /16 = a network mask of 255.255.0.0 = 16 network bits and so on.

Routers use this to find out network address to forward packets. But how does a router finds a network address? By using the logical ANDing presented earlier.

Let's say we have the IP address of 10.40.17.4/8

The network address of this address is the result of ANDing the ip address in binary and the network mask in binary. /8 means we have 8 network bits = 255.0.0.0

NNNN NNNN HHHH HHHH HHHH HHHH HHHH HHHH (N= Network bit/ H= Host bit)
0000 1010.0010 1000.0001 0001.0000 0100 = 10.40.17.4
1111 1111.0000 0000.0000 0000.0000 0000 = 255.0.0.0
---------------------------------------- We compare using ANDing bit by bit
0000 1010.0000 0000.0000 0000.0000 0000 = 10.0.0.0 = the network address

Now if we take another IP address in Class A with the default network mask of /8 we'll see something strange:

0000 1010.0000 0001.0000 0010.0000 0100 = 10.1.2.4
1111 1111.0000 0000.0000 0000.0000 0000 = 255.0.0.0
---------------------------------------
0000 1010.0000 0000.0000 0000.0000 0000 = 10.0.0.0 network address

The network addresses for these two IPs are the same. Why? because by using only first 8 bits for network, only the 10 (first 8 bits in the IP) counts in the logical ANDing.
Now if a router has a route to 10.40.17.4/8 and a route to 10.1.2.4/8 and a packet arrives for the IP address of 10.40.17.4/8, the router cannot find it's network address properly. It finds it as duplicate, thinks that both routes are working to that host and does a load balancing with undesired effects, loosing all the data.

This is why we use subnetting.

III. Subnetting IPv4 networks


Subnetting means "borrowing" host bits and transforming them in subnetwork bits. We divide large networks in smaller logical subnets.
Let's take the example above. We have 10.40.17.4 and 10.1.2.4. We see that the first difference occurs in the second octet of th IP address (40 != 1). So if we use a mask of /16 instead of /8, it should do the trick:

0000 1010.0010 1000.0001 0001.0000 0100 = 10.40.17.4
1111 1111.1111 1111.0000 0000.0000 0000 = 255.255.0.0
--------------------------------------- Logical ANDing
0000 1010.0010 1000.0000 0000.0000 0000 = 10.40.0.0 = the network address

The network address (using the same principle) for 10.1.2.4/16 would be 10.1.0.0, creating a different path. A router can now tell where is the first host and where is the second.

Now instead of having network bits and host bits, we have the following:
NNNN NNNN SSSS SSSS HHHH HHHH HHHH HHHH
0000 1010.0010 1000.0001 0001.0000 0100 = 10.40.17.4
(N= Network bit/ S=Subnetwork bit/ H= Host bit)
We just "borrowed" 8 bits from the host to form a subnetwork.

Now let's do a simple exercise:
We have the IP address 10.40.17.4. Let's find the appropriate subnet mask for it to have a minimum of 255 usable hosts per subnet and a maximum number of subnets.

The address 10.40.17.4 is a Class A IP address. This means that we start with the first 8 bits as Network bits. If we need a minimum of 255 hosts, it's a good idea to start from this point.

Remember Table A?

To have 255 hosts, we need to find the power of smallest power of 2 bigger then 255. This will be 2^8 (=256), meaning that we need 8 host bits. (a subnet of 1111 1111.1111 1111.1111 1111.0000 0000 - 8 zeros to mark the host bits). Well, this is a big mistake, because we are talking about usable hosts. Why?
Because we cannot use the subnet address:
0000 1010.0010 1000.0001 0001.0000 0100 = 10.40.17.4
1111 1111.1111 1111.1111 1111.0000 0000 = 255.255.255.0
---------------------------------------
0000 1010.0010 1000.0001 0001.0000 0000 = 10.40.17.0 - subnet address

and we cannot use the subnet's broadcast address (the address to which if i send a package all hosts in the subnet accept it). The broadcast address is the subnet address with ones (1) in the host field.

Ex: 0000 1010.0010 1000.0001 0001.1111 1111 = 10.40.17.255

So we'll need to use 9 host bits to have at least 255 usable addresses (in fact we'll have 510 usable hosts, but this is the minimum in our requirements and includes 255).
NNNN NNNN SSSS SSSS SSSS SSSH HHHH HHHH
0000 1010.0010 1000.0001 0001.0000 0100 = 10.40.17.4
1111 1111.1111 1111.1111 1110.0000 0000 =
255.255.254.0
---------------------------------------
Subnet Mask 0000 1010.0010 1000.0001 0000.0000 0000 = 10.40.16.0 = network address
0000 1010.0010 1000.0001 0001.1111 1111 = 10.40.17.255 = broadcast address

Note the difference between the third part of the network address and broadcast address. The usable IP addresses in our case are from 10.40.16.1 to 10.40.17.254.

So how many subnets can we use?

We have 15 subnet bits = 2^15 subnets (this is pretty large).
The first subnet (with all subnet bits set to zeros) is called Subnet Zero and it's usable by enabling a service on routers. When resolving a subnet exercise, keep in mind that subnet zero is usually used but not always. The requirement of the exercise should state if we use IP subnet zero or not.
We also have a broadcast subnet that is represented by all ones (1) in the subnet bits. This subnet is not usable.


Now let's see a kind of exercise that could trick you.

Let's say we use our IP address of 10.40.17.17 with a subnet mask of /28. What is the broadcast address and what is the usable IP range in this case?


NNNN NNNN SSSS SSSS SSSS SSSS SSSS HHHH
0000 1010.0010 1000.0001 0001.0001 0001 = 10.40.17.17
1111 1111.1111 1111.1111 1111.1111 0000 = 255.255.255.240 Subnet Mask (/28)
---------------------------------------
0000 1010.0010 1000.0001 0001.0001 0000 = 10.40.17.16
network addr 0000 1010.0010 1000.0001 0001.0001 1111 = 10.40.17.31


Note that both network address and broadcast address for our case are not typical (.0 and .255).
The usable IP range is 10.40.17.17 to 10.40.17.30.

Source: http://www.tutorial5.com/content/view/89/79/
broadcast addr

Diferencias entre Switchs y Hubs

| 0 comentarios

Los "Hubs" y "Switches" llevan acabo la conectividad de una Red Local (LAN "Local Area Network"), aparentemente las palabras "Hubs" y "Switches" parecieran términos intercambiables pero no lo son. Aunque en ocasiones se utilizan términos como "Switching Hubs" ambas palabras tienen un significado distinto, sin embargo, para entender las diferencias entre un "Hub" y un "Switch" así como sus beneficios es necesario conocer el Protocolo "Ethernet"

Qué es Ethernet ?

Ethernet es el protocolo por el cual se comunican las computadores en un entorno LOCAL de red. El cable que se inserta atrás de la computadora y parece un "jack" de teléfono grande es utilizado para enviar información en este protocolo, la computadora utiliza una tarjeta NIC ("Network Interface Card") para realizar la comunicación. Cada tarjeta NIC contiene una dirección MAC (única) , esta dirección MAC corresponde a la dirección física o "Hardware" de la computadora, esto sería el equivalente al "Nivel 2" del modelo OSI.

Ahora bien, Ethernet como protocolo es considerado CSMA/CD ("Carrier Sense Multiple Acces Collision Detect"), lo cual significa que por su cable solo puede ser transmitida una sola señal a cierto punto en el tiempo, esto es, si a un cable se encuentran conectadas 10 o 20 PC's, sólo una puede transmitir información a la vez,las demás deben esperar a que finalice la transmisión.

Además de esta característica CSMA/CD, el protocolo "Ethernet" también utiliza lo que es denominado "Broadcast" o "Transmisión a todas las terminales" , considerando el ejemplo anterior, lo que ocurre cuando una PC envía información es que las otras 9 o 19 recibirán esta misma información, lo que sucede posteriormente es que solo la PC con la dirección MAC especificada acepta la información, las restantes la descartan.

Llega un punto en el uso de una red en que estos "Broadcasts" son excesivos, aunado a la característica "CSMA/CD" que sólo una PC puede transmitir a la vez; la transmisión de información ("throughput") en la red (LAN) empieza a decaer, y la forma mas común de evitar estos problemas es mediante un "Switch", aunque también pudiera ser utilizado un Router , pero esto dependerá de situaciones especificas.

Cual es la diferencia entre un "Switch" y un "Hub" ?

El "Hub" básicamente extiende la funcionalidad de la red (LAN) para que el cableado pueda ser extendido a mayor distancia, es por esto que un "Hub" puede ser considerado como una repetidora. El problema es que el "Hub" transmite estos "Broadcasts" a todos los puertos que contenga, esto es, si el "Hub" contiene 8 puertos ("ports"), todas las computadoras que estén conectadas al "Hub" recibirán la misma información, y como se mencionó anteriormente , en ocasiones resulta innecesario y excesivo

Un "Switch" es considerado un "Hub" inteligente, cuando es inicializado el "Switch", éste empieza a reconocer las direcciones "MAC" que generalmente son enviadas por cada puerto, en otras palabras, cuando llega información al "Switch" éste tiene mayor conocimiento sobre que puerto de salida es el más apropiado, y por lo tanto ahorra una carga ("bandwidth") a los demás puertos del "Switch", esta es una de la principales razones por la cuales en Redes por donde viaja Vídeo o CAD, se procura utilizar "Switches" para de esta forma garantizar que el cable no sea sobrecargado con información que eventualmente sería descartada por las computadoras finales,en el proceso, otorgando el mayor ancho de banda ("bandwidth") posible a los Vídeos o aplicaciones CAD.

Tipos de Ethernet

Cable Coaxial

Este tipo de medio fue el primero en utilizarse para Ethernet y puede ser de dos tipos:

  • Thinnet : Grosor de 1/4" o menor, comúnmente utilizado en diseños 10Base2 para ambientes ARCnet. Distancia Máxima de 185 mt , el cableado utilizado para Thinnet es por lo general tipo RG-58.
  • Thicknet : Comúnmente utilizado para "backbones" su tamaño es de 3/8 " (.375 pulgadas),utilizado en backbones de televisión y en diseños 10Base5, su distancia máxima entre centrales es de 500 mt.

A su vez el cableado coaxial puede ser de varios tipos ,algunos son:

  • RG-58 /U : Centro Solido de Cobre "Solid Copper core"
  • RG-58 A/U : Acordonado de Cobre "Stranded wire copper"
  • RG-58 C/U : Especificación Militar "Military Specification of RG-58 A/U"
  • RG-59 : Transmisión Altabanda (cable de televisión) "Broadband transmission"
  • RG-62 : Tipo Red ARCnet "ARCnet Network Specific"

El cable coaxial a diferencia del cableado Ethernet que comúnmente es utilizado hoy en día, utiliza conectores llamados "BNC" (British Naval Conectors), que es una "T" con orificios muy similares a los que son utilizados por un TV con cable.

Cable Empalmado "Twisted Pair"

Este tipo de cableado es el que se encuentra en mayor uso y puede ser de 5 tipos:

  • Categoría 1 : (UTP) Apto únicamente para voz , utilizado para transmisiones comunes de telefonía
  • Categoría 2 : (UTP) No es muy utilizado, su velocidad máxima de transmisión es 4 Mbps.
  • Categoría 3 : (UTP o STP) Óptimo para transmisiones 10BaseT ,velocidad máxima hasta 10 Mbps.
  • Categoría 4 : (UTP o STP) Velocidad máxima 16 Mbps, comúnmente utilizado en un ambiente Token Ring de IBM.
  • Categoría 5 : (UTP o STP) Alcanza velocidades de 100 Mbps, utilizado para FastEthernet.
  • UTP : Significa que el cable no tiene capa protectora, UTP puede extenderse a una distancia máxima de 100 metros, es utilizado primordialmente para Ethernet
  • STP : Utiliza un capa protectora para cada cable para limitar interferencia,permite una mayor distancia que UTP (aunque limitadas) , comúnmente utilizado en ARCnet o Redes IBM.

El cable empalmado consta de 4 pares de alambre "empalmado" y utiliza conectores tipo RJ-45 mostrado a continuación:
Conexion Ethernet Este tipo de conector es muy similar al utilizado en teléfonos, pero si existe una diferencia; cabe mencionar que el conector de teléfonos es llamado RJ-11

Aunque todo "cable empalmado" utiliza conectores RJ-45, el uso de cada alambre dentro del "cable empalmado" depende del medio que se este utilizando, esto dependerá en gran parte de la Tarjeta NIC y Categoría de cable que se utilicen, los distintos medios son:

  • 10BaseT : Conocido como IEEE802.3 permite una velocidad máxima de 10Mbps, su distancia máxima entre nodos es 100mt. El surgimiento de tarjetas NIC más eficientes han suplantado el uso de 10BaseT en favor de 100BaseTX-100BaseT4.
  • 100BaseTX : También conocido como FastEthernet-especificación IEEE 802.3u. 100TX solo utiliza 2 de los 4 pares del cableado , su distancia máxima es 100 mt. El cableado de categoría 5 es el mínimo requerido para 100TX, su velocidad máxima es de 100Mbps (si se utiliza full-duplex esta puede ser 200Mbps).
  • 100BaseT4 : Permite la tecnología de Fast Ethernet sobre cableado de categoría 3 y 4. Utiliza los 4 pares de alambre y altera el funcionamiento nativo de CSMA/CD en Ethernet; sin embargo el uso de los 4 pares de cable elimina la posibilidad de instalar transmisión full-duplex. Este método es utilizado exclusivamente cuando ya se tiene cableado categoría 3.
  • 100FX : Es la especificación para correr Fast Ethernet sobre fibra óptica.
  • 100BaseVG-AnyLAN : 100Base(Voice-Grade)-Any LAN es la especificación IEEE802.12 que permite la transmisión de 100 Mbps sobre cableado Tipo 3.Es capaz de ejecutar tecnologías Token Ring y Ethernet. Sin embargo como es una implementación que no es estándar ("proprietary") y no ofrece ningún beneficio sobre una instalación 100BaseTx,generalmente se opta por 100BaseTx en vez de 100BaseVG.

Cuestión de Seguridad

Debido a la naturaleza de Ethernet, siendo un protocolo de transmisión "Broadcast" el uso de "Hubs" en la red local ("LAN") puede dar cabida a piratear información, ya que un "Hub" conforme recibe información es enviada a TODOS los nodos que están conectados al "Hub", y aunque las tarjetas NIC están diseñadas para descartar información que no va dirigida hacia ellas, si se tiene el suficiente conocimiento se puede alterar una tarjeta NIC para que intercepte estos paquetes de información, contraste esta deficiencia en seguridad con el funcionamiento de un "Switch" que evita la propagación de paquetes de información a sólo ciertos puertos, de esta forma evitando que alguna computadora intrusa intercepte esta información.

Analizar la Red

El funcionamiento de un "Switch" y "Hub" es sencillo en teoría, pero específicamente:

Cuando se debe utilizar un "Switch" o "Hub" ?

Esto dependerá de la utilización de cada PC o Servidor en la Red, por lo tanto debe utilizar un analizador de redes . Los analizadores pueden variar desde "Hardware" especializado (oscilando $3000-$5000 Dlls U.S) hasta analizadores que consisten de "Software" Open-Source .

Inclusive aunque ya este diseñada su Red es conveniente realizar este tipo de análisis cada determinado tiempo; quizás cuando la Red fue diseñada inicialmente no se contemplaron las aplicaciones CAD o la utilización de una bases de datos que actualmente se utiliza.

Una vez analizada la Red estas son algunas acciones que puede tomar:

  • Si se determina que una PC o Servidor esta sobrecargado es conveniente colocarlo sobre un puerto dedicado en un "Switch".
  • Si diversos nodos (PC o Servidores) se encuentran con poco tráfico y cada uno bajo un puerto de un "Switch" , es conveniente migrarlos a un "Hub", evitando la capacidad de ocio en el "Switch" y utilizándola en otra sección de la Red con mayor tráfico.
Links:Fuente: http://www.osmosislatina.com/conectividad/hubs_switches.htm

Cable de red cruzado y directo LAN Ethernet 10bT o 100bTX

Las dos Normas especificas para Computadores



El cableado estructurado para redes de computadores nombran dos tipos de normas o configuraciones a seguir, estas son: La EIA/TIA-568A (T568A) y la EIA/TIA-568B (T568B). La diferencia entre ellas es el orden de los colores de los pares a seguir para el conector RJ45.

A continuacion se muestra el orden de cada norma:


Como ponchar un cable de red cruzado para conectar dos computadores entre si?



El cable cruzado es utlizado para conectar dos PCs directamente o equipos activos entre si, como hub con hub, con switch, router, etc.

Un cable cruzado es aquel donde en los extremos la configuracion es diferente. El cable cruzado, como su nombre lo dice, cruza las terminales de transmision de un lado para que llegue a recepcion del otro, y la recepcion del origen a transmision del final.

Para crear el cable de red cruzado, lo unico que deberá hacer es ponchar un extremo del cable con la norma T568A y el otro extremo con la norma T568B.

Nota: Ciertos equipos activos tienen la opcion de predeterminarles que tipo de cable van a recibir, si uno recto o uno cruzado, esto se realiza a traves de un boton o via software (programacion del equipo), facilitando asi al personal que instala y mantiene la red el trabajo del cableado.

Como ponchar un cable de red directo para conectar un computador a un HUB o SWITCH?



El cable recto es sencillo de construir, solo hay que tener la misma norma en ambos extremos del cable. Esto quiere decir, que si utilizaste la norma T568A en un extremo del cable, en el otro extremo tambien debes aplicar la misma norma T568A.

Este tipo de cables es utilizado para conectar computadores a equipos activos de red, como Hubs, Switchers, Routers.

Terminales de Transmision y Recepcion



Las redes de computadores no utilizan los 4 pares (8 cables) en su totalidad, utilizan solamente 4 cables: 2 para transmitir y 2 para recibir.

Que norma me recomiendan para ponchar cables directos o rectos?


La norma que recomendamos en Wilkinsonpc, es la T568B, que viene a ser la norma que mas se usa en nuestro pais.

Fuente: http://www.wilkinsonpc.com.co/free/articulos/cable-de-red-cruzado-y-recto.html

Tutorial sobre TCP/IP

En este tutorial realizaremos la “disección” de una comunicación TCP/IP muy simple, con el fin de analizar qué ocurre a cada nivel.

A través de este sencillo experimento, podremos recorrer los conceptos fundamentales de las redes TCP/IP, para reafirmar la idea de que este protocolo es muy simple. El objetivo es lograr, sin demasiados conocimientos previos, una comprensión profunda de sus mecanismos.

Requisitos previos

No se requieren conocimientos de programación, aunque sí una base de conocimientos informáticos en general. Para continuar experimentando más allá de los expuesto aquí, se recomienda la utilización del programa Wireshark (antes conocido como Ethereal), disponible para GNU/Linux, Microsoft Windows, Mac OS/X y Solaris .

Quizás el requisito más importante sean las ganas de aprender, investigar, jugar y divertirse con redes TCP/IP.
Referencias

Cada vez que se introduzca un término relevante, el mismo contendrá un enlace a una página con mayor información, por lo general de la Wikipedia y, de ser posible, en español (aunque se recomienda ampliamente visitar su equivalente en inglés).

Un libro muy recomendable y claro (en inglés) es “TCP/IP Illustrated Volume 1” de W. Richard Stevens. Finalmente, la fuente de consulta definitiva, para conocer tanto los aspectos técnicos como la evolución historica de cada uno de los protocolos y normas, son los Request for Comments (RFC), algunos de los cuales han sido traducidos al español.
Nuestro experimento

Estableceremos una conexión TCP/IP entre un cliente y un servidor que intercambiarán información. Para ello, utilizaremos el servidor desarrollado en el tutorial sobre programación en redes (no es necesario que lo lea completamente, si no le interesa la programación, pero sería conveniente que revise los conceptos introductorios y el protocolo definido).

Ejecutamos entonces el servidor en el host 100.0.0.1, utilizando el puerto 2222 (cualquiera de las versiones desarrolladas en el tutorial anterior sirve, ya que el protocolo es idéntico) y usamos el comando telnet para actuar como cliente desde el host 200.0.0.1 (el texto en cursiva es introducido por nosotros y el texto en negrita es la respuesta del servidor):

javier@200.0.0.1:~$ telnet 100.0.0.1 2222
Trying 100.0.0.1...
Connected to 100.0.0.1.
Escape character is '^]'.
Bienvenido.
salir
Adios.
Connection closed by foreign host.
javier@200.0.0.1:~$

Esto es todo. Ahora procederemos a analizar cómo se ha llevado a cabo esta comunicación a distintos niveles de abstracción.

Nivel de aplicación

A “nivel de aplicación” (lo que “ven” los programas), la comunicación se ha desarrollado de la siguiente manera:

  1. El cliente se conecta al servidor.
  2. El servidor envía el mensaje “Bienvenido.“.
  3. El cliente envía el comando “salir“.
  4. El servidor responde con el mensaje “Adios.“.
  5. El servidor cierra la conexión.
  6. El cliente cierra la conexión.

Esto es prácticamente lo mismo que podemos observar de la salida del comando telnet utilizado, lo cual no es casual; intencionalmente a este nivel se ocultan todos los detalles de implementación, que aparecerán cuando analicemos los niveles inferiores.

Nivel de transporte

El protocolo utilizado a “nivel de transporte” es TCP. Este protocolo es el encargado de establecer la conexión y dividir la información en paquetes, garantizando que los mismos son entregados correctamente (sin pérdidas y en el orden apropiado).

Cabe resaltar aquí que el otro protocolo de transporte de TCP/IP, UDP no garantiza ni el arribo de todos los paquetes enviados, ni el orden en que estos llegan a destino. Por esto es mucho más simple, no incluyendo algunas de las características de TCP como números de secuencia y asentimientos.

A continuación analizaremos algunos aspectos del protocolo TCP.

Puertos y direcciones

El protocolo TCP se basa en direcciones IP para identificar los equipos (hosts) desde donde provienen y hacia donde se envían los paquetes.

Los puertos (ports) son valores numéricos (entre 0 y 65535) que se utilizan para identificar a los procesos que se están comunicando. En cada extremo, cada proceso interviniente en la comunicación utiliza un puerto único para enviar y recibir datos.

En conjunción, dos pares de puertos y direcciones IP identifican univocamente a dos procesos en una red TCP/IP.

Números de secuencia

TCP garantiza que la información es recibida en orden. Para ello, cada paquete enviado tiene un número de secuencia. Cada uno de los dos procesos involucrados mantiene su propia secuencia, que se inicia con un valor aleatorio y luego va incrementándose según la cantidad de bytes enviados.

Por ejemplo, si un paquete tiene número de secuencia x y contiene k bytes de datos, el número de secuencia del siguiente paquete emitido será x + k. (Sí, el número de secuencia va contando la cantidad de bytes enviados por cada host.)

Paquetes y acuses de recibo

TCP también asegura que toda la información emitida es recibida. Para ello, por cada paquete emitido, debe recibirse un asentimiento (en inglés “acknowledgement“, abreviado ACK). Si pasado determinado tiempo no se recibe el ACK correspondiente, la información será retransmitida.

El ACK hace referencia al número de secuencia (que ha su vez involucra la cantidad de bytes enviados). Por ejemplo, para comunicar que se ha recibido correctamente el paquete cuyo número de secuencia es x, que contiene k bytes, se enviará un ACK con el valor x + k (que coincide con el próximo número de secuencia a utilizar por parte del emisor del paquete en cuestión). Si el número de secuencia inicial es x, un valor de ACK t significa que el receptor ha recibido correctamente los primeros t-x bytes (en este sentido, el ACK es acumulativo).

El ACK no es un paquete especial, sino un campo dentro de un paquete TCP normal. Por esto, puede ocurrir que se envíe un paquete a solo efecto de asentir una determinada cantidad de bytes, o como parte de un paquete de otro tipo (por ejemplo, aprovechando el envío de nuevos datos, para comunicar la recepción de datos anteriores). De hecho, aunque ya se haya enviado un paquete exclusivamente de ACK con un valor t, si luego se envía un paquete de datos, puede repetirse en él el ACK con el mismo valor t, sin que esto confunda al emisor de los datos que se están asintiendo. (Por simplicidad, en nuestro ejemplo hemos eliminado esta información redundante).

Otros campos de un paquete TCP

El protocolo TCP incorpora mecanismos tales como control de integridad de los datos (checksum), prevención de congestiones, entre otros, que no serán mencionados aquí por la simplicidad de este tutorial.

Inicio y fin de la conexión

Para dar comienzo a la conexión, el cliente envía un paquete SYN al puerto e IP en donde “escucha” el servidor, con un número de secuencia inicial aleatorio. Este último, responde con otro paquete SYN, con un número de secuencia inicial aleatorio y un ACK con el número de secuencia del paquete SYN recibido, más uno. El cliente envía un paquete con el ACK del SYN recibido, y una vez hecho esto la conexión se encuentra establecida y puede darse comienzo a la transmisión de datos (iniciada por cualquiera de las partes, según el protocolo de aplicación que utilicen).

La razón por la cual se intercambian números de secuencia aleatorios es para evitar que se confunda el inicio de dos conexiones diferentes y algunos ataques que se basan en falsear el comienzo de una conexión (spoofing).

La siguiente figura ilustra el establecimiento de una conexión TCP, llamada “negociación de tres pasos” o “3-way handshake“:

Inicio de una conexión TCP

Para finalizar la conexión, uno de los dos procesos envía un paquete FIN, a lo que el otro responderá con un ACK. A su vez, el otro proceso puede enviar un paquete FIN (recibiendo también un ACK) y la conexión quedará cerrada definitivamente.

Nótese que el segundo proceso puede no enviar el paquete FIN. Esto significa que ese extremo de la conexión no se cerrará, pudiendo aún enviar datos a través de la misma. De lo contrario, en caso de desear terminar la conexión, puede combinar el ACK y el FIN en un solo paquete (esta es la situación más común).

La siguiente figura ilustra la forma general de terminación de una conexión TCP:

Fin de una conexión TCP

Análisis a nivel de transporte

Habiendo revisado los conceptos más relevantes, analizaremos ahora la conexión realizada desde el punto de vista del protocolo TCP. Supondremos que el puerto utilizado por el cliente es 4683 (el del servidor, recordemos, es 2222).

La siguiente figura muestra una visión simplificada de esta conexión:

Sesión TCP

(Ver imagen ampliada)

Veamos qué función cumple cada paquete:

  1. El cliente envía un SYN al servidor, con número de secuencia x0.
  2. El servidor responde con un paquete SYN, con número de secuencia y0 y un ACK con x0+1 (en adelante, x1).
  3. El cliente envía un paquete ACK del SYN que acaba de recibir, con valor y0+1 (en adelante, y1). (A partir de este momento la conexión se encuentra establecida y puede comenzar el intercambio de datos entre las aplicaciones.)
  4. El servidor envía un paquete PSH (”push“) conteniendo la cadena “Bienvenido.\n” (12 bytes), con número se secuencia y1. (El caracter “\n“, newline, representa el fin de línea.)
  5. El cliente envía un ACK por la correcta recepción del paquete anterior. El número de ACK es y1+12 (que llamaremos y2 y será el próximo número de secuencia utilizado por el servidor).
  6. El cliente envía la cadena “salir\r\n“, con número de secuencia x1. (Los caracteres “\r\n” representan el fin de línea. Ver nota al final de la sección.)
  7. El servidor envía el ACK correspondiente, con el valor x1 más la longitud de “salir\r\n” (7), que llamaremos x3.
  8. El servidor envía la cadena “Adios.\n” (7 bytes), con número de secuencia y2.
  9. El cliente envía el ACK con el valor y2+7 (en adelante, y3).
  10. El servidor cierra su lado de la conexión enviando un paquete FIN, con secuencia y3.
  11. El cliente, que también cierra su conexión, envía un paquete FIN con secuencia x3, con el ACK del paquete anterior (y3+1).
  12. El servidor envía el ACK del anterior paquete FIN (con valor x3+1), con lo cual la conexión finaliza.

Nota: En este ejemplo podemos ver un error en el diseño del protocolo de aplicación, ya que el servidor representa los fines de línea con el caracter “\n” (”newline”, código ASCII 10), en tanto que el cliente está usando los caracteres “\r\n” (”newline” y “carriage return”, códigos ASCII 10 y 13, respectivamente). Esta última es la forma de representación más utilizada en aplicaciones TCP/IP.

Nivel de red

Antes de realizar el análisis a “nivel de red” (protocolo IP) vamos a suponer que tenemos la siguiente topología:

Red IP

El cliente se ejecuta en el host cuya dirección IP es 200.0.0.1. El mismo está conectado a la red local 200.0.0.0/24 y su gateway (”router“, “enrutador” o “puerta de enlace“) es el host 200.0.0.21.

La dirección de red local está compuesta por la dirección de red propiamente dicha, 200.0.0.0, y la máscara de red, 24 (que también puede ser representada como 255.255.255.0). Esto significa que los primeros 24 bits de cualquier dirección serán interpretados como identificador de la red, en tanto que los últimos 8 identificarán a cada host (recordemos que, aunque la notación usual es escribir las direcciones IP como cuatro números decimales separados por puntos, en realidad se componen de 32 bits).

Por ejemplo, en el contexto de esta red, la dirección 200.0.0.45 será considerada una dirección local (por coincidir los primeros 24 bits con los de la dirección de red). Esto significa que cualquier paquete destinado a dicha dirección IP, será entregado “localmente” (o sea, directamente a través del protocolo de enlace, como veremos más adelante).

En el caso de una dirección de destino “no-local”, los paquetes serán entregados al gateway 200.0.0.21 (usando el protocolo de enlace), quien será luego el encargado de entregar el paquete al host de destino (si este perteneciera a alguna red local a la que dicho gateway esté conectado), o reenviarlo a través de otro gateway (en caso contrario).

De la misma manera el servidor, cuya dirección IP es 100.0.0.1, pertenece a la red 100.0.0.0/24, cuyo gateway es 100.0.0.35.

Análisis a nivel de red

A nivel IP no hay demasiado que agregar. Aquí se realiza el “ruteo” (o “encaminamiento“) de los paquetes provenientes de la capa de transporte (que en este nivel se denominan “datagramas“) desde la dirección IP de origen hasta la de destino (alternando estos roles 100.0.0.1 y 200.0.0.1 según sea el emisor el servidor o el cliente, respectivamente).

Un campo interesante que se añade es el TTL (”tiempo de vida” o “time to live“), que tiene un valor inicial en el host que produce el paquete (generalmente 64) y luego es decrementado por cada gateway por el que pasa. Si un gateway recibe un paquete con el campo TTL en cero, el mismo es descartado y se genera un paquete del protocolo ICMP (usado para control y mensajes de error) dirigido a su emisor, indicando que dicho paquete ha excedido la cantidad máxima de saltos. Esta medida es implementada para evitar que, quizás por un error de ruteo, un paquete quede indefinidamente “dando vueltas” por la red.

En este ejemplo supondremos que el enrutamiento de paquetes es simple (estático), para facilitar las explicaciones. Existen casos complejos en donde se utiliza enrutamiento dinámico, en los cuales paquetes pertenecientes a la misma comunicación pueden enviarse por caminos distintos, alterando inclusive el orden en que llegan al destino (y hasta pudiendo producirse pérdidas).

Debemos tener en cuenta que estamos usando el llamado IPv4 (IP versión 4), ya que también existe el IPv6 (IP versión 6), cuya aplicación se está difundiendo rápidamente en Internet y que soluciona muchos inconvenientes que presenta el anterior.

Nivel de enlace

El “nivel de enlace” es el nivel más cercano al “nivel físico” y es totalmente independiente del protocolo TCP/IP. Existen gran variedad de tecnologías de este tipo; siendo las más comunes Ethernet, WiFi, PPP, Frame Relay, ATM, entre otras.

Supondremos el caso más común: una red Ethernet. Este protocolo se basa en el uso de direcciones de 6 bytes (48 bits), que no son “ruteables” (aquí no existen gateways), por lo cual se utiliza en redes de área local (LANs). Cada dispositivo Ethernet tiene asociada una dirección única (asignada por el fabricante del mismo), la que usualmente se denomina MAC Address.

Resolución de direcciones

Supongamos que el host 200.0.0.1 quiere enviar un paquete IP al host 200.0.0.33. Como ambos están en la misma red local (los primeros 24 bits de sus direcciones coinciden), lo único que debe hacer es averiguar cuál es la dirección Ethernet de este último. Para ello, se utiliza el protocolo ARP (”Address Resolution Protocol“).

El funcionamiento es muy simple. El host 200.0.0.1 envía un paquete (en terminología de Ethernet se denomina “frame“) a la dirección ff:ff:ff:ff:ff:ff (las direcciones Ethernet se denotan con seis bytes en hexadecimal separados por dos puntos), que es la dirección de broadcast (que llega a todos los hosts de la red) preguntando quién tiene la dirección IP 200.0.0.33. Dicha solicitud ARP tiene como origen la dirección Ethernet del emisor (supongamos, 00:30:b8:80:dd:11).

El poseedor de esa dirección IP le responderá con otro frame con su dirección Ethernet como origen (supongamos, 01:4e:bb:a1:01:8b). De ahora en más, cada vez que el host 200.0.0.1 quiera enviar un paquete IP al host 200.0.0.33, enviará un frame Ethernet proveniente de la dirección 00:30:b8:80:dd:11 a la dirección 01:4e:bb:a1:01:8b, conteniendo el paquete original. (La información sobre las direcciones ARP se almacenan en cada host en una tabla que tiene una duración de algunos minutos.)

Fragmentación

Puede ocurrir que el tamaño de los paquetes producidos por la capa de red (IP, en nuestro caso) sean de un tamaño mayor al máximo que puede transmitir el medio físico utilizado (MTU o “unidad máxima de transferencia“. Por esto, puede ocurrir que los paquetes se fragmenten, para acomodarse a esta limitación.

Esta situación puede volver a presentarse a lo largo del camino “físico” que recorra la información, siendo responsabilidad de cada gateway el fragmentar y reensamblar los paquetes para preservar los datos.

Análisis a nivel de enlace

Volviendo ahora a nuestro experimento, el host donde se ejecuta la aplicación cliente (200.0.0.1) debe enviar paquetes IP al host en donde se ejecuta el servidor (100.0.0.1). Claramente, éste último no pertenece a su red local, por lo cual deberá enviarlo a través del gateway.

Para ello, usando el protocolo ARP averigua la dirección Ethernet del gateway (cuya dirección IP, recordemos, es 200.0.0.21), que supondremos es 00:01:02:ed:41:61. Una vez hecho esto, envía un frame Ethernet (con origen
00:30:b8:80:dd:11 y destino 00:01:02:ed:41:61), conteniendo el paquete IP cuyo origen es 200.0.0.1 y con destino a 100.0.0.1.

El gateway recibirá el frame (puesto que la dirección Ethernet de destino es la suya) y dentro de él encontrará un paquete IP dirigido a 100.0.0.1. Decrementará el campo TTL y, en base a las reglas definidas en su “tabla de enrutamiento” (o “tabla de ruteo“), lo reenviará hacia el gateway correspondiente (usando el protocolo asociado al medio físico mediante el cual esté conectado con éste).

Una situación similar se presenta considerando los paquetes emitidos por el host 100.0.0.1 hacia 200.0.0.1.

De esta manera, el mismo paquete IP va atravesando distintos gateways a través de distintos medios físicos (que involucran diferentes protocolos de enlace), hasta llegar al host de destino. Por ejemplo, el paquete original puede llegar al primer gateway a través de un frame Ethernet, ser enviado por este al gateway del proveedor de Internet a través de un paquete PPP, atravesar una red ATM en Internet, luego llegar por un enlace Frame Relay al gateway de la red de destino, y ser entregado en otro frame Ethernet al host de destino.

El camino de la información a través de las distintos niveles

La siguiente figura ilustra un ejemplo del camino que sigue la información desde la aplicación que la produce, a través de los distintos niveles o capas de cada protocolo.

Las distintas capas

(Ver imagen ampliada)

Nota: Este ejemplo es una simplificación de la realidad. Se han omitido muchos otros datos que forman parte de cada protocolo (controles de error, delimitadores, indicadores de longitud, etc.), que no son relevantes en el contexto de este tutorial.

  1. Nivel de aplicación: La aplicación (en este caso, el programa cliente), escribe la cadena “salir\n“.
  2. Nivel de transporte: En la capa TCP forma un paquete agregando el número de secuencia (20), puerto de origen (4781) y puerto de destino (2222).
  3. Nivel de red: En la capa IP se forma un paquete (datagrama) añadiendo la dirección IP origen (200.0.0.1), destino (100.0.0.1), el TTL (64) y un valor que identifica el protocolo del paquete encapsulado (0×06, valor hexadecimal que representa al protocolo TCP).
  4. Nivel de enlace: En la capa Ethernet se forma un nuevo paquete (frame) agregando las direcciones Ethernet de origen (00:30:b8:80:dd:11) y destino (00:01:02:ed:41:61, la dirección del gateway, cuya IP es 200.0.0.21). Se añade además el identificador del tipo de protocolo del paquete contenido (el valor 0×800 corresponde al protocolo IP).
  5. Nivel físico: El frame formado es enviado a través del medio físico que vincula los hosts de la red local (típicamente, cable de par trenzado).

Como puede apreciarse, tanto el protocolo IP como Ethernetencapsulan” a otros protocolos. Esto permite realizar distintas combinaciones, creando “túneles” (como en el caso del ampliamente difundido y utilizado PPPoE).

Software, modelo conceptual y hardware

El siguiente diagrama muestra la relación entre cada uno de los componentes lógicos analizados, su implementación y la división entre hardware y software.

Relación entre los componentes

Para finalizar

En este tutorial hemos recorrido cada uno de los principales componentes del protocolo TCP/IP y analizado su función a través de un ejemplo concreto (aunque simple).

Deliberadamente, hemos omitido algunos puntos importantes, como el sistema DNS (que posibilita la utilización de nombres en vez de direcciones IP), la asignación automática de direcciones IP (a través del protocolo DHCP), y algunos detalles sobre direccionamiento y enrutamiento IP. (Quizás algunos de ellos sean motivo de próximos tutoriales.)

Es el deseo del autor que a través de la lectura del presente tutorial se haya podido lograr un panorama general acerca del funcionamiento de las redes TCP/IP, posibilitando al lector su avance hacia temas (y, por qué no, experimentos) más complejos e interesantes.


Fuente: http://blog.smaldone.com.ar/2006/11/21/tutorial-sobre-tcpip/

Tutorial de Subnetting Redes Clase A, B, C - Ejercicios de Subnetting CCNA 1

La función del Subneteo o Subnetting es dividir una red IP física en subredes lógicas (redes más pequeñas) para que cada una de estas trabajen a nivel envío y recepción de paquetes como una red individual, aunque todas pertenezcan a la misma red física y al mismo dominio.
El Subneteo permite una mejor administración, control del tráfico y seguridad al segmentar la red por función. También, mejora la performance de la red al reducir el tráfico de broadcast de nuestra red. Como desventaja, su implementación desperdicia muchas direcciones, sobre todo en los enlaces seriales.

Dirección IP Clase A, B, C, D y E

Las direcciones IP están compuestas por 32 bits divididos en 4 octetos de 8 bits cada uno. A su vez, un bit o una secuencia de bits determinan la Clase a la que pertenece esa dirección IP.
Cada clase de una dirección de red determina una máscara por defecto, un rango IP, cantidad de redes y de hosts por red.





Cada Clase tiene una máscara de red por defecto, la Clase A 255.0.0.0, la Clase B 255.255.0.0 y la Clase C 255.255.255.0. Al direccionamiento que utiliza la máscara de red por defecto, se lo denomina “direccionamiento con clase” (classful addressing).



Siempre que se subnetea se hace a paritr de una dirección de red Clase A, B, o C y está se adapta según los requerimientos de subredes y hosts por subred. Tengan en cuenta que no se puede subnetear una dirección de red sin Clase ya que ésta ya pasó por ese proceso, aclaro esto porque es un error muy común. Al direccionamiento que utiliza la máscara de red adaptada (subneteada), se lo denomina “direccionamiento sin clase” (classless addressing).

En consecuencia, la Clase de una dirección IP es definida por su máscara de red y no por su dirección IP. Si una dirección tiene su máscara por defecto pertenece a una Clase A, B o C, de lo contrario no tiene Clase aunque por su IP pareciese la tuviese.

Máscara de Red

La máscara de red se divide en 2 partes:

Porción de Red:
En el caso que la máscara sea por defecto, una dirección con Clase, la cantidad de bits “1” en la porción de red, indican la dirección de red, es decir, la parte de la dirección IP que va a ser común a todos los hosts de esa red.
En el caso que sea una máscara adaptada, el tema es más complejo. La parte de la máscara de red cuyos octetos sean todos bits “1” indican la dirección de red y va a ser la parte de la dirección IP que va a ser común a todos los hosts de esa red, los bits “1” restantes son los que en la dirección IP se van a modificar para generar las diferentes subredes y van a ser común solo a los hosts que pertenecen a esa subred (asi explicado parece engorroso, así que más abajo les dejo ejemplos).

En ambos caso, con Clase o sin, determina el prefijo que suelen ver después de una dirección IP (ej: /8, /16, /24, /18, etc.) ya que ese número es la suma de la cantidad de bits “1” de la porción de red.

Porción de Host:
La cantidad de bits "0" en la porción de host de la máscara, indican que parte de la dirección de red se usa para asignar direcciones de host, es decir, la parte de la dirección IP que va a variar según se vayan asignando direcciones a los hosts.

Ejemplos:


Si tenemos la dirección IP Clase C 192.168.1.0/24 y la pasamos a binario, los primeros 3 octetos, que coinciden con los bits “1” de la máscara de red (fondo bordó), es la dirección de red, que va a ser común a todos los hosts que sean asignados en el último octeto (fondo gris). Con este mismo criterio, si tenemos una dirección Clase B, los 2 primeros octetos son la dirección de red que va a ser común a todos los hosts que sean asignados en los últimos 2 octetos, y si tenemos una dirección Clase A, el 1 octeto es la dirección de red que va a ser común a todos los hosts que sean asignados en los últimos 3 octetos.



Si en vez de tener una dirección con Clase tenemos una ya subneteada, por ejemplo la 132.18.0.0/22, la cosa es más compleja. En este caso los 2 primeros octetos de la dirección IP, ya que los 2 primeros octetos de la máscara de red tienen todos bits “1” (fondo bordo), es la dirección de red y va a ser común a todas las subredes y hosts. Como el 3º octeto está divido en 2, una parte en la porción de red y otra en la de host, la parte de la dirección IP que corresponde a la porción de red (fondo negro), que tienen en la máscara de red los bits “1”, se va a ir modificando según se vayan asignando las subredes y solo va a ser común a los host que son parte de esa subred. Los 2 bits “0” del 3º octeto en la porción de host (fondo gris) y todo el último octeto de la dirección IP, van a ser utilizados para asignar direcciones de host.


Convertir Bits en Números Decimales


Como sería casi imposible trabajar con direcciones de 32 bits, es necesario convertirlas en números decimales. En el proceso de conversión cada bit de un intervalo (8 bits) de una dirección IP, en caso de ser "1" tiene un valor de "2" elevado a la posición que ocupa ese bit en el octeto y luego se suman los resultados. Explicado parece medio engorroso pero con la tabla y los ejemplos se va a entender mejor.



La combinación de 8 bits permite un total de 256 combinaciones posibles que cubre todo el rango de numeración decimal desde el 0 (00000000) hasta el 255 (11111111). Algunos ejemplos.


Calcular la Cantidad de Subredes y Hosts por Subred


Cantidad de Subredes es igual a: 2N, donde "N" es el número de bits "robados" a la porción de Host.

Cantidad de Hosts x Subred es igual a: 2M -2, donde "M" es el número de bits disponible en la porción de host y "-2" es debido a que toda subred debe tener su propia dirección de red y su propia dirección de broadcast.

Bueno, hasta acá la teoría básica. Una vez que comprendemos esto podemos empezar a subnetear. Como consejo les digo que se aprendan y asimilen la dinámica de este proceso ya que es fundamental, sobre todo para el final práctico y teórico del CCNA 1, y más adelante les va a simplificar el aprendizaje de las VLSM (Máscaras de Subred de Longitud Variable).

Fuente: http://www.garciagaston.com.ar/