La familia de protocolos TCP/IP IP (Transport Control Protocol/ Internet Protocol) es la base actual de Internet y de las redes. Esta formada por más protocolos de los que su nombre indica y lo que realizan es permitir que los equipos se comuniquen entre s�. Windows Server necesita de TCP/IP para su Directorio Activo (AD, Active Directory)
Existen dos estándares al respecto, el modelo ISO OSI y el propio TCP/IP.
El modelo OSI
El modelo ISO OSI comienza con la premisa de que la comunicación entre dos equipos es tan compleja que no podría considerarse como una sola entidad. Por ello el proceso de comunicación debe dividirse en capas diferentes, donde cada una se situará sobre la inferior, utilizando funciones asignadas por capa. Dejando a los desarrolladores el funcionamiento interno de las mismas. Siete son las capas definidas por la ISO OSI, en orden ascendente:
El modelo DARPA (TCP/IP)
Modelo utilizado en internet. Con sólo cuatro capas aunque compatibles con el modelo OSI.
Veamos una tabla de correspondencia entre modelos.
IP Internet Protocol
Para una comprensión de TCP/IP es necesario conocer uno de sus protocolos más importantes: IP. IP es el bloque de construcción de red del resto de protocolos y capas. Se halla perfectamente definido en la RFC 791, Protocolo de Internet. IP ofrece varios servicios a la capa superior:
Quizás lo que más interese a éste nivel sean las direcciones IP; Es muy importante que la asignación de éstas sean únicas y correctas a todos los nodos de la red. No es que parezca tener demasiada dificultad dicha asignación, pero en realidad hacerlo usando técnicas de subred si que lo complica.
Una dirección IP es una dirección lógica de 32 bits (ipv4) que puede ser:
¿Cómo se expresan?
Una IP es un valor de 32 bits, que pueden manejar perfectamente los equipos. Sin embargo nosotros no pensamos en
binario, normalmente lo hacemos en decimal, por lo que parece más habitual expresarlas así.
La IP se divide en octetos, cantidades de 8 bits, si la dirección es de 32 bits entonces nos encontramos con 4
octetos. Por tanto expresamos la dirección IP con cuatro octetos decimales separados por un punto, conocido como
notación decimal con puntos.
Esto es una IP: 00001010000000011111000101000011
Si la dividimos en cuatro octetos: 00001010 00000001 11110001 01000011
Cada octeto se pasa a base 10: 10.1.241.67
Si observamos vemos que el número mayor sería 11111111, lo que en decimal supone 255.
Utilizaremos la notación w.x.y.z para referirnos a las direcciones IP.
Clases de direcciones
Hay 5 clases de direcciones IP, clasificadas como Clase A, B, C, D y E.
Las direcciones de la clase A se destinan para redes con gran número de hosts. El primer octeto es el Id de red,
los restantes Id de host.
w = Id de red.
x.y.z = Id de host
Un ejemplo: 10.0.1.137
Id de red = 10
Id de host = 0.1.137
A esta clase se le asignan las direcciones comprendidas desde 1.0.0.0 a 126.0.0.0, y de ellas 10.0.0.0 para ámbito privado.
Las direcciones de la clase B para redes de tamaño mediano, aquí los dos primeros octetos serán el Id de red y los segundos el Id de host.
w.x = Id de red
y.z = Id de host
Un ejemplo: 172.16.0.25
Id de red = 172.16
Id de host = 0.25
Aquí tenemos desde 128.0.0.0 hasta 191.255.0.0, siendo el rango 172.16.0.0 hasta 172.31.0.0 para redes privadas.
Las direcciones de la clase C serían para redes pequeñas, en donde el Id de red le corresponde a los tres primeros octetos, siendo el último el significativo Id de host.
w.x.y = Id de red
z = id de host
Un ejemplo: 192.168.0.29
Id de red: 192.168.0
Id de host: 29
Aquí está el rango comprendido entre 192.0.0.0 hasta 223.255.255.0, extrayendo el rango 192.168.0.0 hasta 192.168.255.0 para el ámbito privado.
Estas tres clases son para IP de difusión.
La clase D se destina para direcciones IP de multidifusión y las de la clase E son direcciones experimentales.
El rango 127.x.y.z se reserva como direcciones de bucle invertido.
Veamos unas tablas:
Como vemos, la primera dirección y la última no son utilizables, ya que la primera w.0.0.0, w.x.0.0, w.x.y.0 es la
dirección de red y la última w.255.255.255, w.x.255.255, w.x.y.255 está destinada a
difusión (broadcast). Con las máscaras de red podemos segmentar una red en distintas subredes, se verá pero esto indica que la primera y última dirección de esa subred también son inutilizables. |
Para que un host o un enrutador puedan distinguir el Id de red del Id de host, la RFC 950 define el uso de una
máscara de bits para identificar cada Id. Llamada máscara de subred o máscara de
dirección . En cada configuración de dirección IP ha de existir una máscara de subred. Se expresa con el mismo formato que las IP pero no son direcciones IP.
Genéricamente tenemos: |
Así cuando expresamos un Id de red podemos hacerlo correctamente de dos formas:
- 192.168.4.0, 255.255.255.0 - 192.168.4.0/16 ¿Cómo se determina el Id de red? Con el resultado del AND lógico entre la IP y la máscara de subred. Un ejemplo: IP 10000011 01101011 10100100 00011010 Máscara 11111111 11111111 11110000 00000000 Id de red 10000011 01101011 10100000 00000000 131.107.160.0/20, o 131.107.160.0, 255.255.240.0 Utilizando la máscara podemos dividir cada red en subredes, si nos fijamos, las posibilidades son exactas, es decir: /9, /10, /11, /12, ............./31. Un ejemplo con la clase C: /25 = 126 host en dos subredes, 255.255.255.128 /26 = 62 host en cuatro subredes, 255.255.255.192 /27 = 30 host en ocho subredes, 255.255.255.224 /28 = 14 host en dieciséis subredes 255.255.255.240 /29 = 6 host en treinta y dos subredes 255.255.255.248 /30 = 2 host en sesenta y cuatro subredes 255.255.255.252 ¿Bueno y todo esto? Veámoslo con un ejemplo: Tenemos una red de clase C con ID de red 192.168.0.0, la subdividimos en 2 subredes utilizando 192.168.0.0/25, todos los equipos están físicamente conectados al mismo medio, pero forman dos redes lógicas distintas. Así tenemos que el equipo con IP 192.168.0.1/25 no puede comunicarse con el equipo con IP 192.168.0.129/25, pero si con todos los que tengan un Id menor o igual a 126 y con ninguno que lo tenga superior. Por supuesto las direcciones 192.168.0.0 y 192.168.0.126 no son aplicables a host, ni tampoco la 192.168.0.127 y 192.168.0.255, direcciones de red y broadcast respectivamente de cada segmento. Para que se vieran se necesitaría un enrutador o cambiar la máscara de subred. |
Tabla de enrutamiento (accesible con el comando route print desde la línea de comandos)
Esta tabla contiene las rutas en memoria del nodo (cada nodo tiene una) y cada entrada presenta la
información necesaria para el reenvío de paquetes para un intervalo de IP de destino. Además contiene la puerta (o puertas) de enlace predeterminadas para las rutas.
Todo ello es utilizado para generar la interfaz de próximo salto y la IP de próximo salto.
El primero es el dispositivo físico o lógico a través del que se reenvía el datagrama IP, el segundo la
dirección IP del nodo al que se reenvía el datagrama.
Una ruta de la tabla tiene la información necesaria para identificar el destino, la interfaz y
dirección de próximo salto y además decidir la ruta más conveniente cuando hay varias.
La tabla de enrutamiento contiene la información referente a:
-Destino: Junto a la máscara de red, representa el intervalo de direcciones IP al que se puede tener acceso con esta ruta. Puede ser una Id de red o una
dirección IP.
-Máscara de red: Máscara de bits utilizada para determinar los bits significativos de Destino. Debe formarse por una serie de bits 1 contiguos seguidos por una serie de bits 0 contiguos. Como hemos dicho, Destino y
máscara definen el intervalo de IP. Un datagrama IP con dirección IP de destino del intervalo coincide con la ruta. Para determinar si una IP de destino de un datagrama reenviado coincide con una ruta, se realiza un AND
lógico a nivel de bit entre la IP de destino y la máscara. El resultado se compara con el valor del campo Destino para la ruta. Si coinciden, la ruta es correcta para el paquete y se utiliza la IP de
próximo salto.
-IP de próximo salto: IP a la que se reenviará el datagrama IP si coincide con la ruta. Es relevante para enlaces de
difusión, e irrelevante en enlaces punto a punto. Para rutas de segmentos de red directamente conectados, el campo
Próximo salto puede configurarse con la IP de la interfaz de ese segmento de red.
-Interfaz: Designación de la interfaz lógica o física utilizada al reenviar datagramas mediante esta ruta. Puede ser un nombre
lógico o la IP de la propia interfaz. Windows utiliza la IP asignada a la interfaz de red.
-Métrica: Coste de la ruta, ayuda a determinar la ruta a elegir entre varias con el mismo destino y
máscara, se utilizará la ruta con métrica más baja. Se utiliza para reflejar la cuenta de saltos(enrutadores hasta el destino).
Las rutas pueden ser de los tipos:
-Ruta de host: Ruta a un IP específica, por tanto la máscara de red es /32 (255.255.255.255). Se
utilizaría para especificar una ruta más óptima a host específicos en una subred remota.
-Ruta de Id de red: ruta para destinos con clase, sin clase, de subred y de superred. La
máscara se encuentra entre /1 y /31.
-Ruta predeterminada: Ruta hacia todos los destinos, se utiliza cuando no hay coincidencias con el destino. Viene representada por 0.0.0.0 y una
máscara /0, mejor 0/0. Una puerta de enlace predeterminada configurada en un host, crea una ruta predeterminada en la tabla de enrutamiento. Se utiliza para enrutamiento
estático y para resumir todos los destinos de una gran red IP, como Internet.
ICMP (Internet Control Message Protocol)
Este protocolo informa de condiciones de error y control en nombre de IP. Protocolo extensible, proporciona funciones para comprobar la conectividad IP y ayudar en la
configuración automática de los host. No hace que IP sea confiable. Aunque informa de un error, no tiene requisitos de
cómo ha de tratarlos. Depende de la implementación TCP/IP interpretar el error y ajustar su comportamiento.
Los tipos de ICMP son:
0 Respuesta de eco
3 Destino inaccesible
4 Flujo de origen
5 Redirección
8 Solicitud de eco (Eco)
9 Anuncio de enrutador
10 Solicitud de enrutador
11 Tiempo de espera agotado
12 Problema de parámetros
Protocolo ARP
ARP es un protocolo utilizado en redes basadas en difusión., como ethernet y Token Ring. Resuelve la dirección IP de próximo salto de un nodo a su dirección correspondiente de control de acceso al medio MAC, conocida como dirección física, hardware o de adaptador de red. La dirección MAC resuelta se convierte en la MAC de destino en la cabecera Ethernet o Token Ring a la que se dirige un datagrama IP cuando se envía en el medio. En resumen, ARP resuelve la dirección de capa de internet(IP) a una de la capa de interfaz de red(MAC).
Está formado por dos mensajes:
Solicitud ARP, el nodo de reenvío utiliza �éste para averiguar la direcci�n MAC correspondiente a una IP específica.
Respuesta ARP, se utiliza para responder al solicitante ARP. Una trama MAC de unidifusión enviada a la MAC de destino del solicitante.
Puesto que la solicitud es una difusión MAC, todas las IP de próximo salto deben alcanzarse directamente(la misma subred) desde la que
envía la solicitud. Si una entrada de la tabla de enrutamiento contiene una IP
próximo salto no válida y no puede alcanzarse directamente por la interfaz, ARP no
podrá responder la solicitud.
Windows mantiene una tabla basada en RAM de asignaciones IP-MAC conocida como
caché ARP. Cuando se completa un intercambio ARP, el solicitante y el contestador almacenan la correspondencia IP-MAC en su
caché, los siguientes paquetes reenviados a las ya resueltas utilizarán la MAC de la
caché ARP. La caché siempre se comprueba antes de enviar una solicitud ARP. Existe una diferente para cada interfaz IP.
El comando arp desde el símbolo de sistema nos ofrece los parámetros utilizables con el propio comando.
Por ejemplo arp -a mostrará la caché RAM. Si esta sale vacía, sólo hemos de efectuar un ping a una IP de la red y repetir el comando, ahora nos aparecerá dicha
resolución, con la IP utilizada en el ping y su correspondiente MAC.
Protocolo TCP
En la capa de transporte hay dos protocolos que se utilizan normalmente: TCP y UDP(User Datagram Protocol). TCP es el encargado de proporcionar un servicio de entrega confiable entre extremos.
TCP tiene las siguientes características:
Un segmento TCP se envía como un datagrama IP. Tiene una cabecera y un segmento, cuyo tamaño máximo es de 65495 bytes.
La cabecera TCP es de longitud variable, sin opciones TCP tiene 20 bytes de longitud.
Los campos que contiene son: