NetWare Core Protocol
| Industry | Software, Networking |
|---|---|
| Products | NetWare Core Protocol (NCP), Novell NetWare |
The NetWare Core Protocol (NCP) serves as a network communication protocol developed by Novell, Inc., predominantly utilized within the client-server operating system Novell NetWare. Initially designed to support MS-DOS clients, its compatibility later extended to various platforms such as Microsoft Windows, classic Mac OS, Linux, Windows NT, Mac OS X, and multiple Unix variants.
NCP enables network-based services including file and print access, directory management, clock synchronization, messaging, remote command execution, among others. While it was originally built upon the lightweight IPX/SPX protocol suite, it has incorporated support for TCP/IP since 1991.
Data synchronization across directory service servers in Novell eDirectory is achieved through NCP.
Technical information
The initial server implementation based on the IPX/SPX protocol stack was exclusive to Novell NetWare but has since become outdated. The modern TCP/IP variant operates over TCP/UDP port 524 and employs the SLP for resolving network names.
Within IPX/SPX environments, NCP communicated directly over the base IPX protocol using Packet Type 17; clients connected via socket number 0x4003, whereas servers used socket 0x0451.
The structure of an NCP protocol data unit (PDU) encompasses several fields: NCP type, sequence number, connection identifier, task identifier, completion code (present in responses), connection status (in responses), and the data payload.
NCP type codes specify the nature of operations:
| Value | Operation |
|---|---|
| 0x1111 | Establish Service Connection |
| 0x2222 | Service Request |
| 0x3333 | Service Response |
| 0x5555 | Terminate Service Connection |
| 0x7777 | Burst Transfer Mode |
| 0x9999 | Request Processing (Server Busy) |
Each request is marked with a Sequence Number that cycles modulo 256. The Connection Number identifies distinct client sessions; early versions up to NetWare 2.x supported a maximum of 255 connections using a single-byte field, which was later expanded to two bytes. The Task Number usually holds the value 3 for requests and 1 for responses. The Data segment starts with an NCP Function code that specifies the requested service.
Prominent NCP Functions include:
| Number | Function |
|---|---|
| 0 | User Object Login |
| 1 | Modify User Password |
| 14 | Retrieve Disk Usage |
| 15 | Enumerate File Information |
| 16 | Update File Information |
| 50 | Create Bindery Object |
| 51 | Remove Bindery Object |
| 100 | Initialize Queue |
| 101 | Delete Queue |
| 200 | Verify Console Privileges |
| 202 | Adjust File Server Date and Time |
| 211 | Shut Down File Server |
| 212 | Obtain File System Statistics |
The size and format of the data field depend on the specific NCP Function executed.
Client-side implementations
- Novell Client for Windows Vista
- Novell Client for Windows 2000/XP/2003
- Novell Client for Windows 95/98
- Novell Client for Linux
- Novell’s discontinued NetWare Clients for DOS
- Prosoft Engineering’s NetWare Client for Mac OS X (archived)
- ncpfs, an open-source Linux NCP client
- Microsoft’s Client Service for NetWare
References
External links
- NCP protocol specification (excluding NetWare RPC specifics)
- Wireshark Guide – Details on NCP packet structure
- Guide on connecting Mac OS X to Novell