Abstract:
The present invention provides a system and method for improving the quality of real-time multimedia sessions wherein each endpoint of a real-time packet stream transmits ( 1 ) feedback reports that describe the quality of the stream received by the endpoint and ( 2 ) forward reports that are based on the feedback reports received by the endpoint and that describe the quality of the stream received by the other, remote endpoint. The forward reports are used by routers to re-route packets around problems in the network that are located between the router and the remote endpoint.

Description:
RELATED APPLICATION 
     This application claims the benefit of priority of U.S. provisional application Ser. No. 60/637,433, filed Dec. 17, 2004, which is relied on and incorporated herein by reference. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates to network monitoring and routing systems and methods. More specifically, the present invention relates to a system and method for improving the quality of real-time multimedia sessions between endpoints in a network. 
     BACKGROUND OF THE INVENTION 
     Real-time multimedia sessions such as Voice over IP calls and videoconferences are highly dependant on the quality of the underlying packet transport network. Problems such as network congestion can materially impact the quality of the voice or video call and lead to dissatisfied users. The present invention provides a means by which the quality of real-time multimedia sessions may be improved. 
     Real-time multimedia traffic is typically carried in the form of RTP (Real-Time Transport Protocol-IETF RFC3550) frames encapsulated in UDP and IP packets. Some performance feedback is provided by the RTCP (Real-Time Transport Control Protocol-IETF RFC3550) protocol, notably the Receiver Report (RR-IETF RFC3550) and eXtended Report (XR-IETF RFC3611) report types. 
     In conventional systems, the quality of an RTP stream is measured by receiving system Y and reported using RTCP RR or XR reports to sending system X. These reports are inserted into the packet stream sent from Y to X. A real-time multimedia packet stream therefore comprises a stream of RTP frames from one endpoint system to a second endpoint system into which are inserted reports of the quality of the stream from the second endpoint system to the first. 
     For example, if RTP(X,Y) denotes an RTP frame being sent from X to Y and RTCP(X,Y) denotes an RTCP report describing the quality of the stream from X to Y then typical streams would resemble: 
     From X to Y: 
     RTP(X,Y)- - - RTP(X,Y)- - - RTCP(Y,X)- - - RTP(X,Y)- - - RTP(X,Y)- - - RTP(X,Y) 
     From Y to X: 
     RTP(Y,X)- - - RTP(Y,X)- - - RTCP(X,Y)- - - RTP(Y,X)- - - RTP(Y,X)- - - RTP(Y,X) 
     This is a normal and customary use of the RTP (RFC3550) protocol. 
     The path taken by the packet stream from X to Y and from Y to X is independently determined by the router within the packet network. This means that the path may, and often is, different for each packet stream. For example,  FIG. 1  shows one path  2  a packet may take from endpoint M to endpoint N in a network  8  that includes a plurality of nodes O, P, Q, R, S, and T. A different path  4  is shown from endpoint N to endpoint M. 
     It is desirable for the routing function to be aware of problems related to congestion as it may affect routing decisions, and may be used to trigger re-routing of calls. This does raise a problem as the router is generally unaware of problems occurring between the router and the receiving endpoint. For instance, node R, a router located between endpoint M and endpoint N in the network  8  depicted in  FIG. 1 , would be unaware of a network congestion problem at node P because node P is located between node R and endpoint N on the path  2 . If node R were aware of the network congestion problem at node P, node F could use a different route for packets to avoid node P, such as path  6  shown in  FIG. 2 , thereby improving the quality of the multimedia stream. One solution would be for router R to examine performance reports coming from endpoint N, however this is both complex to implement and may be impractical if the packet stream from endpoint N to endpoint M follows a different route than that from endpoint M to endpoint N. 
     Prior art solutions to this problem include the FECN (Forward Explicit Congestion Notification) and BECN (Backward Explicit Congestion Notification) bits within a Frame Relay frame header, which can be used to throttle traffic based on switch congestion. These are “binary” in operation and are intended only to signal back to a source of packets that it should restrict its output. This would not work in most multimedia applications for several reasons: (a) the packet rate must stay constant in order to meet the delivery requirements of voice or real-time video, (b) in multimedia applications the corrective action is to trigger re-routing or a change in prioritization. 
     A need therefore exists for an improved solution to this problem that is scaleable to very large networks. 
     SUMMARY OF THE INVENTION 
     The present invention answers this need by providing a system and method wherein each endpoint of a real-time packet stream transmits (1) feedback reports that describe the quality of the stream received by the endpoint and (2) forward reports that are based on the feedback reports received by the endpoint and that describe the quality of the stream received by the other, remote endpoint. 
     Further objects, features and advantages will become apparent upon consideration of the following detailed description of the invention when taken in conjunction with the drawing and the appended claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a relational diagram showing example transmission paths for packets to take between endpoints in a network having a plurality of nodes. 
         FIG. 2  is a relational diagram showing a desired transmission path for packets to take between endpoints in a network, wherein the network includes a network congestion problem at a node. 
         FIG. 3  is a relational diagram showing the transmission of a feedback report between endpoints in an embodiment of the present invention. 
         FIG. 4  is a relational diagram showing the transmission of feedback reports and a forward report between endpoints in an embodiment of the present invention. 
         FIG. 5  is a relational diagram showing a re-routing of packets to avoid a network problem in an embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     With reference to  FIG. 3 , a network  20  is shown that includes a first endpoint A and a second endpoint B connected via a plurality of nodes, C, D, E, F, G and H. Each of the first endpoint A or the second endpoint B may comprise an IP phone, a media gateway, a videoconferencing system, or the like. In use, the first endpoint A transmits a first packet stream  22  to the second endpoint B and the second endpoint B transmits a second packet stream  24  to the first endpoint A to provide a real-time flow of multimedia (voice or video) packets. 
     A. Monitoring Quality. 
     In the described embodiment, a first monitor M 1  is provided at the first endpoint A and a second monitor M 2  is located at the second endpoint B. In other embodiments, one or both of the monitors may be provided at a connection point in the network, wherein the connection point is preferably located relatively close to the respective endpoint. The first and second monitor M 1  and M 2  each include a performance monitoring component for monitoring the second packet stream  24  and the first packet stream  22 , respectively, for quality. In one embodiment, the performance monitoring component of each monitor M 1  and M 2  monitors the incoming packet stream  22  or  24  by determining a level of at least one impairment and creating a quality measure associated with the packet stream  22  or  24 . Such monitoring may be performed at periodic intervals, such as every ten seconds, resulting in the creation of several quality measures during the transmission of the packet streams  22  and  24 . Such impairments may comprise, without limitation, packet delay, packet loss (wherein some packets are lost or arrive so late that they are discarded), jitter (wherein the arrival time of the packets varies), or distortion. The quality measure may comprise, without limitation, an average packet delay, an average packet loss rate, an average jitter, or an average distortion. 
     In various embodiments, one or both of the monitors is a commercially available quality of service monitor such as VQmon, which is available from Telchemy, Incorporated. (“VQmon” is a trademark of Telchemy, Incorporated.) VQmon is more fully described in U.S. Pat. No. 6,741,569 entitled “Quality of Service Monitor for Multimedia Communications System,” U.S. patent application Ser. No. 09/574,472 entitled “Dynamic Quality of Service Monitor,” and U.S. patent application Ser. No. 10/802,536 entitled “Quality of Service Monitor for Multimedia Communications System,” which are incorporated herein by reference. 
     By monitoring the incoming packet stream  22  or  24  for quality, the first and second monitor M 1  and M 2  are able to identify when a network problem, such as congestion, a node failure, or a line card failure, is located in the transmission path taken by the received packet stream  22  or  24 . For example, and with continuing reference to  FIG. 3 , if a network problem was associated with node D, the performance monitoring component of the second monitor M 2  would detect a high impairment level associated with the packet stream  22  received by the second endpoint B and would create a quality measure that indicates that the network problem is located on the transmission path from the first endpoint A to the second endpoint B. 
     B. Creating Feedback Reports. 
     The first and second monitor M 1  and M 2  each also include a feedback reporting component. The feedback reporting component of each monitor M 1  and M 2  creates a feedback report that describes the quality of the packet stream  22  or  24  received by the endpoint A or B. For instance, and with continuing reference to  FIG. 3 , the feedback reporting component of the second monitor M 2  analyzes the quality measure created by the performance monitoring component of the second monitor M 2  and creates a feedback report  26  using the quality measure. Accordingly, the feedback report  26  describes the quality of the packet stream  22  received by the second endpoint B. In one embodiment, the feedback reporting component copies the quality measure created by the performance monitoring component of the second monitor M 2  and formats the quality measure for inclusion in the feedback report  26 . Thus, returning to the above example wherein the network  20  is experiencing a problem, the feedback report  26  would indicate that a network problem is located on the transmission path from the first endpoint A to the second endpoint B. 
     In certain embodiments, the feedback report  26  may comprise a RTCP RR report or a RTCP XR report. In other embodiments, the feedback report  26  may comprise a report that is compatible with other suitable protocols, including without limitation H.323 (created by the International Telecommunication Union), SIP (Session Initiation Protocol), or MGCP (Media Gateway Control Protocol). 
     After creating the feedback report  26 , the feedback reporting component of the second monitor M 2  includes the feedback report  26  in the second packet stream  24  that is transmitted from the second endpoint B to the first endpoint A. In various embodiments, feedback reports are created and/or included in the second packet stream  24  at periodic intervals, such as every ten seconds, resulting in several feedback reports being transmitted from the second endpoint B to the first endpoint A. 
     Similarly, and with reference to  FIG. 4 , the feedback reporting component of the first monitor M 1  analyzes the quality measure created by the performance monitoring component of the first monitor M 1  and creates a feedback report  28  using the quality measure. Accordingly, the feedback report  28  describes the quality of the packet stream  24  received by the first endpoint A. In one embodiment, the feedback reporting component copies the quality measure created by the performance monitoring component of the first monitor M 1  and formats the quality measure for inclusion in the feedback report  28 . 
     After creating the feedback report  28 , the feedback reporting component of the first monitor M 1  includes the feedback report  28  in a packet stream for transmission to the second endpoint B. Because packet streams are persistent and may last for several minutes, in most instances the feedback report  28  will be created in time to be included in the first packet stream  22 . 
     C. Creating Forward Reports. 
     The first and second monitor M 1  and M 2  further include a forward reporting component. The forward reporting component of each monitor M 1  and M 2  creates a forward report based on the feedback report received by the endpoint B or A, respectively. For example, and with continuing reference to  FIG. 4 , the forward reporting component of the first monitor M 1  creates a forward report  32  based on the feedback report  26  received by endpoint A that describes the quality of the packet stream  22  received by the second endpoint B. In one embodiment, the forward reporting component of the first monitor M 1  copies the quality measure that was previously copied and formatted by the feedback reporting component of the second monitor M 2  and formats the quality measure for inclusion in the forward report  32 . Thus, continuing with the example wherein the network is experiencing a problem, the forward report  32  would indicate that a network problem is located on the transmission path from the first endpoint A to the second endpoint B. 
     After creating the forward report  32 , the forward reporting component of the first monitor M 1  includes the forward report  32  in the first packet stream  22 , at least a portion of which is transmitted along the route from the first endpoint A to the second endpoint B. In one embodiment, the forward report  32  is appended to the feedback report  28  created by the feedback reporting component of the first monitor M 1 . 
     D. Routing Packets. 
     An adaptive routing component R is provided at a router in the network  20 . The adaptive routing component R comprises a forward report analysis component for (1) analyzing forward reports and (2) determining whether a different route should be used when forwarding the packets that comprise the packet streams being transmitted between the endpoints A and B. The adaptive routing component further comprises a re-routing component for re-routing packets within a packet stream if the forward report analysis component determines that a different route should be used. In various embodiments, the re-routing component selects the different route from a set of predetermined routes or creates the different route using distance and cost algorithms as known in the art. 
     For instance, and with continuing reference to  FIG. 4 , the adaptive routing component R may be provided at node F, wherein node F is a router. The forward report analysis component of the adaptive routing component R analyzes the forward report  32  created by the first monitor M 1  and included in the first packet stream  22 , and determines, based on the forward report  32 , whether a different route should be used for forwarding packets in the first packet stream  22  and/or in subsequent packet streams to the second endpoint B. In one embodiment, the forward report analysis component compares the quality measure of the forward report  32  to a threshold. If the quality measure exceeds the threshold, the forward report analysis component indicates to the re-routing function that a different route should be used. 
     In another embodiment, a third monitor is provided at the router for monitoring the first packet stream  22  for quality. Like the first and second monitor M 1  and M 2 , the third monitor may monitor the incoming packet stream  22  by determining a level of at least one impairment and creating a router quality measure associated with the packet stream  22 . In this embodiment, the forward report analysis component compares the quality measure of the forward report  32  to the router quality measure. If the router quality measure (which indicates the quality upstream of the router) indicates that the quality of the first packet stream  22  is significantly higher than, or that the level of at least one impairment is significantly lower than, that indicated by the forward report  32  (which indicates the quality downstream of the router), the forward report analysis component indicates to the re-routing function that a different route should be used. 
     Thus, in the network problem example, the forward report analysis component of the adaptive routing component R is configured to predict from the forward report  32  that a network problem is located on the route between the adaptive routing component R and the second endpoint B. As a result, the re-routing component will transmit at least one packet in the first packet stream, and/or in subsequent packet streams, using a different route, such as the route shown in  FIG. 5 , to avoid the network problem at node D, thereby increasing the quality of the packet stream received by endpoint B. 
     While this invention has been described with reference to preferred embodiments thereof, it is to be understood that variations and modifications can be affected within the spirit and scope of the invention as described herein and as described in the appended claims.