martes, 28 de abril de 2009

Socket ( Interfaz de Protocolo de Comunicación )

Estructuras de Datos para los Sockets.
El camino más fácil para entender en profundidad la abstracción socket es visualizar las estructuras de datos manejadas por el sistema operativo. Cuando una aplicación invoca la llamada socket, el sistema operativo aloja una nueva estructura de datos que contiene la información necesaria para comunicar, y rellena la nueva entrada de la tabla de descriptores con un puntero que apunta a la estructura de datos recién creada. La siguiente figura muestra lo que ocurre después de que un proceso de usuario invoca a la llamada al sistema socket :



En el ejemplo anterior, en los argumentos de la llamada al sistema socket se ha especificado la familia de protocolos PF_INET y el tipo de servicio SOCK_STREAM.
Aunque la estructura de datos para el socket contiene muchos campos, el sistema operativo deja muchos de ellos en blanco cuando se crea el socket. Como veremos a continuación, la aplicación que creó el socket debe realizar llamadas al sistema adicionales para rellenar la información contenida en la estructura de datos socket antes de que el socket pueda ser utilizado.

Empleo de Sockets.
Una vez el socket ha sido creado, puede ser utilizado para esperar conexiones o para iniciar una conexión. Al socket empleado por un servidor para esperar conexiones entrantes se le conoce como socket pasivo, mientras que al socket empleado por un cliente para iniciar una conexión se le conoce como socket activo. La única diferencia entre los sockets activos y pasivos radica en como son utilizados por la aplicación que los ha creado ; ya que estos se crean del mismo modo.

Servicios de Protocolos de Comunicación

Transferencia de Archivos FTP (File Transfer Protocol). Este protocolo permite a los usuarios obtener o enviar archivos a otras computadoras en una red amplia (Internet). En esto, hay que implementar cierta seguridad, para restringir el acceso a ciertos usuarios y además a ciertas partes del servidor (computadora).

Acceso Remoto: El acceso remoto(Telnet) en un protocolo que permite el acceso directo de un usuario a otra computadora en la red. Para establecer un Telnet, se debe establecer la dirección o nombre de la computadora a la cual se desea conectar. Mientras se tenga el enlace, todo lo que se escriba en la pantalla, será ejecutado en la computadora remota, haciendo un tanto invisible a la computadora local. Cuando se accede por este tipo de protocolos, generalmente la computadora remota pregunta por un nombre de usuario (user name, login, etc.) y por una clave (password). Cuando ya se desea terminar con la sesión, basta con terminar este protocolo, para salir generalmente con los comandos: logout, logoff, exit, etc.
Correo en las Computadoras (e-mail): Este protocolo permite enviar o recibir mensajes a diferentes usuarios en otras computadoras. Generalmente se tiene una computadora como servidor de correo electrónico, la cual debe estar todo tiempo corriendo este programa, ya que cuando se envía algún mensaje, la computadora trata de enviarlo a la que le corresponde y si esta estuviera apagada o no corriendo este programa, el mensaje se perdería. Esta es la inconveniencia de tener un servidor de correo en una computadora del tipo PC, ya que estas no están permanentemente encendidas ni corriendo el protocolo de correo electrónico.
Sistemas de archivo en red (NFS): Esto permite a un sistema acceder archivos en otra computadora de una manera mas apropiada que mediante un FTP. El NFS da la impresión de que los discos duros de la computadora remota están directamente conectados a la computadora local. De esta manera, se crea un disco virtual en el sistema local. Esto es bastante usado para diferentes propósitos, tales como poner gran cantidad de información en una cuantas computadoras, pero permitiendo el acceso a esos discos. Esto aparte de los beneficios económicos, además permite trabajar a los usuarios en varias computadoras y compartir archivos comunes.
Impresión Remota: Esto permite acceder impresoras conectadas en la red, para lo cual se crean colas de impresión y el uso de dichas impresoras se puede restringir, ya sea mediante alguna contraseña o a ciertos usuarios. Los beneficios son el poder compartir estos recursos.
Ejecución remota: Esto permite correr algún programa en particular en alguna computadora. Es útil cuando se tiene un trabajo grande que no es posible correr en un sistema pequeño, siendo necesario ejecutarlo en uno grande. Se tiene diferentes tipos de ejecución remota, por ejemplo, se puede dar algún comando o algunos para que sean ejecutados en alguna computadora en especifico. Con un sistema mas sofisticado, es posible que ese proceso sea cargado a alguna computadora que se encuentre disponible para hacerlo.
Servidores de Nombres: En instalaciones grandes, hay un una buena cantidad de colección de nombres que tienen que ser manejados, esto incluye a usuarios y sus passwords, nombre y direcciones de computadoras en la red y cuentas. Resulta muy tedioso estar manejando esta gran cantidad de información, por lo que se puede destinar a una computadora que maneje este sistema, en ocasiones es necesario acceder estos servidores de nombres desde otra computadora a través de la red.
Servidores de Terminales: En algunas ocasiones, no se requiere tener conectadas las terminales directamente a las computadoras, entonces, ellos se conectan a un servidor de terminales. Un servidor de terminales es simplemente una pequeña computadora que solo necesita correr el Telnet (o algunos otros protocolos para hacer el acceso remoto). , Si se tiene una computadora conectada a uno de estos servidores, simplemente se tiene que teclear el nombre de la computadora a la cual se desea conectar. Generalmente se puede tener varios en laces simultáneamente, y el servidor de terminales permitirá hacer la conmutación de una a otra en un tiempo muy reducido

sábado, 25 de abril de 2009

Funciones de Protocolos

1. Segmentación y ensamblado: generalmente es necesario dividir los bloques de datos en unidades pequeñas e iguales en tamaño, y este proceso se le llama segmentación. El bloque básico de segmento en una cierta capa de un protocolo se le llama PDU (Unidad de datos de protocolo). La necesidad de la utilización de bloque es por:

- La red sólo admite la transmisión de bloques de un cierto tamaño.
- El control de errores es más eficiente para bloques pequeños.
- Para evitar monopolización de la red para una entidad, se emplean bloques pequeños y así una compartición de la red.
- Con bloques pequeños las necesidades de almacenamiento temporal son menores.

Hay ciertas desventajas en la utilización de segmentos:

- La información de control necesaria en cada bloque disminuye la eficiencia en la transmisión.
- Los receptores pueden necesitar interrupciones para recibir cada bloque, con lo que en bloques pequeños habrá más interrupciones.
- Cuantas más PDU, más tiempo de procesamiento.

2. Encapsulado: se trata del proceso de adherir información de control al segmento de datos. Esta información de control es el direccionamiento del emisor/receptor, código de detección de errores y control de protocolo.

3. Control de conexión: hay bloques de datos sólo de control y otros de datos y control. Cuando se utilizan datagramas, todos los bloques incluyen control y datos ya que cada PDU se trata como independiente. En circuitos virtuales hay bloques de control que son los encargados de establecer la conexión del circuito virtual.

Hay protocolos más sencillos y otros más complejos, por lo que los protocolos de los emisores y receptores deben de ser compatibles al menos. Además de la fase de establecimiento de conexión (en circuitos virtuales) está la fase de transferencia y la de corte de conexión. Si se utilizan circuitos virtuales habrá que numerar los PDU y llevar un control en el emisor y en el receptor de los números.

4. Entrega ordenada: el envío de PDU puede acarrear el problema de que si hay varios caminos posibles, lleguen al receptor PDU desordenados o repetidos, por lo que el receptor debe de tener un mecanismo para reordenar los PDU. Hay sistemas que tienen un mecanismo de numeración con módulo algún número; esto hace que el módulo sean lo suficientemente alto como para que sea imposible que haya dos segmentos en la red al mismo tiempo y con el mismo número.

5. Control de flujo: hay controles de flujo de parada y espera o de ventana deslizante. El control de flujo es necesario en varios protocolos o capas, ya que el problema de saturación del receptor se puede producir en cualquier capa del protocolo.

6. Control de errores: generalmente se utiliza un temporizador para retransmitir una trama una vez que no se ha recibido confirmación después de expirar el tiempo del temporizador. Cada capa de protocolo debe de tener su propio control de errores.

