Identifying a local congestion control algorithm of a virtual machine

US10833996B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10833996-B2
Application numberUS-201916240529-A
CountryUS
Kind codeB2
Filing dateJan 4, 2019
Priority dateMar 14, 2016
Publication dateNov 10, 2020
Grant dateNov 10, 2020

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.

At an application executing in conjunction with a vSwitch in a host system, using a processor assigned to the vSwitch in the host system, a flow of a number of packets is received from a VM. At the application, a set of CWND values is computed using a corresponding set of congestion control algorithms. At the application, a determination is made whether any of the CWND values in the set of CWND values match the number of packets in the flow within a tolerance value. In response to a CWND value in the set of CWND matching the number of packets in the flow within the tolerance value, a conclusion is drawn that a type of the congestion control algorithm which computed the matching CWND value is the type of a local congestion control algorithm implemented within the VM.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving, at an application executing in conjunction with a virtual switch (vSwitch) in a host system, using a processor assigned to the vSwitch in the host system, a flow of a number of packets from a virtual machine (VM); computing, at the application, a set of congestion window values (CWND values) using a corresponding set of congestion control algorithms; determining, at the application, whether any of the CWND values in the set of CWND values match the number of packets in the flow within a tolerance value; concluding, responsive to a matching CWND value in the set of CWND matching the number of packets in the flow within the tolerance value, that a type of the congestion control algorithm which computed the matching CWND value is the type of a local congestion control algorithm implemented within the VM; and coordinating at the vSwitch, without the VM knowing about the coordinating, a datacenter-level congestion control with the type of the local congestion control algorithm at the VM. 2. The method of claim 1 , further comprising: receiving, at the application, a second flow of a second number of packets from a second VM; computing, at the application, a second set of CWND values using a corresponding second set of congestion control algorithms; determining, at the application, whether any of the CWND values in the second set of CWND values match the second number of packets in the second flow within the tolerance value; and concluding, responsive to no CWND value in the second set of CWND matching the second number of packets in the second flow within the tolerance value, that a type of a local congestion control algorithm implemented within the second VM cannot be determined. 3. The method of claim 2 , wherein the second set of congestion control algorithms is a subset of the set of congestion control algorithms. 4. The method of claim 1 , further comprising: further concluding that the congestion control algorithm which computed the matching CWND value is also implemented as the local congestion control algorithm within the VM. 5. The method of claim 1 , wherein the tolerance value is zero, causing the match to be an exact match. 6. The method of claim 1 , wherein the set of congestion control algorithms execute using the processor assigned to the vSwitch. 7. The method of claim 1 , wherein the set of congestion control algorithms invoked by the application using the processor assigned to the vSwitch. 8. The method of claim 1 , wherein the VM also executes in the host system, wherein the vSwitch is external to the VM in the host, and wherein data communications to and from the VM occur through the vSwitch. 9. The method of claim 1 , wherein the period is between sending the packet to the receiver and receiving a response packet corresponding to the packet from the receiver. 10. The method of claim 1 , further comprising: determining, using the matching CWND value in the set of CWND values, a similarity index indicative of a degree of match between the type of the congestion control algorithm which computed the matching CWND value and the type of the local congestion control algorithm implemented within the VM; and determining, responsive to a second matching CWND value in a second set of CWND matching a second number of packets in a second flow within the tolerance value, a second similarity index indicative of a second degree of match between a type of a second congestion control algorithm which computed the second matching CWND value. 11. A computer usable program product comprising a computer readable storage device including computer usable code, the computer usable code when executed by a processor causing a set of operations to be performed, the set of operations comprising: receiving, at an application executing in conjunction with a virtual switch (vSwitch) in a host system, using a processor assigned to the vSwitch in the host system, a flow of a number of packets from a virtual machine (VM); computing, at the application, a set of congestion window values (CWND values) using a corresponding set of congestion control algorithms; determining, at the application, whether any of the CWND values in the set of CWND values match the number of packets in the flow within a tolerance value; concluding, responsive to a matching CWND value in the set of CWND matching the number of packets in the flow within the tolerance value, that a type of the congestion control algorithm which computed the matching CWND value is the type of a local congestion control algorithm implemented within the VM; and coordinating at the vSwitch, without the VM knowing about the coordinating, a datacenter-level congestion control with the type of the local congestion control algorithm at the VM. 12. The computer usable program product of claim 11 , further comprising: receiving, at the application, a second flow of a second number of packets from a second VM; computing, at the application, a second set of CWND values using a corresponding second set of congestion control algorithms; determining, at the application, whether any of the CWND values in the second set of CWND values match the second number of packets in the second flow within the tolerance value; and concluding, responsive to no CWND value in the second set of CWND matching the second number of packets in the second flow within the tolerance value, that a type of a local congestion control algorithm implemented within the second VM cannot be determined. 13. The computer usable program product of claim 12 , wherein the second set of congestion control algorithms is a subset of the set of congestion control algorithms. 14. The computer usable program product of claim 11 , further comprising: further concluding that the congestion control algorithm which computed the matching CWND value is also implemented as the local congestion control algorithm within the VM. 15. The computer usable program product of claim 11 , wherein the tolerance value is zero, causing the match to be an exact match. 16. The computer usable program product of claim 11 , wherein the set of congestion control algorithms execute using the processor assigned to the vSwitch. 17. The computer usable program product of claim 11 , wherein the set of congestion control algorithms invoked by the application using the processor assigned to the vSwitch. 18. The computer usable program product of claim 11 , wherein the computer usable code is stored in a computer readable storage device in a data processing system, and wherein the computer usable code is transferred over a network from a remote data processing system. 19. The computer usable program product of claim 11 , wherein the computer usable code is stored in a computer readable storage device in a server data processing system, and wherein the computer usable code is downloaded over a network to a remote data processing system for use in a computer readable storage device associated with the remote data processing system. 20. A data processing system comprising: a storage device, wherein the storage device stores computer usable program code; and a processor, wherein the processor executes the computer usable program code, and wherein the computer usable program code when executed by the processor causing a set of operations to be performed, the set of operations comprises: receiving, at an application executing in conjunction with a virtual switch (vSwitch) in a host system, using a

Assignees

Inventors

Classifications

  • H04L47/12Primary

    Avoiding congestion; Recovering from congestion · CPC title

  • H04L43/16Primary

    Threshold monitoring · CPC title

  • Utilisation of link capacity · CPC title

  • Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets · CPC title

  • using flow identification · 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 US10833996B2 cover?
At an application executing in conjunction with a vSwitch in a host system, using a processor assigned to the vSwitch in the host system, a flow of a number of packets is received from a VM. At the application, a set of CWND values is computed using a corresponding set of congestion control algorithms. At the application, a determination is made whether any of the CWND values in the set of CWND…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification H04L47/12. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Nov 10 2020 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).