Open In App

What is SPX (Sequenced Packet Exchange)?

Last Updated : 10 Feb, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Prerequisite: Introduction to Novell NetWare

NetWare, developed by Novell is a NOS that expands to Network Operating systems. NOS is a special kind of operating system which helps the personal computers in a network (eg: computers connected in LAN) to share files and resources like printers. They make PCs connected over a network to act in a client-server architecture. The IPX/SPX is the protocol used in the NetWare OS. 

The IPX protocol corresponds to the network layer and the SPX protocol on top of it corresponds to the transport layer in the OSI model. The IPX/SPX are similar to TCP/IP where IPX takes up the role of IP and SPX takes up the role of TCP.

SPX Protocol

The SPX protocol was developed by Novell for Local Area Networks. It expands to Sequenced Packet Exchange and it is connection-oriented. It enables the exchange of information between the clients and the server in a network with the help of IPX protocol. The IPX/SPX protocol is derived from the SPP (Sequenced Packet Protocol) which was defined in Xerox Network Systems. The SPP is a connectionless protocol while the SPX is connection-oriented.

Structure of SPX packets

Format of SPX data packet

Format of SPX data packet

The SPX data packet contains a 42-byte header and data may vary from 0 to 534 bytes. The minimum length is 42 bytes, ie., without any data. The first 30 bytes are taken from the IPX header and the rest of the 12 bytes are new seven fields (mentioned as 1…7 in the above diagram) belonging to SPX.

The fields considered from the IPX header are as follows:

Checksum

The checksums are required to maintain the integrity of the data exchanged. The source and destinations derive the checksums in some methods. The source appends it to the header and sends it to the destination. On the other hand, the destination compares the checksum calculated by itself against the one in the packet’s header. If there is a mismatch then data is said to be corrupt. Usually, 16-bit checksums are used in networking protocols. IPX also uses 2 bytes for checksum in the header. If the hex value of FFFF is set, then the checksum is not used.

Length

This denotes the total length (header + data) of the packet exchanged. It consumes 2 bytes.

Transport Control

This is a 1-byte field that is used to count the number of routers the packet has passed through. Starting from the value 0, each router that gets the packet adds ‘1’ to this field. When the packet has gone through 15 routers, the 16th router will discard the packet.

Packet type

This is used to know what service does the packet render. It also takes only 1 byte. Depending on this byte’s value, either one of the following can be the packet type :

  1. 0 – Unknown
  2. 1 – Routing Information protocol
  3. 2 – Echo packet
  4. 3 – Error packet
  5. 4 – Packet Exchange Protocol
  6. 5 – Sequenced Packet Protocol
  7. 17- NetWare Core Protocol

Source address

The address of the source of the packet is mentioned in the IPX addressing structure. It takes 12 bytes.

Destination address

The address of the destination application to which the packet has to be delivered. It should follow the IPX addressing structure. For sending data to all the computers in the network FF:FF:FF:FF:FF: FF should be specified in the destination. It takes 12 bytes.

IPX Addressing Structure

The IPX addressing structure contains three fields:

  1. Network
  2. Node
  3. Socket

The network is used to specify a network’s number in the internetwork communication. Internetwork communication allows data exchange between the nodes present in different cable connections. If the network number is mentioned as 00:00:00:00, then communication is happening within the same network. It takes 32-bits to specify the number of a network.

The node is used to uniquely identify the personal computer in that network. 

The socket is used to identify the appropriate application in the destination side to which the packet has to be delivered.

Thus, 2(checksum) + 2(Length) + 1(Transport control) + 1(Packet type) + 12(Source addr) + 12(Destination Addr) = 30 bytes of IPX header. The IPX header along with seven following fields make up the header of a SPX packet.

The seven new fields are:

  1. Connection control
  2. Datastream type
  3. Source connection ID
  4. Destination connection ID
  5. Sequence number
  6. Acknowledge number
  7. Allocation number

1. Connection control

It is a 1-byte field, which controls the bidirectional data exchange. There are four flags that will be set depending on whether the packet is for a system or an individual application. The flags are as follows:

  • END_OF_MESSAGE
  • ATTENTION
  • ACKNOWLEDGEMENT_REQUIRED
  • SYSTEM PACKET

2. Datastream type

It is a 1-byte field that denotes the type of data in the packet. The hex values 0xFE and 0xFF are reserved for specific purposes. The value 0xFE is used by the client to indicate that this is the last message and the packet delivered is known as the end-of-connection packet. If the value is set to 0xFF, then it is a system packet that acknowledges the termination of connection and this is referred to as an end-of-connection-acknowledgment packet. 

3 & 4. Source connection ID & Destination connection ID

These refer to the identification number associated with the local source and remote destination. Each takes 2 bytes, thus both together consume 4 bytes.

5. Sequence number

This is a count managed by the SPX protocol to indicate the number of packets sent in a single direction. This takes 2 bytes and the maximum value it can reach is 0xFFFF(65,535). After the maximum value, it resets to ‘0’.

6. Acknowledge number

This takes 2 bytes and indicates the sequence number expected. Here also the maximum value is 0xFFFF(65,535). The duplicate packets can be determined using acknowledge number. If the new packet’s sequence number < acknowledge number, then it is a duplicate packet and has to be discarded.

7. Allocation number

The packets will be sent till the sequence number of the local source is equal to the allocation number of the remote destination. To control the flow of data and to know the remaining buffers that are listening to SPX packets, the (allocation number of destination – acknowledge number) formula can be used. It consumes 2 bytes.

Difference Between TCP/IP and IPX/SPX

S. No.                              TCP/IP                                              IPX/SPX                                                       
1. This is the basis of the Internet. Mainly used and optimized for LAN connections and not suitable for the internet.
2. It is a connection-less protocol It is a connection-oriented protocol.
3. The addressing logic is a bit complex as it requires both MAC, IP address, and masking techniques for routing the data. The addressing logic is simpler as only the MAC address is used and is broken down into ethernet card and node addresses.
4. The network number has to be derived from the IP address. The subnet mask will be used for derivation. Network numbers are separate and do not depend on the local address of the nodes.
5. Speed is lesser compared to IPX/SPX stack. Faster stack compared to TCP/IP.


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads