Problems copying large files using NCP vs Novell CIFS

  • 7016266
  • 06-Mar-2015
  • 25-Aug-2016

Environment

OES 11 SP2
Novell Client 2 SP3 for Windows (NCP client)
Novell CIFS for Linux

Situation

Copying large files located on a Novell OES server using the NCP client is slower than copying the same files with Novell CIFS. The performance of the NCP file copy can be as much as one third slower than the CIFS file copy.

Large file copy fails with error: Error 0x80070032: The request is not supported.

Resolution

Upgrade to Novell Client 2 SP4 for Windows and the July 2015 maintenance update for OES 11 SP2. In these versions of software, file operation performance is greatly improved, due to new functionality enabling larger data reads and writes to occur.

Cause

Multiple factors contribute to the performance differences between the NCP and CIFS protocols. Primarily, the CIFS protocol uses larger packet sizes when copying data. Because each packet contains more data, less packets are required to complete the copy operation.

In addition, CIFS opens multiple streams between the client and the server, while NCP depends on a single connection and stream. While the available bandwidth does not change, and can be completely filled by whatever streams are created, there can be performance gains due to multiple streams efficiently using the time between requests.

Additional Information

Beginning with Novell Client 2 SP4 for Windows and the July 2015 maintenance update for OES 11 SP2, Novell has implemented two new APIs designed to improve performance when reading and writing files from a Novell file server:
  • NCP 87,72 (Read with 64-bit offset and 32-bit read size)
  • NCP 87,73 (Write with 64-bit offset and 32-bit write size) 
These NCPs will be used instead of NCP 87,64 and NCP 87,65 when the Novell Client determines that the Novell file server supports the new APIs (i.e. when the server returns a value of "3" for the 64BitOffsetsSupportedFlag in NCP 23,17). Novell Client 2 SP4 will continue to work as usual with existing shipping servers with legacy servers.

As a result of these improvements, if file reads and writes are for large amounts of data, up to 1MB TCP transfers will occur in response to a single NCP 87,72 or NCP 87,73 request.  This results in a performance increase when large file copies / large file reads or writes are being performed, as compared to the previous 64KB limit.