NetWare Core Protocol
![]() | This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. (November 2010) |
The NetWare Core Protocol (NCP) is a network protocol used in some products from Novell, Inc. It is usually associated with the client-server operating system Novell NetWare which supported primarily MS-DOS client stations, but more recently a support of other platforms such as Microsoft Windows, Mac OS, Linux, Windows NT and various flavors of Unix was added.
The NCP is used to access file, print, directory, clock synchronization, messaging, remote command execution and other network service functions. It originally took advantage of an easy network configuration and a little memory footprint of the IPX/SPX protocol stack. Since mid-1990s the TCP/IP implementation is available.
Novell eDirectory uses NCP for synchronizing data changes between the servers in a directory service tree.
Technical Information
The original IPX/SPX implementation was provided only for Novell NetWare platform and now is obsolete. The TCP/IP implementation uses TCP/UDP port 524 and relies on SLP for name resolution.
For NCP operation in IPX/SPX networks the bare IPX protocol was used with Packet Type field set to 17. On the workstation (client station) side IPX the socket number of 0x4003 was used, on the server side the socket number of 0x0451.
The NCP PDU has the following structure:
Octets | Field |
---|---|
2 | NCP type |
1 | Sequence Number |
1 | Connection Number, lower octet |
1 | Task Number |
1 | Connection Number, higher octet |
1 | Completion Code (only in Reply packet) |
1 | Connection Status (only in Reply packet) |
var | Data |
The NCP Type field determines the type of operation:
Value | Meaning |
---|---|
0x1111 | Create a Service Connection |
0x2222 | Service Request |
0x3333 | Service Reply |
0x5555 | Destroy Service Connection |
0x7777 | Burst Mode Transfer |
0x9999 | Request Being Processed (Server Busy) |
Individual requests are identified by the Sequence Number (modulo 256). The Connection Number identifies an individual client station connection on the server. Novell Netware servers of version up to 2.x supported up to 255 connections and the Connection Number occupied only 1 octet. Later it was extended to 2 octets. Task number has value 3 in requests and 1 in replies. The Data field starts with NCP Function number octet which distinguishes individual services. The contents and the length of the rest of the Data field depends on the NCP Function.
Client-side implementations
- Novell Client for Windows Vista from Novell.
- Novell Client for Windows 2000/XP/2003 from Novell.
- Novell Client for Windows 95/98 from Novell.
- Novell Client for Linux from Novell.
- NetWare Clients for DOS from Novell - no longer supported.
- NetWare Client for Mac OS X from Prosoft Engineering.
- ncpfs,[dead link] an open-source NCP client implementation for Linux.
- Client Service for NetWare from Microsoft.
External links
- NCP specification without description of underlying Netware RPC framework
- Wireshark (an open source protocol analyzer) Documentation - Fields of the NCP packet
- Making Mac OS X play nicely with Novell