A Made IT projecthttp://www.made-it.com info@made-it.com |
Short description
This document describes the protocol stacked used by Novell in their NetWare servers. Topics covered are: NDS, NetWare Life, NVT, NCP, SAP, Burst Mode, SPX, SPX2, RIP, NLSP, IPX.
Introduction
Novell has developed his own network-protocol stack usually refered to as SPX/IPX, which is derived from the Xerox XNS network protocol family. Where IPX is the Network-Layer protocol and SPX is the Transport-layer protocol. To give you a better view of the Novell networking stack we will also describe the upper layer protocols.
An IPX network is a server-based network. Which means you always need atleast one server to have a functional network (ofcourse several workstations are possible). All interactions are handled by a server.
Addressing
Nodes are identified by a 6 byte number and a 4 byte network ID. The node ID is assigned by the underlying layers (e.g. the MAC address from ethernet network cards).
The network ID is given by the Novell server to a workstation and has to be set in the file server by the administrator. The network number is also used by routers to forward packets to the right network.
The Node-ID of a server is usually 00-00-00-00-00-01.
Sockets are used to indicate different applications over the same network- and node-ID. IPX/SPX supports a maximum of 20 sockets on a single node.
Devices on a network
Novell network compared to OSI
7 | Application Layer | NDS NetWare Life NVT | |
---|---|---|---|
6 | Presentation Layer | NCP | |
5 | Session Layer | SAP | Burst Mode |
4 | Transport Layer | SPX SPX2 | |
3 | Network Layer | RIP NLSP | |
IPX |
Layer 7
NDS (NetWare Directory Service) is a relational database that can be distributed across the network, which makes it possible to share services globaly.
NetWare Life [META]
NVT (NetWare Virtual Terminal)
Layer 6
NCP (NetWare Core Protocol) defines the control and service request encoding for the interaction between servers and clients.
Layer 5
SAP (Service Advertisement Protocol) allows nodes to advertise their IPX addresses and services. These packets are send every 60 seconds. Clients use SAP to request the 'nearest server' when first logging on to the network. And servers use SAP to advertise their services. A server sends SAP messages to advertising its services as living on its internal network. They also send out RIP packets announcing that they know how to get to this internal network. SAP service-numbers at ISI.EDU
Burst Mode [META]
Layer 4
SPX (Sequence Packet Exchange) is a connection oriented protocol that ensures correct data delivery. It controls the integrity of packets and acknowledges packets received. When no acknowledge is received a packet is retransmitted, until a fixed number of retransmits has been done. When there is still no acknowlegde a network failure is assumed and the connection broken. An SPX packet looks like this:
CC | DST | SrcConnID | DestConnID | SeqNr | AckNr | AllocNr | data |
1 bytes | 1 bytes | 2 bytes | 2 bytes | 2 bytes | 2 byte | 2 byte | 534 bytes |
SPX II is offered as of NetWare 4. It is backward compatible with SPX and offers additional true sliding-window flow-control mechanism. There is now also the possiblity to send a negative ACK (NAK).
Another change is the one in packet size. This is now as large as the supported system can handle, so no limit to 576 bytes. And last there is added more management features and options that allow future expansion of the protocol.
Layer 3
RIP (Routing Information Protocol) used for the exchange of routing information. It is not identical to the RIP implementation of TCP/IP. Novell has added an extra field, which is called 'Number of Ticks' to the official XNS-protocol. RIP uses IPX for addressing purposes. The Data part of an IPX-packet containing RIP looks like this:
Operation | NetID | NrHops | NrTicks |
2 bytes | 4 bytes | 2 bytes | 2 bytes |
NLSP (NetWare Link Services Protocol) is a Novell link state routing protocol for IPX networks. It is derived from the IS-IS protocol as defined by the ISO. Information is only broadcasted when a change occures, so no periodical broadcasts happen.
IPX (Internetwork Packet Exchange) is a peer-to-peer protocol. It was derived from the XNS Internet Datagram protocol. IPX is a connectionless protocol. It's only concern is internetwork addressing and intranode addressing (sockets). IPX completely relies on the network hardware for the actual node addressing. Novell has reserved several sockets. To name a view:
Socket | Description |
---|---|
451h | NetWare Core Protocol |
452h | Service Advertising Protocol |
453h | Routing Information Protocol |
455h | NetBIOS |
456h | Diagnostics |
4000h-6000h | Free sockets, for interaction between file servers and other network communications |
The IPX-header:
Checksum | Length | TC | PktType | DestNetID | DestNodeID | DestSocketID | SrcNodeID | SrcNetID | SrcSocketID | Data |
2 bytes | 2 bytes | 1 bytes | 1 bytes | 4 bytes | 6 byte | 2 byte | 4 bytes | 6 bytes | 2 bytes | 546 bytes |
Notes on IPX/SPX networking
Novell frame types on ethernet:
Destination Address | Source Address | Type | Data Unit |
6 bytes | 6 bytes | 2 bytes | 46-1500 bytes |
Destination Address | Source Address | Length | Data Unit |
6 bytes | 6 bytes | 2 bytes | 46-1500 bytes |
Destination Address | Source Address | Length | DSAP | SSAP | CONTROL | Data Unit |
6 bytes | 6 bytes | 2 bytes | 1 byte | 1 byte | 1 or 2 bytes | 42-1496 bytes |
Destination Address | Source Address | Length | DSAP (AA) | SSAP (AA) | CONTROL (03) | SNAP | Data Unit |
6 bytes | 6 bytes | 2 bytes | 1 byte | 1 byte | 1 byte | 5 bytes | 38-1492 bytes |