# US 9,521,439 B1 · Systems and methods for correlating multiple TCP sessions for a video transfer

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,521,439 B1
- Document ID: US9521439B1
- Status: Granted
- Kind: B1
- Application number: 13/252,574
- Filed: 2011-10-04
- Granted: 2016-12-13
- Earliest claimed: 2011-10-04
- Assignees: Cisco Technology, Inc.
- Applicants: Wei-Jen Hsu; Biswaranjan Panda; Jayaraman Iyer; Bhaskar Bhupalam; Pranav Bhargava
- Inventors: Wei-Jen Hsu; Biswaranjan Panda; Jayaraman Iyer; Bhaskar Bhupalam; Pranav Bhargava
- Web page: https://patentgrep.com/patent/US9521439B1

## CPC

- H04N 21/234345: {the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment}
- H04L 65/401: wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
- H04L 65/61: for supporting one-way streaming services, e.g. Internet radio
- H04L 65/65: Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/14: Session management (for real-time applications in data packet communications networks H04L65/1066)
- H04L 69/161: {Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields}
- H04N 21/64746: {Control signals issued by the network directed to the server or the client}
- H04N 21/8358: involving watermark {(protecting executable software by watermarking G06F21/16; image watermarking in general G06T1/0021; watermarks inserted in still images for transmission purposes H04N1/32144; inserting watermarks during video coding H04N19/467)}
- H04N 5/76: Television signal recording
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

User equipments can download a video file by instantiating multiple video requests, each request specifying different parts of the video file. If each video request initiates a separate transmission control protocol (TCP) session, which is the case with an hypertext transfer protocol (HTTP) partial get request, then a network device in a communications network would be oblivious of contextual information, which indicates that the TCP sessions download different portions of the same video file. This disclosure provides systems and methods for correlating multiple TCP sessions so that a network device in a communications network can be aware of the contextual information.

## Claims

### Claim 1

A method comprising:
receiving, at a gateway in communication with at least one mobile device over a communication network having a wireless network, a first video request over a first transmission control protocol (TCP) session and a second video request over a second TCP session, wherein portions of the first TCP session and the second TCP session are established over the wireless network;
deriving a first identification of a first video file requested by the first video request, wherein deriving the first identification of the first video file includes deriving a first video signature based, at least in part, on a media content of the first video file;
deriving a second identification of a second video file requested by the second video request, wherein deriving the second identification of the second video file includes deriving a second video signature based, at least in part, on a media content of the second video file; and
comparing, at the gateway, the first identification and the second identification to determine that the first TCP session and the second TCP session are correlated.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving metadata of the first video file over the first TCP session; and
associating the metadata of the first video file with the second TCP session.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
indicating that the first TCP session and the second TCP session are associated with a single selection of the first video file; and
adding one count, for the first TCP session and the second TCP session, to a counter that is configured to maintain a number of distinct selections of the first video file.

### Claim 4 (depends on 1)

The method of claim 1, wherein receiving the first video request over the first TCP session and the second video request over the second TCP session includes receiving a first HTTP partial get request over the first TCP session and a second HTTP partial get request over the second TCP session.

### Claim 5 (depends on 4)

The method of claim 4, wherein deriving the first identification of the first video file includes deriving a first video location identifier of the first video file specified in the first video request, and deriving the second identification of the second video file includes deriving the second video location identifier of the second video file specified in the second video request.

### Claim 6 (depends on 5)

The method of claim 5, wherein deriving the first video location identifier of the first video file includes reading a “Request-URI” field of the first video request, and wherein deriving the second video location identifier of the second video file includes reading a “Request-URI” field of the second video request.

### Claim 7 (depends on 1)

The method of claim 1, wherein deriving the first identification of the first video file includes deriving a first size of the first video file specified in the first video request, and deriving the second identification of the second video file includes deriving a second size of the second video file specified in the second video request.

### Claim 8 (depends on 1)

The method of claim 1, wherein deriving the first video signature includes downloading a predetermined portion of the first video file, and deriving the second identification of the second video file includes deriving a second video signature by downloading the predetermined portion of the second video file.

### Claim 9 (depends on 8)

The method of claim 8, wherein downloading the predetermined portion of the first video file includes downloading pieces of the first video file at a plurality of temporal locations.

### Claim 10

A gateway comprising:
an interface configured to provide communication with a mobile device over a first transmission control protocol (TCP) session and a second TCP session, wherein a first video request and a second video request from the user equipment is received over the first TCP session and the second TCP session, respectively, and wherein portions of the first TCP session and the second TCP session are established over a wireless network; and
a module that is configured to:
derive a first identification of a first video file requested by the first video request based, at least in part, on a media content of the first video file,
derive a second identification of a second video file requested by the second video request based, at least in part, on a media content of the second video file, and
compare the first identification and the second identification in order to determine that the first TCP session and the second TCP session are correlated.

### Claim 11 (depends on 10)

The gateway of claim 10, wherein the first video request and the second video request include HTTP partial get requests.

### Claim 12 (depends on 11)

The gateway of claim 11, wherein the first identification of the first video file is a first video location identifier of the first video file specified in a “Request-URI” field of the first video request, and the second identification of the second video file is a second video location identifier of the second video file specified in a “Request-URI” field of the second video request.

### Claim 13 (depends on 10)

The gateway of claim 10, wherein the module is further configured to receive metadata of the first video file over the first TCP session, and to associate the metadata of the first video file with the second TCP session.

### Claim 14 (depends on 11)

The gateway of claim 11, wherein the first identification of the first video file is a size of the first video file specified in the first video request, and the second identification of the second video file is a size of the second video file specified in the second video request.

### Claim 15 (depends on 11)

The gateway of claim 11, wherein the module is configured to derive the first identification of the first video file by downloading a predetermined portion of the first video file, and further wherein the module is configured to derive the second identification of the second video file by downloading a predetermined portion of the second video file.

### Claim 16 (depends on 11)

The gateway of claim 11, wherein the network device is a gateway.

### Claim 17

One or more non-transitory media comprising logic that when executed is to cause a gateway to:
receive a first video request over a first transmission control protocol (TCP) session and a second video request over a second TCP session, wherein portions of the first TCP session and the second TCP session are established over a wireless network;
derive a first identification of a first video file requested by the first video request based, at least in part, on a media content of the first video file;
derive a second identification of a second video file requested by the second video request based, at least in part, on a media content of the second video file; and
compare the first identification and the second identification to determine that the first TCP session and the second TCP session are correlated.

### Claim 18 (depends on 17)

The media of claim 17, wherein the first identification of the first video file is a size of the first video file specified in the first video request, and the second identification of the second video file is a size of the second video file specified in the second video request.

### Claim 19 (depends on 17)

The media of claim 17, wherein the logic is operable to derive the first identification of the first video file by downloading a predetermined portion of the first video file, and further wherein the logic is operable to derive the second identification of the second video file by downloading a predetermined portion of the second video file.

### Claim 20 (depends on 1)

The method of claim 1, wherein the first TCP session and the second TCP session are maintained concurrently at the gateway.

### Claim 21 (depends on 1)

The method of claim 1 wherein comparing, at the gateway, the first identification and the second identification to determine that the first TCP session and the second TCP session are correlated comprises comparing the first video signature and the second video signature in a bit-wise manner to determine that the first video signature and the second video signature are identical.

### Claim 22 (depends on 1)

The method of claim 1, further comprising performing video pacing in response to determining that the first TCP session and the second TCP session are correlated.

### Claim 23 (depends on 1)

The method of claim 1, wherein:
the first video request requests both audio and video data of the first video file; and
the second video request requests both audio and video data of the second video file.

### Claim 24 (depends on 1)

The method of claim 1, wherein the first video file and the second video file are the same video file.
