• No se han encontrado resultados

Libro Final Sistemas Distribuidos PDF

N/A
N/A
Protected

Academic year: 2021

Share "Libro Final Sistemas Distribuidos PDF"

Copied!
176
0
0

Texto completo

(1)

Copyright©2005 UNIVERSIDAD PERUANA LOS ANDES Programa de Educación a Distancia. Huancayo – Perú Prohibida la reproducción total o parcial sin

autorización por escrito del Rector de la Universidad. La redacción de este texto estuvo a cargo de Ing. Carlos Alcides Almidón Ortiz.

(2)

Presentación

La evolución de las tecnologías de la información y comunicación en el mundo nos permite implementar diferentes aplicaciones en la red, debido esto la generalización del termino cloud computing (servicios en el internet), la popular nube, como paradigma de todo tipo, tanto organizativo como de diseño de sistemas, conlleva a una interesante reflexión.

Si la nube permite a los clientes y usuarios poder obtener funcionalidades a través de servicios, de los cuales solo conocen su contrato de servicio pero ignoran el diseño y la localización. Muchas veces olvidamos que los servicios han de ser fabricados y que para ese trabajo hay que prepararse, entonces aquí ingresa el diseño de los sistemas distribuidos.

Un sistema distribuido es un sistema de información en el cual las funciones se reparten por áreas de trabajo diferentes que trabajan de forma coordinada para asumir los objetivos que la organización asigna a ese sistema de información.

En este manual se trata de dar un alcance al estudiante de cómo diseñar sistemas distribuidos, que consiste en crear aplicaciones de software que, utilizando servicios y ayudándose de la conectividad, participen y se integren en este entorno de forma transparente a las plataformas de proceso y de almacenamiento de datos, dotándolas de los recursos necesarios para gestionarse de forma integrada con el resto del sistema distribuido.

Los sistemas distribuidos que se diseñen y construyan deben estar alineados con los objetivos de negocio de la empresa, aumentar la eficacia y eficiencia operacional de la compañía y permitir el mayor rendimiento con el menor costo en las estructuras informáticas que dan soporte.

(3)
(4)

Programación general

Conceptos de los Sistemas Distribuidos

Autoaprendizaje 3 horas Unidad 1

Modelos de Sistemas Distribuidos

Autoaprendizaje 3 horas Unidad 2

Comunicación a Nivel de Redes.

Autoaprendizaje, 3 horas Unidad 3

Comunicación de procesos en los Sistemas Distribuidos. Autoaprendizaje, 3 horas

Unidad 4

Comunicación a bajo nivel, Sockets.

Autoaprendizaje 3 horas Unidad 5

Objetos Distribuidos e Invocacion Remota Autoaprendizaje, 3 horas Unidad 6

Sistemas de Archivos Distribuidos

Autoaprendizaje, 4 horas

Unidad 7

Seguridad en Sistemas Distribuidos

Autoaprendizaje, 3 horas Unidad 8

(5)

Tabla de contenido

Página Presentación

Programa general

Conceptos de Sistemas Distribuidos 1

(6)

UNIDAD ACADÉMICA Nº 01

Sistemas Distribuidos

Un sistemas Distribuido es aquel en el que los componentes hardware o software, localizados en computadores unidos mediante red, comunican y coordinan sus acciones sólo mediante paso de mensajes.

Figura 1. Representación de un Sistema Distribuido

INDICADORES DE LOGRO

Al terminar esta unidad el estudiante estará en condiciones de:

• Definir y describir que es un Sistemas Distribuidos.

• Describir las caracteristicas de un Sistema Distribuidos.

• Describir los desafíos de los Sistemas Distribuidos.

• Realizar ejemplos de Sistemas Distribuidos.

1. CARACTERISTICAS DE LOS SISTEMAS DISTRIBUIDOS

Existen redes de computadoras en cualquier parte. Una de ellas es Internet, como los son las muchas redes de las que se compone. Las redes de teléfonos móviles, las redes corporativas, las de las empresas, los campus, las casas, redes dentro del coche, todas, tanto separados, como combinadas, comparten las características esenciales que las hacen elementos importantes para su estudio bajo el título de Sistemas Distribuidos.

(7)

Los computadores que están conectados mediante una red pueden estar separados especialmente por cualquier distancia. Pueden estar en continentes distintos, en el mismo edificio o en la misma habitación. Nuestra definición de Sistema Distribuido tiene las siguientes consecuencias significativas:

Concurrencia.- En una red de computadores, la ejecución de

programas concurrentes es la norma. Usted puede estar realizando un trabajo en su computador, mientras otra persona también y a la vez ambos comparten recursos como páginas web o ficheros, cuando es necesario. La capacidad del sistema para manejar recursos compartidos se puede incrementar añadiendo más recursos (por ejemplo computadoras) a la red. Ventajas: Trabajo Cooperativo.

Inconvenientes: Programación Compleja.

Inexistencia de Reloj Global.- Cuando los programas

necesitan cooperar coordinan sus acciones mediante el intercambio de mensajes. La coordinación estrecha depende a menudo de una idea compartida del instante en el que ocurren las acciones de los programas pero resulta que hay límites a la precisión con lo que los computadores en una red pueden sincronizar sus relojes, no hay una única noción global del tiempo correcto. Esto es una consecuencia directa del hecho que la única comunicación se realiza enviando mensajes a través de la red.

Fallos Independientes.- Todos los sistemas informáticos

pueden fallar y los diseñadores de sistemas tienen la responsabilidad de planificar las consecuencias de posibles fallos. Los sistemas distribuidos pueden fallar de nuevas formas. Los fallos en la red producen el aislamiento de los

Figura 2. Internet

(8)

computadores conectados a él, pero eso no significa que detengan su ejecución. De hecho, los programas que se ejecutan en ellos pueden no ser capaces de detectar cuando la red ha fallado o está excesivamente lenta. De forma similar, la parada de un computador o la terminación inesperada de un programa en alguna parte del sistema no se da a conocer inmediatamente a los demás componentes con los que se comunica. • Razones de Su Origen.-Compartir Recursos:  Procesos  Archivos  Servicios

Ejemplos de Sistemas Distribuidos

Planteamos ejemplos basados en redes de computadoras conocidas y utilizadas ampliamente Internet, Intranets y la tecnología emergente basada en dispositivos móviles. Se han elegido para proporcionar ejemplos del amplio rango de servicios y aplicaciones que son soportados por redes de computadoras y para comenzar la discusión de las cuestiones técnicas que entraña su implementación.

Ejemplo 1: Internet:

Es una vasta colección de redes de computadoras de diferentes tipos interconectados. Programas ejecutándose en los computadores conectados a ella interactúan mediante paso de mensajes, empleando un medio común de comunicación. Internet, también es un sistema distribuido muy grande. Permite a los usuarios, donde quiera que estén, hacer uso de servicios como el

Figura 3. Red LAN, WAN

(9)

World Wide Web, el correo electrónico, y la transferencia de ficheros.

En internet hay disponibles servicios multimedia, que permiten a los usuarios el acceso a datos de audio y video. La implementación de internet y los servicios que mantiene ha implicado el desarrollo de soluciones prácticas para muchas cuestiones de sistemas distribuidos.

Ejemplo 2: Intranets:

Una intranet es una porción de internet que es, administrada separadamente y que tiene un límite que puede ser configurado para hacer cumplir políticas de seguridad local. Está compuesta de varias redes de área local (LANs) enlazadas por conexiones backbone. Una intranet está conectada a Internet por medio de un encaminador (router), lo que permite a los usuarios hacer uso de servicios de otro sitio como web o el correo electrónico, en este escenario el papel del cortafuegos es proteger la intranet impidiendo que entren o salgan mensajes no autorizados. Un cortafuegos se implementa filtrando los mensajes que entran y salen, por ejemplo de acuerdo con su origen o destino. Un cortafuegos podría permitir, sólo aquellos mensajes relacionados con el correo electrónico el acceso web entrar o salir de la intranet que protege.

Ejemplo 3:

Computación Móvil y Ubicua:

Los avances tecnológicos en la miniaturización de dispositivos y en redes inalámbricas han llevado cada vez más a la integración de dispositivos de computación pequeños y portátiles en sistemas distribuidos. Estos dispositivos incluyen: Computadoras portátiles, Dispositivos de manos como asistentes digitales personales, teléfonos móviles, buscapersonas y videocámaras o cámaras digitales. También dispositivos que se puedan llevar puestos como relojes inteligentes con funcionalidad semejante a los asistentes

(10)

digitales personales, y Dispositivos insertados en aparatos como lavadoras, sistemas de alta fidelidad, coches y frigoríficos.

Se llama computación móvil a la realización de tareas de cómputo mientras el usuario está en movimiento o visitando otros lugares distintos de su entorno habitual. En la computación móvil, los usuarios que están fuera de su hogar intranet disponen de la posibilidad de acceder a los recursos mediante los dispositivos que llevan con ellos. Pueden continuar accediendo a internet; pueden acceder a los recursos de su intranet; y se está incrementando la posibilidad de que utilicen recursos como impresoras, que están suficientemente próximos a donde se encuentren.

Computación ubicua es la utilización concertada de muchos dispositivos de computación pequeños y baratos que están presentes en los entornos físicos de los usuarios, incluyendo la casa, la oficina y otros. El término ubicuo está pensado para sugerir que los pequeños dispositivos llegarán a estar tan extendidos en los objetos de cada día que apenas nos daremos cuenta de ellos. O sea, su comportamiento computacional estará ligado con su función física de forma ínfima y transparente. Por ejemplo, podría ser conveniente para los usuarios controlar su lavadora y su equipo de alta fidelidad desde un dispositivo de control remoto universal en su casa. Del mismo modo, la lavadora podría avisar al usuario a través de una tarjeta inteligente o reloj cuando el lavado hubiera finalizado.

La computación ubicua y móvil se solapan, puesto que un usuario moviéndose puede beneficiarse, en principio, de los computadores que están en cualquier parte. Pero, en general, son distintas. La computación ubicua podrá beneficiar a los usuarios mientras permanecen en un entorno sencillo como su casa o un hospital. De forma similar, la computación móvil tiene ventajas si sólo se consideran computadores convencionales y dispositivos como computadores portátiles e impresoras.

(11)

Figura 4. Computacion Movil y Ubicua

(12)

2. RECURSOS COMPARTIDOS Y WEB.

Como estamos viendo hasta ahora que los sistemas distribuidos trabajan a nivel de redes, y en este escenario normalmente compartimos recursos hardware como impresoras, recursos de datos como ficheros, y recursos con una funcionalidad más específica como máquinas de búsqueda. Considerado desde el punto de vista de la provisión de hardware, se comparten equipos como impresoras y discos para reducir costes. En la práctica los patrones de compartir recursos varían mucho en su enlace y cuán estrechamente trabajan juntos los usuarios. Los recursos en un sistema distribuido están encapsulados físicamente con los computadores y solo pueden ser accedidos desde otros computadores y sólo pueden ser accedidos desde otros computadores a través de comunicación. Para que se compartan de forma efectiva, cada recurso debe ser gestionado por un programa que ofrece una interfaz de comunicación permitiendo que se acceda y actualice el recurso de forma fiable y consistente. El termino servidor es probablemente familiar para la mayoría de los lectores. Se refiere a un programa en ejecución (un proceso) en un computador en red que acepta peticiones de programas que se están ejecutando en otros computadores para realizar un servicio y responder adecuadamente. Los procesos solicitantes son llamados clientes. Las peticiones se envían a través de mensajes desde los clientes al servidor y las contestaciones se envían mediante mensajes desde el servidor a los clientes. Cuando un cliente envía una petición para que se realice una operación, decimos que el cliente invoca una operación del servidor. Se llama invocación remota a una interacción completa entre un cliente y un servidor, desde el instante en el que el cliente envía su petición hasta que recibe la respuesta del servidor.

El mismo proceso puede ser tanto un cliente como un servidor, puesto que los servidores a veces invocan operaciones en otros

(13)

servidores. Los términos cliente y servidor se aplican a los roles desempeñados en una única solicitud. Ambos son distintos, en muchos aspectos, los clientes son activos y los servidores pasivos, los servidores se están ejecutando continuamente, mientras que los clientes sólo lo hacen el tiempo que duran las aplicaciones de las que forman parte.

Hay que señalar que por defecto los términos cliente y servidor se refieren a procesos no a los computadores en las que se ejecutan, aunque en lenguaje coloquial dichos términos se refieren también a los propios computadores.

2.1 El World Wide Web

Es un sistema en evolución para publicar y acceder a recursos y servicios a través de internet. Utilizando el software de un navegador web, fácilmente disponible como Netscape o Internet Explorer, los usuarios utilizan el Web para recuperar y ver documentos de muchas clases, para escuchar secuencias de audio y ver secuencias de vídeos, y para interaccionar con un conjunto ilimitado de servicios.

El Web es un sistema abierto, puede ser ampliado e implementado en nuevas formas sin modificar su funcionalidad existente.

Primero, su operación está basada en estándares de comunicación y en documentos estándares que están publicados libremente e

Figura 5. Proceso Cliente – Proceso Servidor

(14)

implementados en muchos casos sobre diferentes plataformas; y existen muchas implementaciones de servidores web.

Segundo, el web es abierto respecto a los tipos de recursos que pueden ser publicados y compartidos en él. En su forma más simple, un recurso es una página web o algún otro tipo de contenido que puede ser almacenada en un fichero y presentado al usuario, como ficheros de programa, de imágenes, de sonido y documentos en formato PostScript o PDF.

El Web está basado en tres componentes tecnológicos de carácter estándar básicos:

• El lenguaje de etiquetado de hipertexto (HTML, Hypertext Markup Languaje) es un lenguaje para especificar el contenido y el diseño de las páginas que son mostradas para los navegadores.

• Localizadores Uniformes de Recursos (URL, Uniform Resource Locator) que identifican documentos y otros recursos almacenados como parte de la Web.

• El protocolo de transferencia hipertexto – (HTTP, hyperText Transfer Protocol) mediante la cual los navegadores y otros clientes obtienen documentos y otros recursos de los servidores web.

Figura 6. Recursos Compartidos en la web

(15)

3. DESAFIOS DE LOS SISTEMAS DISTRIBUIDOS

En la actualidad tenemos muchos sistemas distribuidos a nuestro servicio en la vida diaria, aquí tratamos de dar algunos criterios para diseñar sistemas distribuidos teniendo en cuenta sus características

3.1 Heterogeneidad

Se refiere a la variedad y diferencia que podemos encontrar en los elementos que componen una red de computadores sobre la que se ejecuta un sistema distribuido. (Redes, hardware, sistemas operativos, lenguajes de programación, etc.).

