[go: nahoru, domu]

Jump to content

NetWare Core Protocol: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
No edit summary
 
(36 intermediate revisions by 28 users not shown)
Line 1: Line 1:
{{Short description|Network protocol}}
The '''NetWare Core Protocol''' ('''NCP''') is a network protocol used in some products from [[Novell, Inc.]] It is usually associated with the [[Novell NetWare|NetWare]] operating system, but parts of it have been implemented on other platforms such as [[Linux]], [[Windows NT]] and various flavors of [[Unix]].
{{no footnotes|date=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 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.<ref name="Novel 4.11 Security" />


It is used to access [[File server|file]], [[Print server|print]], [[Directory service|directory]], [[clock synchronization]], senthilguru messaging, remote command execution and other network service functions. [[TCP/IP]] and [[IPX/SPX]] (obsoleted, [[technical support]] is provided only for [[Novell NetWare|NetWare]] platform) are the supported underlying protocols. [[TCP/IP]] implementations use [[Transmission Control Protocol|TCP]]/[[User Datagram Protocol|UDP]] port 524 and rely on [[Service Location Protocol|SLP]] for name resolution.
The NCP is used to access [[File server|file]], [[Print server|print]], [[Directory service|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.<ref name="Novel 4.11 Security">{{cite web
| url = https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=f4db398cd69cbea79e4f5b104b9d1d2358c64b33
| title = Final Evaluation Report Novell, Incorporated NetWare 4.11 Server
| date = 22 June 1998
| publisher = NATIONAL COMPUTER SECURITY CENTER
| access-date = 2023-02-08
}}, page 6</ref>


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


== Server-side implementations ==
== Technical information ==

* [[Novell Open Enterprise Server]]
The original [[IPX/SPX]] server implementation was provided only for [[Novell NetWare]] platform and now is obsolete. The [[TCP/IP]] implementation uses [[Transmission Control Protocol|TCP]]/[[User Datagram Protocol|UDP]] port 524 and relies on [[Service Location Protocol|SLP]] for name resolution.
* [[Novell NetWare]]

* [http://www.compu-art.de/mars_nwe/ mars_nwe], an open-source NetWare 3.x emulator for [[Linux]].
For NCP operation in [[IPX/SPX]] networks the bare [[Internetwork Packet Exchange|IPX]] protocol was used with Packet Type field set to 17. On the workstation (client station) side the IPX [[Internetwork Packet Exchange#IPX addressing|socket number]] of 0x4003 was used, on the server side the socket number of 0x0451.
* File and Print Services for NetWare from [[Microsoft]]

* various [[Network-attached storage|NAS]] devices
The NCP [[protocol data unit|PDU]] has the following structure:

{| class="wikitable"
! 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:<ref>{{Cite web
| url = https://support.novell.com/docs/Tids/Solutions/10084809.html
| title = How to quickly identify error conditions with Ethereal
| date = 15 Jul 2003
| access-date = 2023-02-08
}}</ref>

{| class="wikitable"
! 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.

{| class="wikitable" style="text-align:left;"
|-
! 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 ==
== Client-side implementations ==
Line 17: Line 294:
* [http://www.novell.com/products/clients/windows/win9598/overview.html Novell Client for Windows 95/98] from Novell.
* [http://www.novell.com/products/clients/windows/win9598/overview.html Novell Client for Windows 95/98] from Novell.
* [http://www.novell.com/products/clients/linux/overview.html Novell Client for Linux] from Novell.
* [http://www.novell.com/products/clients/linux/overview.html Novell Client for Linux] from Novell.
* [http://www.novell.com/coolsolutions/tools/13555.html NetWare Clients for DOS] from Novell - no longer supported.
* [http://www.novell.com/coolsolutions/tools/13555.html NetWare Clients for DOS] {{Webarchive|url=https://web.archive.org/web/20080720012911/http://www.novell.com/coolsolutions/tools/13555.html |date=2008-07-20 }} from Novell - no longer supported.
* [http://www.prosofteng.com/products/netware_client_x.php NetWare Client for Mac OS X] from Prosoft Engineering.
* [https://web.archive.org/web/20080419065948/http://www.prosofteng.com/products/netware_client_x.php NetWare Client for Mac OS X] from Prosoft Engineering.
* [http://freshmeat.net/projects/ncpfs/ ncpfs], an open-source NCP client implementation for [[Linux]].
* [https://web.archive.org/web/20080515203246/http://freshmeat.net/projects/ncpfs/ ncpfs], an open-source NCP client implementation for [[Linux]].
* Client Service for NetWare from [[Microsoft]].
* Client Service for NetWare from [[Microsoft]].

== References ==
<references />


== External links ==
== External links ==
* [http://forge.novell.com/modules/xfmod/project/?ncp NCP specification]
* [http://www.novell.com/developer/ndk/netware_core_protocols.html NCP specification] without description of underlying Netware [[remote procedure call|RPC]] framework
* [http://www.wireshark.org/docs/dfref/n/ncp.html Wireshark (an open source protocol analyzer) Documentation - Fields of the NCP packet]
* [http://www.wireshark.org/docs/dfref/n/ncp.html Wireshark (an open source protocol analyzer) Documentation - Fields of the NCP packet]
* [http://www.computerworld.com/action/article.do?command=printArticleBasic&articleId=9053138 Making Mac OS X play nicely with Novell]
* [https://www.computerworld.com/article/2538211/making-mac-os-x-play-nicely-with-novell.html Making Mac OS X play nicely with Novell]

{{File systems}}


[[Category:Network file systems]]
[[Category:Network file systems]]
[[Category:Network protocols]]
[[Category:Network protocols]]
[[Category:Netware]]
[[Category:Novell NetWare]]
[[Category:Presentation layer protocols]]
[[Category:Presentation layer protocols]]

[[de:NetWare Core Protocol]]
[[es:NetWare Core Protocol]]
[[fr:NetWare Core Protocol]]
[[it:NetWare Core Protocol]]
[[pl:NetWare Core Protocol]]
[[ru:NCP]]

Latest revision as of 05:02, 1 June 2024

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.

External links[edit]