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 originally supported primarily MS-DOS client stations, but later support for other platforms such as Microsoft Windows, the classic Mac OS, Linux, Windows NT, Mac OS X, and various flavors of Unix was added.[1]

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 small memory footprint of the IPX/SPX protocol stack. Since 1991 the TCP/IP implementation is available.[1]

Novell eDirectory uses NCP for synchronizing data changes between the servers in a directory service tree.

Technical information

edit

The original IPX/SPX server 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 the IPX 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:[2]

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.

Number Function
0 Login User Object
1 Change User Password
2 Map User to Station Set
3 Map Object to Number
4 Map Number to Object
5 Get Station's Logged Information
8 Map Number to Group Name
9 Get Member Set M of Group G
10 Enter Login Area
12 Verify Network Serial Number
13 Log Network Message
14 Get Disk Utilization
15 Scan File Information
16 Set File Information
17 Get File Server Information
18 Get Network Serial Number
19 Get Internet Address
20 Login Object
21 Get Object Connection List
22 Get Station's Logged Information
23 Get Encryption Key
24 Login Object Encrypted
31 Get Connection List from Object
50 Create Bindery Object
51 Delete Bindery Object
52 Rename Object
53 Get Bindery Object Id
54 Get Bindery Object Name
55 Scan Bindery Object
56 Change Bindery Object Security
57 Create Property
58 Delete Property
59 Change Bindery Property Security
60 Scan Property
61 Read Property Value
62 Write Property Value
63 Verify Bindery Object Password
64 Change Bindery Object Password
65 Add Bindery Object to Set
66 Delete Bindery Object from Set
67 Is Bindery Object In Set?
68 Close Bindery
69 Open Bindery
70 Get Bindery Access Level
71 Sacn Bindery Object Trustee Paths
72 Get Bindery Object Access Level
73 Is Calling Station a Manager?
74 Verify Bindery Object Password Encrypted
75 Change Bindery Object Password Encrypted
76 List Relations of an Object
100 Create Queue
101 Destroy Queue
102 Read Queue Current Status
103 Set Queue Current Status
104 Create Queue Job and File
105 Close File and Start Queue Job
106 Remove Job from Queue
107 Get Queue Job List
108 Read Queue Job Entry
109 Change Queue Job Entry
110 Change Queue Job Position
111 Attach Queue Server to Queue
112 Detach Queue Server from Queue
113 Service Queue Job
114 Finish Servicing Queue Job
115 Abort Servicing Queue Job
116 Change to Client's Rights
117 Restore Queue Server Rights
118 Read Queue Server Current Status
119 Set Queue Server Current Status
120 Get Queue Job Size
150 Get Current Account Status
151 Submit Account Charge
152 Submit Account Hold
153 Submit Account Note
200 Check Console Privileges
201 Get File Server Description Strings
202 Set File Server Date and Time
203 Disable File Server Login
204 Enable File Server Login
205 Get File Server Login Status
206 Purge All Erased Files
207 Disable Transaction Tracking
208 Enable Transaction Tracking
209 Set Console Broadcast
210 Clear Connection Number
211 Down File Server
212 Get File System Statistics
213 TTS Get Statistics
214 Get Disk Cache Statistics
215 Get Drive Mapping Table
216 Get Physical Disk Statistics
217 Get Disk Channel Statistics
218 Get Connection's Task Information
219 Get Connection's Open Files
220 Get Connection's Using a File
221 Get Physical Record Locks by Connection and File
222 Get Physical Record Locks by File
223 Get Logical Records by Connection
224 Get Logical Record Information
225 Get Connection's Semaphores
226 Get Semaphore Information
227 Get LAN Driver's Configuration Information
229 Get Connection's Usage Statistics
230 Get Object's Remaining Disk Space
231 Get File Server LAN I/O Statistics
232 Get File Server Misc Information
233 Get Volume Information

The contents and the length of the rest of the Data field depends on the NCP Function.

Client-side implementations

edit

References

edit
  1. ^ a b "Final Evaluation Report Novell, Incorporated NetWare 4.11 Server". NATIONAL COMPUTER SECURITY CENTER. 22 June 1998. Retrieved 2023-02-08., page 6
  2. ^ "How to quickly identify error conditions with Ethereal". 15 Jul 2003. Retrieved 2023-02-08.
edit