DETAILED ACTION
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102 of this title, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-8 and 10-22 are rejected under 35 U.S.C. 103 as being unpatentable over Ali (US 2006/041938, “Ali”) in view of Masputra et al. (US 2019/0306282, “Masputra”).
Regarding claim 1, Ali discloses a device comprising:
- a memory; and a processor configured to (See Fig.19, a memory and CPU):
- maintain a plurality of communication sessions (See Fig.10 and ¶.226, a set of sessions between TLS remote client application and TLS server handshake module);
- cause the memory to allocate a first portion of the memory to store received packets associated with a plurality of records of the plurality of communication sessions (See Fig.4 and ¶.87, the TLS Server Handshake Module requests an allocation or deallocation of a RAM buffer to manage that RAM buffer allocation or deallocation; See ¶.133-135, Fig.10 shows all handshake messages and a new digest context structure is allocated and initialized. This allocation is in the form of a memory buffer from the RAM heap; See ¶.151-152, the resulting record is encrypted using the session keys and algorithms established during the TLS handshake as described in conjunction with FIG. 10. the encrypted records are shown as 1305 and 1306 in FIG. 13. As a final step, a TLS record header is then attached to each record; Examiner’s Note: Masputra further explicitly discloses “the first pool of memory is dedicated to a first application comprising hardware driver, the hardware driver receiving data for a user space networking stack”); and
- cause the memory to allocate a second portion of the memory to store incoming packets associated with the plurality of records responsive to a trigger (See 1507 Fig.15, check ‘record size <=200 ?’ and then ‘yes’ or ‘no’ for data available 1500), wherein the trigger is based on a record size of a first record of the plurality of records (See ¶.161, if the remaining number of the record size is greater than the size of the TLS I/O buffer, the data I/O module reads as many bytes as would fit in the TLS I/O buffer (e.g., 200 bytes). The record flag value is then marked as PARTIAL, and the most recently read data is passed on to the application; See ¶.170, the record size is greater than the size of the TLS I/O buffer, the data I/O module successively reads as many bytes as will fit into the TLS I/O buffer and writes that data to a dedicated buffer that has been allocated in the NVM heap).
Ali discloses the method of allocating a dedicated buffer based on the TLS record size (See ¶.170), but does not explicitly explain the method of allocating a first portion of the memory for communication sessions and allocating a second portion of the memory to store incoming packets.
However, Masputra discloses the method of storing the data in the pool of dedicated memory resources (Masputra, See ¶.82; a first pool of dedicated memory resources for the application; a second pool of dedicated memory resources for a kernel space hardware driver; See ¶.87, the first pool of memory is dedicated to a first application comprising hardware driver, the hardware driver receiving data for a user space networking stack).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date to apply the method of “storing processing data into the pool of dedicated memory resources” as taught by Masputra into the system of Ali, so that it provides a way of improving device operation by implementing stringent memory limitations and relying on user space memory management techniques for memory resource optimization (Masputra, See ¶.249).
Regarding claim 2, Ali discloses “responsive to all packets associated with the first record being received, cause a release of all portions of the memory storing the first record (See ¶.149, memory buffer can be released).”
Regarding claim 3, Ali does not explicitly disclose what Masputra discloses “identify the first record as a priority record based on the trigger; and responsive to identifying the first record as a priority record, prevent allocation of memory to a second record of the plurality of records (Masputra, See ¶.82; a first pool of dedicated memory resources for the application; a second pool of dedicated memory resources for a kernel space hardware driver; See ¶.87, the first pool of memory is dedicated to a first application comprising hardware driver, the hardware driver receiving data for a user space networking stack; See ¶.115, user space applications are treated at lower priority than kernel tasks; See ¶.251, the user space memory allocation and deallocation process inherently prevents persistent fragments of memory allocation).” Therefore, this claim is rejected with the similar reasons and motivation set forth in the rejection of claim 1.
Regarding claim 4, Ali does not explicitly disclose what Masputra discloses “identify the first record as a priority record based on the trigger; and responsive to identifying the first record as a priority record, delay an acknowledge message for a second record of the plurality of records (Masputra, See ¶.87, the first pool of memory is dedicated to a first application comprising hardware driver, the hardware driver receiving data for a user space networking stack; See ¶.115, user space applications are treated at lower priority than kernel tasks).” Therefore, this claim is rejected with the similar reasons and motivation set forth in the rejection of claim 1.
Regarding claim 5, Ali discloses “the trigger is based on the first record being received to within a threshold amount (See 1507 Fig.15, the decision procedure according to record size; See ¶.154, the data buffer used by the data I/O module can be as small as only 200 bytes).”
Regarding claim 6, Ali does not explicitly disclose what Masputra discloses “the trigger is based on a time-out value for the first record (Masputra, ¶.120, TLS timeout).” Therefore, this claim is rejected with the similar reasons and motivation set forth in the rejection of claim 1.
Regarding claim 7, Ali discloses “the plurality of communication sessions are secure communication sessions (See ¶.7, enable secure communications).”
Regarding claim 8, Ali discloses “the first record comprises data indicative of the record size (See 1507 Fig.15, record size).”
Regarding claim 10, Ali discloses “the first record comprises a first plurality of segments of a data connection (See ¶.151, data segments).”
Regarding claim 11, Ali and Masputra disclose “the data connection is associated with a window size, and wherein the processor is configured to: identify the first record as a priority record based on the trigger; and responsive to identifying the first record as a priority record (Masputra, See ¶.115, different processing priority according the applications and system configuration tasks such as communication sessions), increase the window size (Ali, See ¶.3, expanding the size of buffers (window) to accommodate the size of TLS record).” Therefore, this claim is rejected with the similar reasons and motivation set forth in the rejection of claim 1.
Regarding claim 12, Ali and Masputra disclose “a second record comprises a further plurality of segments of a further data connection that is associated with a second window size, and wherein the processor is configured to: identify the first record as a priority record based on the trigger; and responsive to identifying the first record as a priority record, decrease the second window size (Ali, See 1507 Fig.15 and ¶.160, less bytes; Masputra discloses the priority method as rejected in claims 1 & 4).” Therefore, this claim is rejected with the similar reasons and motivation set forth in the rejection of claim 1.
Regarding claim 13, Ali discloses “the processor is configured to control allocation of the memory based on a window size associated with the data connection (See Fig.15, check TLS record size).”
Regarding claim 14, Ali and Masputra disclose “the trigger is based on the first record being received to within a threshold amount (Ali, See 1503 Fig.15), and wherein the processor is configured to: identify the first record as a priority record based on the trigger (See ¶.161 and ¶.170 as rejected in claim 1 and Masputra’s disclosure in claim 1); and responsive to identifying the first record as a priority record, allocate at least portion of the second portion to packets of the first record before allocating any of the second portion to packets of other records of the plurality of records (Masputra, See ¶.84-87, the kernel space logic is configured to read data from the first pool of dedicated memory resources in word segments. In one such variant, the kernel space logic is configured to calculate the checksum from the word segments. [0085] In another variant, the kernel space logic is prioritized over user space logic; [0087] the first pool of memory is dedicated to a first application comprising hardware driver, the hardware driver receiving data for a user space networking stack; See ¶.115, generally, user space applications are treated at lower priority than kernel tasks). Therefore, this claim is rejected with the similar reasons and motivation set forth in the rejection of claim 1.
Regarding claim 15, it is a method claim corresponding to the device claim 1 and is therefore rejected for the similar reasons set forth in the rejection of the claim.
Regarding claims 16-20, they are claims corresponding to claims 2, 4, 11, 12, & 14, respectively and are therefore rejected for the similar reasons set forth in the rejection of the claims.
Regarding claim 21, Ali does not explicitly disclose what Masputra discloses “the device comprises a Wi-Fi application (Masputra, See ¶.28, Wi-Fi chips).” Therefore, this claim is rejected with the similar reasons and motivation set forth in the rejection of claim 1.
Regarding claim 22, Ali discloses “the device comprises an internet application (See ¶.2, internet).”
Claim 9 is rejected under 35 U.S.C. 103 as being unpatentable over Ali in view of Masputra and further in view of Naeimi et al. (US 2021/0211467, “Naeimi”).
Regarding claim 9, Ali and Masputra do not explicitly disclose what Naeimi discloses “the record size is 16 KB or less (Naeimi, See ¶.4, TLS encrypting up to 16 KB).”
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date to apply “the record size is 16 KB or less” as taught by Naeimi into the system of Ali and Masputra, so that it provides a way of performing on individual relatively small-sized records (Naeimi, See ¶.5).
Contact Information
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Jung H Park whose telephone number is 571-272-8565. The examiner can normally be reached M-F: 7:00 AM-3:00 PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Derrick Ferris can be reached on 571-272-3123. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/JUNG H PARK/
Primary Examiner, Art Unit 2411