IP Library Granted Patent US 10,075,498
Granted Patent B2
US 10,075,498 · App. 13/725,237 · Granted Sep 11, 2018

Systems and methods for transmitting data in real time

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,075,498
App. No.
13/725,237
Granted
Sep 11, 2018
Kind
B2
Abstract

Systems and methods described herein facilitate the transmission of data in real time by using TCP connections such that the latency issues incurred from packet loss is prevented. A server is in communication with a client, wherein the server is configured to facilitate forming a plurality of TCP connections with the client. The server is also configured to receive one or more requests from the client via the TCP connections, wherein at least one of the requests corresponds to a request to receive data in real time. The server is configured to separate the real-time data into a succession of data sets and associate the data sets to the TCP connections such that each of the succession of data sets is associated with a separate TCP connection. Each of the succession of data sets is transmitted to the client via the associated separate TCP connections.

Claims (47)

1. A system comprising:

a server in communication with a client, wherein said server is configured to:

facilitate forming a plurality of transmission control protocol (TCP) connections with the client;

receive one or more requests from the client via the plurality of TCP connections, wherein at least one of the one or more requests corresponds to a request to receive data in real time;

separate the real-time data into a succession of data sets based on the order in which frames of the real-time data are received by placing a first predetermined number of received frames into a first data set and each consequent predetermined number of received frames into a corresponding consequent data set;

associate the succession of data sets to the plurality of TCP connections such that each of the succession of data sets is associated with a separate TCP connection of the plurality of TCP connections; and

transmit each of the succession of data sets to the client via the associated separate TCP connections.

2. The system of claim 1 , wherein said server is further configured to transmit each of the succession of data sets to the client in a sequence via the associated separate TCP connections.

3. The system of claim 1 , wherein at least one of the one or more requests corresponds to a request for video data in real time.

4. The system of claim 1 , wherein at least one of the one or more requests corresponds to a request for audio data in real time.

5. The system of claim 1 , further comprising a computing device that is in communication with said server.

6. The system of claim 5 , wherein said server is further configured to receive the real-time data from said computing device.

7. The system of claim 1 , wherein the succession of data sets includes a plurality of frames.

8. The system of claim 1 , wherein said server is further configured to:

facilitate forming one or more control channels with the client; and

transmit informational data regarding the real-time data to the client via the one or more control channels.

9. At least one non-transitory computer-readable storage medium having computer-executable instructions embodied thereon, wherein, when executed by at least one processor, the computer-executable instructions cause the at least one processor to:

facilitate forming a plurality of transmission control protocol (TCP) connections with a client;

receive one or more requests from the client via the plurality of TCP connections, wherein at least one of the one or more requests corresponds to a request to receive data in real time;

separate the real-time data into a succession of data sets based on the order in which frames of the real-time data are received by placing a first predetermined number of received frames into a first data set and each consequent predetermined number of received frames into a corresponding consequent data set;

associate the succession of data sets to the plurality of TCP connections such that each of the succession of data sets is associated with a separate TCP connection of the plurality of TCP connections; and

transmit each of the succession of data sets to the client via the associated separate TCP connections.

10. The at least one non-transitory computer-readable storage medium of claim 9 , wherein the computer-executable instructions further cause the at least one processor to transmit each of the succession of data sets to the client in a sequence via the associated separate TCP connections.

11. The at least one non-transitory computer-readable storage medium of claim 9 , wherein the computer-executable instructions further cause the at least one processor to receive the real-time data from a computing device.

12. The at least one non-transitory computer-readable storage medium of claim 9 , wherein one of the one or more requests corresponds to a request for video data in real time.

13. The at least one non-transitory computer-readable storage medium of claim 9 , wherein at least one of the one or more requests corresponds to a request for audio data in real time.

14. The at least one non-transitory computer-readable storage medium of claim 9 , wherein the succession of data sets includes a plurality of frames.

15. The at least one non-transitory computer-readable storage medium of claim 9 , wherein the computer-executable instructions further cause the at least one processor to:

facilitate forming one or more control channels with the client; and

transmit informational data regarding the real-time data to the client via the one or more control channels.

16. A method for transmitting data in real time, said method comprising:

facilitating the formation of a plurality of transmission control protocol (TCP) connections with a client;

receiving one or more requests from the client via the plurality of TCP connections, wherein at least one of the one or more requests corresponds to a request to receive data in real time;

separating the real-time data into a succession of data sets based on the order in which frames of the real-time data are received by placing a first predetermined number of received frames into a first data set and each consequent predetermined number of received frames into a corresponding consequent data set;

associating the succession of data sets to the plurality of TCP connections such that each of the succession of data sets is associated with a separate TCP connection of the plurality of TCP connections; and

transmitting each of the succession of data sets to the client via the associated separate TCP connections.

17. The method of claim 16 , wherein transmitting each of the succession of data sets comprises transmitting each of the succession of data sets to the client in a sequence via the associated separate TCP connections.

18. The method of claim 16 , further comprising receiving the real-time data from a computing device.

19. The method of claim 16 , wherein receiving one or more requests from the client comprises receiving one or more requests from the client via the plurality of connections such that at least one of the one or more requests corresponds to a request for video data in real time.

20. The method of claim 16 , wherein receiving one or more requests from the client comprises receiving one or more requests from the client via the plurality of connections such that at least one of the one or more requests corresponds to a request for audio data in real time.

21. A system comprising:

a client in communication with a server via a plurality of transmission control protocol (TCP) connections, wherein said client is configured to:

transmit one or more requests to the server via the plurality of TCP connections, wherein at least one of the one or more requests corresponds to a request to receive data in real time;

receive a succession of data sets that correspond to the real-time data from the server via the plurality of TCP connections, wherein the real-time data is separated into the succession of data sets based on the order of frames in the real-time data such that a first predetermined number of frames are placed into a first data set and each consequent predetermined number of frames are placed in a corresponding consequent data set, wherein each of the succession of data sets is associated with a separate TCP connection of the plurality of TCP connections such that each of the succession of data sets is received via the associated separate TCP connection;

identify which of the received succession of data sets is received later than a predefined period of time; and

discard each of the identified data sets.

22. A system of claim 21 , wherein said client is further configured to present the succession of data sets that are received within the predefined period of time to an end user.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2012
From: CLARK, JONATHAN
To: VMWARE, INC.
Reel/Frame 029521/0706 →