[go: up one dir, main page]

HK1081350A - Method and system of data packet transmission timing for controlling bandwidth - Google Patents

Method and system of data packet transmission timing for controlling bandwidth Download PDF

Info

Publication number
HK1081350A
HK1081350A HK06100993.1A HK06100993A HK1081350A HK 1081350 A HK1081350 A HK 1081350A HK 06100993 A HK06100993 A HK 06100993A HK 1081350 A HK1081350 A HK 1081350A
Authority
HK
Hong Kong
Prior art keywords
time
transmission
packet
bandwidth
packets
Prior art date
Application number
HK06100993.1A
Other languages
Chinese (zh)
Inventor
Jarno Marchetto
Emanuele La Cognata
Original Assignee
The Fantastic Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by The Fantastic Corporation filed Critical The Fantastic Corporation
Publication of HK1081350A publication Critical patent/HK1081350A/en

Links

Description

Method and system for timing data packet transmission to control bandwidth
Technical Field
The present invention relates to a method and system for timing the transmission of data packets from a sender device to one or more receiver devices for bandwidth control purposes.
Background
In performing data transmission using various media such as cable, telephone line, satellite communication, and the like, data is always transmitted from one device to another. First, the data is blocked or segmented into packets, which are then transmitted or broadcast. The term "packet" is used to denote a sequence of bytes and represents the smallest unit of transmission and reception. Hereinafter, a "device" is defined as a hardware unit having software components capable of receiving and/or transmitting data packets. Examples of such devices include computers, GPRS mobile phones and network devices.
The term "content" as used herein refers to data that is segmented into a sequence of packets. The data contained in the content may be a file, or a portion of a data stream, or any collection of data. The content may be pure data, or streams of audio and video data, or any combination thereof. The content is sent from the sender device to one or more recipient devices in sequentially transmitted packets.
Typically, these sending and receiving devices run software programs that aim at the sender device to segment the content to be sent into packets and at the receiver device to reassemble the received packets into the original content.
Bandwidth is defined as the amount of data that can be transmitted over a medium within a given time frame (time frame), e.g. 10Mbps (10 megabits per second). In practice, this is the speed of transmission, i.e. the speed at which data is transmitted from the sending device to the receiving device. Each transmit-receive system has a certain bandwidth capability that is limited by various factors, such as the type of medium used for transmission and the equipment used to transmit and receive the data. For example, a broadcast cable medium has a greater bandwidth capability than a telephone line.
Various types of protocols are used to transport the data packets that form the content. Some protocols may be considered "unreliable," which is meant herein to mean: any transport protocol that provides best effort transmission of packets, and in particular, does not automatically perform retransmission of lost or corrupted packets. Examples of "unreliable" protocols currently in common use include unicast (unicast) and multicast (multicast) User Datagram Protocol (UDP), ATM Adaptation Layer (AAL) types 3/4 and 5 using an unsecured transport mode, AppleTalk DDP datagrams, and unicast and broadcast MPEG-2 transport streams.
Often, data from different files is transmitted simultaneously on the same medium. For example, if a particular system has a bandwidth transmission capability of 10Mbps, two packets of different content may be transmitted simultaneously in different streams, e.g., each stream having a bandwidth of 5 Mbps. In various commercial applications, portions of the bandwidth available for a given medium are sold or licensed to different users for simultaneous use.
Some applications require that packets are received regularly and in time, for example for audio and video transmission, it is important to keep the jitter (i.e. the amount of variation in end-to-end packet transmission time) as low as possible. Increasing reliability at the receiving device means using high precision bandwidth control at the transmitting device, especially for broadband applications.
In general, the bandwidth usage of a broadcast application is selected based on network load and speed, leased bandwidth capability, and processing speed of the receiving device. Hereinafter, the bandwidth allocated to a given transmission is referred to as a "target bandwidth". The actual bandwidth used during transmission can vary with respect to the selected target bandwidth.
When the broadcast occurs, the bandwidth changes and can be measured at any time. "instantaneous" bandwidth refers to the bandwidth measured in the shortest measurable time. For example, if bandwidth usage can be regularly detected at most once per second, the instantaneous bandwidth is calculated by dividing the amount of data transferred in the time frame (in this case 1 second) by the time interval.
The broadcast of the content has an "average (or average) bandwidth". This is the total amount of data transmitted during the transmission divided by the transmission duration. Here, the terms "Average Bandwidth" (mean Bandwidth) and "Average Bandwidth" (Average Bandwidth) may be interchanged.
Since content is transmitted in packets, there is a pause or latency between the start of transmitting successive packets. The latency between packets is related to the bandwidth used during the transmission of the content. For example, increasing latency between packets while maintaining a fixed packet size results in less data being transmitted during a given time, and vice versa.
Various problems occur if data is transmitted without accurate bandwidth control. There are basically three different situations that can cause problems.
(1) The average bandwidth is too high relative to the target bandwidth value;
(2) the average bandwidth is too low relative to the target bandwidth value;
(3) the average bandwidth is equal to or very close to the target bandwidth, but the instantaneous bandwidth measured during transmission is different from the target bandwidth. This type of transmission is referred to as heterogeneous (i.e., contains peaks) in the following.
The problems caused by the different scenarios described above adversely affect different components and structures of the system receiving the data, such as the routing and switching devices and the destination recipient devices. As described below.
(1) Sending data packets too fast. Broadcasting data at speeds higher than the target bandwidth often results in substantial packet loss. Packet loss degrades the integrity of data transmission. Also, if the routing device is unable to buffer the incoming data stream, excessive transmission speeds may cause congestion. The same problem can affect the encapsulator (encapsulator) if data is sent to the satellite uplink. Here, the entire packet sequence is lost. On the receiving device side, packet reassembly may be difficult if the hardware and application processing the received data is not designed for arriving data streams with a speed above the average (mean) value of the bandwidth. Furthermore, if no traffic buffering mechanism is provided between the data sender and the receiving device, the Local Area Network (LAN) to which the receiving device is connected may experience congestion.
(2) SendingDatagrams are too slow. If the packets are transmitted at a speed lower than the specified target bandwidth, no loss of data packets will be experienced. However, it would cause a waste of resources, especially if the connection between the data sender and the receiving device is purchased based on bandwidth usage rather than on the amount of data transmitted. Also, if the received data rate is too low, audio and video streaming quality may be affected. That is, the received sound and video will be intermittent, confusing, or otherwise distorted.
(3) Peak in bandwidth usage. Even when the average data transmission bandwidth is close to the target bandwidth, it is not always guaranteed that the data stream will be free from problems. For example, there can be a peak in bandwidth usage at any time during the transmission. Moreover, if the packets are not evenly distributed during transmission, i.e. at a fairly constant time between successive packets, packet aggregation (clustering) occurs, which causes an increase or decrease in the bandwidth used at a given moment. The result is that the same problems described above will arise with respect to transmissions at average bandwidths above or below the target bandwidth, but with adverse effects experienced to a lesser extent.
It would therefore be desirable to be able to better control the bandwidth usage for packet transmissions containing any type of content. Previous attempts to solve the various problems discussed above typically require maximum bandwidth. That is, the transmission protocol is such that intervention is performed when the bandwidth maximum is exceeded, but not when bandwidth usage is below the maximum. Other prior art solutions correct existing traffic flows. That is, a protocol is used to address congestion problems caused by senders without intrinsic flow control. Still other prior art schemes discard packets when buffer space is exceeded. Some of these types of solutions use algorithms to drop packets, such as the "leaky bucket" algorithm (Tanenbaum, computer network, third edition, p.380, preticehall). Other solutions allow a certain number of bursts in the output stream using algorithms such as the "token bucket" (Tanenbaum, p.381).
Disclosure of Invention
According to the invention, it has been found that if the pause (pause) between consecutive packets is appropriately selected and the packets are transmitted using the selected wait time during the content transmission, the bandwidth can be maintained closer to the desired target bandwidth value. A novel method and system are provided for determining and maintaining latency between packets in response to selected input parameters of desired target bandwidth and packet size.
The method and system of the present invention operate to transmit data in a manner that controls bandwidth for content transmission by controlling stalls or latencies between packets of a data stream. As part of the method and system, a new algorithm is developed and implemented that selects and controls the wait or pause, time pause (t) between the transmission of packetsw) Associating a desired size (P) of packets of content to be transmitted with a desired target bandwidth (B)T) Are linked together. The present invention may be implemented in software and/or hardware.
In a preferred embodiment of the invention, the accuracy of the bandwidth control is maximized by using the highest resolution clock or other timing device available at the transmitting device. This provides the best compensation for latency rounding errors.
In a preferred embodiment of the invention, the latency between packets is calculated based on a fixed packet size and a target bandwidth.
The present invention does not require or use feedback from the recipient device. Thus, it can be used for unicast, multicast and broadcast transmissions with simplex, half-duplex and full-duplex media.
Compared with the prior transmission problem technical scheme discussed above, the invention leads the data flow to trend to the target bandwidth, and reduces or increases the transmission rate when necessary. At the same time, the invention provides traffic control at the source end so that the outgoing traffic is smoothly distributed and tends towards the target bandwidth. Furthermore, the invention prevents excessive packets by introducing pauses between packets, blocking the sender until the next packet is to be transmitted and never dropping packets. Moreover, the present invention maintains stable bandwidth usage with minimal bursts.
Drawings
Other objects and advantages of the invention will become more apparent with reference to the following description and the accompanying drawings, in which:
FIG. 1 is a schematic diagram of one system implementation of the present invention.
Fig. 2 is a flow chart of the process.
Fig. 3 is a flow chart of various timing function generation.
Fig. 4 is a graph showing percentage error with respect to a specified target bandwidth for an exemplary transmission up to 10 Mbps.
Fig. 5 is a graph showing percentage error with respect to a specified target bandwidth for an exemplary transmission greater than 100 Mbps.
Fig. 6 is a graph showing the percentage error for an exemplary transmission up to 1Gbps with respect to a specified target bandwidth.
Fig. 7 is a diagram showing various temporal relationships between packets.
FIG. 8 is a flow chart showing an alternative function for generating a fixed value latency between the start of transmission of successive packets, and
fig. 9 is a modification of the function of fig. 8, incorporating an error compensation mechanism.
Detailed Description
In the transmission of data packets, bandwidth is generally defined as the amount of data transmitted in a given time frame. Bandwidth control refers to controlling the energy of a bandwidthForce, i.e. the transmission rate for a given amount of data. An effective value for evaluating the quality of bandwidth control is the average (or mean) bandwidth BMI.e. a mathematical average centered on this for the actual transmission rate during the whole transmission. Target bandwidth BTIs defined as the (selected) bandwidth required for a given content transmission. In some cases, BTIs the amount of bandwidth sold or leased to the content provider by the broadcast facility.
If B is presentTIs known, average bandwidth BMCan be defined as
(BT-ε)<BM<(BT+ Epsilon) (formula 1-1)
Wherein
BTTarget bandwidth
BMMean bandwidth
ε=BMDistance BTError or deviation of
The main goal of bandwidth control is to assign BMAnd BTThe error s between is minimized. Viewed from another perspective, E is the average bandwidth of the actual transmission relative to the desired target bandwidth BTPercent error of (a), expressed as a percentage:
(formula 1-2)
It is also important to consider the amount of data transmitted within a fixed time window that is less than the time required to transmit the entire content, i.e., the instantaneous bandwidth, and compare this value to the target bandwidth throughout the content transmission. This is necessary because if the instantaneous bandwidth value is largely different from the target bandwidth, the data transmission rate may oscillate, that is, the transmission is not uniform.Even average bandwidth BMIs equal to or very close to the target bandwidth BTThis may also occur.
This heterogeneity in bandwidth usage is very difficult to manage at the receiving end, for routers and other routing devices, especially at the allowed target bandwidth BTIs fixed and cannot be exceeded, for example, in the case of data transmission by satellite transmission.
If the instantaneous bandwidth (measured during the deadline at) and the target bandwidth B are within the time t during the transmissionTThe difference tends towards zero, a "stable" bandwidth can theoretically be obtained. That is:
(BT-ε)<B[t,t+Δt]<(BT+ Epsilon) (formula 1-3)
Both ε and Δ t tend to be 0, and
tstart<t<tendand wherein
tstart: transmission start time
tend: end time of transmission
Δ t: a measurement time frame, which must be smaller than the transmission duration;
B[t,t+Δt]: the instantaneous bandwidth B measured in the interval comprised between t and t + Δ t.
The above is merely a theoretical situation and is not reproducible in the real world. However, the bandwidth control described herein is designed to be as close as possible to this ideal solution using the maximum accuracy that can be supported by the transmitting device.
Another parameter that can be considered is the transmission burst, defined as:
(formulae 1 to 4)
Wherein B isMIs the average bandwidth of the transmitted content, BpeakIs the maximum absolute instantaneous bandwidth value measured during transmission. That is:
Bpeak=max(B[t,t+Δt]) (formulas 1 to 5)
Ideally, the burst should tend towards 1. I.e. the bandwidth used is as BTAs the center. It is also noted that the non-uniformity of the transmission may be different under the same burst conditions, since no information about B is providedpeakInformation of the reproduced value. In effect, the burst value indicates how much the peak is to the average transmission bandwidth BMCorrelation, but does not indicate how many times the peak is repeated during transmission. That is, one transmission can experience 1 or 1000 peaks, but the value BpeakIn most or all cases the same. Furthermore, no information is provided about the inhomogeneity of the transmission, i.e. about the frequency of the peaks.
Typically, applications that utilize unreliable network protocols, such as User Datagram Protocol (UDP), for transmission cannot specify a target bandwidth for a given transmission. Due to the lack of direct control, data is sent at the maximum bandwidth allowed by the network interface. When a program transmits an instruction to send content to a network card, the content is sent at the maximum speed (bandwidth) allowed by the network card. For example, if the network card is capable of handling 10Mbps of bandwidth, the content is blocked into packets, and the packets are sent over the network at 10 Mbps; without any application layer control.
In accordance with the invention, to control bandwidth usage and achieve a selected target bandwidth BTA wait or reserve (partial) time is imposed between successive packets transmitted. The method and system of the present invention achieves bandwidth control by introducing this stall to obtain an average transmission bandwidth BMAs close as possible to the target bandwidth BTTo do (1)In (1). Moreover, all "instantaneous" bandwidth values measured during the transmission of the content are made as close as possible to the target bandwidth. For this reason, the process of timing the time between packets requires a high precision, and preferably, the timing should be as precise as possible. The required accuracy of this latency depends on the target transmission bandwidth BT. Target bandwidth value B as described belowTThe higher the precision of the pauses between control packets should be ordered so as to maintain a deviation E from the target bandwidth to an acceptable value for practical use.
Consider the following example of dividing data to be transmitted into packets, the packet size being, for example, 8192 bytes, and requiring BTA target bandwidth of 10Mbps transmits a fixed amount of data. The latency, or pause, between each transmitted packet is 6.5536 milliseconds (8192 bytes 8192 x 8 65536 bits 10Mbps 10000000(1 million) bits per second 65536 divided by 10000000 > (latency between packets 0.0065536 seconds 6.5536 milliseconds). If the accuracy of the measurement system used to determine the latency between packets is 1 millisecond, e.g., a 1 millisecond clock, then this time value has to be rounded up (round up) or rounded down (round down) from the calculated 6.5536 milliseconds, so that the latency will be 6 or 7 milliseconds. Rounding to 6 or 7 milliseconds will be from the specified BTThe error in average bandwidth usage-6.38% or 9.23% respectively-is produced for 10 Mbps. This example illustrates the requirement to accurately compute the latency interval between packets during broadcast. To guarantee an average bandwidth BMIs equal to the target bandwidth BTTheoretically, the latency must not be rounded. In fact, in some cases this value must be rounded due to software and hardware limitations. As described below, preferably the highest accuracy supported by the sender device is used, and thus the obtained bandwidth control is optimized for the software and hardware configuration used.
As described above, to provide high accuracy control, an important aspect that needs to be considered is the time for measuring the latency between successive transmitted packetsGranularity (precision). As an example, FIG. 4 shows for a given transmission at a packet size of 8K bytes with a bandwidth of up to 10Mbps, the specified (target) bandwidth BTAbsolute percent error E (logarithmic scale). The upper curve shows the error of the latency rounded to milliseconds, and the lower curve shows the error of the latency rounded to microseconds. It can be seen that the error is smaller when rounding to microseconds (higher precision).
As an example, FIG. 5 shows for a given transmission at a packet size of 8K bytes with a bandwidth of up to 100Mbps, the specified target bandwidth BTAbsolute percent error E (logarithmic scale). The upper curve shows the error of the wait time rounded to milliseconds, and the lower curve shows the error of the wait time rounded to microseconds. It can be seen that the percentage error of actual bandwidth usage never exceeds 0.1%. By rounding the latency to milliseconds, the result is that the error is very large; the actual bandwidth usage is often greater than the target bandwidth BTIs 45-50% higher than B at 50MbpsTLower by 35% at 100 Mbps.
Fig. 6 shows the specified bandwidth B for a given exemplary transmission (up to 1Gbps) when the latency between transmission packets is rounded to microseconds, where the packet size is 8KBTPercent error of E,. The percentage error obtained when rounding to milliseconds is not shown on this figure. By rounding the latency to microseconds, the percentage error for up to 1Gbps target bandwidth remains below 0.8% in the worst case. This means the average bandwidth BMAnd a target bandwidth BTThe difference between them will be less than 8 Mbps. This may be considered acceptable for transmission rates up to 1 Gbps. But using a granularity of 1 microsecond would produce higher and unacceptable errors for target bandwidths considerably below 1 Gbps.
The packet size (P) plays an important role in the transmission process. In general, the larger the packet size, the target bandwidth B when rounded to an accuracy of at least 1 microsecondTRelative to the average bandwidth BMThe smaller the percentage error of (c). This is because if the packet size increases, the number of packets for a given transmission decreases, and therefore the number of occurrences of latency between packets for a given transmission decreases, causing a rounding error and may decrease.
In the present invention, the predetermined waiting time interval t between packets is selected and arrangedwTo control the bandwidth in the transmission. Preferably, the waiting time interval twThe highest resolution timing device available to the sender device is used to compute with the highest accuracy possible on the sender device. As explained above, at least microsecond granularity is preferred in order to ensure acceptable bandwidth control for transmission speeds in the Mbps range.
The algorithm used to obtain bandwidth control is as follows:
given target bandwidth BTAnd packet P size, latency interval t between each packetwThe method comprises the following steps:
(formula 2-1)
In operation, BTAnd P are both provided as input parameters to a computer controlling the transmission. Target bandwidth BTMay be set by the person who wants to send the transmission through the user interface. For example, if someone wants to send content to a third party, a program may be used in which the speed at which the file is to be transferred is input by the user. That is, the target bandwidth BTAre given as input parameters.
As for the packet size parameter P, typically, the packet size is set when a program for broadcast transmission is installed, and the same packet size is maintained for all transmissions. For example, the package size may be contained in a configuration file. It may also be entered as a separate parameter. In the typicalIn the application, the content to be transmitted and the target transmission bandwidth B are selectedT. The broadcast application then reads the required packet size parameter P from the configuration settings, which was previously set by the broadcast application or entered. At this point, the broadcast application "segments" the file to be transmitted into smaller packets. Typically, the headers of these packets will specify the address of the recipient and information about the packet contents. The broadcast application already knows the packet size because the information has been read in from the configuration or from the input before segmenting the content to be transmitted into packets.
In use, the selected target bandwidth B for use by the broadcast applicationTThe master is largely based on the transmission medium to be used and other factors such as the amount of bandwidth leased or purchased for use.
In the course of transmitting packets, one loop operation is repeated for each packet transmission, as follows:
(1) obtaining an actual time value t1(as the start of packet transmission);
(2) transmitting the packet;
(3) the actual time value t is obtained (after packet transmission)2
(4) Calculating the time t for transmitting the packetusedWherein, in the step (A),
tused=t2-t1(formula 2-2)
(5) Calculated value t (time remaining)
t=tw-tused(formula 2-3)
(6) Waiting for t;
(7) go to step 1.
Referring to fig. 7, this shows various times. As can be seen, twIs the start time (t) of two consecutive packets1) Time between, and t is oneEnd of packet (t)2) And the start of the next packet (t)1) Time of (d). The remaining time value t must be based on the selected packet size P and the target bandwidth B, respectivelyT
The operation of sending a data packet is time consuming. That is, time tusedWill be used to physically obtain the packet and send it onto the network. To ensure that sufficient time is obtained for the wait time twThe sender device needs to wait for the remaining time t after the packet sending operation is completed. Calculated latency t between packetswThe guarantee information will be sent with the required target bandwidth. That is, the remaining time t is tw(wait between consecutive packets) and tused(for sending packets).
Fig. 1 is a diagram explaining packet transmission. At the transmitting station, there is a computer 10 in which a broadcast application is installed. The broadcast application operates on a content 12 that is to be transmitted in the form of data packets. Transmission target bandwidth BTAnd the parameters of the packet size P are input to the computer 10. As explained above, the packet size value P may be known at the computer. It may be set if desired. The computer calculates the latency tw according to the algorithm of equation 2-1 and operates to control the transmission 16 of packets 18 (black bars) as if there were a controlled latency t between successive packetswAs well as display.
The package 18 is received at a computer 20 on which the receiving application is installed. This program reassembles the received packets into a file corresponding to the content file 12 being sent. This is conventional.
Fig. 2 is a general process flow diagram. Here, in S1 and S2, the target bandwidth BTAnd packet size P are input to the computer. At S3, the computer calculates t according to the algorithm of equation 2-1w. In S4, the calculated value twIs used as a control parameter and the value is input to the broadcast application process 55. Value twApplied to the file sent as input to the broadcast application process S5 at S6. Knowing the packet size and from S2Knowing the wait time t from S3wThe broadcast procedure S5 transmits the packet S7.
Fig. 3 shows the operation of the computer in performing the steps of the timing loop to obtain the above mentioned remaining time t. At S101, at the start time t of packet transmission1Is determined and stored at S102. At S103, a packet to be transmitted becomes available and is transmitted at S104. At S105, the end time t of the packet transmission1Is determined and stored at S106. At S108, the amount of time t in the process of transmitting the packetusedIs calculated (S106 value minus S102 value) and becomes available in S110.
At S111, the calculated value tw(see S4) and tusedFrom S110 are used together in S112 to calculate the remaining time t (see equation 2-3). The value of the calculated remaining time t is available at S114 as the time to be satisfied at S116 before the next packet starts to be transmitted at S101 and S102. The loop of fig. 3 is repeated for each transmitted packet.
Using the algorithm of equation 2-1, it is preferable that the facilities for obtaining the current time values t1 and t2 of equation 2-2 and for waiting for the remaining time t of equation 2-3 possess at least microsecond granularity (precision or resolution). The granularity is more accurately reduced by the actual average bandwidth BMRelative to the target bandwidth BTError E of (2). The most straightforward way to obtain the values of T1 and T2 is often to obtain the actual time from the operating system, such as from its timing clock. However, this often means that the operating system has a timer with microsecond accuracy. In the absence of such facilities, high precision hardware counters may be used. Counters are a common concept used to refer to incrementing variables during programming. Some systems include a high resolution performance counter that provides a high resolution elapsed number. The counter value is managed by a computer Central Processing Unit (CPU) and read by an operating system. Typically, this counter must be controlled by hardware in the operating system shared by the CPU if other tasks are performed besides the time calculation. If the frequency of increase of the counter, i.e. how many times the number of counts increases within one second, is known, then it is possible to communicateBy obtaining the counter value at two different times and dividing this difference by the counter frequency, e.g. to calculate tusedThe time interval of (c). As can be seen, it is desirable to use a high precision counter. Any reliable counter may be used, however, a high precision counter available on the device should be used to maximize the precision with which the control bandwidth is employed.
Another key issue is how to suspend the procedure of sending packets for a given remaining time interval t. As indicated above, after a packet is transmitted, the program must wait for the remaining time t to t before sending another packetw-tusedAnd the process is elapsed. Other methods may be used if the broadcaster does not have the necessary hardware and/or software facilities to complete the task of determining the remaining time at the desired granularity, but provides at least one method for knowing the current time at the desired granularity.
One approach is shown in fig. 8. Here the remaining time t is provided in step 201, and tstart(tstartStart of function) and tnowThe determined values (of the current time) are provided at S203 and S205. Time telapsedIn S207, the following is calculated:
telapsed=tnow-tstart(formula 3-1)
Periodically in one cycle, t is compared in S209elapsedAnd the remaining time t to wait before sending the next packet (i.e., a software process). When t iselapsedIs equal to or greater than the desired remaining time t, the loop process ends and the program is caused to continue, sending a new packet. This method provides high accuracy if the time metric has high accuracy and the appropriate values described below are compared at frequent intervals.
The method in fig. 8 can be described by the following algorithm:
s201 obtains a desired remaining time t (i.e., how long the transmission of the packet must be suspended);
s203 obtains the start time tstart(when the wait process is invoked);
the following loop continues to be executed as often as possible:
s205 obtains the current time tnow
S207 calculates tnow-tstart=telapsed
When t iselapsedAnd t (S209), then the loop is exited and the program is caused to continue running.
When the process exits the loop, it means (t)now-tstart) Greater than or equal to the remaining time t. Otherwise, the loop continues to run. In some cases, t can occurelapsed(tnow-tstart) Greater than the remaining time t, i.e., the process has waited longer than the remaining time t.
Fig. 9 shows a modification of the process of fig. 8, and in fig. 9, the same steps used in the process of fig. 8 are indicated by the same reference numerals. In the process of FIG. 9, the consideration in each invocation of the process occurs at telapsedAnd the remaining time t. First, in S200, the value of δ is set to 0. Step 211 is added to the process of fig. 8 and calculates delta. That is:
δ=telapsed-t (equation 3-2)
The value δ is stored in S213 for the next procedure call and subtracted from the next remaining time t in S210 (at the beginning of the next t)wThe next call for the cycle passes as input to the process).
The process of figure 9 dynamically compensates for rounding errors by modifying the remaining time t with the error delta. Thus, the time spent between sending one packet and the next tends towards tw on average, although errors are caused by rounding. Introduced in one cycleIs compensated for in subsequent cycles. With this correction, if the latency t between packetsw(according to P and BtCalculated) that remains constant throughout the transmission in the process of fig. 8, is dynamically changed to compensate for the previous error. During the error compensation phase, the instantaneous bandwidth usage may exceed the target bandwidth Bt
This error correction procedure reduces the accuracy of the instantaneous bandwidth used in order to increase the average bandwidth B usedMThe accuracy of (2). The instantaneous bandwidth used exceeds the target bandwidth BTDepends on the rounding error described above. Using a high resolution clock or counter will limit such periods. For this reason, such a correction should only be achieved if it is possible and acceptable to exceed the target bandwidth for a brief period of time. This completes the bandwidth control process.
Considering bursty situations, it should be understood that if the timing rounding error is not compensated for, the lowest possible limit of bursts is limited using the timing facility provided by the sending apparatus, but the average bandwidth may be lower than the target bandwidth BT. If the timing rounding error is compensated, then using the timing facility provided by the sending facility, the average bandwidth is as close as possible to the target bandwidth, but the emergency is larger than if error correction was not used.
Reliable protocols such as the Transmission Control Protocol (TCP) send additional packets for acknowledgement of receipt and retransmit lost or corrupted data packets. Typically, the sender device cannot determine the number and size of additional packets sent, and thus, cannot control the bandwidth used. For this reason, it is a significant benefit of the invention when used primarily with unreliable packet based protocols.
The bandwidth control method and system of the present invention can be applied to any size of content. The sender does not have to know the size of the content in advance. What is required to know in advance is only the size of the packet (hereinafter, denoted by P) and the target bandwidth. The content size only affects the transmission duration and not the average bandwidth if the process or/and the device for waiting the time remaining between packets is sufficiently accurate.
The method and system of the present invention can be used with existing traffic shaper (shape) schemes. Consider a network with multiple sender devices, multiple receiver devices, and traffic shapers between the senders and receivers. If one or more sender devices generate bursty traffic, the traffic shaper will intervene by dropping packets to tolerate the resulting congestion. The introduction of the present invention on one or more sender devices will reduce the bursts of outgoing streams, thus reducing the likelihood of congestion and packet loss.
For convenience, certain features of the invention are shown in one or more drawings as each feature may be combined with other features in accordance with the invention. Alternative embodiments will be recognized by those skilled in the art and are intended to be included within the scope of the claims.

Claims (20)

1. Latency (t) between successive packet transmissions using a known packet size (P) of content to be transmitted during the transmissionw) To obtain a target bandwidth (B)T) The method comprises the following steps:
selecting a target bandwidth (B) to be attempted during transmissionT),
Calculating the latency (t) between successive packets of said transmission using the following algorithmw),And is
Controlling transmission of packets using the latency.
2. The method of claim 1, wherein the calculated, used wait time twRounded to one time unit.
3. The method of claim 2, wherein the rounding to time units is done by a counter.
4. The method of claim 1, further comprising the steps of:
determining a start time t for a packet transmission1
Determining the end time t of the packet transmission2And is and
determining the time t used in transmitting the packetusedIs t2-t1
5. The method of claim 4, further comprising the steps of:
determining the time (t) used in the transmission of a packetused);
Determining the remaining time t as tused-tw
The waiting time t between the end of one packet transmission to the start of the next packet transmission.
6. The method of claim 5, further comprising the step of repeating steps (a), (b) and (c) for each transmitted packet.
7. The method of claim 5, wherein the remaining time t is controlled by:
determining a start time t for transmitting a packetstartValue of, current time tnow
Executing a loop operation:
(a) calculating a time telapsed=tnow-tstart
(b) Will telapsedIs compared with the remaining time t and when the value t iselapsed≥t
Then the next packet is transmitted.
8. The method of claim 7, further comprising the steps of:
calculating error value delta telapsed-t and subtracting the value delta from a later provided value t.
9. A method according to claim 5, wherein the calculated used waiting time is rounded to a time unit.
10. A method as claimed in claim 9, wherein rounding to the time unit is done by a counter.
11. A method according to claim 1, comprising the additional step of selecting a known packet size (P) of the packet to be transmitted.
12. The method of claim 1, wherein the known packet size (P) is provided by an application.
13. Latency (t) between successive packet transmissions during transmission using content to be transmittedw) To obtain a target bandwidth (B)T) The apparatus of (1), comprising:
a computer, comprising:
a program for controlling the transmission of content in the data packets;
apparatus for inputting and receiving parameters including packet size (P) to be transmitted and desired target bandwidth (B)T)。
For calculating the latency (t) between successive packets of the transmission using the following algorithmw) Processing apparatus (2)
And
for waiting time t between packetswAnd a control device for continuously transmitting the packets.
14. The apparatus of claim 13, wherein said computer further comprises:
for determining a start time t for packet transmission1The apparatus of (1);
for determining the end time t of the packet transmission2An apparatus of, and
for determining the time t used in the transmission of the packetusedIs t2-t1The apparatus of (1).
15. The apparatus of claim 14, wherein said computer further comprises:
for determining the time (t) used in the transmission of a packetused) The first device of (1);
for determining the remaining time as tused-twThe second device of (1); and is
Wherein said control means operates to wait for a remaining time t between the start of a packet transmission and the start of the next packet transmission.
16. Apparatus according to claim 15, wherein said first and second determining means are operable to determine a remaining time t for each transmitted packet, and said control means is operable to wait for the remaining time t between the start of one packet transmission to the start of the next packet transmission.
17. The apparatus of claim 16, further comprising means for controlling the remaining time t by:
determining the onsetTime tstartValue of and current time tnow
Executing a loop operation:
(a) calculating the time telapsed=tnow-tstartAnd are and
(b) will telapsedIs compared with the remaining time t and when the value t iselapsedAnd when the value is more than or equal to t, transmitting the next packet.
18. The apparatus of claim 17, further comprising means for calculating an error value δ ═ telapsed-t and means for subtracting the value delta from the subsequently provided value t.
19. The apparatus of claim 13 wherein said control means further comprises means for periodically measuring the wait time twA counter of (2).
20. The apparatus of claim 13 wherein said computer operates said control means to calculate a wait time t from other measured timesw
HK06100993.1A 2002-01-31 2003-01-31 Method and system of data packet transmission timing for controlling bandwidth HK1081350A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/062,830 2002-01-31

Publications (1)

Publication Number Publication Date
HK1081350A true HK1081350A (en) 2006-05-12

Family

ID=

Similar Documents

Publication Publication Date Title
US8175117B2 (en) Method and system of data packet transmission timing for controlling bandwidth
US8331377B2 (en) Distributed forward link schedulers for multi-carrier communication systems
JP5661678B2 (en) Video packet shaping for videophones
US8954045B2 (en) Method and apparatus for managing resources at a wireless device
US8472322B2 (en) Method and apparatus for adaptive delay management
US7406098B2 (en) Resource allocation in a communication system supporting application flows having quality of service requirements
CN1278576C (en) Communication terminal and base station selection method
CN101057439A (en) Transmitter, receiver and communication system
WO2008100387A1 (en) Content rate control for streaming media servers
CN1596527A (en) Packet transmission scheduling method and base station device
CN1848810A (en) A method for controlling the transmission rate of streaming media
EA010385B1 (en) METHOD AND DEVICE FOR ENVIRONMENTAL DELIVERY OF DATA GRAPHS BY DATA TRANSMISSION CHANNEL WITH COMPETITION
CN1496079A (en) Method and device for dynamically controlling generation rate of real-time multimedia data
Balk et al. Adaptive MPEG-4 video streaming with bandwidth estimation
EP2959716A1 (en) Media distribution network system with media burst transmission via an access network
JP4061643B2 (en) Information processing system, information processing apparatus and method, recording medium, and program
CN118101990B (en) Weak network countermeasure method and device for adaptively reducing frame rate based on dynamic picture capturing
CN1914872A (en) Session relay device, session relay method, and session relay program
HK1081350A (en) Method and system of data packet transmission timing for controlling bandwidth
Gorius et al. Dynamic media streaming with predictable reliability and opportunistic TCP-friendliness
CN105264790B (en) Mobile video business feedback method, device and the equipment of user oriented Quality of experience
AU2003209589A1 (en) Method and system of data packet transmission timing for controlling bandwidth