ESTUDIO DE CONTENT DELIVERY NETWORK (RED DE REPARTO DE CONTENIDO) COMO MÉTODO DE DISTRIBUCIÓN DE CONTENIDO Por: Cesar Arturo Villalobos Villalobos Presentado al comité revisor del Instituto de Ingeniería y Tecnología de La Universidad Autónoma de Ciudad Juárez Para obtener el título de INGENIERO EN SISTEMAS DIGITALES Y COMUNICACIONES LA UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ Octubre 2009 ESTUDIO DE CONTENT DELIVERY NETWORK (RED DE REPARTO DE CONTENIDO) COMO MÉTODO DE DISTRIBUCIÓN DE CONTENIDO Los miembros del comité revisor que aprobaron el proyecto de titulación de: Alejandra Mendoza Carreón Presidente de la academia ___________________________________________ Alejandro Barraza Herrera Asesor ___________________________________________ Cesar Villalobos Villalobos Alumno ____________________________________________ Introducción En la actualidad vivimos en una sociedad donde las redes de comunicación han ido creciendo y desarrollándose con una gran intensidad. Día a día las redes de comunicaciones están creciendo aceleradamente, esto nos lleva a analizar de una manera objetiva los diferentes procesos que existen, la demanda que hay en el mundo y la forma en como se distribuyen las redes de comunicación. Cada minuto del día se implementan diferentes métodos para el manejo de las redes de comunicación en diversas áreas de la ciencia, es por eso que existen infinidades de protocolos de redes que nos ayudan a interactuar con otras aplicaciones para poder obtener información de los diferentes contenidos que existen en Internet. Uno de los objetivos principales de las tecnologías que se desarrollan es reducir el tráfico de información en la red para poder tener así un aumento de velocidad en el envío de información, para tal motivo se desarrollan sistemas que permiten distribuir cantidades de paquetes (videos, audio, etc.) a lugares estratégicos para tener una comunicación mucho más corta entre servidor y usuario. Content Delivery Network (CDN) se conforma principalmente de un servidor central al cual estarán conectados otros servidores secundarios (son una imagen del servidor central) y a su vez estarán conectados a un Router (dispositivo donde se conectan equipos finales de usuario) y equipos finales (PC). El funcionamiento es básicamente la interacción de la información en la red de manera transparente entre el usuario y el servidor (imagen) de una manera más rápida y eficaz, de tal manera que se pueda obtener el 50% de velocidad de carga para que su contenido se pueda desplegar de una manera más rápida y eficaz para el usuario. Se simulará el comportamiento del CDN el cual, en teoría, ayudará a reducir en gran medida el tráfico de información y así obtener más velocidad de envío, generando imágenes de su servidor central para implementarlo en los servidores más cercanos al cliente. Antecedentes Limelight Networks es una empresa que cuenta con una red de distribución de información que ofrece servicios bajo demanda y la entrega en tiempo real de video, música, juegos y descargas. Esta empresa maneja un sistema distribuido escalable para la entrega de grandes cantidades de paquetes por medio de la red. Limelight Networks cuenta con una plataforma CDN flexible que le permite dar forma a la CDN para satisfacer las necesidades específicas de cualquier proveedor de contenido. Limelight Networks tiene servidores de alquiler situados en 72 lugares de todo el mundo, incluyendo Nueva York, Los Ángeles, San José, Londres, Ámsterdam, Tokio y Hong Kong. LocalMirror es una compañía privada que ofrece rápidas descargas de contenido de audio/video para los usuarios finales. Su contenido esta muy próximo a los usuarios para una rápida entrega. LocalMirror con servicio CDN soporta virtualmente un número ilimitado de conexiones simultáneas estáticas y no estáticas. Así, la tecnología LocalMirror CDN distribuye las descargas de archivos de audio y transmisión de vídeo de la ubicación más cercana con menor latencia, proporcionando así una mejor experiencia en Internet. Tata Communications CDN ofrece el mayor rendimiento y confiabilidad en la industria y a su vez proporciona acceso inmediato, incluyendo vídeo de alta definición, descargas a mayor rapidez sin perdidas de tiempo y los más altos niveles de rendimiento para los usuarios finales. Value CDN envía contenido físicamente más cerca del usuario final y los servidores de archivos cuentan con una demora mucho más baja que las tradicionales Web de un solo punto. Value CDN es una empresa europea y ofrece múltiples puntos de presencia en América del Norte y en Europa, incluyendo Alemania, Reino Unido, Suecia y otros países. BitGravity es una empresa que cuenta con una red de distribución, establecida en 2006 y proporciona servicios para la entrega de audio, vídeo, software, y publicidad. Se construyó la primera CDN Interactive Broadcasting, que está optimizada para ofrecer precios accesibles, con calidad HD en la demanda, retransmisiones en directo, y aplicaciones interactivas para audiencias masivas en Internet. Marco Teórico CDN es una colección de servidores distribuidos en distintas áreas geográficas para entregar el contenido de manera más eficiente a los usuarios. El servidor seleccionado para la entrega de contenido a un usuario específico se suele basar en una medida de la proximidad de la red. Por ejemplo, el servidor con la menor cantidad de saltos de red o el servidor con el tiempo de respuesta más rápida es el elegido. Beneficios. La suma de la capacidad de los servidores colocados estratégicamente puede ser superior a la capacidad de red troncal. Esto puede resultar en un aumento impresionante en el número de usuarios concurrentes. Los servidores ubicados estratégicamente disminuyen la carga sobre interconexiones en los usuarios públicos y privados, liberando la capacidad y reduciendo los costos de entrega. CDN en general, ofrece contenidos a través de conexiones TCP y UDP. El Protocolo UDP se utiliza sobre todo cuando la velocidad es un factor importante en la transmisión de la información. El rendimiento de TCP se ve afectada por el retrazo y la pérdida de paquetes. Con el fin de reducir estos dos parámetros, CDN establece servidores que se encuentren cerca de los usuarios finales de las redes. En teoría, cuanto más cerca este el contenido y sea más rápida su entrega, será menor el tráfico de paquetes en la red, por lo tanto CDN contribuye a que la distancia entre el cliente y el servidor central deje de ser un factor en la velocidad de descarga. El aumento de la confiabilidad CDN permite a un operador ofrecer contenidos de calidad HD con alta calidad de servicio, bajos costos y baja carga de red. CDN distribuye dinámicamente el contenido en servidores de núcleo de respaldo y de borde estratégicamente ubicados. CDN puede tener la disponibilidad de servidores que detectan instantáneamente el redireccionamiento hacia usuarios finales. Un CDN puede ofrecer una disponibilidad del 100%, incluso en redes de gran alcance. CDN puede darle un mayor control de entrega de paquetes y cargas de la red. Tecnología. Los nodos CDN suelen desplegarse en múltiples lugares, a menudo en múltiples redes troncales. Estos nodos deben de cooperar entre sí para satisfacer las necesidades de los usuarios finales de forma transparente para optimizar el proceso de entrega del contenido en movimiento. La optimización puede adoptar la forma de reducir los costos de ancho de banda, la mejora de rendimiento del usuario final (reduciendo los tiempos de carga de la página y la experiencia del usuario), o aumentar la disponibilidad global de contenidos. El número de nodos y servidores que componen CDN varía, dependiendo de la arquitectura, algunas llegando a miles de nodos con decenas de miles de servidores en muchos PoP (Punto de Presencia por sus siglas en inglés) remoto. Protocolos de servicios de contenido Varios protocolos de red están diseñados para facilitar el acceso a una amplia variedad de servicios de contenidos distribuidos a través de una red. Internet Content Adaptation Protocol (ICAP) fue desarrollado en la década de 1990 para proporcionar un estándar abierto para la conexión de servidores de aplicaciones. Un poco más definida y robusta solución es proporcionada por el Open Pluggable Edge Services (OPES). Esta arquitectura define OPES como una aplicacion de servicios que puede residir en el procesador de OPES o ser ejecutado de forma remota en un servidor. Edge Side Includes (ESI) es un lenguaje de marcas pequeñas para el nivel de borde de la Asamblea de contenido Web dinámico. Metodología Objetivo general Estudiar el método de Content Delivery Network (CDN) y compararlo con el método tradicional para verificar su reducción de tráfico y comprobar su eficiencia teórica. Objetivos específicos • Realizar investigación documental acerca de Content Delivery Network (CDN) • Realizar investigación de algún simulador existente. • Definir que tipo de topología se va a simular. • Desarrollar una topología y simularla. • Definir conclusiones y recomendaciones del proyecto. • Documentación el proyecto • Presentación del proyecto Metas 1. Investigación de fuentes de información sobre Content Delivery Network (CDN). 2. Investigación de fuentes de información del sistema operativo y el simulador. 3. Instalar el simulador a utilizar. 4. Implementar la topología que se va a utilizar. 5. Realizar pruebas de su funcionamiento. 6. Terminar la documentación y reporte del proyecto. 7. Presentar al asesor el documento final para revisión. 8. Realizar ajustes y correcciones finales Acciones Acciones para la meta 1 1.1 Investigar libros sobre Content Delivery Network (CDN) en la biblioteca de la UACJ. 1.2 Investigar en la universidad de UTEP. 1.3 Documentos y archivos de Internet 1.4 Artículos de revistas 1.5 Documentación. Acciones para la meta 2 2.1 Investigar en Internet sus aplicaciones y su funcionamiento. 2.2 Verificar en que sistema operativo puede trabajar el simulador. 2.3 Documentación. Acciones para la meta 3 3.1 Comandos necesarios para su instalación. 3.2 Revisar manuales de uso. 3.3 Tutoriales del simulador. 3.4 Documentación. Acciones para la meta 4 4.1 Analizar el problema para llegar a una solución. 4.2 Adquirir los elementos necesarios para poder estructurar la simulación. 4.3 Documentación. Acciones para la meta 5 5.1 Implementar la topología planteada en el simulador. 5.2 Comprobar su funcionamiento. 5.3 Documentación. Acciones para la meta 6 6.1 Ordenar y agrupas las notas realizadas durante la realización del proyecto. 6.2 Transcribir las notas a un medio electrónico. 6.3 Redactar el documento en base a las notas y lo investigado. 6.4 Documentación. Acciones para la meta 7 7.1 Establecer una cita con nuestro asesor. 7.2 Presentarle el documento final. 7.3 Documentación. Acciones para la meta 8 8.1 Realizar las correcciones indicadas. 8.2 Documentación. Requerimientos y materiales Requerimientos para meta 1: • Credencial de la UACJ • Acceso al sistema bibliotecario de UTEP a través de la UACJ • Computadora con Internet • Puestos de revistas Requerimientos para meta 2: • Computadora para la instalación del sistema operativo y el simulador. • Software de instalación del sistema operativo. • Software de instalación del simulador. Requerimientos para meta 3: • Leer el tutorial de instalación del sistema operativo. • Leer el tutorial de instalación del simulador. Requerimientos para meta 4: • Computadora • Topología. • Simulador. Requerimientos para meta 5: • Computadora • Simulador. Requerimientos para meta 6: • Computadora. Requerimientos para meta 7: • Proyector. • Computadora. • Disposición del asesor para revisar el proyecto. Cronograma Actividad 1.1 Enero Febrero Marzo Abril Mayo Semanas Semanas Semanas Semanas Semanas 3 4 Actividad 1.1 1 Actividad 1.2 1 Actividad 1.3 2 2 3 Actividad 1.4 3 Actividad 1.5 3 Actividad 2.1 Actividad 2.2 Actividad 2.3 4 1 1 2 2 Actividad 3.1 3 Actividad 3.2 3 4 Actividad 3.3 4 Actividad 3.4 4 Actividad 4.1 3 Actividad 4.2 3 4 Actividad 4.3 4 Actividad 5.1 4 1 2 3 Actividad 5.2 4 1 2 3 Actividad 5.3 3 Actividad 6.1 3 4 Actividad 6.2 4 Actividad 6.3 4 Actividad 6.4 4 Actividad 7.1 4 Actividad 7.2 4 Actividad 7.3 4 Actividad 8.1 4 Actividad 8.2 4 Referencias http://en.wikipedia.org/wiki/PoP http://www.mytestbox.com/miscellaneous/content-delivery-networks-cdn-list/ http://www.cs.mu.oz.au/~apathan/CDNs.html http://en.wikipedia.org/wiki/Content_delivery_network http://www.masadelante.com/faqs/udp http://resellersolution.com/blog/laboratorio/content-delivery-network NOTA: NO se encontraron libros en las bibliotecas de ITESM, UACJ ni ITC, por tal motivo se investigo en el Internet. ESTUDIO DE CONTENT DELIVERY/DISTRIBUTION NETWORK (RED DE DISTRIBUCIÓN DE CONTENIDO por César Arturo Villalobos Villalobos Presentado a la academia de Sistemas Digitales y Comunicaciones del Instituto de Ingeniería y Tecnología de La Universidad Autónoma de Ciudad Juárez para su evaluación LA UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ Mayo del 2010 UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ Instituto de Ingeniería y Tecnología EVALUACiÓN DE EXAMEN Fecha: 27 de Mayo del 2010 Horario: 09:00 ­ 11 :00 HRS. PROFESIONAL INTRACURRICULAR NIVEL: LICENCIATURA "Estudio de CONTENT DELlVERY NETWORK (red de reparto de contenido) como método de distribución de contenido" TEMA: La evaluación del examen profesionol intracurricuior consta de 4 partes: (Desorrollado en 1 hora) 1°._ 2°._ 3°._ 4°._ Exposición por porte de los alumnos (móximo 20 minutos). Réplica por porte del jurado. Comentorios y/o recomendaciones. Entrega de resultados. Nombre del alumno: Cesar Arturo Villalobos Villa lobos Calificación Maestro de la materia (30%) 35 Calificación Director de Trabajo (40%) Calificación del Jurado (30%) TOTAL Se recomienda que el documento se deposite poro consulta en la BIBLIOTECA SiO NoO Director de Trabajo Jurado §fl-d~-za-J - Coordinador de la Materia "Proyecto de Titulación" Dr. Víclor Hinoslroza FIRMADO EN ORIGINAL ii RESUMEN Considerando el gran flujo de datos de información que requieren de acceso mas rápido y la dependencia que se vive constantemente sobre las redes de comunicación, se llegó a un punto en que los accesos y las necesidades de adquirir y compartir paquetes de información (voz, datos, video) existe un consumo excesivo de recursos (enlaces LAN, WAN),en busca de mejorar la funcionalidad dentro de las redes ha llevado a los investigadores al encuentro de nuevas técnicas, para ello en el camino de la investigación se encontró con Content Distribution/Delivery Network (CDN) el cual nos da una reducción de costos en recursos y tiempo, pues al evitar saltos y congestión en la red el cliente/usuario final puede tener un acceso a la información requerida de una forma rápida y eficaz. CDN es una colección de servidores sustitutos que se encuentran distribuidos estratégicamente en distintas áreas geográficas y su funcionamiento es mediante los protocolos TCP/IP, ICAP, PPP, NAT, UDP, HTTP, RTP y RTSP. iii DECLARACIÓN DE ORIGINALIDAD Yo César Arturo Villalobos Villalobos declaro que el material contenido en este documente es original y no ha sido copiado de ninguna otra fuente, ni ha sido usado para obtener otro título o reconocimiento en otra institución de educación superior. ____________________________ César Arturo Villalobos Villalobos iv AGRADECIMIENTOS Deseo expresar mi gratitud al asesor y al maestro titular de la materia por su apoyo, comprensión, tiempo y guía que me dedicaron a través de este proyecto, a los miembros del comité revisor, así como a mi familia por brindarme su compañía en los buenos y malos momentos. Deseo dedicar todos mis logros principalmente a Dios, primero al colocarme en esta institución y en segundo por iluminar mi camino en el desarrollo de este proyecto. Gracias Mayo 2010 v DEDICATORIA A mis padres por darme el apoyo necesario para seguir adelante, a mi familia y amigos por impulsarme en esos momentos difíciles y a mi novia y futura esposa por estar siempre a mi lado en las buenas y en las malas. A mi asesor el Ing. Alejandro Barraza Herrera por su tiempo que me dedico, por su apoyo y por guiarme en este trabajo. Así como también al Dr. Víctor Hinostroza por su ayuda, compresión y paciencia. vi LISTA DE FIGURAS Figuras Página Figura 2.1 Arquitectura del CDN ··············································································· 3 Figura 2.2 Contenido y Servicios CDN ······································································ 4 Figura 2.3 Función del protocolo RTSP ······································································ 6 Figura 3.1 Capas del Modelo TCP/IP ······································································· 10 Figura 3.2 Comparación entre el Modelo OSI y Modelo TCP/IP ······························ 11 Figura 4.1 Políticas para el redireccionamiento ························································· 21 Figura 4.2 Configuración de la Topología ································································· 23 Figura 4.3 Archivos Web y Tráfico ··········································································· 25 Figura 4.4 Servidores Sustitutos ················································································ 27 Figura 4.5 Almacenamiento de Bottle········································································ 28 Figura 4.6 Comportamiento sin CDN ······································································· 32 Figura 4.7 Comportamiento con CDN······································································· 33 Figura 4.8 Comportamiento final de CDN································································· 34 vii LISTA DE TABLAS Tablas Página Tabla 3.1. Protocolos del Modelo TCP/IP ································································ 15 Tabla 4.1. Comandos para Linux (Ubuntu) ······························································· 19 Tabla 4.2 Topología de Ruteadores ········································································· 24 Tabla 4.3 Topología de la Web·················································································· 26 Tabla 4.4 Topología del Tráfico ················································································ 26 Tabla 4.5 Topología de Servidores Sustitutos···························································· 29 Tabla 4.6 Contenido de información sin CDN··························································· 31 Tabla 4.7 Contenido de información con CDN·························································· 32 Tabla 4.8 Resultados finales de CDN ········································································ 34 viii LISTA DE ACRÓNIMOS CDN Content Delivery/Distribution Network (Red de Entrega/Distribución de Contenido). TCP Transmission Control Protocol (Protocolo de Control Transmisión). IP Internet Protocol (Protocolo de Internet). UDP User Datagram Protocol (Protocolo de Datagrama de Usuario). HD High Definition Video (Video de Alta Definición). PoPs Point of Presence (Punto de Presencia). ICAP Content Adaptation Protocol (Protocolo de Adaptación de Contenido de Internet). OPES Open Pluggable Edge Service (Servicio de Borde Pluggable Abierto). SMTP Simple Mail Transfer Protocol (Protocolo de Transferencia Simple de Correo). DNS Domain Name Service (Protocolo Servicio de Nombres de Dominio). HTTP Hypertext Transfer Protocol (Protocolo de Transferencia de Hipertexto). WWW World Wide Web (Red Global). DARPA Defense Advanced Research Projects Agency (Agencia de Investigación de Proyectos Avanzados de Defensa). GATEWAY Puerta de Enlace. ARPANET Advanced Research Projects Agency Network (Red de Investigación de Proyectos Avanzados de la Agencia). MILNET Military Network (Red Militar). LAN Local Area Network (Red de Área Local). WAN Wide Area Network (Red de Área Amplia). NCP Network Control Program (Programa del Control de la Red). BBN Bolt, Beranek and Newman (Empresa de Tecnología). ISO International Organization for Standardization (Organización Internacional de Normalización). ix NAT Network Address Translation (Traducción de Dirección de Red). RTP Real-time Transport Protocol (Protocolo de Transporte de Tiempo real). RTSP Real Time Streaming Protocol (Protocolo de Streaming en Tiempo Real). PPP Point-to-point Protocol (Protocolo punto a punto). HTTP Hypertext Transfer Protocol (Protocolo de Transferencia de Hipertexto). ICMP Internet Control Message Protocol (Protocolo de Mensajes de Control de Internet). FTP File Transfer Protocol (Protocolo de Transferencia de Archivos). RTC Real-time Clock (Reloj en Tiempo real). TELNET TELecommunication NETwork (Red de Telecomunicaciones). x CONTENIDO RESUMEN..................................................................................................................iii DECLARACIÓN DE ORIGINALIDAD .................................................................iv AGRADECIMIENTOS .............................................................................................. v DEDICATORIA.........................................................................................................vi LISTA DE FIGURAS ...............................................................................................vii LISTA DE TABLAS ................................................................................................viii LISTA DE ACRÓNIMOS.........................................................................................ix CONTENIDO .............................................................................................................xi CAPÍTULO 1 INTRODUCCIÓN ............................................................................. 1 CAPÍTULO 2 RED DE DISTRUBUCIÓN DE CONTENIDO (CDN) .................. 3 2.1. Definición........................................................................................................... 3 2.2. Beneficios........................................................................................................... 4 2.3. Tecnología del CDN .......................................................................................... 5 CAPÍTULO 3 MODELO TCP/IP. ............................................................................ 7 3.1. Historia............................................................................................................... 7 3.2. Introducción ....................................................................................................... 8 3.3. Definición........................................................................................................... 9 3.4. Protocolos más conocidos................................................................................ 15 CAPÍTULO 4 RESULTADOS ................................................................................ 16 4.1 Instalación del sistema operativo ...................................................................... 16 4.2 Creación de Bottle (Topología Cuello de Botella)............................................ 20 4.3 Creación del reporte de la Topología................................................................ 30 4.4 Pruebas del simulador sin CDN ........................................................................ 31 4.5 Pruebas del simulador con CDN …..……………………………………….....31 CAPÍTULO 5 CONCLUSIONES............................................................................ 35 BIBLIOGRAFÍA....................................................................................................... 36 APÉNDICE…………………………………………………………………………39 xi CAPÍTULO 1 INTRODUCCIÓN En la actualidad vivimos en una sociedad donde las redes de comunicación han ido creciendo y desarrollándose con una gran velocidad. Día a día las redes de comunicaciones están creciendo aceleradamente, esto nos lleva a analizar de una manera objetiva los diferentes procesos que existen, la demanda del tráfico de información que hay en el mundo y la forma en como se distribuyen las redes de comunicación. Cada minuto del día se implementan diferentes métodos para el manejo de las redes de comunicación en diversas áreas de la ciencia, es por eso que existen infinidades de protocolos de redes que nos ayudan a interactuar con otras aplicaciones para poder obtener información de las páginas Web. El objetivo principal del proyecto es estudiar el método de CDN para verificar su reducción de tráfico en la red y comprobar su eficiencia teórica, por tal motivo se simulará un sistema que permita distribuir cantidades de paquetes (videos, audio, etc.) a una distancia mucho mas corta entre servidor y usuario. El sistema se conforma principalmente de un servidor central en el cual estarán conectados otros servidores secundarios (servidores sustitutos) y a su vez están conectados a ruteadores y equipos finales (PC). El funcionamiento es básicamente la interacción de la información en la red de manera transparente entre el usuario y el servidor sustituto de una manera más rápida y eficaz, de tal manera que se pueda obtener un ahorro del 50% de velocidad de descarga, para que su contenido se pueda desplegar de una manera más rápida y eficaz para el usuario. En este proyecto se simulará el comportamiento del Content Delivery/Distribution Network (CDN), el cual, en teoría, ayudará a reducir en gran medida el tráfico de información y así obtener el mayor ahorro posible en la descarga de la información. Se generaran servidores sustitutos con la información adecuada de su servidor central para que sus usuarios finales puedan descargas de una manera más rápida, por consiguiente se busca reducir el tráfico en la red debido a que existe una gran 1 demanda de descargas de video y música, los cuales saturan el envío de información por medios de la red. 2 CAPÍTULO 2 RED DE DISTRUBUCIÓN DE CONTENIDO (CDN) 2.1. Definición Content Delivery/Distribution Networks (CDN), se desarrolló por primera vez en 1998, CDN es una colección de servidores distribuidos en distintas áreas geográficas para entregar el contenido de manera más eficiente a los usuarios. El servidor seleccionado para la entrega de contenido a un usuario específico se suele basar en una medida de la proximidad de la red. Por ejemplo, el servidor con la menor cantidad de saltos de red o el servidor con el tiempo de respuesta más rápida es el elegido. Replica del servidor Original Replica del servidor Original Servidor Original Replica del servidor Original Figura 2.1 Arquitectura del CDN La figura 2.1 muestra una colección de servidores Web distribuidos en varias ubicaciones para entregar el contenido de manera más eficiente a los usuarios. CDN contiene páginas Web basadas en solicitudes de los usuarios, lo cual se recuperan desde el servidor de origen y se envían al usuario con el contenido de la Web del servidor sustituto. Así, el usuario termina la comunicación con un servidor CDN 3 sustituto y recupera los archivos de ese servidor. Esto le ayudará a escalar una aplicación Web, a una parte de la carga de los servidores de servicios. Celular Servicios y Contenidos Clientes Figura 2.2 Contenido y Servicios CDN El proveedor de CDN acoge los servicios para una rápida distribución de cualquier contenido digital, incluyendo el contenido estático (por ejemplo, páginas HTML, imágenes, documentos, software, etc.), streaming de medios de comunicación (por ejemplo, audio, video en tiempo real, etc.) y diversos servicios de contenidos (por ejemplo, servicio de directorio, el comercio electrónico, transferencia de archivos de servicios, etc.). La figura 2.2 muestra los diferentes servicios de contenido atendidos por el CDN a diferentes clientes. 2.2. Beneficios La suma de la capacidad de los servidores colocados estratégicamente puede ser superior a la capacidad de red troncal. Esto puede resultar en un aumento impresionante en el número de usuarios concurrentes. Por ejemplo, cuando hay 10 GBit/s de la red troncal y 100 GBit/s de la capacidad del servidor central, sólo 10 GBit/s pueden ser entregados. Pero cuando 10 servidores se mueven a 10 GBit/s su localización puede ser 10*10 GBit/s = 100 GBits/s. Los servidores ubicados 4 estratégicamente disminuyen la carga sobre interconexiones en los usuarios públicos y privados, liberando la capacidad y reduciendo los costos de entrega. CDN en general, ofrece contenidos a través de conexiones de Transmission Control Protocol (TCP) y User Datagram Protocol (UDP). El Protocolo UDP se utiliza sobre todo cuando la velocidad es un factor importante en la transmisión de la información. El rendimiento de TCP se ve afectada por el retrazo y la pérdida de paquetes. Con el fin de reducir estos dos parámetros, CDN establece servidores que se encuentren cerca de los usuarios finales de las redes. En teoría, cuanto más cerca se encuentre el contenido y sea más rápida su entrega, será menor el tráfico de paquetes en la red, por lo tanto CDN contribuye a que la distancia entre el cliente y el servidor central deje de ser un factor en la velocidad de descarga. El aumento de la confiabilidad CDN permite a un operador ofrecer contenidos de High Definition Video (HD) con alta calidad de servicio, bajos costos y baja carga de red. CDN distribuye dinámicamente el contenido en servidores de núcleo de respaldo y de borde estratégicamente ubicados. CDN puede tener la disponibilidad de servidores que detectan instantáneamente el redireccionamiento hacia usuarios finales. Un CDN puede ofrecer una disponibilidad del 100 %, incluso en redes de gran alcance. CDN puede darle un mayor control de entrega de paquetes y cargas de la red. 2.3. Tecnología del CDN Los nodos CDN suelen desplegarse en múltiples lugares, a menudo en múltiples redes troncales. Estos nodos deben de cooperar entre sí para satisfacer las necesidades de los usuarios finales de forma transparente para optimizar el proceso de entrega del contenido en movimiento. La optimización puede adoptar la forma de reducir los costos de ancho de banda, la mejora de rendimiento del usuario final (reduciendo los tiempos de carga de la página y la experiencia del usuario), o aumentar la disponibilidad global de contenidos. El número de nodos y servidores que componen CDN varía, dependiendo de la arquitectura, algunas llegando a miles de nodos con 5 decenas de miles de servidores en muchos Point of Presence (PoPs). Otros construyen una red mundial y tienen un número reducido de PoPs geográfica. CDN aumenta de extremo a extremo de la red de transporte, mediante la distribución en una variedad de aplicaciones inteligentes utilizando técnicas diseñadas para optimizar la entrega de contenido. Protocolos de servicios de contenidos Varios protocolos de red están diseñados para facilitar el acceso a una amplia variedad de servicios de contenidos distribuidos a través de una red. El Internet Content Adaptation Protocol (ICAP) fue desarrollada en la década de 1990 para proporcionar un estándar abierto para la conexión de servidores de aplicaciones. Un poco más definida y robusta solución es proporcionada por la organización Open Pluggable Edge Services (OPES). RTP.- Protocolo de nivel de sesión utilizado para la transmisión de información en tiempo real, como por ejemplo audio y vídeo. RTSP.- Protocolo de flujo de datos en tiempo real, el cual establece y controla uno o muchos flujos sincronizados de datos, ya sean de audio o de video. Figura 2.3 Función del protocolo RTSP 6 CAPÍTULO 3 MODELO TCP/IP. 3.1. Historia A principios de los años 60, varios investigadores intentaban encontrar una forma de compartir recursos informáticos de una forma más eficiente. En 1961, Leonard Klienrock introdujo el concepto de conmutación de paquetes. La idea comprendía en que la comunicación se dividiera en paquetes para una mejor distribución. En 1969 la Agencia de Proyectos de Investigación Avanzada DARPA (Defense Advanced Research Projects Agency) del Ejército de los EEUU desarrolla la ARPANET. La finalidad de la creación de esta red es que resistiera un ataque de la URSS (Unión de Repúblicas Socialistas Soviéticas), por tal motivo no importaba si algún servidor dejara de funcionar o se quemara, siempre y cuando la red seguiría funcionando correctamente. Esta red no era tan buena como se creía pues estaba sujeta a periódicas caídas del sistema, por lo cual se empezó a crear un conjunto de protocolos de uso fácil para ella y dicha búsqueda finalizó, a mediados de los 70, con el desarrollo de TCP/IP. Bolt, Beranek and Newman (BBN) Technologies, la Universidad de Stanford, y la Escuela Universitaria de Londres contrató a DARPA para desarrollar versiones operacionales del protocolo en diferentes plataformas de hardware. Se desarrollaron así cuatro versiones diferentes: TCP v1, TCP v2, una tercera dividida en dos TCP v3 e IP v3 en la primavera de 1978, y después se estabilizó la versión TCP/IP v4 — el protocolo estándar que todavía se emplea en Internet. Con el papel que realizaban las redes en el proceso de comunicación reducido al mínimo, se convirtió en una posibilidad real comunicar redes diferentes, sin importar las características que éstas tuvieran. Hay un dicho popular sobre el protocolo TCP/IP, que fue el producto final desarrollado por Cerf y Kahn, que dice que este protocolo acabara funcionando incluso entre "dos latas unidas por un cordón". Esta idea fue llevada a la práctica de una forma mas detallada por el grupo de investigación que Cerf tenía en Stanford durante el periodo de 1973 a 1974, dando como resultado la primera especificación 7 TCP. En marzo de 1982, el Departamento de Defensa de los Estados Unidos declaró al protocolo TCP/IP el estándar para las comunicaciones entre redes militares. El TCP/IP adquirió muchas ventajas en comparación con otros protocolos, alguno de ellos es que consume pocos recursos de red. Gracias a esto TCP/IP empezó a tener gran popularidad. En 1983, TCP/IP se integro al sistema UNIX de Berkeley y su integración comercial de UNIX llego pronto. En ese momento TCP/IP se convirtió en un protocolo estándar de Internet. La migración completa de la red ARPANET al protocolo TCP/IP concluyó oficialmente el día 1 de enero de 1983 cuando los protocolos fueron activados permanentemente. Hoy en día el protocolo TCP/IP es utilizado entre la comunicación de la mayoría de los ordenadores y ofrece una gran comunicación en protocolos de red, por tal motivo TCP/IP puede trabajar con varios hardware y sistemas operativos. Gracias a esto la comunicación entre Mac, PC compatibles y Servidores Novell es mucho más fácil. 3.2. Introducción Internet se desarrolló para brindar una red de comunicación que pudiera continuar funcionando en tiempos de guerra. Aunque la Internet ha evolucionado en formas muy diferentes a las imaginadas por sus arquitectos, todavía se basa en un conjunto de protocolos TCP/IP. El diseño de TCP/IP es ideal para la poderosa y descentralizada red que es Internet. Todo dispositivo conectado a Internet que desee comunicarse con otros dispositivos en línea debe tener un identificador exclusivo. El identificador se denomina dirección IP. Una dirección IP es un número que identifica de manera lógica y jerárquica a una interfaz de un dispositivo dentro de una red que utilice el protocolo IP (Internet Protocol), que corresponde al nivel de red o nivel 3 del modelo de referencia OSI. IPv4 (la versión actual de IP) se diseñó antes de que se produjera la explosión de la red, lo que produjo una gran demanda de direcciones IP, que hizo que los cuatro mil millones de direcciones posibles fueran insuficientes. La división en subredes, la 8 traducción de direcciones en red (NAT) y el direccionamiento privado se utilizan para extender el direccionamiento IP sin agotar el suministro. Además de la dirección física MAC, cada computador necesita de una dirección IP exclusiva, a veces llamada dirección lógica, para formar parte de la Internet. Varios son los métodos para la asignación de una dirección IP a un dispositivo. Algunos dispositivos siempre cuentan con una dirección estática, mientras que otros cuentan con una dirección temporaria que se les asigna cada vez que se conectan a la red. Cada vez que se necesita una dirección IP asignada dinámicamente, el dispositivo puede obtenerla de varias formas. 3.3. Definición El TCP/IP es la base de Internet, y sirve para comunicar todo tipo de dispositivos, computadoras que utilizan diferentes sistemas operativos, minicomputadoras y computadoras centrales sobre redes de área local (LAN) y área extensa (WAN). TCP/IP se suele confundir muchas veces con un protocolo de comunicaciones concreto, cuando, en realidad, es una compleja arquitectura de red que incluye varios de ellos, apilados por capas. Sin lugar a dudas TCP/IP es el protocolo de red más utilizada del mundo, ya que es la base de comunicación de Internet y también se utiliza ampliamente en las distintas versiones de los sistemas operativos Unix y Linux (aunque debido a su gran utilización ha sido también implantado en otros sistemas como Windows). En el año 1973, el DoD (Departamento de Defensa de Estados Unidos) inició un programa de investigación para el desarrollo de tecnologías de comunicación de redes de transmisión de datos. El objetivo fundamental era desarrollar una red de comunicación que cumpliera las siguientes características: ¾ Permita interconectar redes diferentes. Esto quiere decir que la red en general puede estar formada por tramos que usan tecnologías de transmisión diferente. 9 ¾ Sea tolerante a fallas. El DoD deseaba una red que fuera capaz de soportar ataques terrorista o incluso alguna guerra nuclear sin perderse datos y poder seguir teniendo acceso a las comunicaciones establecidas. ¾ Permita el uso de aplicaciones diferentes: Transferencia de archivos, comunicación en tiempo real, etc. Todos estos objetivos implicaron el diseño de una red con topología irregular donde la información se fragmentaba para seguir rutas diferentes hacia el destinatario. Si alguna de estas rutas fallaba repentinamente, la información podría seguir rutas alternativas. Así, surgieron dos redes distintas: una dedicada a la investigación, ARPANET, y otra de uso exclusivo militar, MILNET. EL Modelo TCP/IP esta compuesto por cuatro capas o niveles, cada nivel se encarga de determinados aspectos de la comunicación y a su vez brinda un servicio específico a la capa superior. Estas capas se muestran en la figura 3.1. Algunas de las capas del modelo TCP/IP poseen el mismo nombre que las capas del modelo OSI. Resulta fundamental no confundir las funciones de las capas de los dos modelos ya que si bien tienen aspectos en común, estas desempeñan diferentes funciones en cada modelo. Figura.3.1 Capas del Modelo TCP/IP 10 Capa de Aplicación: Maneja protocolos de alto nivel, aspectos de representación, codificación y control de diálogo. El modelo TCP/IP combina todos los aspectos relacionados con las aplicaciones en una sola capa y asegura que estos datos estén correctamente empaquetados antes de que pasen a la capa siguiente. TCP/IP incluye no sólo las especificaciones de Internet y de la capa de transporte, tales como IP y TCP, sino también las especificaciones para aplicaciones comunes. TCP/IP tiene protocolos que soportan la transferencia de archivos, e-mail, y conexión remota, además de los siguientes: Figura.3.2 Comparación entre el Modelo OSI y Modelo TCP/IP FTP (Protocolo de transferencia de archivos): es un servicio confiable orientado a conexión que utiliza TCP para transferir archivos entre sistemas que admiten la transferencia FTP. Permite las transferencias bidireccionales de archivos binarios y archivos ASCII. TFTP (Protocolo trivial de transferencia de archivos): es un servicio no orientado a conexión que utiliza el Protocolo de Datagrama de usuario (UDP). Es útil en algunas LAN porque opera más rápidamente que FTP en un entorno estable. NFS (Sistema de archivos de red): es un conjunto de protocolos para un sistema de archivos distribuido, desarrollado por Sun Microsystems que permite 11 acceso a los archivos de un dispositivo de almacenamiento remoto, por ejemplo, un disco duro a través de una red. SMTP (Protocolo simple de transferencia de correo): administra la transmisión de correo electrónico a través de las redes informáticas. No admite la transmisión de datos que no sea en forma de texto simple. TELNET (Emulación de terminal): Telnet tiene la capacidad de acceder de forma remota a otro computador. Permite que el usuario se conecte a un Host de Internet y ejecute comandos. El cliente de Telnet recibe el nombre de Host local. El servidor de Telnet recibe el nombre de Host remoto. SNMP (Protocolo simple de administración de red): es un protocolo que provee una manera de monitorear y controlar los dispositivos de red y de administrar las configuraciones, la recolección de estadísticas, el desempeño y la seguridad. DNS (Sistema de denominación de dominio): es un sistema que se utiliza en Internet para convertir los nombres de los dominios y de sus nodos de red publicados abiertamente en direcciones IP. Capa de Transporte: Proporciona servicios de transporte desde el Host origen hacia el Host destino. En esta capa se forma una conexión lógica entre los puntos finales de la red, el Host transmisor y el Host receptor. Los protocolos de transporte segmentan y reensamblan los datos mandados por las capas superiores en el mismo flujo de datos, o conexión lógica entre los extremos. La corriente de datos de la capa de transporte brinda transporte de extremo a extremo. Se suele decir que Internet es una nube. La capa de transporte envía los paquetes de datos desde la fuente transmisora hacia el destino receptor a través de la nube. El control de la comunicación de extremo a extremo que se proporciona con las ventanas deslizantes y la confiabilidad de los números de secuencia y acuses de recibo, es la función básica de la capa de transporte cuando utiliza TCP. La capa de transporte también define la conectividad 12 entre las aplicaciones de los Host. Los servicios de transporte incluyen los siguientes protocolos: TCP Y UDP. ¾ Segmentación de los datos de capa superior ¾ Envío de los segmentos desde un dispositivo en un extremo a otro dispositivo en otro extremo. Características del protocolo TCP ¾ Establecimiento de operaciones de punta a punta. ¾ Control de flujo proporcionado por ventanas deslizantes. ¾ Confiabilidad proporcionada por los números de secuencia y los acuses de recibo. Se dice que Internet es una nube, por que los paquetes pueden tomar múltiples rutas para llegar a su destino, generalmente los saltos entre routers se representan con una nube que representa las distintas posibles rutas. La capa de transporte envía los paquetes de datos desde la fuente transmisora hacia el destino receptor a través de la nube. La nube maneja los aspectos tales como la determinación de la mejor ruta, balanceo de cargas, etc. Capa de Internet: Esta capa tiene como propósito seleccionar la mejor ruta para enviar paquetes por la red. El protocolo principal que funciona en esta capa es el Protocolo de Internet (IP). La determinación de la mejor ruta y la conmutación de los paquetes ocurren en esta capa. Protocolos que operan en la capa de Internet: IP (Protocolo de Internet) proporciona un enrutamiento de paquetes no orientado a conexión de máximo esfuerzo. El IP no se ve afectado por el contenido de los paquetes, sino que busca una ruta de hacia el destino. 13 ICMP (Protocolo de Mensajes de Control de Internet) suministra capacidades de control y envío de mensajes. ARP (Protocolo de resolución de direcciones) determina la dirección de la capa de enlace de datos, la dirección MAC, para las direcciones IP conocidas. RARP (Protocolo de resolución inversa de direcciones) determina las direcciones IP cuando se conoce la dirección MAC. Funciones del Protocolo IP ¾ Define un paquete y un esquema de direccionamiento. ¾ Transfiere los datos entre la capa Internet y las capas de acceso de red. ¾ Enruta los paquetes hacia los Host remotos. A veces, se considera a IP como protocolo poco confiable. Esto no significa que IP no enviará correctamente los datos a través de la red. Llamar al IP, protocolo poco confiable simplemente significa que IP no realiza la verificación y la corrección de los errores. De esta función se encarga TCP, es decir el protocolo de la capa superior ya sea desde las capas de transporte o aplicación. Capa de Acceso de Red (También Capa de Host de Red): Esta es la capa que maneja todos los aspectos que un paquete IP requiere para efectuar un enlace físico real con los medios de la red. Esta capa incluye los detalles de la tecnología LAN y WAN y todos los detalles de la capa física y de enlace de datos del modelo OSI. Los controladores para las aplicaciones de software, las tarjetas de módem y otros dispositivos operan en la capa de acceso de red. La capa de acceso de red define los procedimientos para realizar la interfaz con el hardware de la red y para tener acceso al medio de transmisión. Los estándares del protocolo de los módem tales como el Protocolo Internet de enlace serial (SLIP) y el Protocolo de punta a punta (PPP) brindan acceso a la red a través de una conexión por módem. Debido a un intrincado juego entre las especificaciones del hardware, el software y los medios de 14 transmisión, existen muchos protocolos que operan en esta capa. Esto puede generar confusión en los usuarios. La mayoría de los protocolos reconocibles operan en las capas de transporte y de Internet del modelo TCP/IP. 3.4. Protocolos más conocidos Los protocolos de capa de aplicación de TCP/IP más conocidos son aquellos que proporcionan intercambio de la información del usuario. Estos protocolos especifican la información de control y formato necesaria para muchas de las funciones de comunicación de Internet más comunes. Algunos de los protocolos más importantes del modelo TCP/IP se muestran en la tabla 3.1. TELNET LAN FTP HTTP TCP UDP IP ICMP RTC APLICACIÓN TRANSPORTE INTERNET PPP RED Tabla 3.1 Protocolos del Modelo TCP/IP 15 CAPÍTULO 4 RESULTADOS 4.1 Instalación de sistema operativo Se realizaron varias instalaciones de diferentes sistemas operativos para hacer pruebas del funcionamiento del simulador que se utilizó (CDNsim) y se arrojaron las siguientes características y problemas que se suscitaron en el proceso: Fedora para Linux ¾ Se consiguió el sistema operativo Fedora en el laboratorio de Redes para hacer pruebas y ver si era el adecuado para el simulador. ¾ Se instaló el sistema operativo en una Laptop HP Pavilion dv1000 con 512 MB de RAM y 20 GB de disco duro. ¾ Se realizó la búsqueda de comandos para la instalación del simulador debido a que no tenía conocimiento del funcionamiento del sistema operativo. ¾ Se bajo el manual para la instalación del simulador. ¾ Se intentó instalar el simulador pero me marcaba que necesitaba instalar 3 librerías (G++, Python 2.1, Bison) y un ejecutable (Ubuntu). ¾ Se descargaron dos de las librerías que se requerían (Bison y Python 2.1), la librería de G++ no se pudo descargar debido a que no se encontró un archivo para descargar y el sistema operativo de Fedora no contaba con ella. ¾ Al ver que no se podía instalar el simulador en Fedora opte por intentar instalarlo en otro sistema operativo de Linux. Suse para Linux ¾ Se consiguió el sistema operativo Suse en el laboratorio de Redes para hacer pruebas y ver si era el adecuado para el simulador. ¾ Se instaló el sistema operativo en una Laptop HP Pavilion dv1000 con 512 MB de RAM y 20 GB de disco duro. ¾ Se bajo el manual para la instalación del simulador. 16 ¾ Se batalló un poco en la instalación del sistema debido a que contaba con otras funciones más sofisticadas (servidores Web, etc.) y me marcaba un error al finalizar la instalación (servidor http) pero así finalizó la instalación del Suce. ¾ Lo intente instalar de diferentes formas y en varias ocasiones y el problema era el mismo al finalizar, pero ese error si permitía entrar al sistema. ¾ Se realizó la búsqueda de comandos para la instalación del simulador debido a que no tenía conocimiento del funcionamiento del sistema operativo. ¾ Se intentó instalar el simulador pero me marcaba que necesitaba instalar 3 librerías (G++, Python 2.1, Bison) y un ejecutable (Ubuntu). ¾ Se descargaron dos de las librerías que se requerían (Bison y Python 2.1), la librería de G++ no se pudo descargar debido a que no se encontró un archivo para descargar y el sistema operativo de Suse no contaba con ella. ¾ Al ver que no se podía instalar el simulador en Suse opte por intentar instalarlo en otro sistema operativo de Linux. Ubuntu para Linux ¾ Se descargo el sistema operativo Ubuntu 9.1 para hacer pruebas y ver si era el adecuado para el simulador. ¾ Se instaló el sistema operativo en una Laptop HP Pavilion dv1000 con 512 MB de RAM y 20 GB de disco duro. ¾ Se realizó la búsqueda de comandos para la instalación del simulador debido a que no tenía conocimiento del funcionamiento del sistema operativo. ¾ Se bajo el manual para la instalación del simulador. ¾ Se descargo el archivo CDNsim.tar.gz. ¾ Al momento de instalar el simulador no me pidió ninguna de las librerías que en los otros sistemas operativos me marcaba debido a que el sistema contaba con todas las librerías. ¾ Se instaló el simulador y se bajo un tutorial para ver como era su funcionamiento. 17 Después de hacer varias pruebas del funcionamiento del simulador en el sistema operativo de Ubuntu 9.1 opte por instalarlo en una PC de escritorio (mayor capacidad de disco duro y un mejor procesador) siguiendo los siguientes pasos: ¾ Se descargo el sistema operativo Ubuntu 9.1 para hacer pruebas y ver si era el adecuado para el simulador. ¾ Se instaló el sistema operativo en una PC de escritorio DELL Optiplex Gx260 con 1GB de RAM y 80 GB de disco duro. ¾ Se realizó la búsqueda de comandos para la instalación del simulador debido a que no tenía conocimiento del funcionamiento del sistema operativo. ¾ Se bajo el manual para la instalación del simulador. ¾ Al momento de instalar el simulador no me pidió ninguna de las librerías que en los otros sistemas operativos me marcaba debido a que el sistema contaba con todas las librerías. ¾ Se instaló el simulador y se bajo un tutorial para ver como es su funcionamiento. Comandos para Ubuntu La tabla 4.1 muestra una lista de comandos que Ubuntu requiere para poder instalar aplicaciones y actualizaciones del sistema operativo para poder tener un funcionamiento adecuado. Comando Descripción cd nom_directorio Cambia de directorio. cd .. cd cp archivo1 archivo2 Sube un nivel de directorios Vas a la ubicación donde estabas antes. Copia archivo1 como archivo2 (nuevo manteniendo el original. cp archivo /directorio Copia archivo en directorio manteniendo nombre y el original. mv archivo1 archivo2 Renombra archivo1 en archivo2 nombre) 18 Comando Descripción mv archivo /directorio rm archivo rm -rf directorio Mueve archivo dentro de directorio Borra archivo Borra el directorio con todo lo que tenga dentro sin pedir confirmación. Lista los archivos de un determinado directorio Lista también las propiedades y atributos Lista todos los archivos, incluidos los ocultos y los del sistema. Visualiza el directorio actual o de trabajo. Muestra el listado de comandos usados por el usuario (~/.bash_history). Muestra el espacio libre en el disco duro. Apaga el equipo. Reinicia el equipo. Apaga el equipo. Reinicia el equipo. Cambia la contraseña del usuario. Permite indicar que usuario ejecuta que comandos de root. Herramienta empaquetadora/compresora de archivos. Herramienta de actualización/instalación remota de paquetes, distros basadas en rpm (usada en Fedora, Redhat y derivados). Copia archivos. Muestra el nombre de usuario. Borra la pantalla. Completa nombre de carpetas o archivos. ls ls –l ls –a Pwd History Df Halt Reboot shutdown -h now shutdown -r now Passwd sudo Tar Yum Cp logname clear tab Tabla 4.1 Comandos para Linux (Ubuntu) Instalación del Simulador ¾ Se mueve el archivo CDNsim.tar al directorio Home y después se ejecutan en la terminal los siguientes comandos: cd ~ / tar xf CDNsim.tar cd CDNsim 19 ¾ Después de descomprimir y ver que se creo una carpeta en home con el nombre de CDNsim se debe de ejecutar el siguiente comando: cd home/CDNsim/CDNsim . / Ubuntu.sh ¾ En este proceso se instalaran todas y cada una de las librerías que se requieres (G + +, Bisonte, Boost libraries y Python wxGTK). ¾ Para finalizar la instalación solo es necesario ejecutar el último comando y esperar a que termine el proceso: . / Runme.sh CDNsim compilará, se debe asegurar de que no existe ningún error (errores no advertencias). Si aparecen errores, se debe verificar que los paquetes necesarios están instalados. También se puede ver si los mensajes de error incluyen información sobre los paquetes que faltan que no sea el mencionado. 4.2 Creación de Bottle (Topología de Cuellos de botellas). Un Bottle es un cuello de botella donde se almacena toda la información de los archivos creados para el simulador de CDNsim. Los archivos del simulador se almacenan en una carpeta dentro de la unidad c:\ como un archivo CDNsim.tar esto nos lleva a seguir los siguientes pasos para la creación de un Bottle: Paso 1 ¾ Se abre la terminal de Ubuntu. 20 Paso 2 ¾ Se ejecutan los siguientes comandos (la ruta cambia según sea necesario): cd ~ / cd CDNsim/CDNsim/CDNsimgui Python CDNsim.py Paso 3 La primera pantalla que aparece define la política de redirección de CDN. El cliente es redirigido a un servidor de alquiler de acuerdo con la política. Después de un error de caché el servidor sustituto es redirigido también de acuerdo con la misma política. Figura 4.1 Políticas para el redireccionamiento ¾ Cooperative Environment (Cooperación ambiental).- El cliente se redirige al servidor mas cercano de sustitución en términos de saltos de red. Después de un error de caché, el servidor sustituto recupera el objeto del servidor mas cercano de la madre sustituta alternativa que contiene el objeto solicitado. El objeto se almacena en la cache y luego se sirve al cliente. 21 ¾ Non - Cooperative Environment (No cooperativo del medio ambiente).- El cliente se redirige al servidor mas cercana de sustitución en términos de saltos de red. Después de un error de caché, el servidor sustituto recupera el objeto desde el servidor mas cercano de origen, la almacena e la memoria caché y lo sirve al cliente. ¾ Cooperative Environment (Cooperativo para el medio ambiente).- El cliente es redirigido a un servidor sustituto al azar. Después de un error de caché, el servidor sustituto recupera el objeto de un servidor al azar sustituto alternativo que contiene al objeto solicitado. Si el objeto no es compartido en todos los servidores sustitutos, entonces el servidor sustituto recupera el objeto de un servidor de origen aleatorio. ¾ Cooperative Environment (Cooperativo para el medio ambiente).- El cliente se redirige al servidor más cercano sustituto en términos de saltos de red. Si el servidor sustituto se carga a 95%, entonces el cliente se redirige al servidor sustituto menos cargado. Después de un error de caché, el servidor sustituto recupera el objeto desde el servidor más cercano que contiene el objeto solicitado. Una vez más, si la carga es de ~ 95% el servidor sustituto es remitido a un servidor de alquiler menos cargado que contiene el objeto. El objeto se almacena en la caché y luego se sirve al cliente. Paso 4 La siguiente pantalla presenta opciones para la topología de la red. CDNsim puede construir cualquier tipo de topología de red por cable, siempre y cuando la configuración sea la adecuada. Se pueden realizar modificaciones si se desea abriendo el archivo Base.ned una vez que los Bottle son generados al final del proceso. ¾ Routers (Ruteadores).- El usuario debe proporcionar un archivo de texto que describe la topología de la red troncal representado por una "nube" de los routers. El formato de archivo es "n int \ int" sin las comillas. Cada número 22 entero representa el identificador de nodo, cada línea representa un enlace entre los dos nodos y "n \" es el carácter de nueva línea. No hay necesidad de definir "doble" es decir, enlaces 1 3 y 3 1. El comportamiento predeterminado es crear enlaces dobles. La tabla 4.2 muestra la forma en que se debe acomodar la topología de los ruteadores. Figura 4.2 Configuración de la Topología ¾ Link Speedy (Velocidad de vínculo).- Esta opción define la velocidad de cada enlace. Todos los enlaces tendrán la misma velocidad. ¾ Number of clients (Número de clientes).- Este es el número de clientes que existen en la red. ¾ Client's number of outgoing connections (Número de clientes de las conexiones de salida). - Cada cliente puede manejar más de una conexión por su interés en los objetos. Esta opción establece un límite superior. ¾ Clients' number of retries (Número de Clientes de reintentos).- Cada cliente puede volver a intentar los periodos que se le solicite. 23 ¾ Clients' mean waiting time per retry (Clientes de medio tiempo de espera para volver a intentarlo).- El cliente se mantiene inactivo hasta que vuelva a intentar la próxima. ¾ Number of surrogate servers (Número de servidores de alquiler).- Este es el número de servidores sustituto del CDN. Router Nodo 0 2 1 4 2 5 3 1 4 0 5 9 6 8 7 6 8 7 9 3 Tabla 4.2 Topología de Ruteadores ¾ Surrogate servers' number of outgoing connections (Número de servidores sustituto de las conexiones salientes).- Tras los fallos de caché de los servidores sustitutos tienen que recuperar los objetos solicitados de los servidores alternativos. Esta opción define el número máximo de conexiones de este tipo. ¾ Surrogate servers' number of incoming connections (Número de servidores sustituto de las conexiones entrantes).- Esto establece el número máximo de conexiones de un sustituto pueda recibir de otros servidores o clientes sustituto para los objetos. ¾ Number of origin servers (Número de servidores de origen).- Define el número de servidores de origen de la red. Los servidores de origen 24 contienen todo el sitio Web y son el último recurso para que la solicitud cumpla con sus exigencias. ¾ Origin servers' number of incoming connections (Número de servidores de origen de las conexiones entrantes).- Define el número de solicitudes recibidas para los objetos de los servidores de origen se puede manejar simultáneamente. Paso 5 Se debe ingresar dos archivos (Web y Tráfico) creados por el usuario como lo muestra la Figura 4.3. ¾ Website (Sitio Web).- Este archivo contiene todos los objetos existentes en el sistema y pueden ser transferidos. El formato es "n int \ int", donde el primer entero es un identificador de objeto único y el segundo entero es el tamaño en bytes. La tabla 4.3 muestra la forma en que se debe realizar el archivo Web. Figura 4.3 Archivos Web y Tráfico ¾ Traffic (Tráfico).- Este archivo describe que los clientes, tiempo y lo que van a solicitud de la CDN. El formato de archivo es "n int int doble \". El primer número es la fecha y hora de la solicitud, el segundo es el cliente y el último es el objeto solicitado. La marca de tiempo toma valores > = 0 y el archivo debe de ir en aumento, no importa si no lleva la numeración continua. Los clientes toman valores en > = 0. Si el número de clientes están en el rango [0, 25 number_of_clients) cuando number_of_clients es el definido en el Paso 4, entonces todo va bien. La tabla 4.4 muestra la forma en que se debe realizar el archivo de Tráfico. Objeto Bytes 0 38000 1 28000 2 10000 3 15000 4 35000 5 25000 6 14000 7 27000 8 22000 9 12000 Tabla 4.3 Topología de la Web. Tiempo y Fecha Clientes Objeto 1 1 0 2 5 6 3 2 2 4 7 3 5 3 4 6 6 5 7 4 1 8 8 7 9 0 8 20 9 9 Tabla 4.4 Topología del Tráfico 26 Paso 6 Este paso configura cada servidor sustituto. La configuración es establecida por un archivo que describe el contenido, la capacidad y la política de reemplazo de caché de cada servidor sustituto. Figura 4.4 Servidores Sustitutos El archivo contiene registros, cada uno referido a un servidor de alquiler. Un ejemplo de este tipo de registro es: 0 1 0 LRU 856233632.6 ¾ 0.- Los registros en el archivo, deben seleccionarse mediante el aumento de índice de servidores sustitutos. ¾ 1.- Debe ser siempre 1. ¾ 0.- El usuario puede elegir un nombre de archivo distinto de 0. Si es NULL, entonces indica que el caché se vacía al principio y por lo tanto no hay archivo proporcionado. El archivo contiene las líneas en la forma “char int \ n” o “int \ n”. El número entero es el identificador de objeto que se almacena 27 en el comienzo de la simulación y se extendieron en [0, number_of_objects). El char puede obtener el valor de “s” o “v”. “S” significa que el objeto se almacenarán al principio y no se eliminará hasta el final de la simulación. "V" significa que el objeto se almacena, pero puede ser removido en cualquier momento si la política lo permite. ¾ LRU.- La política de reemplazo LRU caché. Por el momento sólo está disponible LRU. ¾ 856233632.6.- Muestra el tamaño de la caché en Bytes. La tabla 4.5 muestra la forma en que se debe realizar el archivo para la cantidad de servidores CDN que se requieren. Paso 7 El usuario debe proporcionar la información adecuada para almacenar su documento en la dirección adecuada: Figura 4.5 Almacenamiento de Bottle ¾ Output directory (Salida de directorio).- Este es el directorio donde se almacenara la salida del Bottle (no los resultados de la simulación) almacenados. ¾ New Bottle’s name (Nombre de la nueva botella).- Nombre descriptivo para el nuevo experimento. 28 En esta etapa todas las aportaciones hechas en los pasos anteriores y todas las librerías necesarias son verificadas y agrupadas dentro de un archivo comprimido llamado Bottle. Si hay algo que no es válida, entonces obtendrá un mensaje de error. Servidores Sustitutos 0 5 1 1 0 0 LRU LRU 856233632.6 856233632.6 1 6 1 1 0 0 LRU LRU 856233632.6 856233632.6 2 7 1 1 0 0 LRU LRU 856233632.6 856233632.6 3 8 1 1 0 0 LRU LRU 856233632.6 856233632.6 4 9 1 1 0 0 LRU LRU 856233632.6 856233632.6 Tabla 4.5 Topología de Servidores Sustitutos 29 Después de haber terminado de crear el Bottle es necesario cerrar la aplicación para poder seguir trabajando en la terminal. 4.3 Creación del reporte de la Topología Para poder obtener un reporte de cada uno de los Bottle es necesario seguir una serie de pasos, los cuales nos arrojara un archivo HTML donde nos indica una serie de datos importantes. Paso 1 Se tienes que copiar del directorio CDNsim/CDNsim/CDNsimbatch el archivo batch.sh al directorio donde se almaceno el Bottle y después se debe ejecutar el siguiente comando: ./batch.sh ./ Este comando tardara algunos minutos dependiendo de la topología creada, como resultado arrojara un archivo con terminación .TAR y con el mismo nombre. Paso 2 Este es el paso final. Es tiempo de cosechar los resultados. En el directorio CDNsim/CDNsim/CDNsimstats contiene tres archivos, stats.sh, stats.py y util.py. stats.sh utiliza el stats.py y util.py para elaborar las estadísticas. El concepto es generar un informe HTML que resume los resultados de cada botella, para eso se debe de copiar los tres archivos en donde se tiene el Bottle (donde se copio el archivo Batch.sh) y después ejecutar el siguiente comando estando en el directorio donde se pusieron las archivos (/home/cesar/Bottle/salida): ./stast.sh /home/cesar/Bottle/salida /home/cesar/Bottle/salida/stast.py /home/cesar/Bottle/salida/util.py NOTA.-La dirección /home/cesar/Bottle/salida/ es un ejemplo de como se debe de ejecutar el comando, esta varia dependiendo de donde almacena el usuario sus Bottle. 30 4.4 Pruebas del simulador sin CDN En base a los resultados obtenidos del estudio sin CDN, se concluye que CDN tiene una variación de tiempo con respecto a su entrega de información, de tal forma que al realizar pruebas sin CDN se obtienen tiempos un poco altos para la entrega de información a usuarios finales. Por tal motivo, se realizaron varios proyectos en el simulador (variación de clientes en la red) para poder encontrar el tope donde dejara de funcionar con un solo servidor y así poder empezar a aumentar la cantidad de servidores de CDN para obtener el resultado plateado, debido a su variación en el tiempo se realizó una grafica para mostrar su comportamiento. La Tabla 4.6 muestra los datos que se obtuvieron y de que manera se fue aumentando la información para poder llegar a un resultado. CLIENTES TIEMPO TRAFICO Kbits 100 0.01042 106,746,661 500 0.010421683 106,746,661 1000 0.010439065 106,746,661 1500 0.010431667 106,746,661 2000 0.010552821 106,746,661 Tabla 4.6 Contenido de información sin CDN La Figura 4.6 muestra el comportamiento respecto al tiempo de respuesta en la entrega de contenido a usuarios finales. 4.5 Pruebas del simulador con CDN En base a los estudios obtenidos con CDN, se concluye que CDN tiene una variación de tiempo con respecto a su entrega de información, de tal forma que al realizar pruebas con CDN se obtienen resultados satisfactorios que muestran el ahorro de tiempo en la entrega de contenido de un servidor hacia sus usuarios finales. Por tal 31 motivo, se realizaron varios proyectos en el simulador (variación de clientes y servidores) para poder determinar hasta donde podía soportar la carga de servidores y así tener un punto de tope para poder hacer la comparación del tiempo con respecto a las pruebas obtenidas sin CDN. Figura 4.6 Comportamiento sin CDN La Tabla 4.7 muestra los datos que se obtuvieron y de que manera se fue aumentando la información para poder llegar a un resultado. CLIENTES TIEMPO TRAFICO Kbits 100 0.009377207 106,746,661 500 0.009365561 106,746,661 1000 0.009387629 106,746,661 1500 0.009378643 106,746,661 2000 0.009391167 106,746,661 Tabla 4.7 Contenido de información con CDN La Figura 4.7 muestra el comportamiento con CDN respecto al tiempo de respuesta en la entrega de contenido a usuarios finales. 32 Figura 4.7 Comportamiento con CDN Unas de las características principales de usar CDN son: ¾ La entrega de contenido es más rápido. ¾ Ahorro de tiempo a usuarios finales. ¾ Evita tantos saltos en la red. ¾ Evitar el congestionamiento de información en la red. ¾ Satisfacción para el usuario final al tener su información más rápida y segura. Después de haber obtenido los resultados necesarios con y sin CDN se realizó una grafica donde muestra el comportamiento que hay entre los dos estudios (con CDN y sin CDN), dejando en claro que el usar CDN es mucho más factible. La Tabla 4.8 muestra los tiempos obtenidos de los dos estudios (con y sin CDN) que se realizaron. El porcentaje de ahorro se obtiene mediante la siguiente formula: % PREVIO = ((CON CDN * 100) / SIN CDN) % AHORRO CON CDN = 100 - % PREVIO 33 La Figura 4.8 muestra el comportamiento de los dos estudios de CDN respecto al tiempo de respuesta en la entrega de contenido a usuarios finales. CLIENTES SIN CDN CON CDN % AHORRO CON CDN 100 0.01042 0.009377207 10.01 % 500 0.010421683 0.009365561 10.14 % 1000 0.010439065 0.009387629 10.08 % 1500 0.010431667 0.009378643 10.1 % 2000 0.010552821 0.009391167 11.01% TOTAL 0.01045304 0.00938004 10.27 % Tabla 4.8 Resultados finales del CDN Figura 4.8 Comportamiento final de CDN 34 CAPÍTULO 5 CONCLUSIÓN Después de realizar las investigaciones y pruebas correspondientes se puede concluir, que el estudio del CDN es efectivo ya que su respuesta con respecto al tiempo de entrega de información es mucho más rápido, debido a que se cuenta con servidores sustitutos ubicados estratégicamente en varias partes del mundo (su ubicación depende del administrador) con la información del servidor central. Al estar haciendo pruebas en el simulador me fui dando cuenta que tan importante era seguir cada uno de los pasos para poder obtener el resultado apropiado, conforme obtenía resultados aumentaba la información en los archivo que me pedía el simulador para ver cual era la variación del tiempo de una topología a otra y así lograr obtener el resultado apropiado. Este proyecto me permitió ir identificando (simulador) aspectos principales para la elaboración de diversas topologías y poder obtener los resultados necesarios y visualizar que tan efectivo es CDN. Sin lugar a duda CDN tiene una infinidad de ventajas en el entorno de la red, ya que su manejo esta basado a grandes empresas que manejan información en pequeñas y grandes cantidades (KB, MB, GB, etc.), la mayoría de la información son videos y audio. 35 BIBLIOGRAFÍA Paginas de Internet [1] http://en.wikipedia.org/wiki/PoP [Consulta Septiembre 2009] [2] http://www.mytestbox.com/miscellaneous/content-delivery-networks-cdn-list/ [Consulta Septiembre 2009] [3] http://www.cs.mu.oz.au/~apathan/CDNs.html [Consulta Septiembre 2009] [4] http://en.wikipedia.org/wiki/Content_delivery_network [Consulta Septiembre 2009] [5] http://www.masadelante.com/faqs/udp [Consulta Octubre 2009] [6] http://resellersolution.com/blog/laboratorio/content-delivery-network [Consulta Octubre 2009] [7] http://es.kioskea.net/contents/internet/tcpip.php3 [Consulta Marzo 2010] [8] http://es.wikipedia.org/wiki/TCP_IP [Consulta Marzo 2010] [9] http://www.monografias.com/trabajos/protocolotcpip/protocolotcpip.shtml [Consulta Marzo 2010] [10] http://www.alfinal.com/Temas/tcpip.php [Consulta Marzo 2010] [11] http://es.wikipedia.org/wiki/ARPANET [Consulta Marzo 2010] [12] http://es.wikipedia.org/wiki/Router_ADSL [Consulta Marzo 2010] [13] http://los9mm.over-blog.es/article-28570706.html [Consulta Abril 2010] 36 [14] http://www.linuxtotal.com.mx/index.php?cont=info_admon_002 [Consulta Abril 2010] [15] http://es.wikipedia.org/wiki/Real-time_Transport_Protocol [Consultada Mayo 2010] [16] http://es.wikipedia.org/wiki/Archivo:Udp_rtsp.jpg [Consultada Mayo 2010] [17] http://es.wikipedia.org/wiki/Hypertext_Transfer_Protocol [Consultada Mayo 2010] [18]http://es.wikipedia.org/wiki/Protocolo_de_Adaptaci%C3%B3n_de_Contenidos_d e_Internet [Consultada Mayo 2010] [19] http://es.wikipedia.org/wiki/Internet_Control_Message_Protocol [Consultada Mayo 2010] [20] http://es.wikipedia.org/wiki/Point-to-Point_Protocol [Consultada Mayo 2010] [21] http://es.wikipedia.org/wiki/File_Transfer_Protocol [Consultada Mayo 2010] [22] http://es.wikipedia.org/wiki/RTSP [Consultada Mayo 2010] [23] http://es.wikipedia.org/wiki/Real-time_Transport_Protocol [Consultada Mayo 2010] Articulo del Internet [12]http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B6TYP4JFGCP42&_user=4013576&_rdoc=1&_fmt=&_orig=search&_sort=d&_docanchor=&view=c &_acct=C000062063&_version=1&_urlVersion=0&_userid=4013576&md5=15560d 2bb8b6e6343c48e92316d0cf38 [Consulta septiembre 2009] 37 Libro [1] Francisco J. Molina, Instalación y mantenimiento de servicios de Redes Locales, Alfaomega, México, Enero 2005, Pág.23-26. 38 APÉNDICE Tutorial: Como instalar Ubuntu 9.10 paso a paso Antes de comenzar quiero aclarar una cosa para aquellos que es la primera vez que van a instalar Ubuntu o Linux en general. Ubuntu se puede instalar y funcionar junto con Windows sin ningún problema, cuando se tienen ambos sistemas en la PC se muestra un pantalla al prender la PC donde podrán elegir que sistema operativo se quiere usar. Comencemos................Una vez que tengan el CD de Ubuntu 9.10 en sus manos lo colocan en la lectora de CD y encender la computadora. La primera pantalla con la que nos toparemos será la de elección del idioma: Probar Ubuntu sin alterar el equipo: Esto iniciara Ubuntu en modo Live CD, con lo que podrán ver como es Ubuntu sin preocupación de hacer algún cambio en su PC. Instalar Ubuntu: Esto iniciara el asistente de instalación. Esta es la opción que vamos a elegir. Se posicionan sobre ella y aprietan enter. 39 Ahora se inicia el asistente de instalación y la primera pantalla del asistente es nuevamente la selección del idioma. Elijan el que quieran, supongo que será español. Luego tendrán que seleccionar su ubicación en el mapa, esto es para configurar las opciones de hora y fecha, etc. 40 Luego seguimos con otro paso súper sencillo que es la selección de la distribución del teclado. Yo por defecto siempre le dejo Spain porque es la única configuración que toma correctamente la ñ. Ahora viene la parte “un poquito más difícil”, por lo general es la parte a la que todos le tienen miedo pero no deben preocuparse, no es nada del otro mundo. Lo que viene es la ventana de preparación del disco duro. Vamos a ver 3 formas de preparar el 41 disco duro: usar todo el disco, hacer una partición manual o instalar junto con Windows. Usar todo el disco: al aparecer la ventana de preparación del disco duro, algo como esto... En una ventana parecida a esta verán 2 o mas opciones para elegir. Si su PC es nueva o si no tienen nada importante en el disco duro pueden elegir la opción que dice "Borrar y usar el disco entero", ojo aclaro que esto borrara todos los datos que tengan en el disco. Por lo general nadie elije esta opción. Instalar junto con Windows: Los más nuevos siempre usan la opción de instalar Ubuntu/Linux junto con Windows. Me parece bien, aunque la verdad va a descubrir con el tiempo las bondades de Linux y van a desinstalar por completo el sistema de Microsoft. Bueno, a la hora de preparar el disco en una PC que tiene Windows instalado. No les saldrá una ventana como la de arriba, mas bien será mas parecida a esta... 42 Con 4 opciones. La primera opción "Instalarlo junto a otros, eligiendo entre ellos al arrancar el equipo" es la que se deberá usar casi siempre. Esto hará lo que les comentaba al principio: Instalar Ubuntu junto con Windows y al arrancar la PC les permitirá elegir cual sistema operativo iniciar. Otra opción que puede resultarles interesante es la tercera, que dice "Utilizar el mayor espacio continuo libre". Esta opción les será útil si tienen espacio "sin usar" en su PC, Ubuntu se instalara allí. Hacer una partición manual: Esta es la opción que seguramente usan los que ya han pasado algún tiempo con Linux, si eres muy nuevo tal vez te convenga no leer esta parte y saltearte al siguiente pasó. Tampoco es tan difícil pero a algunos les cuesta entender. Aquellos que ya hayan trabajado con partición mágica alguna vez seguramente entenderán esta parte, es más, pueden hacerlo con partición mágica si no les gusta hacerlo desde el CD de Ubuntu. Vamos a crear 3 particiones: una raíz, una Home y una partición de intercambio. La partición raíz y la home recomiendo que sean del tipo Ext4 y la de intercambio pues solo puede ser Swap. 43 Lo que pretendemos es dejar algo como esto: Una vez preparado el disco podemos continuar con la instalación de nuestro Ubuntu. La siguiente pantalla será para crear un usuario para el sistema. Solo hay que llenar los campos con: nombre real, nombre de usuario, contraseña y entre las 3 opciones de abajo recomiendo elegir la primera si es que ustedes van a ser los únicos usuarios de la PC, de otro modo elegir la segunda. Una ultima ventana antes de instalar Ubuntu... 44 Al darle click a instalar el sistema se comenzara a instalar, no tardara mucho, un aproximado de 4 a 10 minutos. Y nos mostrara una diapositiva de los programas que trae Ubuntu mientras esperamos. Al terminar saquen el CD de Ubuntu de la lectora y reinicien la computadora y a disfrutar de Ubuntu. 45