Ayuda
Ir al contenido

Dialnet


Resumen de Optimizing communications by using network processors

Pablo Cascón

  • La tesis que aquí se presenta se centra en el trabajo con sistemas reales, al abordar el desarrollo de software de sistema dentro del núcleo del sistema operativo. Aquí se aborda una de las alternativas para mejorar la interfaz de red. En este caso se trata de estudiar las posibilidades que ofrece el paralelismo que implementan los procesadores de red para acelerar la interfaz de red y con ello, mejorar las prestaciones de las aplicaciones que necesitan comunicación (actualmente casi todas).

    Los procesadores de red presentan arquitecturas multinúcleo, con elementos de procesamiento multihebra especialmente diseñados para ser eficientes en tareas de procesamiento de paquetes. Al abordar su programación nos hemos enfrentado con problemas importantes derivados, tanto de la dificultad que supone el aprovechamiento del paralelismo en la interfaz de red, como de la falta de herramientas que permitan una programación eficiente de los procesadores de red utilizando lenguajes de alto nivel.

    Las microarquitecturas heterogéneas multinúcleo son el diseño alternativo dominante para microprocesadores. Como el final de la ley de Moore parece acercarse, la integración de muchos núcleos en un chip parece la alternativa más prometedora para conseguir microprocesadores que doblen el rendimiento en 18 ó 24 meses. Sin embargo, la integración de núcleos con diferentes microarquitecturas puede ser considerada como un enfoque aún más adecuado ya que pueden proveer una aceleración optimizada de diferentes partes de las aplicaciones según su perfil específico de cómputo/ comunicación.

    Los procesadores de red (NP) son circuitos programables que incluyen recursos hardware para el procesamiento de las funciones de comunicación de alto rendimiento. Consisten en varios núcleos organizados según un modelo de procesamiento paralelo en el que cada paquete es procesado en un núcleo diferente o, siguiendo un modelo segmentado, a través de una secuencia de núcleos que definen un cauce (y por tanto, trabajan simultáneamente con varios paquetes en diferentes etapas del procesamiento). El uso de los procesadores de red se ve fomentado por el incremento de demanda de alta flexibilidad y rendimiento en el procesamiento de paquetes.

    Entre las diferentes alternativas del trabajo de investigación presentado en esta tesis, hemos elegido los procesadores Intel IXP \cite{intel_np}. Dentro de esta familia, la serie IXP28XX implementa microarquitecturas con un nivel alto de paralelismo, incluyendo varios procesadores programables: el procesador Intel XScale de propósito general (arquitectura RISC compatible con ARM), y 16 coprocesadores optimizados (llamados MicroEngines) para procesamiento de paquetes.

    En nuestro sistema experimental, el NIC que incluye el NP es la tarjeta Netronome NFE-i8000. Esta tarjeta viene provista de un conjunto de programas y utilidades para facilitar el desarrollo de software partiendo de esos programas. Antes de esta generación de tarjetas el programador debía de establecer la comunicación entre el host y los MicroEngines.

    En nuestro trabajo, hemos desarrollado un módulo del núcleo (kernel) Linux (probado con la versión 2.6.23) que implementa una interfaz de red que llamamos ixp0. El Capítulo 2 da más detalles de esta interfaz de red paralela y los resultados obtenidos en los experimentos. Experimentos con varios MicroEngines usados en paralelo para diferentes tareas muestran que el paralelismo en la NIC ayuda a conseguir altas velocidades con baja latencia y gran ancho de banda.

    Como ejemplo de aplicación que puede aprovechar esta interfaz de red también hemos desarrollado una implementación externalizada de un sistema de prevención de intrusiones. Este sistema de prevención de intrusiones (IPS por sus siglas en inglés) necesita analizar las cabeceras y el contenidos de los paquetes en protocolos de alto nivel. También se requiere que la función implementada por el IPS sea actualizada con nuevos procedimientos de detección debido a las características de continua evolución de los ataques. Como esta aplicación require procesamiento de alto rendimiento y flexibilidad es un buen candidato para ser implementada en un procesador de red.

    En este trabajo de investigación hemos estudiado la forma en la que las arquitecturas heterogéneas, como las de los procesadores de red, con núcleos de procesamiento específicamente diseñados para acelerar el procesamiento de paquetes y que incluyen recursos multihebra, son usados para mejorar los sistemas de intrusión a través de la red. Por tanto, una vez que nuestra interfaz externalizada ha sido desarrollada y estabilizada ha sido posible ejecutar el IPS en los MicroEngines o en el host para comparar su comportamiento. Tras nuestros resultados experimentales es posible concluir que ejecutar el IPS en un procesador de red no afecta apenas al tráfico legítimo. Si el IPS se implementa en el host, usa bastantes ciclos de CPU que no pueden ser usados para otras funciones (como procesamiento de tráfico o cómputo).

    El uso de procesadores de red da hasta 40 veces una menor latencia y un mayor ancho de banda disponible para el tráfico legítimo. El análisis de las posibles optimizaciones del procesamiento del IPS, junto con la evaluación de los efectos de las mejoras en aplicaciones reales de comunicación son las principales tareas de nuestro trabajo futuro en esta línea de investigación.

    Así mismo, hemos desarrollado otro ejemplo de aplicación que puede obtener una ganancia usando procesadores de red. En este caso, hemos acelerado un switch (o conmutador) OpenFlow usando procesadores de red. En un conmutador habitual tanto el plano de datos como el plano de control se realizan en el mismo dispositivo físico. La iniciativa OpenFlow Switch separa estos dos planos. Con la idea de OpenFlow, el plano de datos permanece en el switch mientras que el plano de control se implementa en una entidad externa llamada el controlador. Trasladar la idea de OpenFlow a la arquitectura del IXP significa que los MicroEngines ejecutan el plano de datos mientras que el plano de control está en otra computadora. Los resultados muestran una reducción significativa en el uso de CPU (en un factor entre 2.8 y 5 dependiendo del tipo de tráfico) que se pueden obtener con el conmutador OpenFlow basado en un NP. Además se obtiene una reducción en latencia de hasta un 30%.

    Por tanto en este trabajo de investigación hemos estudiado el efecto de los procesadores de red en la mejora de las comunicaciones y hemos desarrollado las herramientas necesarias para este estudio


Fundación Dialnet

Dialnet Plus

  • Más información sobre Dialnet Plus