US 7209447 B1
Telephone conversations carried over an internet protocol network or other asynchronous network can be monitored for quality and rerouted if the error rate of data transmission through the network exceeds some predetermined threshold value. One or more counters in a switching system along a pathway records the occurrence of missing, delayed, or out of sequence cells or data packets over time. At some predetermined threshold value, considered to be an excessive error rate, the switching system can be used to trigger a rerouting of the telephone call or subsequent calls to pathways with better error rates and therefore better transmission quality.
1. In a data network comprised of a plurality of data switches that transfer data packets for a first telephone call through a first set of said switches at a predetermined rate, a method of maintaining transmission quality comprising:
a. counting data packets received at a first switch during a predetermined time period;
b. determining a difference between a number of data packets received at said first switch during said time period, and an expected data packet count value, the number of data packets received being adjusted for late packets and lost packets; and
c. upon the determination that said difference between said data packets received and said expected data packet count value, exceeds a first threshold, routing successive data packets during a remaining time duration of said first telephone call through the first set of said switches and thereafter routing subsequent data packets for a subsequent telephone call through a second set of switches to maintain the transmission quality for a constant transmitted transmission rate, the remaining time duration being the time left in said first telephone call.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
d. approximating said expected data packet count value by an minimum number of voice packets per unit time that produces an acceptable voice quality level.
11. The method of
d. approximating said expected data packet count value by a number of voice packets that is expected per unit time over a synchronous data network for optimum voice reproduction quality.
12. An apparatus for maintaining a transmission quality of a telephone call through a network that is routed through a first set of data switches, said telephone call being represented by a series of data packets transferred at a predetermined rate over a data network, said apparatus comprising:
a. means for counting data packets received at a first switch of said network during a predetermined time;
b. means for determining a difference between a number of data packets received at said first switch during said time period and an expected data packet count value, the number of data packets received being adjusted for late packets and lost packets; and
c. means for routing successive data packets during a remaining time duration of said telephone call through the first set of data switches and for rerouting subsequent data packets for a subsequent telephone call through a second set of switches upon the determination that said difference between said data packets received and said expected data packet count value, exceeds a first threshold, thereafter, to maintain the transmission quality for a constant transmitted transmission rate , the remaining time duration being the time left in said first telephone call.
13. The apparatus of
14. The apparatus of
15. The apparatus of
16. The apparatus of
17. The apparatus of
18. The apparatus of
19. The apparatus of
20. The apparatus of
21. The apparatus of
22. The apparatus of
23. The apparatus of
24. The apparatus of
25. A switching system that maintains a transmission quality of a telephone call through a network, the telephone call being routed through a first set of data switches and being represented by a series of data packets transferred at a predetermined rate over the network, the switching system comprising:
a data buffer that obtains received data packets through the network;
a counting module, coupled to the data buffer, that maintains a record of the received data packets, that determines a difference between a number of the received data packets and an expected data packet count value, and that adjusts the number of received data packets for late data packets and lost data packets; and
a processor that is coupled to the counting module and that sets an indicator being indicative to route successive data packets during a remaining time duration of the telephone call through the first set of data switches and to reroute subsequent data packets for a subsequent telephone call through a second set of data switches if the difference exceeds a threshold to maintain the transmission quality for a constant transmitted transmission rate, the remaining time duration being the time left in said first telephone call.
26. The switching system of
27. The switching system of
28. The switching system of
29. The switching system of
This invention relates to communication networks. In particular, this invention relates to packetized data communication networks.
For years, the public switched telephone network of the U.S. has provided reliable two-way telephone service. This network is made up of various types of well-known switching systems and well-known physical media over which are carried electrical signals representing voice-frequency information.
Those skilled in the art know that switching systems of the public switched telephone network synchronously route electrical signals in the form of bi-polar, binary-valued pulses that represent samples of voice frequency information. Telephone conversations, which by their nature require immediate transmission, are adequately carried over synchronous networks, which, by definition, carry data at a fixed rate. In addition to carrying digitized voice communications however, the public switched telephone network also carries data of the kind that is created and used by computers.
While the synchronous public switched telephone network provides very reliable communications for both voice and data, there are now several different kinds of asynchronous data networks that are intended to carry primarily data (not necessarily representing speech) but which are now being considered to carry telephone calls much as the public switched telephone network does. Some of these data networks include Ethernet networks, asynchronous transfer mode (or “ATM”) networks, Internet protocol (or “IP”) networks and frame relay networks, among others. They all share a few characteristics: data is sent in discrete bundles or packets and the packets are sent asynchronously as opposed to synchronously.
In order to carry acceptable voice quality telephone calls or voice traffic, which require near-zero latency variation between the voice sample transmissions, an asynchronous network must be set up so as to allow digitized voice samples to be reliably and repeatedly routed through the network and delivered to a destination on time so that a person's utterances that are reconstructed from recovered data packets is at least a reasonable facsimile of the speaker's actual voice. Inasmuch as those skilled in the art know that any band-limited time-varying signal that is sampled at a sufficiently high rate can be perfectly reconstructed from the samples but only if all of the samples are delivered and delivered on time and in the proper sequential order, dropping or losing data samples that represent an analog signal will degrade the reproduction quality of digitized signal. When voice samples are carried over an asynchronous network, even delaying a voice sample will degrade signal reproduction. As voice samples are delayed or lost on an asynchronous data network, reproduction quality gets increasingly worse. A method and apparatus by which the transmission quality of service through an asynchronous network might be measured might be a valuable tool in insuring voice quality when an asynchronous network is used to carry telephone traffic.
In addition to carrying data representing internet web page content, e-mail and other information files, asynchronous data networks can be used to carry voice information (e.g. telephone conversations). When an asynchronous data network is used to carry telephone traffic or voice signals, data packets representing speech or voice information can be unacceptably delayed and sometimes lost, significantly degrading voice reproduction quality.
A method and apparatus for measuring packetized-data transmission quality (also known as transmission quality of service or “QoS”) packet-based network determines when transmission quality has degraded to a point where a new pathway through the network is required. When network transmission quality, as measured by lost, missing or delayed packets, exceeds a threshold, subsequent data packets or subsequent telephone calls can be routed over a different pathway through the network, one preferably having better data transfer capability.
In the preferred embodiment, data network transmission quality is determined by counting voice data packets travelling over a pathway during a predetermined time interval. Because data packets representing speech (like in a telephone call) must be received substantially synchronously in order to preserve voice reproduction quality, when the voice data packet reception rate or count value over a predetermined time period varies from a predetermined expectation, call already in progress or subsequent calls can be routed through the network over another pathway.
With respect to
As shown in
Switching system 102 could be any of a number of types of asynchronous switching systems. In the preferred embodiment, switching system 102 is an internet protocol (IP)switch but may also be an asynchronous transfer mode(ATM) switching system or other system sending packetized data such as an Ethernet network. The switching system 102 might also be a frame relay switching system or perhaps an Ethernet hub.
When the data packets 106, 108, 110, etc. arrive at the switching system 102 at predicted intervals, t as shown, they are preferably re-routed by the switching system 102 onto an out-bound data channel or media 103 for subsequent routing to another switch. Eventually the data packets are used to recreate the original voice-frequency signal which the data packets are encoded to represent samples of.
Carrying speech signals for a telephone call or other voice transmission through an asynchronous network (so called “voice over IP” or “VoIP” networking) is problematic however when the voice samples represented by the data packets 106, 108, 110, 112 etc. do not arrive at the switching system synchronously or at predicted or expected intervals as shown in
As can happen in an asynchronous data network, such as a VoIP network, the third voice packet 110 (as shown in
The fifth data packet (represented by reference numeral 114) is also delivered late with respect to voice packet no. 4 by an amount equal to t+Δt1. Voice samples 6, 7 and 8 arrive ahead of schedule by an amount equal to t−Δt3. (An alternative way of viewing the arrival time of samples 6, 7, and 8 is that all of samples 5, 6, 7, and 8 were delayed somewhere and that thereafter they are bunched together when they arrive at the switching system by a time t−Δ3.”)
When data cells (also known as packets) that speech arrive at irregular intervals, the delivery time irregularity can sometimes be hidden by a playout buffer 150 within the switch 102. If the data cells arrive at a sufficiently high rate, (perhaps by over-sampling the original speech signal) data cells stored in the playout buffer can be played out from the play out buffer (also known as a PDU buffer) 150 at a substantially constant rate, until the buffer is overfilled creating what it known in the art as a buffer overrun. When a buffer overrun occurs, buffer storage space is exhausted; data packets that arrive and for which there is no storage available in the buffer are discarded (lost) and not sent on to be used in reconstructing the original speech signal. At least two ways of dealing with a buffer overrun is to either flush the buffer completely or to flush the buffer half-way. Emptying the buffer completely will enable the buffer to completely refill with newly arriving samples, minimizing the duration of voice interruption. If the buffer is not completely flushed, at least some of the newly arriving samples are likely to be discarded because the buffer will be filled.
Conversely, when data packets arrive too slowly, the time between data packets or data cells 106, 108, 110, 112 etc. that might have been-stored in the read out of the buffer faster than they arrive. Eventually, the buffer completely empties creating an underrun condition. An underrun condition means that there is no data to provide. Voice reproduction suffers because the samples representing the original speech information is completely lost. If only a few packets are lost or so delayed that they can't be used, the reconstructed voice might be intelligible but as the number of lost packets increases, eventually the original signal cannot be recovered. The invention disclosed herein automatically determines voice quality degradation by recording missing packets as well as underrun and overrun conditions.
Switching system 102 includes a counter array 151 (not shown in
In the case of significantly delayed data packets, such as the fourth data packet represented by reference numeral 112, the play out buffer 150 might “under run” (i.e. run out of data samples for transmission on pathway 103) before the arrival of the next incoming sample, depicted in
When the number of error conditions (overruns and under-runs and late or missing samples) per unit time becomes excessive, indicating that voice transmission quality is degrading, a flag 160 is generated by the switching system 102 is set indicating that the transmission pathway, including switching system 102 and the media 104, might be incapable of accurately carrying voice data packets. The flag 160 might be an output voltage provided by the switch on some appropriate output connection, however, alternate embodiments would include flat 160 embodied as a software flag set or reset in an appropriate storage device of the switch's controlling processor or ancillary memory.
By way a suitable flat control signal 160 the switching system 102 can notify a network controller—not shown—that some other pathway should be used for subsequent data packets or cells for the call in progress, or that for subsequent telephone calls, a different pathway through the network should be chosen.
The method of the invention is represented by a simplified flow chart shown in
So long as the voice packet arrival rate is known, the switching system 102 can assume that a certain number of packets should arrive at the switching system over the time intervals T1. As the number of data packets accrues, at the expiration of time T1, the accrued total amount of data packets that arrived at the time period T1can be compared to an expected count value 304, excluding any playout buffer overruns which are as problematic as lost data packets. The expected count value V, can be chosen to be a minimum number of voice packets per unit time that produces an acceptable voice quality level. Alternatively it might be chosen to be the value V, of the number of voice packets that would be expected per unit time over a synchronous data network for optimum voice reproduction quality. If the difference 306 between the accrued total number of data packets is substantially below the expected count value “V,” a decision can be made that the packet error rate is too high 308 to sustain acceptable quality levels of voice transmission. In such a case, a network controller (not shown in the figures) can be informed to reroute subsequent data packets for this call, or to maintain the connection intact 310 for subsequent calls that might be made between the same two end points. While the preferred embodiment reroutes data packets whenever the data error rate exceeds a predetermined threshold, in an alternate embodiment, the data rate or error rate for a call in progress, might be maintained for the duration of the call 312 but with subsequent telephone calls routed over some other, i.e. different pathway.
In the preferred embodiment, the switching system 102 and the methodology disclosed herein is implemented on a packetized data network, preferably an internet protocol or “IP” network. The invention would find applicability to other packet networks such as ATM networks, frame relay networks, Ethernet networks or an MPLS (multi-protocol level system) network.
So long as one or more switching systems of the network can track error rate or otherwise calculate or determine missing or misplaced data packets, maintaining a record of packet errors over time can be used to reroute subsequent transmissions over another pathway. In at least one embodiment, multiple. switches along a pathway might each track error rates using the methodology disclosed herein and collectively accumulate their error measurement information over the entire pathway or a subpart thereof. In such an embodiment, end-to-end (or part thereof) errors for a telephone call through the asynchronous network could be calculated so that a better picture of the transmission quality could be determined.
In the preferred embodiment, data packets are received at the switching system at a play out buffer of an internet gateway. Such a device readily keeps track of over run and under runs both of which can be considered error conditions effecting voice reproduction quality.
Those skilled in the art should recognize that voice packets need to arrive at a substantially continuous rate, but on average arrive at between 5–10 milliseconds apart a corresponding 5–10 ms. sampling rate. A 20 ms. sampling rate means that voice packets will arrive roughly every 20 milliseconds. The count value over some length of time by which an error condition can be determined is therefore operator dependent. A determination that two temporally adjacent data packets are missing or out of order might not seriously degrade voice reproduction quality nor will losing individual samples over a long period of time. The inventors have determined that losing approximately 1% of 6 ms samples of a 64 KBPS uncompressed voice stream does not noticeably affect voice quality. Inasmuch as acceptable voice quality is subjective, different subscribers might be willing to pay higher service rates is a service provider is able to guarantees higher levels of voice quality. A more lengthy time interval over which packets are counted may be preferable to determine voice transmission quality over an IP network.
In the preferred embodiment the data packets were expected to arrive at the switching system at approximately 5–10 millisecond intervals.
It should be apparent that with the advent of the internet, and widespread use of other data packet networks that were primarily intended to handle computer data, that it might be possible to carry telephone conversations over such networks if they can be set up or provisioned such that voice samples are routed through the network with a reasonable expectation that they can be delivered between a source and a destination in order and in ample time to allow real time conversations to take place.
By monitoring the voice transmission quality through an asynchronous network as measured by missing, out of order or delayed packets, a real time metric of the quality of service through a data network can be determined.
Valid data packets are forwarded to a hardware-based playout data buffer or PDU 406 which could be implemented using any appropriate memory device such as a random access memory or the like. Invalid data packets, which might include data packets with checksum errors, missing header files or packets that are otherwise lost or corrupted are deleted. Data packets from the PDU 406 can be forwarded to anther switching system. One or more timers, preferably implemented in software but also performed using discrete hardware functions, reads data from the cell processing unit 404 and the PDU 406.
For each connection being monitored, a PDU timer 408 periodically triggers software-based counters 410 of the activities performed by the cell processing unit 404 so as to accumulate or total incoming packet error counts. These software-based counter arrays 410 obtain cell counts from the cell processing hardware; obtain overrun and underrun counts from the PDU 406; enables aged entries in the PDU 406 to be overwritten and establishes the quality of service ranking for a connection based upon the number of cells received versus the number of cells expected. The average of the quality of service calculation for each set of connections associated with a route is used in subsequent routing decisions by sending the quality of service measurement results to a software-based ranking function 412. This QOS ranking can be used as a basis of whether to re-route traffic from a high error-rate pathway to preferably a lower-rate pathway.
From the foregoing it can be seen that by objectively measuring data errors and error rates on a packet-based switching system, voice quality on a packetized network can be maintained. By using the methodologies and apparatus disclosed herein, voice over an internet protocol, Ethernet protocol, asynchronous transfer mode protocol or other asynchronous networks can be significantly improved. Those skilled in the art will recognize that each of the foregoing functions might be performed in software as well as an appropriately fast processor or by combinational and/or sequential logic devices.