Patent US6807667B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6807667B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and system of an application program interface for abstracting network traffic control components to application programs

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1998-09-21
•
Granted: 2004-10-19
•
Expires: 2018-09-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A traffic control application programming interface for abstracting the use of traffic control components to client applications to provide quality of service. The traffic control interface accepts input from a client application and based on that input, communicates with the operating system to control kernel level traffic control components. The client can register with the traffic control interface, and it can open and close interfaces, add, modify, and delete flows on those interfaces, and attach or delete filters on the flows. The client can also obtain data on any currently active interface, flow, or filter. The traffic control interface will send the appropriate message to the operating system, directing that the necessary tasks be performed by either a packet scheduler or a packet classifier. Those kernel level components then return through the operating system the results of the operations requested, and that return data will be passed back to the client application.

Inventors

  • 👤 Ofer Bar
  • 👤 Eric L. Eilebrecht
  • 👤 Yoram Bernet

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 02:34
CPC Classifications
H; H04; H04L; H04L69/00; H04L69/30; H04L69/32; H04L69/322; H04L69/329; H04L67/00; H04L67/50; H04L67/60; H04L67/61; H04L67/62

Claims Analysis

Total Claims: 48
Claim 1
Independent Claim 146 words
A method for providing network traffic control to at least one application program sending data over a network connection comprising the steps of: receiving a registration message from the application program as a request to establish a connection with the network; assigning a client identification to the application program responsive to the registration message; saving the client identification to identify the application program for subsequent calls; receiving an open interface message having the client identification from the application program as a request to open an interface that controls network traffic; assigning an interface identification to an interface opened in response to the open interface message; saving the interface identification to identify, the interface for subsequent calls; communicating a control instruction to a traffic control component to open the interface; and returning the interface identification to the application program to indicate that the interface has been opened.
Claim 2
Independent Claim 146 words
A method for providing network traffic control to at least one application program sending data over a network connection comprising the steps of: receiving a registration message from the application program as a request to establish a connection with the network; assigning a client identification to the application program responsive to the registration message; saving the client identification to identify the application program for subsequent calls; receiving an open interface message having the client identification from the application program as a request to open an interface that controls network traffic; assigning an interface identification to an interface opened in response to the open interface message; saving the interface identification to identify, the interface for subsequent calls; communicating a control instruction to a traffic control component to open the interface; and returning the interface identification to the application program to indicate that the interface has been opened.
Claim 3
Dependent Claim 45 words
The method of claim 1 , further comprising the steps of: receiving a response data message from the traffic control component; deciphering the response data message in a format that the application program can interpret; and providing the deciphered response data to the application program.
Claim 4
Dependent Claim 98 words
The method of claim 1 , further comprising the steps of: receiving a flow install message having the interface identification from the application program as a request to install a flow to the opened interface; assigning a flow identification to the flow responsive to the flow install message; saving the flow identification to identify the flow for subsequent calls; and communicating a control instruction to the traffic control component to install the flow to the opened interface; and providing the flow identification to the application program to indicate that the flow has been installed to the opened interface.
Claim 5
Dependent Claim 98 words
The method of claim 3 , further comprising the steps of: receiving an add filter message having the flow identification from the application program as a request to add a filter to the installed flow; assigning a filter identification to a filter responsive to the add filter message; saving the filter identification to identify the filter for subsequent calls; communicating a control instruction to the traffic control component to add the filter to the installed flow; and providing the filter identification to the first application program to indicate that the filter has been added to the installed flow.
Claim 6
Dependent Claim 49 words
The method of claim 4 further comprising the steps of: receiving a delete filter message having the filter identification from the application program as a request to delete the filter; and communicating a control instruction to the traffic control component to delete the filter identified by the flow identification.
Claim 7
Dependent Claim 53 words
The method of claim 3 further comprising the steps of: receiving a modify flow message having the flow identification from the application program as a request to modify the flow of the opened interface; and communicating a control instruction to the traffic control component to delete the flow identified by the flow identification.
Claim 8
Dependent Claim 52 words
The method of claim 3 further comprising the steps of: receiving a delete flow message having the flow identification from the application program as a request to delete the flow of the opened interface; communicating a control instruction to the traffic control component to delete the flow identified by the flow identification.
Claim 9
Dependent Claim 149 words
The method of claim 3 further comprising the steps of: receiving a registration message from a second application program as a request to register with the network; assigning a second client identification to the second application program; receiving an open interface message from the second application program as a request to open the interface assigned with the interface identification; providing the interface identification to the second application program to indicate that the interface has been opened; receiving a flow install message having the interface identification from the second application program as a request to install a second flow to the opened interface; and assigning a second flow identification to the second flow responsive to the flow install message; communicating a control instruction to the traffic control component to aggregate the second flow with the first flow from the first application program on the interface assigned with the interface identification.
Claim 10
Dependent Claim 86 words
The method of claim 3 further comprising the steps of: receiving a retrieve flow name message having the flow identification from the application program as a request to retrieve a flow name of the flow; querying the traffic control component to obtain the flow name of the flow identified by the flow identification responsive to the retrieve flow name message; deciphering response data including the flow name from the traffic control component; and providing the deciphered response data with the flow name to the application program.
Claim 11
Dependent Claim 86 words
The method of claim 3 further comprising the steps of: receiving a query flow properties message having the flow identification from the application program as a request to retrieve a flow property of the flow; querying the traffic control component to obtain the flow property of the flow identified by the flow identification responsive to the retrieve flow name message; deciphering response data including the flow property from the traffic control component; and providing the deciphered response data with the flow property to the application program.
Claim 12
Dependent Claim 26 words
The method of claim 1 , wherein any control instruction to the traffic control component is a windows management instrumentation message or an input/output control message.
Claim 13
Dependent Claim 79 words
The method of claim 1 , further comprising the steps of: receiving an enumerate interfaces message from the application program as a request to obtain a list of available interfaces that control network traffic; querying the traffic control component to obtain the list of available interfaces responsive to the enumerate interfaces message; deciphering response data including the list of available interfaces from the traffic control component; and providing the deciphered response data with the list to the application program.
Claim 14
Dependent Claim 44 words
The method of claim 12 , wherein one interface from the list is linked to a first network connection and another interface from the list is linked to a second network connection, wherein the first network connection is different from the second network connection.
Claim 15
Dependent Claim 32 words
The method of claim 13 , wherein the first and second network connections include any one from the group of a local area network, wide area network, and asynchronous transfer mode network.
Claim 16
Dependent Claim 50 words
The method of claim 1 further comprising the steps of: receiving a close interface message having the interface identification from the application program as a request to close the opened interface; communicating a control instruction to the traffic control component to close the opened interface identified by the interface identification.
Claim 17
Dependent Claim 92 words
The method of claim 1 further comprising the steps of: receiving a query traffic control message having the interface identification from the application program as a request to obtain a traffic control parameter for the opened interface; querying the traffic control component to obtain the traffic control parameter of the opened interface identified by the interface identification responsive to the query traffic control message; deciphering response data including the traffic control parameter from the traffic control component; and providing the deciphered response data with the traffic control parameter to the application program.
Claim 18
Dependent Claim 34 words
The method of claim 16 wherein the query traffic control message includes a notify change boolean as a request to notify the application program whenever the traffic control parameter is changed in the network.
Claim 19
Dependent Claim 62 words
The method of claim 1 further comprising the steps of: receiving a set traffic control message having the interface identification from the application program as a request to set a traffic control parameter for the opened interface; and communicating a control instruction to the traffic control component to set the traffic control parameter for the opened interface identified by the interface identification.
Claim 20
Dependent Claim 41 words
The method of claim 1 further comprising the steps of: receiving a deregistration message having the client identification from the application program as a request to deregister from the network; and deleting the saved client identification responsive to the deregistration message.
Claim 21
Dependent Claim 55 words
The method of claim 1 wherein the network traffic component includes: a packet scheduler for scheduling data transmissions through the network connection, wherein the packet scheduler communicates using windows management instrumentation messages; and a generic packet classifier for classifying data transmissions through the network connection, wherein the generic packet classifier communicates using input/output control messages.
Claim 22
Dependent Claim 130 words
A computer-readable medium having computer-executable instructions for performing the steps of: receiving a registration message from an application program as a request to establish a connection with a network; assigning a client identification to the application program responsive to the registration message; saving the client identification to identify the application program for subsequent calls; receiving an open interface message from the application program as a request to open an interface that controls network traffic; assigning an interface identification to the interface opened in response to the open interface message; saving the interface identification to identify the interface for subsequent calls; communicating a control instruction to a traffic control component to open the interface; and returning the interface identification to the application program to indicate that the interface has been opened.
Claim 23
Dependent Claim 130 words
A computer-readable medium having computer-executable instructions for performing the steps of: receiving a registration message from an application program as a request to establish a connection with a network; assigning a client identification to the application program responsive to the registration message; saving the client identification to identify the application program for subsequent calls; receiving an open interface message from the application program as a request to open an interface that controls network traffic; assigning an interface identification to the interface opened in response to the open interface message; saving the interface identification to identify the interface for subsequent calls; communicating a control instruction to a traffic control component to open the interface; and returning the interface identification to the application program to indicate that the interface has been opened.
Claim 24
Dependent Claim 49 words
The computer-readable medium of claim 21 having further computer-executable instructions for performing the steps of: receiving a response data message from the traffic control component; deciphering the response data message in a format that the application program can interpret; and providing the deciphered response data to the application program.
Claim 25
Dependent Claim 102 words
The computer-readable medium of claim 21 having further computer-executable instructions for performing the steps of: receiving a flow install message having the interface identification from the application program as a request to install a flow to the opened interface; assigning a flow identification to the flow responsive to the flow install message; saving the flow identification to identify the flow for subsequent calls; and communicating a control instruction to the traffic control component to install the flow to the opened interface; and providing the flow identification to the application program to indicate that the flow has been installed to the open interface.
Claim 26
Dependent Claim 58 words
The computer-readable medium of claim 23 having further computer-executable instructions for performing the steps of: receiving a modify flow message having the flow identification from the application program as a request to modify the flow of the opened interface; and communicating a control instruction to the traffic control component to delete the flow identified by the flow identification.
Claim 27
Dependent Claim 57 words
The computer-readable medium of claim 23 having further computer-executable instructions for performing the steps of: receiving a delete flow message having the flow identification from the application program as a request to delete the flow of the opened interface; communicating a control instruction to the traffic control component to delete the flow identified by the flow identification.
Claim 28
Dependent Claim 154 words
The computer-readable medium of claim 23 having further computer-executable instructions for performing the steps of: receiving a registration message from a second application program as a request to register with the network; assigning a second client identification to the second application program; receiving an open interface message from the second application program as a request to open the interface assigned with the interface identification; providing the interface identification to the second application program to indicate that the interface has been opened; receiving a flow install message having the interface identification from the second application program as a request to install a second flow to the opened interface; assigning a second flow identification to the second flow responsive to the flow install message; and communicating a control instruction to the traffic control component to aggregate the second flow with the first flow from the first application program, on the interface assigned with the interface identification.
Claim 29
Dependent Claim 91 words
The computer-readable medium of claim 23 having further computer-executable instructions for performing the steps of: receiving a retrieve flow name message having the flow identification from the application program as a request to retrieve a flow name of the flow; querying the traffic control component to obtain the flow name of the flow identified by the flow identification responsive to the retrieve flow name message; deciphering response data including the flow name from the traffic control component; and providing the deciphered response data with the flow name to the application program.
Claim 30
Dependent Claim 91 words
The computer-readable medium of claim 23 having further computer-executable instructions for performing the steps of: receiving a query flow properties message having the flow identification from the application program as a request to retrieve a flow property of the flow; querying the traffic control component to obtain the flow property of the flow identified by the flow identification responsive to the retrieve flow name message; deciphering response data including the flow property from the traffic control component; and providing the deciphered response data with the flow property to the application program.
Claim 31
Dependent Claim 101 words
The computer-readable medium of claim 21 having further computer-executable instructions for performing the steps of: receiving an add filter message having the flow identification from the application program as a request to add a filter to the installed flow; assigning a filter identification to a filter responsive to the add filter message; saving the filter identification to identify the filter for subsequent calls; communicating a control instruction to the traffic control component to add the filter to the installed flow; and providing the filter identification to the application program to indicate that the filter has been added to the installed flow.
Claim 32
Dependent Claim 54 words
The computer-readable medium of claim 29 having further computer-executable instructions for performing the steps of: receiving a delete filter message having the filter identification from the application program as a request to delete the filter; and communicating a control instruction to the traffic control component to delete the filter identified by the flow identification.
Claim 33
Dependent Claim 26 words
The computer-readable medium of claim 21 wherein any control instruction to the traffic control component is a windows management instrumentation message or an input/output control message.
Claim 34
Dependent Claim 83 words
The computer-readable medium of claim 21 having further computer-executable instructions for performing the steps of: receiving an enumerate interfaces message from the application program as a request to obtain a list of available interfaces that control network traffic; querying the traffic control component to obtain the list of available interfaces responsive to the enumerate interfaces message; deciphering response data including the list of available interfaces from the traffic control component; and providing the deciphered response data with the list to the application program.
Claim 35
Dependent Claim 56 words
The computer-readable medium of claim 21 having further computer-executable instructions for performing the steps of: receiving a close interface message having the interface identification from the application program as a request to close the opened interface; and communicating a control instruction to the traffic control component to close the opened interface identified by the interface identification.
Claim 36
Dependent Claim 97 words
The computer-readable medium of claim 21 having further computer-executable instructions for performing the steps of: receiving a query traffic control message having the interface identification from the application program as a request to obtain a traffic control parameter for the opened interface; querying the traffic control component to obtain the traffic control parameter of the opened interface identified by the interface identification responsive to the query traffic control message; deciphering response data including the traffic control parameter from the traffic control component; and providing the deciphered response data with the traffic control parameter to the application program.
Claim 37
Dependent Claim 35 words
The computer-readable medium on claim 34 wherein the query traffic control message includes a notify change Boolean as a request to notify the application program whenever the traffic control parameter is changed in the network.
Claim 38
Dependent Claim 67 words
The computer-readable medium of claim 21 having further computer-executable instructions for performing the steps of: receiving a set traffic control message having the interface identification from the application program as a request to set a traffic control parameter for the opened interface; and communicating a control instruction to the traffic control component to set the traffic control parameter for the opened interface identified by the interface identification.
Claim 39
Dependent Claim 46 words
The computer-readable medium of claim 21 having further computer-executable instructions for performing the steps of: receiving a deregistration message having the client identification from the application program as a request to deregister from the network; and deleting the saved client identification responsive to the deregistration message.
Claim 40
Dependent Claim 56 words
The computer-readable medium on claim 21 wherein the network traffic component includes: a packet scheduler for scheduling data transmission through the network connection, wherein the packet scheduler communicates using windows management instrumentation messages; and a generic packet classifier for classifying data transmissions through the network connection, wherein the generic packet classifier communicates using input/output control messages.
Claim 41
Independent Claim 134 words
A method for providing network traffic control to at least one application program sending data over a plurality of network connections comprising the steps of: receiving an enumerate interfaces message from the application program as a request to obtain a list of available interfaces that control network traffic; querying a traffic control component to obtain the list of available interfaces responsive to the enumerate interfaces message; deciphering response data including the list of available interfaces from the traffic control component; and providing the deciphered response data with the list to the application program; wherein one interface from the list is linked to a first network connection and another interface from the list is linked to a second network connection, and the first network connection uses a different network protocol from the second network connection.
Claim 42
Independent Claim 134 words
A method for providing network traffic control to at least one application program sending data over a plurality of network connections comprising the steps of: receiving an enumerate interfaces message from the application program as a request to obtain a list of available interfaces that control network traffic; querying a traffic control component to obtain the list of available interfaces responsive to the enumerate interfaces message; deciphering response data including the list of available interfaces from the traffic control component; and providing the deciphered response data with the list to the application program; wherein one interface from the list is linked to a first network connection and another interface from the list is linked to a second network connection, and the first network connection uses a different network protocol from the second network connection.
Claim 43
Dependent Claim 32 words
The method of claim 39 , wherein the first and second network connections include any one from the group of a local area network, wide area network, and asynchronous transfer mode network.
Claim 44
Dependent Claim 123 words
A computer-readable medium having computer-executable instructions for performing the steps of: receiving an enumerate interfaces message from the application program as a request to obtain a list of available interfaces that control network traffic over a plurality of network connections; querying a traffic control component to obtain the list of available interfaces responsive to the enumerate interfaces message; deciphering response data including the list of available interfaces from the traffic control component; and providing the deciphered response data with the list to the application program; wherein one interface from the list is linked to a first network connection and another interface from the list is linked to a second network connection, wherein the first network connection is different from the second network connection.
Claim 45
Dependent Claim 123 words
A computer-readable medium having computer-executable instructions for performing the steps of: receiving an enumerate interfaces message from the application program as a request to obtain a list of available interfaces that control network traffic over a plurality of network connections; querying a traffic control component to obtain the list of available interfaces responsive to the enumerate interfaces message; deciphering response data including the list of available interfaces from the traffic control component; and providing the deciphered response data with the list to the application program; wherein one interface from the list is linked to a first network connection and another interface from the list is linked to a second network connection, wherein the first network connection is different from the second network connection.
Claim 46
Dependent Claim 93 words
A computer system for providing network traffic control to at least one application program sending data over a plurality of network connections comprising: a traffic control interface for assigning an interface identification to an interface opened by the application program, and saving the interface identification to identify the opened interface for subsequent calls; a packet scheduler for scheduling data transmissions through the plurality of network connections; and a generic packet classifier for classifying data transmissions through the plurality of network connections; wherein the plurality of network connections includes interfaces using different communication protocols.
Claim 47
Dependent Claim 93 words
A computer system for providing network traffic control to at least one application program sending data over a plurality of network connections comprising: a traffic control interface for assigning an interface identification to an interface opened by the application program, and saving the interface identification to identify the opened interface for subsequent calls; a packet scheduler for scheduling data transmissions through the plurality of network connections; and a generic packet classifier for classifying data transmissions through the plurality of network connections; wherein the plurality of network connections includes interfaces using different communication protocols.
Claim 48
Dependent Claim 52 words
The system as defined in claim 42 further comprising: a windows management instrumentation interface for deciphering response data from the packet scheduler; an input/output control interface for deciphering response data from the generic packet classifier; wherein the response data from the packet scheduler and the generic packet classifier are in different formats.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2007-10-19 2008-04-19 2008-10-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2011-10-19 2012-04-19 2012-10-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2015-10-19 2016-04-19 2016-10-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag