REDES 2-5


II.4 - Redes TCP/IP


II.4.1 - Arquitectura TCP/IP

La arquitectura TCP/IP es distinta a la arquitectura OSI. Básicamente se diferencian los siguientes niveles: 
Modelo TCP/IP
FIGURA II.55 Niveles TCP/IP frente a OSI.
Se denomina subredes a las tecnologías específicas sobre las que se sustenta la interred. (Ethernet...) El servicio que se da a niveles superiores es, por tanto, dependiente de subred. 

 El nivel de interred suele estar implementado por el protocolo IP. Es, por decisión de diseño, no fiable y no orientado a conexión. Su finalidad esencial es ocultar la heterogeneidad de subredes ofreciendo un servicio independiente de ellas. 

 En cuanto al nivel de transporte su función es dar un servicio fiable y orientado a conexión. Podemos fijarnos en dos protolos que lo implementan: 

Por último, en el nivel de aplicación encontramos aplicaciones tales como FTP, TELNET o WWW. 

 En cuanto a la nomenclatura en TCP/IP podemos hacer algunos comentarios: 


II.4.2 - Nivel de interred: IP


II.4.2.1 - Servicio

IP ofrece una comunicación extremo a extremo independiente de las redes por las que se pase. Es no orientado a conexión y no fiable, es decir, pueden producirse pérdidas, duplicaciones y desórdenes. Todos estos errores han de ser vigilados y corregidos a nivel superior. 
 


II.4.2.2 - Interredes IP
IP está definido en un documento público denominado RFC 791 ( Request For Comments, son documentos con la misma función que las normas OSI). 

El uso de IP hace necesario implantar niveles intermedios entre el propio IP y las subredes sobre las que descansa. Recordemos que IP es único mientras que subredes hay muchas. Por tanto, si sale al mercado una red nueva deberá salir a su vez un nuevo nivel intermedio (SNCDP). De esta forma, instalar una nueva tecnología no obliga al usuario a cambiar los niveles que estén de IP hacia arriba. Estos niveles intermedios que actúan como traductores se denominan protocolos de convergencia. 

 Veamos dos ejemplos de interredes con IP: 

  1. IP sobre Ethernet. 

  2. El proceso que se sigue es el siguiente: 
     

    Gráficamente: 
    IP sobre Ethernet
    FIGURA II.56 IP sobre Ethernet.
    Este caso se simplifica mucho por el hecho de que tanto Ethernet como IP son no orientados a conexión. Por esto, las directivas Data.Request y Data. Indication se traducen rápidamente a sus equivalentes en Ethernet. 
     
     
  3. IP sobre X.25
     El proceso para generar una trama es similar al del caso anterior: 
    IP sobre X.25
    FIGURA II.57 IP sobre X.25.
    El cambio más importante viene obligado por ser X.25 orientado a conexión. Supongamos la siguiente situación: 
    IP sobre X.25
    FIGURA II.58 IP sobre X.25.
    El proceso para realizar una transmisión desde el equipo conectado a X.25 hasta el conectado al router es el siguiente: Gráficamente: 
    IP sobre X.25
    FIGURA II.59 Transmisión en IP sobre X.25.
    Si es el sistema conectado al router mediante una red Ethernet el que quiere empezar a enviar: 

II.4.2.3 - Funciones IP

IP especifíca: 


II.4.2.4 - Direcciones IP

En primer lugar hay que señalar que deben ser independientes de la subred. Su longitud es de 32 bits lo que teóricamente permite la utilización de 4.000 millones de direcciones diferentes. Sin embargo, como veremos más adelante, se pierden muchas por la forma de asignar esas direcciones. 

 Los 32 bits se dividen en dos campos: 
 
 
Direcciones IP
FIGURA II.60 Direcciones IP.
El campo subred nombra la subred a la que está conectado el sistema, mientras que el campo sistema identifica el equipo dentro de la subred. Para dar flexibilidad la asignación hay cinco tipos básicos de direcciones en función de la longitud de los campos: 
 
 

Es muy importante saber que una dirección IP no identifica un sistema sino una conexión de un sistema a una subred. Por tanto, un sistema conectado a dos subredes, por ejemplo un router, tendrá dos direcciones. 

Evidentemente, una dirección de 32 bits es algo inmanejable para las personas.(Imagínese un teléfono de 32 dígitos) Como primera solución a este problema se utiliza la denominada notación punto. Consiste en traducir, por separado, cada octeto a decimal. Algunos ejemplos son: 

Algunos valores especiales son:  Pero aún así no es tan cómodo como cabría esperar. Para resolver definitivamente este problema se hace uso de los nombres IP. Consiste en asignar a los sistemas nombres con significado comprensible para el usuario (normalmente, en función de su localización). La traducción se realiza de forma interna y transparente mediante, por ejemplo, la aplicación DNS.(DNS es una aplicación que traduce nombres IP en direcciones IP utilizando una base de datos distribuida) 

 La asignación se realiza partiendo de un dominio o raíz y añadiendo los subdominios necesarios. Se definieron dos tipos de dominios raíz: 

Un ejemplo puede ser: 
Nombre IP
FIGURA II.64 Nombre IP. 


II.4.2.5 - Formato de un datagrama IP

El formato general de un datagrama IP es: 
Datagrama IP
FIGURA II.65 Datagrama IP. 
Estudiamos sus campos uno a uno: 

  1. Versión: Los protocolos evolucionan y cambian con el tiempo. Por esto, es conveniente saber con qué versión se ha generado un datagrama. 
  2. Longitud: Es la longitud de la cabecera medida en palabras de 32 bits. Puesto que este campo tiene 4 bits la longitud máxima de la cabecera es de 64 octetos. 
  3. Servicio: Lo rellena quien envía el datagrama. Su utilidad actual es muy escasa, pero irá aumentando en la medida en que se empleen diferentes tipos de tráfico. Su formato es:
  4. Campo servicio
    FIGURA II.66 Campo servicio. 
    donde:  La norma especifíca que sólo se puede poner a ´1´ uno de los campos D, T, R y C. Con esto, el usuario decide a qué quiere dar prioridad para su mensaje. 
  5. Longitud total: Es la longitud total del mensaje en octetos incluída la cabecera. Por ser un campo de 16 bits permite una longitud de hasta 65535 octetos. 
  6. Campos de segmentación y reensamblado: Supongamos la siguiente situación: 
  7. Segmentación y reensamblado.
    FIGURA II.67 Segmentación y reensamblado. 
    Analicemos detenidamente lo que ocurre cuando Host1 envía un datagrama con1400 octetos de datos a Host2. Se genera el datagrama: 
    Segmentación y reensamblado.
    FIGURA II.68 Segmentación y reensamblado. 
    El datagrama se envía y llega hasta el router1. Este advierte que ha de reenviar el datagrama de 1420 octetos por una red en la que el tamaño máximo es de 620 octetos. Por tanto, antes de reenviar, procede a segmentar generando tres datagramas del original que respeten la longitud máxima: 
    Segmentación y reensamblado.
    FIGURA II.69 Segmentación y reensamblado. 
    Los campos de la cabecera que se utilizan son:  En nuestro ejemplo el router rellena estos campos con los siguientes valores: 
    Segmentación y reensamblado.
    FIGURA II.71 Segmentación y reensamblado. 
    Estos tres datagramas son enviados hasta el Host2 donde se reensambla el datagrama original. ¿Por qué no se reensambla en el router2? Para responder esta pregunta basta con recordar que IP es no orientado a conexión y por ello al Host2 podría llegarse por dos routers diferentes. 

     Por el hecho de que IP es, además, no fiable al llegar el primer fragmento se disparará un TIMER. Si transcurrido un tiempo no han llegado todos los fragmentos se descartan los que sí lo hayan hecho. 
     

  8. TTL: o Time To Life. Límita el tiempo que un datagrama puede pasar en la red. TTL se decrementa en una unidad cada vez que pasa por un router si todo va bien, o en una unidad por segundo en el router si hay congestión. Al llegar a cero el datagrama es descartado. 

  9.  
  10. Protocolo: Especifica qué protocolo está por encima de IP: TCP, UDP o ICMP que se explicará posteriormente.

  11.  
  12. Checksum: Es el resultado de aplicar un código de protección de errores a la cabecera con los bits del campo checksum puestos a cero. Normalmente, se suman todos los bits de la cabecera, se complementa la suma a uno y se pone el resultado en checksum. Este campo se modifica en cada router por decrementarse el campo TTL.

  13.  
  14. Opciones: En este campo se especifican algunas opciones de las que se puede hacer uso. Por ejemplo, una de ellas es la denominada registro de ruta. Si se emplea esta opción todos los routers por los que pase el datagrama copiarían en su campo de opciones su dirección. (Como máximo este campo puede tener 40 octetos, es decir, 10 direcciones.) 

II.4.3 - ICMP (Internet Control Messages Protocol)


II.4.3.1 - Introducción

Son un tipo de mensajes que envían los routers, encapsulados en datagramas IP, al originador de algún mensaje conflictivo (porque haya problemas para encaminar un datagrama, congestión en la red, etc.). 
Básicamente tiene dos funciones: 

  1. Informar sobre errores.
  2. Diagnosticar y obtener información
El esquema general que se sigue a la hora de empaquetar es el siguiente: 
Esquema general de un mensaje ICMP.
FIGURA II.72 Esquema general para encapsular mensajes ICMP.

II.4.3.2 - Tipos de mensajes ICMP

Errores:

El formato común para todos los mensajes de error es el siguiente: 
Formato general para los mensajes de error.
FIGURA II.73 Formato general para los mensajes de error.
Los diferentes tipos de mensajes de error que estudiaremos son los siguientes: 

Diagnóstico:

Los mensajes de diagnóstico que estudiaremos son los de echo request y reply, que responden ambos al mismo formato (los tipos son 8 y 0 respectivamente): 
Formato de los mensajes de Echo Request y Reply.
FIGURA II.74 Formato de los mensajes de Echo Request y Reply.
Se utilizan para saber si el destino es accesible (utilidades ping y traceroute por ejemplo). 
La idea es que al mandar un Request, se obliga al destino a responder con un Reply. También podemos usar el campo de datos para pruebas más complicadas. 

Utilidades:

NOTA:

Aunque aparentemente estos mensajes de ICMP ofrecen la fiabilidad que antes decíamos que le faltaba a IP, no es así. Si un mensaje ICMP se pierde, no se vuelve a enviar otro mensaje de error. Luego pese a que ofrece más robustez, no podemos asegurar la fiabilidad. 
 


II.4.4 - Encaminamiento IP

Los dos casos que analizaremos se esquematizan en el siguiente dibujo: 
Transmisión directa e indirecta.
FIGURA II.75 Transmisión directa e indirecta.

II.4.4.1 - Transmisión directa
 
Transmisión directa.
FIGURA II.76 Transmisión directa.
El primer host conoce tanto IP1 como IP2 y las incluye en la cabecera IP del datagrama que envía. 
Sin embargo, para encapsular a nivel 2 necesito conocer ET2 (pues ET1 es él mismo y se conoce......). Esto se consigue con un traductor de direcciones, que me dé ET2 desde la IP2 conocida. Concretamente y como veremos luego, el encargado es el protocolo ARP. 
 


II.4.4.2 - Transmisión indirecta

Tabla de encaminamiento del router
FIGURA II.77 Tabla de encaminamiento del router 2.

II.4.4.3 - Tablas de encaminamiento
 
Tabla de encaminamiento
FIGURA II.78 Tablas de encaminamiento.
El orden de consulta es de lo más específico a lo menos específico (de otra forma podría ir siempre a la dirección por defecto, etc.). 

