Client-server session parallelism
First Claim
1. A computer-readable storage device configured with data and with instructions to perform a process for network communication which transforms multiple remote copies into a single local copy of a data item, the process utilizing a client device which has at least one logical processor in operable communication with at least one memory, the process comprising the steps of:
- establishing at the client device a first network communication session between an application running on the client device and a first remote server;
establishing at the client device a second network communication session between the application running on the client device and a second remote server;
requesting from the first remote server, within the first network communication session and on behalf of the application, a first copy of a first unsegmented data item, wherein the first unsegmented data item is unsegmented in that it has not been subjected to segmentation at a network stack level above a network stack packetization level;
requesting from the second remote server, within the second network communication session and on behalf of the application, a second copy of the first unsegmented data item; and
providing to the application only one copy of the first unsegmented data item, namely, whichever copy of the first unsegmented data item is received earliest at the client device.
2 Assignments
0 Petitions
Accused Products
Abstract
Using client-server session parallelism (CSSP), a client device establishes multiple network communication sessions with different remote servers and requests the same unsegmented data item from each server. Whichever copy of the unsegmented data item is received earliest at the client device is provided to an application. The CSSP software may be part of a network stack, or it may be part of a particular application such as a browser or a media player. The servers are not necessarily CSSP-aware, but when they are, sessions may be load-balanced. CSSP sessions may also be transferred to other CSSP-aware servers in view of server loads, imminent server reboots, or other events. A CSSP client may notify a CSSP server of status information describing session(s) established at the client with other server(s), allowing the server to reallocate bandwidth to other clients when the CSSP client has sufficient alternate data sources.
-
Citations
20 Claims
-
1. A computer-readable storage device configured with data and with instructions to perform a process for network communication which transforms multiple remote copies into a single local copy of a data item, the process utilizing a client device which has at least one logical processor in operable communication with at least one memory, the process comprising the steps of:
-
establishing at the client device a first network communication session between an application running on the client device and a first remote server; establishing at the client device a second network communication session between the application running on the client device and a second remote server; requesting from the first remote server, within the first network communication session and on behalf of the application, a first copy of a first unsegmented data item, wherein the first unsegmented data item is unsegmented in that it has not been subjected to segmentation at a network stack level above a network stack packetization level; requesting from the second remote server, within the second network communication session and on behalf of the application, a second copy of the first unsegmented data item; and providing to the application only one copy of the first unsegmented data item, namely, whichever copy of the first unsegmented data item is received earliest at the client device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A process for network communication which transforms multiple remote copies of a data item into a single local copy of the data item, the process utilizing a client device which has at least one logical processor in operable communication with at least one memory, and utilizing at least two servers, each server having at least one logical processor in operable communication with at least one memory, the process comprising the steps of:
-
establishing a first network communication session between the client device and a first server; establishing a second network communication session between the client device and a second server; the client device requesting from the first server, within the first network communication session, a copy of an unsegmented data item, wherein the unsegmented data item is unsegmented in that it has not been subjected to segmentation at a network stack level above a network stack packetization level; the client device requesting from the second server, within the second network communication session, a copy of the same unsegmented data item; the client device receiving at least a portion of the unsegmented data item from at least one of the servers; and the client device displaying the received portion. - View Dependent Claims (11, 12, 13)
-
-
14. A client device comprising:
-
at least one logical processor; a memory in operable communication with the logical processor(s); and a client-server-session-parallelism module residing in the memory and operable to initiate multiple sessions with multiple servers requesting a given unsegmented data item in each session, wherein the given unsegmented data item is unsegmented in that it has not been subjected to segmentation at a network stack level above a network stack packetization level. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification