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 .
This is responsive to amendment filed on 10/31/25. Claims 1, 3-9, 11-15, 17-20 are pending.
Response to Amendment
Claims 1, 9 and 15 are amended. Claims 1, 3-9, 11-15, 17-20 are pending.
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, 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.
Claim(s) 1, 3, 6-9, 11, 14, 15, 17 and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Hong et al. (US 2023/0254253 A1), hereinafter “Hong”, in view of Shalev et al. (US 2017/0187629 A1), hereinafter “Shalev”, in further view of Kabbani et al. (US Patent US 9,608,913 B1), hereinafter “Kabbani”
As to claim 1, Hong teaches a method for multi-path data transferring in a computer network (Hong ¶ [102], fig. 1), the method comprising:
establishing multiple paths in a connection a source port and a destination port (Hong ¶ [102]: A single channel may be allocated to each port and be connected to a port of a corresponding connected device by crossing a transmit-receive (TX-RX) pair. ¶ [108]: The segments into which the message is split by the message splitter may be transmitted by a physical connection or a virtual connection through parallel multiple channels (i.e. establishing paths by assigning source and destination ports));
detecting at least one of a first congestion level (Hong ¶ [144]: Buffer information may be used as information indicating congestion of an end-to-end transmission path for each channel.) and a first bandwidth of each path of the multiple paths ([182]: The first computing device may split the data into four segments and transmit the four segments to the first to fourth switches at the same respective bandwidths (i.e. detecting bandwidth of each channel));
partitioning a first data into multiple chunks, a number of the multiple chunks of the first data corresponding to a number of the multiple paths (Hong ¶ [108, 133]: The message splitter may split a message transmitted to the I/O controller in the computing device 700 into segments, and a maximum number of segments may be a number of channels NCH.), a size of each chunk of the multiple chunks of the first data being determined based on the detected at least one of the first congestion level (Hong ¶ [131-134, 140]: A computing device may determine the number of segments into which the message is to be split based on the message information, a maximum number NCH of channels, and a maximum payload size MMPS. Segment size M SG =M SZ+6˜8 [Byte]. Split message size M SZ =M SZ,total/ceiling(M SZ,total/M MPS) [Byte]. Flow control information may be information indicating network congestion for each channel. Based on the flow control information, the computing device may determine the number NCH, free of available channels to be used for segment transmission as the network congestion is less than a preset standard. The computing device may split the message based on the number NCH, free of available channels and MMPS, and NSG may be determined to be min [NCH, free, ceiling (MSZ, total/MMPS)] (i.e. segment size is determined based on congestion level of each channel)) and the first bandwidth of each path of the multiple paths; and respectively transferring the multiple chunks of the first data via the multiple paths ( Hong ¶ [16, 145]: The computing device may effectively split the message and transmit the split message using a buffer awareness or network congestion awareness in a network congestion situation independent of each channel, based on the buffer information.).
In an analogous art, Shalev discloses establishing multiple paths in a connection, where each of the multiple paths is defined by a four-tuple comprising a source port, a source Internet Protocol (IP) address, a destination IP address, and a destination port (such as the source and destination addresses and destination port, may be fixed and cannot be changed for the delivery of a packet. Some other fields, however, are optional and may be modified, which may affect the path a packet is routed but may not affect the safe delivery of the packet. Thus, such fields may be modified differently for different packets such that packets with same source IP address, destination IP address and destination port may be delivered on different paths, splitting a data flow between two endpoints or two IP addresses into a plurality of flowlets that each take different paths through a network, by manipulating a field in the data packet header, such as assigning different source ports in the packet header for some packets of the data flow, so that the packets may be routed to different physical ports of a switch and take different paths through a switched network fabric without using different IP address) (Shalev, ¶ 23, 57), wherein the multiple paths have a same source IP address, a same destination IP address, a same destination port, and different source ports (such as the source and destination addresses and destination port, may be fixed and cannot be changed for the delivery of a packet. Some other fields, however, are optional and may be modified, which may affect the path a packet is routed but may not affect the safe delivery of the packet. Thus, such fields may be modified differently for different packets such that packets with same source IP address, destination IP address and destination port may be delivered on different paths, splitting a data flow between two endpoints or two IP addresses into a plurality of flowlets that each take different paths through a network, by manipulating a field in the data packet header, such as assigning different source ports in the packet header for some packets of the data flow, so that the packets may be routed to different physical ports of a switch and take different paths through a switched network fabric without using different IP address) (Shalev, ¶ 23, 57).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention was made to implement’s Shalev’s teachings into Hong’s teaching of establishing multiple paths in a connection, where each of the multiple paths is defined by a four-tuple comprising a source port, a source Internet Protocol (IP) address, a destination IP address, and a destination port, wherein the multiple paths have a same source IP address, a same destination IP address, a same destination port, and different source ports. This combination improves the throughput of data transfer over a network and avoid network congestion by better utilizing the available network capacity.
However Hong-Shalev, does not explicitly disclose wherein a value of each source port of the plurality of source ports for the connection comprises a first portion and a second portion, the first portion of the value of each source port comprising a same prefix shared by the plurality of source ports, and the second portion of the value of each source port being different from each other and indicating an upper limit of source ports that belong to the same prefix.
In an analogous art, Kabbani discloses wherein a value of each source port of the plurality of source ports for the connection comprises a first portion and a second portion ([Col 9, 57-61]: The encoded prefixes (prefixes) P1, P2 in the table 500 are associated with the egress port_0 in the example discussed above with respect to FIG. 4. Accordingly, the prefixes P1, P2, in this example, would correspond with the integer range of 0-4.), the first portion of the value of each source port comprising a same prefix shared by the plurality of source ports ([Col 9, 50-67 and col 10, 1-36]: The table 500 may be generated using, for example, the method 400 discussed above. For example, the table 500 associates set of prefixes (TCAM prefixes) with a corresponding egress port, where the group of prefixes associated with a given egress port is determined by encoding an integer range that represents a WCMP weight for that egress port. port_0=(0-4)=>{000xx (0-3), 00100 (4)} port_1=(5-19)=>{00101 (5), 0011x (6-7), 01xxx (8-15), 100xx (16-19)} port_2=(20-27)=>{101xx (20-23), 110xx (24-27)} (i.e. as shown in above example the first portion of value for port comprises same prefix. For port_0, it is 000)), and the second portion of the value of each source port being different from each other ([Col 10, 22-33]: Naive range encoding may be used to encode the contiguous integer ranges corresponding with a set of WCMP routing weights to generate prefixes for a TCAM implemented WCMP routing table. In such an approach, the integer range is encoded into a set of binary values (prefixes) that represent the range. Where a specific bit for a binary prefix could be either a “1” or a “0”, the prefixes are encoded using wild cards (“x”) for those bits. port_0=(0-4)=>{000xx (0-3), 00100 (4) (i.e. as shown in above example for port_0, second portion xx is different from each other)).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention was made to implement’s Kabbani’s teachings into Hong’s- Shalev’s teaching of wherein a value of each source port of the plurality of source ports for the connection comprises a first portion and a second portion, the first portion of the value of each source port comprising a same prefix shared by the plurality of source ports, and the second portion of the value of each source port being different from each other and indicating an upper limit of source ports that belong to the same prefix. This combination improves order to determine group of prefixes associated with a given egress port by encoding an integer range.
As to claim 3, Hong- Shalev-Kabbani disclose the method of claim 1, Shalev disclose further comprising: determining source addresses and destination addresses of the multiple chunks of the first data based on a source address and a destination address of first data and the determined size of each chunk of the multiple chunks of the first data (FIG. 8 illustrates multiple paths 810 for a data communication between a source endpoint 802a and a destination endpoint 802b. As shown in FIG. 8, source context data 804a to a destination address may be split into a plurality of flowlets 806a, wherein packets in each flowlet may have a same packet header and thus may be routed through a same path. Packets in different flowlets may have a same source IP address, destination IP address and destination port, but may have different values in certain field of the packet header, wherein the values in the certain field of the packet header are used for routing. Thus, packets in different flowlets 806a may go from a same physical port 808a on a same source IP address to a same physical port 808b and different flowlets 806b on a same destination IP address by taking different paths 810 through network 850. An example of multiple-flowlet communication between a source node and a destination node using UDP as the transport layer protocol is described below) (Shalev, ¶ 23, 57, fig. 8). The Examiner supplies the same rationale for the combination of references Hong- Shalev-Kabbani as in Claim 1 above.
As to claim 6, Hong- Shalev-Kabbani disclose the method of claim 1, wherein the establishing of the multiple paths and the partitioning of the first data into multiple chunks are performed by running an algorithm of the computer network (Hong, ¶ [212]: The instructions or software may be written using any programming language based on the block diagrams and the flow charts illustrated in the drawings and the corresponding descriptions herein, which disclose algorithms for performing the operations that are performed by the hardware components and the methods as described above (i.e. establishing of multiple paths and partitioning of the data into multiple portions are done by the algorithm)).
As to claim 7, Hong- Shalev-Kabbani disclose the method of claim 1, Shalev discloses wherein the establishing of the multiple paths and the partitioning of the first data into multiple chunks are performed via a network interface card or a field programmable gate array of the computer network (FIG. 8 illustrates multiple paths 810 for a data communication between a source endpoint 802a and a destination endpoint 802b. As shown in FIG. 8, source context data 804a to a destination address may be split into a plurality of flowlets 806a, wherein packets in each flowlet may have a same packet header and thus may be routed through a same path. Packets in different flowlets may have a same source IP address, destination IP address and destination port, but may have different values in certain field of the packet header, wherein the values in the certain field of the packet header are used for routing. Thus, packets in different flowlets 806a may go from a same physical port 808a on a same source IP address to a same physical port 808b and different flowlets 806b on a same destination IP address by taking different paths 810 through network 850. An example of multiple-flowlet communication between a source node and a destination node using UDP as the transport layer protocol is described below) (Shalev, ¶ 23, 57, fig. 8). The Examiner supplies the same rationale for the combination of references Hong- Shalev-Kabbani as in Claim 1 above.
As to claim 8, Hong- Shalev-Kabbani disclose the method of claim 1, Shalev disclose further comprising: switching from a first path of the multiple paths to a second path of the multiple paths when a failure occurs in the first path (. ECMP is also a protection method because, during link failure, traffic flow can be transferred quickly to another equal cost path without severe loss of traffic. With ECMP, equal cost paths can be stored in a load balancing table in a forwarding layer of a router. Upon a detection of a link failure, data traffic can be distributed between the rest of the equal paths within a sub-second and without severe loss of traffic) (Shalev, ¶ 23, 49, fig. 7), wherein the first path corresponds to a first source port of the plurality of source ports, and the second path corresponds to a second source port of the plurality of source ports (. ECMP is also a protection method because, during link failure, traffic flow can be transferred quickly to another equal cost path without severe loss of traffic. With ECMP, equal cost paths can be stored in a load balancing table in a forwarding layer of a router. Upon a detection of a link failure, data traffic can be distributed between the rest of the equal paths within a sub-second and without severe loss of traffic) (Shalev, ¶ 23, 49, fig. 7). The Examiner supplies the same rationale for the combination of references Hong- Shalev-Kabbani as in Claim 1 above.
Claims 9, 11, 14 list all the same elements of claims 1, 3 8, but in a computer network system for multi-path data transferring, the system comprising: a memory to store a first data; a processor (Hong, ¶ 102, fig. 1) to carry out method. Therefore, the supporting rationale of the rejection to claims 1, 3 8 applies equally as well to claims 9, 11, 14.
Claims 15, 17, 20 list all the same elements of claims 1, 3 8, but in a non-transitory computer-readable medium having computer- executable instructions stored thereon that, upon execution, cause one or more processors to perform operations comprising (Hong, ¶ 102, fig. 1) to carry out method. Therefore, the supporting rationale of the rejection to claims 1, 3 8 applies equally as well to claims 15, 17, 20.
Claim(s) 4-5, 12-13, 18-19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Hong et al. (US 2023/0254253 A1), hereinafter “Hong”, in view of Shalev et al. (US 2017/0187629 A1), hereinafter “Shalev”, in further view of Kabbani et al. (US Patent US 9,608,913 B1), hereinafter “Kabbani” as applied above, in further view of Baek (US 2006/0259845 A1).
As to claim 4, Hong- Shalev-Kabbani disclose the method of claim 1, but does not explicitly disclose further comprising: detecting at least one of a second congestion level and a second bandwidth of each path of the multiple paths; partitioning a second data into multiple chunks, a number of the multiple chunks of the second data corresponding to the number of the multiple paths, a size of each chunk of the multiple chunks of the second data being determined based on the detected at least one of the second congestion level and the second bandwidth of each path of the multiple paths; and respectively transferring the multiple chunks of the second data via the multiple paths.
In an analogous art, Baek discloses detecting at least one of a second congestion level and a second bandwidth of each path of the multiple paths (a total bandwidth that may be provided by the protocol engine 510 in the computing device may correspond to a total of 32 lanes, whereas a maximum required bandwidth of the entire multi-node connected devices may correspond to a total of 64 lanes. Thus, there may be a bandwidth imbalance between the computing device and the multi-node connected devices. However, the bandwidth imbalance may be resolved or minimized through the parallel channel that is based on the switches 520. To resolve the bandwidth imbalance, the switches 520 may have a buffer or queue function for storing packets when network congestion occurs, and a flow control function for propagating network congestion situation to peripheral devices and allowing the devices to recognize the network congestion situation. When splitting a message, a computing device may use one or more of: message information associated with a length of the message, flow control information indicating network congestion for each channel, medium access control information associated with a channel state of a data link layer for each channel, and/or buffer information associated with congestion of an end-to-end transmission path for each channel.) (Baek, ¶ 99, 131, 144); partitioning a second data into multiple chunks, a number of the multiple chunks of the second data corresponding to the number of the multiple paths, a size of each chunk of the multiple chunks of the second data being determined based on the detected at least one of the second congestion level and the second bandwidth of each path of the multiple paths (Buffer information may be used as information indicating congestion of an end-to-end transmission path for each channel. Based on the buffer information, the computing device may determine the number N.sub.CH, free of available channels to be used for segment transmission as the congestion of the end-to-end transmission path is less than a preset standard. The computing device may split the message based on the number N.sub.CH, of free available channels and M.sub.MPS, and N.sub.SG may be determined to be min [N.sub.CH, free, ceiling (M.sub.SZ, total/M.sub.MPS)]. The number N.sub.CH, of free available channels may be determined to be the count of (L.sub.n, buf<L.sub.buf_thres, n=1, 2, . . . , N.sub.CH), which may be limited to a case in which a buffer length is less than or equal to a specific threshold value. Additionally, using the buffer information, the computing device may select a channel that generates less time delay by queuing on the end-to-end transmission path while causing less network congestion, and select a multi-path through which the message is to be transmitted) (Baek, ¶34); and respectively transferring the multiple chunks of the second data via the multiple paths (The computing device may split the message based on the number N.sub.CH, of free available channels and M.sub.MPS, and N.sub.SG may be determined to be min [N.sub.CH, free, ceiling (M.sub.SZ, total/M.sub.MPS)]. The number N.sub.CH, of free available channels may be determined to be the count of (L.sub.n, buf<L.sub.buf_thres, n=1, 2, . . . , N.sub.CH), which may be limited to a case in which a buffer length is less than or equal to a specific threshold value. Additionally, using the buffer information, the computing device may select a channel that generates less time delay by queuing on the end-to-end transmission path while causing less network congestion, and select a multi-path through which the message is to be transmitted) (Baek, ¶34, 144).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention was made to implement’s Baek teachings into Hong- Shalev-Kabbani’s teaching of detecting at least one of a second congestion level and a second bandwidth of each path of the multiple paths; partitioning a second data into multiple chunks, a number of the multiple chunks of the second data corresponding to the number of the multiple paths, a size of each chunk of the multiple chunks of the second data being determined based on the detected at least one of the second congestion level and the second bandwidth of each path of the multiple paths; and respectively transferring the multiple chunks of the second data via the multiple paths. This combination effectively provides control the bandwidth imbalance by handing the bandwidth imbalance that occurs temporarily in an internal buffer or queue.
As to claim 5, Hong- Shalev-Kabbani-Baek disclose the method of claim 4, but does not disclose further comprising: a receiving end receiving the multiple chunks of the second data at the destination port at a same time (The receiving node receives data chunks from the sending node in step 500. The receiving node generates bitwise ACK information for each chunk after a cumulative ACK in step 510) (Baek, ¶34); and the receiving end notifying an application layer of the computer network upon receiving all of the multiple chunks of the first data and the multiple chunks of the second data from a sending end (The receiving node transmits, to the sending node, a predetermined message in which the bitwise ACK information is recoded in a word in reverse order from the Least Significant Bit (LSB) in step 520. The sending node analyzes the bitwise ACK information of the received message and then retransmits data to the receiving node in step 530) (Baek, ¶34);
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention was made to implement’s Baek teachings into Hong- Shalev-Kabbani’s teaching of a receiving end receiving the multiple chunks of the second data at the destination port at a same time; and the receiving end notifying an application layer of the computer network upon receiving all of the multiple chunks of the first data and the multiple chunks of the second data from a sending end. This combination effectively provides bitwise ACK information.
Claims 12-13 list all the same elements of claims 4-5, but in a computer network system for multi-path data transferring, the system comprising: a memory to store a first data; a processor (Hong, ¶ 102, fig. 1) to carry out method. Therefore, the supporting rationale of the rejection to claims 4-5 applies equally as well to claims 12-13.
Claims 18-19 list all the same elements of claims 4-5, but in a non-transitory computer-readable medium having computer- executable instructions stored thereon that, upon execution, cause one or more processors to perform operations comprising (Hong, ¶ 102, fig. 1) to carry out method. Therefore, the supporting rationale of the rejection to claims 4-5 applies equally as well to claims 18-19.
Response to Arguments
(A) Applicant argues "... Applicant respectfully traverses these rejections for at least the following reasons. Amended independent claim 1 recites, among other things, the following features: establishing multiple paths in a connection, where each of the multiple paths is defined by a four-tuple comprising a source port, a source Internet Protocol (IP) address, a destination IP address, and a destination port, wherein the multiple paths have a same source IP address, a same destination IP address, a same destination port, and different source ports. (Emphasis added). Applicant respectfully submits that the cited references, whether considered alone or in combination, have not been shown to disclose, teach, or suggest the above-noted portion of amended claim 1...” (from remarks pages 8-10).
As to point (A), Examiner respectfully disagrees, in the manner of applicants specification, Shalev discloses establishing multiple paths in a connection, where each of the multiple paths is defined by a four-tuple comprising a source port, a source Internet Protocol (IP) address, a destination IP address, and a destination port (such as the source and destination addresses and destination port, may be fixed and cannot be changed for the delivery of a packet. Some other fields, however, are optional and may be modified, which may affect the path a packet is routed but may not affect the safe delivery of the packet. Thus, such fields may be modified differently for different packets such that packets with same source IP address, destination IP address and destination port may be delivered on different paths, splitting a data flow between two endpoints or two IP addresses into a plurality of flowlets that each take different paths through a network, by manipulating a field in the data packet header, such as assigning different source ports in the packet header for some packets of the data flow, so that the packets may be routed to different physical ports of a switch and take different paths through a switched network fabric without using different IP address) (Shalev, ¶ 23, 57), wherein the multiple paths have a same source IP address, a same destination IP address, a same destination port, and different source ports (such as the source and destination addresses and destination port, may be fixed and cannot be changed for the delivery of a packet. Some other fields, however, are optional and may be modified, which may affect the path a packet is routed but may not affect the safe delivery of the packet. Thus, such fields may be modified differently for different packets such that packets with same source IP address, destination IP address and destination port may be delivered on different paths, splitting a data flow between two endpoints or two IP addresses into a plurality of flowlets that each take different paths through a network, by manipulating a field in the data packet header, such as assigning different source ports in the packet header for some packets of the data flow, so that the packets may be routed to different physical ports of a switch and take different paths through a switched network fabric without using different IP address) (Shalev, ¶ 23, 57).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. See PTO-892.
Jorgensen (US 2002/0099854 A1) disclose A packet-centric wireless point to multi-point telecommunications system includes: a wireless base station communicating via a packet-centric protocol to a first data network; one or more host workstations communicating via the packet-centric protocol to the first data network; one or more subscriber customer premise equipment (CPE) stations coupled with the wireless base station over a shared bandwidth via the packet-centric protocol over a wireless medium; and one or more subscriber workstations coupled via the packet-centric protocol to each of the subscriber CPE stations over a second network. The packet-centric protocol can be transmission control protocol/internet protocol (TCP/IP). The packet-centric protocol can be a user datagram protocol/internet protocol (UDP/IP). The system can include a resource allocation means for allocating shared bandwidth among the subscriber CPE stations. The resource allocation is performed to optimize end-user quality of service (QoS). The wireless communication medium can include at least one of: a radio frequency (RF) communications medium; a cable communications medium; and a satellite communications medium. The wireless communication medium can further include a telecommunications access method including at least one of: a time division multiple access (TDMA) access method; a time division multiple access/time division duplex (TDMA/TDD) access method; a code division multiple access (CDMA) access method; and a frequency division multiple access (FDMA) access method.
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to HITESH R PATEL whose telephone number is (571)270-5442. The examiner can normally be reached Monday-Friday 7am-3pm.
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, James Trammell can be reached at 571-272-6712. 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.
/Hitesh Patel/Supervisory Patent Examiner, Art Unit 3667
6/8/26