scieee AI-readable full text Open interactive document viewer

Mejorando la calidad de servicio en SDN mediante el ajuste dinámico del idle timeout con Deep Reinforcement Learning

Jiménez-Lázaro, Manuel; Berrocal, Javier; Galán-Jiménez, Jaime

Abstract

Las memorias TCAM (Ternary contentaddressablememory) de las tablas de flujo delos nodos SDN (Software Defined Networking)son muy r´apidas y permiten realizar b´usquedas enparalelo en muy poco tiempo. Sin embargo, presentanun alto consumo de energ´ıa y un elevado coste, loque hace que su tama˜no sea limitado. Esta limitaci´onde tama˜no impacta sobre el n´umero de reglas que sepueden instalar, por lo que una gesti´on ineficiente delas mismas puede suponer una degradaci´on de la QoS(Quality of Service) de la red. Este trabajo proponeuna soluci´on basada en DRL (Deep ReinforcementLearning) que permite ajustar din´amicamente el idletimeout de las reglas de flujo para maximizar eln´umero de flujos que pueden ser encaminados en lared, lo que deriva en una mejora de la QoS.

Full text

Actas de las XV Jornadas de Ingeniería Telemática (JITEL 2021), A Coruña (España), 27-29 de octubre de 2021. This work is licensed under a Creative Commons 4.0 International License (CC BY-NC-ND 4.0) Mejorando la calidad de servicio en SDN mediante el ajuste din´ amico del idle timeout con Deep Reinforcement Learning Manuel Jim´ enez-L´ azaro, Javier Berrocal, Jaime Gal´ an-Jim´ enez Escuela Polit´ ecnica de C´ aceres, Universidad de Extremadura Avda. de la Universidad, S/N, C´ aceres, Espa˜ na {manueljimenez, jberolm, jaime}@unex.es Las memorias TCAM (Ternary contentaddressable memory) de las tablas de flujo de los nodos SDN (Software Defined Networking) son muy r´ apidas y permiten realizar b´ usquedas en paralelo en muy poco tiempo. Sin embargo, presentan un alto consumo de energ´ ıa y un elevado coste, lo que hace que su tama˜ no sea limitado. Esta limitaci´ on de tama˜ no impacta sobre el n´ umero de reglas que se pueden instalar, por lo que una gesti´ on ineficiente de las mismas puede suponer una degradaci´ on de la QoS (Quality of Service) de la red. Este trabajo propone una soluci´ on basada en DRL (Deep Reinforcement Learning) que permite ajustar din´ amicamente el idle timeout de las reglas de flujo para maximizar el n´ umero de flujos que pueden ser encaminados en la red, lo que deriva en una mejora de la QoS. Palabras Clave—SDN, DRL, idle timeout, TCAM. I. INTRODUCCI ´ ON El nuevo paradigma de red SDN (Software Defined Networking) separa el plano de datos del plano de control, estando gestionado por un elemento centralizado que tiene una visi´ on global de la red. Este elemento centralizado, denominado controlador, es quien se encargar´ a, entre otras cosas, de establecer el encaminamiento entre nodos. Eso lo har´ a guardando las reglas de encaminamiento en las tablas de todos los nodos del flujo. Cuando llega un paquete a un switch SDN, tiene que encaminarse en funci´ on de las reglas almacenadas en la tabla de flujo de ese nodo. Si el paquete (con sus diferentes campos de las distintas cabeceras) hace match con una de las reglas de la tabla, podr´ a enviarse al siguiente nodo en el camino, acerc´ andose a su destino. Si no existe regla relacionada, el paquete no podr´ a ser encaminado inmediatamente (lo que se conoce como table-miss), y el switch, tendr´ a que preguntar al controlador qu´ e hacer con dicho paquete (mensaje PACKET IN) para instalar el flujo. El controlador le indicar´ a qu´ e reglas debe instalar y en qu´ e switches de forma que permita a los datos llegar a su destino. Esto, l´ ogicamente, supone una penalizaci´ on de tiempo, al aumentar el RTT (Round-trip time) del primer paquete del flujo. Adem´ as, debido a que el n´ umero de reglas que se pueden instalar en los switches SDN es limitado [1], [2], se puede dar la situaci´ on en la que no existe regla que haga match con el paquete pero tampoco hay espacio disponible en la tabla de flujo para poder instalarla, por lo que este flujo no podr´ a ser encaminado y se perder´ an los datos enviados. Por lo tanto, se traducir´ ıa en una reducci´ on de la QoS (Quality of Service) de la red. Adicionalmente, es importante comentar que el match que hace un paquete entrante con una regla en un entorno SDN no solo tiene en cuenta los campos direcci´ on IP origen y direcci´ on IP destino como se muestra en este trabajo. SDN es capaz de tener en cuenta, adem´ as, varios campos de las diferentes cabeceras (puertos, protocolo, etc). Las tablas de flujo se implementan mediante la utilizaci´ on de memorias TCAM. Estas memorias TCAM son muy r´ apidas, pues utilizan un sistema de b´ usqueda paralela. Esto es algo muy importante cuando queremos encaminar paquetes lo antes posible. Sin embargo, hacen uso de mucha energ´ ıa [3], tienen un coste muy alto [4] y, como consecuencia, disponen de un espacio bastante limitado [5], [6], algo que repercutir´ a negativamente a la hora de encaminar los paquetes, pudiendo almacenar menos reglas al mismo tiempo. Adem´ as, existen los conceptos de idle timeout yhard timeout. Para evitar que una regla se quede almacenada en una TCAM durante demasiado tiempo sin ser utilizada, cada regla incluye estos dos valores. Si la regla se mantiene en la tabla sin ser usada por una duraci´ on igual al idle timeout, la regla ser´ a borrada ya que no se considerar´ a lo suficiente activa, dejando espacio a otras posibles reglas. El valor del idle timeout normalmente se establece de forma est´ atica para cada regla. Es decir, una 217 Jim´ enez-L´ azaro, Berrocal, Gal´ an-Jim´ enez, 2021. vez que se a˜ nade ese valor, se mantendr´ a as´ ı durante toda la estancia de la regla en la TCAM. El hard timeout es similar, solo que borrar´ a la regla cuando iguala la duraci´ on del hard timeout, empezando a contar desde el momento en el que se instal´ o la regla y sin reiniciarse al ser utilizada como en el caso del idle timeout. En los ´ ultimos a˜ nos, existe un inter´ es creciente en aprovechar las capacidades de las redes SDN para mejorar la QoS ofrecida. Trabajos como los de [2], [7] proponen soluciones para mejorar la eficiencia energ´ etica de las redes SDN considerando las restricciones impuestas por el tama˜ no limitado de las memorias TCAM de las tablas de flujo. Esta limitaci´ on tambi´ en impacta sobre el rendimiento de las redes SDN/NFV en las que se utiliza el paradigma SFC (Service Function Chaining), ya que los nodos que act´ uan como clasificadores pueden verse restringidos en el n´ umero de solicitudes SFC que pueden aceptar. Para ello, trabajos como los de [6], [8], [9] proponen realizar una descarga en el proceso de clasificaci´ on. Dicha acci´ on podr´ a ser realizada por cualquiera de los nodos del camino desde el nodo origen (clasificador inicial) hasta el nodo destino. En este trabajo, nuestro objetivo es ajustar din´ amicamente el idle timeout para mejorar la QoS de las redes SDN. Si instalamos en cada regla idle timeouts altos, estamos provocando que haya menos intercambio de informaci´ on con el controlador por el simple hecho de que las reglas no se borrar´ an a menudo, lo que implica que no tendr´ an que reinstalarse demasiadas veces. Pero esto supondr´ a que las TCAM se llenar´ an pronto, por causa de que las reglas tardar´ an en borrarse, no pudiendo satisfacer nuevos flujos. Si hacemos lo contrario e instalamos idle timeouts bajos, el intercambio de mensajes de control de tipo OpenFlow con el controlador aumentar´ a enormemente, suponiendo retrasos en la red, mas podremos satisfacer un mayor n´ umero de flujos porque no habr´ a reglas que acaparen las TCAM durante un gran espacio de tiempo. El objetivo de este trabajo es encontrar una manera eficiente de tratar los idle timeouts de cada regla de la red de forma din´ amica. As´ ı, queremos optimizar los valores que se le adjudican a cada idle timeout para conseguir un mejor funcionamiento global de nuestra red, estableciendo una mejor administraci´ on del espacio de las TCAM, y por tanto, maximizando la cantidad de flujos que se pueden satisfacer. Para ello, se propone un algoritmo basado en DRL que recorrer´ a las reglas instaladas e ir´ a ajustado sus idle timeouts en funci´ on del estado de la red, para as´ ı conseguir que estos idle tengan valores acordes a las necesidades de la red. Los resultados obtenidos tras la ejecuci´ on de simulaciones sobre redes sint´ eticas y reales indican que nuestro algoritmo mejora, por norma general, el desempe˜ no de la red en cuanto a la cantidad de paquetes que pueden satisfacerse, consiguiendo una mejor QoS. El resto del art´ ıculo se organiza de la siguiente manera: el algoritmo DRL propuesto se describe en la Secci´ on II, la Secci´ on III describe los resultados obtenidos tras la Fig. 1: Esquema del funcionamiento del algoritmo DRL simulaciones realizadas y las comparaciones con la forma est´ atica tradicional de usar los idle timeout, y por ´ ultimo, la Secci´ on IV hace un repaso de las conclusiones obtenidas. II. ALGORITMO DIDLE DRL Reinforcement Learning es un subcampo de ML (Machine Learning), que se diferencia de los m´ etodos m´ as cl´ asicos como los supervisados [10] y los no supervisados [11]. Los supervisados se centran en clasificar un conjunto de datos de entrada, y los no supervisados en agrupar ese conjunto de entrada. Sin embargo, Reinforcement Learning [12] se basa en entrenar a un agente para que tome ciertas acciones sobre un entorno concreto en funci´ on de las recompensas que se le devuelven, pudiendo encontrar soluciones a problemas concretos. DRL es parte de Reinforcement Learning, pero incluye la palabra Deep, pues hace uso de una red neuronal, cuyo objetivo ´ ultimo ser´ a aprender c´ omo maximizar las recompensas que obtiene [13]. DRL est´ a compuesto por varios conceptos. Uno de ellos es el entorno, que se refiere a aquello que el algoritmo utiliza en su proceso de predicci´ on, sobre el que realiza las acciones y sobre el que obtiene las recompensas. En nuestro caso, el entorno es la configuraci´ on de la topolog´ ıa de la red con el estado y contenido de las tablas de flujo de los nodos SDN. El agente es el ente que toma las decisiones (la red neuronal) y que pretende aprender para optimizar dichas decisiones de forma que se maximice la recompensa que se le devuelve tras la toma de una acci´ on. Por ello, el siguiente concepto es la acci´ on, que es cada modificaci´ on que el agente realiza sobre el entorno. La recompensa que se le ofrece a la red neuronal tras cada acci´ on depende de una evaluaci´ on que se hace sobre el entorno, identificando en este si la situaci´ on en la que se encuentra tras la acci´ on es positiva o negativa, lo que devolver´ a una recompensa acorde a dicha situaci´ on. En nuestro algoritmo, una situaci´ on positiva ser´ a aquella en la que se pueden cumplir la mayor cantidad de flujos posibles de cara al siguiente instante de tiempo, a la vez que las TCAM se encuentran con una ocupaci´ on baja. Si las TCAM est´ an llenas, y no se pueden satisfacer las siguientes reglas, la recompensa ser´ a negativa. This work is licensed under a Creative Commons 4.0 International License (CC BY-NC-ND 4.0) 218 A continuaci´ on, se procede a explicar con mayor profundidad el funcionamiento particular de nuestro algoritmo DIdle DRL (Dynamic Idle DRL). A. Espacio de estados El estado es el conjunto de datos representativos de la situaci´ on actual de la red que la red neuronal recibe como entrada, y el cual usar´ a para tomar unas acciones u otras. En la Figura 1 podemos ver representado el estado por un vector, el cual est´ a compuesto por: •MT: La matriz de tr´ afico del instante siguiente. Se trata de una matriz conformada por unos y ceros, indicando un 1que hay actividad entre el nodo origen, representado por el n´ umero de la fila, y el nodo destino, representado por el n´ umero de la columna. Un 0indica que no hay actividad, que no se quiere intercambiar informaci´ on entre ambos nodos. •R: El conjunto de todas las reglas instaladas en todos los nodos. Cada regla con su nodo origen, su nodo destino, su siguiente salto, sus contadores y su idle timeout.r= [src node, dst node, next hop, counters, idle timeout] Este espacio de estados lo recibir´ a la red neuronal, que como salida devolver´ a una acci´ on, como se observa en la Figura 1, en funci´ on que lo que haya aprendido a ra´ ız de las recompensas otorgadas durante su fase de entrenamiento. B. Acciones A la hora de instalar una regla en una tabla de flujo, se incluir´ a con un determinado idle timeout y DRL no intervendr´ a en ello, porque el algoritmo solo modifica los idle timeout de reglas ya instaladas. Una vez finaliza un instante de tiempo, habi´ endose incluido las nuevas reglas que ese instante de tiempo requer´ ıa y habi´ endose realizado el env´ ıo de los datos que corresponden, se hace una llamada al Algoritmo DIdle DRL. El pseudoc´ odigo de DIdle DRL viene descrito en Alg. 1, donde se observa que se le pasa como entrada el estado actual de la red y se le devuelve una de las cuatro acciones posibles. Las acciones se llevar´ an a cabo para cada regla de cada TCAM, es decir, el algoritmo tendr´ a que recorrer todas y cada una de las reglas que est´ an instaladas en nuestra red y actualizar sus respectivos idle. Como resultado, se obtiene un nuevo estado de la red. Las distintas acciones que puede tomar para cada regla son: •Borrar la regla directamente. Si DRL considera que una determinada regla no est´ a siendo ´ util y est´ a ocupando espacio, puede borrarla. •Disminuir en una unidad el idle timeout de la regla. •Mantener el idle timeout de la regla. •Aumentar en una unidad el idle timeout de la regla. C. Recompensas Las recompensas con las que se retroalimenta DRL son esenciales para un buen funcionamiento del algoritmo. En nuestro caso se ha tomado la decisi´ on de establecer una Algorithm 1 Pseudoc´ odigo del ajuste de los idle timeouts. Require: Un vector que representa el estado de la red, formado por la matriz de tr´ afico del siguiente instante: MT , y por el conjunto de reglas instaladas en cada TCAM: R. 1: for all r∈ R do 2: Tomar acci´ on A . La acci´ on la toma en funci´ on del estado recibido 3: Actualizar rcon la acci´ on A 4: end for 5: return Estado con las reglas actualizadas por las acciones recompensa que eval´ ue el estado de la red una vez se han llevado a cabo las acciones sobre todas las reglas. El objetivo ´ ultimo de DRL ser´ a maximizar el valor de esa recompensa, por lo que una recompensa alta reforzar´ a los pesos de la red neuronal para favorecer ese resultado m´ as a menudo. Este valor de recompensa (rec) se calcula de acuerdo a la ecuaci´ on 1: rec =TamT CAM −MaxT CAM −XActivoN O (1) Por un lado, se calcula el m´ aximo de ocupaci´ on que tiene una TCAM tras realizar las acciones (MaxT CAM en la ecuaci´ on 1). Al tama˜ no que tiene una TCAM (TamT CAM en la ecuaci´ on 1) de la red se le resta ese valor calculado, y esa ser´ a la recompensa que tendremos hasta el momento. Con esto conseguimos minimizar la ocupaci´ on de las TCAM para tratar de que exista espacio suficiente para nuevas reglas. Por otro lado, se analiza la matriz de tr´ afico del instante que va a comenzar a continuaci´ on, y se hace un sumatorio de todos los flujos que tienen que ser insertados como reglas en las distintas TCAM como consecuencia de que en el instante actual no se encuentran instalados (ActivoN O en la ecuaci´ on 1). Esto se lo restamos a la recompensa que ten´ ıamos del punto anterior. Restar este n´ umero ayuda a DRL a no borrar reglas que van a ser utilizadas a continuaci´ on, porque tener que instalarlas nuevamente produce una p´ erdida de tiempo por los intercambios de informaci´ on con el controlador SDN, lo que repercute negativamente en el funcionamiento de la red. As´ ı, equilibrar´ ıamos el hecho de querer minimizar la ocupaci´ on de las tablas con el hecho de satisfacer la mayor cantidad de flujos sin que se tengan que reinstalar nuevamente. D. C´ alculo del idle din´ amico Con el objetivo de realizar un tratamiento completamente din´ amico de los idle timeout, proponemos una f´ ormula para establecerlo a la hora de insertar las reglas en las TCAM, teniendo en cuenta el uso hist´ orico del flujo y la ocupaci´ on de las TCAM. idle timeout = ( Px 100 +k)∗Ndis Ntot ∗tmax 2(2) A continuaci´ on se explican cada uno de los t´ erminos de la ecuaci´ on 2: This work is licensed under a Creative Commons 4.0 International License (CC BY-NC-ND 4.0) 219 Jim´ enez-L´ azaro, Berrocal, Gal´ an-Jim´ enez, 2021. •Px: Porcentaje de uso del flujo de la regla a instalar en los ´ ultimos xinstantes de tiempo. •k: Valor constante que se encuentra entre -1 y 1. Sirve para ajustar el idle timeout en funci´ on de c´ omo queremos que se comporte la f´ ormula. Si el valor es positivo, los valores de los idle timeout ser´ an mayores. Si lo situamos negativo, ser´ an m´ as peque˜ nos. •Ndis: N´ umero de espacios disponibles en la tabla de encaminamiento m´ as ocupada del flujo a insertar. •Ntot: N´ umero de espacios totales que posee una tabla de encaminamiento (lo consideramos el mismo para todas las tablas de la red). •tmax: N´ umero de instantes de tiempo totales en la simulaci´ on. El m´ ınimo idle timeout que se puede asociar a una regla es de 1, y el m´ aximo consideraremos que es la mitad de todos los instantes de tiempo que estamos recorriendo en la simulaci´ on. De forma que el idle timeout resultante debe estar entre 0 y el instante de tiempo m´ aximo dividido entre dos. Para un correcto funcionamiento del algoritmo, para el valor resultante de la ecuaci´ on 2 debe aplicarse la funci´ on techo. Es decir, si obtenemos un idle timeout de 2,1, debemos redondearlo a 3. Por supuesto, si la kes positiva, puede darse el caso de que el idle timeout resultante sea superior al valor m´ aximo que hemos puesto como l´ ımite (tmax/2). En ese caso, podemos limitar que todo valor que supere el l´ ımite se reduzca a este, o podemos dejar que el timeout lo supere, depender´ a de nuestros intereses. Si la kes negativa, se producir´ a el efecto contrario. En caso de que se obtenga un valor negativo, el idle timeout se establecer´ a a 0, lo que significa que se usar´ a la regla e inmediatamente se borrar´ a. III. RESULTADOS EXPERIMENTALES Para las fases de entrenamiento de nuestro algoritmo DIdle DRL, se han generado los estados que recibe la red de una forma pseudoaleatoria, de forma que representen estados reales que se podr´ ıa encontrar a la hora de enfrentarse al problema real. Para este entrenamiento se han utilizado 50000 pasos. Tras las fases de entrenamiento del algoritmo DRL, se ejecutaron una serie de pruebas que nos indicaron el funcionamiento de este con respecto al funcionamiento est´ andar. El funcionamiento est´ andar es el que tendr´ ıa la red en caso de que los idle timeout se mantuvieran de manera est´ atica durante toda la estancia de la regla en la TCAM. Las pruebas se realizaron sobre dos topolog´ ıas de red diferentes. Una topolog´ ıa sint´ etica de 5 nodos y 8 enlaces bidireccionales que puede verse en la Figura 2(a) y una topolog´ ıa real obtenida de la librer´ ıa SNDLib, denominada Nobel-Germany (17 nodos y 25 enlaces) representada en la Figura 2(b). Con respecto al tr´ afico generado, consideramos dinamicidad en el mismo, intercalando intervalos de actividad con intervalos de inactividad. Para ello nos vamos en DTMP (Discrete Time Markov Process), que generar´ a la actividad ((a)) Topolog´ ıa sint´ etica ((b)) Nobel-Germany Fig. 2: Topolog´ ıas de red consideradas. en funci´ on de las probabilidades que otorgan los valores de αyβ, siendo β= 1 −α. Para cada topolog´ ıa haremos tres pruebas diferentes, una para una carga de tr´ afico del 25%, que corresponder´ ıa con un α= 0.25, otra para el 50%, siendo α= 0.5y otra para el 75%, con α= 0.75. Volviendo a las pruebas, la simulaci´ on que realizamos para visualizar si el algoritmo DRL es exitoso ha sido programada a trav´ es del lenguaje Python, donde generamos la matriz de tr´ afico mediante DTMP para un n´ umero X de instantes de tiempo. En nuestro caso, las pruebas las hemos realizado para 10 instantes de tiempo, para un valor de k= 0.1yx= 3 en la f´ ormula que calcula el idle timeout inicial de una regla. En cada instante se insertar´ an todas las reglas de los flujos activos seg´ un la matriz de tr´ afico, a excepci´ on de aquellos flujos en los que alguna de las TCAM de los nodos por los que pasa se encuentre completamente ocupada. Una vez insertadas todas las reglas posibles, se env´ ıa la informaci´ on y se llama a DIdle DRL para que lleve a cabo las acciones que considere convenientes, ajustando los idle timeouts o borrando reglas. Tras esto, se eliminan las reglas cuyo tiempo de inactividad haya llegado al idle timeout y se repite el bucle. Para obtener los resultados de cada gr´ afica, haremos varias iteraciones de la simulaci´ on para as´ ı poder hacer una media entre todas y evitar casos extra˜ nos o extremos. En el caso de la topolog´ ıa sint´ etica de la Figura 2(a) hemos This work is licensed under a Creative Commons 4.0 International License (CC BY-NC-ND 4.0) 220 ((a)) α= 0.25 ((b)) α= 0.5((c)) α= 0.75 Fig. 3: Porcentaje de flujos instalados correctamente en la topolog´ ıa sint´ etica. ((a)) α= 0.25 ((b)) α= 0.5((c)) α= 0.75 Fig. 4: Porcentaje de flujos instalados correctamente en Nobel. ((a)) Tama˜ no de TCAM = 2 ((b)) Tama˜ no de TCAM = 4 Fig. 5: Comparaci´ on del n´ umero de veces que ha de instalarse un flujo en DRL y en est´ atico para α= 0.25 en la topolog´ ıa sint´ etica. hecho 100 iteraciones y hemos calculado la media de sus resultados. En la topolog´ ıa nobel de la Figura 2(b) han sido 10 iteraciones por su mayor complejidad. Las primeras gr´ aficas que nos interesan conocer son las que podemos ver en la Figura 3 para la topolog´ ıa sint´ etica y en la Figura 4 para la topolog´ ıa Nobel. Podemos ver como estas seis gr´ aficas muestran el resultado para el uso de DRL con el idle din´ amico, para un idle est´ atico igual a 3 y para un idle est´ atico igual a 5. Idle est´ atico es la forma tradicional de tratar con estos valores, iniciando una regla con un idle timeout determinado, sin posibilidad de cambio hasta que las reglas de ese flujo se eliminen de sus TCAM. Hemos establecido esos valores est´ aticos entendiendo que un idle timeout de 3 es lo m´ ınimo aceptable, ya que un idle de 1 sabemos que funcionar´ a muy bien por el hecho de que siempre estar´ a borrando reglas y habr´ a espacio para nuevas, por lo que es muy dif´ ıcil que pueda ser superado por DRL en cuanto a flujos satisfechos. Por otra parte, tampoco tiene sentido evaluar para un idle de 1 porque es algo que a nivel pr´ actico no se utiliza al ser un valor muy peque˜ no. Estas gr´ aficas nos indican el porcentaje de flujos que se This work is licensed under a Creative Commons 4.0 International License (CC BY-NC-ND 4.0) 221 Jim´ enez-L´ azaro, Berrocal, Gal´ an-Jim´ enez, 2021. satisfacen del total de flujos que quieren enviarse, entendiendo como flujo el conjunto de reglas que permiten a un paquete llegar desde un nodo origen a su nodo destino. Para verlo de una manera m´ as explicativa, imaginemos que el nodo 1 quiere enviar informaci´ on al nodo 3, y el nodo 4 quiere enviar informaci´ on al nodo 2. Si los dos flujos se satisfacen pues hay espacio en las TCAM correspondientes, tendr´ ıamos un porcentaje del 100% de satisfechas. Si uno de los dos no pudiera cumplirse, ser´ ıa del 50%. Comprobamos que en las gr´ aficas de la Figura 3 de la topolog´ ıa sint´ etica, DRL funciona mejor que de la forma est´ atica en todos los casos, aunque esta diferencia se reduce cuanto m´ as grande es el tama˜ no de la TCAM. Podemos deducir entonces que nuestro algoritmo funciona mejor cuando se enfrenta a tama˜ nos de TCAM inferiores, lo que es un resultado positivo pues nuestro problema se basa en TCAM de tama˜ nos limitados. A˜ nadiendo a lo anterior, cuanto m´ as grande es la TCAM vemos que los idle est´ aticos se acercan al 100%, satisfaciendo todos los flujos en la red. Como ampliaci´ on de lo anterior, tambi´ en se encuentran diferencias entre las gr´ aficas con un valor de αinferior, como la Figura 3(a), con respecto a las que tienen mayor carga de tr´ afico, como la Figura 3(c). La diferencia reside en que cuanta menor carga, m´ as libertad tiene el algoritmo de jugar con las reglas instaladas, pudiendo aumentar con m´ as ´ exito el n´ umero de flujos satisfechos. Esto se complica en una prueba con m´ as carga de tr´ afico, pues es muy posible que la TCAM se encuentre repleta de reglas que van a utilizarse, a la vez que hay paquetes a enviar que necesitan reglas que no tienen espacio disponible. Entonces, se complica la capacidad que tiene el algoritmo de jugar con esas reglas, reduciendo la diferencia ante la simulaci´ on est´ atica. Para la figura 4 con las gr´ aficas de Nobel, vemos una mejora menor, siendo los resultados m´ as ajustados que en la topolog´ ıa sint´ etica, llegando a estar igualados en situaciones de baja actividad de tr´ afico (Figura 4(a)). Viendo que el resultado general de las gr´ aficas que comparan el grado de flujos satisfechos es positivo, se va a observar mediante la Figura 5 c´ omo repercute en el n´ umero de flujos instalados el hecho de que el n´ umero de flujos satisfechos sea mayor. En estas gr´ aficas se va a analizar cu´ antas veces se instala cada regla de media, estando representada cada regla por un id. El resultado ideal ser´ ıa que este n´ umero de veces que se instala cada regla fuera igual o menor respecto a los idle est´ aticos, pero vemos en las dos gr´ aficas que no es as´ ı, que las veces que hay que instalar cada regla es, por norma general, mayor en DIdle DRL. A´ un as´ ı, se observa que, al relajar el tama˜ no de la TCAM (Figura 5(b)) con respecto a un tama˜ no menor (Figura 5(b)), el n´ umero de instalaciones baja en DRL, acerc´ andose al n´ umero de instalaciones del tratamiento est´ atico del idle. En este aspecto, no cumplimos con la imagen ideal que ten´ ıamos, pero se puede entender que es una penalizaci´ on que tenemos que pagar, porque el objetivo principal es poder instalar las reglas en las tablas de flujos para que el tr´ afico se pueda encaminar, aunque tengamos que realizar un mayor n´ umero de comunicaciones con el controlador. IV. CONCLUSIONES El objetivo de este trabajo era encontrar una manera eficiente de tratar los idle timeouts de cada regla de la red de una forma din´ amica, estableciendo una mejor administraci´ on del espacio de las TCAM, y entonces, maximizando la cantidad de flujos que se pueden satisfacer. Con esto en mente, se propuso un algoritmo DRL, denominado DIdle DRL, que recorr´ ıa las reglas instaladas e ir´ ıa ajustando los idle timeouts en funci´ on del estado de la red en ese momento. Tras las pertinentes pruebas, comprobamos que los resultados obtenidos eran positivos, y que DIdle DRL mejoraba normalmente el n´ umero de paquetes que pod´ ıan llegar a su destino. En contraposici´ on, se encontraba un aumento de reglas a instalarse. Ello supon´ ıa un aumento de intercambio de mensajes con el controlador, pero se ha entendido como un mal menor a cambio de conseguir que la informaci´ on consiga llegar al destino en unos espacios de TCAM tan limitados. En definitiva, se ha logrado el objetivo de mejorar la QoS de la red mediante el algoritmo DIdle DRL. AGRADECIMIENTOS Este trabajo ha sido financiado, en parte, por el proyecto RTI2018-094591-B-I00 (MCI/AEI/FEDER,UE), el proyecto 4IE+ (0499-4IE-PLUS-4-E) financiado por el programa Interreg V-A Espana-Portugal (POCTEP) 20142020, por la Consejer´ ıa de Econom´ ıa, Ciencia y Agenda Digital de la Junta de Extremadura (GR18112, IB18030) y por el Fondo Europeo de Desarrollo Regional (FEDER). REFERENCIAS [1] A. R. Curtis, J. C. Mogul, J. Tourrilhes, P. Yalagandula, P. Sharma, and S. Banerjee, “Devoflow: Scaling flow management for high-performance networks,” SIGCOMM Comput. Commun. Rev., vol. 41, no. 4, pp. 254–265, aug 2011. [2] J. Gal´ an-Jim´ enez, J. Berrocal, J. L. Herrera, and M. Polverini, “Multi-objective genetic algorithm for the joint optimization of energy efficiency and rule reduction in software-defined networks,” in 2020 11th International Conference on Network of the Future (NoF), 2020, pp. 33–37. [3] C. R. Meiners, A. X. Liu, and E. Torng, “Bit weaving: A non-prefix approach to compressing packet classifiers in tcams,” IEEE/ACM Transactions on Networking, vol. 20, no. 2, pp. 488–500, April 2012. [4] P. C. Lekkas, Network Processors: Architectures, Protocols, and Platforms. New York, NY, USA: McGraw-Hill, 2003. [5] M. Ku´ zniar, P. Pereˇ s´ ıni, D. Kosti´ c, and M. Canini, “Methodology, measurement and analysis of flow table update characteristics in hardware openflow switches,” Computer Networks, vol. 136, pp. 22–36, 2018. [6] M. Polverini, J. Gal´ an-Jim´ enez, F. G. Lavacca, A. Cianfrani, and V. Eramo, “A scalable and offloading-based traffic classification solution in nfv/sdn network architectures,” IEEE Transactions on Network and Service Management, vol. 18, no. 2, pp. 1445–1460, 2021. [7] J. Gal´ an-Jim´ enez, J. Berrocal, M. Linaje, and C. G´ omez, “Minimizaci´ on del consumo de energ´ ıa en redes sdn bajo restricciones tcam,” in Actas de las XIV Jornadas de Ingenier´ ıa Telem´ atica (JITEL 2019), 2019, pp. 1–6. This work is licensed under a Creative Commons 4.0 International License (CC BY-NC-ND 4.0) 222 [8] M. Polverini, J. Gal´ an-Jim´ enez, F. G. Lavacca, A. Cianfrani, and V. Eramo, “Dynamic in-network classification for service function chaining ready sdn networks,” in 2019 10th International Conference on Networks of the Future (NoF), 2019, pp. 74–81. [9] ——, “Improving dynamic service function chaining classification in nfv/sdn networks through the offloading concept,” Computer Networks, vol. 182, p. 107480, 2020. [10] S. B. Kotsiantis, I. Zaharakis, and P. Pintelas, “Supervised machine learning: A review of classification techniques,” Emerging artificial intelligence applications in computer engineering, vol. 160, no. 1, pp. 3–24, 2007. [11] A. Kassambara, Practical guide to cluster analysis in R: Unsupervised machine learning. Sthda, 2017, vol. 1. [12] R. S. Sutton and A. G. Barto, Reinforcement learning: An introduction. MIT press, 2018. [13] N. C. Luong, D. T. Hoang, S. Gong, D. Niyato, P. Wang, Y.- C. Liang, and D. I. Kim, “Applications of deep reinforcement learning in communications and networking: A survey,” IEEE Communications Surveys Tutorials, vol. 21, no. 4, pp. 3133–3174, 2019. This work is licensed under a Creative Commons 4.0 International License (CC BY-NC-ND 4.0) 223