Laboratorio de Redes y Servicios

Enviado por Javi y clasificado en Informática

Escrito el en español con un tamaño de 14,01 KB

ICMP (Internet Control Message Protocol)

Protocolo encargado de informar, a nivel IP, de distintas situaciones, tales como errores, rutas inalcanzables, problemas, etc.

Cada mensaje ICMP incluye un campo de Tipo de mensaje, Código del tipo, Checksum, cabecera IP que causó el error e información especial según el tipo de mensaje.

Uso:

Ping: permite comprobar la conectividad a nivel IP entre dos host, asegurando con su funcionamiento que el software y la ruta de red son correctas. En su campo datos, incluyen un identificador y un número de secuencia para asociar consultas y respuestas.

Destino inalcanzable: un router que no sabe como encaminar un datagrama, responde con un mensaje ICMP a la fuente informando de dicho error.

Disminución de fuente: un router que se congestiona envía este mensaje ICMP cuando empieza a descartar datagramas.

TTL Excedido: cuando un router recibe un datagrama cuyo valor TTL pasa a ser cero, lo descarta y envía un mensaje ICMP al origen.

Traceroute: aplicación que muestra las rutas que atraviesa un datagrama IP. Está basada en mensajes UDP cuyo TTL es bajo, y se encarga de capturar los mensajes ICMP respuesta de TTL excedido para mostrar los saltos de ruta de dicho datagrama.

Tiempo de fragmentación excedido, Sincronización de relojes, Obtención de la máscara de subred, etc.

UDP (User Datagram Protocol)

UDP es un protocolo que se sitúa en la capa de transporte, justamente un nivel superior de la capa IP. Las aplicaciones usan los protocolos de transporte para comunicarse a través de una red IP.

El protocolo UDP permite identificar una aplicación mediante el par (IPDestino, Puerto). Es un protocolo no orientado a conexión y no confiable (incluye control de errores aunque no solicita retransmisión, ni asegura el orden de llegada de los paquetes).

Los puertos se pueden clasificar en:

  • Conocidos: del 0 al 1023, empleados por protocolos famosos como FTP o HTTP.
  • Registrados: del 1024 al 49151, usados por aplicaciones ordinarias.
  • Dinámicos o privados: Sin recomendaciones por la IANA.

TCP (Transmission Control Protocol)

TCP es un protocolo de transporte, el más complejo  y usado de toda la pila TCP/IP.

Es un protocolo orientado a conexión, que soporta comunicación bidireccional, asegura el orden en la entrega de los datos, incluye control de flujo para evitar colapsos de tráfico, control de congestión (reduce el tráfico en caso de congestión en la red, y luego lo recupera cuando todo vuelve a su estado normal).

Cada conexión TCP se identifica por (IPOrigen, Puerto origen, IPDestino, Puerto destino).

Fases de establecimiento de la conexión (mediante 3-WHS):

  1. A? B: Inicio de conexión, el mensaje incluye el Flag SYN activado (indica que es el primer segmento que envía), el campo SN (Sequence Number) y el valor de MSS (Maximum Segment Size), el tamaño máximo de segmento dispuesto a recibir.
  2. B? A: Envía un mensaje con el flag SYN activado, el flag ACK también (indica que en el campo ACK incluye el valor del próximo byte que espera recibir, en este caso, el SNA+1), el campo SN y el MSS que acepta.
  3. A? B: Flag ACK activado (indica que en el campo ACK se incluye el valor del próximo byte de B que espera recibir, SNB+1).

Durante el cierre, cada uno de los extremos envía un mensaje con el flag FIN activado, y el otro debe responderle con un ACK del byte que espera recibir. Por tanto, para cerrar la conexión se necesitan 4 mensajes.

Campo MSS: Es el tamaño máximo del campo de datos que podrá mandar TCP, adecuado de manera que se eviten fragmentaciones a nivel IP y aprovechando el radio cabecera/datos.

Ventana deslizante: Es el mecanismo que incorpora TCP para promocionar control de errores, flujo y congestión.

Extensiones al direccionamiento

Proxy ARP: El objetivo es compartir una misma dirección de red entre varias redes físicas distintas. Para ello, el router frontera entre las redes debe conocer  las IPs de las interfaces en cada una de sus salidas, y responder las peticiones ARP que se generen desde un lado de la red y estén dirigidas hacia el otro lado.

