Abstract:
A unique method and apparatus for a dynamic rate, differential class-based quality of service agent for a communication network that provides a quality of service guarantee by taking into account the existing state of the network and user-defined classes of service is provided. A flexible quality of service agent, separate from the control plane which contains call processing and network management, is provided which optimizes network performance by minimizing the amount of information transmitted over the network to set-up a call and media negotiation, implements admission control to maintain the quality of the ongoing calls and administers the system wide quality of service by providing instantaneous feedback on the current state of the system/network at both the transmitting and receiving end.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates generally to communication networks and more particularly to a quality of service agent which optimizes network performance for multimedia communications. 
     2. Description of the Related Art 
     It has long been known to provide communication workstations, such as computers and telephones, interconnected by digital communication networks whereby users of the individual workstations may communicate, i.e., transfer information, with one another over the network. In a connection-oriented communication network, the transfer of information between two end-users is accomplished by network functions that select and allocate network resources along an acceptable path. The logical association between the communication end-users is referred to as a call. The chain of associated network resources that support the call is referred to as a connection. Connection management is a network function that is responsible for setting up, maintaining, and taking down connections. Each call request is issued with a set of quality of service (QoS) requirements that govern the resource allocation for the desired connection. Quality of service requirements may include providing access, performance, fault tolerance, and security between a specified set of end systems as directed by the network&#39;s manager. 
     More recently, users have increasingly requested desktop conferencing, remote presentations, and other multimedia applications between network users. Such multimedia applications have data-intensive sound, voice, and video flows associated therewith. This requires concomitant high bandwidth communication links between distributed computing systems with minimal communication delay, maximum throughput, and instantaneous burst communication capability. The requirements of such multimedia applications accordingly make scheduling appropriate resources to provide for the necessary quality of service very difficult. 
     To reduce design complexity, most networks are organized as a series of layers, each one built upon its predecessor as described in OSI, A Model for Computer Communications Standards, Black, Ulyess, Prentice Hall, 1991. The number of layers, the name of each layer, contents, and function of each layer differ from network to network. However, in each network, the purpose of the layers is to offer certain services to the higher layers, shielding those layers from the details of how the offered services are actually implemented. 
     FIG. 1 illustrates a schematic representation of a multi-layered communication network model based on the OSI layered reference model. The lowest layer is the physical layer OSI  1 ,  20 , which is responsible for implementing a physical circuit between data terminal equipment and data circuit terminating equipment. The data link or second layer, OSI  2 ,  22 , is responsible for transfer of data across the link. The third or network layer, OSI  3 ,  24 , specifies the interface of the user into a network and also defines network switching/routing and communications between networks. The fourth or transport layer, OSI  4 ,  26 , provides an interface between the data communications network and the upper three layers. The fifth or session layer, OSI  5 ,  28 , serves as a user interface into the transport layer below, providing a means for exchange of data between users such as simultaneous transmission, alternate transmission, checkpoint procedures and the like. The sixth or presentation layer, OSI  6 ,  30 , ensures that user applications can communicate with each other, and the seventh or application layer, OSI  7 ,  32 , supports the end-user application process. 
     The fourth layer  26  or transport layer is of particular interest inasmuch as it provides the user options in obtaining certain levels of quality, and is designed to keep the user isolated from some of the physical and functional aspects of the network. To improve network performance, existing techniques rely on transport layer flow control to manage the network performance. However, there are problems with this approach. As multimedia applications become more prevalent, the use of the transport layer as the only mechanism of flow control can result in a reduced network throughput, since the transport layer must handle increased volume of different types of multimedia packets, each with different priorities. Thus, the transport layer mechanism of flow control affects the quality of service for both real time applications, such as voice packets, and non-real time applications, such as data packets, equally from the user&#39;s perspective. 
     Conventional allocation of network resources is by and large static. A fixed level of quality of service, specified by the user, is matched at connection setup for a call and must be maintained throughout the duration of the call. Static allocation of network resources is inefficient, and typically inadequate for a dynamic networking environment where the user requirements and the quality characteristics of network resources are not static. 
     Thus, there exists a need for a system and method that addresses the problem of managing network performance which optimizes both end-to-end application performance and network performance. 
     SUMMARY OF THE INVENTION 
     The present invention provides a unique method and apparatus for a dynamic rate, differential class-based quality of service agent that provides a quality of service guarantee by taking into account the existing state of the network and user-defined classes of service. 
     In accordance with the present invention, a flexible quality of service agent, separate from the control plane which contains call processing and network management, is provided which optimizes network performance by minimizing the amount of information transmitted over the network to set-up a call and media negotiation, implements admission control to maintain the quality of the ongoing calls and administers the system wide quality of service by providing instantaneous feedback on the current state of the system/network at both the transmitting and receiving end. 
     These and other advantages and features of the invention will become apparent from the following detailed description of the invention which is provided in connection with the accompanying drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 illustrates a schematic representation of a multi-layered communication network based on the OSI layered reference model; 
     FIG. 2 illustrates a schematic representation of a three layered communication network having a quality of service agent in accordance with the present invention; 
     FIG. 3 illustrates in block diagram form end-to-end quality of service operations in accordance with the present invention; 
     FIG. 4 illustrates a functional block diagram of implementation of service utilizing a quality of service agent in accordance with the present invention; 
     FIGS. 5A and 5B illustrate in flow chart form a method for setting up a call utilizing a quality of service agent in accordance with the present invention; and 
     FIG. 6 illustrates in flow chart form a method for monitoring a call in progress utilizing a quality of service agent in accordance with the present invention. 
    
    
     DETAILED DESCRIPTION 
     The present invention will be described as set forth in the embodiments illustrated in FIGS. 2-6. Other embodiments may be utilized and structural, logical or programming changes may be made without departing from the spirit or scope of the present invention. Like items are referred to by like reference numerals throughout the description. 
     In accordance with the present invention, a quality of service guarantee is provided by a quality of service agent that optimizes both end-to-end application and network performance by providing network feedback at the application layer that can be used before or after call set-up, and provides personalized quality of service using differential class of services. 
     FIG. 2 illustrates a schematic representation of a three layered communication network having a quality of service agent in accordance with the present invention. The first two layers, i.e., the media transmission plane  40  and the control and management plane  50 , are responsible for implementing a physical circuit between data terminal equipment, such as for example LAN segments  42   a - 42   d , transferring data across a link, such as for example data path  44 , specifying the interface of the user into a network, defining network switching/routing and communications between networks via a management control device, such as for example network management  52  and a control device, such as for example call coordinator  54 , providing an interface to the user and ensuring that user applications can communicate with each other. In accordance with the present invention, a third layer, or quality of service (QoS) plane  60 , is provided to support the end-user application process. QoS plane  60  is provided with a QoS agent including QoS Decision block  62 , User QoS block  64  and Network QoS block  66  which supports the end-user application process. The QoS agent can be implemented as a distributed software object or as a firmware object within processors in call coordinator  54  and network management  52 , based on the needs of the user&#39;s system, and is configurable using the system management. A QoS Database  70  is provided in accordance with the present invention to store user and device profiles. The QoS plane  60 , as will be described further below, allows for optimization of user expectations of quality of service and network performance, and assist the Call Coordinator  54  of Control and Management Plane  50  to set appropriate signaling parameters based on system resources and the user and device profiles stored in QoS database  70 . 
     FIG. 3 illustrates in block diagram form end-to-end quality of service operations in accordance with the present invention. A customer communication system includes communications workstations  80 , such as for example wireless telephone/Personal Data Assistant  82 , Plain Old Telephone System (POTS) phone  84 , Internet Protocol (IP) phone  86 , and personal computer (PC)  88 , through which information is transferred via hub  92 , which performs Admission Control, Priority Scheduling, Dynamic Coding/Decoding (Codec) and Public Switched Telephone Network (PSTN) Hop Off functions, to IP Network  90 . The state of IP Network  90  is provided as feedback  94  back to the hub  92  for use in performing the functions described above. In accordance with the present invention, QoS Agent  96  is provided to support the end-user application process by assisting the Call Coordinator  54  and Network Management Complex  52  to establish and maintain a call. As previously noted, the QoS Agent  96  can be implemented as a distributed software object or as a firmware object based on the needs of the user&#39;s system, and is configurable using the system management. 
     When communication workstations  80  are established by the system management, a User Class of Service (UCOS) is established by the system administrator for each workstation. The UCOS includes, for example, high priority user, low priority user, voice only, video/voice user, etc. Thus for example, voice calls from phone  84  may have a higher priority than voice/video calls from PC  88 . The QoS Agent  96  operates to translate the User Class of Services (UCOS) specified by the system management into Network Class of Services (NCOS). Each NCOS implies minimum network guarantees, such as for example the minimum bandwidth that will be provided for a call, that will be given to a user. For example, a Constant Agreement Service (CAS) NCOS implies that if at call setup time a certain bandwidth is acquired, it will be continued until the end of the call. Alternatively, a Variable Agreement Service (VAS) NCOS implies that the call may be switched to a lower bandwidth based on network conditions which may result in the loss of some data packets. When one of the communication workstations  80 , such as for example phone  86 , requests service, i.e., a call through IP Network  90 , the Admission Control function will utilize the information provided by the network feedback  94  to determine the best level of service currently available within the IP Network  90  at that time. Once this has been determined, the QoS agent  96 , utilizing the information obtained from the Admission Control, will assist the Call Coordinator  54  to establish the call by negotiating with the IP Network  90  to implement the best level of service currently available as further described below with respect to FIG.  4 . During the call setup, the Call Coordinator  54  uses dynamic network statistics to control services such as negotiate media, change the rate of transmission of an ongoing call on the fly, provide jitter buffer information, recommend PSTN hop-off, etc. 
     FIG. 4 illustrates a functional block diagram of implementation of service utilizing a quality of service agent in accordance with the present invention. The functional blocks include QoS agent  96 , Network Endpoints  110  and Call Coordinator/Management block  130 , which includes Call Coordinator  54  and Management Complex  52 . QoS Agent  96  includes a Class of Service Translator function  100  to translate from User Class of Services specified by the User Classifier  112  to Network Class of Services determined by Network Classifier  132 . QoS Agent  96  further includes a QoS database  70 , a Scheduling Policy Controller function  102 , a Traffic Monitor function  104 , and an Admission Controller function  106 . QoS database  70  is used to store information specified by User Classifier  112  and Network Classifier  132 , such as for example system information about internal compatible endpoints that register with the system and user&#39;s calling habits. For example, internal compatible endpoints, such as for example workstations  80 , can register with the QoS agent  96  when they are added to the system, such as a Local Area Network (LAN), or when they boot up. The system information that can be entered into the database  70  includes the Medium Access Control (MAC) address for an endpoint, a list of compressors/decompressors and mixer ports that service end endpoint, etc. Additionally, similar information about external endpoints (not shown) can also be stored when an external device users the system for the first time. Database  70  can also be used to store and track user&#39;s calling habits. Typically, a user will call the same group of people, i.e., project mates, friends, family, etc. For each user, the QoS agent  96  will utilize the user&#39;s calling pattern and also User Class of Service assigned to the user by the system administrator to reduce the time required to setup a call by QoS agent  96 . 
     Scheduling Policy Controller  102  indicates to the Network Endpoints  110  how to mark the data packets so that Priority Schedulers  114 ,  134  can determine the priority of the packets through the system. Traffic Monitor  104  provides QoS Agent  96  with information about the network, such as for example increased delay of the system, as provided from Signaling Processes  116 ,  136 . Admission Controller  106  utilizes information provided by the Admission Controls  118 ,  138  to determine the best level of service currently available within the network as previously described with respect to FIG.  3 . 
     FIGS. 5A and 5B illustrate in flow chart form a method for setting up a call utilizing a quality of service agent in accordance with the present invention. In step 200, a user, such as for example one of the communication workstations  82 - 88  of FIG. 3, requests a call to be set up. In step 210, the QoS Agent  96  determines if the user entry is already in database  70 . If the user entry is already stored in database  70 , then in step 220 QoS Agent  96  retrieves the system parameters, as previously described with respect to FIG. 4, for the user from database  70 . Since the information retrieved from database  70  can reduce the call setup time, in step 230 the QoS Agent  96  proceeds with “fast” signaling, i.e., call setup utilizing the information retrieved from the database. 
     If in step 210, the user entry is not stored in the database, in step 240, QoS Agent  96  starts a detailed call setup. In step 250, QoS Agent  96  gets the system and user information and in step 260 enters the information into database  70  for future use. 
     Referring now to FIG. 5B, in step 270, the QoS Agent  96  next determines if there is adequate system bandwidth available to handle the call, based on the feedback  94  from the IP Network  90 . If adequate system bandwidth is not available, in step 310 admission of the call to the system will be rejected or renegotiated. If adequate system bandwidth is available, in step 280 the QoS Agent  96  will determine if the requested class of service is available. If the requested class of service is not available, in step 310 admission of the call to the system will be rejected or renegotiated. If the requested class of service is available, in step 290 it will be determined if there is a port available for PSTN hop-off if necessary (FIG.  6 ). If there is no port available for PSTN hop-off, in step 310 admission of the call to the system will be rejected or renegotiated. If there is a port available for PSTN hop-of, in step 300 it will be determined if the utilization of the Central Processing Unit (CPU) of the communication server (not shown) handling the call setup is greater than a predetermined threshold level. If the utilization of the server&#39;s Central Processing Unit (CPU) is greater than a predetermined threshold level, in step 310 admission of the call to the system will be rejected or renegotiated. If the utilization of the server&#39;s Central Processing Unit (CPU) is not greater than a predetermined threshold level, i.e., the system can handle the call setup, in step 320 the call will be setup and the call setup process exited. 
     By utilizing the QoS Agent  96  of the present invention, if a requested call can not be currently handled through IP Network  90  with the minimum quality of service guaranteed by the Network Class of Service, admission of the call to the system will be rejected or renegotiated for a different class of service. In this manner, the system throughput can be increased and overall delays on the system will be reduced, as the amount of traffic the system is currently handling is reduced. Thus, the quality of service agent of the present invention optimizes both end-to-end application and network performance by providing network feedback at the application layer that can be used before or after call set-up, and provides personalized quality of service using differential class of services. 
     FIG. 6 illustrates in flow chart form a method for monitoring a call in progress to determine if the call should be transferred to a Public Switched Telephone Network (PSTN) utilizing a quality of service agent in accordance with the present invention. In step 400, the QoS Agent  96  is monitoring the status of the call and the IP Network  90  via feedback  94 . In step 410, it is determined if there is adequate system bandwidth available to maintain the call. If adequate system bandwidth is not available, in step 450 the call is hopped off to the PSTN. If adequate system bandwidth is available, in step 420 the QoS Agent  96  will determine if the requested class of service is still available. If the requested class of service is not still available, in step 450 the call is hopped off to the PSTN. If the requested class of service remains available, in step 430 it is determined if the utilization of the Central Processing Unit (CPU) of the communication server handling the call is greater than a predetermined threshold level. If the utilization of the server&#39;s Central Processing Unit (CPU) is greater than a predetermined threshold level, in step 450 the call is hopped off to the PSTN. If the utilization of the server&#39;s Central Processing Unit (CPU) is not greater than a predetermined threshold level, i.e., the system can maintain the call without being over burdened, the method returns to step 400 to continue monitoring the call until it is completed or handled off to the PSTN. 
     Thus, by utilizing the QoS Agent  96  of the present invention, system throughput can be increased and overall delays on the system will be reduced, as the amount of traffic the system is currently handling is reduced. Accordingly, the quality of service agent of the present invention optimizes both end-to-end application and network performance by providing network feedback at the application layer that can be used before or after call set-up, and provides personalized quality of service using differential class of services. 
     Reference has been made to embodiments in describing the invention. However, additions, deletions, substitutions, or other modifications which would fall within the scope of the invention defined in the claims may be implemented by those skilled in the art and familiar with the disclosure of the invention without departing from the spirit or scope of the invention. Also, although the invention is described as implemented by a distributed software object or as a firmware object, it may be implemented in hardware, software, or any combination of the two. All are deemed equivalent with respect to the operation of the invention. Accordingly, the invention is not to be considered as limited by the foregoing description, but is only limited by the scope of the appended claims.