Title of Invention: Method of dynamically transmitting data packets using RTP and RTCP protocols
Abstract: 
A method of transmitting data packets, in particular of real-time or near-real-time data over internet protocol (IP) networks using a real-time protocol (RTP) for media data products and a real-time control protocol (RTCP) for control data packets. Each protocol is allocated a fraction of the available transmission bandwidth. The method comprises the steps of measuring relevant characteristics of the network link, calculating from this measurement an optimized RTCP bandwidth and transmitting control data packets using the optimized RTCP bandwidth. 

Summary of Invention: 
&lsqb;0001&rsqb; The present invention relates to data packet transmissions, in particular transmission of real-time or near-real-time data over International Protocol (IP) networks using standardized protocols. 
&lsqb;0002&rsqb; Real-time Transport Protocol (RTP) is used widely for the transmission of real-time or near-real-time data over IP networks. It comes with a companion protocol named Real-time Transport Control Protocol (RTCP), which is used to monitor the transmission, collecting statistics and sending control data in the forward transmission direction or as a feedback from the receiver back to the sender. 
&lsqb;0003&rsqb; RTP normally restricts the amount of feedback by two rules: First there is a certain fraction (recommended to be 5%) of the RTP session bandwidth allocated for RTCP. All receivers share this bandwidth and calculate from this value the time duration, during which they send the feedback. The second rule is that the interval between two feedback transmissions must be at least five seconds (five seconds as the recommended value). 
&lsqb;0004&rsqb; While these rules make RTP stable and usable for large multicast groups, it is not optimized for unicast or small multicast transmissions. In these groups more feedback per user would be beneficial and could be sent. The problem was already identified and a new RTP protocol is standardized. With the new protocol, the rule that the interval between two feedback transmissions must be at least five seconds is omitted. Thus the receiver can send much more feedback, depending on the session parameters. The rule that the allocated RTCP session bandwidth must not be exceeded is still valid. 
&lsqb;0005&rsqb; As mentioned above, the fraction of RTP bandwidth for the transmission of control data that is allocated for RTCP is generally fixed to a recommended value of 5%. However a solution is presently standardized to change this fraction to other values. The bit rate can also be set to zero in order to turn RTCP feedback off. 
&lsqb;0006&rsqb; In addition network link parameters, such as the packet loss rate on a wireless link, are highly variable over time. Hence, the set RTP bandwidth might work well for a certain period of time, but after a while the performance and effectiveness of the transmission suffer from the varying link conditions. 
&lsqb;0007&rsqb; The object of the present invention is to provide a method of transmitting data packets using RTP and RTCP protocols with an increased transmission efficiency. 
&lsqb;0008&rsqb; This object is solved by a method as set forth in claim 1. Preferred embodiments of the method are subject to the various dependent claims. 
&lsqb;0009&rsqb; The present invention is based on the consideration that the specific environment of a particular media session allows a greater flexibility with regard to the RTCP bandwidth. As control data per se does not increase the quality of the media stream, it is necessary to optimize the RTP bandwidth for the transmission of media data packets rather than using a fixed amount for the transmission of control data. On the other hand, the transmission of media data packets requires a certain amount of control data to be sent. With the conventional solution of allocating a fixed fraction of RTP bandwidth, the RTCP bandwidth was either too low resulting from the minimum interval over five seconds between two consecutive RTCP packets or more than needed. 
&lsqb;0010&rsqb; For example, in a unicast media session, the 5% of the RTP session bandwidth allocated to RTCP results in a transmission time duration for the control data packets of only a few milliseconds. Consequently, allocated bandwidth is wasted and especially for links where bandwidth is a valuable resource, e.g. wireless links, the efficiency of the transmission is greatly reduced. On the other hand, especially wireless links require a fast feedback, e.g. to adapt the codec to varying link conditions and to signal to the sender that retransmission of media data packets is required. 
&lsqb;0011&rsqb; The method of the present invention focuses on the idea of measuring the relevant characteristics of the network link for an individual media session and calculating from this measurement an optimized RTCP bandwidth. The calculated bandwidth is then used for the transmission of control data packets while media data packets are transmitted using the remainder of the available bandwidth. In this way, an optimized bandwidth allocation is obtained with maximum efficiency for transmission of media data packets and allocation of RTCP bandwidth in a sufficient manner to provide control data at an appropriate rate. Thus, different optimized bandwidth allocation resulting in most efficient transmissions can be achieved for respective different links. 
&lsqb;0012&rsqb; Furthermore, by continuously measuring the relevant characteristics of the network link, the state of the transmission channel and its environment can be determined and the RTCP bandwidth dynamically changed accordingly. Thus, the transmission system can be driven continually at an optimized compromise between the amount of control data and efficiency of the transmission on the link. 
&lsqb;0013&rsqb; According to a preferred embodiment, the step of measuring the relevant network link characteristics comprise the measurement of the number of data packets sent per time interval. 
&lsqb;0014&rsqb; According to a further preferred embodiment, the number of packets lost divided by the number of packets sent in a certain time interval is measured in order to determine the quality of the link. 
&lsqb;0015&rsqb; As a further preferred embodiment, the measurement of the time it takes a packet to be transmitted from a server to a client and back to the server is taken as a measure for the round trip time of the network link. It is furthermore preferred that the characteristics of the network link are measured under determination of the congestion state. 
&lsqb;0016&rsqb; Preferably, all measurements of the irrelevant characteristics are carried out periodically at regular intervals in order to allow the system to be continually driven at an optimized RTCP bandwidth. Advantageously, the optimized RTCP bandwidth is signaled from a client to a server as a feedback. 
&lsqb;0017&rsqb; Preferably, the method of the present invention comprises the further step of calculating an optimum feedback interval between two successive transmissions of control data packets.