Ejemplo:

EjemploTabla del router 1
FIGURA II.79 Ejemplo tabla de encaminamiento.
Las subredes a las que un nodo está conectado, en general no suelen estar en la tabla, pero para hacer más completo el ejemplo hemos supuesto que no están configuradas. 
 


II.4.4.4 - Resolución de direcciones

Problema:
Dada una dirección IP, obtener la dirección de la subred correspondiente: dirsub= f (dirIP).
Soluciones:
Tablas estáticas (una en cada host): 
 

Tablas estáticas Problemas: 
FIGURA II.80 Tablas estáticas.

  • Si la red tiene muchos sistemas, la operación se hace muy tediosa.
  • Si cambio un PC, meto otro nuevo, se estropea alguno, etc., tengo que cambiar todas las tablas.
Asociación directa:

 La dirección IP contiene a la dirección de subred. 
Problemas:
La dirección IP es de 32 bits mientras que la de subred puede ser por ejemplo de 48.
No es recomendable mezclar direcciones de varios niveles, pues si por ejemplo variase mi dirección física IP, abría que variar la de red y decírselo a todo el mundo.
Pese a que la idea parece buena, a nosotros no nos vale (sin embargo, hay ciertos protocolos que si lo usan). 
Asociación dinámica (protocolos de resolución):

 ARP (Address Routing Protocol): 

 Sólo es posible aplicarlo si en la red hay broadcast
ARP
FIGURA II.81 ARP.

Notas:
Con el comando 'arp -a' podemos ver las tablas de nuestro host. Se observa además que si hago un ping, aparecen nuevas entradas.
Este método mantiene independientes las direcciones IP de direcciones de subred.
Se utiliza en FDDI, Token ring/bus, Ethernet, ATM, ... (todas las que tienen broadcast).
RARP (Reverse Address Routing Protocol): 

 Se usa para esquemas como el de la figura II.83. 
RARP
FIGURA II.83 Escenario RARP.
Cada vez que se enciende el PC, hay que traer el software del servidor. 
 

Problema: el PC no sabe nada de direcciones.
Ventajas:
OTROS
 

II.4.4.5 Subnetting
 
Subnetting
FIGURA II.84 Ejemplo de subnetting.
Introducción:
Solución:
La solución es precisamente el subnetting, gracias al cual puedo compartir un prefijo de red entre distintas subredes.
Subnetting
FIGURA II.85 Subnetting.
Ahora, como vemos en la figura inferior, nos dan 16 bits fijos, pero en los otros 16, la frontera entre lo que es subred y sistema la fijamos nosotros (p. ej. si divido en 8 bits y 8 bits puedo tener 256 segmentos y 256 sistemas por segmento). 

 Así puedo asignar un número de subred a cada subred y uno de sistema a cada sistema y el resto de internet me sigue viendo como 138.4. 

Ejemplo de tabla:
tabla con subnetting
FIGURA II.86 Tabla con subnetting.
Máscaras:
Me dice cuánto de la dirección que aparece en la tabla es significativo para encaminar (1: significativo 0: no).

255.255.255.0 => si los tres primeros bytes coinciden con los de mi dirección, uso esta entrada para encaminar ( 138.4.2.1 se encamina con la 1ª entrada). 
La máscara que se usa en la escuela es la siguiente: 
máscara de la escuela
FIGURA II.87 Máscara utilizada en la escuela.
Ejemplo:

 Con la máscara anterior y una dirección genérica IP 138.4.0.0, vamos analizar las distintas direcciones de subredes y sistemas que obtendremos: 
Ejemplo
FIGURA II.88 Ejemplo de máscaras.
NOTAS
El resto de la red no tiene por qué enterarse de que yo utilizo subnetting
Actualmente se tiende al Supernetting o CIDR (Classless Interdomain Routing), que sería la interpolación del concepto al resto de Internet.
 

Redes 2

Hosted by www.Geocities.ws

1