7. Direccionamiento: cada estación o dispositivo intermedio de almacenamiento debe tener una dirección única. A su vez, en cada terminal o sistema final puede haber varios agentes o programas que utilizan la red, por lo que cada uno de ellos tiene asociado un puerto. Además de estas direcciones globales, cada estación o terminal de una subred debe de tener una dirección de subred (generalmente en el nivel MAC).

Hay ocasiones en las que se usa un identificador de conexión; esto se hace así cuando dos estaciones establecen un circuito virtual y a esa conexión la numeran (con un identificador de conexión conocido por ambas). La utilización de este identificador simplifica los mecanismos de envío de datos ya que por ejemplo es más sencillo que el direccionamiento global. Algunas veces se hace necesario que un emisor emita hacia varias entidades a la vez y para eso se les asigna un direccionamiento similar a todas.

8. Multiplexación: es posible multiplexar las conexiones de una capa hacia otra, es decir que de una única conexión de una capa superior, se pueden establecer varias conexiones en una capa inferior (y al revés).

9. Servicios de transmisión: los servicios que puede prestar un protocolo son:

- Prioridad: hay mensajes (los de control) que deben tener prioridad respecto a otros.
- Grado de servicio: hay datos que deben de retardarse y otros acelerarse (vídeo).
- Seguridad.

Frame Relay

Frame Relay comenzó como un movimiento a partir del mismo grupo de normalización que dio lugar a X.25 y RDSI: El ITU (entonces CCITT). Sus especificaciones fueron definidas por ANSI, fundamentalmente como medida para superar la lentitud de X.25, eliminando la función de los conmutadores, en cada "salto" de la red. X.25 tiene el grave inconveniente de su importante "overhead" producido por los mecanismos de control de errores y de flujo.

Frame Relay, por el contrario, maximiza la eficacia, aprovechándose para ello de las modernas infraestructuras, de mucha mayor calidad y con muy bajos índices de error, y además permite mayores flujos de información.

Frame Relay se define, oficialmente, como un servicio portador RDSI de banda estrecha en modo de paquetes, y ha sido especialmente adaptado para velocidades de hasta 2,048 Mbps., aunque nada le impide superarlas.

Frame Relay proporciona conexiones entre usuarios a través de una red pública, del mismo modo que lo haría una red privada con circuitos punto a punto. De hecho, su gran ventaja es la de reemplazar las líneas privadas por un sólo enlace a la red. El uso de conexiones implica que los nodos de la red son conmutadores, y las tramas deben de llegar ordenadas al destinatario, ya que todas siguen el mismo camino a través de la red.

Las redes Frame Relay son orientadas a conexión, como X.25, SNA e incluso ATM. El identificador de conexión es la concatenación de dos campos HDLC (High-level Data Link Control), en cuyas especificaciones originales de unidad de datos (protocolo de la capa 2), se basa Frame Relay. Entre los dos campos HDLC que forman el "identificador de conexión de enlace de datos" o DLCI (Data Link Connection Identifier) se insertan algunos bits de control (CR y EA).






ATM

Tres letras - ATM - se repiten cada vez más en estos días en los ambientes Informáticos y de Telecomunicaciones. La tecnología llamada Asynchronous Transfer Mode (ATM) Modo de Transferencia Asíncrona es el corazón de los servicios digitales integrados que ofrecerán las nuevas redes digitales de servicios integrados de Banda Ancha (B-ISDN), para muchos ya no hay cuestionamientos; el llamado tráfico del "Cyber espacio", con su voluminoso y tumultuoso crecimiento, impone a los operadores de redes públicas y privadas una voraz demanda de anchos de banda mayores y flexibles con soluciones robustas. La versatilidad de la conmutación de paquetes de longitud fija, denominadas celdas ATM, son las tablas más calificadas para soportar la cresta de esta "Ciberola" donde los surfeadores de la banda ancha navegan.


Los conmutadores ATM aseguran que el tráfico de grandes volúmenes es flexiblemente conmutado al destino correcto. Los usuarios aprecian ambas cosas, ya que se cansan de esperar los datos y las pantallas de llegada a sus terminales. Estas necesidades cuadran de maravilla para los proveedores de servicios públicos de salud, con requerimientos de videoconferencias médicas, redes financieras interconectadas con los entes de intermediación y validación, o con las exigencias que pronto serán familiares como vídeo en demanda para nuestros hogares con alta definición de imágenes y calidad de sonido de un CD, etc.


