Nova Patents
EP1950933A1

Data communication protocol

Abstract

Described is a data communication protocol, in which a client and server negotiate in a manner that does not require the client to retry negotiation when servers are not capable of the client-desired protocol. In one example implementation, the desired protocol is SMB 2.0 or greater. The protocol describes a create command with possibly additional context data attached for built-in extensibility, and a compound command comprising a plurality of related commands or unrelated commands. A multi-channel command requests data transfer on a separate data channel, a signed capability verification may be used to ensure that a secure connection is established, and the protocol provides the ability to transfer extended error data from the server in response to a request.

EP1950933A1, drawing sheet 1
Sheet 1 of 9

Term

Term ended

Projected expiry passed 9 December 2025, 0.8 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

15 claims: 6 independent, 9 dependent

  1. 1
    At least one computer-readable medium having computer-executable instructions, which when executed perform steps, comprising:receiving, at a server, a compound request containing a plurality of commands from a client;determining whether the compound request contains unrelated commands or related commands;and when the compound request contains unrelated commands, handling each request as a separate request;and when the compound request contains related commands, handling each request sequentially.
  2. 6
    At least one computer-readable medium according to one of the previous claims, wherein the compound request is a Server Message Block 2.0 (SMB2) compound request containing a plurality of SMB2 commands from a client and wherein the unrelated commands are unrelated commands to be performed on more than one file and wherein the related commands are related commands to be performed on a single file.
  3. 12
    In a network-computing environment, a method comprising:receiving, at a server, a Server Message Block 2.0 (SMB2) compound request containing a plurality of SMB2 commands from a client;determining whether the compound request contains unrelated commands to be performed on more than one file or related commands to be performed on a single file;when the compound request contains unrelated commands to be performed on more than one file, handling each request as a separate request;and when the compound request contains related commands to be performed on a single file, handling each request sequentially.
  4. 13
    A computer implemented method of creating a Server Message Block 2.0 (SMB2) compound command, the method comprising:compounding a first SMB2 header identifying a first SMB2 command with a second SMB2 header identifying a second SMB2 command into a single packet, wherein the first SMB2 header indicates an offset between the first SMB2 header and the second SMB2 header;providing a marking on the packet indicating that the first SMB2 command and the second SMB2 command are related such that the first SMB2 command and the second SMB2 command are to be performed on the same file;not providing the marking on the packet when the first SMB2 command and the second SMB2 command are unrelated such that that the first SMB2 command and the second SMB2 command are to be performed on different files;and sending the packet to a server.
  5. 14
    A computer implemented method, comprising:receiving, at a server, a Sever Message Block 2.0 (SMB2) compound request containing a plurality of SMB2 commands from a client;determining whether the compound request contains unrelated commands to be performed on more than one file or related commands to be performed on a single file;when the compound request contains unrelated commands to be performed on more than one file, handling each request as a separate request;and when the compound request contains related commands to be performed on a single file, handling each request sequentially.
  6. 15
    A system for accessing files on a server, the system comprising:a client configured to: compound a first SMB2 header identifying a first SMB2 command with a second SMB2 header identifying a second SMB2 command into a single packet, wherein the first SMB2 header indicates an offset between the first SMB2 header and the second SMB2 header;provide a marking on the packet indicating that the first SMB2 command and the second SMB2 command are related such that the first SMB2 command and the second SMB2 command are to be performed on the same file;a server configured to: receive the packet with the first SMB2 command and the second SMB2 command;determine whether the first SMB2 command and the second SMB2 command are related or unrelated;and handle the first SMB2 command and the second SMB2 command as separate commands when the first SMB2 command and the second SMB2 command are unrelated;and handle the first SMB2 command and the second SMB2 command sequentially when the first command and the second command are related. a network for transmitting the packet from the client to the server.