When Novell created NetWare, the company designed its own suite of protocols, which is generally referred to by the name of the network layer protocol: Internetwork Packet Exchange, or IPX. The IPX protocols have never been published in public standards like TCP/IP and Ethernet. These protocols remain the property of Novell, and NetWare's core file and print services used them exclusively until 1998, when Novell belatedly incorporated TCP/IP into its native communications architecture. Independently, Microsoft engineered its own version of IPX to provide NetWare connectivity for their Windows operating systems.
IPX is based on a protocol called Internetwork Datagram Packet (IDP), which was designed for an early networking system called Xerox Networking Services (XNS). IPX is a connectionless protocol that is similar to IP in that it functions at the network layer of the OSI reference model and carries the data generated by several other protocols across the network. However, IPX and the other protocols in the IPX suite are designed for use on LANs, while the TCP/IP protocols were designed for what is now the Internet. This means that IPX does not have its own self-contained addressing system like IP, but it does perform some of the same functions as IP, such as routing traffic between different types of networks and identifying the protocol that generated the data it is carrying.
Like IP, IPX creates datagrams by adding a header to the data it receives from transport layer protocols. The IPX header is longer than that of IP—30 bytes as opposed to 20. The format of the IPX header is shown in Figure 6.5.
The fields have the following functions:
The IPX header's Transport Control field is similar to the TTL field in the IP header, except that the Transport Control field starts at a value of 0 and is incremented by each router that forwards the datagram. If the value of the field reaches 16, the packet is discarded. The IP TTL field, by contrast, starts at a value specified by the system generating the datagram and is decremented by each router. The difference in the functionality of these two fields is indicative of the differences between IPX and IP in general. IP has almost unlimited scalability, as demonstrated by the fact that a system can be configured with a relatively large TTL value. Windows-based systems, for example, use a default value of 128 for this field. IPX, which is designed for use on private networks, is limited to 16 hops, more than enough for most corporate networks, but not sufficient for Internet communications.
The Packet Type field uses codes to specify the protocol that generated the information stored in the datagram. There are codes for NetWare's transport layer protocols, such as the NetWare Core Protocol (NCP), as well as codes for NetWare's Routing Information Protocol (RIP) and Service Advertising Protocol (SAP). NetWare servers use RIP to exchange routing data and SAP to advertise their existence on the network.
As mentioned earlier, IPX, unlike IP, does not have its own addressing system. Instead, IPX uses the same hardware addresses that data-link layer protocols use to identify the computers on the network. This is possible with NetWare because the operating system is intended for use with LAN-based computers, while IP has to accommodate all of the different types of computers found on the Internet. The Destination Node Address and Source Node Address fields are each 6 bytes long, to hold the hardware addresses coded into the network interface adapters installed in the computers.
Another important difference between the hardware address and an IP address is that IP addresses identify both a network and a host on that network, while hardware addresses identify a network interface adapter only. In order for a router on a NetWare network to forward packets properly, it must know which network the destination system is on, and this requires some means to identify particular networks.
NetWare uses separate network addresses that administrators assign to the networks when they install the NetWare servers. Because NetWare is designed for private LANs, there's no reason why network addresses must be registered, as they are with IP. The network administrators only need to be sure to assign a unique address to each network. The network addresses are 4 bytes long, and the IPX header provides them in the Destination Network Address and Source Network Address fields. The combination of the network address and the node (or hardware) address provides a specific location for a computer on an internetwork.
In addition to getting the data to the correct computer, IPX must also deliver the data to the correct process on that computer. To do this, it also includes 2-byte codes in the Destination Socket and Source Socket fields to identify the function of the datagram.