martes, 23 de junio de 2015

Capa de aplicación


Pila OSI.

El nivel de aplicación o capa de aplicación es el séptimo nivel del modelo OSI.

Ofrece a las aplicaciones (de usuario o no) la posibilidad de acceder a los servicios de las demás capas y define los protocolos que utilizan las aplicaciones para intercambiar datos, como correo electrónico (POP y SMTP), gestores de bases de datos y protocolos de transferencia de archivos (FTP).

Cabe aclarar que el usuario normalmente no interactúa directamente con el nivel de aplicación. Suele interactuar con programas que a su vez interactúan con el nivel de aplicación pero ocultando la complejidad subyacente. 


Así por ejemplo un usuario no manda una petición «GET /index.html HTTP/1.0» para conseguir una página en html, ni lee directamente el código html/xml. O cuando chateamos con el Mensajero Instantáneo, no es necesario que codifiquemos la información y los datos del destinatario para entregarla a la capa de Presentación (capa 6) para que realice el envío del paquete.

En esta capa aparecen diferentes protocolos y servicios: 



Protocolos:

FTP
(File Transfer Protocol - Protocolo de transferencia de archivos) para transferencia de archivos.

DNS (Domain Name Service - Servicio de nombres de dominio).

DHCP (Dynamic Host Configuration Protocol - Protocolo de configuración dinámica de anfitrión).

HTTP (HyperText Transfer Protocol) para acceso a páginas web.

HTTPS (Hypertext Transfer Protocol Secure) Protocolo seguro de transferencia de hipertexto.

POP (Post Office Protocol) para recuperación de correo electrónico.

SMTP (Simple Mail Transport Protocol) para envío de correo electrónico.

SSH (Secure SHell)

TELNET para acceder a equipos remotos.

TFTP (Trival File Transfer Protocol).

LDAP (Lightweight Directory Access Protocol).

XMPP, (Extensible Messaging and Presence Protocol) - Protocolo estándar para mensajería instantánea.

Servicios:



  • Aplicaciones de Red
  • www (World Wide Web).
  • enlace a capas inferiores
Esta capa contiene las aplicaciones visibles para el usuario. Algunas consideraciones son: seguridad y cifrado,DNS (Domain Name Service) Una de las aplicaciones más usadas hoy en dia en Internet es el WWW (World Wide Web).
Capa de presentación


Pila OSI.

El nivel de presentación o capa de presentación es el sexto nivel del Modelo OSI que se encarga de la representación de la información, de manera que aunque distintos equipos puedan tener diferentes representaciones internas de caracteres (ASCII, Unicode, EBCDIC), números (little-endian tipo Intel, big-endian tipo Motorola), sonido o imágenes, los datos lleguen de manera reconocible.

Esta capa es la primera en trabajar más el contenido de la comunicación que cómo se establece la misma. En ella se tratan aspectos tales como la semántica y la sintaxis de los datos transmitidos, ya que distintas computadoras pueden tener diferentes formas de manejarlas.

Por lo tanto, podemos resumir definiendo a esta capa como la encargada de manejar las estructuras de datos abstractas y realizar las conversiones de representación de datos necesarias para la correcta interpretación de los mismos.

Esta capa también permite cifrar los datos y comprimirlos. Actúa como traductor.




La Capa 6, o capa de presentación, cumple tres funciones principales. Estas funciones son las siguientes:

  • Formateo de datos
  • Cifrado de datos
  • Compresión de datos

Para comprender cómo funciona el formateo de datos, tenemos dos sistemas diferentes. El primer sistema utiliza el Código ampliado de caracteres decimal codificados en binario (EBCDIC) para representar los caracteres en la pantalla. El segundo sistema utiliza el Código americano normalizado para el intercambio de la información (ASCII) para la misma función. La Capa 6 opera como traductor entre estos dos tipos diferentes de códigos.

El cifrado de los datos protege la información durante la transmisión. Las transacciones financieras utilizan el cifrado para proteger la información confidencial que se envía a través de Internet. Se utiliza una clave de cifrado para cifrar los datos en el lugar origen y luego descifrarlos en el lugar destino.

La compresión funciona mediante el uso de algoritmos para reducir el tamaño de los archivos. El algoritmo busca patrones de bits repetidos en el archivo y entonces los reemplaza con un token. Un token es un patrón de bit mucho más corto que representa el patrón largo. Una analogía sencilla puede ser el nombre Rafa (el apodo), el token, para referirse a alguien cuyo nombre completo sea Rafael.

Programación

Esta capa no es tan extraña como la capa de sesión, que no es muy común diferenciarla en algún proceso de comunicaciones. Si uno es programador, probablemente tenga una noción muy clara de qué es lo que define ésta capa, dado que si uno diseña un protocolo para una aplicación, lo primero que define es el formato de los mensajes y cómo enviar adjuntos en el caso que los tenga que enviar por ese protocolo. 


Lo anterior se define en un alto nivel, pero antes de definir cómo va a ser la comunicación: síncrona/asíncrona, es decir, bloqueante o no (capa 5) y qué protocolos de transporte se van a usar (TCP o UDP). 

Éstas definiciones de estructuras de datos, formato de los mensajes y codificación de los adjuntos también se hacen después de haber definido qué funciones principales va a ofrecer el protocolo, por ejemplo, si el protocolo sirve para controlar las estaciones de una sala de cómputo, habrá que definir (antes del formato de los mensajes) que el protocolo tendrá un mensaje de bloquear/desbloquear el escritorio y otro para ordenar el envío del tiempo durante el cual el escritorio ha estado desbloqueado. 

Queda entonces claro, que definir la estructura de los mensajes (por ejemplo qué campos tiene cada mensaje y cómo serializar objetos adjuntos) es un proceso que se hace después de definir las funciones que prestará el protocolo/aplicación y antes de decidir cómo va a ser la comunicación.


¿Qué hace la capa de presentación?

Ojalá a los lectores les parezca familiar o fácil de comprender el ejemplo anterior, porque allí está la esencia de lo que define la capa de presentación: cómo representar los datos que transporta una aplicación específica. Palabras clave para recordar las funciones de ésta capa pueden ser formato de archivos, serialización, estructuras de datos de alto nivel o representación de datos/información.

Protocolos de la capa de presentación

Hay varios ejemplos de protocolos que se clasificarían en ésta capa: ASN.1 y MIME. El primero es una forma normalizada de representar datos, es decir, define una forma “estándar” de pasar un tipo de dato por una red, 

por ejemplo, cómo codificar un número con punto decimal que sea reconocible tanto en el extremo que lo envía como en el que lo lee sin importar si las máquinas tienen arquitecturas diferentes (p. ej.: Windows y Unix). Mime es un protocolo que también define tipos de datos, sólo que de un poco más alto nivel. MIME se usa para transportar los archivos adjuntos en protocolos como HTTP o SMTP, con él se definen tipos de archivo como IMAGE/JPG o TEXT/HTML para enviar éstos archivos como parte de una página web o de un mensaje de correo.
Capa de sesión



Pila OSI.

El nivel de sesión o capa de sesión es el quinto nivel del modelo OSI , que proporciona los mecanismos para controlar el diálogo entre las aplicaciones de los sistemas finales. En muchos casos, los servicios de la capa de sesión son parcialmente, o incluso, totalmente prescindibles. No obstante en algunas aplicaciones su utilización es ineludible.

La capa de sesión proporciona los siguientes servicios:
  • Control del Diálogo: Éste puede ser simultáneo en los dos sentidos (full-duplex) o alternado en ambos sentidos (half-duplex).
  • Agrupamiento: El flujo de datos se puede marcar para definir grupos de datos.
  • Recuperación: La capa de sesión puede proporcionar un procedimiento de puntos de comprobación, de forma que si ocurre algún tipo de fallo entre puntos de comprobación, la entidad de sesión puede retransmitir todos los datos desde el último punto de comprobación y no desde el principio.

Todas estas capacidades se podrían incorporar en las aplicaciones de la capa 7. Sin embargo ya que todas estas herramientas para el control del diálogo son ampliamente aplicables, parece lógico organizarlas en una capa separada, denominada capa de sesión.

La capa de sesión surge como una forma de organizar y sincronizar el diálogo y controlar el intercambio de datos.

La capa de sesión permite a los usuarios de máquinas diferentes establecer sesiones entre ellos. Una sesión permite el transporte ordinario de datos, como lo hace la capa de transporte, pero también proporciona servicios mejorados que son útiles en algunas aplicaciones. Se podría usar una sesión para que el usuario se conecte a un sistema remoto de tiempo compartido o para transferir un archivo entre dos máquinas.

Protocolos de la capa de sesión

Protocolo RCP (llamada a procedimiento remoto):
es un protocolo que permite a un programa de ordenador ejecutar código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambos. 
El protocolo es un gran avance sobre los sockets usados hasta el momento. Las RPC son muy utilizadas dentro del paradigma cliente-servidor. 

Siendo el cliente el que inicia el proceso solicitando al servidor que ejecute cierto procedimiento o función y enviando éste de vuelta el resultado de dicha operación al cliente. Hoy en día se está utilizando el XML como lenguaje para definir el IDL y el HTTP como protocolo de red, dando lugar a lo que se conoce como servicios web.

SCP (protocolo de comunicación simple): El protocolo SCP es básicamente idéntico al protocolo RCP diferencia de este, los datos son cifrados durante su transferencia, para evitar que potenciales packet sniffers extraigan información útil de los paquetes de datos. Sin embargo, el protocolo mismo no provee autenticación y seguridad; sino que espera que el protocolo subyacente, SSH, lo asegure.

ASP (Protocolo de sesión APPLE TALK): Fue desarrollado por Apple Computers, ofrece establecimiento de la sesión, mantenimiento y desmontaje, así como la secuencia petición. ASP es un protocolo intermedio que se basa en la parte superior de AppleTalk Protocolo de transacciones (ATP), que es el original fiable de nivel de sesión protocolo de AppleTalk.

Proporciona servicios básicos para solicitar respuestas a las arbitrarias órdenes y llevar a cabo fuera de la banda de consultas de estado. También permite al servidor enviar mensajes asíncronos de atención al cliente.


Capa de transporte

Para otros usos de este término, véase Transporte (desambiguación).



Pila OSI.

El nivel de transporte o capa de transporte es el cuarto nivel del modelo OSI encargado de la transferencia libre de errores de los datos entre el emisor y el receptor, aunque no estén directamente conectados, así como de mantener el flujo de la red. 

Es la base de toda la jerarquía de protocolo. La tarea de esta capa es proporcionar un transporte de datos confiable y económico de la máquina de origen a la máquina destino, independientemente de la red de redes física en uno. Sin la capa transporte, el concepto total de los protocolos en capas tendría poco sentido.



Servicios

Servicios proporcionados a las capas superiores


La meta final de la capa de transporte es proporcionar un servicio eficiente, confiable y económico a sus usuarios, que normalmente son procesos de la capa de aplicación. Para lograr este objetivo, la capa de transporte utiliza los servicios proporcionados por la capa de red. El hardware o software de la capa de transporte que se encarga del transporte se llama entidad de transporte, la cual puede estar en el núcleo del sistema operativo, en un proceso independiente, en un paquete de biblioteca o en la tarjeta de red.

Hay dos tipos de servicio en la capa de transporte, orientado y no orientado a la conexión. En el servicio orientado a la conexión consta de tres partes: establecimiento, transferencia de datos, y liberación. En el servicio no orientado a la conexión se tratan los paquetes de forma individual.

Es la primera capa que lleva a cabo la comunicación extremo a extremo, y esta condición ya se mantendrá en las capas superiores.


Primitivas del servicio de transporte


Para permitir que los usuarios accedan al servicio de transporte, la capa de transporte debe proporcionar algunas operaciones a los programas de aplicación, es decir, una interfaz del servicio de transporte. Cada servicio de transporte tiene su propia interfaz. Con el propósito de ver los aspectos básicos, en esta sección examinaremos primero un servicio de transporte sencillo y su interfaz.

El servicio de transporte es parecido al servicio en red, pero hay algunas diferencias importantes. La principal, es que, el propósito del servicio de red es modelar el servicio ofrecido por las redes reales, con todos sus problemas. Las redes reales pueden perder paquetes, por lo que generalmente el servicio no es confiable. 

En cambio, el servicio de transporte (orientado a la conexión) si es confiable. Claro que las redes reales no están libres de errores, pero ése es precisamente el propósito de la capa de transporte: ofrecer un servicio confiable en una red no confiable.

Otra diferencia entre la capa de transporte y la de red es a quien van dirigidos sus servicios. El servicio de red lo usan únicamente las entidades de transporte. Pocos usuarios escriben sus entidades de transporte y pocos usuarios o programas llegan a ver los aspectos internos del servicio de red. En cambio, muchos programas ven primitivas de transporte. En consecuencia el servicio de transporte debe ser adecuado y fácil de usar.

Las primitivas de un transporte sencillo serían:


- LISTEN: Se bloquea hasta que algún proceso intenta el contacto.

- CONNECT: Intenta activamente establecer una conexión.

- SEND: Envía información.

- RECEIVE: Se bloquea hasta que llegue una TPDU de DATOS.

- DISCONNECT: Este lado quiere liberar la conexión.

