Por mucho tiempo se consideró al diseño de redes un proceso muy complicado de llevar a cabo, esto es debido a que los fabricantes de computadoras tenían su propia arquitectura de red, y esta era muy distinta al resto, y en ningún caso existía compatibilidad entre marcas.
Luego los fabricantes consideraron acordar una serie de normas internacionales para describir las arquitecturas de redes.
Luego la ISO (Organización Internacional de Normalización) en 1977 desarrolla una estructura de normas comunes dentro de las redes.
Estas normas se conocen como el Modelo de Referencia OSI (interconexión de sistemas abiertos), modelo bajo el cual empezaron a fabricar computadoras con capacidad de comunicarse con otras marcas.
Este modelo se basa en el principio de Julio Cesar: "divide y vencerás", y está pensado para las redes del tipo WAN.
La idea es diseñar redes como una secuencia de capas, cada una construida sobre la anterior.
Las capas se pueden dividir en dos grupos:
El modelo OSI está pensado para las grandes redes de telecomunicaciones de tipo WAN.
No es un estándar de comunicaciones ya que es un lineamiento funcional para las tareas de comunicaciones, sin embargo muchos estándares y protocolos cumplen con los lineamientos del modelo.
Como se menciona anteriormente, OSI nace como una necesidad de uniformar los elementos que participan en la solución de los problemas de comunicación entre equipos de diferentes fabricantes.
El problema de compatibilidad se presenta entre los equipos que van a comunicarse debido a diferencias en:
Lo que hace necesario atacar el problema de compatibilidad a través de distintos niveles o capas.
Formalizar los diferentes niveles de interacción para la conexión de computadoras habilitando así la comunicación del sistema de computo independientemente del fabricante y la arquitectura, como así también la localización o el sistema operativo.
A- | Estructura multinivel: |
Se diseña una estructura multinivel con la idea de que cada nivel resuelva solo una parte del problema de la comunicación, con funciones especificas. | |
B- | El nivel superior utiliza los servicios de los niveles inferiores: |
Cada nivel se comunica con su homologo en las otras máquinas, usando un mensaje a través de los niveles inferiores de la misma. La comunicación entre niveles se define de manera que un nivel N utilice los servicios del nivel N-1 y proporcione servicios al nivel N+1. | |
C- | Puntos de acceso: |
Entre los diferentes niveles existen interfaces llamadas "puntos de acceso" a los servicios. | |
D- | Dependencia de Niveles: |
Cada nivel es dependiente del nivel inferior como así también lo es del nivel superior. | |
E- | Encabezados: |
En cada nivel, se incorpora al mensaje un formato de control. Este elemento de control permite que un nivel en la computadora receptora se entere de que la computadora emisora le está enviando un mensaje con información. |
Cualquier nivel puede incorporar un encabezado al mensaje. Por esta razón se considera que un mensaje está constituido de dos partes, el encabezado y la información.
Entonces, la incorporación de encabezados es necesaria aunque represente un lote extra en la información, lo que implica que un mensaje corto pueda ser voluminoso.
Sin embargo, como la computadora receptora retira los encabezados en orden inverso a como se enviaron desde la computadora emisora, el mensaje original no se afecta.
Esta arquitectura representada utiliza la terminología de las primeras redes llamadas ARPANET, donde las maquinas que se utilizan para correr los programas en la red se llaman hostales (computadoras centrales), o también llamadas terminales.
Los hostales se comunican a través de una subred de comunicaciones que se encarga de enviar los mensajes entre los hostales, como si fuera un sistema de comunicación telefónica. La subred se compone de dos elementos: las líneas de transmisión de datos, y los elementos de conmutación, llamados IMP (procesadores de intercambio de mensajes).
De ésta manera todo el tráfico que va o viene a un hostal pasa a través de su IMP.
El diseño de una subred puede ser de dos tipos:
El primero (punto a punto) contiene varias líneas de comunicaciones, conectadas cada una a un par de IMP.
Cuando un mensaje (paquete) se envía de un IMP otro, se utiliza un IMP intermedio, que garantiza el envío del mensaje, esta modalidad se utiliza en las redes extendidas que son del tipo almacenamiento y reenvío.
El segundo (difusión) contiene un solo canal de difusión que se comparte con todas las máquinas de la red. Los paquetes que una máquina quiera enviar, son recibidos por todas las demás, un campo de dirección indica quién es el destinatario, este modelo se utiliza en redes locales.
Las redes de diseñan en capas con el propósito de reducir la complejidad, pero la cantidad de capas, las funciones que se llevan a cabo en cada una y el nombre varían de una red a otra.
Cada una de las capas libera a la posterior del conocimiento de las funciones subyacentes. Esto hace necesario establecer interfaces de comunicación entre capas que definen los servicios y operaciones.
Cuando una capa-i de una máquina A establece comunicación con la capa-i una máquina B, se establecen reglas y convenciones para llevarla a cabo, lo cual se denomina protocolo de la capa-i.
A la configuración de capas y protocolo se le llama arquitectura de red.
Aquí se encuentran los medios materiales para la comunicación como las placas, cables, conectores, es decir los medios mecánicos y eléctricos.
La capa física se ocupa de la transmisión de bits a lo largo de un canal de comunicación, de cuantos microsegundos dura un bit, y que voltaje representa un 1 y cuantos un 0. La misma debe garantizar que un bit que se manda llegue con el mismo valor. Muchos problemas de diseño en la parte física son problema de la ingeniería eléctrica.
Medios de transmisión
Par trenzado (twisted pair). Consiste en dos alambres de cobre enroscados (para reducir interferencia eléctrica).
Cable coaxial. Un alambre dentro de un conductor cilíndrico. Tiene un mejor blindaje y puede cruzar distancias mayores con velocidades mayores
Fibra óptica. Hoy tiene un ancho de banda de 50.000 Gbps, pero es limitada por la conversión entre las señales ópticas y eléctricas (1 Gbps). Los pulsos de luz rebotan dentro de la fibra.
Además de estos hay también medios inalámbricos de transmisión. Cada uno usa una banda de frecuencias en alguna parte del espectro electromagnético. Las ondas de longitudes más cortas tienen frecuencias más altas, y así apoyan velocidades más altas de transmisión de datos.
Veamos algunos ejemplos:
Radio. 10 KHz-100 MHz. Las ondas de radio son fáciles de generar, pueden cruzar distancias largas, y entrar fácilmente en los edificios. Son omnidireccionales, lo cual implica que los transmisores y recibidores no tienen que ser alineados.
Las ondas de frecuencias bajas pasan por los obstáculos, pero el poder disminuye con la distancia.
Las ondas de frecuencias más altas van en líneas rectas. Rebotan en los obstáculos y la lluvia las absorbe.
Microondas. 100 MHz-10 GHz. Van en líneas rectas. Antes de la fibra formaban el centro del sistema telefónico de larga distancia. La lluvia las absorbe.
Infrarrojo. Se usan en la comunicación de corta distancia (por ejemplo, controlo remoto de televisores). No pasan por las paredes, lo que implica que sistemas en distintas habitaciones no se interfieren. No se pueden usar fuera.
Ondas de luz. Se usan lasers. Ofrecen un ancho de banda alto con costo bajo, pero el rayo es muy angosto, y el alineamiento es difícil.
El sistema telefónico
En general hay que usarlo para redes más grandes que un LAN.
Consiste en las oficinas de conmutación, los alambres entres los clientes y las oficinas (los local loops), y los alambres de las conexiones de larga distancia entre las oficinas (los troncales). Hay una jerarquía de las oficinas.
La tendencia es hacia la señalización digital. Ventajas:
La regeneración de la señal es fácil sobre distancias largas.
Se pueden entremezclar la voz y los datos.
Los amplificadores son más baratos porque solamente tienen que distinguir entre dos niveles.
La manutención es más fácil; es fácil detectar errores.
Satélites
Funcionan como repetidores de microondas. Un satélite contiene algunos transponedores que reciben las señales de alguna porción del espectro, las amplifican, y las retransmiten en otra frecuencia.
Hay tres bandas principales: C (que tiene problemas de interferencia terrenal), Ku, y Ka (que tienen problemas con la lluvia).
Un satélite tiene 12-20 transponedores, cada uno con un ancho de banda de 36-50 MHz. Una velocidad de transmisión de 50 Mbps es típica. Se usa la multiplexación de división de tiempo.
La altitud de 36.000 km sobre el ecuador permite la órbita geosíncrona, pero no se pueden ubicar los satélites con espacios de menos de 1 o 2 grados.
Los tiempos de tránsito de 250-300 milisegundos son típicos.
Muy útil en la comunicación móvil, y la comunicación en las áreas con el terreno difícil o la infraestructura débil.
Se encarga de transformar la línea de transmisión común en una línea sin errores para la capa de red, esto se lleva a cabo dividiendo la entrada de datos en tramas de asentimiento, por otro lado se incluye un patrón de bits entre las tramas de datos. Esta capa también se encarga de solucionar los problemas de reenvío, o mensajes duplicados cuando hay destrucción de tramas. Por otro lado es necesario controlar el tráfico.
Un grave problema que se debe controlar es la transmisión bidireccional de datos.
El tema principal son los algoritmos para la comunicación confiable y eficiente entre dos máquinas adyacentes.
Problemas: los errores en los circuitos de comunicación, sus velocidades finitas de transmisión, y el tiempo de propagación.
Normalmente se parte de un flujo de bits en marcos.
Marcos
El nivel de enlace trata de detectar y corregir los errores. Normalmente se parte el flujo de bits en marcos y se calcula un checksum (comprobación de datos) para cada uno.
Las tramas contendrán información como:
- Número de caracteres (un campo del encabezamiento guarda el número. Pero si el número es cambiado en una transmisión, es difícil recuperar.)
- Caracteres de inicio y fin.
Servicios para el nivel de red
Servicio sin acuses de recibo. La máquina de fuente manda marcos al destino. Es apropiado si la frecuencia de errores es muy baja o el tráfico es de tiempo real (por ejemplo, voz).
Servicio con acuses de recibo. El recibidor manda un acuse de recibo al remitente para cada marco recibido.
Control de flujo
Se usan protocolos que prohiben que el remitente pueda mandar marcos sin la permisión implícita o explícita del recibidor.
Por ejemplo, el remitente puede mandar un número indeterminado de marcos pero entonces tiene que esperar.
Detección y corrección de errores
Ejemplo: HDLC. En este ejemplo se verá un protocolo que se podría identificar con el segundo nivel OSI. Es el HDLC (High-level Data Link Control). Este es un protocolo orientado a bit, es decir, sus especificaciones cubren que información lleva cada uno de los bits de la trama.
BITS 8 | 8 | 8 | >=0 | 16 | 8 |
01111110 | Adress | Control | Data | Checksum | 01111110 |
Como se puede ver en la tabla, se definen unos campos que se agregan a la información (Datos). Estos campos se utilizan con distintos fines. Con el campo Checksum se detectan posibles errores en la transmisión mientras que con el campo control se envía mensajes como datos recibidos correctamente, etc.
Se ocupa del control de la operación de la subred. Lo más importante es eliminar los cuellos de botella que se producen al saturarse la red de paquetes enviados, por lo que también es necesario encaminar cada paquete con su destinatario.
Dentro de la capa existe una contabilidad sobre los paquetes enviados a los clientes.
Otro problema a solucionar por esta capa es la interconexión de redes heterogéneas, solucionando problemas de protocolo diferentes, o direcciones desiguales.
Este nivel encamina los paquetes de la fuente al destino final a través de encaminadores (routers) intermedios. Tiene que saber la topología de la subred, evitar la congestión, y manejar saltos cuando la fuente y el destino están en redes distintas.
El nivel de red en la Internet (Funcionamiento del protocolo IP)
El protocolo de IP (Internet Protocol) es la base fundamental de Internet. Hace posible enviar datos de la fuente al destino. El nivel de transporte parte el flujo de datos en datagramas. Durante su transmisión se puede partir un datagrama en fragmentos que se montan de nuevo en el destino.
Paquetes de IP:
La función principal es de aceptar los datos de la capa superior y dividirlos en unidades más pequeñas, para pasarlos a la capa de red, asegurando que todos los segmentos lleguen correctamente, esto debe ser independiente del hardware en el que se encuentre.
Para bajar los costos de transporte se puede multiplexar varias conexiones en la misma red.
Esta capa necesita hacer el trabajo de multiplexión transparente a la capa de sesión.
El quinto nivel utiliza los servicios del nivel de red para proveer un servicio eficiente y confiable a sus clientes, que normalmente son los procesos en el nivel de aplicación.
El hardware y software dentro del nivel de transporte se llaman la entidad de transporte.
Puede estar en el corazón del sistema operativo, en un programa, en una tarjeta, etc.
Sus servicios son muy semejantes a los del nivel de red. Las direcciones y el control de flujo son semejantes también. Por lo tanto, ¿por qué tenemos un nivel de transporte? ¿Por qué no solamente el nivel de red?
La razón es que el nivel de red es una parte de la subred y los usuarios no tienen ningún control sobre ella. El nivel de transporte permite que los usuarios puedan mejorar el servicio del nivel de red (que puede perder paquetes, puede tener routers que no funcionan a veces, etc.). El nivel de transporte permite que tengamos un servicio más confiable que el nivel de red.
También, las funciones del nivel de transporte pueden ser independiente de las funciones del nivel de red. Las aplicaciones pueden usar estas funciones para funcionar en cualquier tipo de red.
Protocolos de transporte
Los protocolos de transporte se parecen los protocolos de enlace. Ambos manejan el control de errores, el control de flujo, la secuencia de paquetes, etc. Pero hay diferencias:
En el nivel de transporte, se necesita una manera para especificar la dirección del destino. En el nivel de enlace está solamente el enlace.
En el nivel de enlace es fácil establecer la conexión; el host en el otro extremo del enlace está siempre allí. En el nivel de transporte este proceso es mucho más difícil.
Establecimiento de una conexión
DesconexiónLa desconexión asimétrica puede perder datos. La desconexión simétrica permite que cada lado pueda liberar una dirección de la conexión a la vez.
Control de flujoSe debe controlar que el número de paquetes enviados a un destino para que no colapse a este.
MultiplexaciónA veces el nivel de transporte tiene que multiplexar las conexiones. Si se desea una transmisión de datos muy rápida se abrirán varias conexiones y los datos se dividirán para hacerlos pasar por estas.
Si solo se tiene una conexión pero se quieren pasar varios datos se deberá multiplexar el canal. Por tiempos transmitirá una conexión u otra.
Recuperación de caídasSi una parte de la subred se cae durante una conexión, el nivel de transporte puede establecer una conexión nueva y recuperar de la situación.
El encabezamiento de TCP
TCP (Protocolo de control de transmisión) es el método usado por el protocolo IP (Internet protocol) para enviar datos a través de la red. Mientras IP cuida del manejo del envío de los datos, TCP cuida el trato individual de cada uno de ellos (llamados comúnmente "paquetes") para el correcto enrutamiento de los mismos a través de Internet.
El encabezamiento de TCP para la transmisión de datos tiene este aspecto:
La puerta de la fuente y del destino identifican la conexión.
El número de secuencia y el número de acuse de recibo son normales. El último especifica el próximo byte esperado.
La longitud (4 bits) indica el número de palabras de 32 bits en el encabezamiento, ya que el campo de opciones tiene una longitud variable.
Los flags:
URG. Indica que el segmento contiene datos urgentes. El puntero urgente punta al desplazamiento del número de secuencia corriente donde están los datos urgentes. | |
ACK. Indica que hay un número de acuse en el campo de acuse. | |
PSH (Push). El recibidor no debiera almacenar los datos antes de entregarlos. | |
RST (Reset). Hay un problema en la conexión. | |
SYN. Se usa para establecer las conexiones. Una solicitud de conexión tiene SYN = 1 y ACK = 0, mientras que la aceptación de una conexión tiene SYN = 1 y ACK = 1. | |
FIN. Indica que el mandador no tiene más datos a mandar. La desconexión es simétrica. |
TCP usa una ventana de tamaño variable. Este campo indica cuantos bytes se pueden mandar después del byte de acuse.
El checksum provee más confiabilidad.
Las opciones permiten que los hosts puedan especificar el segmento máximo que están listos para aceptar (tienen que poder recibir segmentos de 556 bytes), usar una ventana mayor que 64K bytes, y usar repetir selectivamente en vez de repetir un número indeterminado de veces.
Permite a los usuarios sesionar entre sí permitiendo acceder a un sistema de tiempo compartido a distancia, o transferir un archivo entre dos máquinas.
Uno de los servicios de esta capa es la del seguimiento de turnos en el tráfico de información, como así también la administración de tareas, sobre todo para los protocolos.
Otra tarea de esta capa es la de sincronización de operaciones con los tiempos de caída en la red.
Se ocupa de los aspectos de sintaxis y semántica de la información que se transmite, por ejemplo la codificación de datos según un acuerdo.
Esto se debe a que los distintos formatos en que se representa la información que se transmite son distintos en cada máquina. Otro aspecto de esta capa es la compresión de información reduciendo el nº de bits.
Contiene una variedad de protocolos que se necesitan frecuentemente, por ejemplo para la cantidad de terminales incompatibles que existen para trabajar con un mismo editor orientado a pantalla. Para esto se manejan terminales virtuales de orden abstracto.
Otra función de esta capa es la de transferencias de archivos cuando los sistemas de archivos de las máquinas son distintos solucionando esa incompatibilidad. Aparte se encarga de sistema de correo electrónico, y otros servicios de propósitos generales.
El nivel de aplicación es siempre el más cercano al usuario.
Por nivel de aplicación se entiende el programa o conjunto de programas que generan una información para que esta viaje por la red.
El ejemplo más inmediato sería el del correo electrónico. Cuando procesamos y enviamos un correo electrónico este puede ir en principio a cualquier lugar del mundo, y ser leído en cualquier tipo de ordenador.
Los juegos de caracteres utilizados por el emisor y el receptor pueden ser diferentes por lo que alguien se ha de ocupar de llevar a cabo estos ajustes. También se ha de crear un estándar en lo que la asignación de direcciones de correo se refiere.
De todas estas funciones se encarga el nivel de aplicación. El nivel de aplicación, mediante la definición de protocolos, asegura una estandarización de las aplicaciones de red.
En nuestro ejemplo del correo electrónico esto es lo que sucedería.....
Supongamos que escribimos un mensaje como el siguiente:
En nuestro caso hemos escrito este e-mail en un ordenador PC con Windows98 con el programa de correo Microsoft Outlook. Fuese cual fuese el ordenador, sistema operativo o programa de correo que utilizásemos, lo que finalmente viajaría por la red cuando enviáramos el correo sería algo como esto:
From:"Remitente" Email del remitente
To: Destinatario
Subject: Hola amigos
Date: Thu, 25 Feb 2001 09:44:14 +0100
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 4.72.3110.5
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
Hola amigos
El estándar que define esta codificación de mensajes es el protocolo SMTP. Cualquier ordenador del mundo que tenga un programa de correo electrónico que cumpla con el estándar SMTP será capaz de sacar por pantalla nuestro mensaje.
Cuando el proceso emisor desea enviar datos al proceso receptor, entrega los datos a la capa de aplicación (7), donde se añade la cabecera de aplicación en la parte delantera de los datos, que se entrega a la capa de presentación, y de esta manera se prosigue hasta la capa física.
Luego de la transmisión física, la máquina receptora, se encarga de hacer los pasos para ir eliminando las cabeceras según las capas que vaya recorriendo la información hasta llegar al proceso receptor.
Los detalles de cada una de las siete capas es un detalle técnico en el transporte de los datos entre los dos procesos.
Elementos activos que se encuentran en cada una de las capas, ej. software, hardware, cuando las entidades se encuentran en la misma capa son entidades pares.
Es cada entidad inferior a otra que le puede ofrecer servicios o funciones.
Es el punto de acceso a los servicios de una capa inferior, cada SAP tiene una dirección que lo identifica.
Es el conjunto de reglas que hace que las capas se puedan comunicar. Se usa una IDU (unidad de datos de la interface) a través del SAP, la IDU consiste en una SDU (unidad de datos de servicio), además de alguna información de control, necesaria para que las capas inferiores realicen su trabajo, pero no forma parte de los datos.
El servicio orientado a conexión se modeló basándose en el sistema telefónico. Así el usuario establece la conexión, la usa, y luego se desconecta. El sistema es similar al usado como una tubería.
En cambio el servicio sin conexión se modeló como el servicio postal. Cada mensaje lleva consigo la dirección del destino, donde no interesa el camino que tome, el inconveniente es el manejo de los tiempos de llegada de los mismos, ya que no se puede determinar el tiempo en que llegará cada mensaje enviado.
La transferencia de archivos se realiza generalmente con el servicio orientado a conexión. Para esto existen dos variantes: secuencia de mensajes y flujos de octetos. En el primero se mantiene el limite del mensaje, en cambio en el otro se pueden enviar octetos de 2k sin limite.
Un servicio posee un conjunto de primitivas que hace que el usuario pueda acceder a ellos, y estas primitivas indican al servicio la acción que deben realizar.
Existen cuatro categorías de primitivas:
Un servicio es un conjunto de primitivas (operaciones), que la capa efectuará en beneficio de sus usuarios, sin indicar la manera en que lo hará. También un servicio es una interface entre dos capas.
Un protocolo, a diferencia de servicio, es un conjunto de reglas que gobiernan el formato y el significado de las tramas, paquetes y mensajes que se intercambian entre las entidades corresponsales, dentro de la misma capa.
El modelo, junto con las definiciones de servicio y protocolos asociados, es muy complejo. Cuando se apilan normas impresas, ocupan un fracción significativa de un metro de papel. También son difíciles de realizar e ineficientes en su aspecto operativo.
Así un problema que aparece en algunas funciones, como lo es el direccionamiento, el control de errores, reaparecen en las subsecuentes capas, así es que una de las propuestas es manejar el error en las capas superiores para impedir repetirlo en las inferiores.
La terminal virtual se situó en la capa de aplicación porque el comité tuvo problemas con la decisión sobre los usos de la capa de presentación.
La seguridad y criptografía de los datos fue un aspecto controvertido en el que nadie se puso de acuerdo en que capa debería haber ido, y lo dejaron de lado.
Otra de las críticas a la norma original es que se ignoraron los servicios y protocolos sin conexión, aun cuando era bien sabido que ésta es la forma en que trabajan la mayor parte de las redes de área local.
La critica más seria es que el modelo fue enfocado a las comunicaciones. En muy pocas partes se menciona la relación que guarda la informática con las comunicaciones, algunas de las elecciones que se tomaron son completamente inapropiadas con respecto al modo en que trabajan los ordenadores y el software. Por ejemplo el conjunto de primitivas de los servicios.
Por otro lado el modelo semántico manejado por interrupción es una idea conceptual muy pobre y completamente opuesta a las ideas modernas de programación estructurada.
Redes para Ordenadores, A. Tannembaun.