A pesar de que internet consta de muchos tipos de redes diferente, sus diferencias se encuentran enmarcadas dado que todos los computadores conectados a éste utilizan los protocolos de internet para comunicarse una con otra. Por ejemplo un computador conectado a Ethernet tiene una implementación de los protocolos de Internet sobre ethernet, así un computador en un tipo de red diferente necesitará una implementación de los protocolos de internet para esa red. Los tipos de datos, como los enteros, pueden representarse de diferente forma en diferentes clases de hardware, por ejemplo hay dos alternativas para ordenar los bytes en el caso de los enteros. Hay que tratar con estas diferencias de representación si se va a intercambiar mensajes entre programas que se ejecutan en diferente hardware.

Aunque los sistemas operativos de todos los computadores de internet necesitan incluir una implementación de los protocolos de internet, no todas presentan necesariamente la misma interfaz de programación para estos protocolos. Por ejemplo, las llamadas para intercambiar mensajes en UNIX son diferentes de las llamadas en Windows 2003 server.

La heterogeneidad se aplica en los siguientes elementos:

• Redes

(16)

• Sistemas operativos

• Lenguajes de programación

• Implementaciones de diferentes desarrolladores. 3.1.1. Middleware

El middleware es un software de conectividad que ofrece un conjunto de servicios que hacen posible el funcionamiento de aplicaciones distribuidas sobre plataformas heterogéneas. Funciona como una capa de abstracción de software distribuida, que se sitúa entre las capas de aplicaciones y las capas inferiores (sistema operativo y red). El middleware nos abstrae de la complejidad y heterogeneidad de las redes de comunicaciones subyacentes, así como de los sistemas operativos y lenguajes de programación, proporcionando una API para la fácil programación y manejo de aplicaciones distribuidas. Dependiendo del problema a resolver y de las funciones necesarias, serán útiles diferentes tipo de servicios de middleware

Es el estrato de software que provee una abstracción de programación, así como un enmascaramiento de la heterogeneidad subyacente de las redes, hardware, sistemas operativos y lenguajes de programación. Ejem: Corba, Java RMI.

Figura 7. Sistemas Distribuidos como MIddleware

(17)

3.1.2. Heterogeneidad y código móvil

• Código Móvil: código que puede enviarse desde un computador a otro y ejecutarse en este último.

• El concepto de máquina virtual ofrece un modo de crear código ejecutable sobre cualquier hardware.

3.2. Extensibilidad

Es la característica que determina si el sistema puede extenderse de varias maneras. Un sistema puede ser abierto o cerrado con respecto a extensiones de hardware o de software.

Para lograr la extensibilidad es imprescindible que las interfaces clave sean publicadas.

Los Sistemas Distribuidos Abiertos pueden extenderse a nivel de hardware mediante la inclusión de computadoras a la red y a nivel de software por la introducción de nuevos servicios y la reimplementación de los antiguos.

Otro beneficio de los sistemas abiertos es su independencia de proveedores concretos.

3.3. Seguridad

La seguridad tiene tres componentes:

Confidencialidad: protección contra individuos no autorizados. Integridad: protección contra la alteración o corrupción.

Disponibilidad: protección contra la interferencia que impide el acceso a los recursos.

Existen dos desafíos que no han sido resueltos en su totalidad: Ataques de denegación de servicio.

Seguridad del código móvil. 

3.4. Escalabilidad

Se dice que un sistema es escalable si conserva su efectividad cuando ocurre un incremento significativo en el número de recursos y en el número de usuarios.

(18)

Control de costo de los recursos físicos: para que un sistema

con n usuarios sea escalable, la cantidad de recursos físicos necesarios para soportarlo debería ser O(n).

Controlar la degradación del rendimiento: Ejm: Los algoritmos

que emplean estructuras jerárquicas se comportan mejor frente al crecimiento de la escala, que los algoritmos que emplean estructuras lineales.

Evitar cuellos de botella: los algoritmos deberían ser

descentralizados.

Prevenir el desbordamiento de los recursos de software.

3. 5. Tratamiento de Fallos.

Detección de fallos:

Ejem. Se pueden utilizar sumas de comprobación (checksums) para detectar datos corruptos en un mensaje.

Enmarascamiento de fallos:

Ejem. Los mensajes pueden retransmitirse, Replicar los datos.

Tolerancia de fallos:

Los programas clientes de los servicios pueden diseñarse para tolerar ciertos fallos. Esto implica que los usuarios tendrán también que tolerarlos.

Recuperación de fallos:

Implica el diseño de software en el que, tras una caída del servidor, el estado de los datos puede reponerse o retractarse (rollback) a unasituación anterior.

Redundancia:

Emplear componentes redundantes. 3.6. Concurrencia

Existe la posibilidad de acceso concurrente a un mismo recurso. La concurrencia en los servidores se puede lograr a través de threads.

(19)

Cada objeto que represente un recurso compartido debe responsabilizarse de garantizar que opera correctamente en un entorno concurrente.

Para que un objeto sea seguro en un entorno concurrente, sus operaciones deben sincronizarse de forma que sus datos permanezcan consistentes.

3.7. Transparencia

Transparencia de acceso: permite acceder a los recursos locales y remotos empleando operaciones idénticas.

Transparencia de ubicación: permite acceder a los recursos sin conocer su localización.

Transparencia de concurrencia: permite que varios procesos operen concurrentemente sobre recursos compartidos sin interferencia mutua.

Transparencia de replicación: permite replicar los recursos sin que los usuarios y los programadores necesiten su conocimiento.

Transparencia frente a fallos: permite ocultar fallos.

Transparencia de movilidad: permite la reubicación de recursos y clientes en un sistema sin afectar la operación de los usuarios y los programas.

Transparencia de rendimiento: permite reconfigurar el sistema para mejorar el desempeño según varíe su carga.

Transparencia al escalado: permite al sistema y a las aplicaciones expandirse en tamaño sin cambiar la estructura del sistema o los algoritmos de aplicación.

ACTIVIDAD

 Tome World Wide Web como ejemplo para ilustrarel concepto de compartición de recursos, cliente y servidor. Los recursos en el World Wide Web y otros servicios se direccionan mediante URL.

(20)

o Proporcione ejemplos de tres tipos de recursos web a los que puede darse el nombre de URL.

o Enumere los tres componentes principales de un URL, indicando como se delimitan e ilustre cada uno a partir de un ejemplo.

RESUMEN

Los Sistemas Distribuidos están por todas partes, internet permite que los usuarios de todo el mundo accedan a sus servicios donde quieran que estén situados. Cada organización administra una intranet, que provee servcios locales y servicios de internet a los usuarios locales y habitualmente proporciona servicios a otros usuarios de internet. Es posible construir pequeños sistemas distribuidos con computadores portátiles y otros dispositivos computacionales pequeños conectados a una red inalámbrica.

La compartición de recursos y servicios de red es el principal factor que motiva la construcción de sistemas distribuidos. Recursos como impresoras, archivos, páginas web o registros de base de datos se administran mediante servidores del tipo apropiado. Las infraestructuras físicas y lógicas de red nos permiten administrar y direccionar los paquetes en la red y los servidores nos permiten implemntar y adminsitrar los servicios en la red, como por ejemplo los servidores web administran páginas web y otros recursos web. Los recursos son accedidos por clientes, por ejemplo los clientes de los servidores web son los Browser o navegadores web.

La construcción de los sistemas distribuidos presentan muchos desafíos como la heterogeneidad, extensibilidad, seguridad, escalabilidad, tratamiento de fallas, concurrencia, transparencia los cuales deben ser abordados para su construccion.

(21)

o George Colouris, “Sistemas Distribuidos” Conceptos y

Diseño, Addison Wesley, España 2001

http://www.cdk3.net/

o Tanenbaum, Distributed Systems: Principles and

Paradigms, Prentice Hall, Mexico 2002.

http://www.prenhall.com/divisions/esm/app/author_tanenb aum/custom/dist_sys_1/

o Liu, “Distributed Computing: Principles and

Applications”,

Addison Wesley, Mexico 2005

http://www.csc.calpoly.edu/~mliu/book/

AUTOEVALUACION FORMATIVA

o Proponga cinco tipos de recursos hardware y cinco tipos

de recursos de software o de datos que puedan compartirse útilmente. Proponga ejemplos de su entorno, compratido tal y como ocurre en la practica en los sistemas distribuidos.

o Un usuario llega a una estación de ferrocarril que no

conoce, portando un PDA capaz de conectarse a una red inalámbrica. Sugiera como podría proporcionársele al usuario información sobre los servicios locales y las comodidades de la estación, sin necesidad de insertar el nombre de la estación o sus caracteristicas. ¿Qué dificultades hay que superar?.

o ¿Cuales son las ventajas y desventajas de HTML, URL, HTTP, como tecnologías de base para la consulta y visualización de la información?, ¿Son algunas de estas tecnolgias adecuadas como plataforma de computo cliente servidor en general?

o ¿Cómo podría sincronizerse los relojes de dos computadores unidos por una red local, sin hacer uso de referencia temporal externa?, ¿Cómo podrían

(22)

sincronizarse los relojes de un mayor numero de computadores conectados a Internet?.

(23)

UNIDAD ACADÉMICA Nº 02

MODELOS DE SISTEMAS

DISTRIBUIDOS

Los sistemas pensados para trabajar en entornos reales deben diseñarse para funcionar correctamente en el rango de circunstancias mas amplio posible y considerando todas las dificultades de amenazas (modos de utilización muy variable, amplio rango de entornos, problemas internos, amenazas externas). Esto conlleva a sugerir que los sistemas distribuidos de tipos diferentes comparten importantes propiedades subyacentes y dan lugar a problemas de diseño comunes, en este capitulo se presenta las propiedades y temas de diseño comunes para los sistemas distribuidos bajo la forma de de modelos descriptivos. Cada modelo está pensado para proporcionar una descripción abstracta, simplificada pero consistente, de cada aspecto relevante del diseño de un sistema distribuido.

En los modelos de Sistemas Distribuidos tenemos 2 tipos:

• Los modelos Arquitectónicos

• Los modelos Fundamentales.

INDICADORES DE LOGRO

Al terminar esta unidad el estudiante estará en condiciones de:

• Definir, describir los modelos de Sistemas Distribuidos.

• Definir y describir los modelos arquitectónicos de Sistema Distribuidos y sus variantes.

• Definir y describir los modelos fundamentales de Sistemas Distribuidos.

• Realizar ejemplos de Sistemas Distribuidos arquitectónicos y fundamentales.

(24)

2.1 MODELOS ARQUITECTÓNICOS

La arquitectura de un sistema es su estructura en términos de componentes especificados por separado. El objetivo global es asegurar que la estructura satisfaga las demandas presentes y previsibles sobre él. Es asi que el diseño arquitectónico de un edificio tiene aspectos similares y determina no solo su apariencia, sino también su estructura general y su estilo arquitectónico (gótico, neoclásico, moderno), proporcionando un marco de referencia consistente para el diseño.

Un Modelo Arquitectónico de un Sistema Distribuido, trata sobre la colocación de sus partes y las relaciones entre ellas, también simplifica y abstrae, inicialmente las funciones de los componentes individuales de dicho sistema y posteriormente considera 2 criterios:

 La ubicación de los componentes en la red de computadores, buscando definir patrones utilizables para la distribución de datos y carga de trabajo.

 Las interrelaciones entre los componentes, sus papeles

funcionales y los patrones de comunicación entre ellos el modelo cliente-servidor y el modelo de procesos de ¨igual a igual¨ (peer to peer).

2.1.1 CAPAS DE SOFTWARE

El término arquitectura de software se refería inicialmente a la estructuración del software como capas en un único computador, recientemente se refiere que las capas son uno o varios procesos, localizados en el mismo o en diferentes computadores, que ofrecen y solicitan servicios.

Plataforma:

Son las capas más bajas proporcionan servicios a las capas que están sobre ellas, y son implementadas independientemente en cada computador,

(25)

proporcionando una interfaz de programación del sistema a un nivel que facilita la comunicación y coordinación entre procesos. Ejemplo: Windows, Linux, Solaris etc. La plataforma

 Contiene los servicios propios de cada computadora

concreta.

 Depende del Hardware y del Sistema Operativo Aplicación de servicios Middleware Sistema Operativo Computador y Hw. de redMiddleware:

Es una capa de software cuyo propósito es enmascarar la heterogeneidad y proporcionar un modelo de programación conveniente para los programadores de aplicaciones.

Son procesos u objetos que implementan mecanismos de comunicación y recursos compartidos para aplicaciones distribuidas.

El middleware se ocupa de proporcionar bloques útiles para la construcción de componentes de software que puedan trabajar con otros en un sistema distribuido.

Aplicación de servicios

Middleware

Sistema Operativo Computador y Hw. de red Plataforma

Figura 1. Capas de servicio software y hardware en los sistemas distribuidos

Figura 2. Middleware

(26)

En particular mejora el nivel de las actividades de comunicación de los procesos de aplicación soportando abstracciones como: llamadas a procedimientos remotos, comunicación entre un grupo de procesos, etc.

Ejem: Sun RPC (llamadas a procedimientos remotos), CORBA (middleware orientado a objeto), Java RMI (invocación de objetos remotos en Java), DCOM (Modelo común de objetos distribuidos de Microsoft).

El middleware también puede proporcionar otros servicios, aparte de la comunicación, para su uso en programas de aplicación.

Por ejemplo: gestión de nombres, seguridad, almacenamiento persistente, etc.

El middleware

 Permite enmascarar la heterogeneidad.

 Puede dar un modelo y una interfaz de programación utilizable

 Puede soportar abstracciones como:

Procedimientos de invocación remota (RPC).

– Comunicación entre grupos de procesos.

Eventos, replicación, servicios multimedia, etc.

¿Qué forma tiene el Middleware? – Bibliotecas adicionales

Procedimientos de invocación remota(RPC). Objetos Remotos (RMI, CORBA)

– Herramientas de Programación.

Lenguajes de definición de Interfaces + compiladores para ellos.

– Servicios Básicos de ayuda

Servicio de Nombres para buscar objetos De notificación de eventos

De control de Transacciones, etc. ¿Qué limitaciones impone?

(27)

– Se incrementa la complejidad arquitectónica.

Hay mas niveles

– Hay que aprender más herramientas.

– Se pierde el control de bajo nivel sobre los modos de

fallo.

– Se depende de varias personas. 2.1.2 ARQUITECTURA DE LOS MODELOS

La división de responsabilidades entre los componentes del sistema (aplicaciones, servidores y otros procesos) y la ubicación de los componentes en la red es el aspecto más importante en el diseño de un sistema distribuido.

Sus implicancias fundamentales están en las prestaciones, fiabilidad y seguridad del sistema resultante.

Principales modelos arquitectónicos.

• Modelo cliente servidor

• Múltiples servidores

• Procesos de igual a igual

2.1.3 MODELO CLIENTE – SERVIDOR

Clientes que invocan a servidores individuales. El servidor puede o no estar en la misma máquina del cliente. Tanto servidores como clientes pueden ser iterativos o concurrentes.

El más común de modelos (DNS, Web, ftp, telnet, etc.)

Un servidor puede ser cliente de otro servicio. (servidor web, Crawler )