Y con estas primitivas podemos hacer un esquema sencillo de manejo de conexiones. Las transiciones escritas en cursiva son causadas por llegadas de paquetes. Las líneas continuas muestran la secuencia de estados del cliente y las líneas punteadas muestran la secuencia del servidor.

Sockets de Berkeley

Este es otro grupo de primitivas de transporte, las primitivas usadas en UNIX para el TCP. En general son muy parecidas a las anteriores pero ofrecen más características y flexibilidad.

Elementos de los protocolos de transporte

El servicio de transporte se implementa mediante un protocolo de transporte entre dos entidades de transporte. En ciertos aspectos, los protocolos de transporte se parecen a los protocolos de red. Ambos se encargan del control de errores, la secuenciación y el control del flujo.

Pero también existen diferencias importantes entre ambas, como los entornos en que operan, la capa transporte necesita el direccionamiento explícito de los destinos, mientras que la capa de red no, otra diferencia es la cantidad de datos, mucho mayor en la capa de transporte.

Direccionamiento

Cuando un proceso desea establecer una conexión con un computador de aplicación remoto, debe especificar a cuál se conectará (¿a quién le llegará el mensaje?). 

El método que normalmente se emplea es definir direcciones de transporte en las que los procesos pueden estar a la escucha de solicitudes de conexiones. 

En Internet, estos puntos terminales se denominan puertos, pero usaremos el término genérico de TSAP (Punto de Acceso al Servicio de Transporte). Los puntos terminales análogos de la capa de red se llaman NSAP (Punto de Acceso al Servicio de Red). Las direcciones IP son ejemplos de NSAPS.

Establecimiento de una conexión

El establecimiento de una conexión parece fácil, pero en realidad es sorprendentemente difícil. A primera vista, parecería que es suficiente con mandar una TPDU (Unidad de Datos del Protocolo de Transporte) con la petición de conexión y esperar a que el otro acepte la conexión. El problema viene cuando la red puede perder, almacenar, o duplicar paquetes. 

El principal problema es la existencia de duplicados retrasados. Esto puede solucionarse de varias maneras (ninguna es muy satisfactoria). Una es utilizar direcciones de transporte desechables. 

En este enfoque cada vez que necesitemos una dirección la creamos. Al liberarse la conexión descartamos la dirección y no se vuelve a utilizar. O también asignar una secuencia dentro de los datos transmitidos, pero estos plantean el problema de que si se pierde la conexión perdemos el orden del identificador y ya no funciona. 

La solución seria más fácil si los paquetes viejos se eliminaran de la subred cada cierto tiempo de vida. Para ello podemos utilizar las siguientes técnicas: Un diseño de subred Restringido. Colocar un contador de saltos en cada paquete. Marcar el tiempo de cada paquete. Pero en la práctica no vale solo con hacer esto sino que tenemos que garantizar que todas las confirmaciones de los paquetes también se eliminan.

Liberación de una conexión

La liberación de una conexión es más fácil que su establecimiento. No obstante, hay más escollos de los que uno podría imaginar. Hay dos estilos de terminación de una conexión: liberación asimétrica y liberación simétrica. 

La liberación asimétrica es la manera en que funciona el mecanismo telefónico: cuando una parte cuelga, se interrumpe la conexión. La liberación simétrica trata la conexión como dos conexiones unidireccionales distintas, y requiere que cada una se libere por separado. 

La liberación asimétrica es abrupta y puede resultar en la perdida de datos. Por lo que es obvio que se requiere un protocolo de liberación más refinado para evitar la perdida de datos. Una posibilidad es usar la liberación simétrica, en la que cada dirección se libera independientemente de la otra. Aquí, un hoste puede continuar recibiendo datos aun tras haber enviado unaTPDU de desconexión.

La liberación simétrica es ideal cuando un proceso tiene una cantidad fija de datos por enviar y sabe con certidumbre cuándo los ha enviado. En otras situaciones, la determinación de si se ha efectuado o no todo el trabajo y se debe terminarse o no la conexión no es tan obvia. Podríamos pensar en un protocolo en el que el host 1 diga:”Ya termine, ¿Terminaste también?”. Si el host 2 responde “Ya termine también. Adiós”, la conexión puede liberarse con seguridad.

Pero no es tan fiable por el problema de que siempre tendremos que esperar la confirmación de los mensajes recibidos y si esta confirmación no llega no libera la conexión y después puede que necesite la confirmación de que llego la confirmación y entraríamos en un bucle del que no podemos salir.

Podemos hacer que al host 1 si no le llega la confirmación después de N intentos (es que quiere la desconexión), se libere. Esto produce una conexión semiabierta en la que el host 1 está desconectado pero el host 2 no como no le llega la confirmación no se desconecta nunca. Para solucionar esto creamos una regla por la cual si al host 2 no le llega ninguna TPDU durante cierta cantidad de segundos, se libera automáticamente.

Control de Flujo y almacenamiento en buffer

Respecto de la manera en que se manejan las conexiones mientras están en uso, uno de los aspectos clave es el control de flujo. Se necesita un esquema para evitar que un emisor rápido desborde a un receptor lento. 

La diferencia principal es que un enrutador por lo regular tiene relativamente pocas líneas, y un host puede tener numerosas conexiones. Esta diferencia hace poco práctico emplear la implementación que se hace en la capa de enlace.

En esta capa lo que se hace es que si el servicio de red no es confiable, el emisor debe almacenar en un buffer todas las TPDUs enviadas, igual que en la capa enlace de datos. Sin embargo, con un servicio de red confiable son posibles otros arreglos. 

En particular, si el emisor sabe que el receptor siempre tiene espacio de buffer, no necesita tener copias de las TPDUs que envía. Sin embargo, si el receptor no garantiza que se aceptará cada TPDU que llegue, el emisor tendrá que usar buffers de todas maneras. En el último caso, el emisor no puede confiar en la confirmación de recepción de la capa red porque esto sólo significa que ha llegado la TPDU, no que ha sido aceptada.

Los Buffers pueden ser de tres tipos, y usaremos cada uno de ellos cuando más nos convenga.

El equilibrio óptimo entre el almacenamiento del buffer en el origen y en el destino depende del tipo de tráfico transportado por la conexión.

Multiplexión

La multiplexión de varias conversaciones en conexiones, circuitos virtuales o enlaces físicos desempeña un papel importante en diferentes capas de la arquitectura de red. En la capa de transporte puede surgir la necesidad de multiplexión por varias razones. 

Por ejemplo, si en un host sólo se dispone de una dirección de red, todas las conexiones de transporte de esa máquina tendrán que utilizarla. Cuando llega una TPDU, se necesita algún mecanismo para saber a cuál proceso asignarla. Esta situación se conoce como multiplexión hacia arriba.

La multiplexión también puede ser útil en la capa transporte para la utilización de circuitos virtuales, que dan más ancho de banda cuando se reasigna a cada circuito una tasa máxima de datos. La solución es abrir múltiples conexiones de red y distribuir el tráfico entre ellas. Esto se denomina multiplexión hacia abajo..

Recuperación de caídas

Si los hosts y los enrutadores están sujetos a caídas, la recuperación es fundamental. Si la entidad de transporte está por entero dentro de los hosts, la recuperación de caídas de red y de enrutadores es sencilla. 

Si la capa de red proporciona servicio de datagramas, las entidades de transporte esperan pérdida de algunas TPDUs todo el tiempo, y saben cómo manejarla. Si la capa de red proporciona servicio orientado a la conexión, entonces la pérdida de un circuito virtual se maneja estableciendo otro nuevo y sondeando la entidad de transporte remota para saber cuales TPDUs ha recibido y cuales no.

Un problema más complicado es la manera de recuperarse de caídas del host. Al reactivarse, sus tablas están en el estado inicial y no sabe con precisión donde estaba.

En un intento por recuperar su estado previo, el servidor podría enviar una TPDU de difusión a todos los demás host, anunciando que se acaba de caer y solicitando a todos sus clientes que le informen el estado de todas la conexiones abiertas.

Protocolos de transporte de internet

Internet tiene dos protocolos principales en la capa de transporte, uno orientado a la conexión y otro no orientado a la conexión. El protocolo no orientado a la conexión es el UDP y el orientado es el TCP.

UDP
Artículo principal: UDP


El conjunto de protocolos de Internet soporta un protocolo de transporte no orientado a la conexión UDP (protocolo de datagramas de usuario). Este protocolo proporciona una forma para que las aplicaciones envíen datagramas IP encapsulados sin tener una conexión.

TCP
Artículo principal: TCP


− TCP (protocolo de control de transmisión) se diseñó específicamente para proporcionar un flujo de bytes confiable de extremo a extremo a través de una interred no confiable. Una interred difiere de una sola red debido a que diversas partes podrían tener diferentes topologías, anchos de banda, retardos, tamaños de paquete… TCP tiene un diseño que se adapta de manera dinámica a las propiedades de la interred y que se sobrepone a muchos tipos de situaciones.
Capa de red


Pila OSI.

El nivel de red o capa de red, según la normalización OSI, es un nivel o capa que proporciona conectividad y selección de ruta entre dos sistemas de hosts que pueden estar ubicados en redes geográficamente distintas. 


Es el tercer nivel del modelo OSI y su misión es conseguir que los datos lleguen desde el origen al destino aunque no tengan conexión directa. Ofrece servicios al nivel superior (nivel de transporte) y se apoya en el nivel de enlace, es decir, utiliza sus funciones.

Para la consecución de su tarea, puede asignar direcciones de red únicas, interconectar subredes distintas, encaminar paquetes, utilizar un control de congestión y control de errores.



Orientación de conexión

Hay dos formas en las que el nivel de red puede funcionar internamente, pero independientemente de que la red funcione internamente con datagramas o con circuitos virtuales puede dar hacia el nivel de transporte un servicio orientado a conexión:

Datagramas: Cada paquete se encamina independientemente, sin que el origen y el destino tengan que pasar por un establecimiento de comunicación previo.

Circuitos virtuales: En una red de circuitos virtuales dos equipos que quieran comunicarse tienen que empezar por establecer una conexión. Durante este establecimiento de conexión, todos los routers que haya por el camino elegido reservarán recursos para ese circuito virtual específico.

-La tarea principal de la capa de enlace de datos es tomar una transmisión de datos y transformarla en una extracción libre de errores de transmisión para la capa de red. 

Logra esta función dividiendo los datos de entrada en marcos de datos (de unos cuantos cientos de bytes), transmite los marcos en forma secuencial, y procesa los marcos de estado que envía el nodo destino. Si se habla de tramas es de capa de enlace.


Tipos de servicios

Hay dos tipos de servicio:


Servicios NO orientados a la conexión: Cada paquete debe llevar la dirección destino, y con cada uno, los nodos de la red deciden el camino que se debe seguir. 

Existen muchas técnicas para realizar esta decisión, como por ejemplo comparar el retardo que sufriría en ese momento el paquete que se pretende transmitir según el enlace que se escoja.

Servicios orientados a la conexión: Sólo el primer paquete de cada mensaje tiene que llevar la dirección destino. 
Con este paquete se establece la ruta que deberán seguir todos los paquetes pertenecientes a esta conexión. 

Cuando llega un paquete que no es el primero se identifica a que conexión pertenece y se envía por el enlace de salida adecuado, según la información que se generó con el primer paquete y que permanece almacenada en cada conmutador o nodo.

Encaminamiento

Encaminamiento (o enrutamiento, ruteo) es la función de buscar un camino entre todos los posibles en una red de paquetes cuyas topologías poseen una gran conectividad. Dado que se trata de encontrar la mejor ruta posible, lo primero será definir qué se entiende por mejor ruta y en consecuencia cuál es la métrica que se debe utilizar para medirla.

Control de congestión

Congestión de red


Cuando en una red un nodo recibe más tráfico del que puede procesar se puede dar una congestión. El problema es que una vez que se da congestión en un nodo el problema tiende a extenderse por el resto de la red. Por ello hay técnicas de prevención y control que se pueden y deben aplicar en el nivel de red.

Algunos protocolos de la capa de red

Algunos protocolos de la capa de red son:

  • IP (IPv4, IPv6, IPsec)
  • OSPF
  • IS-IS
  • RIP
  • ICMP, ICMPv6
  • IGMP

La capa de red controla el funcionamiento de la subred, decidiendo qué ruta de acceso física deberían tomar los datos en función de las condiciones de la red, la prioridad de servicio y otros factores. Proporciona:

  • Enrutamiento: enruta tramas entre redes.
  • Control de tráfico de subred: los enrutadores (sistemas intermedios de capa de red) pueden indicar a una estación emisora que "reduzca" su transmisión de tramas cuando el búfer del enrutador se llene.
  • Fragmentación de trama: si determina que el tamaño de la unidad de transmisión máxima (MTU) que sigue en el enrutador es inferior al tamaño de la trama, un enrutador puede fragmentar una trama para la transmisión y volver a ensamblarla en la estación de destino.
  • Asignación de direcciones lógico-físicas: traduce direcciones lógicas, o nombres, en direcciones físicas.
  • Cuentas de uso de subred: dispone de funciones de contabilidad para realizar un seguimiento de las tramas reenviadas por sistemas intermedios de subred con el fin de producir información de facturación.

Subred de comunicaciones

El software de capa de red debe generar encabezados para que el software de capa de red que reside en los sistemas intermedios de subred pueda reconocerlos y utilizarlos para enrutar datos a la dirección de destino.

Esta capa libera a las capas superiores de la necesidad de tener conocimientos sobre la transmisión de datos y las tecnologías de conmutación intermedias que se utilizan para conectar los sistemas de conmutación. Establece, mantiene y finaliza las conexiones entre las instalaciones de comunicación que intervienen (uno o varios sistemas intermedios en la subred de comunicación).

En la capa de red y las capas inferiores, existen protocolos entre pares entre un nodo y su vecino inmediato, pero es posible que el vecino sea un nodo a través del cual se enrutan datos, no la estación de destino. Las estaciones de origen y de destino pueden estar separadas por muchos sistemas intermedios.

lunes, 22 de junio de 2015

Control de errores

Proporciona detección y corrección de errores en el envío de tramas entre computadoras, y provee el control de la capa física. Sus funciones, en general, son:

  • Identificar trama de datos;
  • Códigos detectores y correctores de error;
  • Control de flujo;
  • Gestión y coordinación de la comunicación.

Correctores de error : es opcional en esta capa, la encargada de realizar esta función es la capa de transporte, en una WAN es muy problable que la verificación, la realiza la capa de enlace.

Para la identificación de tramas puede usar distintas técnicas como:

  • Contador de caracteres
  • Caracteres de inicio y final con caracteres de relleno
  • Secuencia de bits indicadora de inicio y final, con bits de relleno

El control de flujo es necesario para no 'agobiar' al receptor. Se realiza normalmente en la capa de transporte, también a veces en la capa de enlace. Utiliza mecanismos de retroalimentación. Suele ir unido a la corrección de errores y no debe limitar la eficiencia del canal.

Los métodos de control de errores son básicamente dos:

  • Corrección de errores hacia adelante (Forward Error Correction, FEC) o corrección de errores por anticipado, no tiene control de flujo.
  • Petición de repetición automática (Automatic Repeat-reQuest, ARQ): posee control de flujo mediante parada y espera, y/o ventana deslizante.

Las posibles implementaciones son:

  • Parada y espera simple: el emisor envía la trama y espera una señal del receptor para enviar la siguiente trama o la que acaba de enviar en caso de error.
  • Envío continuo y rechazo simple: el emisor envía continuamente tramas y el receptor las va validando. Si encuentra una trama errónea, elimina todas las posteriores y pide al emisor que envíe a partir de la trama errónea.
  • Envío continuo y rechazo selectivo: transmisión continua salvo que sólo retransmite la trama defectuosa.

La detección de errores la realiza mediante diversos tipos de códigos del que hay que resaltar:

  • Control de redundancia cíclica (CRC)
  • Simple paridad
  • Paridad cruzada (Paridad horizontal y vertical)
  • Suma de verificación

La corrección de errores están basados en Código Hamming, por repetición, verificación de paridad cruzada, Reed-Solomon y de Goyle.

Control de flujo

El control de flujo es necesario para no saturar al receptor de uno a más emisores. Se realiza normalmente en la capa de transporte, también a veces en la capa de enlace. Utiliza mecanismos de retroalimentación. Suele ir unido a la corrección de errores y no debe limitar la eficiencia del canal. El control de flujo conlleva dos acciones importantísimas que son la detección de errores y la corrección de errores.

La detección de errores se utiliza para detectar errores a la hora de enviar tramas al receptor e intentar solucionarlos. Se realiza mediante diversos tipos de códigos del que hay que resaltar el CRC, simple paridad (puede ser par, números de "1" par, o impar), paridad cruzada (Paridad horizontal y vertical) y Suma de verificación.

La corrección de errores surge a partir de la detección para corregir errores detectados y necesitan añadir a la información útil un número de bits redundantes bastante superior al necesario para detectar y retransmitir. Sus técnicas son variadas. El Código Hamming, Repetición, que cada bit se repite tres veces y en caso de fallo se toma el bit que más se repite; También puede hacerse mediante verificación de paridad cruzada, Reed-Solomon y de goyle.

También cabe destacar los protocolos HDLC que es un control de enlace de datos a alto nivel, orientado a bit y obedece a una ARQ de ventana deslizante o continuo. También existen protocolos orientados a carácter.

Recuperación de fallos

Se refiere a los procedimientos para detectar situaciones y recuperar al nivel de situaciones anómalas como la ausencia de respuesta, recepción de tramas inválidas, etc. Las situaciones más típicas son la pérdida de tramas, aparición de tramas duplicadas y llegada de tramas fuera de secuencia.

Si no se tratasen correctamente estos eventos se perderá información y se aceptarán datos erróneos como si fuesen correctos. Generalmente se suelen utilizar contadores para limitar el número de errores o reintentos de los procesos y procedimientos. También se pueden usar temporizadores para establecer plazos de espera (timeout) de los sucesos.

Gestión y coordinación de la comunicación



Gestión y coordinación.

La gestión atiende a dos tipos:
El primero de ellos es un sistema centralizado donde existe una máquina maestra y varias esclavas. Estas conexiones se pueden realizar punto a punto o multipunto.
El segundo de ellos es el distribuido, donde no existe máquina maestra y todas compiten por el control del sistema de comunicación.

La coordinación se puede realizar mediante selección o contienda:
La selección se puede implementar mediante sondeo/selección, donde el maestro recoge un mensaje de una secundaria y se la entrega a quien seleccione. También es posible asignando un testigo a una máquina que es la que puede emitir mensajes/tramas. Son típicas las configuraciones Token Ring y Token Bus.
La contienda se basa en que cada ordenador emite su trama/mensaje cuando le apetece. Todos los componentes de la red son tanto emisores como receptores. Son típicos los sistemas ALOHA y CSMA/CD. Hay que tener cuidado con las colisiones.
Capa de enlace de datos

Pila del modelo OSI.


El nivel de enlace de datos (en inglés: data link level) o capa de enlace de datos, es la segunda capa del modelo OSI, es responsable de la transferencia fiable de información a través de un circuito de transmisión de datos. Recibe peticiones de la capa de red y utiliza los servicios de la capa física.

El objetivo de la capa de enlace es conseguir que la información fluya, libre de errores, entre dos máquinas que estén conectadas directamente (servicio orientado a la conexión). Para lograr este objetivo tiene que montar bloques de información (llamados tramas en esta capa), dotarles de una dirección de capa de enlace (Dirección MAC), gestionar la detección o corrección de errores, y ocuparse del “control de flujo” entre equipos (para evitar que un equipo más rápido desborde a uno más lento).

Cuando el medio de comunicación está compartido entre más de dos equipos es necesario arbitrar el uso del mismo. Esta tarea se realiza en la subcapa de control de acceso al medio.