Detailed Description: 
&lsqb;0020&rsqb; In step 101 the application has to choose which kind of feedback is needed. The new RTP protocol is generally not limited to certain feedback types. Regular status reports, negative or positive acknowledgements may serve as examples. 
&lsqb;0021&rsqb; Regular status reports are usually used from the sender to evaluate the network condition and to adapt transmission parameters thereafter. Examples could be congestion control algorithms, which need to be informed about the network packet loss rate typically at least once per round trip time. 
&lsqb;0022&rsqb; Negative acknowledgements (NACK) are used at the sender to invoke error resilience features. This could imply retransmissions or changing coding parameters, e.g. to make the new data usable independently from the lost data. 
&lsqb;0023&rsqb; Positive acknowledgements (ACK) are typically used to increase the efficiency of the coding or transmission. If the sender knows about received data, it can use this as a reference for the coding of the next data. 
&lsqb;0024&rsqb; As the events described above can be used either independently or in any combination, the feedback can also be usable independently or combined. A typical example could be regular feedback about the measured packet loss rate, needed for the sender's congestion control algorithm and NACK for all lost packets to invoke retransmissions of the lost data. 
&lsqb;0025&rsqb; The next step 102 in FIG. 1 requires measuring the needed input parameters for the calculation of the optimized RTCP bandwidth fraction. These measurements have to be repeated periodically, as the network link characteristics change over time. The measurements to be done are dependent on the kind of feedback. Common measurements that can enable optimized RTCP bandwidth for the kinds of feedback described above comprise (not exhaustive) for example: 
&lsqb;0026&rsqb; Packet Rate: 
&lsqb;0027&rsqb; The packet rate is the number of packets that is sent per time interval. This parameter might be known a priori, but might also be variable. Examples could be a server that adjusts the sending packet rate according to congestion state of the network, which itself is variable with time. The client measures the packet rate, by counting the number of packets per time interval. As there might be packets lost on the transmission path from server to client, the measurement should be repeated periodically and an average over some measurements should be used. A typical way of doing this is to use a running average, i.e. calculating:
pr_new&equals;(1/w*pr—m)&plus;((w−1)/w*pr_old)
&lsqb;0028&rsqb; where pr_new is the new average packet rate, pr_old is the last averaged packet rate, pr_m is the current measurement sample of the packet rate and w is a weighting factor, which determines the influence of new measurements on the average. 
&lsqb;0029&rsqb; Packet Loss Rate: 
&lsqb;0030&rsqb; The packet loss rate is defined as the number of packets lost divided by the number of packets sent in a certain time interval. As the packet loss rate is often highly variable over time, e.g. depending on link conditions, the time interval that is chosen for the measurement is crucial for a correct sample. Typical values are once per round trip time or multiple of those. 
&lsqb;0031&rsqb; Round Trip Time (RTT): 
&lsqb;0032&rsqb; The round trip time is defined as the time it would take a packet to be transmitted from the server to the client and back to the server. This value is also highly variable over time, depending on network status, e.g. congestion and other issues. Typically the measurements of the round trip time are also done on a running average basis as described for the packet rate. 
&lsqb;0033&rsqb; As mentioned before, if the media session has not started, but is to be set-up, no measurements might be available yet. Thus, assumptions on the values have to be made. Typically these values can be estimated to the correct order of magnitude. 
&lsqb;0034&rsqb; As a next step 103 a calculation of the interval between two transmissions of feedback is performed. The feedback interval is dependent on the measurements above, but also on the kind of feedback. If regular feedback is needed, e.g. once per RTT, the maximum feedback interval can be easily estimated to the RTT. If certain events are to be reported, e.g. packet reception or packet loss, the mean interval between these events has to be calculated. In the case of ACK this is the packet inter-arrival time, which is 1/packet rate. In case of NACK, it is the packet inter-arrival time divided by the average packet loss rate. 
&lsqb;0035&rsqb; The RTCP protocol ensures that short term variations in the intervals can be compensated, as long as the long term average inter-event time is quite stable. 
&lsqb;0036&rsqb; In order to properly calculate the required RTCP bandwidth (step 104), it is preferable to know the size of the feedback packets. While for most applications, the packet size will be fixed during the session, it might also be variable, e.g. in cases of loss events, there may be more than one loss event to report in one feedback packet. Hence, an average value of the feedback packet size should be used. 
&lsqb;0037&rsqb; With the size of the feedback packets, s_fb &lsqb;bit&rsqb;, and the feedback rate, r_fb &lsqb;1/s&rsqb;, the needed average RTCP bandwidth (in bit per second) can be calculated as bw_rtcp&equals;s_fb*r_fb. 
&lsqb;0038&rsqb; The RTP session bandwidth bw_rtp is fixed for the duration of the session. A calculation of the RTCP bandwidth fraction is obtained in step 105 by: f_rtcp&equals;bw_rtcp/bw_rtp. 
&lsqb;0039&rsqb; In a next step 106, the newly calculated bandwidth fraction is compared with the respective previous value. If the comparison reveals a significant difference, the new bandwidth fraction is signaled to the sender as indicated in step 107. 
&lsqb;0040&rsqb; The signaling of a new RTCP bandwidth fraction value can be related to some overhead. It might be needed to tear down the existing session and start a new one with the new RTCP bandwidth fraction thereafter. However changes on the fly might be possible as well. 
&lsqb;0041&rsqb; This has to be taken into account, when deciding if the new bandwidth fraction value should be signaled or not. If it is not significantly different from the previous value, it might not be worth the effort. The feedback approach is non-deterministic, which means that feedback for the events is not guaranteed anyway. The probability of the possibility to send feedback in time is just increased. Thus the overhead of signaling new values has to be waged carefully against the benefit. 
&lsqb;0042&rsqb; In case of a decision to change the fraction and the use of existing signaling protocols, the following actions are required: 
&lsqb;0043&rsqb; If no session set-up has been fulfilled, the bandwidth fraction is signaled with the section description protocol SDP. If a session was already established, this has to be torn down by sending an RTCP BYE message and a new session has to be set-up, where the RTCP bandwidth is signaled by SDP. Other possibilities of signaling the calculated RTCP bandwidth fraction might be possible. 
&lsqb;0044&rsqb; After the steps 101-107 have been completed, they are repeated periodically. By going through these steps, an optimized bandwidth fraction value is continuously used over the whole session. Variable channel environment states are compensated by regular measurements, corrections and dynamic changes of the RTCP bandwidth fraction while with a static modification of the RTCP bandwidth, the fraction calculated at the beginning of the session is based on assumptions and known parameters rather than measurements. In the latter case, the RTCP bandwidth is not changed during the session leading to inaccurate values and low performance. These drawbacks are compensated with the dynamic recalculation in response to changes during an ongoing session. 


{'app_number': '10357501', 'application_number': None, 'doc_number': '20030156550', 'publication_number': None, 'source_file': './application/2003/pa030821.xml', 'source_data': 'USPTO-Application'}