WO2006062887A1 - Network centric quality of service using active network technology - Google Patents

Network centric quality of service using active network technology Download PDF

Info

Publication number
WO2006062887A1
WO2006062887A1 PCT/US2005/043892 US2005043892W WO2006062887A1 WO 2006062887 A1 WO2006062887 A1 WO 2006062887A1 US 2005043892 W US2005043892 W US 2005043892W WO 2006062887 A1 WO2006062887 A1 WO 2006062887A1
Authority
WO
WIPO (PCT)
Prior art keywords
qos
connection
packet
function
service
Prior art date
Application number
PCT/US2005/043892
Other languages
French (fr)
Inventor
John L. Meier
Kent L. English
Arun Ayyagari
Guijun Wang
Original Assignee
The Boeing Company
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by The Boeing Company filed Critical The Boeing Company
Priority to EP05852950.4A priority Critical patent/EP1825637B1/en
Publication of WO2006062887A1 publication Critical patent/WO2006062887A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L12/5602Bandwidth control in ATM Networks, e.g. leaky bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks

Definitions

  • the present invention is directed to methods and systems for improving network centric quality of service using active network technology.
  • Embodiments of methods and systems in accordance with the present invention may better account for the dynamic link state and bandwidth characteristics in dynamic mobile environments.
  • performance management 150 determines and establish a path that each traffic flow should take in order to maximize the number of end-to-end user application sessions whose QoS requirements have been satisfied while maximizing the overall network utilization.
  • Traditional networks are based on destination-based routing.
  • the network may preferably have the ability to establish alternate paths for traffic flows between source/destination pairs through efficient provisioning of resources and greater control of the network flows.
  • architectural components of performance management 150 may include Multi-Protocol Label Switching (MPLS) 152 and constraint-based routing 154 at the network layer 121 and traffic engineering 156 that is applicable to all layers of the network stack 130.
  • MPLS Multi-Protocol Label Switching
  • QoS-aware applications 214 include an abstract QoS API from any complexity and variations of the Kernel 250, session management for concurrency and synchronization, and common services like monitoring changes to the available bandwidth. Those advantages to the entire system include admission control, adaptation, and resource management for concurrent applications. The functionality and benefits of the QoS service provider 230 are elaborated further in the description below.
  • the QoS Service Provider 230 manages the DiffServ implementation on only one network interface and does not check that the QoS API connection actually goes through the monitored interface. In alternate embodiments, the QoS Service Provider 230 is adapted to manage multiple network interfaces. The QoS Service Provider 230 may be adapted to process Transmission Control Protocol (TCP) connections, User Datagram Protocol (UDP) connections, or any other suitable protocols and connections.
  • TCP Transmission Control Protocol
  • UDP User Datagram Protocol
  • the HTB class for EF is a class of the HTB qdisc, while all the other classes are subclasses of another class of the HTB qdisc at the same level of the EF class. This may be done to isolate the EF class from the other classes, while allowing the other classes to borrow bandwidth from each other if they are not being used.
  • the EF class has the highest priority
  • the AF classes have the next highest priority
  • the BE class has the lowest priority.
  • the AF classes get the first use of any unused bandwidth and the BE class gets to borrow any extra bandwidth only if the AF classes are not using it.
  • bw_get_info may return the value of bandwidth_for_our_test whenever /proc/net/bw-ethl is read. It may also have a counter that causes it to toggle the value of bandwidth_for_our_test. In one particular embodiment, for example, the bw_get_info function may toggle between lOMbps and lOOMbps every twenty reads. Whenever the bw_get_info function changes the value of bandwidth_for_our_test, it may also call another function designated rtmsg_ifinfo in order to initiate an RTMGRPJ-JNK group broadcast message. A perl script may be adapted to periodically drive the changes, for example, at 1 second intervals.
  • the QoS Service Provider 230 may listen on an AF-UNIX socket, waiting on messages from applications using the QoS API. Upon receiving a request, the QoS Service Provider 230 may attempt to satisfy the request and then return success or failure.
  • the QoS Service Provider 230 may also be adapted to map a request to a DiffServ class in the underlying DiffServ implementation. It could be enhanced to use IntServ as well, using some runtime option to decide which mechanism to use. The QoS-aware application would be unaware which QoS provisioning mechanism was being used.

Abstract

Systems and methods for improving network centric quality of service using active network technology are disclosed. In one embodiment, a method includes controlling how a packet is passed over at least one of the interfaces using a differentiated services portion of a network management architecture, monitoring a request for a Quality of Service (QoS) level from at least one QoS-aware application, and adjusting at least one service rate of packet travel controlled by the differentiated services portion based on at least one of the requested QoS level and an available bandwidth. In an alternate embodiment, the controlling of how a packet is passed over at least one of the interfaces includes using at least one of a queuing discipline, a class, and a filter.

Description

NETWORK CENTRIC QUALITY OF SERVICE USING ACTIVE NETWORK
TECHNOLOGY
INVENTORS
John L. Meier
Kent L. English
Aran Ayyagari
Guijun Wang
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This patent application is related to co-pending, commonly-owned U.S. Patent Application No. (to be determined) entitled "Methods and Systems for Intelligent Network Management" filed under Attorney Docket No. BING-1-1144 on December 9th, 2004, which application is incorporated herein by reference.
FIELD OF THE INVENTION
[0002] This invention relates to computer networks, and more specifically, to improving network centric quality of service using active network technology.
BACKGROUND OF THE INVENTION
[0003] Quality of service (QoS) is desired by most customers operating in a network centric organization (NCO). Traditional networks are based on destination-based routing and typically do not actively manage network resources (e.g., bandwidth (BW), routers, etc.) in determining resource allocation. Over-provisioning of the network to satisfy end-to-end user and application QoS requirements is not feasible for technical and economical reasons. Thus, there is a need for network management systems that better account for the dynamic link state and bandwidth characteristics in dynamic mobile environments.
SUMMARY OF THE INVENTION
[0004] The present invention is directed to methods and systems for improving network centric quality of service using active network technology. Embodiments of methods and systems in accordance with the present invention may better account for the dynamic link state and bandwidth characteristics in dynamic mobile environments.
[0005] In one embodiment, a method of managing a network having a plurality of interfaces includes controlling how a packet is passed over at least one of the interfaces using a differentiated services portion of a network management architecture, monitoring a request for a Quality of Service (QoS) level from at least one QoS-aware application, and adjusting at least one service rate of packet travel controlled by the differentiated services portion based on at least one of the requested QoS level and an available bandwidth. In an alternate embodiment, the controlling of how a packet is passed over at least one of the interfaces includes using at least one of a queuing discipline, a class, and a filter. In another embodiment, the adjusting of at least one service rate of packet travel includes notifying a kernel portion of a variation in the available bandwidth, and effecting a change in control of the packet rate of travel by the differentiated services portion.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Preferred and alternate embodiments of the present invention are described in detail below with reference to the following drawings. [0007] FIGURE 1 is a schematic view of a plurality of QoS technologies that may be used to achieve an end-to-end QoS provisioning in accordance with an embodiment of the invention;
[0008] FIGURE 2 is a schematic view of a network QoS management architecture in accordance with an embodiment of the invention; and [0009] FIGURE 3 is a scheduler in accordance with another embodiment of the invention.
DETAILED DESCRIPTION
[0010] The present invention relates to methods and systems for improving network centric quality of service using active network technology. Many specific details of certain embodiments of the invention are set forth in the following description and in FIGURES 1-3 to provide a thorough understanding of such embodiments. One skilled in the art, however, will understand that the present invention may have additional embodiments, or that the present invention may be practiced without several of the details described in the following description.
[0011] Generally speaking, embodiments of the present invention use end-to-end resource allocation to help to ensure that QoS requirements of various traffic flows are at least partially satisfied. FIGURE 1 is a schematic view of a plurality of QoS technologies 100 that may be used to achieve an end-to-end QoS provisioning in accordance with embodiments of the present invention. The QoS technologies 100 that enable performance assurance and service differentiation in a network stack 130, such as the Internet, can be broadly classified into two categories: resource allocation 110 and performance management 150. FIGURE 1 illustrates resource allocation technologies 110 and performance management QoS technologies 150 and their scope of applicability within the network stack 130.
[0012] As shown in FIGURE 1, the architectural components of resource allocation 110 may include network QoS management 112, application QoS management 114, and policy based management 116. Network QoS management 112 may include a set of industry standards 118 (e.g., IEEE 802.Ip) at a link layer 119, and integrated services 120 and differentiated services 122 at a network layer 121 and a transport layer 123. Application QoS management 114 may include middleware 124 and QoS-aware applications 126 at the application layer 125, presentation layer 127, and session layer 129 of the network stack 130. Finally, policy based management 128 is applicable to all layers of the network stack 130. [0013] One possible objective of performance management 150 is to determine and establish a path that each traffic flow should take in order to maximize the number of end-to-end user application sessions whose QoS requirements have been satisfied while maximizing the overall network utilization. Traditional networks are based on destination-based routing. However, in order to achieve the performance management objectives, the network may preferably have the ability to establish alternate paths for traffic flows between source/destination pairs through efficient provisioning of resources and greater control of the network flows. Thus, as shown in FIGURE 1, architectural components of performance management 150 may include Multi-Protocol Label Switching (MPLS) 152 and constraint-based routing 154 at the network layer 121 and traffic engineering 156 that is applicable to all layers of the network stack 130.
[0014] FIGURE 2 is a schematic view of a network QoS management architecture 200 in accordance with an embodiment of the invention. In this embodiment, a user mode 210 of the architecture 200 includes a legacy application portion 212 and a QoS-aware application portion 214 coupled to a socket Application Programming Interface (API) 216. Similarly, a kernel portion includes an AF_INET portion 252 and a NETLINK portion 254 also coupled to the socket API 216. A QoS service provider 230 mediates the interactions between the QoS-aware applications 214 and the socket API 216. The QoS service provider 230 offers significant advantages to the QoS-aware applications 214 and the entire system. Those advantages to the QoS-aware applications 214 include an abstract QoS API from any complexity and variations of the Kernel 250, session management for concurrency and synchronization, and common services like monitoring changes to the available bandwidth. Those advantages to the entire system include admission control, adaptation, and resource management for concurrent applications. The functionality and benefits of the QoS service provider 230 are elaborated further in the description below.
[0015] As further shown in FIGURE 2, the network QoS management architecture 200 also includes components within the user mode 210 and kernel mode 250 portions of the operating system. QoS-aware Applications 214 interact with QoS Service Provider 230 and Socket API 216. QoS-aware Applications 214 establish the session with peer application via QoS Service Provider 230. QoS Service Provider 230 performs session admission control and appropriately performs QoS provisioning for the requested session. Once QoS Service Provider 230 accepts a session connection request from QoS-aware Applications 214, it then establishes socket level session via Socket API 216. Following the establishment of the session between the QoS-aware Applications 214 and the peer application, QoS-aware Applications 214 transmit and receive data via Socket API 216. Legacy applications 212 interact with peer applications by setting up sessions via Sockets API 216. They also transmit and receive data via Socket API 216. Socket API 216 interact with AFJNET 252 and NETLINK 254. Socket level session communication with peer entity is directed to and from AF_INET 252. QoS Service Provider 230 uses the NETLINK 254 to configure and monitor underlying Traffic Control (TC) components 256 such as a scheduler. In one embodiment, the scheduler may be a Differentiated Services (DiffServ) scheduler. In addition, QoS Service Provider 230 also interacts with NETLINK 254 which in turn interacts with the underlying Device Driver 258 via the Emulated Filter Driver 260 to query and obtain Link State Events 262.
[0016] In one particular embodiment, the network QoS management architecture 200 includes a standard Differentiated Services (DiffServ) portion. Various Differentiated Services architectures are known and may be suitable for this purpose, including, for example, those architectures generally disclosed in An Architecture for Differentiated Services by S. Blake et al, The Internet Society, RFC 2475, December 1998, incorporated herein by reference. Generally, the standard DiffServ portion assumes a stable link bandwidth capacity and interconnectivity state in QoS provisioning, but this is generally not valid within a dynamic ad hoc mobile heterogeneous network environment. Thus, embodiments of the present invention include an extension portion to account for the dynamic link state and bandwidth characteristics in such a dynamic mobile environment, thereby dynamically updating the packet transmit scheduler as link states change. [0017] FIGURE 3 is a representative scheduler 300 in accordance with an embodiment of the invention. In this embodiment, a standard DiffServ portion may be implemented in Linux using the traffic control (TC) elements of queuing disciplines (qdiscs) 302, classes 304, and filters 306. Each network interface 308 may have a qdisc 302 associated with it, which will control how packets are sent over that interface. Some qdiscs 302 are classful and may have multiple classes 304. In order for a qdisc 302 to assign a packet to a particular class 304, filters 306 may be used to classify packets and assign them to the appropriate class 304. In general, a class 304 may have a qdisc 302 attached to it so that elaborate combinations of TC elements can be constructed. A filter 306 may have a policer 310 attached to it that will meter the flow through that policer 310 and produce an action if the flow exceeds a specified rate. [0018] In one particular embodiment, the QoS Service Provider 230 may be adapted to look at local statistics acquired through queries to rtnetlink socket connections. The QoS Service Provider 230 may also request statistics locally or from another host on the network through some mechanism such as an SNMP subagent that implements a DiffServ Management Information Base (MIB). In further embodiments, the QoS Service Provider 230 may provide two main services. A first service is a QoS API function through which QoS-aware applications may request certain levels of QoS for network connections. A second service is a mechanism for the underlying DiffServ implementation to adjust the service rates of its classes based on the available bandwidth as reported by the network device.
[0019] The QoS Service Provider 230 may also be implemented as a user-level daemon that listens on a UNIX address family socket (i.e. local socket) for requests from the QoS API and also listens on a netlink address family socket for reported changes to the available bandwidth of the network device. The QoS API function may be implemented as a library of C functions that send the QoS requests from the application to the QoS Service Provider 230 through the local socket. The QoS Service Provider 230 may attempt to map a QoS request to a DiffServ class that will be able to provide the requested level of QoS. If successful, the QoS Service Provider 230 will create a classifier to map the packets of that network connection to the appropriate DiffServ class. The QoS API will then just use the native socket functionality of the operating system to create the actual network connection.
[0020] In one embodiment, the QoS Service Provider 230 manages the DiffServ implementation on only one network interface and does not check that the QoS API connection actually goes through the monitored interface. In alternate embodiments, the QoS Service Provider 230 is adapted to manage multiple network interfaces. The QoS Service Provider 230 may be adapted to process Transmission Control Protocol (TCP) connections, User Datagram Protocol (UDP) connections, or any other suitable protocols and connections.
[0021] As noted above, embodiments of the present invention include an extension portion to account for the dynamic link state and bandwidth characteristics in a dynamic mobile environment, thereby dynamically updating the packet transmit scheduler as link states change. The extension portion is adapted to modify the service rates of its classes based on the bandwidth available to the network device. This is especially important for wireless devices. The problem can be divided into two parts. The first part is how the device notifies the kernel mode 250 of the new bandwidth. The second part is how the kernel mode 250 effects changes in the standard DiffServ portion based on the new bandwidth. Device notification to the kernel mode 250 of the new bandwidth may be accomplished by the specific device driver associated with the given interface.
[0022] Regarding the second part of the problem, how the kernel mode 250 effects changes in the standard DiffServ portion based on emulated new bandwidth updates, a hierarchical token bucket (HTB) qdisc may be used as a scheduler with a plurality of classes. The plurality of classes may include a separate HTB class for each DiffServ class of expedited forwarding (EF), the four classes of assured forwarding (AFl, AF2, AF3, AF4), and best effort (BE). Each class may be assigned a guaranteed rate and a maximum rate. In addition, the filters that classify packets into the various classes can have policers attached to them that meter the flows going into particular classes in order to perform such actions as dropping or marking. Each policer has a specified rate. The specified rates may be specified as absolute values. In a static environment the network administrator can simply divide up the available bandwidth, as per local policy. However, in a dynamic environment, the sum of the rates of the service classes may be unequal to the bandwidth actually available to the network device at least some of the time.
[0023] In one embodiment, the HTB class for EF is a class of the HTB qdisc, while all the other classes are subclasses of another class of the HTB qdisc at the same level of the EF class. This may be done to isolate the EF class from the other classes, while allowing the other classes to borrow bandwidth from each other if they are not being used. In preferred embodiments, the EF class has the highest priority, the AF classes have the next highest priority and the BE class has the lowest priority. Thus, the AF classes get the first use of any unused bandwidth and the BE class gets to borrow any extra bandwidth only if the AF classes are not using it.
[0024] The architecture 200 may be adapted to perform a notification of a user-level daemon program by the kernel mode (or kernel portion) 250 that the available bandwidth has changed, and may be further adapted to perform a calculation of new rates for the HTB classes and the policers based on the new bandwidth and the update of the corresponding TC elements in the kernel mode 250 by way of rtnetlink sockets. In one embodiment, the notification of the user-level daemon of the change in bandwidth is performed using the NETLINK_ROUTE family of the AF-NETLINK socket protocol, a socket protocol generally known in the relevant art. The AF_NETLINK protocol may be used to transfer information between kernel modules and user space processes. The AF-NETLINK protocol also has a broadcast capability. More specifically, the daemon process may open a NETLINK_ROUTE socket and, when binding to that socket, may specify that it wishes to receive broadcast information on an RTMGRP_LINK group. The kernel mode 250 may then send a broadcast message to the RTMGRP_LINK group whenever the link status has changed on a network device. A bandwidth component may be added to the broadcast message.
[0025] In the event that it is desirable to emulate a change in link status as if it was reported by the network device through the device driver, a file in a /proc file system may be used. In one embodiment, files in the /proc file system are simply linked to functions in the kernel mode 250 that are executed whenever any user-level process reads from one of the /proc files. The functions in the kernel mode 250 may return data from the kernel mode 250 as if the data were in the files. In one particular embodiment, a file /proc/net/bw-ethl may be implemented with a function that will change the reported bandwidth value periodically as well as call the netlink function that initiates the broadcasts to the RTMGRP_LINK group. In alternate embodiments, the /proc file system based mechanism may be implemented to emulate dynamic changes in link state, or alternately, the device driver 258 (FIGURE 2) will monitor the actual links state 262 and report updates. [0026] In operation, a user-level daemon may initially read a configuration file that specifies the percentages of available bandwidth that are to be allocated to each DiffServ class, the DiffServ class to HTB class mapping, a list of policers and their percentages, and a list of which filters are using which policers. The daemon may then request to be notified of RTMGRP_LINK group messages. When the daemon receives notification of a bandwidth change through the netlink socket, it may recalculate all of the rates, and may make changes to the appropriate qdiscs and filters in the kernel mode 250 by way of rtnetlink sockets. The daemon may also notify any application that has requested to be notified of any change in the link status as described more fully below.
[0027] In one embodiment, the architecture 200 includes a link state change notification capability. As mentioned above, the AF-NETLINK socket protocol has a broadcast capability. A broadcast function in /usr/src/linux/net/core/rtnetlink.c that performs a broadcast for the RTMGRP_LINK group is, in one embodiment, designated as rtmsg_ifinfo. The broadcast function first calls a rtnetlink_fill_ifinfo function and then calls a netlink_broadcast function to send the message to all processes listening to the RTMGRP_LINK group. The rtnetlink_fill_ifinfo function retrieves data from the netdevice data structure and fills in the socket message buffer. It also uses the message tags IFLA_*, such as IFLA_ADDRESS, IFLA-MTU, etc., to indicate what data is being returned in the socket message buffer. These tags are defined in a folder, such as /usr/src/linux/include/linux/rtnetlink.h. A flag tag IFLA_UNSPEC may be used to return the new bandwidth value. The new bandwidth value may be stored in the netdevice data structure, or alternately, it may be stored in a new global variable, such as a global variable called bandwidth_for_our_test. This variable may, for example, be set by the function tied to the /proc/ne^w-ethl file. Another function, designated as bw_get_info, may return the value of bandwidth_for_our_test whenever /proc/net/bw-ethl is read. It may also have a counter that causes it to toggle the value of bandwidth_for_our_test. In one particular embodiment, for example, the bw_get_info function may toggle between lOMbps and lOOMbps every twenty reads. Whenever the bw_get_info function changes the value of bandwidth_for_our_test, it may also call another function designated rtmsg_ifinfo in order to initiate an RTMGRPJ-JNK group broadcast message. A perl script may be adapted to periodically drive the changes, for example, at 1 second intervals.
[0028] The architecture 200 may be adapted to perform a traffic control function. In one embodiment, when the user-level daemon program starts, the Linux Traffic Control (TC) elements may have no concept of the different DiffServ classes, so the architecture 200 must be told which HTB classes represent which DiffServ classes. The architecture 200 may also need to be told what percentage of available bandwidth is to be allocated to the different DiffServ classes, as well as what percentages to use for the different policers and which filters use which policers. The information about filters may be necessary since the parameters of the policers may not be changeable. In one embodiment, rates may be changed by changing the filters and attaching a new policer to the new filters with the newly calculated rates, effectively discarding the old policers.
[0029] After reading in the configuration information, the daemon may open a socket connection with the AF-NETLINK socket protocol and then may bind to that socket after setting the nl_groups field in the sockaddr_nl data structure to RTMGRP_LINK group. The daemon may then listen to the socket, using select, and may wait for any broadcast message. After receiving a link-change message, the program may retrieve the new bandwidth value from the netlink message buffer and may recalculate the rates for the HTB classes and policers based on the percentages defined in the configuration file. All the necessary information may then be put into netlink message buffers and sent to the TC elements in the kernel mode 250 by way of a netlink socket.
[0030] The architecture 200 may be further adapted to allow QoS-aware applications to call a set of QoS enhanced Socket functions for QoS provisioning, which may, in turn, use the standard BSD Socket functions for the actual network connection. Based on the information in a QoS request from the QoS-aware application, the QoS Service Provider 230 will map the connection to the appropriate QoS provisioning mechanism. For example, if the underlying QoS mechanism is DiffServ, the QoS Service Provider 230 may set up TC configurations in order to route packets from that connection into the assigned DiffServ class, and may perform DSCP marking based on the configuration associated with a given tuple space. The QoS Service Provider 230 may also be adapted to provide notification to remote applications when network resource conditions change. [0031] The QoS Service Provider 230 may be further adapted to use the QoS API functions to send strings to and from a server, in order to illustrate the use of the API and verify that the QoS API functions are performing correctly. In one particular embodiment, for example, an FTP client in the generally-known netkit-ftp-0.17 may be modified to call the QoS API functions.
[0032] As described above, the QoS Service Provider 230 may listen on an AF-UNIX socket, waiting on messages from applications using the QoS API. Upon receiving a request, the QoS Service Provider 230 may attempt to satisfy the request and then return success or failure. The QoS Service Provider 230 may also be adapted to map a request to a DiffServ class in the underlying DiffServ implementation. It could be enhanced to use IntServ as well, using some runtime option to decide which mechanism to use. The QoS-aware application would be unaware which QoS provisioning mechanism was being used.
[0033] In one aspect, a QSocket function creates an endpoint for communication and returns a file descriptor on success, or -1 if an error occurred. The QSocket function may open a standard socket and send a request message to the QoS Service Provider 230, which may include the file descriptor of the socket, the process id of the application, and the parameters in the qos_info structure. The QoS Service Provider 230 may use the file descriptor of the socket and the process id of the application as the unique index for this connection. Since the socket call does not specify an endpoint, the QoS Service Provider 230 cannot map this connection to a DiffServ class yet, so it merely creates a soft state for this connection and saves the parameters in the qos_info structure.
[0034] In one particular embodiment, a QConnect function connects to a specific host and port combination and returns a zero on success, or -1 if an error occurred. The QConnect function may call the standard connect function which may assign a local address and port number. The QConnect function may then call getsockname to retrieve the assigned local address and port number. The destination address and port number are retrieved from the sockaddr structure. The QConnect function may finally send a setup message to the QoS Service Provider 230, which consists of the file descriptor of the socket, the process id of the application, the local address and port, and the destination address and port. The QoS Service Provider 230 may then analyze the DiffServ status on the network interface for this connection. The QoS Service Provider 230 may first consider the value of the qosmech field in the qos_info structure that was stored in the call to QSocket, which may have the value of QOS-ANY, QOS_DIFFSERV, or QOS_INTSERV. If the qosmech field has the value of QOS_ANY, the QoS Service Provider 230 may consult two parameters in the flow_spec substructure of the qos_info structure. If there is a latency requirement, the QoS Service Provider 230 attempts to map this connection to the EF class. The QoS Service Provider 230 compares the rate requirement to what is available for that class (allocated rate minus current usage). If there is not a latency requirement, the QoS Service Provider 230 attempts to map this connection to an AF class in the same way as for the EF class. If the qosmech field has the value of QOS_DIFFSERV, the QoS Service Provider 230 will attempt to map this connection to the DiffServ class as specified in the diffservclassrequest field of the qos_info structure in the same manner as described above. In one particular embodiment, the QOS-INTSERV mechanism may be treated in the same manner as QOS_ANY. If the request is successfully mapped to a DiffServ class, the QoS Service Provider 230 may then create a TC filter to map packets for this connection to the HTB class that represents the selected DiffServ class and return success to the QConnect function. If the QoS Service Provider 230 is unsuccessful, it returns failure to the QConnect function, which will close the socket and return an error.
[0035] A QChange function updates the QoS information associated with an existing file descriptor and returns a zero on success, or -1 if an error occurred. The QChange function may attempt to map the request to a DiffServ class as described in the QConnect function. If successful, the QChange function may have been mapped to the same class or a different class. If unsuccessful, the QChange function will retain the current mapping.
[0036] A QClose function closes the associated file descriptor created via a QSocket function and returns a zero on success, or -1 if an error occurred. The QClose function will close the standard socket and send a clear request to the QoS Service Provider 230, which includes the file descriptor of the socket and the process id of the application. The QoS Service Provider 230 may free all memory associated with this connection, delete the TC filter for it, and, if the application had requested any notifications, may remove the message queue to that application and any pending event notifications.
[0037] A QAttach function may associate an existing socket file descriptor with QoS information and may return a zero on success, or -1 if an error occurred. A QSendto function may send a message over an existing QSocket to a peer and returns the number of bytes sent on success, or -1 if an error occurred. A QSend function sends a message over an existing QSocket in connected state to a peer and returns the number of bytes sent on success, or -1 if an error occurred. The QSend function will directly call the standard Send function.
[0038] A QStateUpdateNotification function sets a callback function and returns a zero on success, or a -1 if an error occurred. The QStateUpdateNotification function will send a callback message to the QoS Service Provider 230, which may include a file descriptor of the socket, a process id of the application, and an event type from the notification_type structure. The QoS Service Provider 230 will add this request to the pending event list. The QStateUpdateNotification function may add the file descriptor, event type, context block, and callback function to its pending event list. When there is an event of that type, the QoS Service Provider 230 may remove the notification from the pending event list, create a message queue for the application process and put a message on the queue. In one particular embodiment, every function in the QoS API immediately checks to see if there are any messages on its message queue. If there are, then the function reads each message, matches it up with the appropriate entry in it pending event list, removes that entry, and calls the designated callback function. [0039] A QStatus function retrieves status information associated with an existing file descriptor and returns a zero on success, or -1 if an error occurred. The QStatus function will send a status message to the QoS Service Provider 230, which may include the file descriptor of the socket and the process id of the application. The QoS Service Provider 230 may retrieve the current statistics from the DiffServ implementation and may return the data to the QStatus function, which fills in values of the qos_status structure.
[0040] While preferred and alternate embodiments of the invention have been illustrated and described, as noted above, many changes can be made without departing from the spirit and scope of the invention. Accordingly, the scope of the invention is not limited by the disclosure of these preferred and alternate embodiments. Instead, the invention should be determined entirely by reference to the claims that follow.

Claims

What is claimed is:
1. A method of managing a network having a plurality of interfaces, comprising: controlling how a packet is passed over at least one of the interfaces using a differentiated services portion of a network management architecture; monitoring a request for a Quality of Service (QoS) level from at least one QoS- aware application; and adjusting at least one service rate of packet travel controlled by the differentiated services portion based on at least one of the requested QoS level and an available bandwidth.
2. The method of Claim 1, wherein controlling how a packet is passed over at least one of the interfaces includes using at least one of a queuing discipline, a class, and a filter.
3. The method of Claim 1, wherein adjusting at least one service rate of packet travel includes notifying a kernel portion of a variation in the available bandwidth, and effecting a change in control of the packet rate of travel by the differentiated services portion.
4. The method of Claim 1, wherein adjusting at least one service rate of packet travel includes scheduling a plurality of service rates using a queuing discipline.
5. The method of Claim 4, wherein scheduling a plurality of service rates includes scheduling an expedited forwarding (EF) class for each differentiated services class of expedited forwarding, scheduling a plurality of assured forwarding (AF) classes, and scheduling a best effort (BE) class.
6. The method of Claim 5, wherein the EF classes have a highest priority, the AF classes have an intermediate priority, and the BE class has a lower priority.
7. The method of Claim 4, wherein scheduling a plurality of service rates includes scheduling a guaranteed rate and a maximum rate for each class of a plurality of classes.
8. The method of Claim 1, further comprising notifying a user-level daemon program of a variation in the available bandwidth.
9. The method of Claim 8, further comprising changing at least one of a service rate, a queuing discipline, and a filter by the user-level daemon program.
10. The method of Claim 1, further comprising providing a notification of a link state change.
11. The method of Claim 1, wherein adjusting at least one service rate of packet travel controlled by the differentiated services portion includes calling at least one QoS enhanced socket function for QoS provisioning.
12. The method of Claim 1, wherein adjusting at least one service rate of packet travel controlled by the differentiated services portion includes mapping a connection to an appropriate QoS provisioning mechanism.
13. The method of Claim 12, wherein mapping a connection to an appropriate QoS provisioning mechanism includes mapping a connection using a QSocket function adapted to create an endpoint for communication.
14. The method of Claim 12, wherein mapping a connection to an appropriate QoS provisioning mechanism includes mapping a connection using a QConnect function adapted to connect to a specific host and port combination.
15. The method of Claim 12, wherein mapping a connection to an appropriate QoS provisioning mechanism includes mapping a connection using a QChange function adapted to update a QoS information associated with an existing file descriptor.
16. The method of Claim 12, wherein mapping a connection to an appropriate QoS provisioning mechanism includes mapping a connection using a QClose function adapted to close an associated file descriptor.
17. The method of Claim 12, wherein mapping a connection to an appropriate QoS provisioning mechanism includes mapping a connection using a QAttach function adapted to associate an existing socket file descriptor with QoS information.
18. The method of Claim 12, wherein mapping a connection to an appropriate QoS provisioning mechanism includes mapping a connection using a QStatepdateNotification function adapted to set a callback function.
19. The method of Claim 12, wherein mapping a connection to an appropriate QoS provisioning mechanism includes mapping a connection using a QStatus function adapted to retrieve a status information associated with an existing file descriptor.
20. A network management architecture for a network having a plurality of interfaces, comprising: a first portion adapted to control how a packet is passed over at least one of the interfaces; a second portion adapted to monitor a request for a Quality of Service (QoS) level from at least one QoS-aware application; and a third portion adapted to adjust at least one service rate of packet travel controlled by the first portion based on at least one of the requested QoS level and an available bandwidth.
21. The network management architecture of Claim 20, wherein the first portion is adapted to controlling how a packet is passed over at least one of the interfaces using at least one of a queuing discipline, a class, and a filter.
22. The network management architecture of Claim 20, wherein the third portion is adapted to adjust at least one service rate of packet travel by notifying a kernel portion of a variation in the available bandwidth, and effecting a change in control of the packet rate of travel by the first portion.
23. The network management architecture of Claim 20, wherein the third portion is adapted to adjust at least one service rate of packet travel by scheduling a plurality of service rates using a queuing discipline.
24. The network management architecture of Claim 20, further comprising a fourth portion adapted to notify a user-level daemon program of a variation in the available bandwidth.
25. The network management architecture of Claim 20, wherein the third portion is further adapted to map a connection to an appropriate QoS provisioning mechanism using at least one of a QSocket function adapted to create an endpoint for communication, a QConnect function adapted to connect to a specific host and port combination, a QChange function adapted to update a QoS information associated with an existing file descriptor, using a QClose function adapted to close an associated file descriptor, a QAttach function adapted to associate an existing socket file descriptor with QoS information, a QStatepdateNotification function adapted to set a callback function, and a QStatus function adapted to retrieve a status information associated with an existing file descriptor.
PCT/US2005/043892 2004-12-09 2005-12-01 Network centric quality of service using active network technology WO2006062887A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP05852950.4A EP1825637B1 (en) 2004-12-09 2005-12-01 Network centric quality of service using active network technology

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/008,372 US7561521B2 (en) 2004-12-09 2004-12-09 Network centric quality of service using active network technology
US11/008,372 2004-12-09