Dentro del grupo de normas IEEE 802, la subcapa de enlace lógico se recoge en la norma IEEE 802.2 y es común para todos los demás tipos de redes (Ethernet o IEEE 802.3, IEEE 802.11 o Wi-Fi, IEEE 802.16 o WiMAX, etc.); todas ellas especifican un subcapa de acceso al medio así como una capa física distinta.

Otro tipo de protocolos de la capa de enlace son: protocolo punto a punto (Point-to-Point Protocol, PPP); protocolo de enlace de alto nivel (High-level Data Link Control, HDLC), entre otros.

En la práctica la subcapa de acceso al medio suele formar parte de la propia tarjeta de comunicaciones, mientras que la subcapa de enlace lógico estaría en el programa adaptador de la tarjeta (driver).


Tramas

En la capa de enlace es la facilidad de área extensa por la que se pueden comunicar los sistemas mediante un protocolo de la capa de enlace de datos.


Funciones

La capa de enlace de datos es responsable de la transferencia fiable de información a través de un circuito eléctrico de transmisión de datos. La transmisión de datos lo realiza mediante tramas que son las unidades de información con sentido lógico para el intercambio de datos en la capa de enlace. También hay que tener en cuenta que en el modelo TCP/IP se corresponde a la segunda capa.

Sus principales funciones son:

  • Iniciación, terminación e identificación.
  • Segmentación y bloqueo.
  • Sincronización de octeto y carácter.
  • Delimitación de trama y transparencia.
  • Control de errores.
  • Control de flujo.
  • Recuperación de fallos.
  • Gestión y coordinación de la comunicación.

Iniciación, terminación e identificación

La función de iniciación comprende los procesos necesarios para activar el enlace e implica el intercambio de tramas de control con el fin de establecer la disponibilidad de las estaciones para transmitir y recibir información.

Las funciones de terminación son de liberar los recursos ocupados hasta la recepción/envío de la última trama. También de usar tramas de control. La identificación es para saber a qué terminal se debe de enviar una trama o para conocer quién envía la trama. Se lleva a cabo mediante la dirección de la capa de enlace.

Segmentación y bloque

La segmentación surge por la longitud de las tramas ya que si es muy extensa, se debe de realizar tramas más pequeñas con la información de esa trama excesivamente larga.

Si estas tramas son excesivamente cortas, se ha de implementar unas técnicas de bloque que mejoran la eficiencia y que consiste en concatenar varios mensajes cortos de nivel superior en una única trama de la capa de enlace más larga.

Sincronización de octeto y carácter

En las transferencias de información en la capa de enlace es necesario identificar los bits y saber qué posición les corresponde en cada carácter u octeto dentro de una serie de bits recibidos.

Esta función de sincronización comprende los procesos necesarios para adquirir, mantener y recuperar la sincronización de carácter u octeto. Es decir, poner en fase los mecanismos de codificación del emisor con los mecanismos de decodificación del receptor.

Delimitación de trama


La capa de enlace debe ocuparse de la delimitación y sincronización de la trama. Para la sincronización puede usar tres métodos:
El primero de ellos es "principio y fin" (caracteres específicos para identificar el principio o el fin de cada trama).
También puede usar "principio y cuenta" (utiliza un carácter para indicar comienzo y seguido por un contador que indica su longitud).
Por último puede usar el "guión" (se emplea una agrupación específica de bits para identificar el principio y fin mediante banderas o flags).

La “transparencia” se realiza mediante la ‘inserción de bits’. Consta de ir contando los unos consecutivos y cuando se encuentra con cinco caracteres "1" seguidos y consecutivos (11111) introduce el bit "0" después del quinto 1. Ejemplo: considere la trama 0101111110, al aplicar la transparencia pasa a ser 01011111010.


La capa de vínculo de datos ofrece una transferencia sin errores de tramas de datos desde un nodo a otro a través de la capa física, permitiendo a las capas por encima asumir virtualmente la transmisión sin errores a través del vínculo. Para ello, la capa de vínculo de datos proporciona: 

  • Establecimiento y finalización de vínculos: establece y finaliza el vínculo lógico entre dos nodos. 
  • Control del tráfico de tramas: indica al nodo de transmisión que "dé marcha atrás" cuando no haya ningún búfer de trama disponible. 
  • Secuenciación de tramas: transmite y recibe tramas secuencialmente. 
  • Confirmación de trama: proporciona/espera confirmaciones de trama. Detecta errores y se recupera de ellos cuando se producen en la capa física mediante la retransmisión de tramas no confirmadas y el control de la recepción de tramas duplicadas. 
  • Delimitación de trama: crea y reconoce los límites de la trama. 
  • Comprobación de errores de trama: comprueba la integridad de las tramas recibidas. 
  • Administración de acceso al medio: determina si el nodo "tiene derecho" a utilizar el medio físico.

CAPA FISICA

CAPA FISICA

Continuando con la serie sobre el modelo OSI, voy a describir lo que se entiende por capa física o capa 1 del modelo de referencia OSI. Esta entrada se basa en el artículo ¿Qué es el modelo OSI? 




Definición.

Como vimos en la entrada anterior, el modelo de referencia OSI es un modelo de protocolos de comunicación que contempla todos los aspectos necesarios para realizar una comunicación exitosa de información entre dos nodos en una red de datos. Ese modelo está dividido en funciones específicas, cada grupo de funciones llamado capa tiene un nombre y cada una ejecuta sus operaciones específicas en la información, ofreciendo el resultado a su capa superior, en otras palabras las capas superiores dependen de que sus inferiores hagan su trabajo perfectamente e ignoran todo lo que ellas hacen.

Las capas del modelo OSI se interpretan de abajo para arriba, es decir, la capa más básica se llama capa física y se numera como la capa 1. La capa física define las características físicas del medio, por ejemplo cómo representar un bit en éste. Otra función de la capa física es definir el medio mismo para la tecnología particular, por ejemplo, ¿cuál es el medio para ethernet 100baseT?, eso lo indica la capa física de ésta tecnología, pero si habláramos de 100baseF el medio sería distinto. Lo anterior nos lleva a que la capa física de una tecnología define también cómo son los conectores de la misma, continuando con nuestro ejemplo, para 100baseT los conectores son bananas RJ-45 (se les suele llamar Plug al conector macho y Jack al hembra) pero si habláramos de 100baseF los conectores serían conectores ST y ya que el medio es fibra óptica. En otras palabras, la capa física normaliza la tecnología, de tal manera que sin importar el fabricante, dispositivos de la misma tecnología deben cumplir con la especificación de capa física de ésta.





La capa física se ocupa fundamentalmente por el transporte seguro de los bits por un medio definido, de ahí que la unidad básica de información en ésta capa sean los bits. Como ésta se encarga del medio y del transporte de bits en él, debe definir cosas como tipo de señales y valores mínimos que se pueden permitir en el receptor, valores máximos en el transmisor y rapidez de las transiciones (por ejemplo de transiciones de voltaje si hablamos de medio de cobre). 

Si se define que el voltaje de un bit en 1 es 5V ¿hasta qué voltaje podrá el receptor interpretar un cambio de voltaje como un bit en 1?, ¿qué distancia máxima podrá recorrer una señal por el medio para evitar una atenuación que haga irreconocible el bit? ¿qué problemas físicos debe enfrentar una señal al propagarse por el medio definido?. 




Recuerde que una comunicación puede llevarse a cabo por medio de cobre (la más común) pero también por fibra óptica, donde los bits y los problemas físicos a los que se verá enfrentado son distintos o también por el aire usando señales electromagnéticas, donde estará susceptible a interferencias debido a motores u otros dispositivos de comunicación, por lo que la analogía del voltaje no siempre aplica.

Finalmente, recuerde que estamos hablando de ingeniería y los aspectos físicos de cualquier medio son detalladamente estudiados, diseñados, probados y cuidadosamente definidos para ofrecer un rendimiento óptimo, todo lo anterior se debe definir en la capa física de una tecnología si a ésta le incumbe, por ejemplo, los protocolos de internet (TCP/IP) no definen nada en la capa física, porque están hechos para ser usados por cualquier medio, de eso podemos dar cuenta todos nosotros como usuarios diarios de ellos, por otro lado los protocolos de cableado estructurado son muy estrictos en sus características de capa 1. Hay que tener en cuenta que las normas de capa física establecen parámetros óptimos pero eso no significa que no se puedan violar esas reglas, sólo que si se violan se corre el riesgo de que el rendimiento de la red no sea óptimo. Términos de ingeniería que se relacionan con ésta capa son: codificación de línea, modulación, atenuación, codificación de símbolos, sincronización de circuitos, tiempos de bit, velocidad de propagación, espaciado intertramas, entre otras.

Conclusiones

Cuando se trabaja con comunicaciones, uno termina hablando indistintamente de capa 1 ó capa física, así que si su intención es trabajar en ésto le recomiendo que se aprenda de memoria que la capa física es la primera capa del modelo de referencia OSI.

Evidentemente, el primer requisito para una comunicación exitosa es garantizar que los procesos que tienen que ver con el medio se den. Si yo puedo contar conque las señales se propagan y llegan al receptor, entonces puedo hacer cosas más sofisticadas de ahí en adelante, como las cosas de la capa 2 o capa de enlace de datos.


La capa física, la más baja del modelo OSI, se encarga de la transmisión y recepción de una secuencia no estructurada de bits sin procesar a través de un medio físico. Describe las interfaces eléctrica/óptica, mecánica y funcional al medio físico, y lleva las señales hacia el resto de capas superiores. Proporciona:
  • Codificación de datos: modifica el modelo de señal digital sencillo (1 y 0) que utiliza el equipo para acomodar mejor las características del medio físico y para ayudar a la sincronización entre bits y trama. Determina:
    • Qué estado de la señal representa un binario 1
    • Como sabe la estación receptora cuándo empieza un "momento bit"
    • Cómo delimita la estación receptora una trama
  • Anexo al medio físico, con capacidad para varias posibilidades en el medio:
    • ¿Se utilizará un transceptor externo (MAU) para conectar con el medio?
    • ¿Cuántas patillas tienen los conectores y para qué se utiliza cada una de ellas?
  • Técnica de la transmisión: determina si se van a transmitir los bits codificados por señalización de banda base (digital) o de banda ancha (analógica).
  • Transmisión de medio físico: transmite bits como señales eléctricas u ópticas adecuadas para el medio físico y determina:
    • Qué opciones de medios físicos pueden utilizarse
    • Cuántos voltios/db se deben utilizar para representar un estado de señal en particular mediante un medio físico determinado

Capas

Nivel físico
Artículo principal: Capa física

Es la primera capa del Modelo OSI. Es la que se encarga de la topología de red y de las conexiones globales de la computadora hacia la red, tanto en lo que se refiere al medio físico como a la forma en la que se transmite la información.

Sus principales funciones se pueden resumir como:
Definir el medio o medios físicos por los que va a viajar la comunicación: cable de pares trenzados (o no, como en RS232/EIA232), cable coaxial, guías de onda, aire, fibra óptica.
Definir las características materiales (componentes y conectores mecánicos) y eléctricas (niveles de tensión) que se van a usar en la transmisión de los datos por los medios físicos.
Definir las características funcionales de la interfaz (establecimiento, mantenimiento y liberación del enlace físico).
Transmitir el flujo de bits a través del medio.
Manejar las señales eléctricas del medio de transmisión, polos en un enchufe, etc.
Garantizar la conexión (aunque no la fiabilidad de dicha conexión).


Nivel de enlace de datos
Artículo principal: Capa de enlace de datos

Esta capa se ocupa del direccionamiento físico, del acceso al medio, de la detección de errores, de la distribución ordenada de tramas y del control del flujo. Es uno de los aspectos más importantes que revisar en el momento de conectar dos ordenadores, ya que está entre la capa 1 y 3 como parte esencial para la creación de sus protocolos básicos (MAC, IP), para regular la forma de la conexión entre computadoras así determinando el paso de tramas (trama = unidad de medida de la información en esta capa, que no es más que la segmentación de los datos trasladándolos por medio de paquetes), verificando su integridad, y corrigiendo errores, por lo cual es importante mantener una excelente adecuación al medio físico (los más usados son el cable UTP, par trenzado o de 8 hilos), con el medio de red que redirecciona las conexiones mediante un router. Dadas estas situaciones cabe recalcar que el dispositivo que usa la capa de enlace es el Switch que se encarga de recibir los datos del router y enviar cada uno de estos a sus respectivos destinatarios (servidor -> computador cliente o algún otro dispositivo que reciba información como teléfonos móviles, tabletas y diferentes dispositivos con acceso a la red, etc.), dada esta situación se determina como el medio que se encarga de la corrección de errores, manejo de tramas, protocolización de datos (se llaman protocolos a las reglas que debe seguir cualquier capa del modelo OSI).

Nivel de red
Artículo principal: Capa de red

Se encarga de identificar el enrutamiento existente entre una o más redes. Las unidades de información se denominan paquetes, y se pueden clasificar en protocolos enrutables y protocolos de enrutamiento.
Enrutables: viajan con los paquetes (IP, IPX, APPLETALK)
Enrutamiento: permiten seleccionar las rutas (RIP, IGRP, EIGRP, OSPF, BGP)

