OSI
Muchos fabricantes de software y hardware proporcionan productos para la conexión de equipos en red. Fundamentalmente, las redes son un medio de comunicación, de ahí que, la necesidad de los fabricantes de tomar medidas para asegurar que sus productos pudieran interactuar, llegó a ser aparentemente prematura en el desarrollo de la tecnología de redes. Como las redes y los proveedores de productos para redes se han extendido por todo el mundo, la necesidad de una estandarización se ha incrementado. Para dirigir los aspectos concernientes a la estandarización, varias organizaciones independientes han creado especificaciones estándar de diseño para los productos de redes de equipos. Cuando se mantienen estos estándares, es posible la comunicación entre productos hardware y software de diversos vendedores.
El modelo de referencia de Interconexión de sistemas abiertos (OSI, Open System Interconnection)
El modelo OSI representa los siete niveles de proceso mediante el cual los datos se empaquetan y se transmiten desde una aplicación emisora a través de cables físicos hacia la aplicación receptora.
Comunicaciones en red
La actividad de una red incluye el envío de datos de un equipo a otro. Este proceso complejo se puede dividir en tareas secuenciales discretas. El equipo emisor debe:
1. Reconocer los datos.
2. Dividir los datos en porciones manejables.
3. Añadir información a cada porción de datos para determinar la ubicación de los datos y para identificar al receptor.
4. Añadir información de temporización y verificación de errores.
5. Colocar los datos en la red y enviarlos por su ruta.
El software de cliente de red trabaja a muchos niveles diferentes dentro de los equipos emisores y receptores. Cada uno de estos niveles, o tareas, es gestionado por uno o más protocolos. Estos protocolos, o reglas de comportamiento, son especificaciones estándar para dar formato a los datos y transferirlos. Cuando los equipos emisores y receptores siguen los mismos protocolos se asegura la comunicación. Debido a esta estructura en niveles, a menudo es referido como pila del protocolo.
Con el rápido crecimiento del hardware y el software de red, se hizo necesario que los protocolos estándar pudieran permitir la comunicación entre hardware y software de distintos vendedores. Como respuesta, se desarrollaron dos conjuntos primarios de estándares: el modelo OSI y una modificación de ese estándar llamado Project 802.
El modelo de referencia OSI
En 1978, la International Standards Organization, ISO (Organización internacional de estándares) divulgó un conjunto de especificaciones que describían la arquitectura de red para la conexión de dispositivos diferentes. El documento original se aplicó a sistemas que eran abiertos entre sí, debido a que todos ellos podían utilizar los mismos protocolos y estándares para intercambiar información.
En 1984, la ISO presentó una revisión de este modelo y lo llamó modelo de referencia de Interconexión de Sistemas Abiertos (OSI) que se ha convertido en un estándar internacional y se utiliza como guía para las redes.
El modelo OSI es la guía mejor conocida y más ampliamente utilizada para la visualización de entornos de red. Los fabricantes se ajustan al modelo OSI cuando diseñan sus productos para red. Éste ofrece una descripción del funcionamiento conjunto de hardware y software de red por niveles para posibilitar las comunicaciones. El modelo también ayuda a localizar problemas proporcionando un marco de referencia que describe el supuesto funcionamiento de los componentes.
Una arquitectura por niveles
La arquitectura del modelo de referencia OSI divide la comunicación en red en siete niveles.
Cada nivel cubre diferentes actividades, equipos o protocolos de red. El modelo OSI define cómo se comunica y trabaja cada nivel con los niveles inmediatamente superior e inferior. Por ejemplo, el nivel de sesión se comunica y trabaja con los niveles de presentación y de transporte.
Cada nivel proporciona algún servicio o acción que prepara los datos para entregarlos a través de la red a otro equipo. Los niveles inferiores (1 y 2) definen el medio físico de la red y las tareas relacionadas, como la colocación de los bits de datos sobre las placas de red (NIC, Network Interface Cards) y el cable. Los niveles superiores definen la forma en que las aplicaciones acceden a los servicios de comunicación. Cuanto más alto es el nivel, más compleja es su tarea.
Los niveles están separados entre sí por fronteras llamadas interfaces. Todas las demandas se pasan desde un nivel, a través de esta interfaz, hacia el siguiente. Cada nivel se basa en los estándares y actividades del nivel inferior.
Relaciones entre los niveles del modelo OSI
Cada nivel proporciona servicios al nivel inmediatamente superior y lo protege de los detalles de implementación de los servicios de los niveles inferiores. Al mismo tiempo, cada nivel parece estar en comunicación directa con su nivel asociado del otro equipo. Esto proporciona una comunicación lógica, o virtual, entre niveles análogos. En realidad, la comunicación real entre niveles adyacentes tiene lugar sólo en un equipo. En cada nivel, el software implementa las funciones de red de acuerdo con un conjunto de protocolos.
Antes de pasar los datos de un nivel a otro, se dividen en paquetes, o unidades de información, que se transmiten como un todo desde un dispositivo a otro sobre una red. La red pasa un paquete de un nivel software a otro en el mismo orden de los niveles. En cada nivel, el software agrega información de formato o direccionamiento al paquete, que es necesaria para la correcta transmisión del paquete a través de la red.
En el extremo receptor, el paquete pasa a través de los niveles en orden inverso. Una utilidad software en cada nivel lee la información del paquete, la elimina y pasa el paquete hacia el siguiente nivel superior. Cuando el paquete alcanza el nivel de aplicación, la información de direccionamiento ha sido eliminada y el paquete se encuentra en su formato original, con lo que es legible por el receptor.
Con la excepción del nivel más bajo del modelo de redes OSI, ningún nivel puede pasar información directamente a su homólogo del otro equipo. En su lugar, la información del equipo emisor debe ir descendiendo por todos los niveles hasta alcanzar el nivel físico. En ese momento, la información se desplaza a través del cable de red hacia el equipo receptor y asciende por sus niveles hasta que alcanza el nivel correspondiente. Por ejemplo, cuando el nivel de red envía información desde el equipo A, la información desciende hacia los niveles de enlace de datos y físico de la parte emisora, atraviesa el cable y asciende los niveles físico y de enlace de datos de la parte receptora hasta su destino final en el nivel de red del equipo B.
En un entorno cliente/servidor, un ejemplo del tipo de información enviada desde el nivel de red de un equipo A, hacia el nivel de red de un equipo B, debería ser una dirección de red, posiblemente con alguna información de verificación de errores agregada al paquete.
La interacción entre niveles adyacentes ocurre a través de una interfaz. La interfaz define los servicios ofrecidos por el nivel inferior para el nivel superior y, lo que es más, define cómo se accede a dichos servicios. Además, cada nivel de un equipo aparenta estar en comunicación directa con el mismo nivel de otro equipo.
Nivel o Capa de aplicación
La capa de aplicación proporciona los servicios utilizados por las aplicaciones para que los usuarios se comuniquen a través de la red. Algunos ejemplos de servicios, son:
Transporte de correo electrónico. Gran variedad de aplicaciones pueden utilizar un protocolo para gestionar el correo electrónico. Los diseñadores de aplicaciones que recurren al correo electrónico no necesitan desarrollar sus propios programas para gestionar el correo. Además, las aplicaciones que comparten una misma interfaz de correo pueden intercambiar mensajes utilizando el gestor de correo electrónico.
Acceso a archivos remotos. Las aplicaciones locales pueden acceder a los archivos ubicados en los nodos remotos.
Ejecución de tareas remotas. Las aplicaciones locales pueden iniciar y controlar procesos en otros nodos.
Directorios. La red puede ofrecer un directorio de recursos, incluyendo nombres de nodos lógicos. El directorio permite que las aplicaciones accedan a los recursos de la red utilizando nombres lógicos en lugar de identificaciones numéricas abstractas.
Administración de la red. Los protocolos de administración de la red permiten que varias aplicaciones puedan acceder a la información administrativa de la red.
Es frecuente encontrar el término interfaz de programa de aplicación (API) asociado a los servicios de la capa de aplicación. Un API es un conjunto de reglas que permiten que las aplicaciones escritas por los usuarios puedan acceder a los servicios de un sistema de software. Los diseñadores de programas y protocolos suelen proporcionar varias API para que los programadores puedan adaptar fácilmente sus aplicaciones y utilizar los servicios disponibles en sus productos. Un API habitual de UNIX es Berkeley Sockets; Microsoft lo ha implementado denominándolo Windows Sockets.
Nivel o Capa de presentación
La capa de presentación se responsabiliza de presentar los datos a la capa de aplicación. En ciertos casos, la capa de presentación traduce los datos directamente de un formato a otro. Las grandes computadoras IBM utilizan una codificación de caracteres denominada EBCDIC, mientras que las computadoras restantes utilizan el conjunto de caracteres ASCII. Por ejemplo, si se transmiten datos de una computadora EBCDIC a otra ASCII, la capa de presentación podría encargarse de traducir de un conjunto de caracteres al otro. Además, la representación de los datos numéricos varía entre distintas arquitecturas de computadoras y debe convertirse cuando se transfieren datos de una máquina a otra.
Una técnica habitual para mejorar la transferencia de datos consiste en convertir todos los datos a un formato estándar antes de su transmisión. Puede que este formato estándar no sea el formato nativo de cualquier computadora, pero cualquiera de ellas puede configurarse para recibir datos en formato estándar y convertirlos en su formato nativo. Las normas OSI definen la Abstract Syntax Representation, Revision 1 (ASN.1 -Representación de sintaxis abstracta, revisión 1) como sintaxis estándar para los datos a nivel de la capa de presentación. Aunque el conjunto de protocolos TCP/IP no defina formalmente una capa de presentación, el protocolo External Data Representation (XDR -Representación de datos externos), utilizado por el sistema de archivos de red (NFS -Network File System), cumple una función similar.
Otras funciones que pueden corresponder a la capa de presentación son la encriptación/desencriptación y compresión/descompresión de datos.
La capa de presentación es la que se implementa con menor frecuencia de las capas OSI. Se han definido pocos protocolos para esta capa. En la mayoría de los casos, las aplicaciones de red desempeñan las funciones asociadas con la capa de presentación.
Nivel o Capa de sesión
El control de los diálogos entre distintos nodos es competencia de la capa de sesión. Un diálogo es una conversación formal en la que dos nodos acuerdan un intercambio de datos.
La comunicación puede producirse en tres modos de diálogo
Simple (Simplex). Un nodo transmite de manera exclusiva mientras otro recibe de manera exclusiva.
Semidúplex (Half-duplex). Un solo nodo puede transmitir en un momento dado, y los nodos se turnan para transmitir.
Dúplex total (Full-duplex). Los nodos pueden transmitir y recibir simultáneamente. La comunicación dúplex total suele requerir un control de flujo que asegure que ninguno de los dispositivos envía datos a mayor velocidad de la que el otro dispositivo puede recibir.
Las sesiones permiten que los nodos se comuniquen de manera organizada. Cada sesión tiene tres fases:
1. Establecimiento de la conexión. Los nodos establecen contacto. Negocian las reglas de la comunicación incluyendo los protocolos utilizados y los parámetros de comunicación.
2. Transferencia de datos. Los nodos inician un diálogo para intercambiar datos.
3. Liberación de la conexión. Cuando los nodos no necesitan seguir comunicados, inician la liberación ordenada de la sesión.
Los pasos 1 y 3 representan una carga de trabajo adicional para el proceso de comunicación. Esta carga puede no ser deseable para comunicaciones breves. Por ejemplo, considere la comunicación necesaria para una tarea administrativa de la red. Cuando una red administra varios dispositivos, éstos envían periódicamente un breve informe de estado que suele constar de una sola trama. Si todos estos mensajes se enviaran como parte de una sesión formal, las fases de establecimiento y liberación de la conexión transmitirían más datos que los del propio mensaje.
En estas situaciones, se comunica sin conexión. El nodo emisor se limita a transmitir los datos dando por sentado que el receptor está disponible.
Una sesión con conexión es aconsejable cuando la comunicación es compleja. Imagine la transmisión de una gran cantidad de datos de un nodo a otro. Si no se utilizaran controles formales, un solo error durante la transferencia obligaría a enviar de nuevo todo el archivo. Una vez establecida la sesión, los nodos implicados pueden pactar un procedimiento de comprobación. Si se produce un error, el nodo emisor sólo debe retransmitir los datos enviados desde la última comprobación. El proceso de gestión de actividades complejas se denomina administración de actividad.
Nivel o Capa de transporte
Todas las tecnologías de red establecen un tamaño máximo para las tramas que pueden ser enviadas a través de la red. Por ejemplo, Ethernet limita el tamaño del campo de datos a 1.500 bytes. Este límite es necesario por varias razones:
Las tramas de tamaño reducido mejoran el rendimiento de una red compartida por muchos dispositivos. Si el tamaño de las tramas fuera ilimitado, su transmisión podría monopolizar la red durante un tiempo excesivo. Las tramas pequeñas permiten que los dispositivos se turnen a intervalos cortos de tiempo y tengan más opciones de acceder a la red.
Al utilizar tramas pequeñas, es necesario volver a transmitir menos datos cuando se produce un error. Si un mensaje de 100 KB contiene un error en un solo byte, es preciso volver a transmitir los 100 KB. Si el mensaje se divide en 100 tramas de 1 KB, basta con retransmitir una sola trama de 1 KB para corregir el error.
Una de las responsabilidades de la capa de transporte consiste en dividir los mensajes en fragmentos que coincidan con el límite del tamaño de la red. En el lado receptor, la capa de transporte reensambla los fragmentos para recuperar el mensaje original.
Cuando un mensaje se divide en varios fragmentos, aumenta la posibilidad de que los segmentos no se reciban en el orden correcto. Al recibir los paquetes, la capa de transporte debe recomponer el mensaje reensamblando los fragmentos en el orden correcto. Para ello, la capa de transporte incluye un número de secuencia en la cabecera del mensaje.
Muchas computadoras son multitarea y ejecutan varios programas simultáneamente. Por ejemplo, la estación de trabajo de un usuario puede estar ejecutando al mismo tiempo un proceso para transferir archivos a otra computadora, recuperando el correo electrónico y accediendo a una base de datos de la red. La capa de transporte debe entregar los mensajes del proceso de una computadora al proceso correspondiente de la computadora de destino.
Según el modelo OSI, la capa de transporte asigna una identificación de punto de acceso a servicio (SAP) a cada paquete (puerto es el término TCP/IP correspondiente a un punto de acceso a servicio). La ID de un SAP es una dirección que identifica el proceso que ha originado el mensaje. La ID permite que la capa de transporte del nodo receptor encamine el mensaje al proceso adecuado.
La identificación de mensajes de distintos procesos para posibilitar su transmisión a través de un mismo medio de red se denomina multiplexión. El procedimiento de recuperación de mensajes y de su encaminamiento a los procesos adecuados se denomina demultiplexión. Esta práctica es habitual en las redes diseñadas para permitir que varios diálogos compartan un mismo medio de red.
Dado que una capa puede admitir distintos protocolos, la multiplexión y demultiplexión puede producirse en distintas capas. Algunos ejemplos:
Transporte de distintos tipos de tramas Ethernet a través del mismo medio (capa de enlace de datos).
Soporte simultáneo de NWLink y de TCP/IP en computadoras Windows NT (capa de enlace de datos).
Mensajes de varios protocolos de transporte como TCP y UDP en un sistema TCP/IP (capa de transporte).
Mensajes de distintos protocolos de aplicación (como Telnet, FTP y SMTP) en un host UNIX (capas de sesión y superiores).
Aunque las capas de enlace de datos y de red pueden encargarse de detectar errores en los datos transmitidos, además esta responsabilidad suele recaer sobre la capa de transporte. La capa de transporte puede realizar dos tipos de detección de errores:
Entrega fiable. Entrega fiable no significa que los errores no puedan ocurrir, sino que los errores se detectan cuando ocurren. La recuperación puede consistir únicamente en notificar el error a los procesos de las capas superiores. Sin embargo, la capa de transporte suele solicitar que el paquete erróneo se transmita nuevamente.
Entrega no fiable. No significa que los errores puedan producirse, sino que la capa de transporte no los verifica. Dado que la comprobación requiere cierto tiempo y reduce el rendimiento de la red, es frecuente que se utilice la entrega no fiable cuando se confía en el funcionamiento de la red. Este es el caso de la mayoría de redes de área local. La entrega no fiable es preferible cuando los mensajes constan de un alto número de paquetes. Con frecuencia, se denomina entrega de datagramas y cada paquete transmitido de este modo se denomina datagrama.
La idea de que siempre es preferible utilizar la entrega fiable puede constituir un error a la hora de diseñar la red. La entrega no fiable es aconsejable en al menos dos situaciones: cuando la red es altamente fiable y es necesario optimizar su rendimiento o cuando los paquetes contienen mensajes completos y la pérdida de un paquete no plantea un problema crítico.
Nivel o Capa de red
Las redes más pequeñas normalmente constan de una sola red de área local, pero la mayoría de las redes deben subdividirse. Una red que consta de varios segmentos de red suele denominarse interred (no confundir con Internet).
Las subdivisiones de una interred pueden planificarse para reducir el tráfico de los segmentos o para aislar las redes remotas conectadas a través de medios de comunicación más lentos. Cuando las redes se subdividen, no es posible dar por sentado que los mensajes se entregan en la red de área local. Es necesario recurrir a un mecanismo que dirija los mensajes de una red a otra.
Para entregar mensajes en una interred, cada red debe estar identificada de manera única por una dirección de red. Al recibir un mensaje de las capas superiores, la capa de red añade una cabecera al mensaje que incluye las direcciones de red de origen y destino. Esta combinación de datos sumada a la capa de red se denomina paquete. La información de la dirección de red se utiliza para entregar el mensaje a la red correcta. A continuación, la capa de enlace de datos puede utilizar la dirección del nodo para realizar la entrega del mensaje.
El proceso de hacer llegar los paquetes a la red correcta se denomina encaminamiento, y los dispositivos que encaminan los paquetes se denominan encaminadores. Una interred tiene dos tipos de nodos:
Los nodos finales proporcionan servicios a los usuarios. Utilizan una capa de red para añadir las direcciones de red a los paquetes, pero no llevan a cabo el encaminamiento. En ocasiones, los nodos finales se denominan sistemas finales (terminología OSI) o hosts (terminología TCP/IP).
Los encaminadores incorporan mecanismos especiales para realizar el encaminamiento. Dado que se trata de una tarea compleja, los encaminadores suelen ser dispositivos dedicados que no proporcionan servicios a los usuarios finales. En ocasiones, los encaminadores se denominan sistemas intermedios (terminología OSI) o gateways (terminología TCP/IP).
La capa de red opera con independencia del medio físico, que es competencia de la capa física. Dado que los encaminadores son dispositivos de la capa de red, pueden utilizarse para intercambiar paquetes entre distintas redes físicas. Por ejemplo, un encaminador puede enlazar una red Ethernet a una red Token Ring. Los encaminadores también se utilizan frecuentemente para conectar una red de área local, por ejemplo Ethernet, a un red de área extensa, por ejemplo ATM.
Nivel o Capa de enlace de datos
Los dispositivos que pueden comunicarse a través de una red suelen denominarse nodos (en ocasiones se denominan estaciones y dispositivos). La capa de enlace de datos es responsable de proporcionar la comunicación nodo a nodo en una misma red de área local. Para ello, la capa de enlace de datos debe realizar dos funciones. Debe proporcionar un mecanismo de direcciones que permita entregar los mensajes en los nodos correctos y debe traducir los mensajes de las capas superiores en bits que puedan ser transmitidos por la capa física.
Cuando la capa de enlace de datos recibe un mensaje, le da formato pare transformarlo en una trama de datos (denominada igualmente paquete). Las secciones de una trama de datos se denominan campos. Los campos del ejemplo son los siguientes:
Indicador de inicio. Un patrón de bits que indica el inicio de una trama de datos.
Dirección de origen. La dirección del nodo que realiza el envío se incluye para poder dirigir las respuestas al mensaje.
Dirección de destino. Cada nodo queda identificado por una dirección. La capa de enlace de datos del remitente añade la dirección de destino a la trama. La capa de enlace de datos del destinatario examine la dirección de destino para identificar los mensajes que debe recibir.
Control. En muchos casos es necesario incluir información adicional de control. Cada protocolo determine la información específica.
Datos. Este campo contiene todos los datos enviados a la capa de enlace de datos por las capas superiores del protocolo.
Control de errores. Este campo contiene información que permite que el nodo destinatario determine si se ha producido algún error durante la transmisión. El sistema habitual es la verificación de redundancia cíclica (CRC), que consiste en un valor calculado que resume todos los datos de la trama. El nodo destinatario calcula nuevamente el valor y, si coincide con el de la trama, entiende que la trama se ha transmitido sin errores.
La entrega de tramas resulta muy sencilla en una red de área local. Un nodo remitente se limita a transmitir la trama. Cada nodo de la red ve la trama y examina su dirección de destino. Cuando coincide con su dirección, la capa de enlace de datos del nodo recibe la trama y la envía a la siguiente capa de la pile.
Nivel o Capa física
La capa física comunica directamente con el medio de comunicación y tiene dos responsabilidades: enviar bits y recibir bits. Un dígito binario o bit es la unidad básica de información en comunicación de datos. Un bit sólo puede tener dos valores, 1 ó 0, representados por distintos estados en el medio de comunicación. Otras capas se responsabilizan del agrupamiento de los bits de forma que representen datos de un mensaje.
Los bits se representan por cambios en las señales del medio de la red. Algunos cableados representan los unos y los ceros con distintos voltajes, otros utilizan tonos de audio distintos y otros utilizan métodos más sofisticados, por ejemplo transiciones de estado (cambios de alto a bajo voltaje y viceversa).
Se utiliza una gran variedad de medios en la comunicación de datos; entre otros, cables eléctricos, fibras ópticas, ondas de luz o de radio y microondas. El medio empleado puede variar: para sustituirlo, basta con utilizar un conjunto distinto de protocolos de capa física. Las capas superiores son totalmente independientes del proceso utilizado para transmitir los bits a través del medio de la red.
Una distinción importante es que la capa física OSI no describe los medios, estrictamente hablando. Las especificaciones de la capa física describen el modo datos en que los datos se codifican en señales del medio y las características de la interfaz de conexión con el medio, pero no describen el medio en sí. Sin embargo, en la práctica, la mayoría de las normas de las capas físicas incluyen las características de la capa física OSI y del medio.
Paquetes de datos y el modelo OSI
El proceso de creación de paquetes se inicia en el nivel de aplicación del modelo OSI, donde se generan los datos. La información a enviar a través de la red comienza en el nivel de aplicación y desciende a lo largo de los siete niveles.
En cada nivel, se agrega a los datos información relevante de ese nivel. Esta información es utilizada por el correspondiente nivel del equipo receptor. El nivel de enlace de datos del equipo receptor, por ejemplo, leerá la información agregada en el nivel de enlace de datos del equipo emisor.