ADAPTIVE PACKET BUNDLING FOR SYSTEM PERFORMANCE
OPTIMIZATION
Field of the Invention
The present invention relates generally to packet communications systems, and in particular, to packet communications systems in delay-sensitive environments.
Background of the Invention
Packet-based communications systems are known. In packet-based communications systems, the data to be transmitted, which may be voice, audio, video or other data, is digitized and bundled into discrete packets for transmission. The packets are received separately by a receiver and the data is reconstructed from the packets. If required, the received data is converted from a digital to an analog form. Both wired and wireless systems use packet-based communications. Computer systems using the Internet protocol to communicate are examples of wired packet-based communications systems. Wide-area radio communications systems that packetize voice and data for transmission are examples of wireless packet-based communications systems.
Many packet-based communications systems are delay sensitive. That is, the amount of delay from the transmission to the receipt of a packet has an effect on the performance of the system. For example, a packet-based communications system that transports voice optimally has a minimum delay to facilitate natural conversation. Another important quality measure in voice based packet communications is audio jitter. Jitter is the maximum delay minus the minimum delay for a particular group of audio packets, for example, relating to a particular conversation. Large audio jitter causes jumps or gaps in a conversation, which is undesirable. To facilitate efficient and high quality communication in a packet-based communications system, a packet size is typically chosen to minimize delay and
jitter. For example, in a radio communications system that primarily transmits voice, a voice frame is created for sixty milliseconds of audio for each conversation. This results in approximately 16 frames of audio data per second created at a source for one conversation. For transportation of the audio data across the network, a predetermined number of frames are bundled into a discrete packet. Typically, the number of frames per packet is static for the operation of the system. That is, the number of frames per packet, , the packet size, does not change for the system. Typically, the packet size is chosen for an average or worst case scenario. The result in practice is that the static packet size is only optimal for a small range of operating conditions on the system.
The mix of data type, for example, audio, video, speech and data, in a packet-based communications system creates additional challenges in selecting a static packet size or bundling. In particular, the characteristics of the communications system change drastically depending on the data to be communicated. The characteristics of a primarily voice communications system will vary from the characteristics of a system transporting voice, video, control and other data. If not managed properly, delay, jitter and other perceptible qualities are affected by the packet size chosen in the network.
To improve quality in packet-based communications systems, system priorities are selectively assigned to packets to accommodate the mix in data type. Unfortunately, system priorities alone do not eliminate adverse effects in the communications such as delay and jitter.
Therefore a need exists for a method for adaptively optimizing packet size or bundling of packets to reduce adverse effects on perceptible qualities associated with the communications system. The present invention is directed to addressing this need.
Brief Description of the Drawings FIG. 1 is a block diagram of a radio communications system in accordance with the present invention.
FIG. 2 is a flowchart illustrating a method for adaptively adjusting the packet size in a radio communications system in accordance with the present invention.
Detailed Description of the Preferred Embodiments
In summary, in accordance with the present invention, the packet size in a communications system is selected dynamically based on the measured performance of the communications system. Preferably, a bundling of fixed packet sizes is selected for dynamically adjusting the total packet size. The performance characteristics used and monitored to adjust the packet size include a processor utilization measure, a delay time for a packet and a jitter measure. The processor utilization is taken from one or more processors used to transmit packets in the communications system. The delay time is measured from one or more sources to one or more destinations in the packet communications system. The jitter measure is taken based on a maximum delay and a minimum delay between associated packets. One or more routers, radio base stations or processors in the communications system implement the invention.
FIG. 1 is a block diagram of a radio communications system 100 in accordance with the present invention. Radio communications system 100 includes a plurality of base stations 104, a computer 106 and a packet network system 102. Base stations 104 include transmitters and receivers for over-the-air communications to communication units 108, such as radios, in a manner known to those of skill in the art. Computer 106 is coupled to a dispatcher station 107 for allowing a dispatcher at dispatcher station 107 to communicate and interact with radio communications system 100. In one embodiment, dispatcher station 107 is a data processor.
Base stations 104 and computer 106 are coupled to packet network system 102 via communication links 112. Communication links 112 are preferably trunks or data communications networks, such as a wide area network. Packet network system 102 includes a plurality of routers 110 coupled to each other and to base stations 104 and computer 106 via communication links
112. Communication links 112 carry packets of data throughout radio communications system 100 from a source to a destination. The packets are digital representations of various data to be transported through system 100. For example, digital data representative of audio data from a communication unit 108 is packetized by base station 104 and transmitted as packets over communication links 112 from router 110 to router 110 to a final destination.
In the preferred embodiment, router 110, base station 104 and computer 106 are processor-based apparatus that implement their function under control of software on a processor. Router 110, base station 104 and computer 106 have interfaces for communications links 112.
In accordance with the present invention, the size of the packets transmitted over communication links 112 in system 100 is varied dynamically based on system performance parameters. In one embodiment, the parameters of system performance used to determine the size of packets are processor utilization, delay and/or jitter. Alternatively, measures for system performance may include bandwidth utilization, queue depth/waiting time or other measures. The varied packet size is optionally chosen for particular sources, destinations, applications or services.
Processor utilization is a measure of how much of the available processing power is utilized. In one embodiment, processor utilization is measured at one or more processors in system 100. For example, the processor utilization of a processor associated with a router 110 is utilized to adjust the packet size. Processor utilization is measured in any suitable manner.
Delay time is a measure of the time it takes for a packet to travel from a source to a destination. Any source or destination may be used to determine delay time, including intermediate sources and destinations employed in transmitting a packet from an original source to a final destination. In one embodiment, the delay time measured to adjust the size of packets in the present invention is measured from the original source to a final destination. Typically, the delay time is measured by comparing a time stamp associated with the sending of the packet with an arrival time at a destination.
Jitter is the maximum delay time minus the minimum delay time for associated packets. For example, considering packets of voice data, a jitter measurement is made by determining the maximum delay for a voice packet for a particular conversation minus the minimum delay for a voice packet in the same conversation. Excessive jitter in a system causes jumps or gaps, which, in an audio conversation, can result in undesirable gaps or silence in conversation.
FIG. 2 is a flowchart illustrating a method for bundling packets in accordance with the present invention. In one embodiment, the method is implemented in software on a processor on any element coupled to packet network system 102. Advantageously, any one, a subset, or all of the processors coupled to packet network system 102 may implement the method of FIG. 2.
In accordance with the present invention the size of packets traveling within system 100 is varied dynamically. To facilitate a clear understanding of the invention, the sub units of data used to create packets are referred to as frames. The frames are preferably of fixed size. Bundling is used to refer to collecting frames to form a packet.
The method in accordance with the present invention periodically evaluates system performance parameters or measures to determine if the bundling for a packet should be increased or decreased. Most preferably, the optimal bundling is checked at predetermined intervals to prevent race conditions or instability due to frequent changes of the bundling. The predetermined period of time between adjusting the bundling is referred to as the hysteresis time out period. As a first step in executing the method, at step 200, a check is made to determine whether the hysteresis time out period has expired. If the hysteresis time out period has expired, system parameters are checked (i.e. processor utilization, time delay, jitter) to determine whether the bundling should be adjusted. On the other hand, if the hysteresis time out period did not expire, then the system waits for the hysteresis time out period to expire.
When the hysteresis time out period expires at step 200, the system performance parameters are checked to determine whether the bundling should be increased or decreased. In one embodiment, the system performance
parameters are checked in succession and the adjustment made to the bundling is determined as a function of each parameter checked either independently or in conjunction with other system parameters checked.
For example, in the method of FIG. 2, a check is made at step 202 to determine whether the processor utilization level is acceptable. This determination is made by checking a processor utilization measure for one or more processors in system 100. Optimally, the processor utilization measure may be based only on the processor bundling packets or based on processors associated with routing packets. The processor utilization measure for any remote processors, that is, processors other than the processor executing the method, is transmitted from processor to processor via communication links 112 in system 100.
At step 204, if the processor utilization measure is not acceptable, then the bundling of packets is increased or decreased as a function of the processor utilization. In one embodiment, if the processor load is too high, then the bundling of packets is increased. A high processor utilization may indicate a processor is spending too much time processing individual packets. Increasing the bundling reduces the number of packets (by increasing the size of packets) and should reduce the processor utilization by reducing the number of discrete packets to be processed. On the other hand, if the processor utilization is below a threshold, the bundling of packets may be decreased. The step size, that is, the increase or decrease in the bundling is optionally limited. For example, bundling may be limited to an increase of one frame at a time. The bundling may also change as a function of other system parameters in addition to processor utilization. After a change in bundling based on the processor utilization at step 204, or if the processor utilization is acceptable at step 202, additional system parameters may be checked. For example, in the illustrated embodiment, a determination is made at step 206 whether the delay time is acceptable. The delay time is the elapsed time from a source to a destination. The number of communication links involved, the number of routers involved, and the time spent
at a particular router or processor affect delay time. Other factors may also affect delay time.
At step 208, if the delay time is not acceptable, the bundling of packets is adjusted as a function of the delay time and the processor utilization. In one embodiment, if the delay time is too high, the bundling of packets is decreased. That is, the number of frames used to create a packet is reduced, reducing the overall packet size. This will potentially increase system performance. On the other hand, if the delay time is below a certain threshold the bundling of packets is increased. The amount of increase or decrease in bundling is optionally limited. As an alternative to adjusting the bundling of packets as a function of the delay time and processor utilization, it will be appreciated that the bundling of packets may be adjusted as a function of delay time alone, or in combination with other system parameters, such as processor utilization or jitter.
After the bundling is adjusted for the delay time at step 208, or if the delay is acceptable at step 206, then other system parameters may be checked. In the embodiment of FIG. 2, a determination is made whether the jitter is unacceptable at step 210. As discussed above, jitter is determined by comparing the minimum delay time to the maximum delay time for associated packets. If the jitter is unacceptable at step 210, the bundling of packets is adjusted as a function of the jitter, the delay time and the processor utilization (step 212). In one embodiment, if the jitter is too high, the bundling of packets is decreased. On the other hand, if the jitter is below a certain threshold, the bundling of packets is increased. As an alternative to adjusting the bundling based on jitter, delay time and processor utilization, it will be appreciated that the bundling of packets may be adjusted as a function of jitter alone, or in combination with processor utilization, delay time, or other system parameters.
In one embodiment, after the bundling is adjusted for jitter at step 212, or if the jitter is acceptable at step 210, then the hysteresis time out period is reset at step 214. This insures that a predetermined period of time elapses after the bundling is adjusted. The hysteresis time out period allows for the system parameters to stabilize before additional adjustments in bundling. The bundling
may be further adjusted in accordance with the method by returning to step 200 and re-evaluating system parameters after the hysteresis time out period expires.
As an alternative to having a hysteresis time out period for examining system parameters, the bundling may be evaluated dynamically for possible adjustment in response to certain predetermined events. For example, a threshold with respect to processor utilization could be used to evaluate the bundling. Similarly, certain threshold conditions associated with delay or jitter might cause the bundling to be evaluated. Most preferably, if events are used to trigger an evaluation of the bundling, audits are put in place to ensure that bundling is not changing too often, creating system instability.
Dynamic adjustment of the packet size in accordance with the present invention dynamically optimizes the system. The invention ensures that all components remain within their operating ranges while minimizing unacceptable conditions, such as excessive delay and excessive jitter. The solution addresses higher end, mid-tier and lower end systems. Advantageously, the present invention need not be incorporated into every component of the system to provide benefits.
Whereas the present invention has been described with respect to specific embodiments thereof, it will be understood that various changes and modifications will be suggested to one skilled in the art and it is intended that the invention encompass such changes and modifications as fall within the scope of the appended claims.