Modified Methods and System of Transmitting and Receiving Transmission Control Protocol Segments Over Internet Protocol Packets

20220224779 ยท 2022-07-14

Assignee

Inventors

Cpc classification

International classification

Abstract

The present disclosure provides systems and methods which increase the throughput of a TCP-based communication between a first network node and a second network node. First, the first network node sent a first plurality of TCP segments to the second network node. Second, when the second network node receives a second plurality of TCP segments, which is all or part of the first plurality of the TCP segments, the second network node responds by sending one or more TCP acknowledgements to the first network node with the last sequence number of a last segment among all TCP segment within the second plurality of TCP segments. The present disclosure are able to increase the throughput of a TCP connection while decreasing its reliability.

Claims

1. A method of sending and receiving datagrams between a first network node and a second network node using TCP protocol, comprising: a. at the first network node, sending a first plurality of TCP segments to the second network node; b. at the second network node, receiving a second plurality of TCP segments, wherein the second plurality of TCP segments is the first plurality of TCP segments or a part of the first plurality of TCP segments; and c. at the second network node, responding to the second plurality of TCP segments by sending one or more TCP acknowledgments to the first network node; wherein the one or more TCP acknowledgements include a TCP acknowledgement corresponding to a next byte number expected sequential to a last byte number of a last segment among all TCP segments within the second plurality of TCP segments; wherein the first plurality of TCP segments encapsulates one or more datagrams originated from at least one host connected to a local area network of the first network node.

2. The method of claim 1, further comprising: d. at the first network node, sending a third plurality of TCP segments to the second network node regardless of the acknowledgement number in the one or more TCP acknowledgements received from the second network node.

3. The method of claim 2, wherein the sending of the third plurality of TCP segments by the first network node, is performed after receiving a message from the second network node for successfully receiving at least one of the first plurality of TCP segments.

4. The method of claim 1, wherein the second plurality of TCP segments encapsulates datagrams originated from a host connected to a local area network of the second network node.

5. The method of claim 1, wherein the first plurality of TCP segments encapsulates datagrams belonging to a plurality of sessions.

6. The method of claim 1, wherein the first plurality of TCP segments is sent through at least two wide area network interfaces.

7. The method of claim 6, wherein the first plurality of TCP segments is sent through a plurality of TCP connections, and wherein the plurality of TCP connections are aggregated to form an aggregated tunnel.

8. The method of claim 1, wherein packets of the first plurality of TCP segments when sent through the same wide area networks belong to the same TCP session.

9. The method of claim 1, further comprising: d. at the first network node retransmitting datagrams to the second network node, wherein the datagrams were originally encapsulated in packets of the first plurality of TCP segments that are not received by the second network node.

10. The method of claim 1, wherein step (a) is performed without waiting for any TCP acknowledgement from the second network node.

11. A system for sending and receiving datagrams between a first network node and second network node using TCP protocol, comprising: the first network node; and the second network node; wherein the first network node comprises: a first at least one processing unit; a first plurality of network interfaces; and a first at least one non-transitory storage medium; wherein the second network node comprises: a second at least one processing unit; a second plurality of network interfaces; and a second at least one non-transitory storage medium; wherein the first at least one non-transitory storage medium stores program instructions executable by the first at least one processing unit for sending a first plurality of TCP segments to the second network node; wherein the second at least one non-transitory storage medium stores program instructions executable by the second at least one processing unit for: a. receiving a second plurality of TCP segments, wherein the second plurality of TCP segments is a part of, but not all of, the first plurality of TCP segments; and b. responding to the second plurality of TCP segments by sending one or more TCP acknowledgments to the first network node; wherein the one or more TCP acknowledgments include at least one TCP acknowledgment corresponding to a last byte number of a last segment among all TCP segments in the second plurality of TCP segments; wherein the first plurality of TCP segments encapsulates datagrams originated from at least one host connected to a local area network of the first network node.

12. The system of claim 11, wherein the first at least one non-transitory storage medium further stores program instructions executable by the first at least one processing unit for sending a third plurality of TCP segments to the second network node regardless of sequence numbers in the one or more TCP acknowledgments received from the second network node.

13. The system of claim 12, wherein the sending of the third plurality of TCP segments is performed after receiving a message from the second network node for successfully receiving at least one of the first plurality of TCP segments.

14. The system of claim 11, wherein the second plurality of TCP segments encapsulates datagrams originated from a host connected to a local area network of the second network node.

15. The system of claim 11, wherein the first plurality of TCP segments encapsulates datagrams belonging to a plurality of sessions.

16. The system of claim 11, wherein the first plurality of TCP segments are sent through at least two wide area network interfaces.

17. The system of claim 16, wherein the first plurality of TCP segments are sent through a plurality of TCP connections, and wherein the plurality of TCP connections are aggregated to form an aggregated tunnel.

18. The system of claim 11, wherein packets of the first plurality of TCP segments when sent through the same wide area networking belong to the same TCP session.

19. The system of claim 11, wherein the first at least one non-transitory storage medium further storing program instructions executable by the first at least one processing unit for transmitting datagrams to the second network node, wherein the datagrams were originally encapsulated in packets of the first plurality of TCP segments that are not received by the second network node.

20. The system of claim 11, wherein step (a) is performed without waiting for any TCP acknowledgement from the second network node.

Description

BRIEF DESCRIPTION OF DRAWINGS

[0137] FIG. 1A illustrates the first part of a sequence diagram based on a prior art TCP implementation.

[0138] FIG. 1B illustrates the last part of the sequence diagram shown in FIG. 1A.

[0139] FIG. 2A illustrates a sequence diagram of a TCP implementation using one TCP session based on one embodiment of the present invention.

[0140] FIG. 2B illustrates a sequence diagram of a TCP implementation using two TCP sessions based on one embodiment of the present invention.

[0141] FIG. 3 illustrates a network diagram where a plurality of network nodes can communicate with each other based on the TCP implementation according to one embodiment of the present invention.

[0142] FIG. 4 illustrates steps performed by a network router to transmit data according to one embodiment of the present invention.

[0143] FIG. 5 illustrates steps performed by a network router to transmit data according to one embodiment of the present invention.

[0144] FIG. 6 illustrates a block diagram of a network router that is capable of transmitting data according to one embodiment of the present invention.

[0145] FIG. 7 illustrates a block diagram of encapsulation method of a PDU.

[0146] FIG. 8 illustrates steps performed by a network router to select a protocol to use to transmit data according to one embodiment of the present invention.

[0147] FIG. 9 illustrates steps performed by a network router to select a protocol to use to transmit data according to one embodiment of the present invention.

[0148] FIG. 10 illustrates steps performed by a network router to select a protocol to use to transmit data according to one embodiment of the present invention.