El objetivo de la capa de red es hacer que los datos lleguen desde el origen al destino, aún cuando ambos no estén conectados directamente. Los dispositivos que facilitan tal tarea se denominan encaminadores o enrutadores, aunque es más frecuente encontrarlo con el nombre en inglés routers. Los routers trabajan en esta capa, aunque pueden actuar como switch de nivel 2 en determinados casos, dependiendo de la función que se le asigne. Los firewalls actúan sobre esta capa principalmente, para descartar direcciones de máquinas.

En este nivel se realiza el direccionamiento lógico y la determinación de la ruta de los datos hasta su receptor final.

Nivel de transporte
Artículo principal: Capa de transporte

Capa encargada de efectuar el transporte de los datos (que se encuentran dentro del paquete) de la máquina origen a la de destino, independizándolo del tipo de red física que esté utilizando. La PDU de la capa 4 se llama Segmento o Datagrama, dependiendo de si corresponde a TCP o UDP. Sus protocolos son TCP y UDP; el primero orientado a conexión y el otro sin conexión. Trabajan, por lo tanto, con puertos lógicos y junto con la capa red dan forma a los conocidos como Sockets IP:Puerto (191.16.200.54:80).

Nivel de sesión
Artículo principal: Capa de sesión

Esta capa es la que se encarga de mantener y controlar el enlace establecido entre dos computadores que están transmitiendo datos de cualquier índole. Por lo tanto, el servicio provisto por esta capa es la capacidad de asegurar que, dada una sesión establecida entre dos máquinas, la misma se pueda efectuar para las operaciones definidas de principio a fin, reanudándolas en caso de interrupción. En muchos casos, los servicios de la capa de sesión son parcial o totalmente prescindibles.

Nivel de presentación
Artículo principal: Capa de presentación

El objetivo es encargarse de la representación de la información, de manera que aunque distintos equipos puedan tener diferentes representaciones internas de caracteres los datos lleguen de manera reconocible.

Esta capa es la primera en trabajar más el contenido de la comunicación que el cómo se establece la misma. En ella se tratan aspectos tales como la semántica y la sintaxis de los datos transmitidos, ya que distintas computadoras pueden tener diferentes formas de manejarlas.

Esta capa también permite cifrar los datos y comprimirlos. Por lo tanto, podría decirse que esta capa actúa como un traductor.
Nivel de aplicación
Artículo principal: Capa de aplicación

Ofrece a las aplicaciones la posibilidad de acceder a los servicios de las demás capas y define los protocolos que utilizan las aplicaciones para intercambiar datos, como correo electrónico (Post Office Protocol y SMTP), gestores de bases de datos y servidor de ficheros (FTP), por UDP pueden viajar (DNS y Routing Information Protocol). Hay tantos protocolos como aplicaciones distintas y puesto que continuamente se desarrollan nuevas aplicaciones el número de protocolos crece sin parar.

Cabe aclarar que el usuario normalmente no interactúa directamente con el nivel de aplicación. Suele interactuar con programas que a su vez interactúan con el nivel de aplicación pero ocultando la complejidad subyacente.












Regla mnemotécnica

A fin de facilitar el aprendizaje y memorización de los nombres de las capas que componen el modelo, una regla sencilla es memorizarlas como una sigla: APSTREFel cual se define de la siguiente manera:AplicaciónPresentaciónSesiónTransporteRedEnlace de datosFísica

MODELO OSI

MODELO OSI

El modelo de interconexión de sistemas abiertos (ISO/IEC 7498-1), más conocido como “modelo OSI” (en inglés, OpenSystem Interconnection), es el modelo de red descriptivo, que fue creado en el año 1980 por la Organización Internacional de Normalización (ISO, International Organization for Standardization).



Es un marco de referencia para la definición de arquitecturas en la interconexión de los sistemas de comunicaciones.


Pila de capas o niveles del modelo OSI (Open System Interconnection).


Historia

A principios de 1980 el desarrollo de redes originó desorden en muchos sentidos. Se produjo un enorme crecimiento en la cantidad y tamaño de las redes. A medida que las empresas tomaron conciencia de las ventajas de usar tecnologías de conexión, las redes se agregaban o expandían a casi la misma velocidad a la que se introducían las nuevas tecnologías de red.

Para mediados de 1980, estas empresas comenzaron a sufrir las consecuencias de la rápida expansión. De la misma forma en que las personas que no hablan un mismo idioma tienen dificultades para comunicarse, las redes que utilizaban diferentes especificaciones e implementaciones tenían dificultades para intercambiar información. 

El mismo problema surgía con las empresas que desarrollaban tecnologías de conexiones privadas o propietarias. "Propietario" significa que una sola empresa o un pequeño grupo de empresas controlan todo uso de la tecnología. Las tecnologías de conexión que respetaban reglas propietarias en forma estricta no podían comunicarse con tecnologías que usaban reglas propietarias diferentes.



Para enfrentar el problema de incompatibilidad de redes, la ISO investigó modelos de conexión como la red de Digital Equipment Corporation (DECnet), la Arquitectura de Sistemas de Red (Systems Network Architecture, SNA) y TCP/IP, a fin de encontrar un conjunto de reglas aplicables de forma general a todas las redes. Con base en esta investigación, la ISO desarrolló un modelo de red que ayuda a los fabricantes a crear redes que sean compatibles con otras redes.

Modelo de referencia OSI

Fue desarrollado en 1980 por la ISO, una federación global de organizaciones que representa aproximadamente a 130 países. El núcleo de este estándar es el modelo de referencia OSI, una normativa formada por siete capas que define las diferentes fases por las que deben pasar los datos para viajar de un dispositivo a otro sobre una red de comunicaciones.

Siguiendo el esquema de este modelo se crearon numerosos protocolos. El advenimiento de protocolos más flexibles donde las capas no están tan desmarcadas y la correspondencia con los niveles no era tan clara puso a este esquema en un segundo plano. Sin embargo se usa en la enseñanza como una manera de mostrar cómo puede estructurarse una "pila" de protocolos de comunicaciones.

El modelo específica el protocolo que debe usarse en cada capa, y suele hablarse de modelo de referencia ya que se usa como una gran herramienta para la enseñanza de comunicación de redes.

Se trata de una normativa estandarizada útil debido a la existencia de muchas tecnologías, fabricantes y compañías dentro del mundo de las comunicaciones, y al estar en continua expansión, se tuvo que crear un método para que todos pudieran entenderse de algún modo, incluso cuando las tecnologías no coincidieran. De este modo, no importa la localización geográfica o el lenguaje utilizado. Todo el mundo debe atenerse a unas normas mínimas para poder comunicarse entre sí. Esto es sobre todo importante cuando hablamos de la red de redes, es decir, Internet.

Este modelo está dividido en siete (7) capas o niveles