# US 2019/0379736 A1 · Systems and methods for transport layer processing of server message block protocol messages

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0379736 A1
- Document ID: US20190379736A1
- Status: Published application
- Kind: A1
- Application number: 16/002,588
- Filed: 2018-06-07
- Published: 2019-12-12
- Earliest claimed: 2018-06-07
- Assignees: Tuxera Inc.
- Applicants: Tuxera Inc.
- Inventors: Oleg Nikolaevich KRAVTSOV
- Web page: https://patentgrep.com/patent/US20190379736A1

## CPC

- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- H04L 69/18: Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
- H04L 69/22: Parsing or analysis of headers
- H04L 69/326: in the transport layer [OSI layer 4] (H04L69/16 takes precedence)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

This disclosure describes techniques for network file sharing. In one example, this disclosure describes systems and techniques for enabling network file sharing by processing server message block protocol messages. In one example, the systems and techniques for processing server message block protocol messages include transport layer processing of server message block protocol messages.

## Claims

### Claim 1

A method for transferring data from a network buffer to a file system object, the method comprising:
reading a transport packet header and a server message block header from a transport packet by invoking a first read call, wherein the transport packet includes a transport packet header, a server message block header, and a server message block data payload;
checking a value of a command field from the read server message block header; and
conditionally reading data from the server message block data payload based on whether the value of the command field indicates a write command.

### Claim 2 (depends on 1)

The method of claim 1, wherein reading the transport packet header and the server message block header includes reading the first 68 bytes of the transport packet.

### Claim 3 (depends on 1)

The method of claim 1, wherein conditionally reading data from the server message block data payload based on whether the value of the command field indicates a write command includes conditionally performing one of:
reading all of the a server message block data payload by invoking a second read call in the case where the command field in the server message block header does not indicate a write command; or
reading only data forming a write command header from the server message block data payload by invoking a second read call in the case where the command field in the server message block header indicates a write command.

### Claim 4 (depends on 3)

The method of claim 3, wherein reading only data forming a write command header from the server message block data payload includes reading the first 48 bytes from the server message block data payload.

### Claim 5

A method for transferring data from a network buffer to a file system object, the method comprising:
reading a transport packet header and a server message block header from a transport packet by invoking a first read call, wherein the transport packet includes a transport packet header, a server message block header, and a server message block data payload;
determining whether the value of a length field in the read transport header is greater than a threshold value; and
performing one of:
checking a value of a command field in the read server message block header in the case where the value of the length field is greater than or equal to a threshold value; or
reading all of the a server message block data payload by invoking a second read call in the case where the value of the length field is less than the threshold value.

### Claim 6 (depends on 5)

The method of claim 5, wherein the threshold value is in the range of 4,096 to 16,384 bytes.

### Claim 7 (depends on 6)

The method of claim 6, wherein the threshold value is 8,192 bytes.

### Claim 8 (depends on 5)

The method of claim 5, further comprising reading only data forming a write command header from the server message block data payload by invoking a second read call in the case where the command field in the server message block header indicates a write command.

### Claim 9 (depends on 8)

The method of claim 8, wherein reading only data forming a write command header from the server message block data payload includes reading the first 48 bytes from the server message block data payload.

### Claim 10 (depends on 5)

The method of claim 5, wherein reading the transport packet header and the server message block header includes reading the first 68 bytes of the transport packet.

### Claim 11

A device comprising one or more processors configured to:
read a transport packet header and a server message block header from a transport packet by invoking a first read call, wherein the transport packet includes a transport packet header, a server message block header, and a server message block data payload;
determine whether the value of a length field in the read transport header is greater than a threshold value; and
perform one of:
checking a value of a command field in the read server message block header in the case where the value of the length field is greater than or equal to a threshold value; or
reading all of the a server message block data payload by invoking a second read call in the case where the value of the length field is less than the threshold value.

### Claim 12 (depends on 11)

The device of claim 11, wherein the threshold value is in the range of 4,096 to 16,384 bytes.

### Claim 13 (depends on 12)

The device of claim 12, wherein the threshold value is 8,192 bytes.

### Claim 14 (depends on 12)

The device of claim 12, wherein the one or more processors are further configured to read only data forming a write command header from the server message block data payload by invoking a second read call in the case where the command field in the server message block header indicates a write command.

### Claim 15 (depends on 14)

The device of claim 14, wherein reading only data forming a write command header from the server message block data payload includes reading the first 48 bytes from the server message block data payload.

### Claim 16 (depends on 15)

The device of claim 15, wherein reading the transport packet header and the server message block header includes reading the first 68 bytes of the transport packet.

### Claim 17

A non-transitory computer-readable storage medium comprising instructions stored thereon, that upon execution, cause one or more processors of a device to:
read a transport packet header and a server message block header from a transport packet by invoking a first read call, wherein the transport packet includes a transport packet header, a server message block header, and a server message block data payload;
check a value of a command field from the read server message block header; and
conditionally read data from the server message block data payload based on whether the value of the command field indicates a write command.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein reading the transport packet header and the server message block header includes reading the first 68 bytes of the transport packet.

### Claim 19 (depends on 18)

The non-transitory computer-readable storage medium of claim 18, wherein conditionally reading data from the server message block data payload based on whether the value of the command field indicates a write command includes conditionally performing one of:
reading all of the a server message block data payload by invoking a second read call in the case where the command field in the server message block header does not indicate a write command; or
reading only data forming a write command header from the server message block data payload by invoking a second read call in the case where the command field in the server message block header indicates a write command.

### Claim 20 (depends on 19)

The non-transitory computer-readable storage medium of claim 19, wherein reading only data forming a write command header from the server message block data payload includes reading the first 48 bytes from the server message block data payload.