Publications (1)

Publication Number Publication Date
WO2006062887A1 true WO2006062887A1 (en) 2006-06-15

Family

ID=36013661

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/043892 WO2006062887A1 (en) 2004-12-09 2005-12-01 Network centric quality of service using active network technology

Country Status (3)

Country Link
US (1) US7561521B2 (en)
EP (1) EP1825637B1 (en)
WO (1) WO2006062887A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100466542C (en) * 2006-06-30 2009-03-04 华为技术有限公司 Service gradation based loss distribution method

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7499395B2 (en) * 2005-03-18 2009-03-03 Cisco Technology, Inc. BFD rate-limiting and automatic session activation
US20060268714A1 (en) * 2005-05-13 2006-11-30 Andre Szczepanek Rapid I/O Compliant Congestion Control
US7898993B2 (en) * 2007-05-31 2011-03-01 International Business Machines Corporation Efficiency and resiliency enhancements for transition states in ad hoc networks
US8040863B2 (en) * 2007-05-31 2011-10-18 International Business Machines Corporation Demand pull and supply push communication methodologies
US7894828B2 (en) * 2007-05-31 2011-02-22 International Business Machines Corporation System and method for establishing peer-to-peer bandwidth sharing ad hoc networks
US8320414B2 (en) 2007-05-31 2012-11-27 International Business Machines Corporation Formation and rearrangement of lender devices that perform multiplexing functions
US7843861B2 (en) * 2007-05-31 2010-11-30 International Business Machines Corporation Coalition formation and service provisioning of bandwidth sharing AD HOC networks
US10419360B2 (en) 2007-05-31 2019-09-17 International Business Machines Corporation Market-driven variable price offerings for bandwidth-sharing ad hoc networks
US10623998B2 (en) * 2007-05-31 2020-04-14 International Business Machines Corporation Price offerings for bandwidth-sharing ad hoc networks
US7979311B2 (en) 2007-05-31 2011-07-12 International Business Machines Corporation Payment transfer strategies for bandwidth sharing in ad hoc networks
US8520535B2 (en) 2007-05-31 2013-08-27 International Business Machines Corporation Optimization process and system for a heterogeneous ad hoc Network
US8249984B2 (en) 2007-05-31 2012-08-21 International Business Machines Corporation System and method for fair-sharing in bandwidth sharing ad-hoc networks
US7944878B2 (en) * 2007-05-31 2011-05-17 International Business Machines Corporation Filtering in bandwidth sharing ad hoc networks
US8620784B2 (en) 2007-05-31 2013-12-31 International Business Machines Corporation Formation and rearrangement of ad hoc networks
US7817623B2 (en) 2007-05-31 2010-10-19 International Business Machines Corporation Optimization process and system for non-multiplexed peer-to-peer architecture
US7860081B2 (en) 2007-05-31 2010-12-28 International Business Machines Corporation Optimization process and system for multiplexed gateway architecture
US7873019B2 (en) * 2007-05-31 2011-01-18 International Business Machines Corporation Systems and methods for establishing gateway bandwidth sharing ad-hoc networks
CN101841888B (en) * 2009-03-16 2012-06-27 华为技术有限公司 Resource control method, related equipment and related system
US8761008B2 (en) * 2009-10-29 2014-06-24 The Boeing Company System, apparatus, and method for communication in a tactical network
US9191286B2 (en) 2012-08-09 2015-11-17 Accedian Networks Inc. Adaptive centralized collection of performance management data using a metamodel
US9524197B2 (en) * 2012-09-06 2016-12-20 Accedian Networks Inc. Multicasting of event notifications using extended socket for inter-process communication
US9088612B2 (en) * 2013-02-12 2015-07-21 Verizon Patent And Licensing Inc. Systems and methods for providing link-performance information in socket-based communication devices
US10367785B2 (en) 2013-10-01 2019-07-30 Perfecta Federal Llc Software defined traffic modification system
US9781046B1 (en) * 2013-11-19 2017-10-03 Tripwire, Inc. Bandwidth throttling in vulnerability scanning applications
US9967197B2 (en) * 2015-01-12 2018-05-08 Citrix Systems, Inc. Large scale bandwidth management of IP flows using a hierarchy of traffic shaping devices
US11283686B2 (en) 2019-09-03 2022-03-22 The Boeing Company Data communication via communication links
US11265245B2 (en) * 2020-06-24 2022-03-01 T-Mobile Usa, Inc. Link quality metrics as constraints in source routing switching networks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020057651A1 (en) * 2000-04-19 2002-05-16 Roberts Lawrence G. Micro-flow management
US6744767B1 (en) * 1999-12-30 2004-06-01 At&T Corp. Method and apparatus for provisioning and monitoring internet protocol quality of service
US20040136379A1 (en) * 2001-03-13 2004-07-15 Liao Raymond R Method and apparatus for allocation of resources

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440723A (en) * 1993-01-19 1995-08-08 International Business Machines Corporation Automatic immune system for computers and computer networks
US6295285B1 (en) * 1997-04-17 2001-09-25 Lucent Technologies Inc. Global packet dynamic resource allocation for wireless networks
US6377548B1 (en) * 1997-10-14 2002-04-23 Lucent Technologies Inc. Method for admitting new connections based on measured quantities in a multiple access system for communications networks
US6459682B1 (en) * 1998-04-07 2002-10-01 International Business Machines Corporation Architecture for supporting service level agreements in an IP network
US6331986B1 (en) * 1998-04-24 2001-12-18 Lucent Technologies Inc. Method for resource allocation and routing in multi-service virtual private networks
US6442158B1 (en) * 1998-05-27 2002-08-27 3Com Corporation Method and system for quality-of-service based data forwarding in a data-over-cable system
US6452915B1 (en) * 1998-07-10 2002-09-17 Malibu Networks, Inc. IP-flow classification in a wireless point to multi-point (PTMP) transmission system
US6594246B1 (en) * 1998-07-10 2003-07-15 Malibu Networks, Inc. IP-flow identification in a wireless point to multi-point transmission system
US6590885B1 (en) * 1998-07-10 2003-07-08 Malibu Networks, Inc. IP-flow characterization in a wireless point to multi-point (PTMP) transmission system
US6680922B1 (en) * 1998-07-10 2004-01-20 Malibu Networks, Inc. Method for the recognition and operation of virtual private networks (VPNs) over a wireless point to multi-point (PtMP) transmission system
US6862622B2 (en) * 1998-07-10 2005-03-01 Van Drebbel Mariner Llc Transmission control protocol/internet protocol (TCP/IP) packet-centric wireless point to multi-point (PTMP) transmission system architecture
US6286052B1 (en) * 1998-12-04 2001-09-04 Cisco Technology, Inc. Method and apparatus for identifying network data traffic flows and for applying quality of service treatments to the flows
US6578147B1 (en) * 1999-01-15 2003-06-10 Cisco Technology, Inc. Parallel intrusion detection sensors with load balancing for high speed networks
FI107770B (en) * 1999-06-07 2001-09-28 Nokia Mobile Phones Ltd Managing PDP Contexts in a Mobile Station
AU6765200A (en) * 1999-08-13 2001-03-13 Fujitsu Network Communications, Inc. Supporting multiple application traffic types over connection oriented networks
US6674718B1 (en) * 2000-04-11 2004-01-06 International Business Machines Corporation Unified method and system for scheduling and discarding packets in computer networks
US7020143B2 (en) * 2001-06-18 2006-03-28 Ericsson Inc. System for and method of differentiated queuing in a routing system
US6973315B1 (en) * 2001-07-02 2005-12-06 Cisco Technology, Inc. Method and system for sharing over-allocated bandwidth between different classes of service in a wireless network
US7283536B2 (en) * 2002-06-11 2007-10-16 Nokia Corporation Multimode queuing system for DiffServ routers
US20040230695A1 (en) * 2003-05-15 2004-11-18 Anschutz Thomas Arnold Methods, systems, and computer program products for processing traffic in a communication network based on registration of an access session and/or application flow and specifying a treatment for the access session and/or application flow traffic

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6744767B1 (en) * 1999-12-30 2004-06-01 At&T Corp. Method and apparatus for provisioning and monitoring internet protocol quality of service
US20020057651A1 (en) * 2000-04-19 2002-05-16 Roberts Lawrence G. Micro-flow management
US20040136379A1 (en) * 2001-03-13 2004-07-15 Liao Raymond R Method and apparatus for allocation of resources

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100466542C (en) * 2006-06-30 2009-03-04 华为技术有限公司 Service gradation based loss distribution method