(28)

Servicios proporcionados por múltiples servidores.

Los servicios pueden implementarse como distintos procesos de servidor en computadores separados interaccionando cuando es necesario, para proporcionar un servicio a los procesos clientes. Lo servidores pueden dividir el conjunto de objetos en los que está basado el servicio y distribuírselo entre ellos mismos, o pueden mantener copias replicas de ellos en varias maquinas

– Muy usada en DNS, Web y NIS.

– Cache almacena los recursos más probablemente

usados.

– Un cache puede responder a un esquema de Proxy.

Los servidores Proxy para la Web aumentan la disponibilidad

Servidores Proxy y Caches

Cache: almacén de objetos de datos utilizados recientemente, y se encuentra más próximo que los objetos en sí. Al recibir un objeto nuevo en un computador se añade al almacén de la cache reemplazando si fuera necesario algunos objetos existentes.

Cliente

Cliente

Servidor

Servidor

Servidor

Figura 4. Un servicio proporcionado por multiples servidores.

(29)

Los caches pueden estar ubicados en los clientes o en un servidor Proxy que se puede compartir desde varios clientes.

El propósito de los servidores proxy es incrementar la disponibilidad y las prestaciones del servicio, reduciendo la carga en las redes de área Amplia y en los servidores WEB. Servidores Proxy y Caches

Procesos Peer-to-Peer

En esta arquitectura todos los procesos desempeñan tareas semejantes, interactuando cooperativamente como iguales para realizar una actividad distribuida de cómputo sin distinción entre clientes y servidores.

Los procesos pares mantienen la consistencia de los recursos y sincroniza las acciones a nivel de aplicación.

Figura 5. Un servidor proxy del tipo web

Figura 7. Aplicación distribuida basa en proceso de igual a igual Figura 6. Como funciona un proxy

(30)

Útil al descomponer aplicaciones en tareas coordinadas. Ejemplos: Cooperación y coordinación, Algoritmos descentralizados, Coordinación de agendas, trabajo colaborativo.

2.1.4 VARIACIONES DEL MODELO CLIENTE SERVIDOR

Factores que determinan la variación del modelo cliente servidor:

• El uso de código móvil y agente móvil

• Las necesidades de los usuarios de computadores de bajo costo y con recursos de hardware limitados, que son muy sencillos de manejar

• El requisito de añadir o eliminar de una forma conveniente los dispositivos móviles

Código Móvil. Es el código que puede ser enviado de un computador dado y ejecutarse en este. Ejemplo los Applets de Java

Agente Móvil: es un programa que se traslada en la red, de un computador a otro, realizando una tarea para alguien. Ejem. Recolecta información. Computadores en red: se descarga desde un servidor remoto el sop y cualquier software de aplicación necesario.

Figura 8. Interfaz de un dispositivo movil

(31)

Clientes Ligeros: en el cliente sólo se ejecuta una interfaz basada en ventanas, mientras que la aplicación si se ejecuta en un servidor remoto, usualmente muy potente (multiprocesador, clusters, etc.).

Algunas Posibilidades:

Según la ubicación del código del proceso del cliente:  Código estático

 Código con movilidad (recolocación del proceso)

Según la proporción de tareas que recae sobre el cliente y el servidor:

 Clientes al estilo habitual

 Clientes ligeros de aplicaciones complejas  Computadoras de red

Red Espontanea Ventajas

 Facilidad de conexión a la red local

Figura 9. Applet del tipo web.

(32)

 Facilidad de integración con los servicios locales Problemas

 Seguridad  Conectividad

 Servicio de detección.

Según el diseño de la Interfaz entre procesos

 Interfaz estático (interfaz orientado al llamado a

procesamiento remoto RPC) 2.1.5 INTERFACES Y OBJETOS

Una interfaz de un proceso es la especificación del conjunto de funciones que se pueden invocar sobre él.

En lenguajes orientados a objetos, los procesos distribuidos pueden ser construidos de una forma más orientada al objeto. Las referencias a estos objetos se pasan a otros procesos para que se pueda acceder a sus métodos de forma remota. Esta es la aproximación adoptada por CORBA y Java RMI.

2.1.6 REQUISITOS PARA EL DISEÑO DE ARQUITECTURAS DISTRIBUIDAS

Rendimiento

Capacidad de respuesta: para obtener buenos tiempos de respuesta los sistemas deben estar compuestos por pocas capas de software y la cantidad de datos transferida debe ser pequeña (ejem. Uso de proxys y caches).

Figura 11. Intercomunicacion espontanea en un hotel

(33)

Productividad: trabajos/unidad de tiempo.

Balance de cargas: applets, varios servidores o computadores para alojar un único servicio.

Calidad de Servicio

Algunas aplicaciones mantienen datos críticos en el tiempo, flujos de datos que precisan ser procesados o transferidos de un proceso a otro a una tasa prefijada.

QoS es la capacidad de los sistemas para satisfacer dichos límites.

El satisfacer tales exigencias depende de la disponibilidad de los recursos en los instantes adecuados.

Cada recurso crítico debe reservarse para las aplicaciones que requieren QoS. Los administradores de los recursos deben proporcionar la garantía. Las solicitudes de reserva que no se puedan cumplir se rechazan.

Aspectos de Fiabilidad (que el sistema funcione correctamente) CorrectitudTolerancia de fallosSeguridad:ConfidencialidadIntegridadDisponibilidad.

Tolerancia a Fallos: las aplicaciones estables deben continuar funcionando correctamente en presencia de fallos de hw, sw y redes.

• Se logra con redundancia

• Para hacer fiable un protocolo de comunicación se emplean otras técnicas. Ejem. Retransmitir el mensaje.

Seguridad

Necesidad de ubicar datos y otros recursos sensibles sólo en aquellos computadores equipados de un modo eficaz contra el ataque.

(34)
(35)

2.2 MODELOS FUNDAMENTALES

Los modelos fundamentales están implicados en una descripción más formal de las propiedades que son comunes en los modelos arquitectónicos.

Ayudan a localizar los problemas clave para los diseñadores de Sistemas Distribuidos. Su propósito es especificar los problemas, dificultades y amenazas que deben superarse para desarrollar sistemas distribuidos fiables.

Principales modelos

• De Interacción

• De Fallo

• De seguridad

2.2.1. Modelo de Interacción

Trata sobre el rendimiento y sobre la dificultad de poner límites temporales en un sistema distribuido.

La forma en que se produce el “paso de mensajes” entre los procesos restringe el modo de operación

En la comunicación hay retrasos. El modelo estudia cómo afectan estos retrasos la coordinación de los procesos.

Entonces encontramos problemas de 2 tipos

a. El Rendimiento de los canales de comunicaciones:

Latencia: retardo entre el envío de un mensaje por un proceso y su recepción por otro.

Figura 12. Modelo de iteraccion de un Sistema Distribuido

(36)

Ancho de banda: cantidad total de información que se puede transmitir en un momento dado

Jitter o fluctuación: variación en el tiempo invertido en completar el reparto de una serie de mensajes.

b. Problemas presentados en la noción de Tiempo:

• Derivas Diferentes (diferencia de horaria)

• Tasas de deriva Diferentes (Ritmo de deriva) 2.1.1.1 Variantes del Modelo de Interacción

Sistemas distribuidos síncronos

• El tiempo de ejecución de cada etapa de un proceso tiene límites superior e inferior conocidos.

• Cada mensaje se recibe en un tiempo limitado conocido.

• Cada proceso tiene un reloj local cuya tasa de deriva sobre el tiempo real tiene un límite

conocido.

• Es posible sugerir valores para esos límites pero es difícil obtener valores realistas y dar garantías sobre los valores elegidos.

• Se pueden tener timeouts. Cuando expiran significa que ha fallado el proceso.

• Hay que garantizar ciclos suficientes de

procesador, capacidad de red y proveer relojes con tasa de deriva limitadas.

Sistemas distribuidos asíncronos.

Son aquellos donde no existen limitaciones sobre:

• La velocidad de procesamiento

• Los retardos de transmisión de mensajes

• Las tasas de deriva del reloj.

Los sistemas reales son frecuentemente asíncronos. Pero existen problemas que no pueden resolverse con este modelo.

(37)

Ordenamiento de Eventos

Aún cuando no hay relojes precisos la ejecución de un sistema se puede describir en términos de los eventos y su ordenación.

Ejemplo:

1. X envía un mensaje de reunión 2. Y y Z responden

3. X envía

4. Y lee y responde

5. Z lee X, y Y envía otra respuesta. Ordenamiento de Eventos

Si estuvieran sincronizados seria así

Figura 13. Ordenamiento de eventos

Figura 14. Tabla de entrada de mensajes

(38)
(39)

Envia m Recibe

Proceso p Proceso q

Canal de Comunicaci

Buffer de

Mensajes entrantes.

Fallos por Omisi

del canal Buffer de

Mensajes Salientes.

}

Fallos por omisi de  recepci .