PPP anónimo: consiste en no asignar direcciones IP a los extremos de las redes punto a punto, para ahorrar en direccionamiento. Cuando uno de los dispositivos tenga que generar tráfico, que utilice la IP de otra interfaz conectada a otra red.

Subredes de tamaño fijo: consiste en dividir la sección de host de una dirección de red en dos partes, una para identificar la subred y la otra para identificar el host.

Subredes de tamaño variable: misma metodología, pero en este caso, cada una de las partes puede cambiar de tamaño para adecuarse mejor al número de subredes o de host por subred.

Direccionamiento no basado en clase: Elimina la limitación de usar clases, permitiendo prefijos distintos de 8, 16 y 24 bits. Así, se pueden asignar rangos de direcciones a organizaciones, y que éstas se encarguen de repartirlo.

Al emplear esta técnica, también se usa longest-prefix-match que indica que, ante varios posibles caminos de una ruta, se use la que posea prefijo más largo.

Algoritmos de encaminamiento

Existen tres tipos de algoritmos capaces de generar tablas de encaminamiento de forma dinámica:

  • Centralizados: un nodo de la red es el encargado de recibir la información de sus enlaces por parte de todos los nodos de la red, y a partir de ahí, calcular las tablas de encaminamiento de cada uno de ellos.
  • Aislados: las decisiones se toman de manera autónoma. Por ejemplo, enviar cada paquete recibido por todas las salidas menos la de entrada, o enviarlo por una salida aleatoria.
  • Distribuidos: carecen de autoridad central que decida las tablas de encaminamiento. Son los usados en redes IP. Son de dos tipos: vector-distancia y enlace-estado.

Algoritmos de vector-distancia

Cada nodo almacena una tabla con los valores: RedDestino, Gateway, Distancia. Esta tabla se comparte entre nodos vecinos, y éstos calculan mediante dichas tablas las rutas más rápidas para llegar a los destinos.

Ventajas:

  • Sencillez
  • Número de mensajes pequeño.

Desventajas:

  • Convergencia lenta.
  • El tamaño de los mensajes crece si aumenta el número de redes.

RIP (Routing Information Protocol)

RIP es un algoritmo de tipo vector-distancia, cuya métrica para calcular distancias es el número de saltos hasta destino. La distancia es 1 para redes directamente conectadas, y 16 para redes sin conectividad.

RIP se baja en el envío de mensajes Request, que solicitan a un router vecino el envío de su información de las redes disponibles, y Response, que envía a otro router la información disponible. Cada mensaje puede tener como máximo 25 rutas, en caso de necesitarme más se enviaría otro mensaje.

Cuando se recibe un mensaje Response, se actúa de la siguiente manera:

  • Si la ruta es nueva, se añade a la tabla de encaminamiento, con GW el router vecino que envió dicha ruta.
  • Si no,
    • Si el mensaje Response viene del GW por donde llego a la IPred destino, actualizo la entrada.
    • Si el número de saltos indica una ruta más corta, aprendo la nueva entrada.
    • Si no, descarto la ruta.

Para evitar problemas asociados al protocolo RIP, se emplean diversas técnicas:

  • Split Horizon: consiste en no informar a un router vecino sobre las rutas aprendidas desde él mismo.
  • Temporizador de Hold Down: cuando una red se vuelve innacesible, se lanza un temporizador para evitar que se actualice dicho campo hasta que el vecino que nos informó nos diga que está de nuevo accesible.

Algoritmos enlace-estado

Cada nodo envía a todos los nodos de la red un mensaje sobre la distancia a sus vecinos.

Pasos del algoritmo:

  1. Descubrir los nodos vecinos.
  2. Calcular la distancia hacia ellos (valor cte., tiempo de RTT, velocidad del enlace, etc.)
  3. Crear el paquete de estado de enlaces (LSP), que incluya el identificador único del Router, un número de secuencia y un valor de TTL.
  4. Difundir el mensaje LSP, cada Router que lo reciba también lo retransmitirá (sólo si su SN es mayor que el que tenía para ese identificador).
  5. Recibir el resto de paquetes LSP y crear grafo para calcular el camino más corto, mediante el algoritmo de Dijkstra.

Ventajas:

  • Convergen más rápido ante cambios en la topología.
  • Robustez.
  • Los mensajes son cortos.

Desventajas:

  • Requieren almacenamiento de los LSP de todos los nodos.
  • Requiere broadcast a todos los nodos de la red.

OSPF (Open Shortest Path First)

El algoritmo OSPF es un algoritmo de encaminamiento dinámico, basado en enlace-estado, y que utiliza el algoritmo de Dijkstra para el cálculo de las tablas de enrutado. Es un algoritmo muy utilizado en Internet, y que soporta balanceo de carga y autenticación.

Sistemas autónomos

Son los usados hoy en día en Internet. Consiste en separar conjuntos de redes, de grandes empresas o instituciones, de manera que se administren internamente mediante protocolos como RIP u OSPF, y usando un router de frontera, que se encargue de informar a los routers de la organización interna de cómo acceder al resto de sistemas autónomos, usando protocolos como BGP-4 (Border Gateway Protocol).


Mecanismos de traducción de direcciones

NAT (Network Address Translation)

NAT es un conjunto de procedimientos que permite traducir direcciones IP. Se puede usar, por ejemplo, para separar mediante un único router una red con direccionamiento privado de Internet, o en un ISP para asignar IPs a sus clientes.

NAT estático: la traducción de las IPs se hace a través de una tabla estática IpInterna / IpExterna

NAT por puertos (NAPT): permite la traducción de direcciones usando los puertos de los protocolos UDP y TCP. Para ello, el router frontera utiliza una tabla con los valores (IPOrigen, PuertoInicial, PuertoNAPT), que usa cada vez que recibe un paquete para comprobar si es de NAT o no.

Ventajas:

  • Transparente a la red externa e interna.
  • Permite reaprovechar IPs.

Desventajas:

  • El iniciador de la conexión debe de ser un nodo de la red interna. Esto se puede remediar con la tabla de puertos visibles (asocia un puerto de una IP interna con un puerto de la IP externa), y con la tabla de subredes visibles (deshabilita NAPT para ciertas IPs de red).
  • Es un proceso costoso, que requiere actualización de Checksums y campo de datos, temporizadores, recogida de fragmentos de TCP, etc.


Protocolo PPP (Point to Point Protocol)

Una red punto a punto es aquella que interconecta dos y sólo dos dispositivos IP. Ante la diversidad de crear un protocolo válido sobre las distintas capas físicas existentes, surgieron varios protocolos.

SLIP (Serial Line Internet Protocol)

Es un protocolo sencillo, que añade un carácter END para delimitar los datos transmitidos, y escapa dicho carácter si lo encuentra en la zona de datos. No incluye detección de errores.

PPP (Point to Point Protocol)

El protocolo PPP es un protocolo más avanzado que SLIP, que proporciona un servicio orientado a conexión, entramado de paquetes, transparencia de datos, multiplexación de distintos protocolos de nivel de red, detección de errores (no corrección), control de calidad, autenticación, compresión de datos y negociación de direcciones.


Una comunicación mediante PPP incluye varias tareas, como establecimiento de parámetros del enlace, autenticación (opcional), configuración de parámetros a nivel de red, intercambio de datagramas, y cierre de conexión.

PPP distribuye parte de sus funcionalidades en otros protocolos, tales como:

LCP (Link Control Protocol): encargado de configurar el enlace físico, máximo tamaño de datagrama, protocolo usado para autenticar, protocolo de control de calidad, etc. También se proporcionar transparencia, escapando los caracteres de control dentro del campo de datos.

PAP (Password Authentication Protocol): protocolo básico de autenticación, los datos de login y password se envían como texto claro y debe ser aceptados por el extremo remoto.

CHAP (Challenge-Handshake Authentication Protocol): utiliza una función hash para codificar la contraseña, junto al número de secuencia y un texto aleatorio generador por el servidor. Este texto codificado se envía al servidor, que lo compara con el que tiene él y decide si la autenticación es correcta o no.

IPCP (IP Control Protocol): permite configurar la compresión a nivel IP, las direcciones de los extremos remotos, etc.

Entradas relacionadas: