# Encaminamiento

El enrutamiento o ruteo es la función de buscar un camino entre todos los posibles en una red de paquetes cuyas topologías poseen una gran conectividad. Dado que se trata de encontrar la mejor ruta posible, lo primero será definir qué se entiende por "mejor ruta" y en consecuencia cuál es la "métrica" que se debe utilizar para medirla.
El enrutado en sentido estricto se refiere al enrutado IP y se opone al bridging. El enrutado asume que las direcciones de red están estructuradas y que direcciones similares implican proximidad dentro de la red. Las direcciones estructuradas permiten una sola entrada de tabla de rutas para representar la ruta a un grupo de dispositivos. En las redes grandes, el direccionamiento estructurado (enrutado en sentido estricto) supera al direccionamiento no estructurado (bridging). El enrutado se ha convertido en la forma dominante de direccionamiento en Internet. El bridging todavía se usa ampliamente en las redes de área local.

## Parámetros de red
### Métrica de la red

Puede ser, por ejemplo, el número de saltos necesarios para ir de un punto a otro. Aunque ésta no es una métrica óptima ya que supone “1” para todos los enlaces, es sencilla y suele ofrecer buenos resultados.

### Mejor ruta

Entendemos por mejor ruta aquella que cumple las siguientes condiciones:
* Consigue mantener acotado el retardo entre pares de nodos de la red.
* Consigue ofrecer altas cadencias efectivas independientemente del retardo medio de tránsito.
* Permite ofrecer el menor costo.
El criterio más sencillo es elegir el camino más corto, es decir la ruta que pasa por el menor número de nodos. Una generalización de este criterio es el de “coste mínimo”. En general, el concepto de distancia o coste de un canal es una medida de la calidad del enlace basado en la métrica que se haya definido. En la práctica se utilizan varias métricas simultáneamente.

## Encaminamiento en redes de circuitos virtuales y de datagramas

Cuando la red de conmutación de paquetes funciona en modo circuito virtual, generalmente la función de encaminamiento establece una ruta que no cambia durante el tiempo de vida de ese circuito virtual. En este caso el encaminamiento se decide por sesión.
Una red que funciona en modo datagrama no tiene el compromiso de garantizar la entrega ordenada de los paquetes, por lo que los nodos pueden cambiar el criterio de encaminamiento para cada paquete que ha de mandar. Cualquier cambio en la topología de la red tiene fácil solución en cuanto a encaminamiento se refiere, una vez que el algoritmo correspondiente haya descubierto el nuevo camino óptimo.

## Clasificación de los métodos de encaminamiento

Los algoritmos de encaminamiento pueden agruparse en:

### Deterministas o estáticos

No tienen en cuenta el estado de la subred al tomar las decisiones de encaminamiento. Las tablas de encaminamiento de los nodos se configuran de forma manual y permanecen inalterables hasta que no se vuelve a actuar sobre ellas. Por tanto, la adaptación en tiempo real a los cambios de las condiciones de la red es nula.
El cálculo de la ruta óptima es también fuera de línea (off-line) por lo que no importa ni la complejidad del algoritmo ni el tiempo requerido para su convergencia. Ej: algoritmo de Dijkstra.
Estos algoritmos son rígidos, rápidos y de diseño simple, sin embargo son los que peores decisiones toman en general...

### Adaptativos o dinámicos

Pueden hacer más tolerantes a cambios en la subred tales como variaciones en el tráfico, incremento del retardo o fallas en la topología. El encaminamiento dinámico o adaptativo se puede clasificar a su vez en tres categorías, dependiendo de donde se tomen las decisiones y del origen de la información intercambiada:
* Adaptativo centralizado: todos los nodos de la red son iguales excepto un nodo central que es quien recoge la información de control y los datos de los demás nodos para calcular con ellos la tabla de encaminamiento. Este método tiene el inconveniente de que consume abundantes recursos de la propia red.
* Adaptativo distribuido: este tipo de encaminamiento se caracteriza porque el algoritmo correspondiente se ejecuta por igual en todos los nodos de la subred. Cada nodo recalcula continuamente la tabla de encaminamiento a partir de dicha información y de la que contiene en su propia base de datos. A este tipo pertenecen dos de los más utilizados en Internet que son los algoritmos por vector de distancias y los de estado de enlace.
* Adaptativo aislado: se caracterizan por la sencillez del método que utilizan para adaptarse al estado cambiante de la red. Su respuesta a los cambios de tráfico o de topología se obtiene a partir de la información propia y local de cada nodo. Un caso típico es el encaminamiento “por inundación” cuyo mecanismo consiste en reenviar cada paquete recibido con destino a otros nodos, por todos los enlaces excepto por el que llegó.
| Tipos de Encaminamiento | Información de control | Decisión de encaminamiento | Adaptación a los cambios |
| deterministas ESTÁTICOS CUASIESTÁTICOS | NO NO | OFF-LINE OFF-LINE | NO REDUCIDA |
| Adaptativos CENTRALIZADO DISTRIBUIDO AISLADO | NODO CENTRAL ENTRE NODOS NO | NODO CENTRAL CADA NODO CADA NODO | SI SI SI |