Laboratorio de Redes de Telecomunicaciones
Actividad 9
Actividad 9
Nombre del documento:
A Network Connection Proxy to Enable Hosts to Sleep and Save Energy
Autores:
Miguel Jimeno, Ken Christensen y Bruce Nordman
Enlace:
http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4745133
Introducción
Uno de los retos más urgentes es diseñar nuevas tecnologías que pueden permitir una transición hacia una sociedad más sostenible, con una huella de CO2 reducida. Los hosts de red consumen una gran y creciente cantidad de energía. Los centros de datos y servidores consumen aproximadamente el 1.5% del consumo total de electricidad de los Estados Unidos en 2006, con un costo total de alrededor de $4.5 mil millones de dolares. Sin embargo, aún mayor es la electricidad consumida por los equipos de la red que no están en los centros de datos. La EPA estima que las PC en los Estados Unidos consumen el 2% de toda la electricidad consumida. Se estima que el 9% de la electricidad consumida por los edificios comerciales es de equipo de oficina - mucho de este equipo siendo PCs conectados a la red. Más allá de las PC, son el creciente número de dispositivos comerciales y de consumo - tales como decodificadores y consolas de juego - que están conectados a Internet y se han convertido en máquinas de la red.
Gran parte de la electricidad consumida por los equipos de la red se desperdicia. Estar conectado a Internet requiere un poco de participación activa. Cuando los hosts no lo hacen, se "caen fuera de la red" y las aplicaciones fallan. Miles de millones de dólares en electricidad cada año se utilizan para mantener los hosts de la red totalmente encendidos todo el tiempo sólo con el propósito de mantener la conectividad de la red. Si no fuera por la necesidad de conectividad de la red la mayor parte de estos hosts podrían estar "dormidos" la mayoría de las veces, con un ahorro significativo de energía resultante. Las encuestas han encontrado que alrededor del 60% de los PCs de escritorio de oficina son dejados de manera continua. Se trata de la necesidad de mantener la conectividad de red que contribuye a la desactivación de las funciones de gestión de energía existentes en muchos ordenadores.
Ahorro de este desperdicio de energía se puede hacer mediante 1) el rediseño de protocolos de red y aplicaciones, o 2) encapsulando la inteligencia para mantener la presencia de la red en una entidad distinta que el núcleo de los dispositivos conectados en red. La segunda opción que llamamos Conectividad de Red Proxy (NCP), donde un NCP es una entidad que mantiene presencia en la red completa para un host de red que esta dormido.
El problema de conectividad de red
¿Por qué aparatos de las oficinas y equipos domésticos se dejan encendidos incluso cuando no están en uso activo, inclusive en las noches o durante los fines de semana? Hay varias razones principales para ello con dos más importantes: 1) La molestia al usuario de tener que esperar a un PC para despertar fuera del estado de suspensión, y 2) la necesidad de mantener la conectividad de la red en todo momento para permitir acceso remoto o para aplicaciones centradas en red. La primera razón es cada vez menos importante como computadoras se vuelven capaces de encender más rápido, y la segunda razón es cada vez más importante a medida que más aplicaciones y protocolos se basan en una conexión a Internet permanente.
Para mantener la conectividad de la red, un host debe ser capaz de soportar un número de primitivas de aplicación y el protocolo incluyendo:
- Mantener la accesibilidad del host para responder a peticiones ARP periódicos.
- Mantenga su dirección IP mediante la generación de peticiones periódicas de arrendamiento de DHCP con el fin de no perder su dirección IP actual (si es que se utiliza DHCP para obtener una dirección IP).
- Mantener la capacidad de gestión, respondiendo a los paquetes ICMP, como ping.
- Apoyar la resolución de nombres NetBIOS, respondiendo a las consultas de nombres NetBIOS, según corresponda (si se ejecuta el protocolo NetBIOS y aplicaciones).
- Mantener la accesibilidad a nivel de aplicación, respondiendo a paquetes TCP SYN enviados para abrir (escuchar) los puertos.
- Mantener o conservar el estado de la aplicación (por ejemplo, el espacio de trabajo del usuario actual y datos) para cualquier aplicación con conexiones TCP abiertas a largo plazo.
Además, es deseable en muchos casos que los paquetes enviados a un host durante el tiempo que está durmiendo no se pierdan. Dado que la lista anterior no es completa, es un trabajo futuro para comprender mejor lo que pasa cuando los paquetes son recibidos por un host al dormir y cuál de los paquetes recibidos pueden ser ignorados, cuáles requieren una respuesta inmediata, y cuáles pueden ser guardados en un buffer para su posterior procesamiento. Es muy importante la capacidad de responder a los paquetes ARP incluso cuando duerme. Tarjetas de red Ethernet que admiten DMTFs para formato estándar de alertas (ASF) pueden responder a paquetes ARP para un host que duerme. Esto se hace manteniendo la NIC totalmente energizada cuando el host se encuentra en un estado de suspensión (con su CPU, pantalla, memoria y almacenamiento de desconexión). La NIC energizada también puede despertar el host cuando los paquetes específicos predeterminados para despertarlo son recibidos.
Si un host puede seguir siendo accesible incluso al dormir y manteniendo su NIC encendido, este puede entonces ser despertado por la red por paquetes que la NIC reconoce. El Magic Packet se inventó para este fin en la década de 1990. La mayoría de las tarjetas de red soportan hoy tanto el Magic Packet y la capacidad de ajuste de patrones para los paquetes específicos para activar una llamada. Sin embargo, el despertar del host no resuelve el problema de conectividad de red.
Habilitar suspensión de hosts con NCP
Los hosts conectados a una red mantienen su presencia en otros hosts mediante la generación correcta y respondiendo a los mensajes para ambos protocolos de red y aplicación. Un proxy de conectividad de red (NCP) propuesto por los autores del documento, es una entidad que implementa las capacidades de presencia de red clave de un host con el fin de permitir que el host entre en suspensión, sin embargo, permite que el host aparezca en otros dispositivos como si estuviera en pleno funcionamiento y conectado a la red. Por lo tanto, un NCP puede habilitar un host para que entre en suspensión y ahorrar energía.
En la Figura 1 se muestra una red con dos máquinas de red etiquetados como cliente y servidor, y un NCP situado dentro de un interruptor para apoyar la máquina cliente. El NCP también podría estar situado en otro host de la red, dentro de un punto de acceso inalámbrico, o dentro de la NIC en el host en suspensión.
Los siguientes supuestos deben presentarse en el host de la red cubierta por un NCP:
- Tiene un modo de suspensión que se puede introducir mediante comandos dentro de la aplicación o del sistema operativo.
- Ser capaz de salir completamente del modo de suspensión en el lapso de tiempo de unos pocos segundos o preferiblemente menos.
- Tiene un modo de suspensión que preserva todos los protocolos locales y estados de la aplicación.
- Apoyar un método de reactivación remota basada en paquetes, tales como Magic Packet o coincidencia de patrones.
- Apoyar la capacidad de las aplicaciones en hosts para poder bloquear al host de entrar en un estado de suspensión, siempre y cuando la aplicación está utilizando activamente la CPU, red u otros recursos.
Los siguientes son los objetivos que se pretenden cubrir mediante un sistema usando NCP:
- Un host debe poder entrar en suspensión y no perder su presencia en la red.
- Un host debe mantener su dirección IP y estar accesible en routers y switches.
- Conexiones TCP existentes a un host no deben ser olvidados y los datos no deben perderse.
- Paquetes UDP enviados a un host no deben perderse.
- Durante el tiempo que un equipo cliente está en suspensión, el estado remoto se debe mantener en todos los casos.
- Los cambios en las aplicaciones y protocolos de red no deben ser necesarios en el cliente o el host del servidor.
Arquitectura del NCP
El NCP mantiene un host en suspensión. Esto requiere que el NCP pueda conocer el estado de la alimentación del host (por ejemplo, despierto o en suspensión) y ser capaz de transferir entre el host y el NCP. Los pasos funcionales clave para un NCP son:
- El host decide que es hora de entrar en suspensión (por ejemplo, basado en un sistema operativo de inactividad tiempo, de espera o acción explícita por un usuario).
- Los avisos y estados se pasan a la NCP, y el host entra en suspensión.
- La NCP mantiene presencia completa en la red, dando respuesta, generando los paquetes de aplicaciones, según sea necesario.
- El NCP determina cuándo ha llegado un paquete que requiere los recursos del host y señala el host a despertar. El host también puede despertar la actividad del usuario o de un temporizador interno.
- Una vez que el host ha despertado plenamente, los estados se pasan del NCP al host y el host vuelve al funcionamiento totalmente energizado.
Cuando el NCP está cubriendo un host en suspensión, recibe los paquetes destinados para el host. Cada uno recibió los resultados de paquetes en una de las siguientes acciones: responder directamente al paquete, despertar el host, descartar el paquete, o añadir a la cola de paquetes para su posterior procesamiento en el host cuando está despierto. La Figura 2 muestra el diagrama de flujo de acciones para cada paquete recibido.
Paquetes de bajo nivel, tales como ARP e ICMP pueden ser respondidos directamente. Otros paquetes, tales como un SNMP GET, pueden requerir que el host sea despertado si ese mismo host se encarga de ejecutar el servicio correspondiente al paquete recibido. Un GET de SNMP tiene una duración de vida limitada, que no puede ser puesto en cola para dar respuesta más tarde. Algunos paquetes de solicitud pueden ponerse en cola para su posterior procesamiento en el host cuando se despierte.
Consideramos especialmente dos aplicaciones de red usando cola de paquetes para su posterior procesamiento y donde el proxy puede permitir que un host entre en suspensión. Por ejemplo las aplicaciones de SSH y mensajería instantánea.
Estado de suspensión del host al NCP
El requisito del NCO es conocer en todo momento el estado actual del host que esta cubriendo en determinado momento. Esto depende en gran parte de donde se encuentra ubicado el NCP con respecto a la red. Si el NCP se encuentra localizado fuera del host en suspensión (por ejemplo, en un switch en la red), a continuación la señal del host en suspensión se puede lograr a través de un nuevo proceso que se ejecuta en el host que capta los estados de suspensión y despertar del sistema operativo, y comunica estas interrupciones a la NCP a través de un protocolo basado en paquetes. Un paquete de notificación se define en un campo que puede contener dos valores que pueden significar 1) el anfitrión está entrando en un estado de suspensión, o 2) el anfitrión está despierto después de haber estado en un estado de suspensión. La Figura 3 muestra la arquitectura para el estado de energía de señalización en el que se establece una conexión TCP entre el proceso de host y el punto de control de NCP. El NCP escucha para estas conexiones en un puerto predefinido.
Otros trabajos que buscan el ahorro de energía
La comunidad de red inalámbrica durante mucho tiempo se han interesado en métodos para reducir el consumo de energía de los ordenadores inalámbricos móviles con el fin de aumentar la duración de la batería. Un enfoque que se ha explorado es tener una jerarquía de componentes de hardware que van desde alta potencia y de alta funcionalidad en la parte inferior, y de baja potencia y de bajo funcionalidad en la parte superior. Los componentes de bajo consumo funcionan para los niveles más bajos de alta potencia, y por lo tanto permiten que los componentes de alto poder entrar en suspensión. Un ejemplo de esto es el llamado "Wake on Wireless", donde se utiliza un componente inalámbrico fuera de la banda de un bajo consumo de energía para despertar un PDA de alta potencia. Otro ejemplo es un ordenador portátil con tres niveles de equipamiento, donde los componentes de baja potencia realizan tareas simples de red (tales como el mantenimiento de email actualizado) que permiten a los componentes de potencia superiores entrar en suspensión.
Conclusiones
Esta técnica al igual que muchas otras más existentes son empleadas con el fin de ahorrar energía ya que el incremento del uso de servidores y dispositivos que se mantienen conectados a la red en todo momento ha ido aumentando considerablemente en los últimos años, y lo que se busca son formas para que de alguna forma estos dispositivos de red logren entrar en suspensión mientras no se usen con el fin de ahorrar energía, sin dejar de brindar el servicio para el cuál fueron creados.
Referencia:
A Network Connection Proxy to Enable Hosts to Sleep and Save Energy, de Miguel Jimeno, Ken Christensen y Bruce Nordman