Systems and methods for allocation of classes of service to network connections corresponding to virtual channels

US9813346B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9813346-B2
Application numberUS-201615054444-A
CountryUS
Kind codeB2
Filing dateFeb 26, 2016
Priority dateMay 9, 2010
Publication dateNov 7, 2017
Grant dateNov 7, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A system for allocating a different class of service to each network connection in a plurality of network connections, where each network connection corresponds to one or more virtual channels. The system can include a plurality of virtual channels that connect a first computer and a second computer. Each virtual channel can service at least a portion of the network traffic generated using a remote-display protocol. The system can also include a plurality of network connections, where each network connection corresponds to at least one of the virtual channels. Each network connection of the system can have an assigned port number and an assigned class of service that corresponds to a transmission priority level. The class of service assigned to each network connection can be unique from the classes of service assigned to other network connections.

First claim

Opening claim text (preview).

What is claimed is: 1. A system for allocating a different quality of service to each network connection in a plurality of network connections, where each network connection corresponds to one or more virtual channels, the system comprising: a first computing device; and a second computing device in communication with the first computing device via a remote-display protocol session, the remote-display protocol session comprising a plurality of virtual channels, each servicing at least a portion of network traffic of the remote-display protocol session, a plurality of transport layer network connections comprising a network connection between the first computing device and the second computing device, a first transport layer network connection carrying a first virtual channel and assigned a first quality of service, the first virtual channel configured to transmit remote display protocol data via the first transport layer network connection responsive to the first quality of service and one of an application type and a user of the data, and a second transport layer network connection carrying a second virtual channel and assigned a second quality of service, the second quality of service different from the first quality of service; and a flow controller to control data transfer rates on the plurality of transport layer network connections, wherein the flow controller executes operations to: receive a data packet transmitted by the first computing device to the second computing device; copy the data packet for retransmission by the flow controller; forward the received data packet to the second computing device; generate an acknowledgement packet in response to receiving the forwarded data packet; transmit the acknowledgement packet to the first computing device, to cause one or more resources associated with the first computing device to become available for subsequent processing of one or more data packets; monitor one or more data packet acknowledgements generated by the second computing device in response to receipt of the forwarded data packet; and retransmit the forwarded data packet to the first computing device in response to non-receipt of the one or more data packet acknowledgements from the second computing device within a temporal window of time. 2. The system of claim 1 , wherein the flow controller executes operations to discard the copied data packet in response to receipt of the one or more data packet acknowledgements from the second computing device within the temporal window of time. 3. The system of claim 1 , wherein the flow controller executes operations to set a TCP window size parameter; the TCP window size parameter permitting the first computing device to fill a buffer associated with the flow controller with one or more data packets up to an amount equal to the TCP window size parameter. 4. The system of claim 1 , wherein the flow controller executes operations to: determine that a predetermined number of data packets of space are available in a buffer associated with the flow controller; and transmit a nonzero window packet to the first computing device in response to the determination that the predetermined number of data packets of space are available. 5. The system of claim 1 , wherein flow controller delays the transmission of the acknowledgment packet until after the first computing device receives a predetermined number of data packets. 6. The system of claim 1 , wherein the forwarded data packet comprises a data packet in any position within a group of packets, and the position includes a first position up to a second to last position within the packet group. 7. The system of claim 1 , wherein the flow controller executes operations to: receive a synchronization signal; and insert a configuration identifier into an option area of a TCP header; wherein the configuration identifier identifies the flow controller as a flow control module. 8. The system of claim 1 , wherein the flow controller executes operations to: detect a network congestion condition; and substitute an alternate TCP congestion avoidance algorithm in response to the detected network congestion condition; wherein the TCP congestion algorithm uses an acknowledgement packet to terminate the network connection between the first client device and the second client device. 9. The system of claim 1 , wherein the flow controller executes operations to: detect one or more transition boundaries in the received data packet by parsing a packet data stream; transmit, in response to the detection, one or more additional data packets to the second client device; and receive one or more additional acknowledgement packets generated by the second client device. 10. The system of claim 1 , wherein the flow controller executes operations to: monitor a link characteristic; and adjust a packet size parameter associated with the one or more packets based on the link characteristics. 11. A method of allocating a different quality of service to each network connection in a plurality of network connections, where each network connection corresponds to one or more virtual channels, the method comprising: transmitting, by a first computing device, remote-display protocol data of a first virtual channel of a remote-display protocol session via a first transport layer network connection to a second computing device, the first transport layer network connection assigned a first quality of service; determining, by the first computing device, to transmit remote-display protocol data of the first virtual channel of the remote-display protocol session via the first transport layer network connection, responsive to the first quality of service and one of an application type and a user of the data; transmitting, by the first computing device, remote-display protocol data of a second virtual channel of the remote-display protocol session via a second transport layer network connection to the second computing device, the second transport layer network connection assigned a second quality of service different from the first quality of service; and performing, by a flow controller, data transfer rate control on the plurality of transport layer network connections, wherein the performing data transfer rate control further comprises: receiving a data packet transmitted by the first computing device to the second computing device; copying the data packet for retransmission by the flow controller; forwarding the received data packet to the second computing device; generating an acknowledgement packet in response to receiving the forwarded data packet; transmitting the acknowledgement packet to the first computing device, causing one or more resources associated with the first computing device to become available for subsequent processing of one or more data packets; monitoring one or more data packet acknowledgements generated by the second computing device in response to receiving the forwarded data packet and retransmitting the forwarded data packet to the first computing device in response to not receiving the one or more data packet acknowledgements from second computing device within a temporal window of time. 12. The method of claim 11 , comprising: discarding the copied data packet in response to receiving the one or more data packet acknowledgements from the second computing device within the temporal window of time. 13. The method of claim 11 , comprising: setting a TCP window size parameter, the TCP window size parameter permitting the first computing device to fill a buffer associated with the flow controller with one or more data packets up to an

Assignees

Inventors

Classifications

  • Flow control; Congestion control · CPC title

  • for supporting traffic characterised by the type of applications · CPC title

  • Application aware · CPC title

  • H04L47/24Primary

    Traffic characterised by specific attributes, e.g. priority or QoS · CPC title

  • User-type aware · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9813346B2 cover?
A system for allocating a different class of service to each network connection in a plurality of network connections, where each network connection corresponds to one or more virtual channels. The system can include a plurality of virtual channels that connect a first computer and a second computer. Each virtual channel can service at least a portion of the network traffic generated using a re…
Who is the assignee on this patent?
Citrix Systems Inc
What technology area does this patent fall under?
Primary CPC classification H04L47/24. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Nov 07 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).