US10965607B2ActiveUtilityA1

Arbitration of competing flows

42
Assignee: CISCO TECH INCPriority: Dec 19, 2017Filed: Dec 19, 2017Granted: Mar 30, 2021
Est. expiryDec 19, 2037(~11.4 yrs left)· nominal 20-yr term from priority
H04L 47/24H04L 47/6275
42
PatentIndex Score
0
Cited by
21
References
20
Claims

Abstract

In one embodiment, a gateway includes a memory, and a processor to, in response to receiving a plurality of content requests, generate a plurality of network flows and flow buffers, each one content request of the plurality of content requests being served by one network flow of the plurality of network flows, and one flow buffer of the plurality of flow buffers, the one flow buffer being included in the memory, the plurality of network flows including a first flow and a second flow, the first flow serving one of the plurality of requests having a first priority level, the second flow serving one of the plurality of requests having a second priority level, the first priority level being higher than the second priority level, and run a network arbiter to give prioritize reading the first flow over reading the second flow when the first flow is non-idle.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A gateway comprising:
 a memory; and 
 a processor coupled to the memory, wherein the processor is operative to:
 in response to receiving a plurality of content requests, generate a plurality of network flows and a plurality of socket buffers, each one content request of the plurality of content requests being served by: one network flow of the plurality of network flows and one socket buffer of the plurality of socket buffers, the plurality of network flows including a first flow and a second flow, the first flow serving a first request of the plurality of requests having a first priority level, the second flow serving a second request of the plurality of requests having a second priority level, the first priority level being higher than the second priority level; 
 prioritize reading a first socket buffer of the plurality of socket buffers serving the first flow over reading a second socket buffer of the plurality of socket buffers serving the second flow when the first flow is non-idle, wherein the processor being operative to prioritize the reading of the first socket buffer comprises the processor being operative to initiate blocking, by a data transfer protocols stack, transfer of datagrams from the second socket buffer to an application initiating the second request when the first flow is non-idle; and 
 initiate a flow control mechanism of a flow control protocol to regulate new data being sent from a server for receipt by the second socket buffer. 
 
 
     
     
       2. The gateway according to  claim 1 , wherein the processor being further operative to:
 unblock reading of the second socket buffer when the first flow is idle. 
 
     
     
       3. The gateway according to  claim 1 , wherein the first flow is non-idle during a period extending from starting reading, from the first socket buffer, a first byte of a body of a response message until completing reading, from the first socket buffer, a last byte of the body of the response message. 
     
     
       4. The gateway according to  claim 1 , wherein the plurality of content requests includes at least one adaptive bitrate content request. 
     
     
       5. The gateway according to  claim 1 , wherein a network arbiter is operative to assign a priority level to the each one content request of the plurality of content requests. 
     
     
       6. The gateway according to  claim 1 , wherein a priority level is assigned to the each one content request of the plurality of content requests according to a content type of the one content request. 
     
     
       7. The gateway according to  claim 6 , wherein a highest priority level is assigned to a live viewing content request. 
     
     
       8. The gateway according to  claim 6 , wherein the content type includes one of the following: live viewing using adaptive bitrate; video on demand content; real-time recording; or a non-real-time recording. 
     
     
       9. A method comprising:
 in response to receiving a plurality of content requests, generating a plurality of network flows and a plurality of socket buffers, each one content request of the plurality of content requests being served by: one network flow of the plurality of network flows and one socket buffer of the plurality of socket buffers, the plurality of network flows including a first flow and a second flow, the first flow serving a first request of the plurality of requests having a first priority level, the second flow serving a second request of the plurality of requests having a second priority level, the first priority level being higher than the second priority level; 
 prioritizing reading a first socket buffer of the plurality of socket buffers serving the first flow over reading a second socket buffer of the plurality of socket buffers serving the second flow when the first flow is non-idle, wherein prioritizing the reading the first socket buffer comprises blocking, by a data transfer protocols stack, transfer of datagrams from the second socket buffer to an application initiating the second request when the first flow is non-idle; and 
 initiating a flow control mechanism of a flow control protocol to regulate new data being sent from a server for receipt by the second socket buffer. 
 
     
     
       10. The method to  claim 9 , further comprising:
 unblocking reading of the second socket buffer when the first flow is idle. 
 
     
     
       11. The method to  claim 9 , wherein the first flow is non-idle during a period extending from starting reading, from the first socket buffer, a first byte of a body of a response message until completing reading, from the first socket buffer, a last byte of the body of the response message. 
     
     
       12. The method to  claim 9 , wherein the plurality of content requests includes at least one adaptive bitrate content request. 
     
     
       13. The method to  claim 9 , further comprising assigning a priority level to each one content request of the plurality of content requests. 
     
     
       14. The method to  claim 9 , wherein a priority level is assigned to each one content request of the plurality of content requests according to a content type of the one content request. 
     
     
       15. The method to  claim 14 , wherein a highest priority level is assigned to a live viewing content request. 
     
     
       16. A non-transient computer-readable medium in which program instructions are stored, which when read by a central processing unit (CPU), cause the CPU to:
 in response to receiving a plurality of content requests, generate a plurality of network flows and a plurality of socket buffers, each one content request of the plurality of content requests being served by: one network flow of the plurality of network flows and one socket buffer of the plurality of socket buffers, the plurality of network flows including a first flow and a second flow, the first flow serving a first request of the plurality of requests having a first priority level, the second flow serving a second request of the plurality of requests having a second priority level, the first priority level being higher than the second priority level; 
 prioritize reading a first socket buffer of the plurality of socket buffers serving the first flow over reading a second socket buffer of the plurality of socket buffers serving the second flow when the first flow is non-idle, wherein prioritizing the reading the first socket buffer comprises blocking, by a data transfer protocols stack, transfer of datagrams from the second socket buffer to an application initiating the second request when the first flow is non-idle; and 
 initiate a flow control mechanism of a flow control protocol to regulate new data being sent from a server for receipt by the second socket buffer. 
 
     
     
       17. The non-transient computer-readable medium according to  claim 16 , wherein the instructions further cause the CPU to:
 unblock reading of the second socket buffer when the first flow is idle. 
 
     
     
       18. The non-transient computer-readable medium according to  claim 16 , wherein the first flow is non-idle during a period extending from starting reading, from the first socket buffer, a first byte of a body of a response message until completing reading, from the first socket buffer, a last byte of the body of the response message. 
     
     
       19. The non-transient computer-readable medium according to  claim 16 , wherein a priority level is assigned to the each one content request of the plurality of content requests according to a content type of the one content request. 
     
     
       20. The non-transient computer-readable medium according to  claim 19 , wherein a highest priority level is assigned to a live viewing content request.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.