Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
DETAILED ACTION
This final action is in response to amendment filed on 04/15/2025. In this amendment, claims 25 and 34 are amended. Claims 25-41 are pending, with claims 25 and 34 being independent.
Priority
This application is a continuation application of U.S. Patent Application 17/072,102, filed October 16, 2020, now published as U.S. Patent Publication 2022/0006776. U.S. Patent Application 17/072,102 claims the benefit of Indian Provisional Patent Application 202041028206, filed July 2, 2020. U.S. Patent Application 17/072,102, now published as U.S. Patent Publication 2022/0006776.
Response to Arguments
Rejections under Double Patenting
Rejections are withdrawn in view of Terminal Disclaimer approved on 04/16/2025.
Rejections under 35 U.S.C. § 101
Rejections are maintained because the new limitations allocating hardware resources comprising network computing devices based on the number of the pre-allocated groups and wherein internal source network addresses and external destination network addresses are mapped to the external source port addresses from the pre-allocated port groups are mental processes. For instance, the user, in the human mind, or by a human using a pen and paper, can allocate/assign network computing devices based on the number of pre-allocated groups and user can draw/create a table to map internal source network addresses and external destination network addresses to the external source port addresses from the pre-allocated port groups. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
Rejections under 35 U.S.C. § 103
Applicant’s arguments with respect to new limitations “wherein internal source network addresses and external destination network addresses are mapped to the external source port addresses” have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 25-41 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
With respect to claim 25, the claim recites specifying a plurality of pre-allocated port groups with each group comprising a plurality of external source port addresses (i.e. concepts performed in the human mind, or by a human using a pen and paper) because a user can specify/ create a plurality of pre-allocated ports groups/lists that comprise a plurality of port addresses; allocating, for new connections to the destination IP address, external source port addresses from the pre-allocated groups when external source port addresses are available in the pre-allocated groups (i.e. concepts performed in the human mind, or by a human using a pen and paper) because the user also can allocate/ select/ pick/ designate a port from the pre-allocated groups/ lists for a new connection; dynamically modifying a number of the pre-allocated groups as a number of connections increases or decreases to destinations outside of the network (i.e. concepts performed in the human mind, or by a human using a pen and paper) because the user can modify/ add/ increase/ decrease port groups based number of connections to destinations; and allocating hardware resources comprising network computing devices based on the number of the pre-allocated groups (i.e. concepts performed in the human mind, or by a human using a pen and paper) because the user can allocate/assign network computing devices based on the number of pre-allocated groups; and wherein internal source network addresses and external destination network addresses are mapped to the external source port addresses from the pre-allocated port group (i.e., concepts performed in the human mind, or by a human using a pen and paper) because user can draw/create table to map internal source network addresses and external destination network addresses to the external source port addresses from the pre-allocated port groups. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
This judicial exception is not integrated into a practical application. In particular, the claim does not recite any additional limitation that integrate the abstract idea into a practical application. The claim is directed to an abstract idea.
The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. The claim is not patent eligible.
Claim 26 depends on claim 25, thus is having the same issue as shown above. Further, the claim also recites wherein said specifying, allocating and dynamically modifying provide an efficient mechanism for (i) tracking source port addresses assigned to connections to the destination IP address, and (ii) allocating new source port addresses when no previously pre-allocated source port addresses are available. These elements clarify an abstract idea above, thus, are part of recitation of the abstract idea. Therefore, claim 26 also includes limitations are directed to an abstract idea without significantly more as discussed above.
Claim 27 depends on claim 25, thus is having the same issue as shown above. Further, the claim also recites wherein each pre- allocated group includes a plurality of source port addresses. These elements clarify an abstract idea above, thus, are part of recitation of the abstract idea. Therefore, claim 27 also includes limitations are directed to an abstract idea without significantly more as discussed above.
Claim 28 depends on claim 27, thus is having the same issue as shown above. Further, the claim also recites wherein the source port addresses in each pre-allocated group are contiguous addresses in a range. These elements clarify an abstract idea above and no more than how the source port addresses are organized, thus, are part of recitation of the abstract idea. Therefore, claim 28 also includes limitations are directed to an abstract idea without significantly more as discussed above.
Claim 29 depends on claim 25, thus is having the same issue as shown above. Further, the claim also recites identifying a new connection for which an external source port has to be assigned; determining that the first set of pre-allocated groups does not have an external source port address available to assign to the new connection; and specifying a second set of pre-allocated groups of external port addresses and allocating an external port address from the second set of pre-allocated groups. This is an abstract idea including mental processes. For instance, a human can, in the human mind or on paper, observe a new connection for which an external source port has to be assigned, determine/check/detect/judge/ evaluate that the first set of pre-allocated groups does not have an external source port address available to assign to the new connection; and specify a second set of pre-allocated groups of external port addresses. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
This judicial exception is not integrated into a practical application. In particular, the claim does not recite any additional limitation that integrate the abstract idea into a practical application. The claim is directed to an abstract idea.
The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. The claim is not patent eligible.
Claim 30 depends on claim 25, thus is having the same issue as shown above. Further, the claim also recites determining that a pre-allocated group does not have any available port for allocation to a new packet flow; and selecting another pre-allocated group from which a port should be selected for the new packet flow. This is an abstract idea including mental processes. For instance, a human can, in the human mind or on paper, determine/observe that a pre-allocated group does not have any available port for allocation to a new packet flow; and choose/pick/select another pre-allocated group from which a port should be selected for the new packet flow. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
This judicial exception is not integrated into a practical application. In particular, the claim does not recite any additional limitation that integrate the abstract idea into a practical application. The claim is directed to an abstract idea.
The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. The claim is not patent eligible.
Claim 31 depends on claim 25, thus is having the same issue as shown above. Further, the claim also recites defining different sets of pluralities of pre-allocated port groups, each set associated with a different external destination IP address; identifying, for a new packet flow, the port-group set associated with an external destination IP address stored in a header field of the new flow; and allocating, for the new packet flow, an external port address from a particular pre-allocated port group in the identified port-group set. This is an abstract idea including mental processes. For instance, a human can, in the human mind or on paper, determine/check/detect/judge/ evaluate different sets of pluralities of pre-allocated port groups, each set associated with a different external destination IP address; identify/ observe/detect, for a new packet flow, the port-group set associated with an external destination IP address stored in a header field of the new flow [via screen] and can allocate/assign for the new packet flow, an external port address from a particular pre-allocated port group in the identified port-group set. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
This judicial exception is not integrated into a practical application. In particular, the claim does not recite any additional limitation that integrate the abstract idea into a practical application. The claim is directed to an abstract idea.
The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. The claim is not patent eligible.
Claim 32 depends on claim 31, thus is having the same issue as shown above. Further, the claim also recites defining, for each external destination IP address, a connection-tracking data store for storing connection-tracking records that map allocated external source port addresses to internal source IP and port addresses within the network. This is an abstract idea including mental processes. For instance, a human can, in the human mind or on paper, define/ evaluate/detect, for each external destination IP address, a connection-tracking data store for storing connection-tracking records that map allocated external source port addresses to internal source IP and port addresses within the network. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
This judicial exception is not integrated into a practical application. The claim also recites additional elements said connection-tracking records for use in performing network address translation on packets of flows exiting the network and performing destination address translation on packets of flows entering the network. The additional element is no more than mere explaining purpose of the connection-tracking records. Accordingly, this additional element does not integrate the abstract idea into a practical application because it is an insignificant extra-solution activity. The claim is directed to an abstract idea.
The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional element no more than mere explaining purpose of the connection-tracking records. The additional element cannot provide an inventive concept. The claim is not patent eligible.
Claim 33 depends on claim 25, thus is having the same issue as shown above. Further, the claim also recites allocating a bitmap of available source ports; allocating contiguous blocks of source ports in the bitmap to different pre-allocated port groups; and using the bitmap to identify the pre-allocated port groups and adjust the number of pre-allocated port groups. These elements clarify an abstract idea above, thus, are part of recitation of the abstract idea. Therefore, claim 32 also includes limitations are directed to an abstract idea without significantly more as discussed above.
With respect to claim 34, the claim recites specifying a plurality of pre-allocated port groups with each group comprising a plurality of external source port addresses (i.e. concepts performed in the human mind, or by a human using a pen and paper) because a user can specify/ create a plurality of pre-allocated ports groups/lists that comprise a plurality of port addresses; allocating, for new connections to the destination IP address, external source port addresses from the pre-allocated groups when external source port addresses are available in the pre-allocated groups (i.e. concepts performed in the human mind, or by a human using a pen and paper) because the user also can allocate/ select/ pick/ designate a port from the pre-allocated groups/ lists for a new connection; dynamically modifying a number of the pre-allocated groups as a number of connections increases or decreases to destinations outside of the network (i.e. concepts performed in the human mind, or by a human using a pen and paper) because the user can modify/ add/ increase/ decrease port groups based number of connections to destinations; and allocating hardware resources comprising network computing devices based on the number of the pre-allocated groups (i.e. concepts performed in the human mind, or by a human using a pen and paper) because the user can allocate/assign network computing devices based on the number of pre-allocated groups; and wherein internal source network addresses and external destination network addresses are mapped to the external source port addresses from the pre-allocated port group (i.e., concepts performed in the human mind, or by a human using a pen and paper) because user can draw/create table to map internal source network addresses and external destination network addresses to the external source port addresses from the pre-allocated port groups. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
This judicial exception is not integrated into a practical application. In particular, the claim only recites one additional element a non-transitory machine readable medium storing a program which when executed by one or more processing units allocates external source port addresses for a plurality of connections that share a limited set of external source IP addresses for connections to a destination IP address outside of a network. The non-transitory machine readable medium is recited at a high-level of generality such that it amounts no more than mere instructions to apply the exception using a generic computer component Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea.
The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional element of the non-transitory machine readable medium no more than mere instructions to apply the exception using a generic computer component. Mere instructions to apply an exception using a generic computer component cannot provide an inventive concept. The claim is not patent eligible.
Claim 35 depends on claim 34, thus is having the same issue as shown above. Further, the claim also recites the non-transitory machine readable medium and wherein said specifying, allocating and dynamically modifying provide an efficient mechanism for (i) tracking source port addresses assigned to connections to the destination IP address, and (ii) allocating new source port addresses when no previously pre-allocated source port addresses are available. These elements clarify an abstract idea above, thus, are part of recitation of the abstract idea and the non-transitory machine readable medium no more than mere instructions to apply the exception using a generic computer component. Therefore, claim 35 also includes limitations are directed to an abstract idea without significantly more as discussed above.
Claim 36 depends on claim 34, thus is having the same issue as shown above. Further, the claim also recites the non-transitory machine readable medium and wherein each pre- allocated group includes a plurality of source port addresses. These elements clarify an abstract idea above, thus, are part of recitation of the abstract idea and the non-transitory machine readable medium no more than mere instructions to apply the exception using a generic computer component. Therefore, claim 36 also includes limitations are directed to an abstract idea without significantly more as discussed above.
Claim 37 depends on claim 36, thus is having the same issue as shown above. Further, the claim also recites the non-transitory machine readable medium and wherein the source port addresses in each pre-allocated group are contiguous addresses in a range. These elements clarify an abstract idea above and no more than how the source port addresses are organized, thus, are part of recitation of the abstract idea and the non-transitory machine readable medium no more than mere instructions to apply the exception using a generic computer component. Therefore, claim 36 also includes limitations are directed to an abstract idea without significantly more as discussed above and the non-transitory machine readable medium no more than mere instructions to apply the exception using a generic computer component. Therefore, claim 37 also includes limitations are directed to an abstract idea without significantly more as discussed above.
Claim 38 depends on claim 34, thus is having the same issue as shown above. Further, the claim also recites identifying a new connection for which an external source port has to be assigned; determining that the first set of pre-allocated groups does not have an external source port address available to assign to the new connection; and specifying a second set of pre-allocated groups of external port addresses and allocating an external port address from the second set of pre-allocated groups. This is an abstract idea including mental processes. For instance, a human can, in the human mind or on paper, observe a new connection for which an external source port has to be assigned, determine/check/detect/judge/ evaluate that the first set of pre-allocated groups does not have an external source port address available to assign to the new connection; and specify a second set of pre-allocated groups of external port addresses. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
This judicial exception is not integrated into a practical application. In particular, the claim only recites one additional element a non-transitory machine readable medium storing a program which when executed by one or more processing units allocates external source port addresses for a plurality of connections that share a limited set of external source IP addresses for connections to a destination IP address outside of a network. The non-transitory machine readable medium is recited at a high-level of generality such that it amounts no more than mere instructions to apply the exception using a generic computer component Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea.
The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional element of the non-transitory machine readable medium no more than mere instructions to apply the exception using a generic computer component. Mere instructions to apply an exception using a generic computer component cannot provide an inventive concept. The claim is not patent eligible.
Claim 39 depends on claim 34, thus is having the same issue as shown above. Further, the claim also recites defining different sets of pluralities of pre-allocated port groups, each set associated with a different external destination IP address; identifying, for a new packet flow, the port-group set associated with an external destination IP address stored in a header field of the new flow; and allocating, for the new packet flow, an external port address from a particular pre-allocated port group in the identified port-group set. This is an abstract idea including mental processes. For instance, a human can, in the human mind or on paper, determine/check/detect/judge/ evaluate different sets of pluralities of pre-allocated port groups, each set associated with a different external destination IP address; identify/ observe/detect, for a new packet flow, the port-group set associated with an external destination IP address stored in a header field of the new flow [via screen] and can allocate/assign for the new packet flow, an external port address from a particular pre-allocated port group in the identified port-group set. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
This judicial exception is not integrated into a practical application. In particular, the claim only recites one additional element a non-transitory machine readable medium storing a program which when executed by one or more processing units allocates external source port addresses for a plurality of connections that share a limited set of external source IP addresses for connections to a destination IP address outside of a network. The non-transitory machine readable medium is recited at a high-level of generality such that it amounts no more than mere instructions to apply the exception using a generic computer component Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea.
The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional element of the non-transitory machine readable medium no more than mere instructions to apply the exception using a generic computer component. Mere instructions to apply an exception using a generic computer component cannot provide an inventive concept. The claim is not patent eligible.
Claim 40 depends on claim 39, thus is having the same issue as shown above. Further, the claim also recites defining, for each external destination IP address, a connection-tracking data store for storing connection-tracking records that map allocated external source port addresses to internal source IP and port addresses within the network. This is an abstract idea including mental processes. For instance, a human can, in the human mind or on paper, define/ evaluate/detect, for each external destination IP address, a connection-tracking data store for storing connection-tracking records that map allocated external source port addresses to internal source IP and port addresses within the network. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
This judicial exception is not integrated into a practical application. The claim also recites additional elements a non-transitory machine readable medium and said connection-tracking records for use in performing network address translation on packets of flows exiting the network and performing destination address translation on packets of flows entering the network. The additional element is no more than mere explaining purpose of the connection-tracking records and the non-transitory machine readable medium no more than mere instructions to apply the exception using a generic computer component. Accordingly, this additional element does not integrate the abstract idea into a practical application because it is an insignificant extra-solution activity. The claim is directed to an abstract idea.
The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional element no more than mere explaining purpose of the connection-tracking records and the non-transitory machine readable medium no more than mere instructions to apply the exception using a generic computer component. The additional element cannot provide an inventive concept. The claim is not patent eligible.
Claim 41 depends on claim 34, thus is having the same issue as shown above. Further, the claim also recites allocating a bitmap of available source ports; allocating contiguous blocks of source ports in the bitmap to different pre-allocated port groups; and using the bitmap to identify the pre-allocated port groups and adjust the number of pre-allocated port groups. These elements clarify an abstract idea above, thus, are part of recitation of the abstract idea. Therefore, claim 41 also includes limitations are directed to an abstract idea without significantly more as discussed above.
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 25-28, 31-37 and 39-41 are rejected under 35 U.S.C. 103 as being unpatentable over Iyer et al. (US 9,781,075, Date of Patent Oct. 3, 2017), in view of Cheng (NPL: NAT44 with Pre-allocated Ports, Pub. Date: March 11, 2011), in view of Ossipov et al. (US 2019/0245828, Pub. Date: Aug. 8, 2019), in view of Kimn et al. (US 2020/0145371, Filed: Jul. 8, 2019).
As per claim 25, Iyer discloses a method of allocating external source port addresses for a plurality of connections that share a limited set of external source IP addresses for connections to a destination IP address outside of a network (Iyer col. 2 lines 44-47, the source port is allocated from a pool of ports shared only among sessions to the same destination IP address and destination port number), the method comprising:
specifying a plurality of pre-allocated port groups (Iyer col. 9 lines 52-53, each independent grouping of assignable ranges [pre-allocated port groups] of ports; Iyer col. 9 lines 44-48, this entire range of source network port numbers (e.g., excluding reserved ports) is available for each unique combination of one or more of the following: destination IP address, destination network port, network protocol and source IP address; Iyer col. 9 lined 5-7, the range of source network ports is shared only across at least the same destination IP address and destination network port of a particular source IP address) with each group comprising a plurality of external source port addresses (Iyer col. 8 lines 66-col. 9 lines 1-7, the data structure tracks which source network ports (e.g., which port numbers within the source port number space for the specific destination IP address and destination network port.) are available for a new network session; Iyer col. 9 lines 13-15, a different data structure that tracks available source network ports is maintained for at least each different pair of destination IP address and destination network port);
allocating, for new connections to the destination IP address, external source port addresses from the pre-allocated groups (Iyer col. 2 lines 44-47, the source port is allocated from a pool of ports shared only among sessions to the same destination IP address and destination port number; Iyer col. 8 lines 66-col. 9 lines 1-7, the data structure tracks which source network ports (e.g., which port numbers) are available for a new network session within the source port number space for the specific destination IP address and destination network port. For example, rather than tracking available source network ports that are shared across an entire communication source IP address, the range of source network ports is shared only across at least the same destination IP address and destination network port of a particular source IP address) when external source port addresses are available in the pre-allocated groups (Iyer col. 12 lines 59-61, the data structure is iteratively searched/traversed to locate an entry that corresponds to an available source network port);
external source port addresses from the pre-allocated port groups (Iyer col. 8 lines 66-col. 9 lines 1-7, the data structure tracks which source network ports (e.g., which port numbers within the source port number space for the specific destination IP address and destination network port.) are available for a new network session; Iyer col. 9 lines 52-53, each independent grouping of assignable ranges [pre-allocated port groups] of ports).
Iyer does not explicitly disclose:
dynamically modifying a number of the pre-allocated groups as a number of connections increases or decreases to destinations outside of the network; and
allocating hardware resources comprising network computing devices based on the number of the pre-allocated groups;
wherein internal source network addresses and external destination network addresses are mapped to the external source port addresses.
Cheng teaches:
dynamically modifying a number of the pre-allocated groups as a number of connections increases or decreases to destinations outside of the network (Cheng 3.1 pg. 6-7, The NAT44 device decides to pre-allocate a small port pool that contains 40 contiguous ports, from 3500 to 3540 … If at a later time, the port pool (3500-3540) is close to exhaustion, the NAT44 device pre-allocates a second port range in a similar fashion, with the same or different number of ports as in the first one, say from 8500 to 8800 … The NAT44 device may decide to de-allocate a pre-allocated port pool (or a sub-range of it) … suppose at a later time, all ports in the port pool (8500-8800) are not used and the NAT44 device decides to de-allocate all of them; Cheng pg. 2, When a new IP flow arrives from the subscriber, the NAT44 device then allocates dynamically a port from the pre-allocated port range for the subscriber … The actual port pre-allocation is entirely based on necessity during the operation, e.g., the first or a new port range may be allocated when receiving the first IP packet of a new IP flow sent by a subscriber; Cheng pg. 4, The NAT44 may allocates one or more port ranges, where each range contains a contiguous ports).
It would been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention to modify Iyer in view of Patel for dynamically modifying a number of the pre-allocated groups as a number of connections increases or decreases to destinations outside of the network.
One of ordinary skill in the art would have been motived because it offers the advantage of managing pre-allocated port addresses.
Iyer-Cheng does not explicitly disclose:
allocating hardware resources comprising network computing devices based on the number of the pre-allocated groups;
wherein internal source network addresses and external destination network addresses are mapped to the external source port addresses from the pre-allocated port groups.
Ossipov teaches:
allocating hardware resources comprising network computing devices based on the number of the pre-allocated groups (Ossipov para. [0024], the master reserves one or more of the buckets of the port blocks that is/are not allocated to network devices 108 in anticipation of a new network device joining cluster 106. If more than one network device needs to join, the master may alert an administrator when sufficient port blocks have been reserved to make it safe to add the additional network device(s) without losing any distributed processing advantage).
It would been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention to further modify Iyer in view of Ossipov for allocating hardware resources comprising network computing devices based on the number of the pre-allocated groups.
One of ordinary skill in the art would have been motived because it offers the advantage of providing sufficient port blocks for additional network devices (see Ossipov para. [0024]).
Iyer-Cheng-Ossipov does not explicitly disclose:
wherein internal source network addresses and external destination network addresses are mapped to the external source port addresses.
Kimn teaches:
internal source network addresses and external destination network addresses are mapped to the external source port addresses (Kimn fig. 12 and para. [0114], the main NAT table 1700 may store information of an internal source IP address, an internal source port, an external source port, an external source IP address, a destination IP address, and a destination port. These addresses and ports may be managed to correspond or be mapped to each other in one entry).
It would been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention to further modify Iyer in view of Kimn for internal source network addresses and external destination network addresses are mapped to the external source port addresses.
One of ordinary skill in the art would have been motived because it offers the advantage of providing mapping relationship for managing network.
As per claim 26, Iyer-Cheng-Ossipov-Kimn discloses the method according to claim 25, as set forth above, Iyer-Cheng also discloses wherein said specifying, allocating (Iyer col. 2 lines 44-47, the source port is allocated from a pool of ports shared only among sessions to the same destination IP address and destination port number) and dynamically modifying (Cheng 3.1 pg. 6-7, If at a later time, the port pool (3500-3540) is close to exhaustion, the NAT44 device pre-allocates a second port range in a similar fashion, with the same or different number of ports as in the first one, say from 8500 to 8800) provide an efficient mechanism for (i) tracking source port addresses assigned to connections to the destination IP address (Iyer col. 12 lines 7-11, determining whether the data structure exists includes determining whether any of the existing data structures is for tracking available source network ports for at least the combination of the destination IP address and destination network port), and (ii) allocating new source port addresses (Cheng 3.1 pg. 6-7, If at a later time, the port pool (3500-3540) is close to exhaustion, the NAT44 device pre-allocates a second port range in a similar fashion, with the same or different number of ports as in the first one, say from 8500 to 8800) when no previously pre-allocated source port addresses are available (Iyer col. 12 lines 57-66, it determined that the data structure does exist, at 606, an identifier of the next available port is obtained using the existing data structure. For example, the data structure is iteratively searched/traversed to locate an entry that corresponds to an available source network port … the search is started from a previously assigned port number; Iyer col. 13 line 47, If no port available, return error).
Similar rationale of claim 25 is applied.
As per claim 27, Iyer-Cheng-Ossipov-Kimn discloses the method according to claim 25, as set forth above, Iyer also discloses wherein each pre-allocated group includes a plurality of source port addresses (Iyer col. 8 lines 56-col. 9 lines 1-7, the data structure tracks which source network ports (e.g., which port numbers within the source port number space for the specific destination IP address and destination network port.) are available for a new network session; Iyer col. 9 lines 13-15, a different data structure that tracks available source network ports is maintained for at least each different pair of destination IP address and destination network port).
As per claim 28, Iyer-Cheng-Ossipov-Kimn discloses the method according to claim 27, as set forth above, Cheng also discloses wherein the source port addresses in each pre-allocated group are contiguous addresses in a range (Cheng 3.1 pg. 6-7, The NAT44 device decides to pre-allocate a small port pool that contains 40 contiguous ports, from 3500 to 3540 … If at a later time, the port pool (3500-3540) is close to exhaustion, the NAT44 device pre-allocates a second port range in a similar fashion, with the same or different number of ports as in the first one, say from 8500 to 8800).
Similar rationale in claim 25 is applied.
As per claim 31, Iyer-Cheng-Ossipov-Kimn discloses the method according to claim 25, as set forth above, Iyer also discloses further comprising:
defining different sets (Iyer fig. 6, col. 12 lines 17-20, it determined that the data structure does not exist for a destination IP address and destination network port of the network communication session to be established, at 604, a data structure for the destination IP address and the destination network port is created and an identifier of the next available source network port for at least the specific combination of the destination IP address and the destination network port is obtained; Iyer col. 12 lines 41-42, creating the data structure includes receiving a range of available network ports; Iyer col. 9 lines 13-15, a different data structure that tracks available source network ports is maintained for at least each different pair of destination IP address and destination network port; Iyer col. 2 lines 44-47, the source port is allocated from a pool of ports shared only among sessions to the same destination IP address and destination port number) of pluralities of pre-allocated port groups (Cheng pg. 4, The NAT44 may allocates one or more port ranges, where each range contains a contiguous ports), each set associated with a different external destination IP address (Iyer col. 9 lines 13-15, a different data structure that tracks available source network ports is maintained for at least each different pair of destination IP address and destination network port; Iyer col. 2 lines 44-47, the source port is allocated from a pool of ports shared only among sessions to the same destination IP address and destination port number);
identifying, for a new packet flow, the port-group set (Iyer fig. 4, Determine available source network port using a data structure that is based on a destination IP address and destination network port at 404 and col. 8 lines 66-67 and col. 9 lines 1-6, the data structure tracks which source network ports (e.g., which port numbers) are available for a new network session within the source port number space for the specific destination IP address and destination network port. For example, rather than tracking available source network ports that are shared across an entire communication source IP address, the range of source network ports is shared only across at least the same destination IP address and destination network port of a particular source IP address) associated with an external destination IP address stored in a header field of the new flow (Iyer fig. 4, Receive session identification information identifying a network session to be established at 402 and col. 8 lines 11-18, the session identification information includes one or more packet header data items of a network packet to be sent via the network session. In some embodiments, the session identification information includes one or more of the following: a network destination identifier, a destination IP address, a destination network port, a network source identifier, a source IP address, a source network port); and
allocating, for the new packet flow, an external port address from a particular pre-allocated port group in the identified port-group set (Iyer fig. 4, Determine available source network port using a data structure that is based on a destination IP address and destination network port at 404 and Establish the network session using the determined available source network port at 406; Iyer col. 8 lines 66-67 and col. 9 lines 1-6, the data structure tracks which source network ports (e.g., which port numbers) are available for a new network session within the source port number space for the specific destination IP address and destination network port. For example, rather than tracking available source network ports that are shared across an entire communication source IP address, the range of source network ports is shared only across at least the same destination IP address and destination network port of a particular source IP address; Iyer cil. 9 lines 62-63, the network session is established using the determined available source network port).
Similar rationale in claim 25 is applied.
As per claim 32, Iyer-Cheng-Ossipov-Kimn discloses the method according to claim 31, as set forth above, Iyer-Kimn also discloses further comprising:
defining, for each external destination IP address, a connection-tracking data store for storing connection-tracking records (Iyer col. 9 lines 17-21, a different data structure that tracks available source network ports is maintained for different combinations of one or more of the following: destination IP address, destination network port, source IP address; Iyer col. 9 lines 49-50, the data structure include a list, a table, a bitmap, a hash table, a tree, a database, and any other data structure for storing data) that map allocated external source port addresses to internal source IP and port addresses within the network (Kimn fig. 12 and para. [0114], the main NAT table 1700 may store information of an internal source IP address, an internal source port, an external source port, an external source IP address, a destination IP address, and a destination port. These addresses and ports may be managed to correspond or be mapped to each other in one entry), said connection-tracking records for use in performing network address translation on packets of flows exiting the network (Iyer col. 8 lines 66-col. 9 lines 1-2, the data structure tracks which source network ports (e.g., which port numbers) are available for a new network session within the source port number space for the specific destination IP address and destination network port; Iyer col. 9 lines 62-66, the network session is established using the determined available source network port. In some embodiments, establishing the network session includes sending a network packet addressed using the determined source network port) and performing destination address translation on packets of flows entering the network (Iyer col. 9 lines 1-6, the data structure tracks which source network ports (e.g., which port numbers) are available for a new network session within the source port number space for the specific destination IP address and destination network port; Iyer col. 9 lines 47-55, a network packet of a network session is received. For example, the network session includes the network session requested in 402 and established in 406 of FIG. 4. In some embodiments, the network packet is received at a source network port identified in 404 of FIG. 4. For example, a recipient of a packet sent in 406 of FIG. 4 sends a response packet to the source IP address and source network port identified in the packet sent in 406 of FIG. 4).
Similar rationale in claim 25 is applied.
As per claim 33, Iyer-Cheng-Ossipov-Kimn discloses the method according to claim 25, as set forth above, Iyer-Cheng also disclose:
allocating a bitmap of available source ports (Iyer col. 2 lines 57-60, An available source network port is determined using a data structure that is based on a destination IP address and destination network port associated with the session identification information; Iyer col. 9 lines 52-53, a data structure for each independent grouping of assignable ranges of ports; Iyer col. 15 lines 66-67 CLM 15, at least one of the one or more data structures is a bitmap);
allocating contiguous blocks of source ports in the bitmap to different pre-allocated port groups (Iyer col. 13 lines 29-30, a bitmap is utilized as the data structure and the range of potentially available ports is pmin to pmax); and
using the bitmap to identify the pre-allocated port groups (Iyer col. 15 lines 66-67, at least one of the one or more data structures is a bitmap; Iyer col. 13 lines 27-30, The following pseudo code illustrates another example algorithm for obtaining the next available port. In this example, a bitmap is utilized as the data structure and the range of potentially available ports is pmin to pmax) and adjust the number of pre-allocated port groups (Cheng 3.1 pg. 6-7, The NAT44 device decides to pre-allocate a small port pool that contains 40 contiguous ports, from 3500 to 3540 … If at a later time, the port pool (3500-3540) is close to exhaustion, the NAT44 device pre-allocates a second port range in a similar fashion, with the same or different number of ports as in the first one, say from 8500 to 8800 … The NAT44 device may decide to de-allocate a pre-allocated port pool (or a sub-range of it) … suppose at a later time, all ports in the port pool (8500-8800) are not used and the NAT44 device decides to de-allocate all of them).
Similar rationale in claim 25 is applied.
Per claims 34-37 and 39-41, they do not teach or further define over the limitations in claims 25-28 and 31-33 respectively. As such, claims 34-37 and 39-41 are rejected for the same reasons as set forth in claim 25-28 and 31-33 respectively.
Claims 29-30 and 38 are rejected under 35 U.S.C. 103 as being unpatentable over Iyer et al. (US 9,781,075, Date of Patent: Oct. 3, 2017), in view of Cheng (NPL: NAT44 with Pre-allocated Ports, Pub. Date: March 11, 2011), in view of Ossipov et al. (US 2019/0245828, Pub. Date: Aug. 8, 2019), in view of Kimn et al. (US 2020/0145371, Filed: Jul. 8, 2019), in view of Vinapamula Venkata (US 8,942,235, Date of Patent: Jan.27,2015, hereinafter “Venkata”).
As per claim 29, Iyer-Cheng-Ossipov-Kimn discloses the method according to claim 25, as set forth above, Iyer-Cheng also discloses disclose wherein the plurality of pre-allocated groups is a first set of pre-allocated groups (Iyer col. 9 lines 52-53, each independent grouping of assignable ranges [pre-allocated port groups] of ports; Iyer col. 9 lines 44-48, this entire range of source network port numbers (e.g., e