Universidad Autónoma de Guerrero Unidad Académica de Ingeniería Ingeniería en Computación Curso: Proceso Distribuido (Unidades 1, 2) Prof.: M. en C. José Mario Martínez Castro Chilpancingo, Gro., Agosto del 2005 Proceso Distribuido Contenido Unidad 1. Introducción.................................................................................................................. 3 1.1. Conceptos de Sistemas Distribuidos..................................................................................... 3 Términos sinónimos:................................................................................................................ 3 ¿Qué está Distribuido?............................................................................................................. 3 Características de los Sistemas Distribuidos. .......................................................................... 4 Factores que han afectado el desarrollo de los Sistemas Distribuidos. ................................... 4 1.2. Ventajas y Desventajas de los Sistemas Distribuidos........................................................... 5 Ventajas: .................................................................................................................................. 5 Desventajas: ............................................................................................................................. 6 1.3. Categorías de los sistemas Distribuidos................................................................................ 6 A.- Modelo de Minicomputadoras........................................................................................... 6 B.- Modelo de Estación de Trabajo. ........................................................................................ 6 C.- Modelo microprocesadores en Pooling.............................................................................. 7 1.4. Aplicaciones.......................................................................................................................... 7 Unidad 2. Modelo Cliente / Servidor............................................................................................ 8 2.1. Introducción .......................................................................................................................... 8 2.2. Direccionamiento.................................................................................................................. 8 Primitivas Bloqueantes Vs No Bloqueantes ............................................................................ 8 Primitivas Almacenadas En Buffer Vs No Almacenadas........................................................ 9 Primitiva Confiables Vs No Confiables.................................................................................. 9 Implementación del Modelo Cliente – Servidor.................................................................... 10 Comentarios acerca de Implementación de Protocolos y Software...................................... 10 Uso de los reconocimientos: .................................................................................................. 10 Las Secuencias más Comunes son las Siguientes:................................................................. 11 2.3. Niveles de la Arquitectura TCP/IP ..................................................................................... 12 2.4. Servicios del Nivel de Aplicación del Modelo TCP/IP: ..................................................... 13 2.4.1 Conexión Remota (TELNET)....................................................................................... 14 Servicios ofrecidos por Telnet: .......................................................................................... 15 2.4.2 WWW (La Amplia Telaraña Mundial)......................................................................... 15 El protocolo HTTP (HyperText Transfer Protocol) .......................................................... 16 2.4.3 FTP (Protocolo de Transferencia de Archivos) ............................................................ 16 2.4.4 Correo Electrónico ........................................................................................................ 17 2.4.4.1 POP3 (Post Office Protocol Versión 3)................................................................ 17 2.4.4.2 SMTP (Simple Mail Transfer Protocol)................................................................. 18 2.5. IPv6 ..................................................................................................................................... 19 Unidad 1 2/2 Proceso Distribuido Unidad 1. Introducción 1.1. Conceptos de Sistemas Distribuidos. Es un concepto poco claro de definir. Un conjunto de elementos de cómputo autónomos que se encuentran físicamente separados y no comparten una memoria común, se comunican entre sí a través del intercambio de mensajes utilizando un medio de comunicación y cooperan en la ejecución de sus tareas asignadas. • Los elementos no necesariamente deben ser homogéneos. El objetivo es: crear la ilusión en la mente de los usuarios de que toda la red es un solo sistema de tiempo compartido. • Uniprocesador Virtual Términos sinónimos: • Función distribuida. • Procesamiento distribuido de datos. • Procesamiento satelital. • Procesamiento dorsal. • Computadoras de propósito especial / dedicado. • Sistemas de tiempo compartido. • Sistema modular funcional. ¿Qué está Distribuido? • Lógica de procesamiento. • Funciones. • Control. • Datos. SMBD Centralizadas SMBD Distribuidas BD BD Sitio 3 Sitio 3 RED RED BD Sitio 1 Sitio 1 BD Sitio 2 Sitio 2 11 Base de Datos Distribuidas – Unidad 1 Unidad 1 ISC. José Mario Martínez Castro 12 Base de Datos Distribuidas – Unidad 1 ISC. José Mario Martínez Castro 3/3 Proceso Distribuido Características de los Sistemas Distribuidos. • Cada elemento de computo tiene su propia memoria y su propio Sistema Operativo. • Control de recursos locales y remotos. • Sistemas Abiertos (Facilidades de cambio y crecimiento). • Plataforma no standard ( Unix, NT, Intel, RISC, Etc.). • Medios de comunicación ( Redes, Protocolos, Dispositivos, Etc.). • Capacidad de Procesamiento en paralelo. • Dispersión y parcialidad. • Mecanismo de comunicación global entre los procesos (cualquiera puede hablar con cualquiera). No tiene que haber distintos mecanismos en distintas máquinas o distintos mecanismos para la comunicación local o la comunicación remota. • Esquema global de protección • La administración de procesos debe ser la misma en todas partes (crear, destruir, iniciar, detener) • Sistema global de archivos con la misma apariencia en todas partes Factores que han afectado el desarrollo de los Sistemas Distribuidos. • Nuevos requerimientos. • Globalización • • Aspectos Externos ( Culturales, Políticos, Económicos ). Avances Tecnológicos Motivaciones Tecnología de Bases de Datos Redes de Computadoras Integración Distribución Sistemas de Bases de Datos Distribuidas Integración Integración ≠ Centralización Base de Datos Distribuidas – Unidad 1 Unidad 1 5 ISC. José Mario Martínez Castro 4/4 Proceso Distribuido • Integración. 1.2. Ventajas y Desventajas de los Sistemas Distribuidos Ventajas: • Procesadores más poderosos y a menos costos o Desarrollo de Estaciones con más capacidades o Las estaciones satisfacen las necesidades de los usuarios. o Uso de nuevas interfaces. • Avances en la Tecnología de Comunicaciones. o Disponibilidad de elementos de Comunicación. o Desarrollo de nuevas técnicas. • Compartición de Recursos. o Dispositivos (Hardware). o Programas (Software). • Eficiencia y Flexibilidad. o Respuesta Rápida. o Ejecución Concurrente de procesos (En varias computadoras). o Empleo de técnicas de procesamiento distribuido. • Disponibilidad y Confiabilidad. o Sistema poco propenso a fallas (Si un componente no afecta a la disponibilidad del sistema). o Mayores servicios que elevan la funcionalidad ( Monitoreo, Telecontrol, Correo Eléctrico, Etc.). • Crecimiento Modular. o Es inherente al crecimiento. o Inclusión rápida de nuevos recursos. o Los recursos actuales no afectan. Unidad 1 5/5 Proceso Distribuido Desventajas: • Requerimientos de mayores controles de procesamiento. • Velocidad de propagación de información (Muy lenta a veces). • Servicios de replicación de datos y servicios con posibilidades de fallas. • Mayores controles de acceso y proceso (Commit). • Administración más compleja. • Costos. 1.3. Categorías de los sistemas Distribuidos. A.- Modelo de Minicomputadoras. Varias computadoras que soportan diferentes usuarios cada una y provee acceso a recursos remotos. • Por lo menos un usuario por cada computadora ( CPU < Usuarios ). B.- Modelo de Estación de Trabajo. • Varias estaciones (Por lo general cientos), donde cada usuario cuenta con una estación de trabajo (ET) y realiza en ella todo su trabajo. Requiere de un Sistema Operativo que soporte funciones de acceso y control remoto. • Un microprocesador por cada usuario ( CPU = Usuarios). • Las estaciones de trabajo cuentan con Interfaces Gráficas, CPU potentes y Memorias propias. Unidad 1 6/6 Proceso Distribuido C.- Modelo microprocesadores en Pooling. • Trata de utilizar uno o más microprocesadores dependiendo de las necesidades de los usuarios. • Primero los procesadores completan su tarea y posteriormente regresan a esperar una nueva asignación. • El número de microprocesadores normalmente es mayor a uno por usuario ( CPU > Usuarios ). 1.4. Aplicaciones • Manufactura (especialmente en manufactura multiplanta). • Comando y control militar. • SIGs corporativos (Sistemas de Información Gerencial). • Aerolíneas. • Cadenas hoteleras. • Cualquier organización que tenga una estructura organizacional descentralizada. Unidad 1 7/7 Unidad 2. Modelo Cliente / Servidor 2.1. Introducción Para este modelo se utiliza el protocolo SOLICITUD-RESPUESTA (REQUEST/REPLY), el cual solicita y recibe algún tipo de servicio haciéndolo todo más sencillo y eficaz. No es necesario el ruteo y no existe administración de la sesión, y debido a que esta estructura es sencilla, se pueden reducir los servicios de comunicación a solo dos llamadas del sistema (SEND/RECEIVE). 2.2. Direccionamiento Direccionamiento Integral MACHINE.NUMBER al código de proceso cliente. Machine indica el número de máquina dentro de la red y number, el número de proceso dentro de esa máquina. Si se descompone la maquina SERVER se pierde el servicio pues los programas compilados tienen integrado ese número de maquina para ese servicio, una variación podría ser machina.local_id. Direccionamiento dejando que los procesos elijan direcciones al azar y localizarlos mediante transmisiones. Este tipo de direccionamiento consiste en transmitir un paquete especial de localización con la dirección del proceso destino, haciendo que todas las maquinas de la red reciban este mensaje y verificar si la dirección es suya; en caso de que lo sea, regresa un mensaje indicando que esa si es la maquina con su dirección en la red. (Número de maquina). El núcleo emisor utiliza entonces esa dirección y la captura para uso posterior. Si bien esto cumple con las premisas, genera una carga adicional en el sistema. Direccionamiento generador de un servidor de nombres. Cada vez que se ejecute un cliente en su primer intento por utilizar un servidor, el cliente envía una solicitud al servidor de nombres (nombre ASCII) para permitirle el número de maquina donde se localiza el servidor. Una vez obtenida la dirección se puede enviar la solicitud de manera directa. El problema de ese método es que es un componente centralizado y si bien se puede duplicar, presenta problemas en el mantenimiento de la consistencia. Primitivas Bloqueantes Vs No Bloqueantes Send Bloqueantes (Primitivas sincrónicas). Mientras que se envía el mensaje al proceso emisor se bloquea, de manera analógica el RECEIVE. En algunos casos el receptor puede especificar de quienes quiere recibir el mensaje y queda bloqueado hasta que reciba el mensaje de él. La CPU está muerta, desperdiciando tiempo. Send No Bloqueantes (Primitivas asincrónicas). Regresa el control que hizo la llamada (SEND) antes de enviar el mensaje. Trabaja en forma paralela con el envío del mensaje y existe la desventaja de no poder usar el buffer hasta que no se envíe la totalidad del mensaje. Una forma de solucionar esto es que el S.O. copie este buffer a un área propia y luego envíe el mensaje, liberando el buffer. Aquí se desperdicia tiempo en la copia. Send Sin Bloqueo Con Interrupción. El emisor es interrumpido cuando el mensaje fue enviado y el buffer está disponible. No se requiere de una copia, lo que ahorra tiempo, pero las interrupciones a nivel usuario dificultan mucho la programación. Maximiza el paralelismo. Proceso Distribuido En condiciones normales la primera opción es la mejor, no maximiza el paralelismo pero es fácil de comprender e implantar y no requiere el manejo del buffer en el núcleo. Generalmente el uso del SEND’s bloqueantes o no bloqueantes se deja a los diseñadores, pues esto está muy ligado al problema que quiere solucionar. Aunque en algunos casos se disponen de los dos y el usuario elige su favorito. Primitivas Almacenadas En Buffer Vs No Almacenadas Las primitivas no almacenadas suelen tener un problema con el envío y recepción de información debida a que si el cliente envía un SEND antes de que el SERVER ejecute un RECEIVE para esa dirección creando reintentos de la petición. Las primitivas almacenadas en buffer solucionan el problema en el envío y recepción de mensajes manteniendo pendiente los mensajes en el buffer, creando un retardo que conlleva a su almacenamiento y manejo. Para facilitar el manejo del buffer en el manejo de primitivas se utiliza una nueva estructura llamada BUZÓN. Primitiva Confiables Vs No Confiables. • CONFIABLE: Cuando de alguna manera se garantiza que el mensaje llega a su destino. • NO CONFIABLE: Cuando no existe garantía alguna de que el mensaje haya sido entregado, podría haberse perdido. Existen tres enfoques de este problema: 1.-Volver a definir la semántica SEND para hacerlo no confiable. 2.- Se envía reconocimientos de núcleo a núcleo sin que estos se enteren. 3.- Este aprovecha la respuesta como método de reconocimiento. EJEMPLO: Tabla 1. Primitivas confiables y no confiables. CONFIABLE NO CONFIABLE Unidad 2 CON CONEXION SIN CONEXION Transferencia de archivo. FTP Correo certificado (llega sino avisa) Teléfono Correo simple (puede haber ruido) (llega o no llega) 9/9 Proceso Distribuido Implementación del Modelo Cliente – Servidor Tabla 2. Combinaciones de primitivas. ELEMENTO OPCION 1 OPCION 2 OPCION 3 Direccionamiento Número de máquina Direcciones ralas de procesos Búsqueda de nombres en ASCII por medio del servidor Bloqueo Primitivas con bloqueo Sin bloqueo, copia al Núcleo Sin bloqueo con interrupciones Almacenamiento en buffers No usarlo, descargar los mensajes inesperados No usarlo, mantenimiento temporal de mensajes inesperados Buzones No confiable Solicitud, reconocimiento, respuesta, reconocimiento Solicitud, respuesta, reconocimiento Confiabilidad Comentarios acerca de Implementación de Protocolos y Software • Todas las redes tienen tamaños máximos de paquetes. • Los mensajes mayores se dividen en varios paquetes y se envían de forma independiente. Uso de los reconocimientos: PAQUETE INDIVIDUAL Ventaja: Si se pierde un paquete, solo se retransmite el paquete. Desventaja: Se necesitan más paquetes en la red. RECONOCIMIENTO POR MENSAJE COMPLETO Ventaja: Hay menos paquetes en la red. Desventaja: Se debe retransmitir todo el mensaje en caso de pérdida. Unidad 2 10/10 Proceso Distribuido Tabla 3. Tipos de mensajes de cliente a servidor y viceversa. CODIGO TIPO DE PAQUETE DE A DESCRIPCION REQ Solicitud Cli Ser El cliente desea servicio REP Respuesta Ser Cli Respuesta del servidor al cliente ACK Reconocimiento Cualq Al otro El paquete anterior que ha llegado AYA Estas vivo? Cli Ser Verificar si el servidor se ha descompuesto IAA Estoy vivo Ser Cli El servidor no se ha descompuesto TA Intenta de nuevo Ser Cli El servidor no tiene espacio AU Dirección desconocida Ser Cli Ningún proceso utiliza esta dirección Las Secuencias más Comunes son las Siguientes: Cliente Servidor REQ Cliente ACK Servidor ACK REP Cliente REP REQ REQ Servidor REP ACK Cliente Servidor ACK AYA IAA REP Figura 1. Secuencias para el reconocimiento de mensajes. Unidad 2 11/11 Proceso Distribuido 2.3. Niveles de la Arquitectura TCP/IP El protocolo de TCP/IP es el nombre que agrupa el conjunto de protocolos utilizados por todas las computadoras conectadas a internet, de manera que estas puedan comunicarse entre si. Este conjunto de protocolos cubren los distintos niveles del modelo OSI. La arquitectura de TCP/IP consta de cuatro niveles siguientes: Figura 2. Diagrama de las capas de la arquitectura TCP/IP.. Aplicación: se corresponde con los niveles OSI de aplicación, presentación y sesión. Aquí se incluyen protocolos destinados a proporcionar servicios, tales como correo electrónico (SMTP, POP3), transferencia de archivos (FTP), conexión remota (Telnet), y otros recientes, como el protocolo http (Hipetext Transfer Protocol, Protocolo de Transferencia de Archivos) que proporciona el servicio WWW. Transporte: coincide con el nivel de transporte del modelo OSI. En este nivel coexisten dos protocolos TCP y UDP. Este nivel se encarga de determinar el tipo de servicio que se presta mediante la utilización del concepto del puerto. Un puerto define el punto de acceso al servicio utilizado. Red: se corresponde con el nivel de red del modelo OSI. Incluye al protocolo IP, que se encarga de enviar los paquetes de información a sus destinos correspondientes. El nivel IP es el encargado de diferenciar unívocamente todas y cada una de las maquinas conectadas a Internet mediante la asignación de una dirección IP o dirección de red denominada dirección de cada una. Enlace/físico: es la interfaz de nivel mas físico con la red. Se encarga de realizar todas las operaciones relativas al transporte en si de la información y la compatibilidad de los formatos en los que se envía con los dispositivos y medios de transmisión por los que discurre. Unidad 2 12/12 Proceso Distribuido ARQUITECTURA TCP/IP NIVEL DE APLICACIÓN (ACCESO DEL USUARIO A LAS APLICACIONES) NIVEL DE TRANSPORTE (COMUNICACIÓN EXTREMO A EXTREMO) NIVEL DE RED (GESTION Y DIRECCIONAMIENTO DE LAS NIVEL DE ENLACE/FISICO (FLUJO DE DATOS E INTERFAZ CON EL MEDIO FISICO) Figura 3. Arquitectura TCP/IP. 2.4. Servicios del Nivel de Aplicación del Modelo TCP/IP: Algunos de estos servicios se definen a continuación: • FTP – “File Transfer protocol”(Protocolo de transferencia de archivos) Este servicio permite la transferencia de archivo al y desde el servidor de FTP, se diseño para permitir el intercambio de datos, archivos entre computadores host y cliente. • GOPHER – El protocolo Gopher Permite desplegar un sistema de menúes jerárquicos y acceder a la información en formato de caracteres, como si estuviéramos ejecutando una terminal de Unix. • MAILTO – Dirección de Correo Electrónico El correo electrónico fue una de las primeras aplicaciones creadas para Internet y de las que más se utilizan. Éste medio es rápido, eficiente y sencillo de administrar, llegando a ser el sistema más sofisticado de mensajería que hoy conocemos. • POP3 Post Office Protocol 3 Es el protocolo que nos permite acceder a nuestra casilla de correos. • SMTP.- Simple Mail Transfer Protocol (Protocolo De Internet Para Correo Electrónico) Unidad 2 13/13 Proceso Distribuido Es un protocolo de la familia del TCP/IP para la transmisión de correo electrónico, éste no es dependiente de ningún correo en especial sino que cualquier soft de correo que genere un e~mail en el formato en que el protocolo lo estructura, será entendido por éste. • NEWS – “USENET news” Es un sistema de conferencias y discusión de alcance global, este soporta lo que se denominan mailing list, cuando se quiere escribir algo para que sea leído por los demás lectores éste se postea a un newsgroup. • IRC.- Internet Relay Chat Este es un servicio que permite al usuario, por medio del tipeo, conversar con otros usuarios conectados a servidores de IRC. A continuación se explicaran algunos de estos servicios: 2.4.1 Conexión Remota (TELNET) Una Conexión Remota es un servicio que utiliza el protocolo TELNET que proporciona una interfaz estandarizada, a través de la cual un programa de un host (el cliente de TELNET, que es cualquier ordenador con un sistema multiusuario), puede acceder a los recursos de otro host (el servidor de TELNET) como si el cliente fuera una terminal local conectada al servidor. Figura 4. Esquema de una sesión remota con el servicio TELNET. El protocolo TELNET es una de las primeras herramientas que se usaron para conectarse a computadoras en Internet. Hoy día el acceso a un ordenador remoto por Telnet se utiliza bien para ejecutar sus programas o para consultar la información almacenada. Antes se usaba para el correo electrónico, ftp, incluso para ver páginas en la 3W. Pero tiene poco sentido interactuar con el ordenador remoto con comandos y en modo texto cuando se puede hacer con un ratón y con imágenes y sonidos. La tendencia es que incluso el acceso a bases de datos se haga desde la 3W (con el navegador): es mucho más cómodo para el usuario, se pueden hacer mejores presentaciones, el usuario no accede directamente a la máquina sino que el navegador se encarga de decirle a ésta lo que quiere (con lo que se limita el acceso directo al host y se evitan posibles piratas o hackers). Unidad 2 14/14 Proceso Distribuido Una alternativa más segura para telnet, pero que requiere más recursos del computador es ssh (versión cifrada de telnet) que encripta la información antes de transmitirla, autentica la máquina a la cual se conecta y puede emplear mecanismos de autenticación de usuarios más seguros. Para iniciar una sesión remota se usa el comando telnet seguido del nombre de la máquina en la que desea trabajar, por ejemplo si desea conectarse a la máquina purpura.micolegio.edu.co: telnet purpura.micolegio.edu.co Una vez conectado podrá ingresar su login y clave en esa máquina, y entonces se iniciará una sesión en modo texto como las que ve en las consolas virtuales. Servicios ofrecidos por Telnet: * Consultar bases de datos disponibles. * Consultar catálogos de bibliotecas accesibles desde la red. * Utilizar los servicios de información de la red. • Servicios de directorios: es algo parecido a las páginas amarillas que utilizamos para localizar un teléfono, pero en este caso nos permite obtener, entre muchas otras cosas direcciones de correo electrónico. • Servicios de información de gran área (WAIS): permite mediante búsquedas complejas hechas con el propio lenguaje natural localizar multitud de información relacionada con el tema que le interese (buscadores). * Correo electrónico. 2.4.2 WWW (La Amplia Telaraña Mundial) El World Wide Web es un sistema global de hipertexto desarrollado inicialmente en 1989 por Tim Berners Lee en el Laboratorio Europeo de Física de Partículas, ("European Laboratory for Particle Physics, CERN") en Suiza. En 1993 el Web comenzó a crecer rápidamente, principalmente gracias a la NCSA ("National Center for Supercomputing Applications"), que desarrolló un navegador Web llamado Mosaic, una aplicación basada en X Windows. Esta aplicación proporcionó la primera interfaz gráfica de usuario al Web. Hoy en día existen navegadores y servidores Web disponibles para casi todas las plataformas. El principal artífice del éxito de WWW es el lenguaje de etiquetado de hipertexto HTML (Hypertext Markup Language). Una transacción HTTP consiste básicamente en: • Conexión • Solicitud • Respuesta • Cierre Todos los documentos, imágenes, clips de audio o de vídeo se denomina recurso Web. Para identificar el método de acceso a estos recursos el Web emplea URLs (Uniform Resource Locators), que es un protocolo estándar de Internet. Unidad 2 15/15 Proceso Distribuido El protocolo HTTP (HyperText Transfer Protocol) El Protocolo para mover archivos de hipertexto a través de la Internet. Requiere un programa cliente HTTP en un extremo y un programa servidor de HTTP en el otro. HTTP es el protocolo más importante usado en el WWW y se ha usado desde sus inicios en 1990.Es el protocolo estándar de comunicaciones entre servidores y clientes Web, que es un borrador de estándar de Internet. HTTP son las siglas de HyperText Transfer Protocol (protocolo de transferencia de hipertexto). Fue diseñado por un físico del CERN (Centro Europeo de Investigación Nuclear) como un medio práctico para publicar información. Es un conjunto de reglas, o protocolo, que gobierna la transferencia de hipertexto entre dos o mas computadoras. Hipertexto es texto codificado especialmente usando un sistema estándar llamado Hypertext Markup Language (Lenguaje de Marcado por Hipertexto) (HTML). Los códigos HTML se usan para crear enlaces. Esos enlaces pueden ser textos o gráficos, y cuando son clickeados, pueden "enlazar" el enlace del usuario a otro recurso tal como otros documentos HTML, archivos de texto, gráficos, animación y sonido. Los enlaces o links se manifiestan en el programa navegador mediante palabras subrayadas y mediante el cambio del cursor del ratón a una mano. Los enlaces no sólo apuntan a otras páginas, sino que pueden hacerlo a cualquier tipo de archivo. De esa forma, también se puede utilizar el hipertexto para traer ficheros a nuestro ordenador. HTTP está basado en el principio cliente/servidor. HTTP permite que la "computadora A" (el cliente) establezca una conexión con la "computadora B" (el servidor) y hacer una petición. El servidor acepta la conexión iniciada por el cliente y le envía una respuesta. Una petición HTTP identifica el recurso que le interesa al cliente y le dice al servidor cual "acción" realizar en el recurso. Cuando un usuario selecciona un enlace hipertexto, el programa cliente en su computadora usa HTTP para contactar al servidor, identificar el recurso, y responder con una acción. El servidor acepta el pedido, y entonces usa HTTP para responder o realizar la acción requerida. HTTP también provee acceso a los otros protocolos de Internet, entre ellos: • Protocolo de Transferencia de Archivos (FTP) • Protocolo Simple de Transferencia de Correo (SMTP) • Protocolo de Transferencia de Noticias de Red(NNTP) • WAIS • Gopher • Telnet and TN3270 2.4.3 FTP (Protocolo de Transferencia de Archivos) Las siglas FTP significan Protocolo de Transferencia de Archivos (File Transfer Protocol). Este servicio nos permite accesar a computadoras remotas y obtener archivos de estas computadoras. Permite la transferencia de archivo al y desde el servidor de FTP, se diseño para permitir el intercambio de datos, archivos entre computadores host y cliente. Cuando se ingresa a un servidor FPT se puede hacer como usuario con permisos definidos o como usuario invitado, Unidad 2 16/16 Proceso Distribuido siempre y cuando el administrador del sistema habilite el mismo, luego puede recorrer las distintas carpetas hasta encontrar el archivo buscado, una vez encontrado este se transfiere a nuestro computadora. El objetivo principal de este protocolo son varios puntos, promover el compartir archivos entre computadoras (programas y/o datos), alentar al uso remoto de las computadoras, y transferir datos de una forma segura y optima por computadora. FTP mas que para ser usado por un usuario directamente es para que los programas lo usen entre ellos para comunicarse. La forma de conectarse a un servidor de FTP es igual que en Telnet, usando únicamente la dirección de la máquina a la que uno se desea conectar. Una vez conectado, se pedirá login y password. Normalmente, en una sesión FTP "anónima", el login será anonymous o ftp y el password será nuestra dirección electrónica (por ejemplo [email protected]). Algunos de los comandos mas usados en FTP son los siguientes: • Comandos de acceso • Comandos de transferencia • Comandos de servicio 2.4.4 Correo Electrónico 2.4.4.1 POP3 (Post Office Protocol Versión 3) Es un protocolo para la gestión de correo en Internet. Es el más utilizado junto con SMTP, porque aunque en algunos nodos menores de Internet normalmente es poco práctico mantener un sistema de transporte de mensajes (MTS), es posible que una estación de trabajo no tenga recursos suficientes (espacio en disco, entre otros) para permitir que un servidor de SMTP [RFC821] y un sistema local asociado de entrega de correo estén residentes y continuamente en ejecución. De forma similar, puede ser caro (o incluso imposible) mantener una computadora personal interconectada a una red tipo IP durante grandes cantidades de tiempo (el nodo carece el recurso conocido como "connectivity"). A pesar de esto, a menudo es muy útil poder administrar correo sobre estos nodos, y frecuentemente soportan un user agent (UA agente de usuario) para ayudar en las tareas de manejo de correo. Para resolver el problema, un nodo que sí sea capaz de soportar un MTS ofrecerá a estos nodos menos dotados un servicio de maildrop. Se entiende por maildrop, el "lugar" en el sistema con el MTS donde el correo es almacenado para que los otros nodos puedan trabajar con él sin necesidad de mantener su propio MTS. El Protocolo de oficina de correos Versión 3 (POP3) está destinado a permitir que una estación de trabajo acceda dinámicamente a un maildrop en un host servidor de forma útil y eficiente. Esto significa que el protocolo POP3 se usa para permitir a una estación de trabajo recobrar correo que el servidor tiene almacenado. POP3 no está destinado a proveer de extensas operaciones de manipulación de correo sobre el servidor; normalmente, el correo es transmitido y entonces borrado. IMAP4 es un protocolo más avanzado y complejo y es tratado en [RFC1730] y revisado en [RFC 2060]. De aquí en adelante el termino (host) cliente se refiere a un host haciendo uso del servicio POP3 y host servidor al que ofrece este servicio. Inicialmente, el host servidor comienza el servicio POP3 leyendo el puerto 110 TCP. Cuando un host cliente desea de hacer uso del servicio, establece una conexión TCP con el host servidor. Cuando la conexión se establece, el servidor Unidad 2 17/17 Proceso Distribuido POP3 envía un saludo. Entonces, el cliente y el servidor de POP3 intercambian comandos y respuestas respectivamente hasta que la conexión se cierra o es abortada. Los comandos en el POP3 consisten en una palabra clave (keyword), posiblemente seguida de uno o más argumentos. Todos los comandos terminan con un par CRLF. Las palabras clave y los argumentos consisten en caracteres ASCII imprimibles. Las palabras clave y los argumentos están cada uno separados por un único carácter de espacio. Las palabras clave son de una longitud de tres o cuatro caracteres, mientras que cada argumento puede ser de hasta 40 caracteres de longitud. Las respuestas en el POP3 consisten de un indicador de estado y una palabra clave posiblemente seguida de información adicional. Todas las respuestas acaban en un par CLRF. Las respuestas pueden ser de hasta 512 caracteres de longitud, incluyendo el CRLF de terminación. También existen dos indicadores de estado: positivo o afirmativo ("+OK") y negativo ("-ERR"). Los servidores deben enviar el "+OK" y el "-ERR" en mayúsculas. Abastecedores POP3 Estos acceso de la oferta POP3/SMTP de los abastecedores solamente. Las cuentas POP3 se pueden también ver en la tela usando a un " lector ." Nota: Muchos tela-basados y los abastecedores los no-E.E.U.U. también ofrecen la accesibilidad POP3. 2.4.4.2 SMTP (Simple Mail Transfer Protocol) El Protocolo simple de transferencia de correo es uno de los Protocolos de Internet (IP) centrales diseñados para transferir correo electrónico de manera confiable y eficiente. La idea que subyace a SMTP es bastante sencilla. Un usuario o una aplicación (en este caso, Duwamish Online) redacta un mensaje que contiene la dirección de correo electrónico del destinatario (por ejemplo, "[email protected]") junto con el asunto y el contenido del mensaje. La entrega del mensaje se inicia al transferir el mensaje a un servidor SMTP dedicado. Basándose en el nombre de dominio de la dirección de correo electrónico del destinatario (por ejemplo, "empresa.com"), el servidor SMTP inicia la comunicación con un servidor de Sistema de nombres de dominio (DNS), que busca y devuelve el nombre de host del servidor SMTP de destino (por ejemplo, "mail.empresa.com") para ese dominio. Por último, el servidor SMTP de origen se comunica directamente con el servidor SMTP de destino a través del puerto 25 del Protocolo de control de transporte/Protocolo de Internet (TCP/IP). Si el nombre de usuario de la dirección de correo electrónico del destinatario coincide con una de las cuentas de usuario autorizadas en el servidor de destino, el mensaje original se transferirá a dicho servidor, esperando que el destinatario recoja el mensaje mediante un programa cliente. En caso de que el servidor SMTP de origen no pueda comunicarse directamente con el servidor de destino, el protocolo SMTP dispone de mecanismos para transferir mensajes a través de uno o varios servidores SMTP intermedios de retransmisión. Un servidor de retransmisión recibirá el mensaje original e intentará entregarlo al servidor de destino o redirigirlo a otro servidor de retransmisión. Este proceso se repetirá hasta que se entregue el mensaje o hasta que transcurra un periodo de tiempo de espera designado. Unidad 2 18/18 Proceso Distribuido Probar con el directorio de recogida O bien, puede redactar un sencillo archivo de texto de correo electrónico basándose en las especificaciones de SMTP (RFC 822). A continuación se muestra el contenido de un archivo de texto de ejemplo escrito en el Bloc de notas: De: [email protected] Para: [email protected] Asunto: prueba Éste es el cuerpo del mensaje de prueba. Conclusión El servicio SMTP suministrado por Servicios de Internet Información Server de Windows 2000 es un componente sencillo y eficaz para entregar mensajes de correo electrónico salientes de manera rentable. Evita que los administradores de sistemas tengan que configurar un sistema de mensajería complejo para la transmisión confiable de mensajes de correo de Internet. Cuando se utiliza con CDO para Windows 2000, los programadores pueden implementar comunicaciones SMTP sin necesidad de escribir mucho código. 2.5. IPv6 Un poco de Historia El reducido espacio de IPv4, a pesar de disponer de cuatro mil millones de direcciones 2^32, la falta de coordinación en la decada de los 80 en la delegacion de direcciones nos a llevado a los limites no sospechados en aquel momento. La falta de direcciones no es apreciable por igual en todos los puntos de la red. Algunos proveedores de servicios de Internet se ven obligados a proporcionar direcciones IP privadas mediante mecanismos NAT (traslación de direcciones), lo que significa usar una sola IP pública para toda una red privada. Como ya se menciono la solución temporal es el uso de mecanismos NAT, desafortunadamente de seguir con IPv4 esta tendencia no seria temporal sino invariablemente permanente, esto implica la imposibilidad practica de muchas aplicaciones, que quedan relegadas a su uso en intranets, ya que muchos protocolos son incapaces de atravesar los dispositivos NAT. • RTP y RTCP (“Real-time Transport Protocol” y “Real Time Control Protocol”) usan UDP con asignación dinámica de puertos no soportado por NAT • La autentificación de Kerberos necesita la dirección fuente, que es modificada por NAT en la cabecera IP • IPsec pierde integridad, debido a que NAT cambia la dirección en la cabecera IP • Multicast, aunque es posible técnicamente, su configuración es tan complicada con NAT que en la práctica no se emplea. Básicamente ha habido tres fases importantes en el desarrollo de la IPv4 hasta lo que hoy conocemos como IPv6: a) 1992 TUBA b) 1993 SIPP (“Simple IP Plus”) c) 1994 IPng (“IPv6”) Unidad 2 19/19 Proceso Distribuido Introducción a IPv4 Como todos sabemos, los nombres que usamos para conectarnos a Internet (www.elmundo.es o www.google.com) se traducen en unos números (193.110.128.200 y 216.239.55.100, en nuestro ejemplo anterior) que son los que realmente usa la Red. Las direcciones en IPv4 esos números que vimos antes y que son los que conocemos en la Internet actual tienen 32 bits agrupados en 4 grupos de 8 bits, por lo que el conjunto global va de 0.0.0.0 a 255.255.255.255. Por tanto, idealmente se podrían asignar 4,294,967,296 direcciones. Con esto en mente, quienes diseñaron la IPv4 pensaron que esto sería más que suficiente. El problema está en que las direcciones se asignan en bloques o subredes; o sea, se agrupan, se asignan a alguien (empresa, Universidad, etc.) y todas ellas se consideran ya ocupados (se usen o no). Las agrupaciones clásicas son: • Clase A: Donde se fija el primer octeto y se dejan los otros tres para que el usuario los maneje. Por ejemplo, se le asigna la subred "30.x.x.x". Las IPs asignadas al usuario son 256*256*256=16.777.216 • Clase B: se fijan los dos primeros octetos y los dos restantes quedan para el usuario. Por ejemplo, "156.23.x.x". Las IPs asignadas al usuario son 256*256=65536 • Clase C: se fijan los tres primeros octetos y el que resta queda para el usuario. Por ejemplo, "193.110.128.x". Las IPs asignadas al usuario son 256. El problema, sobre todo en las primeras fases, fue que se asignaban con mucha facilidad y alegría Clases A y B, con lo que el espacio consumido y, sobre todo, el desperdiciado fue muy grande. Actualmente nos enfrentamos al grave problema de que el direccionamiento IPv4 está cercano a agotarse y, por tanto, el crecimiento de Internet se pararía porque no podrían incorporarse nuevas máquina a la Red. IPv6 (Internet Protocol Version 6) IPv6 o IPng (Next Generation Internet Protocol) es la nueva versión del protocolo IP (Internet Protocol). Ha sido diseñado por el IETF (Internet Engineering Task Force) para reemplazar en forma gradual a la versión actual, el IPv4. En esta versión se mantuvieron las funciones del IPv4 que son utilizadas, las que no son utilizadas o se usan con poca frecuencia, se quitaron o se hicieron opcionales, agregándose nuevas características, y además ofrece soporte a las nuevas redes de alto rendimiento (como ATM, Gigabit Ethernet, etc.) Sus características principales son: • Mayor espacio de direccionamiento Las direcciones pasan de 32 a 128 bits, con esto desaparecen los problemas de direccionamiento del IPv4 actual y por lo tanto no son necesarias técnicas como NAT. • Seguridad Uno de los grandes problemas achacable a Internet es su falta de seguridad en su diseño base. Este es el motivo por el que han tenido que desarrollarse, por ejemplo, el SSH o SSL, protocolos a nivel de aplicación que añaden una capa de seguridad a las conexiones que pasan a través suyo. IPv6 incluye IPsec, que permite autenticación y encriptación del propio protocolo base, de forma que todas las aplicaciones se pueden beneficiar de ello. Unidad 2 20/20 Proceso Distribuido • Autoconfiguracion Al igual que ocurría con el punto anterior, en el actual IPv4 han tenido que desarrollarse protocolos a nivel de aplicación que permitiesen a los ordenadores conectados a una red asignarles su datos de conectividad al vuelo. Ejemplos son el DHCP o BootP. IPv6 incluye esta funcionalidad en el protocolo base, la propia pila intenta autoconfigurarse y descubrir el camino de conexión a Internet (router discovery) • Movilidad Con la movilidad (o roaming) ocurre lo mismo que en los puntos anteriores, una de las características obligatorias de IPv6 es la posibilidad de conexión y desconexión de nuestro ordenador de redes IPv6 y, por tanto, el poder viajar con él sin necesitar otra aplicación que nos permita que ese enchufe/desenchufe se pueda hacer directamente. Direccionamiento en IPv6 Las direcciones son de 128 bits e identifican interfaces individuales o conjuntos de interfaces. Al igual que en IPv4 en los nodos se asignan a interfaces. Se clasifican en tres tipos: • Unicast identifican a una sola interfaz. Un paquete enviado a una dirección unicast es entregado sólo a la interfaz identificada con dicha dirección. • Anycast identifican a un conjunto de interfaces. Un paquete enviado a una dirección anycast, será entregado a alguna de las interfaces identificadas con la dirección del conjunto al cual pertenece esa dirección anycast. • Multicast identifican un grupo de interfaces. Cuando un paquete es enviado a una dirección multicast es entregado a todos las interfaces del grupo identificadas con esa dirección. En el IPv6 no existen direcciones broadcast, su funcionalidad ha sido mejorada por las direcciones multicast. ¿Cómo son las direcciones? Las representación de las direcciones cambia enormemente y pasan de estar representadas por 4 octetos separados por puntos a estar divididas en grupos de 16 bits (representadas como 4 dígitos hexadecimales) separados por el carácter dos puntos. Un ejemplo: • La Web del mundo es en IPv4 es 193.110.128.200 • En IPv6 la IP de nuestra web es 2002:450:9:10::71, siendo su representación completa 2002:0450:0009:0010:0000:0000:0000:0071 El esquema usado de asignación es similar al anteriormente explicado para IPv4 (clases A, B y C) pero con los bloques y la capacidad de división mucho mayor. Pongamos el ejemplo de una empresa media que necesita crear muchas subredes para sus delegaciones. Con IPv4 a lo máximo que podría aspirar y eso teniendo mucha suerte sería a una Clase. En IPv6 lo común es que se asigne un /48, donde se fijan los primeros 48 bits, los 16 restantes para hacer subredes (por tanto, 65.535 posibles subredes) y los 64 restantes para la asignación de la máquina. Unidad 2 21/21 Proceso Distribuido Figura 5. Diagrama de comparación de IPv4 e IPv6 ¿Por surge IPv6? Algunas Estadísticas del Crecimiento del Internet Como ya se a mencionado el motivo primordial es la falta de direcciones, otros de los problemas de IPv4 es la gran dimensión de las tablas de ruteo en el backbone de Internet, que lo hace ineficaz y perjudica los tiempos de respuesta. Debido a la multitud de nuevas aplicaciones en las que IPv4 es utilizado, ha sido necesario agregar nuevas funcionalidades al protocolo básico, aspectos que no fueron contemplados en el análisis inicial de IPv4, lo que genera complicaciones en su escalabilidad para nuevos requerimientos y en el uso simultáneo de dos o más de dichas funcionalidades. Entre las mas conocidas se pueden mencionar medidas para permitir la Calidad de Servicio (QoS), Seguridad (IPsec) y movilidad. Las cifras de “internautas”, dan crédito a expuesto anteriormente: • África: 800,000,000 (solo 3,000,000 sin NAT) • América central y del Sur: 500,000,000 (solo 10,000,000 sin NAT) • América del Norte: 500,000,000 (solo 125,000,000 sin NAT) • Europa Occidental: 250,000,000 (solo 50,000,000 sin NAT) Aplicaciones 1. Telefonía sobre tecnología IP (VoIP) 2. Televisión y Radio 3. Sistemas de seguridad, televigilancia y control 4. Frigoríficos que evalúan nuestros hábitos de consumo y nos dan la opción de: a) Imprimir una lista de la compra b) Hacer el pedido en el supermercado para que nos sea entregado automáticamente c) Hacer el pedido y pasarlo a recoger al supermercado d) Navegar por un supermercado virtual y cargar el carrito de compras Unidad 2 22/22 Proceso Distribuido 5. Despertadores que conocen nuestros tiempos de desplazamiento habituales a nuestro lugar de trabajo, y con motivo de cualquier inconveniente de los cuales es informado a través de la red, calculan el tiempo adicional que necesitamos y nos levantan con la anticipación precisa. 6. Walkman MP3, que conectados a la red nos permiten recuperar y almacenar creaciones musicales 7. Así como nuevas tecnologías emergentes como Bluetooth. WAP, redes inalámbricas, redes domesticas, etc. Conclusión La verdadera cuestión no es si necesitamos y creemos en IPv6, sino ¿Estamos interesados en una red que permita a cualquier dispositivo electrónico IP comunicarse transparentemente con otros, independientemente de su localización, en la red global? Unidad 2 23/23