Also Published As

Publication number Publication date
US7561521B2 (en) 2009-07-14
EP1825637B1 (en) 2013-05-29
EP1825637A1 (en) 2007-08-29
US20060126504A1 (en) 2006-06-15

Similar Documents

Publication Publication Date Title
EP1825637B1 (en) Network centric quality of service using active network technology
US9413546B2 (en) QOS provisioning in a network having dynamic link states
US10200251B2 (en) Methods and apparatus for accessing selectable application processing of data packets in an adaptive private network
US6661780B2 (en) Mechanisms for policy based UMTS QoS and IP QoS management in mobile IP networks
US20020065907A1 (en) Method and apparatus for dynamically modifying service level agreements in cable modem termination system equipment
US8599716B2 (en) Method and system to configure quality of service in a network
US20040039803A1 (en) Unified policy-based management system
US20070204036A1 (en) Method and apparatus for creating policies for policy-based management of quality of service treatments of network data traffic flows
Ponnappan et al. A policy based QoS management system for the IntServ/DiffServ based Internet
JP2004515156A (en) Network access system including programmable access device with distributed service control
JP2003524994A (en) Method and apparatus for controlling internet protocol traffic in a WAN or LAN
Brunner et al. MPLS management using policies
JP2004236030A (en) Policy application system based on network state and its program
JP2004515179A (en) Programmable access device for distributed network access system
El-Gendy et al. Paving the first mile for QoS-dependent applications and appliances
Boutaba et al. Web-based customer management of VPNs
Carapinha et al. Quality of service in the future internet
Ayyagari et al. DiffServ extensions to dynamic link states and bandwidths for QoS-aware mobile networking applications
KR100453825B1 (en) Method for managing resources in guaranteeing QoS in IP network
Wood et al. Network quality of service for the enterprise: A broad overview
Alharbi SDN-based mechanisms for provisioning quality of service to selected network flows
Achir et al. Active technology as an efficient approach to control DiffServ networks: The DACA architecture
Rooney The IcorpMaker: A Dynamic Framework for Application-Service Providers
Anerousis et al. View-based management of services in a programmable internetwork.
Yuan et al. A QoS management architecture for diffserv-aware MPLS-based IP network

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KN KP KR KZ LC LK LR LS LT LU LV LY MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2005852950

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2005852950

Country of ref document: EP