{

Fallos por omisi  de envio. 2.2.2 Modelo de Fallos

Intenta dar una especificación precisa de los fallos que se pueden producir en procesos y en canales de comunicación. Fallos por omisión

• De procesos

• De comunicaciones. Fallos de procesos

Ruptura accidentada del procesamiento.

Es deseable si el resto de los procesos que interactúan con el proceso interrumpido, o bien funcionan correctamente o se detienen.

El método de detección de ruptura descansa en timeouts. Fail- Stop: es cuando el resto de los procesos puede detectar con certeza que cierto proceso interrumpió su ejecución. Se puede detectar en un sistema síncrono por los timeouts.

Fallos por omisión de comunicaciones.

• Fallos por omisión de envíos.

• Pérdida de mensajes entre los buffers.

• Fallos por omisión de recepción.

Enmascaramiento de fallos

• Ocultar el fallo.

• Convertirlo en un tipo razonable

Fiabilidad y comunicación uno a uno. El término

comunicación fiable se define en términos de validez e

integridad.

Figura 15. Fallos por omision de canal

(40)

• Validez: cualquier mensaje en el buffer de salida llega eventualmente al buffer de mensajes entrantes.

• Integridad: el mensaje recibido es idéntico al enviado y no se reparten mensajes por duplicado.

• Amenazas de Integridad

• Protocolos que retransmiten pero no usan números de secuencia para evitar que el mismo mensaje llegue duplicado.

• Usuarios mal intencionados que insertan mensajes inválidos, repiten mensajes antiguos o modifican mensajes auténticos.

2.2.3. Modelo de seguridad

La seguridad de un SD puede lograrse asegurando los procesos y los canales empleados para sus interacciones y protegiendo los objetos que se encapsulan contra el acceso no autorizado.

Protección de Objetos

• Los objetos pueden contener datos privados y públicos o compartidos.

• Se otorgan derechos de acceso que especifican a quien se permite realizar ciertas operaciones sobre un objeto. Los usuarios son los principales beneficiarios de estos derechos de acceso.

Figura 16. Modelo de Seguridad de sistemas distribuidos

(41)

Client e Servidor Derechos de acceso Objeto Principal (servidor) Red Principal (cliente) Invocaci Resultado

• A cada invocación y a cada resultado se le asocia la autoridad con que se ordena. Tal autoridad se denomina principal.

• El servidor es responsable de verificar la identidad del principal tras la invocación y comprobar que dispone de los diferentes derechos para realizar operaciones sobre el objeto.

• El cliente puede comprobar la identidad del principal tras el servidor para asegurar que el resultado proviene del servidor requerido.

Asegurar procesos y sus interacciones

• Cierto tipo de aplicaciones son más propensas a los ataques.

• Para este tipo de aplicaciones probablemente habrá ataques a los procesos de los que se componen tales aplicaciones y a los mensajes que viajan entre los procesos.

• Cómo podemos analizar estas amenazas para derrotarlas?.

Modelo de amenazas de seguridad El enemigo: es capaz de enviar cualquier mensaje a cualquier proceso y también de leer o copiar cualquier mensaje entre un par de procesos. El ataque puede venir de un computador legítimamente conectado o de una máquina no autorizada. Proceso P Proceso Q El enemigo Copia de m m m` ^

(42)

Cómo se pueden vencer las amenazas de seguridad?

• Criptografía y secretos compartidos

• Autenticación

• Canales seguros ACTIVIDAD

 Describa e ilustre la arquitectura cliente – servidor de las

siguientes aplicaciones: World Wide Web, email y Netnews.  Indique como cooperan los servidores al proveer el servicio

en cada uno de sus ejemplos anteriores. RESUMEN

La mayoria de los sistemas distribuidos se componen de una o mas variedades de modelos de arquitectura. El modleo cliente servidor es el mas usado, la Web y otros servicios de internet tales como FTP, news, dns y email se basan en este modelo, asi como el sistema local de archivos y otros mas. Los servicios como DNS que tienen un numero de usuarios grande y tratan con gran cantidad de información se basan en multiples servidores, el uso de particiones sobre los datos y la replicación para facilitar la disponibilidad y tolerancia frente a fallos. El uso de cache en los clientes y servidores proxy se encuentran ampliamente extendidos para mejorar las prestaciones de un servicio. En el modelo de porcesos de igual a igual. Los procesos de aplicaciones distribuidas se comunican uno con otro directamente sin emplear servidores intermediarios.

(43)

La posibilidad de mover código de un porceso a otro ha desembocado en algunas variantes del modelo cliente servidor, El ejemplo mas común de esto es el Apple cuyo código es aportado por unservidor web para ejecutarse en un cliente, proporcionando funcionalidades no disponibles en el cliente y al mejora de ciertas prestaciones debido a la proximidad con el cliente.

Hemos presentado modelos de interaccion, fallo y seguridad que identifican las caracteristicas comunes de los componentes básicos con que se construyen los sistemas distribuidos. El modelo de interaccion tiene que ver con las prestaciones de los procesos y los canales de comunicación y con la ausencia de un reloj global. También define un sistema asíncrono como uno en el que no hay límites en el tiempo de ejecución de un proceso, el tiempo de reparto de un mensaje y la deriva de los relojes, siendo asi como se comporta el internet.

El modelo de fallo clasifica los fallos de los procesos y los canales de comunicación básicos de un sistema distribuido. El enmascaramiento es una técnica con la que se construye un servicio más fiable sobre otro menos fiable, de modo que se enmascaran algunos fallos de este último en particular, se puede construir un servicio de comunicación fiable desde un canal de comunicación básico simplemente enmascarando sus fallos.

El modelo de seguridad identifica las posibles amenazas a los procesos y los canales de comunicación en sistema distribuido abierto, algunas de estas amenazas se relacionan con la integridad, los usuarios mal intencionados pueden modificar o repeitr los mensajes, otra amnaza es la privacidad y otra es la auteticidad.

(44)

o George Colouris, “Sistemas Distribuidos” Conceptos y

Diseño, Addison Wesley, España 2001

http://www.cdk3.net/

o Tanenbaum, Distributed Systems: Principles and

Paradigms, Prentice Hall, Mexico 2002.

http://www.prenhall.com/divisions/esm/app/author_tanenb aum/custom/dist_sys_1/

o Liu, “Distributed Computing: Principles and

Applications”,

Addison Wesley, Mexico 2005

http://www.csc.calpoly.edu/~mliu/book/

AUTOEVALUACION FORMATIVA

o Un motor de búsqueda es un servidor web que ofrece a los clientes lam oportunidad de buscar en ciertos índices almacenados y (concurrentemente) lanzar varios esacaladores web para construir y actualizar estos índices. ¿Cuáles son los requisitos de sincronización entre estas actividades concurrentes?

o Sugiera algunas aplicaciones para un modelo entre pares, distinguiendo entre casos en los que el estado de todos necesita ser idéntico y casos que demandan menos consistencia.

o Tabule los tipos de recursos locales que son vulnerables a un ataque por un programa no fiable que se descarga desde un lugar remoto y se ejcuta en un computador local.

o Que factores afectan el modo de comportamiento de una aplicación que accede a los datos compartidos administrados por un servidor? Describa los remedios disponibles y discuta su utilidad.

o De algunos ejemplos de fallos en el hardware y el software de un sitema distribuido que puedan o no ser

(45)

tolerados mediante el uso de redundancia. ¿en que punto podemos asegurar que el empleo de redundancia? ¿cuando sea adecuado, hace que el sistema sea tolerante frente a fallos?

(46)

UNIDAD ACADÉMICA Nº 03

COMUNICACION A NIVEL

DE REDES

Los sistemas distribuidos utlizan redes de area local, redes de area extendido e interredes para comunicarse. Las prestaciones, fiabilidad, escalabilidad, movilidad y calidad del servicio de las redes subyacentes influyen en el comportamiento de los sitemas distribuidos. Los cambios en las necesidades de los usuarios han producido la irrupción de las redes inalámbricas y las redes de altas prestaciones con calidad de servicio garantizada.

Los fundamentos en los que se basan las redes de computadoras incluyen las capas de protocolos, el intercambio de paquetes, el encaminamiento y el flujo de datos. Las técnicas de interconexión de redes hacen posible que se puedan combinar redes heterogeneas para que funcionen como una sola el Internet es el mejor ejemplo de esto, sus protocolos son casi universalmente utlizados en los sistemas distribuidos. Los modos de direccionamiento y encaminamiento usado en el internet han experimentado el impacto de su crecimiento. Tanto es asi que ahora se encuentran en porceso de revisio para que puedan soporta el crecimiento futuro y para poder cumplir con los requerimientos de movilidad, seguridad y calidad de servicios demandado.

INDICADORES DE LOGRO

Al terminar esta unidad el estudiante estará en condiciones de:

• Definir, describir que es una red LAN, WAN y sus elementos.

• Definir y describir las reglas que permiten la comunicación en una red.

• Definir y describir el modelo TCP/IP y el modelo OSI.

• Definir y describir la capa de transporte y los protocolos que trabajan en esta capa TCP y UDP

(47)

• Realizar el proceso de encapsulamiento de datos y direccionamiento de puertos

CONCEPTOS GENERALES DE LA COMUNICACIÓN POR COMPUTADORAS.

1.ELEMENTOS DELA COMUNICACIÓN

Para que exista comunicación deben existir los siguientes elementos:

 Origen del mensaje  Canal de transmisión  Destino del mensaje

La comunicación comienza con un mensaje o información que se debe enviar desde una persona o dispositivo a otro. Las personas intercambian ideas mediante diversos métodos de comunicación. Todos estos métodos tienen tres elementos en común. El primero de estos elementos es el origen del mensaje o emisor. Los orígenes de los mensajes son las personas o los dispositivos electrónicos que deben enviar un mensaje a otras personas o dispositivos. El segundo elemento de la comunicación es el destino o receptor del mensaje. El destino recibe el mensaje y lo interpreta. Un tercer elemento, llamado canal, está formado por los medios que proporcionan el camino por el que el mensaje viaja desde el origen hasta el destino.

ELEMENTOS DE LA COMUNICACION

Figura 1. Elementos de la Comunicación

(48)

En teoría, una comunicación simple, como un video musical o un e-mail puede enviarse a través de la red desde un origen hacia un destino como un stream de bits masivo y continuo. Si en realidad los mensajes se transmitieron de esta manera, significará que ningún otro dispositivo podrá enviar o recibir mensajes en la misma red mientras esta transferencia de datos está en progreso. Estos grandes streams de datos originarán retrasos importantes. Además, si falló un enlace en la infraestructura de red interconectada durante la transmisión, se perderá todo el mensaje y tendrá que retransmitirse por completo.

Un mejor enfoque para enviar datos a través de la red es dividir los datos en partes más pequeñas y más manejables. La división del stream de datos en partes más pequeñas se denomina segmentación. La segmentación de mensajes tiene dos beneficios principales.

Primero: al enviar partes individuales más pequeñas del origen al destino, se pueden entrelazar diversas conversaciones en la red. El proceso que se utiliza para entrelazar las piezas de conversaciones separadas en la red se denomina multiplexación. Segundo: la segmentación puede aumentar la confiabilidad de las comunicaciones de red. No es necesario que las partes separadas de cada mensaje sigan el mismo recorrido a través de la red desde el origen hasta el destino. Si una ruta en particular se satura con el tráfico de datos o falla, las partes individuales del mensaje aún pueden direccionarse hacia el destino mediante los recorridos alternativos. Si parte del mensaje no logra llegar al destino, sólo se deben retransmitir las partes faltantes.

(49)

Figura 2. Segmentacion de Paquetes

(50)

2.ELEMENTOS DE UNA RED

Los dispositivos y los medios son los elementos físicos o hardware de la red.

2.1 Dispositivos de una Red

Varios tipos de dispositivos en toda la red participan para asegurar que las partes del mensaje lleguen a los destinos de manera confiable.

•Dispositivos Finales (host)

•Dispositivos Intermedios 2.1.1 Dispositivos Finales (host)

En el contexto de una red, los dispositivos finales se denominan host. Un dispositivo host puede ser el origen o el destino de un mensaje transmitido a través de la red. Para distinguir un host de otro, cada host en la red se identifica por una dirección. Cuando un host inicia una comunicación, utiliza la dirección del host de destino para especificar dónde debe ser enviado el mensaje.

Ejemplos:

 Computadoras (estaciones de trabajo, computadoras portátiles, servidores de archivos, servidores Web)  Impresoras de red

 Teléfonos VoIP

 Cámaras de seguridad

 Dispositivos móviles de mano (como escáneres de barras inalámbricos, asistentes digitales personales (PDA))

En las redes modernas, un host puede funcionar como un

cliente, como un servidor o como ambos. El software

instalado en el host determina qué rol representa en la red. Los servidores son hosts que tienen software instalado que les permite proporcionar información y servicios, como e-mail o páginas Web, a otros hosts en la red, Los clientes son hosts que tienen software instalado

(51)

que les permite solicitar y mostrar la información obtenida del servidor.

2.1.2 Dispositivos Intermedios

Las redes dependen de dispositivos intermediarios para proporcionar conectividad y para trabajar detrás de escena y garantizar que los datos fluyan a través de la red. Estos dispositivos conectan los hosts individuales a la red y pueden conectar varias redes individuales para formar una internetwork. Los siguientes son ejemplos de dispositivos de red intermediarios:

• Dispositivos de acceso a la red (hubs, switches y puntos de acceso inalámbricos),

• Dispositivos de internetworking (routers),

• Servidores de comunicación y módems.

• Dispositivos de seguridad (firewalls), etc.

La administración de datos mientras fluyen a través de la red también es una función de los dispositivos intermediarios. Estos dispositivos utilizan la dirección host

de destino, conjuntamente con información sobre las interconexiones de la red, para determinar la ruta que deben tomar los mensajes a través de la red. Los procesos que se ejecutan en los dispositivos de red intermediarios realizan las siguientes funciones:

• Regenerar y retransmitr señales de datos

• Mantener información sobre qué rutas existen a través de la red y de la internetwork.

• Notificar a otros dispositivos los errores y las fallas de comunicación,

• direccionar datos por rutas alternativas cuando existen fallas en un enlace.

• Clasificar y direccionar mensajes según las prioridades de QoS (calidad de servicio).

• Permitir o denegar el flujo de datos en base a configuraciones de seguridad.

(52)

2.2 Medios de una Red

La comunicación a través de una red es transportada por un medio. El medio proporciona el canal por el cual viaja el mensaje desde el origen hasta el destino.

Las redes modernas utilizan principalmente tres tipos de medios para interconectar los dispositivos y proporcionar la ruta por la cual pueden transmitirse los datos. Estos medios son:

• Hilos metálicos dentro de los cables,

• Fibras de vidrio o plásticas (cable de fibra óptica), y

• Transmisión inalámbrica.

La codificación de señal que se debe realizar para que el

mensaje sea transmitido es diferente para cada tipo de medio. En los hilos metálicos, los datos se codifican dentro de impulsos eléctricos que coinciden con patrones específicos. Las transmisiones por fibra óptica dependen de pulsos de luz, dentro de intervalos de luz visible o infrarroja. En las transmisiones inalámbricas, los patrones de ondas electromagnéticas muestran los distintos valores de bits.

Los diferentes tipos de medios de red tienen diferentes características y beneficios. No todos los medios de red tienen las mismas características ni son adecuados para el mismo fin.

(53)

3.REGLAS QUE RIGEN LAS COMUNICACIONES

Luego tenemos que existen reglas para que se realice la comunicación, a estas reglas en redes de computadoras la llamamos protocolos.

Los protocolos de red describen las funciones que se producen durante las comunicaciones de red. Por ejemplo en una conversación cara a carade dos personas, es posible que un protocolo para comunicar establezca que para indicar que la conversación ha finalizado, el emisor debe permanecer en silencio durante dos segundos completos. Sin embargo, este protocolo no especifica cómo el emisor debe permanecer en silencio durante los dos segundos.

Los protocolos generalmente no describen cómo cumplir una función en particular. Al describir solamente qué funciones se requieren de una regla de comunicación en particular pero no cómo realizarlas, es posible que la implementación de un protocolo en particular sea independiente de la tecnología.

Por ejemplo en un servidor Web, HTTP no especifica qué lenguaje de programación se utiliza para crear el explorador, qué software de servidor Web se debe utilizar para servir las páginas Web, sobre qué sistema operativo se ejecuta el software o los requisitos necesarios para mostrar el explorador. Tampoco describe cómo detecta errores el servidor, aunque sí describe qué hace el servidor si se produce un error.

Esto significa que una computadora y otros dispositivos, como teléfonos móviles o PDA, pueden acceder a una página Web almacenada en cualquier tipo de servidor Web que utilice cualquier tipo de sistema operativo desde cualquier lugar de Internet.

Para visualizar la interacción entre varios protocolos, es común utilizar un modelo en capas. Un modelo en capas muestra el

Figura 3. Elementos de una Red

(54)

funcionamiento de los protocolos que se produce dentro de cada capa, como así también la interacción de las capas sobre y debajo de él.

Existen dos tipos básicos de modelos de networking: modelos de protocolo y modelos de referencia, el modelo OSI y modelo TCP/IP.

3.1 Modelo TCP/IP

Es el primer modelo de protocolo en capas para comunicaciones de internetwork se creó a principios de la década de los setenta y se conoce con el nombre de modelo de Internet. Define cuatro categorías de funciones que deben tener lugar para que las comunicaciones sean exitosas. La arquitectura de la suite de protocolos TCP/IP sigue la estructura de este modelo. Por esto, es común que al modelo de Internet se lo conozca como modelo TCP/IP.

Figura 4. Modelos de Red

(55)

El modelo TCP/IP describe la funcionalidad de los protocolos que forman la suite de protocolos TCP/IP. Esos protocolos, que se implementan tanto en el host emisor como en el receptor, interactúan para proporcionar la entrega de aplicaciones de extremo a extremo a través de una red.

Un proceso completo de comunicación incluye estos pasos: o Creación de datos a nivel de la capa de aplicación del

dispositivo final origen.

o Segmentación y encapsulación de datos cuando pasan por

la stack de protocolos en el dispositivo final de origen. o Generación de los datos sobre el medio en la capa de

acceso a la red de la stack.

o Transporte de los datos a través de la internetwork, que consiste de los medios y de cualquier dispositivo

intermediario.

o Recepción de los datos en la capa de acceso a la red del dispositivo final de destino.

o Desencapsulación y rearmado de los datos cuando pasan por la stack en el dispositivo final.

o Traspaso de estos datos a la aplicación de destino en la capa de aplicación del dispositivo final de destino

Figura 5. Modelo TCP/IP

(56)

Encapsulamiento de Datos

Mientras los datos de la aplicación bajan al stack del protocolo y se transmiten por los medios de la red, varios protocolos le agregan información en cada nivel. Esto comúnmente se conoce como proceso de encapsulación.

La forma que adopta una sección de datos en cualquier capa se denomina Unidad de datos del protocolo (PDU). Durante la encapsulación, cada capa encapsula las PDU que recibe de la capa superior de acuerdo con el protocolo que se utiliza. En cada etapa del proceso, una PDU tiene un nombre distinto para reflejar su nuevo aspecto. Aunque no existe una convención universal de nombres para las PDU, en este curso se denominan de acuerdo con los protocolos de la suite TCP/IP.

 Datos: el término general para las PDU que se utilizan en la capa de aplicación.

 Segmento: PDU de la capa de transporte.  Paquete: PDU de la capa de Internetwork.  Trama: PDU de la capa de acceso a la red.

PROCESOS DE ENCAPSULAMIENTO DE DATOS

Figura 6. Transporte de un paquete

Figura 7. Encapsulamiento de Datos

Referencias

Documento similar

(Si los botes son comerciales, no hace falta sobreañadir tiosulfato hasta una.. concentración de 4 mg/L de cloro

Otro fallo, lamentablemente muy habitual, es olvidar que, evidentemente, al final del proceso de diseño y construcción, hay que instalar el nuevo sistema en las máquinas donde

Dentro de los aspectos básicos para realizar y/o gestionar una inversión, los estudiantes y profesionales pueden implementar diferentes alternativas para tomar

Para cada diseño se harán diferentes módulos para poder combinar y probar la prenda, de manera que se pueda lucir en una misma chaqueta un diseño diferente para el cuello, otro

en segundo lugar, que se las elija intencionadamente (TTpoaipoúfievos') y en razón de ellas mismas (8L' á t i r á ) ; en tercer lugar, que en su actuación el sujeto se man-

Búsqueda de información sobre los diferentes equipos y sistemas que integra el vehículo, así como de los lenguajes de programación más adecuados para la integración de

Finalmente, para poder implementar sistemas de consciencia contextual como apoyo al aprendizaje se requiere de la sinergia de diferentes áreas del

Unas investigaciones realizadas por nosolros en los libros de registros del Tribunal de Madrid nos lian proporcionado textos más amplios sobre el tema que tratamos. Por