Internet 5 : Network Layer, partie 2

¡Hola a todos! Como probablemente todos saben, sus datos enviados a través de Internet se transmiten a través de una secuencia de enrutadores. Pero, ¿cómo podemos calcular las mejores rutas entre estos diferentes enrutadores? Es una de las funcionalidades de la capa de red que veremos en este video: el enrutamiento. Dado que este ya es el quinto video de este módulo, hay muchos requisitos previos para poder comprender, debe tener algunos conceptos básicos sobre redes, para saber cuáles son las diferentes capas, también necesita saber qué es un algoritmo. Si ese no es el caso, puede ver los primeros 4 videos de este módulo, así como los primeros 2 videos del módulo sobre algoritmos. En el último vídeo hemos visto como el protocolo IP utiliza tablas de reenvío para enviar datagramas. ahora veremos como podemos llenar estas tablas de reenvío, cada router debe saber mirando la dirección IP de destino donde enviar este datagrama.

Podríamos imaginar un solo protocolo enorme en el que cada enrutador conozca la ruta más corta entre sí en Internet. como puedes imaginar, esto no es escalable. Debe haber millones de enrutadores en Internet , además, sabes desde el primer video que Internet no pertenece a nadie. Internet se divide en subconjuntos propiedad de los ISP, por lo que tendríamos que hacer que todos los ISP estén de acuerdo con este único protocolo común. Entonces Internet se divide en subconjuntos de enrutadores.

Un conjunto de enrutadores controlados por un ISP se denomina sistema autónomo (AS) dentro de este AS, el ISP decidirá cómo se calcularán las rutas más cortas entre los enrutadores. esto es lo que llamamos enrutamiento intra-AS. por lo que cuando estás conectado a Internet, estás en un AS controlado por un ISP. si el destino al que desea enviar un datagrama está en el mismo AS, los enrutadores del AS conocerán la ruta más corta entre usted y el destino. Pero si el destino está en otro AS, los enrutadores no sabrán la ruta al destino. por lo que necesitamos un protocolo para calcular la ruta más corta entre 2 AS diferentes, esto es lo que llamamos enrutamiento entre AS. Comenzaremos viendo 2 protocolos diferentes para hacer enrutamiento intra-AS, luego veremos cómo hacer enrutamiento entre AS. hay muchos protocolos diferentes para hacer el enrutamiento intra-AS, esto es lo que se pretendía ya que cada ISP debe poder elegir cómo quiere hacer el enrutamiento intra-AS.

Sin embargo, aún podemos dividir los protocolos en 2 categorías: estado de enlace y vector de distancia. Los protocolos de estado de enlace calculan las rutas más cortas solo una vez que tenemos toda la información necesaria en un solo lugar. los enrutadores necesitan conocer todos los demás enrutadores en el AS, todos los enlaces y todo el tiempo empleado en cada enlace. una vez que tenemos toda esa información a nuestra disposición, podemos realizar el cómputo. por otro lado, los protocolos de vector de distancia realizan el cálculo de forma descentralizada.

Por lo que cada enrutador conoce a sus vecinos, el tiempo que tarda en ir a cada vecino, pero ningún enrutador conoce toda la red, cada enrutador participará en el cálculo y traerá su información ahora hablaremos sobre un protocolo de estado de enlace ampliamente utilizado: OSPF en este protocolo, cada enrutador enviará su información a los otros enrutadores hasta que en algún momento todos los enrutadores en el AS conozcan toda la red. cada router tendrá un mapa de la red con todos los routers, enlaces y tiempos. llamamos a este mapa un gráfico. Una vez que todos los enrutadores tienen este gráfico, pueden hacer el cálculo.

Calcularán todas las rutas más cortas entre todos los enrutadores en el AS. como hacer este calculo? Usamos el algoritmo de Dijkstra. No lo detallaré aquí, pero si quieres saber más al respecto puedes ver el segundo video del módulo sobre algoritmos. ahora veremos un protocolo de vector de distancia ampliamente utilizado: RIP. utiliza el algoritmo bellman-ford. Ahora veremos con un ejemplo cómo funciona. cada enrutador tiene una lista de distancias a todos los demás enrutadores que llamamos vector de distancia. en este ejemplo puedes ver 4 routers A,B,C y D y cada uno tiene un vector de distancia. para cada uno de estos vectores, la primera componente representa la distancia hasta el nodo A, la segunda representa la distancia hasta el nodo B y así sucesivamente.

Por ejemplo, si observa el vector A, puede ver que el primer componente es 0, ya que la distancia de A a A es 0. Luego, el segundo componente es 2, ya que la distancia entre A y B es 2. en la última posición puede ver un signo de interrogación para D, porque la distancia a D aún no se conoce ya que D no es vecino de A. cada enrutador enviará su vector a su vecino. Al recibir un vector de un vecino, el enrutador actualizará su vector y para cada uno de los componentes tomará el mínimo del número más la distancia a ese vecino. A recibe los vectores de B y C, y por ejemplo para el 3er componente de los vectores: B envió un 1 y C un 0. A ahora calculará 2 nuevos componentes: para B se necesita 1 más la distancia a B que es 2 y para C, A toma 0 más la distancia a C que es 7. A tiene ahora 2 distancias: cf pantalla A toma el mínimo (3) y actualiza el componente de su vector con este valor. Mediante el mismo procedimiento, los 4 enrutadores actualizarán sus vectores.

Luego volverán a enviar sus vectores a sus vecinos, volverán a actualizar sus vectores y, por tercera vez, enviarán sus vectores y los actualizarán. esta vez notamos que los vectores no han cambiado según el algoritmo, si los routers no han modificado sus vectores, no hacen nada. ahora tenemos un sistema estable. No pasará nada hasta que uno de los tiempos de viaje cambie. ahora podemos tener la siguiente configuración: un sistema autónomo AS1 que usa OSPF para calcular las rutas más cortas entre enrutadores. U1 y U2 son 2 usuarios en el AS1 y pueden comunicarse ya que los enrutadores conocen la ruta más corta entre ellos. y junto a él tenemos otro sistema autónomo AS2 que utiliza RIP para calcular los caminos más cortos.

Y 2 usuarios U3 y U4 dentro de AS2 pueden comunicarse gracias a RIP. los 2 AS están conectados por 2 enlaces pero son administrados por diferentes ISP. U1 no podrá comunicarse con U3 porque los enrutadores en AS1 no conocen las rutas a los enrutadores en AS2. Entonces necesitamos un protocolo global para calcular las rutas más cortas entre los 2 AS. eso es lo que llamamos enrutamiento inter-AS. para eso usamos un único protocolo en todo Internet: BGP es un protocolo muy complejo, probablemente el más complicado de Internet, así que lo presentaré muy brevemente para que cada AS en Internet tenga un identificador único. contiene muchos enrutadores y la mayoría de ellos están 'dentro', lo que significa que no tienen conexión con otro AS.

Pero tenemos algunos enrutadores en los 'bordes' que tienen enlaces a enrutadores en otros AS. estos enrutadores solo implementarán BGP. Se llaman altavoces BGP. más precisamente, utilizarán BGP externo para anunciar a qué AS se puede acceder a través de ellos. en este ejemplo tenemos 3 ASs. El hablante S1 usará eBGP para decirle al hablante S2: "Soy un hablante de AS1, por lo que puedo transmitir datagramas a cualquier persona en AS1". S2 ahora sabe que puede enviar datagramas a destinos dentro de AS1 a través de S1. Ahora usará BGP interno para contar las noticias a otros oradores en el AS, aquí solo S3. S3 ahora sabe que puede enviar datagramas a destinos dentro de AS1 a través de S2. S3 puede decirle al hablante S4 dentro de AS3: "Soy el hablante de AS2 y también sé cómo llegar a AS1". S4 ahora sabe que si quiere enviar un datagrama a un destino en AS1 o AS2, puede enviar a S3.

Aquí he simplificado mucho. Normalmente no usamos números AS sino prefijos de direcciones IP. Luego, las rutas aprendidas por BGP deben redistribuirse en el protocolo de enrutamiento del AS (RIP u OSPF). También debe saber que estos anuncios de ruta contienen muchos atributos y métricas para determinar qué tan buena es la ruta. Dependiendo de eso, los hablantes pueden aceptar o rechazar nuevas rutas. También pueden elegir si quieren enviar las rutas que conocen a otros hablantes. En nuestro caso, puede que la empresa que controla AS2 no tenga interés en enrutar el tráfico procedente de AS3. Entonces, tal vez S3 no transmita la información a S4.

Esto se llama 'enrutamiento de políticas' y ya no se refiere a la ingeniería. tiene más que ver con la economía y la política entre diferentes empresas poderosas. Ese es el final de este video! Ahora sabe un poco cómo funciona el enrutamiento en Internet. Tuve que simplificar mucho, incluso más de lo habitual. Así que no dudes en decir en la sección de comentarios si quieres más detalles. Gracias a la capa de red, ahora sabemos cómo enviar un datagrama entre 2 puntos cualesquiera de la red. pero asumimos que sabíamos cómo comunicarnos en cada enlace entre 2 enrutadores. Pero no es algo baladí. ¿Funciona diferente la comunicación si es por cable o por ondas electromagnéticas? si es un módem WiFi, una antena 3G o incluso un satélite? Además, si 2 usuarios intentan conectarse a la misma estación WiFi, ¿sus ondas no colisionarán entre sí? Todas estas preguntas serán respondidas por la capa subyacente: la capa de enlace.

Este será el tema de nuestro próximo video. ¡Nos vemos pronto!.