System and method of TCP tunneling
First Claim
1. A Transmission Control Protocol (TCP) tunnel for transmitting data between a computer and a network, comprising:
- a modified transport layer configured to execute on the computer, wherein the computer includes a TCP stack having a plurality of protocol layers, one of the plurality of protocol layers is a transport layer, and the modified transport layer executes in parallel with the transport layer;
an interface configured to communicate with the modified transport layer and with at least one protocol layer higher than the transport layer, the interface configured to receive a payload from a calling application executing on the at least one protocol layer higher than the transport layer; and
a packet capture module configured to execute on the modified transport layer, wherein the modified transport layer is executable to receive the payload from the interface, encapsulate the payload as a TCP segment and insert the TCP segment into the TCP stack on the computer, the packet capture module is configured to receive data from the TCP stack on the computer and to provide the data to the modified transport layer, and the modified transport layer is executable to receive the data from the packet capture module, determine whether a TCP segment is encapsulated in the data, transmit the data to the calling application when a TCP segment is encapsulated in the data, and transmit the data to the transport layer when no TCP segment is encapsulated in the data.
1 Assignment
0 Petitions
Accused Products
Abstract
Tunneling is a mechanism used to aggregate payloads from a network protocol at or below the tunneling layer into a single packet. A user-space application establishes a Transmission Control Protocol (TCP) tunnel and encapsulates an end-to-end TCP payload into a TCP segment for transmission over a TCP connection. This enhanced TCP tunnel eliminates TCP meltdown and can be used over any network which supports TCP. The calling application either identifies the parameters of an existing TCP socket or establishes a new TCP socket. A modified transport layer uses the identified TCP connection in forming the enhanced TCP tunnel. The enhanced TCP tunnel manages the data transmission on the TCP stack to eliminate TCP meltdown.
74 Citations
18 Claims
-
1. A Transmission Control Protocol (TCP) tunnel for transmitting data between a computer and a network, comprising:
- a modified transport layer configured to execute on the computer, wherein the computer includes a TCP stack having a plurality of protocol layers, one of the plurality of protocol layers is a transport layer, and the modified transport layer executes in parallel with the transport layer;
an interface configured to communicate with the modified transport layer and with at least one protocol layer higher than the transport layer, the interface configured to receive a payload from a calling application executing on the at least one protocol layer higher than the transport layer; and
a packet capture module configured to execute on the modified transport layer, wherein the modified transport layer is executable to receive the payload from the interface, encapsulate the payload as a TCP segment and insert the TCP segment into the TCP stack on the computer, the packet capture module is configured to receive data from the TCP stack on the computer and to provide the data to the modified transport layer, and the modified transport layer is executable to receive the data from the packet capture module, determine whether a TCP segment is encapsulated in the data, transmit the data to the calling application when a TCP segment is encapsulated in the data, and transmit the data to the transport layer when no TCP segment is encapsulated in the data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
- a modified transport layer configured to execute on the computer, wherein the computer includes a TCP stack having a plurality of protocol layers, one of the plurality of protocol layers is a transport layer, and the modified transport layer executes in parallel with the transport layer;
-
12. A method of transmitting data between a computer and a network using a Transmission Control Protocol (TCP) tunnel, comprising the steps of:
- passing connection parameters for a TCP socket from an application executing on the computer to an interface executing on the computer, wherein the computer includes a TCP stack having a plurality of protocol layers, one of the plurality of protocol layers is a transport layer, and the application is executing at a protocol layer higher than the transport layer;
initializing a modified transport layer executing on the computer using the connection parameters;
obtaining a sequence number and an acknowledgement number for a TCP connection from the connection parameters;
accepting an incoming payload from a calling application with the modified transport layer;
constructing a TCP segment in the modified transport layer using the payload and the sequence number and the acknowledgment number for the established TCP connection;
inserting the TCP segment at or below the transport layer of the TCP stack;
receiving data from the TCP stack with the modified transport layer;
determining whether a TCP segment is encapsulated in the data, transmitting the data to the application via the modified transport layer when a TCP segment is encapsulated in the data; and
transmitting the data to the transport layer when no TCP segment is encapsulated in the data. - View Dependent Claims (13, 14, 15, 16, 17, 18)
- passing connection parameters for a TCP socket from an application executing on the computer to an interface executing on the computer, wherein the computer includes a TCP stack having a plurality of protocol layers, one of the plurality of protocol layers is a transport layer, and the application is executing at a protocol layer higher than the transport layer;
Specification