Arquitectura del X.25

El X.25 normal define tres protocolos que se usan para unir DTEs con DCEs:

· Capa Física. Nivel 1
· Unión de Datos Capa de Control. Nivel 2
· Capa de Red de Switch de Paquetes. Nivel 3

Capa física nivel 1. El nivel 1 define lo físico, eléctrico, funcional y características de procedimiento requeridos para establecer una unión de comunicaciones entre dos DTEs o entre un DTE y DCE. X.25 especifica el uso de varias normas para la conexión física de equipo a una red X.25. Estas normas incluyen X.21, X.21bis y V.24. La capa física opera como circuito sincrono full - dúplex y punto a punto.

Unión de datos capa de control nivel 2. Corresponde a la capa del segundo plan OSI. El Acceso Del Eslabón Procedimiento Balanceado (LAPB) se usa para proveer datos eficaces y transferencias, sincroniza la unión de los datos entre el transmisor y receptor (control de flujo), ejecuta verificación de error y recuperación de error.

Capa de red de switch de paquetes nivel 3. La capa de paquete (o Red) es el protocolo de alto nivel estipulado en X.25. Esta capa provee acceso a servicios disponibles en una red publica de switch de paquetes. Cuando los usuarios se suscriben a un servicio X.25, la Red de Datos Públicos (RDP) provee parámetros de configuración. Estos parámetros incluyen:

· Tamaño del Gateway
· Tamaño del Marco
· Tamaño de la Ventana
· Numero Lógico de Canal.

X.25

El protocolo de transmisión de paquete X.25 es una norma para el transporte de datos que se acepta por las partes del mundo. Es compatible con tales normas como OSI e ISDN y es el protocolo preferido para la red publica europea. X.25 habilita a los usuarios para conectar LANs y computadoras huésped a usuarios remotos. Como uno de los métodos universalmente reconocidos de las comunicaciones de datos disponible para gestión de redes de área ancha, X.25 ofrece un método único de empaquetamiento de datos y asignación de ruta anterior en paquetes hacia una red X.25A pesar de su popularidad, X.25 le dará eventualmente paso a tecnologías mas nuevas tales como frame relay, ATM y SMDS
El X.25 es un estándar de protocolo internacional del sector de la estandardización de la Unio'n-Telecomunicacio'n de la telecomunicación (Itu-t) para las comunicaciones WAN que define cómo las conexiones entre los dispositivos del usuario y los dispositivos de la red se establecen y se mantienen. El X.25 se diseña para funcionar con eficacia sin importar el tipo de sistemas conectados con la red. Se utiliza típicamente en las redes packet-switched (PSNs) de portadores comunes, tales como las compañías del teléfono. Cargan a los suscriptores basaron en su uso de la red. El desarrollo del estándar X.25 fue iniciado por los portadores comunes en los años 70. En aquella 'epoca, había una necesidad de los protocolos WAN capaces de proporcionar conectividad a través de las redes de datos públicas (PDNs). El X.25 ahora es administrado como estándar internacional por el Itu-t.

Los dispositivos de la red X.25 caen en tres categorías generales: equipo terminal de datos (DTE), equipo circuit-terminating de los datos (DCE), e intercambio de conmutación de conjunto de bits (PSE). Los dispositivos de equipo terminal de datos son los sistemas de extremo que se comunican a través de la red X.25. Son generalmente terminales, ordenadores personales, o anfitriones de la red, y están situados en las premisas de suscriptores individuales. Los dispositivos del DCE son dispositivos de las comunicaciones, tales como módems e interruptores de paquete, que proporcionan el interfaz entre dispositivos del DTE y un PSE, y están situados generalmente en las instalaciones del portador. PSEs es los interruptores que componen el bulto de la red del portador. Transfieren datos a partir de un dispositivo del DTE a otro con el X.25



Protocolo de Comunicacion

Los protocolos de comunicaciones son las reglas y procedimiento utilizados en una red para establecer la comunicación entre los nodos que disponen de acceso a la red. Los protocolos gestionan dos niveles de comunicación distintos. Las reglas de alto nivel definen como se comunican las aplicaciones, mientras que las de bajo nivel definen como se transmiten las señales por el cable.