13.07.2015 Views

Tema 4 – Algoritmos y protocolos de encaminamiento

Tema 4 – Algoritmos y protocolos de encaminamiento

Tema 4 – Algoritmos y protocolos de encaminamiento

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong><strong>Tema</strong> 4 <strong>–</strong> <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong><strong>encaminamiento</strong>Ramón Agüero Calvoramon.agueroc@unican.esRamón Agüero Calvo1


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Contenidos• Introducción• Teoría <strong>de</strong> grafos• <strong>Algoritmos</strong> <strong>de</strong> búsqueda <strong>de</strong> camino más corto• Otros algoritmos en grafos• Del algoritmo al protocoloRamón Agüero Calvo2


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Contenidos• Introducción• Teoría <strong>de</strong> grafos• <strong>Algoritmos</strong> <strong>de</strong> búsqueda <strong>de</strong> camino más corto• Otros algoritmos en grafos• Del algoritmo al protocoloRamón Agüero Calvo3


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Introducción al <strong>encaminamiento</strong> en re<strong>de</strong>s• Objetivo <strong>de</strong>l <strong>encaminamiento</strong>: Guiar la información entre los nodos origen y<strong>de</strong>stino• Funciones básicasForwarding o reenvío <strong>–</strong> un nodo (o router) <strong>de</strong>termina la interfaz por la quereenviar un paqueteRouting o <strong>encaminamiento</strong> <strong>–</strong> establecimiento <strong>de</strong> la ruta (camino) más apropiadaentre origen y <strong>de</strong>stino, actualizando las tablas <strong>de</strong> reenvío en los nodos• Retos y característicasNecesidad <strong>de</strong> mensajes <strong>de</strong> señalizaciónCoordinación entre los nodos que forman la redReacción ante fallos en la red robustezAdaptación a posibles cambios en las condiciones <strong>de</strong> los enlacesRamón Agüero Calvo4


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Elementos y clasificación• Métricas <strong>de</strong> rendimiento# <strong>de</strong> saltosCosteRetardoRendimiento (throughput)• Fuentes <strong>de</strong> informaciónLocalNodo contiguo (vecino)Nodos <strong>de</strong> la rutaTodos los nodos• DinamismoEstáticosDinámicos o adaptativos• Momento <strong>de</strong> la <strong>de</strong>cisiónPaquete (modo datagrama)Establecimiento sesión (modocircuito virtual)• Lugar <strong>de</strong> la <strong>de</strong>cisiónCada nodoNodo centralNodo origen/fuente• Actualización <strong>de</strong> la informaciónContinuoPeriódicoCambio en la cargaCambio topológicoRamón Agüero Calvo5


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Problemática <strong>de</strong>l <strong>encaminamiento</strong>S15u@DS215u@D1 324 5DS1 y S2 quieren enviar 5 unida<strong>de</strong>s a DCapacidad <strong>de</strong> los enlaces: 10 unida<strong>de</strong>s• Rutas <strong>de</strong> menor #saltos S1 2 D S2 2 D• Rutas con menor retardo S1 1 4 D S2 3 5 DS1 y S2 quieren enviar 5 y 15 unida<strong>de</strong>s a DCapacidad <strong>de</strong> los enlaces: 10 unida<strong>de</strong>s• S2 no pue<strong>de</strong> encaminar todo su tráfico por unúnico camino S2 3 5 D [7 unida<strong>de</strong>s] S2 2 D [8 unida<strong>de</strong>s]• En consecuencia, S1 no empleará la ruta <strong>de</strong>menor número <strong>de</strong> saltos S1 1 4 DRamón Agüero Calvo6


• Broadcasting (difusión)Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Tipos <strong>de</strong> <strong>encaminamiento</strong>Envío <strong>de</strong> información a todos los nodosInundación [flooding] Procedimiento sencillo Mucha sobrecarga, por transmisiones y recepciones innecesarias• Shortest Path (camino más corto)Una <strong>de</strong> las estrategias más empleadasSe minimiza el número <strong>de</strong> saltos entre origen y <strong>de</strong>stino De manera genérica se podría hablar <strong>de</strong> coste Establecimiento <strong>de</strong> alguna métrica• Encaminamiento óptimoEl camino más corto no siempre ofrece el mejor comportamientoOptimización matemática compleja• Hot potato (Patata caliente)Un nodo manda cada paquete por la interfaz menos cargadaSe <strong>de</strong>shace <strong>de</strong>l mismo lo antes posibleRamón Agüero Calvo7


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Contenidos• Introducción• Teoría <strong>de</strong> grafos• <strong>Algoritmos</strong> <strong>de</strong> búsqueda <strong>de</strong> camino más corto• Otros algoritmos en grafos• Del algoritmo al protocoloRamón Agüero Calvo8


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>¿Qué es un grafo?• Los grafos son una herramienta matemática que se emplea para formularproblemas <strong>de</strong> <strong>encaminamiento</strong>• Definición <strong>de</strong> un grafo G=(N, E)Conjunto <strong>de</strong> N nodosColección <strong>de</strong> E enlaces (edges) <strong>–</strong> cada enlace consta <strong>de</strong> un par <strong>de</strong> nodos <strong>de</strong> NRamón Agüero Calvo9


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Los grafos y el <strong>encaminamiento</strong>• Al trasladar un grafo a un problema <strong>de</strong> <strong>encaminamiento</strong>Los N nodos son los routers <strong>de</strong> la redLos E enlaces se correspon<strong>de</strong>n con los enlaces físicos entre ellosRamón Agüero Calvo10


• Tipos <strong>de</strong> grafosRe<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Conceptos básicos <strong>de</strong> grafosDirigidos: (u,v) ≠ (v,u)Los enlaces son pares dirigidos <strong>de</strong> nodosNo dirigidos: (u,v) →(v,u)No es necesario establecer un criterio <strong>de</strong> or<strong>de</strong>nación a los nodos en cada enlace• Concatenaciones <strong>de</strong> enlacesWalk (paseo): secuencia <strong>de</strong> nodos (n 1 ,n 2 ,…n l ) tal que cada pareja (n i‐1 ,n i ) es unenlace <strong>de</strong>l grafoPath (camino): es un walk en el que no hay nodos repetidosCycle (ciclo o bucle): camino con más <strong>de</strong> un enlace y en el que n 1 = n l• Grafo conectadoSe dice que un grafo está conectado si cualquier par <strong>de</strong> nodos está conectado porun camino• En algunas ocasiones pue<strong>de</strong> resultar interesante/necesario asignar costesc(u,v) a los enlacesRamón Agüero Calvo11


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Representación <strong>de</strong> grafos• Lista adyacenciaConsta <strong>de</strong> un array <strong>de</strong> N listas (unapor nodo <strong>de</strong> la red) con punteros acada nodo con el que tenga unenlaceMemoria necesariaVentajasEn un grafo dirigido la suma <strong>de</strong>punteros coinci<strong>de</strong> con |E|En un grafo no dirigido será 2 |E|Se pue<strong>de</strong>n asignar costes a losenlaces <strong>de</strong> manera sencillaRequiere una cantidad menor <strong>de</strong>memoria, apropiada para grafossin muchos enlaces (sparse)DesventajasEl proceso <strong>de</strong> búsqueda pue<strong>de</strong>ser lento• Matriz <strong>de</strong> adyacenciaMatriz A <strong>de</strong> dimensión N x N1 si (i, j) a ij 0 si (i, j) Con grafos no dirigidos, A essimétrica: A T = AEl tamaño <strong>de</strong> A es, para cualquierred, N 2VentajasLa búsqueda es muy rápidaSi no se necesitan costes, sepue<strong>de</strong> usar un sólo bit para cadaelemento <strong>de</strong> la matrizDesventajasSuele requerir mayor memoria, seusa en grafos más pequeñosSi se requieren costes, se necesitamayor capacidad por enlaceRamón Agüero Calvo12


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Representación <strong>de</strong> grafos• Lista <strong>de</strong> adyacencia1 → 2 → 3 → 42 → 1 → 3 → 43 → 1 → 2 → 4 → 54 → 1 → 2 → 3 → 5 → 65 → 3 → 4 → 66 → 4 → 5• Grafo no dirigidoEl número <strong>de</strong> enlaces en la lista <strong>de</strong>adyacencia es 2 |E|La matriz <strong>de</strong> adyacencia es simétrica• Matriz <strong>de</strong> adyacencia01 1 11 0 1 1 11 0 111 1 000 1 100 0 1001101000110Ramón Agüero Calvo13


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Representación <strong>de</strong> grafos• Lista <strong>de</strong> adyacencia1 → 2 → 3 → 42 → 3 → 43 → 2 → 4 → 54 → 5 → 65 → 66• Grafo dirigidoEl número <strong>de</strong> enlaces en la lista <strong>de</strong>adyacencia es |E|La matriz <strong>de</strong> adyacencia no es simétrica• Matriz <strong>de</strong> adyacencia000 000101000110000111000001100000110Ramón Agüero Calvo14


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Contenidos• Introducción• Teoría <strong>de</strong> grafos• <strong>Algoritmos</strong> <strong>de</strong> búsqueda <strong>de</strong> camino más corto• Otros algoritmos en grafos• Del algoritmo al protocoloRamón Agüero Calvo15


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Búsqueda <strong>de</strong>l camino más corto• La i<strong>de</strong>a principal es la <strong>de</strong> encontrar el camino con un coste mínimo entreuna fuente (S) y un <strong>de</strong>stino (D)• Si c(u,v) se mantiene constante para todos los enlaces, la solución es la ruta<strong>de</strong> menor número <strong>de</strong> saltos• <strong>Algoritmos</strong> con una única fuente: encuentran el camino más corto entre S yel resto <strong>de</strong> nodos Dijkstra Bellman-Ford• <strong>Algoritmos</strong> para toda la red: encuentran el camino más corto entre todas lasposibles parejas <strong>de</strong> nodos en la red Floyd-Warshall JohnsonRamón Agüero Calvo16


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Algoritmo <strong>de</strong> Dijkstra• Encuentra el camino <strong>de</strong> coste mínimo <strong>de</strong> una fuente S a todos los nodos enun grafo con costes NO NEGATIVOS• Definiciones previasCoste caminockpcu, u i1i1iCoste camino mínimoδ mincpu,v :pu vsi hay caminoentre u y ven caso contrarioRamón Agüero Calvo17


• VariablesRe<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Algoritmo <strong>de</strong> DijkstraConjunto <strong>de</strong> nodos Q para los que no se ha encontrado el camino más cortoSe mantiene una lista con las distancias a cada nodo d(u)• AlgoritmoSe busca en Q el nodo cuyo camino <strong>de</strong> coste mínimo sea el menoru se borra <strong>de</strong> QuN Q duδS,uSi Q es el conjunto vacío (Q=), se termina el algoritmoPara todos los nodos v <strong>de</strong> Q adyacentes a udduminv Qdvv mindv,ducu,vRamón Agüero Calvo18


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Algoritmo <strong>de</strong> DijkstraINITIALIZATION1. d(S) = 02. for all v in N but S3. d(v) = ∞4. Q = NMAIN LOOP5. while Q ≠ {Ø}6. u vertex in Q with min{d(v)}7. <strong>de</strong>lete u from Q8. for all v in Q adjacent to u9. if d(v) > d(u) + c(u,v)10. d(v) = d(u)+c(u,v)11. prev(v) = uRamón Agüero Calvo19


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Ejemplo algoritmo <strong>de</strong> DijkstraInicializaciónQ = {S, 1, 2, 3, 4}d = [0, ∞, ∞, ∞, ∞]Primera iteraciónQ = {1, 2, 3, 4}d = [0, 10, 5, ∞, ∞]Ramón Agüero Calvo20


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Ejemplo algoritmo <strong>de</strong> DijkstraSegunda iteraciónQ = {1, 3, 4}d = [0, 8, 5, 14, 7]Tercera iteraciónQ = {1, 3}d = [0, 8, 5, 13, 7]Ramón Agüero Calvo21


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Ejemplo algoritmo <strong>de</strong> DijkstraCuarta iteraciónQ = {3}d = [0, 8, 5, 9, 7]Quinta iteraciónQ = {Ø}d = [0, 8, 5, 9, 7]Ramón Agüero Calvo22


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Algoritmo <strong>de</strong> Bellman-Ford• Al igual que Dijkstra, encuentra el camino más corto <strong>de</strong> un nodo al resto• Pue<strong>de</strong> emplearse con re<strong>de</strong>s que tengan enlaces con coste negativo• Si hay un ciclo negativo en la fuente, Bellman-Ford lo <strong>de</strong>tectaEn este caso el camino <strong>de</strong> coste mínimo NO pue<strong>de</strong> solucionarse• VariablesUna lista con los costes <strong>de</strong> las rutas <strong>de</strong> S a cualquier nodo d(u)• AlgoritmoSe recorre el grafo N -1 veces y se aplica la ecuación <strong>de</strong> Bellman para losenlaces <strong>de</strong>l grafodv mindv,ducu,vRamón Agüero Calvo23


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Algoritmo <strong>de</strong> Bellman-FordINITIALIZATION1. d(S) = 02. for all v in N but S3. d(v) = ∞MAIN LOOP4. for k = 1 to N-15. for each (u,v) in E6. if d(v) > d(u) + c(u,v)7. d(v) = d(u)+c(u,v)8. prev(v) = uRamón Agüero Calvo24


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Ejemplo algoritmo <strong>de</strong> Bellman-FordInicializaciónd = [0, ∞, ∞, ∞, ∞]Primera iteraciónd = [0, 10, 5, ∞, ∞]Ramón Agüero Calvo25


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Ejemplo algoritmo <strong>de</strong> Bellman-FordSegunda iteraciónd = [0, 8, 5, 11, 7]Tercera iteraciónd = [0, 8, 5, 9, 7]Ramón Agüero Calvo26


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Algoritmo <strong>de</strong> Floyd Warshall• Se <strong>de</strong>fine d k [i,j] como el coste <strong>de</strong>l camino más corto entre i y j con lacondición <strong>de</strong> que use únicamente los nodos 1, 2, … k‐1 como nodosintermedios• Así, d N+1 [i,j] representa la distancia <strong>de</strong>l camino más corto entre i y j• El algoritmo <strong>de</strong> Floyd Warshall establece iterativamente d k [i,j] para todaslas parejas <strong>de</strong> nodos (i,j) para k = 1, 2, … N+1• A partir <strong>de</strong> d k [i,j], el algoritmo calcula d k+1 [i,j] a partir <strong>de</strong> la siguientepropiedaddk1 ik kjk k ki, j min d i, j ,d , d ,Ramón Agüero Calvo27


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Algoritmo <strong>de</strong> Floyd WarshallINITIALIZATION1. for all (u,v) in NxN2. d(u,v) = ∞3. pred(u,v) = NIL4. for all no<strong>de</strong>s u in N5. d(u,u) = 06. for each (u,v) in E7. d(u,v) = c(u,v)8. pred(u,v) = uMAIN LOOP9. for k = 1 to N10. for u = 1 to N11. for v = 1 to N12. if d(u,v) > d(u,k) + d(k,v)13. d(u,v) = d(u,k) + d(k,v)14. pred(u,v) = pred(k,v)Ramón Agüero Calvo28


29Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Ramón Agüero CalvoEjemplo algoritmo <strong>de</strong> Floyd Warshall 09204101800D nilnilnilnilnilnilnilnilnilnil4432110 032501241019802D nilnilnilnilnilnilnil241132121209250124101801Dnilnilnilnilnilnilnilnil441132111


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Ejemplo algoritmo <strong>de</strong> Floyd Warshall3D05 4780122910316503nil 3 3 31nil1422nil21 1 1 nil 4D05 473072410316504nil 3 3 34nil4422nil21 1 1 nil Ramón Agüero Calvo30


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Contenidos• Introducción• Teoría <strong>de</strong> grafos• <strong>Algoritmos</strong> <strong>de</strong> búsqueda <strong>de</strong> camino más corto• Otros algoritmos en grafos• Del algoritmo al protocoloRamón Agüero Calvo31


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Minimum Spanning Tree• Tree (árbol): es un grafo G, no dirigido, conectado y sin ciclos El número <strong>de</strong> enlaces es igual al número <strong>de</strong> nodos menos 1: |E| = |N| -1Cualquier par <strong>de</strong> nodos están unidos por un único caminoG está conectado, pero al eliminar cualquier enlace <strong>de</strong>jaría <strong>de</strong> estarloG no tiene ciclos, pero al añadir un enlace cualquiera aparecería un cicloNo es un árbol Sí es un árbol Sí es un árbol• Un Spanning Tree cubre (se expan<strong>de</strong> por) todos los nodos <strong>de</strong> un grafo QEntre los diferentes Spanning Tree <strong>de</strong> un grafo Q el Minimum Spanning Tree(MST) es aquel que tiene un menor costeRamón Agüero Calvo32


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Minimum Spanning Tree• Aplicaciones: el MST cubre todos los nodos <strong>de</strong> una redProcesos <strong>de</strong> difusión (broadcast) <strong>de</strong> información Un mensaje para ser enviado a todos los nodos <strong>de</strong> la redGran uso en Re<strong>de</strong>s <strong>de</strong> Área Local: bridges (IEEE 802.1D)• <strong>Algoritmos</strong> Se emplea para eliminar enlaces no necesariosKruksalPrimRamón Agüero Calvo33


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>MST: Algoritmo <strong>de</strong> Kruksal• Construye el MST incorporando paulatinamente enlaces que unan doscomponentes diferentes (dos subgrafos no conectados entre sí) Se pue<strong>de</strong> ver como un proceso <strong>de</strong> búsqueda <strong>de</strong> componentes conectados en unared• Va recorriendo los enlaces (u,v) <strong>de</strong> E en or<strong>de</strong>n creciente (por su coste)Aña<strong>de</strong> el enlace actual (u,v) a un subgrafo A si u y v pertenecen a árbolesdistintos• VariablesSiempre se aña<strong>de</strong> aquel que tenga un menor costeA: Conjunto <strong>de</strong> enlaces que forman el MSTL: lista con los enlaces <strong>de</strong> G, or<strong>de</strong>nados según su coste, en or<strong>de</strong>n creciente• Al recorrer todos los enlaces A contendrá el MST <strong>de</strong> GRamón Agüero Calvo34


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>MST: Algoritmo <strong>de</strong> KruksalINITIALIZATION1. A = {Ø}2. L = E3. sort(L)MAIN LOOP4. for all (u,v) in L (in or<strong>de</strong>r)5. if u & v belong to same tree6. discard (u,v)7. else8. A = A U (u,v)Ramón Agüero Calvo35


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>MST: Ejemplo algoritmo <strong>de</strong> KruksalGrafo original Iteración 1Iteración 2 Iteración 3Ramón Agüero Calvo36


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>MST: Ejemplo algoritmo <strong>de</strong> KruksalIteración 4 Iteración 52 8 3744291115414987 61061 7 3 8Iteración 6 Iteración 7Ramón Agüero Calvo37


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>MST: Ejemplo algoritmo <strong>de</strong> KruksalIteración 8 Iteración 9Iteración 10 Iteración 11Ramón Agüero Calvo38


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>MST: Ejemplo algoritmo <strong>de</strong> KruksalIteración 12 Iteración 13Iteración 14Ramón Agüero Calvo39


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>MST: Algoritmo <strong>de</strong> Prim• Opera <strong>de</strong> manera similar al algoritmo <strong>de</strong> Dijkstra• Comienza con un nodo arbitrario (R), al que paulatinamente se aña<strong>de</strong>nenlaces, hasta que se cubren todos los nodos• VariablesConjunto <strong>de</strong> nodos Q que quedan por incorporar al MSTSe mantiene una lista con el ‘peso’ <strong>de</strong> cada nodoRamón Agüero Calvo40


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>MST: Algoritmo <strong>de</strong> PrimINITIALIZATION1. Q = N; Randomly select R2. k(R) = 03. for all v in N but R4. k(v) = ∞MAIN LOOP5. while Q ≠ {Ø}6. u vertex in Q with min{k(v)}7. <strong>de</strong>lete u from Q8. for all v adjacent to u AND v in Q9. if k(v) > c(u,v)10. k(v) = c(u,v)11. prev(v) = uRamón Agüero Calvo41


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>MST: Ejemplo algoritmo <strong>de</strong> PrimGrafo originalIteración 1Q = {2,3,4,5,6,7,8,9}k = {0,4,∞,∞,∞,8,∞,∞,∞}82 3744291115414987 61061 7 3 8Iteración 2Q = {3,4,5,6,7,8,9}k = {0, 4,8,∞,∞,8,∞,∞,∞}Iteración 3Q = {4,5,6,7,8,9}k = {0, 4,8,7,2,8,∞,4,∞}Ramón Agüero Calvo42


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>MST: Ejemplo algoritmo <strong>de</strong> Prim82 3744291115414987 61061 7 3 8Iteración 4Q = {4,6,7,8,9}k = {0,4,8,7,2,7,6,4,∞}Iteración 5Q = {4,6,7,9}k = {0,4,8,7,2,7,3,4,10}82 3744291115414987 61061 37 8Iteración 6Q = {4,6,9}k = {0,4,8,7,2,1,3,4,10}Iteración 7Q = {4,9}k = {0,4,8,7,2,1,3,4,10}Ramón Agüero Calvo43


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>MST: Ejemplo algoritmo <strong>de</strong> PrimIteración 8Q = {9}k = {0,4,8,7,2,1,3,4,9}Iteración 9Q = {Ø}k = {0,4,8,7,2,1,3,4,9}Ramón Agüero Calvo44


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Problema <strong>de</strong> máximo flujo• Se trata <strong>de</strong> maximizar el flujo que se pue<strong>de</strong> “enviar” entre S y D• Cada enlace tiene una capacidad p(u,v) NO NEGATIVA• Por un enlace (u,v) se tiene un flujo f(u,v) • Conservación <strong>de</strong> flujo• Simetría fu,v‐f v,ufu,v S,Du,v 0fu,v pu,vRamón Agüero Calvo45


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Problema <strong>de</strong> máximo flujo10,1010,1010,101101101Flujo = 10Flujo = 11 Flujo = 12(No es obvio)Ramón Agüero Calvo46


• Red residualRe<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Máximo flujo: conceptos previosEnlaces que pue<strong>de</strong>n admitir más flujo• Capacidad residualLa capacidad que queda disponible en un enlace• Augmenting Pathu,v pu,v‐f u,vEs un camino entre S y D en el grafo con capacida<strong>de</strong>s residualesLa red residual pue<strong>de</strong> tener enlaces nuevosSu capacidad residual es la menor <strong>de</strong> sus enlacesp fRamón Agüero Calvo47


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Máximo flujo: Algoritmo Ford-Fulkerson• El algoritmo Ford-Fulkerson resuelve el problema <strong>de</strong>l máximo flujo• En cada iteraciónEncuentra un augmenting path PIncrementa el flujo entre S y D con la capacidad residual <strong>de</strong> PRamón Agüero Calvo48


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Máximo flujo: Algoritmo Ford-FulkersonINITIALIZATION1. for all (u,v) in E2. f(u,v) = 03. f(v,u) = 0MAIN LOOP4. while there exists a path p from Sto D in the residual network Gf5. cf(p) = min{cf(u,v):(u,v) in p}6. for each (u,v) in p7. f(u,v) = f(u,v) + cf(p)8. f(v,u) = -f(u,v)Ramón Agüero Calvo49


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Ejemplo algoritmo Ford-FulkersonP = {(S,1) (1,2) (2,3) (3,4) (4,D)}cf(P) = 4Flujo = 4P = {(S,1) (1,3) (3,4) (4,2) (2,D)}cf(P) = 7Flujo = 11Ramón Agüero Calvo50


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Ejemplo algoritmo Ford-FulkersonP = {(S,3) (3,1) (1,2) (2,D)}cf(P) = 8121 25113S 541158331174P = {(S,3) (3,2) (2,D)}cf(P) = 45154DFlujo = 19Flujo = 23Ramón Agüero Calvo51


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Ejemplo algoritmo Ford-Fulkerson• Como ya no existe un “augmenting path” en la red residual el algoritmo seda por finalizado• La eficiencia <strong>de</strong>l algoritmo <strong>de</strong>pen<strong>de</strong> <strong>de</strong> la manera en la que se “busca” elaugmenting path en cada iteraciónPodría incluso no convergerFlujo = 23Ramón Agüero Calvo52


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Contenidos• Introducción• Teoría <strong>de</strong> grafos• <strong>Algoritmos</strong> <strong>de</strong> búsqueda <strong>de</strong> camino más corto• Otros algoritmos en grafos• Del algoritmo al protocoloRamón Agüero Calvo53


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Encaminamiento en re<strong>de</strong>s• Los nodos (routers) toman <strong>de</strong>cisiones en base a cierta información• Es necesario disponer <strong>de</strong> un protocolo <strong>de</strong> señalizaciónProporciona un método para transportar dicha información por la red• Protocolos <strong>de</strong> <strong>encaminamiento</strong>Vector distancia (Distance vector, DV) <strong>–</strong> usado en la 1ª generación ARPANETEstado <strong>de</strong>l enlace (Link state, LS) <strong>–</strong> usado en la 2ª generación ARPANET• Jerarquía en la redEscalabilidadAutonomía administración <strong>de</strong> la redSistemas Autónomos (Autonomous Systems, AS)Encaminamiento Intra-AS: <strong>de</strong>ntro <strong>de</strong> un AS Inter-AS: entre varios ASRamón Agüero Calvo54


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Encaminamiento vector distancia• Se basa en el algoritmo <strong>de</strong> Bellman-Ford• Cada nodo <strong>de</strong> la red mantiene una tabla: una entrada por cada uno <strong>de</strong>lresto <strong>de</strong> nodos Distancia: “métrica o coste” <strong>de</strong>l camino hacia dicho nodo Interfaz <strong>de</strong> salida necesaria para alcanzarle• Periódicamente cada nodo intercambia la información <strong>de</strong> la tabla con susvecinos• ProblemasConvergencia lentaPropagación rápida <strong>de</strong> “buenas noticias” y lenta <strong>de</strong> las “malas”Count-to-infinity• Protocolo RIP (Routing Information Protocol) Definido en los RFC 1058 y 2453 (RIP Version 2)Es un protocolo Intra-AS que, a pesar <strong>de</strong> que se sigue empleando, es obsoletoRamón Agüero Calvo55


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>DV: Count-to-infinity• El enlace XY cambia a 1• El enlace XY cambia a 60[t0] Y <strong>de</strong>tecta el cambio[t1] Z modifica su tabla[t2] Y recibe la actualización <strong>de</strong> Z, perono necesita hacer ningún cambioD Y (X) D Z (X)t0 1 5t1 1 2t2 1 2[t0] Y <strong>de</strong>tecta el cambio, pero actualiza a6 (cree que pue<strong>de</strong> ir a través <strong>de</strong> Z) [t1] Z modifica su tabla a 7 (6+1)[t2] Y recibe la actualización <strong>de</strong> Z, ycambia su información a 8…Son necesarias 44 iteracionesD Y (X) D Z (X)t0 6 5t1 6 7t2 8 7t3 8 9Ramón Agüero Calvo56


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Encaminamiento estado <strong>de</strong> enlace• Sustituye paulatinamente a DV a partir <strong>de</strong> 1980• Se pue<strong>de</strong>n establecer cinco elementos diferenciadosDescubrimiento <strong>de</strong> vecinos: uso <strong>de</strong> paquetes HELLOEstimación <strong>de</strong>l coste con los vecinos Por ejemplo, en base al retardo con cada uno <strong>de</strong> ellos: paquetes ECHOConstrucción <strong>de</strong> un paquete con la información correspondiente ¿Cuándo se tiene que construir dicho paquete?Envío <strong>de</strong>l paquete al resto <strong>de</strong> nodos (routers) Difusión [broadcast] <strong>de</strong> información: inundaciónCálculo <strong>de</strong> la ruta Uso <strong>de</strong>l algoritmo <strong>de</strong> Dijkstra <strong>–</strong> necesidad <strong>de</strong> disponer <strong>de</strong> información globalRamón Agüero Calvo57


• DesventajasRe<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Encaminamiento estado <strong>de</strong> enlaceNecesidad <strong>de</strong> información globalEnvío <strong>de</strong> un número mayor <strong>de</strong> mensajes: SOBRECARGA Un evento <strong>de</strong> “cambio” en la topología <strong>de</strong> la red se tiene que notificar a todos los nodos• Protocolo OSPF (Open Shortest Path First) Está <strong>de</strong>finido (en su segunda versión) en el RFC 2328Es un protocolo Intra-ASRamón Agüero Calvo58


Re<strong>de</strong>s Telefónicas <strong>–</strong> <strong>Tema</strong> 4: <strong>Algoritmos</strong> y <strong>protocolos</strong> <strong>de</strong> <strong>encaminamiento</strong>Encaminamiento jerárquico• Los sistemas autónomos se comunican entre ellos a través <strong>de</strong> nodos<strong>de</strong>nominados GatewayUn AS pue<strong>de</strong> tener más <strong>de</strong> un Gateway• Actualmente el <strong>encaminamiento</strong> entre AS es soportado por el protocoloBGP (Bor<strong>de</strong>r Gateway Protocol) Está <strong>de</strong>finido (en su versión 4) en el RFC 4271 Es el protocolo <strong>de</strong> <strong>encaminamiento</strong> en el core <strong>de</strong> Internet, y es utilizado por losproveedores <strong>de</strong> servicios (ISP)• Funcionamiento básico <strong>de</strong> BGPSe basa en un <strong>encaminamiento</strong> basado en el estado <strong>de</strong>l camino (path state)Cada Gateway obtiene la “alcanzabilidad” <strong>de</strong> los AS vecinosPropaga dicha información a los routers <strong>de</strong> su ASDetermina las rutas “óptimas” en función <strong>de</strong> la información adquirida y <strong>de</strong> laspolíticas y reglas establecidasRamón Agüero Calvo59

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!