Sequenced Packet Exchange

SPX (del inglés Sequenced Packet Exchange - Intercambio de Paquetes Secuenciados) es un antiguo protocolo de red de Novell perteneciente al sistema operativo NetWare utilizado para controlar la entrega de datos a través de una red de área local (y en menor medida en una WAN) mediante el protocolo IPX. Junto con el protocolo IPX (también de Novell) forma la pila de protocolos IPX/SPX que es similar al TCP/IP.


Historia

Surgió en los años 80 como respuesta a la demanda que había en aplicaciones con servicios orientados a conexión, y se diseñó basándose en un protocolo creado años atrás por Xerox denominado SPP (Sequenced Packet Protocol - Protocolo de Paquetes Secuenciados).

En 1991, se creó una versión mejorada denominada SPX II con el objetivo de resolver diversos problemas que surgieron con la versión anterior y añadir nuevas funcionalidades como el uso de paquetes de mayor tamaño o la implementación de la ventana deslizante.

Aunque actualmente no se utilice mucho, tiene soporte para varias plataformas (NetWare, DOS, OS/2, Linux, Windows).

Datos técnicos

Esquema de un paquete del protocolo SPX.
Bit 0   Bit 8   Bit 16  
                 
Suma de verificación Cabecera IPX

(30 bytes)

Largo
Control de transporte   Tipo de paquete  
Red de destino
Host de destino
Socket de destino
Red origen
Host origen
Socket origen
Tipo de flujo de datos de control de la transmisión Cabecera SPX

(12 bytes)

ID conexión origen
ID conexión destino
Número de secuencia
Número de reconocimiento
Número de asignación
0–546 bytes de datos Información

Es un protocolo de la capa de transporte orientado a comunicaciones con conexión que se encarga de verificar que un mensaje enviado a través de una red llega intacto a su destino. Para ello, utiliza como mensajero el protocolo IPX (el cual por sí solo carece de fiabilidad durante el transporte de paquetes) permitiendo establecer y mantener conexiones además de enviar datos.

Cómo funciona

El protocolo se encarga de garantizar la integridad de los paquetes enviados y de los paquetes de confirmación recibidos. También realiza un control sobre el flujo de datos, regulando la velocidad a la que se envían y reciben los paquetes y reduciendo el riesgo de corrupción.

Para controlar el envío de los paquetes, SPX espera un mensaje de confirmación, y si éste no se recibe, vuelve a retransmitir el paquete un número determinado de veces. Si tras ese número de veces, aún sigue sin recibirse una respuesta con el mensaje de confirmación, el protocolo da por asumido que ha habido un fallo de conexión, y cierra la conexión. Pero este control no se realiza sobre todos los paquetes que se envían o se reciben, si no que se lleva una especie de lista de confirmación en una ventana. Cuando se descubre un error en un paquete que es enviado o recibido dentro de esa ventana, todos los paquetes enviados o recibidos durante ese tiempo se marcan como malos y se vuelven a retransmitir.

Estructura

La cabecera de los paquetes se compone de 12 bytes conectados sobre una cabecera IPX de 30 bytes. Esos 12 bytes contienen todas las estructuras que SPX utiliza para establecer y mantener conexiones y para garantizar el envío secuencial de datos.

Desventajas

Las siguientes desventajas unidas al pobre rendimiento del protocolo, provocaron la creación del protocolo SPX II:

  • Aunque SPX fue diseñado para garantizar la fiabilidad de transferencia de datos a través de una red, posee un rendimiento pobre en comparación con IPX.
  • Es inherentemente más complejo que IPX debido a que tiene que garantizar los envíos y el mantenimiento de una conexión.
  • No implementa la ventana deslizante (envío de otro paquete de datos antes de recibir un paquete de confirmación del paquete previo enviado)
  • No proporciona un mecanismo ordenado de liberación de conexión, por lo que se pueden perder datos si hay un fallo de conexión.
  • Puede provocar una congestión de red por las razones anteriores.

Véase también

Referencias

  • Ogletree, Terry William (2002). Upgrading and Repairing Networks. Que Publishing. ISBN 0-7897-2557-6.

Enlaces externos

Este artículo ha sido escrito por Wikipedia. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.