WO2011100888A2 - Method and apparatus for scheduling transmission of data streams over a common communication link - Google Patents

Method and apparatus for scheduling transmission of data streams over a common communication link Download PDF

Info

Publication number
WO2011100888A2
WO2011100888A2 PCT/CN2011/070878 CN2011070878W WO2011100888A2 WO 2011100888 A2 WO2011100888 A2 WO 2011100888A2 CN 2011070878 W CN2011070878 W CN 2011070878W WO 2011100888 A2 WO2011100888 A2 WO 2011100888A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
time slot
amount
data stream
data streams
Prior art date
Application number
PCT/CN2011/070878
Other languages
French (fr)
Other versions
WO2011100888A3 (en
Inventor
Lipin Yang
Lei Xie
Fang Yu
Original Assignee
Huawei Technologies Co., Ltd.
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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority to CN201180066165.3A priority Critical patent/CN103329608B/en
Priority to PCT/CN2011/070878 priority patent/WO2011100888A2/en
Publication of WO2011100888A2 publication Critical patent/WO2011100888A2/en
Publication of WO2011100888A3 publication Critical patent/WO2011100888A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/56Allocation or scheduling criteria for wireless resources based on priority criteria
    • H04W72/566Allocation or scheduling criteria for wireless resources based on priority criteria of the information or information source or recipient
    • H04W72/569Allocation or scheduling criteria for wireless resources based on priority criteria of the information or information source or recipient of the traffic information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority

Definitions

  • the present invention relates to the field of communication technologies, and in particular, to a method and an apparatus for scheduling transmission of multiple data streams over a common communication link.
  • Multi-service traffic support is one of the objectives of network convergence.
  • the concept of a converged network - one that combines voice, data, and other signal transmissions into a single, higher-speed network interface - has been around for several decades.
  • a communication node such as a base station, a radio network controller (R C), a switch or a router
  • R C radio network controller
  • embodiments of the present invention provide a method and apparatus for scheduling transmission of a plurality of data streams over a common communication link.
  • a method for scheduling a transmission of a plurality of data streams over a common communication link includes:
  • the first amount of data is an amount of data in the data stream that will reach a delay before the end of a time slot following the incoming time slot, and wherein the delay applied to the data stream is no larger than a maximum delay value of the data stream;
  • Another embodiment of the present invention provides an apparatus for scheduling transmission of a plurality of data streams over a common communication link.
  • the apparatus includes:
  • a receiver comprising a plurality of receiving units, each receiving unit being configured to receive a data stream from a data source;
  • the first amount of data is an amount of data in the data stream that will reach a delay before the end of a time slot following the incoming time slot, and wherein the delay applied to the data stream is no larger than a maximum delay value of the data stream;
  • the data streams determine, based on an available data amount that is provided to the data streams for the incoming time slot and the first amounts of data in the data streams for the incoming time slot according to priority levels of the data streams, a second amount of data in the data stream, wherein the second amount of data is an amount of data in the data stream that will actually be transmitted in the incoming time slot;
  • a transmitter connected to the processor, configured to:
  • a computer program product for scheduling transmission of a plurality of data streams over a common communication link.
  • the computer program product includes a computer-readable storage medium storing program code thereon for causing a computerized controlling device to execute a process that includes:
  • the first amount of data is an amount of data in the data stream that will reach a delay before the end of a time slot following the incoming time slot, and wherein the delay applied to the data stream is no larger than a maximum delay value of the data stream;
  • a delay is applied to each of the data streams, and the delay is no larger than a maximum delay value (i.e. delay requirement) of that data stream.
  • An amount of data in each of the data streams that will reach the delay before the end of a next time slot following an incoming time slot is transmitted over the common communication link during the incoming time slot according to priority levels of the data streams, so delay requirements of the data streams are guaranteed at full steam.
  • FIG. 1 is a flowchart illustrating a method for scheduling transmission of a plurality of data streams over a common communication link according to an embodiment of the present invention
  • FIG. 2 is a flowchart illustrating a method for scheduling transmission of the data streams over the common communication link according to a specific implementation of the method of Fig. 1 ;
  • Fig. 3A is an example of the data transmission according to an embodiment of the present invention.
  • Fig. 3B illustrates an implementation of the method for scheduling transmission of the data streams over the common communication link with a token bucket algorithm according to an embodiment of the present invention
  • Fig. 3C is another example of the data transmission according to an embodiment of the present invention.
  • FIG. 4 is a flowchart illustrating a method for scheduling transmission of the data streams over the common communication link according to another specific implementation of the method of Fig. 1 ;
  • FIG. 5 is a flowchart illustrating a method for scheduling transmission of the data streams over the common communication link according to yet another specific implementation of the method of Fig. 1 ;
  • Fig. 6 is a block diagram of an apparatus for scheduling transmission of the data streams over the common communication link according to an embodiment of the present invention.
  • Fig. 1 is a flowchart illustrating a method for scheduling a transmission of a plurality of data streams over a common communication link according to an embodiment of the present invention.
  • the method may be implemented in a communication node such as a base station, a radio network controller (R C), a switch, or a router.
  • a communication node such as a base station, a radio network controller (R C), a switch, or a router.
  • a first amount of data in the data stream is determined for an incoming time slot (for example, a time slot T j ).
  • the first amount of data is the amount of data in that data stream that will reach a delay before the end of a next time slot following the incoming time slot (for example, a time slot T j+ i).
  • the delay applied to the data stream is no larger than a maximum delay value of the data stream.
  • a second amount of data in the data stream is determined.
  • the second amount of data is an amount of data that will actually be transmitted in the incoming time slot T j over the common communication link.
  • the second amount of data is determined based on an available data amount that is provided to the data streams for the incoming time slot T j and the first amounts of data in the data streams according to priority levels of the data streams.
  • the second amount of data in each of the data streams is transmitted during the incoming time slot T j over the common communication link according to priority levels of the data streams.
  • each of the data streams is applied with a delay that is no larger than a maximum delay value of that data stream, and data of each of the data streams that will reach the delay before the end of the next time slot T j+ i following the incoming time slot T j is transmitted over a common communication link during the incoming time slot T j according to orders from high to low priority levels of the data streams, so that delay requirements of the data streams are fully fulfilled.
  • the available data amount may be determined based on length of the incoming time slot T j and a maximum serving rate provided to the data streams in the incoming time slot T j .
  • the maximum serving rate may be a maximum data amount per unit time provided to the data streams in the incoming time slot T j .
  • a duration of the incoming time slot T j may be equal to a most stringent delay bound, which is no larger than the smallest value of the maximum delay values of the data streams.
  • a delay applied to one of the data streams may be a multiple of the most stringent delay bound.
  • Di is the delay applied to the i th data stream
  • Di is the maximum delay value of the i th data stream
  • d is the most stringent delay bound
  • Floor(Di/d) is the largest integer no larger than Di/d.
  • the delay applied to a data stream may be calculated by the following equation:
  • di is the delay applied to the i th data stream
  • d is the most stringent delay bound
  • j is an integer which causes 2 J *d to be closest to and no larger than the maximum delay value of the i th data stream.
  • the calculation of the second amount of data in the block S12 may include calculating, based on the available data amount and the first amounts of data in the data streams according to priority levels of the data streams, a third amount of data amount in each of the data streams, wherein the third amount of data is a maximum amount of data in each of the data streams that can be transmitted in the incoming time slot T j over the common communication link, and calculating, based on the first data amount and the third data amount of each of the data streams for the incoming time slot T j , the second data amount of each of the data streams for the incoming time slot T j .
  • the method may include obtaining a delay offset of at least one data stream of the data streams based on that a leftover capacity in each time slot is substantially the same, and calculating an adjusted delay for each of the at least one data stream based on the delay applied to each of the at least one data stream and the obtained delay offset of each of the at least one data stream, and the block S 10 may further include calculating an adjusted first amount of data in each of the at least one data stream for the incoming time slot T j , which is an amount of data of each of the at least one data stream that will reach the adjusted delay before the end of a next time slot T j+ i flowing the incoming time slot T j , so that a larger contiguous leftover bandwidth is created and occurrence of bandwidth shortage in some time slots in the future is avoided.
  • the method may further include, if the sum of the first amounts of data in the data streams for the incoming time slot is less than the available data amount for the incoming time slot, and after the transmission is finished, sending, over the common communication link during the incoming time slot T j , data of at least one data stream of the plurality of data streams that doesn't reach its applied delay before the end of the next time slot T j+ i following the incoming time slot T j ; or sending, over the common communication link, data of at least one elastic data stream, whose delay is not as critical as that of other data streams, so that bandwidth is used well while delay requirements of the data streams are guaranteed.
  • the method may further include: when an emergency data stream arrives for transmission in the incoming time slot T j , stopping transmitting of data of a current data stream and sending data of the emergency data stream over the common communication link in the incoming time slot T j , so that the delay requirement of the emergency data stream is guaranteed.
  • the method may further include: after the transmission of the data of the emergency data stream is finished, if amount of data that has been transmitted in the incoming time slot T j is less than the available data amount, continuing to send during the incoming time slot T j data of the current data stream and data of the data streams whose priority levels are lower than that of the current data stream according to priority levels of the data streams, so that the delay requirements of the data streams are guaranteed at full steam while the delay requirement of the emergency data stream is guaranteed.
  • the method may further include, if not all data of the emergency data stream has been transmitted in the incoming time slot T j , executing the blocks from S10 to S14 for each time slot following the incoming time slot T j for the emergency data stream and the data streams, until all data of the emergency data stream has been transmitted, the priority level of the emergency data stream being set to be higher than those of the data streams, so that the delay requirement of the emergency data stream is guaranteed at full steam.
  • the method may further include, when a new data stream arrives in the incoming time slot and the new data stream has data that will reach a maximum delay applied to the new data stream before the end of the next time slot following the incoming time slot, determining whether transmitting of data of a high priority data stream of the data streams whose priority level is higher than that of the new data stream data is finished; if not, computing a first amount of data in the new data stream for the incoming time slot; re-determining, based on leftover data amount that is provided to the data streams in the incoming time slot when the transmitting of data of the high priority data stream in the incoming time slot is finished and the first amount of data in each of the high priority data streams, the new data stream and low priority data streams of the data streams for the incoming time slot, the second amount of data in each of the new data stream and the low priority data streams for the incoming time slot according to priority levels of the new data stream and the low priority data streams, wherein the low priority data streams are
  • the method may further include stopping transmitting of data of a current data stream of the data streams whose data is being transmitted over the common communication link in the incoming time slot, if the detecting is confirmative; and sending data of the new data stream over the common communication link in the incoming time slot.
  • the method may further include continuing to send during the incoming time slot data of at least one data stream of the current data stream and low priority level data streams of the data streams whose priority levels are lower than that of the current data stream according to priority levels of the at least one data stream, after the transmission of data of the new data stream in the incoming time slot is finished, if amount of data that has been transmitted in the incoming time slot after the transmission of data of the new data stream in the incoming time slot is finished is less than the available data amount.
  • the method may further include executing the blocks from S10 to S 14 for each time slot following the incoming time slot for the new data stream and the data streams.
  • data is generally transmitted in manner of packets and a packet includes a constant amount of data.
  • a packet includes a constant amount of data.
  • data is transmitted in manner of packets, and the data amount is represented by the number of packets.
  • Fig. 2 is a flowchart illustrating a process for scheduling a transmission of data streams over a common communication link according to an implementation of the method of the present invention.
  • the process may be executed in a communication node such as a base station, a radio network controller (R C), a switch or a router.
  • R C radio network controller
  • Each of the data streams has a maximum delay value Di, and orders from high to low priority levels of the n data streams are Yi>Y 2 >.. ⁇ ⁇ ⁇
  • D m i n is a value that is no larger than the smallest value of the maximum delay values DI, D2,..., D n- i and D n of the n data streams.
  • a delay di is calculated, di is an actual delay to be applied to the data stream Yi and the calculation is based on the most stringent delay bound D m i n and the maximum delay value Di of the data stream Yi. Specifically,
  • the maximum serving rate R used for the n data streams is determined.
  • the maximum serving rate R is represented by maximum number of packets being transmitted per unit time.
  • step SI 50 data stored in a buffer for each data stream Yi are checked to determine the number of packets PRi of each data stream Yi that will reach the delay di before the end of a next time slot T j +i following the incoming time slot T j .
  • Min ( ) is an operator of taking a minimum value from all values inside the brackets
  • R*D mm is an available data amount that is provided to the n data streams in the incoming time slot T j .
  • step SI 80 the n data streams are scheduled for transmission over the common communication link during the incoming time slot T j according to orders from high to low priority levels of the n data streams, in which pi packets of each data stream Yi that will reach the delay di before the end of the next time slot T j+ i are transmitted.
  • the common communication link can transmit packets of only one data stream at a time
  • the pi packets of each data stream Yi are transmitted during the incoming time slot T j according to orders from high to low priority levels of the n data streams, i.e., the pi packets of the data stream Yi are transmitted first
  • the p 2 packets of the data stream Y 2 are then transmitted after the pi packets of the data stream Y l s
  • the p 3 packets of the data stream Y 3 are next transmitted after the p 2 packets of the data stream Y 2 , ... , and so on.
  • the common communication link can transmit packets of two or more data streams at a time
  • the packets of every two or more data streams are transmitted at a time during the incoming time slot T j according to orders from high to low priority levels of the n data streams. For example, if the common communication link can transmit packets of two data streams at a time, pi and p 2 packets of the data streams Yi and Y 2 are first transmitted during the incoming time slot T j , p 3 and p 4 packets of the data streams Y 3 and Y 4 are then transmitted after the transmission of the pi and p 2 packets of the data streams Yi and Y 2 is finished, and so forth.
  • each of the n data streams is applied with a delay that is no larger than the maximum delay value of that data stream and data of each of the n data streams that will reach the applied delay before the end of the next time slot T j+ i following the incoming time slot T j is transmitted over the common communication link during the incoming time slot T j according to orders from high to low priority levels of the n data streams, so delay requirements of the n data streams are guaranteed at full steam.
  • FIG. 3A An illustrative example for scheduling transmission of data streams over a common communication link according to an implementation of the present invention is shown in Fig. 3A.
  • the most stringent delay bound is D m i n and the duration of each time slot is equal to D m i n .
  • the delay di-d 4 applied respectively to the data streams Yi-Y 4 are
  • Packets of the data stream Yi are transmitted during each time slot.
  • FIG. 3B An illustrative implementation of the method for scheduling transmission of data streams over a common communication link with a token bucket algorithm is shown in Fig. 3B.
  • the token bucket of each data stream Yi is placed into pi tokens for the incoming time slot T j and then packets stored in a queue of each data stream Yi are scheduled during the incoming time slot T j to transmit over the common communication link based on pi tokens for each data stream Yi according to orders from high to low priority levels of the n data streams.
  • the packets that should be transmitted but are not transmitted during the incoming time slot T j may be discarded at the end of the incoming time slot T j . Or, the packets that should be transmitted but are not transmitted during the incoming time slot T j are discarded if they are not transmitted in the next time slot T j+1 .
  • the maximum serving rate R used for the n data streams may be variable with time slots or constant for each time slot. If the maximum serving rate R used for the n data streams is variable with the time slots, it is necessary to determine the maximum serving rate R for each time slot. If the maximum serving rate R used for the n data streams is the same and constant for each time slot, it is not necessary to determine the maximum serving rate R once for each time slot, and the maximum serving rate R may be only determined once for all time slots, so that operation load required for the method is reduced.
  • the delay actually applied to at least one of the n data streams may be adjusted to make the transmitting time of the data of at least one data stream to be advanced, so that leftover capacities in each time slot are substantially the same to create a larger contiguous leftover bandwidth and avoid occurrence of bandwidth shortage in some time slots in the future.
  • FIG. 3C Another illustrative example for scheduling transmission of data streams over a common communication link according to the third modification of the present invention is shown in Fig. 3C.
  • Fig. 3C compared to Fig. 3A, the delay actually applied to the data streams Y 3 and Y 4 is adjusted based on that the leftover capacities in each time slot are substantially the same. It is apparent from Fig. 3C that delay offset D0 3 of the data streamY 3 is D m i n and delay offset D0 4 of the data stream Y 3 is 15*D m i n .
  • Fig. 4 is a flowchart illustrating a method for scheduling transmission of data streams over a common communication link according to another implementation of the present invention.
  • the method may be executed in a communication node such as a base station, a radio network controller (RNC), a switch or a router.
  • RNC radio network controller
  • This implementation deals with such case where an emergency data stream EM with maximum delay value D EM arrives in a time slot T p when packets of the n data streams are being transmitted over the common communication link during the time slot T p .
  • a step S200 it is judged whether or not the emergency data stream EM has any packets that will reach the maximum delay value D EM before the end of the next time slot T p+ i following the time slot T p .
  • the emergency data stream EM has at least one packet that will reach the maximum delay value DEM before the end of the next time slot T p+1 , at a step S210, the number of packets PREM of the emergency data stream EM that will reach the maximum delay value DEM before the end of the time slot T p+ i is determined by detecting the packets stored in the buffer for the emergency data stream EM.
  • PEM packets of the emergency data stream EM that will reach the maximum delay value DEM before the end of the next time slot T p+ i are transmitted over the common communication link during the time slot T p .
  • PEM Min (Ps max-pals, PREM), and pal s is the amount of data packets of the current data stream Y s that has been transmitted in the time slot T p .
  • pp h (h s, s+1 , s+2, ... ,n) packets of each of the data streams from Y s to Y n that will reach their delays d s to d n , respectively, before the end of the next time slot T p+ i over the common communication link during the time slot T p are scheduled according to orders from high to low priority levels of the data streams from Y s to Y n , after the PEM packets of the emergency data stream EM are transmitted, if the number of packets that have been transmitted in the time slot T p after the PEM packets of the emergency data stream EM are transmitted in the time slot T p is less than the maximum number of packets R*D m i n that can be transmitted in the time slot T p .
  • a step S250 if not all packets of the emergency data stream EM have been transmitted in the time slot T p or if the emergency data stream EM has at least one packet that will reach the maximum delay value DEM before the end of the next time slot T p+ i, the emergency data stream EM is set to have the highest priority level than the n data streams, and for these data streams including the emergency data stream EM and the n data streams, the above steps S110-S130 are executed for next time slot T p +i following the time slot T p and the above steps S140-S180 are executed repeatedly for each time slot following the time slot T p , until all packets of the emergency data stream EM are transmitted.
  • packets of the emergency data stream EM that don't reach its delay before the end of the time slot T e +i may also be transmitted over the common communication link during the time slot T e after transmitting of the packets of the n data streams in the time slot T e has been finished, if the emergency data stream EM doesn't have any packet that will reach its delay before the end of the time slot T e +i and the maximum number of packets that can be transmitted over the common communication link in the time slot T e is larger than the sum of the amount of packets of the n data streams that are transmitted actually in the time slot T e , so that bandwidth is used well while the delay requirements of the emergency data stream is guaranteed and occurrence of bandwidth shortage in some time slots in the future is avoided.
  • Fig. 5 is a flowchart illustrating a method for scheduling transmission of data streams over a common communication link according to a further implementation of the present invention.
  • the method may be executed in the communication node such as a base station, a radio network controller (R C), a switch or a router.
  • R C radio network controller
  • This implementation deals with a case where a new data stream Ynew with a maximum delay value D NEW arrives in a time slot T v when packets of the n data streams are being transmitted over the common communication link during the time slot T v . It is assumed that priority level of the new data stream Y new is lower than that of the data stream Y m of the n data streams and higher than that that of the data stream Y m +i of the n data streams.
  • step S300 it is judged whether or not the new data stream Y new has any packets that will reach the delay D new before the end of the next time slot T v +i following the time slot T v .
  • the above steps S110-S130 are executed for a next time slot T v +i following the time slot T v and the above steps S140-S180 are executed repeatedly for each time slot following the time slot T v .
  • the new data stream Y new has at least one packet that will reach the delay D new before the end of the time slot T v +i, at a step S320, packets stored in the buffer for the new data stream Y new are checked to calculate the number of packets PR new of the new data stream Y new that will reach the delay D new before the end of the time slot T v +i .
  • a step S330 it is determined whether transmitting of packets of the data stream Y m in the time slot T v has been finished.
  • the maximum number of packets P' z m ax of each of the new data stream Y new and the data streams from Y m +i to Y n can be transmitted in the time slot T v is re-calculated based on P m max, PR m , PRnew, P m+i PRn according to orders from high to low priority levels of the new data stream Y new and the data streams from Y m+ i to Y resort.
  • P' ne w max P m max - Min (P m max , PR m ), P' m+ i max
  • P new max Min (P new max , PR new ), P m + 2 ma x P m+1 max — Min (P m+ j max , PR m +j) , . . . , P nmax — P n-lmax — Min (P n-lmax» PRn- ⁇ ) ⁇
  • the number of packets p' z of each of the new data stream Y new and the data streams from Y m +i to Y n that will actually be transmitted in the time slot T v is re-determined based on PR m , PR new , PR m +i , . . . , PR n and P' ne w max, P'm+i max,
  • the new data stream Y new and the data streams from Y m+ i to Y n are scheduled during the time slot T v according to orders from high to low priority levels of the new data stream Y new and the data streams from Y m+ i to Y n , to transmit over the common communication link p' z packets of each of the new data stream Y new and the data streams from Y m+ i to Y n that will reach the respective delay before the end of the time slot T v+ i, after the transmission of packets of the data stream Y m in the time slot T v has been finished.
  • a current data stream Y a of the data streams from Y m+ i to Y n whose packets are being transmitted during the time slot T v is determined.
  • a step S380 the transmission of packets of the current data stream Y a in the time slot T v is stopped and the number of packets p a i of the current data stream Y a that have been transmitted to in the time slot T v is calculated.
  • p" new packets of the new data stream Y new are transmitted over the common communication link in the time slot T v .
  • p" new Min
  • the data streams from Y a to Y n are scheduled in the time slot T v according to orders from high to low priority levels of the data streams from Y a to Y n , to transmit over the common communication link p"i packets of each of the data streams from Y a to Y n , after the transmission of the packets of the new data stream Y new has been finished in the time slot T v , if the amount of packets that have been transmitted in the time slot T v after the packets of the new data stream are transmitted in the time slot T v is less than the maximum number of packets R*D m i n that can be transmitted in the time slot T v .
  • p" a Min (P a- i max - p a i- p" new ,
  • packets of the new data stream Y new is transmitted during the time slot T v only after transmitting of corresponding packets of the data streams from Yi to Y n in the time slot T v has been finished when the sum from pi to p n for the time slot T v is less than the maximum number of packets R* D m i n that can be transmitted in the time slot T v .
  • the present invention may be implemented by hardware, or by software running on a hardware platform.
  • the technical solution of the present invention may be embodied by a software program product which comprises a nonvolatile storage medium storing program codes thereon for executing the method provided in the embodiments of the present invention by a processing device (such as a personal computer, a server, or a network device).
  • the storage medium can be, for example, a Compact Disk Read-Only Memory (CD-ROM), a USB disk, or a mobile hard disk.
  • Fig. 6 illustrates an apparatus 400 for scheduling transmission of a plurality of data streams over a common communication link according to an embodiment of the present invention. At least a portion of the apparatus 400 may be located at a communication node such as a base station, a radio network controller (RNC), a switch or a router.
  • a communication node such as a base station, a radio network controller (RNC), a switch or a router.
  • RNC radio network controller
  • the apparatus 400 includes a receiver 410, a processor 420 and a transmitter 430.
  • the receiver 410 comprises a plurality of receiving units 410i, 410 2 , rule formula , 410 n , each configured to receive one of a plurality of data streams from a data source.
  • the processor 420 is configured to:
  • the first amount of data is an amount of data in the data stream that will reach a delay before the end of a time slot following the incoming time slot, and wherein the delay applied to the data stream is no larger than a maximum delay value of the data stream;
  • the data streams determine, based on an available data amount that is provided to the data streams for the incoming time slot and the first amounts of data in the data streams for the incoming time slot according to priority levels of the data streams, a second amount of data in the data stream, wherein the second amount of data is an amount of data in the data stream that will actually be transmitted in the incoming time slot.
  • the transmitter 430 is configured to transmit, during the incoming time slot, the second amount of data of the plurality of data streams over the common communication link according to the priority levels of the data streams.
  • the processor 420 may further be configured to determine the delay applied to each of the data streams as a multiple of a most stringent delay bound, wherein the most stringent delay bound is no larger than the smallest value of the maximum delay values of the data streams.
  • the processor 420 may determine the first amount of data in each of the data streams for an incoming time slot in a manner as shown in the above step SI 50, determine the delay applied to each of the data streams in a manner as shown in the above step SI 20, and determine the most stringent delay bound as shown in the above step SI 10.
  • the processor 420 may determine the second amount of data in each of the data streams for the incoming time slot in a manner as shown in the above steps SI 60 and SI 70. In another implementation of the present invention, the processor 420 may determine the second amount of data in each of the data streams for the incoming time slot as described in the above second modification of the present invention.
  • each of the multiple data streams is applied a delay that is not larger than a maximum delay value of that data stream and data of each of the multiple data streams that will reach the applied delay before the end of a next time slot following an incoming time slot is transmitted over a common communication link during the incoming time slot according to orders from high to low priority levels of the multiple data streams, so delay requirements of the multiple data streams are guaranteed at full steam.
  • the processor 420 may further be configured to calculate, based on the available data amount and the first amount of data in each of the data streams for the incoming time slot according to the priority levels of the data streams, a third amount of data in each of the data streams for the incoming time slot, which is a maximum amount of data of each of the data streams that can be transmitted in the incoming time slot over the common communication link, and calculate, based on the first amount of data and the third amount of data in each of the data streams for the incoming time slot, the second amount of data amount in each of the data streams for the incoming time slot.
  • the available data amount may be determined based on the duration of the time slot and a maximum serving rate provided to the data streams in the incoming time slot.
  • the maximum serving rate may be maximum data amount per unit time provided to the data streams in the incoming time slot.
  • the processor 420 may calculate the third amount of data and the second amount of data in each of the data streams for the incoming time slot in a manner as shown in the steps SI 60 and SI 70.
  • the processor 420 may further be configured to obtain a delay offset of each of at least one data stream of the data streams based on that leftover capacities in each time slot is substantially the same, and calculate an adjusted delay for each of the at least one data stream based on the delay applied to each of the at least one data stream and the obtained delay offset of each of the at least one data stream, and the processor 420 is further configured to calculate the adjusted first amount of data in each of the at least one data stream for the incoming time slot, which is an amount of data in each of the at least one data stream that will reach the adjusted delay before the end of the next time slot, so that a larger contiguous leftover bandwidth is created and occurrence of bandwidth shortage in some time slots in the future is avoided.
  • the processor may determine the delay offset and calculate the adjusted delay in a manner as shown in the above third modification of the present invention.
  • the transmitter 430 may further be configured to send, over the common communication link during the incoming time slot, data of at least one data stream of the data streams that doesn't reach the delay applied to the data stream before the end of the next time slot following the incoming time slot or send, over the common communication link during the incoming time slot, data of at least one elastic data stream whose delay is not as critical as the data streams, after the transmission of the second amounts of data of the data streams is finished, if sum of the first data amount of the data streams for the time slot is less than the available data amount, so that bandwidth is used well while delay requirements of the data streams are guaranteed.
  • the transmitter 430 may send data in a manner as shown in the above first modification of the present invention.
  • the transmitter 430 may be further configured to stop, transmitting of data of a current data stream of the data streams in the incoming time slot and send data of the emergency data stream over the common communication link in the incoming time slot, so that the delay requirement of the emergency data stream is guaranteed.
  • the transmitter 430 may send data of the emergency data stream in a manner as shown in the above steps S200-S230.
  • the transmitter 430 may further be configured to continue to send, during the incoming time slot, data of at least one data stream of the current data stream and data streams of the data streams whose priority levels are lower than that of the current data stream according to priority levels of the at least one data stream, after the transmission of data of the emergency data stream in the incoming time slot is finished, if the amount of data that has been transmitted in the incoming time slot after the transmission of data of the emergency data stream in the incoming time slot is finished is less than the available data amount, so that the delay requirements of the data streams are guaranteed at full steam while the delay requirement of the emergency data stream is guaranteed.
  • the transmitter 430 may continue to send data in a manner as shown in the above step [00102]
  • the transmitter 430 may further be configured to, if not all data of the emergency data stream has been transmitted in the incoming time slot, transmit in each time slot following the incoming time slot data in the emergency data stream and the data streams in the same manner as for the incoming time slot, until all data of the emergency data stream is transmitted, wherein the priority level of the emergency data stream is set to be higher than that of the data streams, so that the delay requirement of the emergency data stream is guaranteed at full steam.
  • the receiver 410 may further be configured to receive a new data stream in the incoming time slot, and the new data stream may have data that will reach a maximum delay within the next time slot following the incoming time slot.
  • the processor 420 may further be configured to calculate the first amount of data of the new data stream for the incoming time slot, if the transmission of data of the high priority data stream whose priority level is higher than that of the new data stream has not been finished.
  • the processor 420 may further be configured to re-determine, based on leftover data amount that is provided to the data streams in the incoming time slot when the transmission of data of the high priority data stream in the incoming time slot is finished and the first data amount of each of the high priority data stream, the new data stream and low priority data streams of the data streams for the incoming time slot, the second data amount of each of the new data stream and the low priority data streams for the incoming time slot according to priority levels of the new data stream and the low priority data streams, the low priority data streams being those data streams whose priority levels are lower than that of the new data stream.
  • the transmitter 430 may further be configured to send, during the incoming time slot, data of the new data stream and the low priority data streams over the common communication link based on the re-determined second amounts of data in each of the new data stream and the low priority data streams for the incoming time slot according to the priority levels of the new data stream and the low priority data streams, after the transmission of data of the high priority data stream is finished.
  • the delay requirement of the new data stream is guaranteed at full steam.
  • the processor 420 may calculate the first amount of data in the new data stream in a manner as shown in the above step S320, the processor 420 may re-determine the first amount of data in a manner as shown in the steps S340 and S350, and the transmitter 430 may send data in a manner as shown in the above step S360.
  • the transmitter 430 may further be configured to stop, if the transmission of data of the high priority data stream has been finished, transmission of data of a current data stream of the data streams whose data is being transmitted over the common communication link in the incoming time slot, and send data of the new data stream over the common communication link in the incoming time slot.
  • the transmitter 430 may stop transmitting of data and send data of the new data stream in a manner as shown in the steps S370-S390.
  • the transmitter 430 may further be configured to continue to send during the incoming time slot data of at least one data stream of the current data stream and low priority level data streams of the data streams whose priority levels are lower than that of the current data stream according to priority levels of the at least one data stream, after the transmission of data of the new data stream in the incoming time slot is finished, if the amount of data that has been transmitted in the incoming time slot after the transmission of data of the new data stream in the incoming time slot is finished is less than the available data amount.
  • the transmitter 430 may continue to send data in a manner as shown in the step S400.
  • the processor 420 and the transmitter 430 may further be configured to execute, respectively, the calculating, the determining and the transmission for each time slot following the incoming time slot for the new data stream and the data streams.
  • the apparatus 400 may further comprise a non-transient memory device 440, configured to store a computer program for executing a process according to the method of the present invention.
  • the memory device may further be configure to store data of the plurality of data streams that are scheduled to be transmitted in the incoming time slot and/or time slots following the incoming time slot.
  • a communication node may be made based on the apparatus as shown in Fig. 6.
  • the communication node may be a base station, a radio network controller (R C), a switch or a router.
  • R C radio network controller
  • What has been described above includes examples of one or more embodiments. It is, of course, not possible to describe every conceivable combination of components or methodologies for purpose of describing the aforementioned embodiments, but one of ordinary skill in the art may recognize that many further combinations and permutations of various embodiments are possible. Accordingly, the described embodiments are intended to embrace all such alterations, modifications and variations that fall before the end of the spirit and scope of the appended claims.

Abstract

A method and an apparatus for scheduling transmission of data streams over a common communication link are disclosed. The method includes the following steps:for each of the data streams, determining a first amount of data in the data stream for an incoming time slot; for each of the data streams, determining, based on an available data amount that is provided to the data streams for the incoming time slot and the first amounts of data in the data streams for the incoming time slot according to priority levels of the data streams, a second amount of data in the data stream; and transmitting, during the incoming time slot, the second amounts of data in the plurality of data streams over the common communication link according to the priority levels of the data streams.

Description

METHOD AND APPARATUS FOR SCHEDULING TRANSMISSION OF DATA STREAMS OVER A COMMON COMMUNICATION LINK
FIELD OF THE INVENTION
[0001] The present invention relates to the field of communication technologies, and in particular, to a method and an apparatus for scheduling transmission of multiple data streams over a common communication link.
BACKGROUND
[0002] Multi-service traffic support is one of the objectives of network convergence. The concept of a converged network - one that combines voice, data, and other signal transmissions into a single, higher-speed network interface - has been around for several decades.
[0003] In the converged network, what is needed is a communication node (such as a base station, a radio network controller (R C), a switch or a router) that is capable of transmitting data in a plurality of data streams having different delay requirements and different priority levels over a common communication link.
[0004] Many solutions have been developed to deal with the transmission of multiple data streams having different delay requirements and different priority levels over the common communication link. An example of the solutions is in a method disclosed by Niyato, D., Diamond, J., and Hossain, E., in "On optimizing token bucket parameters at the network edge under generalized processor sharing (GPS) scheduling" (Global Telecommunications Conference, GLOBECOM '05. IEEE, Volume: 2, 2005), in which an optimization scheme is formulated to obtain parameters (e.g. bucket size and token generation rate) with the objective of minimizing a delay bound for a particular traffic source (i.e. a data stream). The method can be used iteratively to obtain optimized delay bounds for multiple traffic sources.
[0005] However, the above-mentioned method can only be used to minimize the delay bounds of the data streams and it cannot guarantee the optimum delay bounds of the data streams. SUMMARY OF THE INVENTION
[0006] Accordingly, embodiments of the present invention provide a method and apparatus for scheduling transmission of a plurality of data streams over a common communication link.
[0007] In an embodiment of the present invention, a method is provided for scheduling a transmission of a plurality of data streams over a common communication link. The method includes:
for each of the data streams, determining a first amount of data in the data stream for an incoming time slot, wherein the first amount of data is an amount of data in the data stream that will reach a delay before the end of a time slot following the incoming time slot, and wherein the delay applied to the data stream is no larger than a maximum delay value of the data stream;
for each of the data streams, determining, based on an available data amount that is provided to the data streams for the incoming time slot and the first amounts of data in the data streams for the incoming time slot according to priority levels of the data streams, a second amount of data in the data stream, wherein the second amount of data is an amount of data in the data stream that will actually be transmitted in the incoming time slot; and
transmitting, during the incoming time slot, the second amounts of data in the plurality of data streams over the common communication link according to the priority levels of the data streams.
[0008] Another embodiment of the present invention provides an apparatus for scheduling transmission of a plurality of data streams over a common communication link. The apparatus includes:
a receiver comprising a plurality of receiving units, each receiving unit being configured to receive a data stream from a data source;
a processor connected to the receiver, configured to:
for each of the data streams, determine a first amount of data in the data stream for an incoming time slot, wherein the first amount of data is an amount of data in the data stream that will reach a delay before the end of a time slot following the incoming time slot, and wherein the delay applied to the data stream is no larger than a maximum delay value of the data stream;
for each of the data streams, determine, based on an available data amount that is provided to the data streams for the incoming time slot and the first amounts of data in the data streams for the incoming time slot according to priority levels of the data streams, a second amount of data in the data stream, wherein the second amount of data is an amount of data in the data stream that will actually be transmitted in the incoming time slot; and
a transmitter connected to the processor, configured to:
transmit, during the incoming time slot, the second amount of data of the plurality of data streams over the common communication link according to the priority levels of the data streams.
[0009] In yet another embodiment of the present invention, a computer program product for scheduling transmission of a plurality of data streams over a common communication link is provided. The computer program product includes a computer-readable storage medium storing program code thereon for causing a computerized controlling device to execute a process that includes:
for each of the data streams, determining a first amount of data in the data stream for an incoming time slot, wherein the first amount of data is an amount of data in the data stream that will reach a delay before the end of a time slot following the incoming time slot, and wherein the delay applied to the data stream is no larger than a maximum delay value of the data stream;
for each of the data streams, determining, based on an available data amount that is provided to the data streams for the incoming time slot and the first amounts of data in the data streams for the incoming time slot according to priority levels of the data streams, a second amount of data in the data stream, wherein the second amount of data is an amount of data in the data stream that will actually be transmitted in the incoming time slot; and
transmitting, during the incoming time slot, the second amounts of data in the plurality of data streams over the common communication link according to the priority levels of the data streams. [0010] In the above method, apparatus and computer program product for scheduling transmission of a plurality of data streams over a common communication link, a delay is applied to each of the data streams, and the delay is no larger than a maximum delay value (i.e. delay requirement) of that data stream. An amount of data in each of the data streams that will reach the delay before the end of a next time slot following an incoming time slot is transmitted over the common communication link during the incoming time slot according to priority levels of the data streams, so delay requirements of the data streams are guaranteed at full steam.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The disclosed aspects will hereinafter be described in conjunction with the appended drawings, provided to illustrate and not to limit the disclosed aspects, wherein like designations denote like elements, and in which:
[0012] Fig. 1 is a flowchart illustrating a method for scheduling transmission of a plurality of data streams over a common communication link according to an embodiment of the present invention;
[0013] Fig. 2 is a flowchart illustrating a method for scheduling transmission of the data streams over the common communication link according to a specific implementation of the method of Fig. 1 ;
[0014] Fig. 3A is an example of the data transmission according to an embodiment of the present invention;
[0015] Fig. 3B illustrates an implementation of the method for scheduling transmission of the data streams over the common communication link with a token bucket algorithm according to an embodiment of the present invention;
[0016] Fig. 3C is another example of the data transmission according to an embodiment of the present invention.
[0017] Fig. 4 is a flowchart illustrating a method for scheduling transmission of the data streams over the common communication link according to another specific implementation of the method of Fig. 1 ;
[0018] Fig. 5 is a flowchart illustrating a method for scheduling transmission of the data streams over the common communication link according to yet another specific implementation of the method of Fig. 1 ; and
[0019] Fig. 6 is a block diagram of an apparatus for scheduling transmission of the data streams over the common communication link according to an embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
[0020] Various aspects of the present invention are now described with reference to the drawings. In the following descriptions, numerous specific details are set forth in order to provide a thoroughly explanation of the present invention. It may be evident, however, that the present invention may be practiced without adhering to these specific details.
[0021] Fig. 1 is a flowchart illustrating a method for scheduling a transmission of a plurality of data streams over a common communication link according to an embodiment of the present invention.
[0022] The method may be implemented in a communication node such as a base station, a radio network controller (R C), a switch, or a router.
[0023] As shown in Fig. 1, at block S10, for each of the data streams, a first amount of data in the data stream is determined for an incoming time slot (for example, a time slot Tj). The first amount of data is the amount of data in that data stream that will reach a delay before the end of a next time slot following the incoming time slot (for example, a time slot Tj+i). The delay applied to the data stream is no larger than a maximum delay value of the data stream.
[0024] At block S12, for each of the data streams, a second amount of data in the data stream is determined. The second amount of data is an amount of data that will actually be transmitted in the incoming time slot Tj over the common communication link. The second amount of data is determined based on an available data amount that is provided to the data streams for the incoming time slot Tj and the first amounts of data in the data streams according to priority levels of the data streams.
[0025] At block S14, the second amount of data in each of the data streams is transmitted during the incoming time slot Tj over the common communication link according to priority levels of the data streams.
[0026] In the above method, each of the data streams is applied with a delay that is no larger than a maximum delay value of that data stream, and data of each of the data streams that will reach the delay before the end of the next time slot Tj+i following the incoming time slot Tj is transmitted over a common communication link during the incoming time slot Tj according to orders from high to low priority levels of the data streams, so that delay requirements of the data streams are fully fulfilled.
[0027] The available data amount may be determined based on length of the incoming time slot Tj and a maximum serving rate provided to the data streams in the incoming time slot Tj. The maximum serving rate may be a maximum data amount per unit time provided to the data streams in the incoming time slot Tj. A duration of the incoming time slot Tj may be equal to a most stringent delay bound, which is no larger than the smallest value of the maximum delay values of the data streams.
[0028] A delay applied to one of the data streams may be a multiple of the most stringent delay bound. For example, the delay applied to a data stream may be calculated according to the following equation: di=Floor(Di/d)*d,
where di is the delay applied to the ith data stream, Di is the maximum delay value of the ith data stream, d is the most stringent delay bound, and Floor(Di/d) is the largest integer no larger than Di/d.
[0029] Or, the delay applied to a data stream may be calculated by the following equation:
d,=2J*d,
where di is the delay applied to the ith data stream, d is the most stringent delay bound, and j is an integer which causes 2J*d to be closest to and no larger than the maximum delay value of the ith data stream.
[0030] The calculation of the second amount of data in the block S12 may include calculating, based on the available data amount and the first amounts of data in the data streams according to priority levels of the data streams, a third amount of data amount in each of the data streams, wherein the third amount of data is a maximum amount of data in each of the data streams that can be transmitted in the incoming time slot Tj over the common communication link, and calculating, based on the first data amount and the third data amount of each of the data streams for the incoming time slot Tj, the second data amount of each of the data streams for the incoming time slot Tj.
[0031] Further, before the block S 10, the method may include obtaining a delay offset of at least one data stream of the data streams based on that a leftover capacity in each time slot is substantially the same, and calculating an adjusted delay for each of the at least one data stream based on the delay applied to each of the at least one data stream and the obtained delay offset of each of the at least one data stream, and the block S 10 may further include calculating an adjusted first amount of data in each of the at least one data stream for the incoming time slot Tj, which is an amount of data of each of the at least one data stream that will reach the adjusted delay before the end of a next time slot Tj+i flowing the incoming time slot Tj, so that a larger contiguous leftover bandwidth is created and occurrence of bandwidth shortage in some time slots in the future is avoided.
[0032] In addition to the blocks from S 10 to SI 4, the method may further include, if the sum of the first amounts of data in the data streams for the incoming time slot is less than the available data amount for the incoming time slot, and after the transmission is finished, sending, over the common communication link during the incoming time slot Tj, data of at least one data stream of the plurality of data streams that doesn't reach its applied delay before the end of the next time slot Tj+i following the incoming time slot Tj; or sending, over the common communication link, data of at least one elastic data stream, whose delay is not as critical as that of other data streams, so that bandwidth is used well while delay requirements of the data streams are guaranteed.
[0033] In addition to the blocks from S 10 to S 14, the method may further include: when an emergency data stream arrives for transmission in the incoming time slot Tj, stopping transmitting of data of a current data stream and sending data of the emergency data stream over the common communication link in the incoming time slot Tj, so that the delay requirement of the emergency data stream is guaranteed.
[0034] The method may further include: after the transmission of the data of the emergency data stream is finished, if amount of data that has been transmitted in the incoming time slot Tj is less than the available data amount, continuing to send during the incoming time slot Tj data of the current data stream and data of the data streams whose priority levels are lower than that of the current data stream according to priority levels of the data streams, so that the delay requirements of the data streams are guaranteed at full steam while the delay requirement of the emergency data stream is guaranteed.
[0035] The method may further include, if not all data of the emergency data stream has been transmitted in the incoming time slot Tj, executing the blocks from S10 to S14 for each time slot following the incoming time slot Tj for the emergency data stream and the data streams, until all data of the emergency data stream has been transmitted, the priority level of the emergency data stream being set to be higher than those of the data streams, so that the delay requirement of the emergency data stream is guaranteed at full steam.
[0036] In addition to the blocks from S10 to S14, the method may further include, when a new data stream arrives in the incoming time slot and the new data stream has data that will reach a maximum delay applied to the new data stream before the end of the next time slot following the incoming time slot, determining whether transmitting of data of a high priority data stream of the data streams whose priority level is higher than that of the new data stream data is finished; if not, computing a first amount of data in the new data stream for the incoming time slot; re-determining, based on leftover data amount that is provided to the data streams in the incoming time slot when the transmitting of data of the high priority data stream in the incoming time slot is finished and the first amount of data in each of the high priority data streams, the new data stream and low priority data streams of the data streams for the incoming time slot, the second amount of data in each of the new data stream and the low priority data streams for the incoming time slot according to priority levels of the new data stream and the low priority data streams, wherein the low priority data streams are those data streams whose priority levels are lower than that of the new data stream; and sending, during the incoming time slot, data of the new data stream and the low priority data streams over the common communication link based on the re-determined second amount of data in each of the new data stream and the low priority data streams for the incoming time slot according to the priority levels of the new data stream and the low priority data streams, after the transmission of data of the high priority data stream in the incoming time slot is finished, so that the delay requirement of the new data stream is guaranteed. [0037] The method may further include stopping transmitting of data of a current data stream of the data streams whose data is being transmitted over the common communication link in the incoming time slot, if the detecting is confirmative; and sending data of the new data stream over the common communication link in the incoming time slot.
[0038] The method may further include continuing to send during the incoming time slot data of at least one data stream of the current data stream and low priority level data streams of the data streams whose priority levels are lower than that of the current data stream according to priority levels of the at least one data stream, after the transmission of data of the new data stream in the incoming time slot is finished, if amount of data that has been transmitted in the incoming time slot after the transmission of data of the new data stream in the incoming time slot is finished is less than the available data amount.
[0039] The method may further include executing the blocks from S10 to S 14 for each time slot following the incoming time slot for the new data stream and the data streams.
[0040] In communication networks, data is generally transmitted in manner of packets and a packet includes a constant amount of data. For purpose of explanation, it is assumed below that data is transmitted in manner of packets, and the data amount is represented by the number of packets.
[0041] Fig. 2 is a flowchart illustrating a process for scheduling a transmission of data streams over a common communication link according to an implementation of the method of the present invention. The process may be executed in a communication node such as a base station, a radio network controller (R C), a switch or a router. It is assumed that there are n data streams Y; (i=l, 2,..., n) that need to be transmitted over the common communication link. Each of the data streams has a maximum delay value Di, and orders from high to low priority levels of the n data streams are Yi>Y2>.. ·≥Υη·
[0042] As shown in Fig. 2, at a step SI 10, the most stringent delay bound Dmin is determined. Dmin is a value that is no larger than the smallest value of the maximum delay values DI, D2,..., Dn-i and Dn of the n data streams.
[0043] At a step SI 20, for each data stream Yi a delay di is calculated, di is an actual delay to be applied to the data stream Yi and the calculation is based on the most stringent delay bound Dmin and the maximum delay value Di of the data stream Yi. Specifically,
=\c- * r> where ki is an integer and
Figure imgf000011_0001
, Floor ( Di/Dmin) is the largest integer that is not larger than Di/Dmin, and mi is the largest integer such that 2mi*r> < =D
[0044] At a step S 130, the duration of each time slot Tj =l, 2,...) for transmitting data is set to be equal to Dmin.
[0045] Before each time slot Tj comes, the following steps S 140-S170 are executed.
[0046] At the step S 140, the maximum serving rate R used for the n data streams is determined. In this implementation of the present invention, the maximum serving rate R is represented by maximum number of packets being transmitted per unit time.
[0047] At the step SI 50, data stored in a buffer for each data stream Yi are checked to determine the number of packets PRi of each data stream Yi that will reach the delay di before the end of a next time slot Tj+i following the incoming time slot Tj.
[0048] At the step SI 60, the maximum number of packets Pimax of each data stream Yi that can be transmitted in the incoming time slot Tj is determined based on the Dmin, the R and the PRi according to orders from high to low priority levels of the n data streams. Specifically,
Figure imgf000011_0002
Pimax -Min ( Pimax> PRi ) , P3max =
P2max "Min ( P2max, PR2 ) , P4max = P3max "Min ( P3max> PR3 ) ,..., and Pnmax = Pn-lmax "Min
( Pn-imax> PRn-i ) . Min ( ) is an operator of taking a minimum value from all values inside the brackets, and R*Dmm is an available data amount that is provided to the n data streams in the incoming time slot Tj.
[0049] At the step SI 70, the number of packets pi of each data stream Yi that will actually be transmitted in the incoming time slot Tj is calculated based on the PRi and the Pimax. Specifically, pi= Min ( Pimax > PRi )» p2= Min ( P2max> PR2 ) > p3= Min ( P3max>
PR3 ) , ..., pn= Min ( Pnmax, PRn) .
[0050] During each time slot Tj, the following step SI 80 is executed. [0051] At the step S I 80, the n data streams are scheduled for transmission over the common communication link during the incoming time slot Tj according to orders from high to low priority levels of the n data streams, in which pi packets of each data stream Yi that will reach the delay di before the end of the next time slot Tj+i are transmitted.
[0052] Specifically, if the common communication link can transmit packets of only one data stream at a time, the pi packets of each data stream Yi are transmitted during the incoming time slot Tj according to orders from high to low priority levels of the n data streams, i.e., the pi packets of the data stream Yi are transmitted first, the p2 packets of the data stream Y2 are then transmitted after the pi packets of the data stream Yl s the p3 packets of the data stream Y3 are next transmitted after the p2 packets of the data stream Y2, ... , and so on.
[0053] If the common communication link can transmit packets of two or more data streams at a time, the packets of every two or more data streams are transmitted at a time during the incoming time slot Tj according to orders from high to low priority levels of the n data streams. For example, if the common communication link can transmit packets of two data streams at a time, pi and p2 packets of the data streams Yi and Y2 are first transmitted during the incoming time slot Tj, p3 and p4 packets of the data streams Y3 and Y4 are then transmitted after the transmission of the pi and p2 packets of the data streams Yi and Y2 is finished, and so forth.
[0054] In the method shown in Fig. 2, each of the n data streams is applied with a delay that is no larger than the maximum delay value of that data stream and data of each of the n data streams that will reach the applied delay before the end of the next time slot Tj+i following the incoming time slot Tj is transmitted over the common communication link during the incoming time slot Tj according to orders from high to low priority levels of the n data streams, so delay requirements of the n data streams are guaranteed at full steam.
[0055] An illustrative example for scheduling transmission of data streams over a common communication link according to an implementation of the present invention is shown in Fig. 3A. In the example shown in Fig. 3A, four data streams Yi-Y4 are to be transmitted over a common communication link, and orders from high to low priority levels of the four data streams are Yi>= Y2>= Y3>= Y4. The most stringent delay bound is Dmin and the duration of each time slot is equal to Dmin. The delay di-d4 applied respectively to the data streams Yi-Y4 are
Figure imgf000013_0001
and d4=24*Dmm. Packets of the data stream Yi are transmitted during each time slot. Packets of the data stream Y2 are transmitted during each of time slots l s21 (1=1, 2, 3,...)· Packets of the data stream Y3 are transmitted during each of time slots 1*22 (1=1, 2, 3,...)· Packets of the data stream Y4 are transmitted during each of time slots 1*24 (1=1, 2, 3,...)·
[0056] An illustrative implementation of the method for scheduling transmission of data streams over a common communication link with a token bucket algorithm is shown in Fig. 3B. As shown in Fig. 3B, after the number of packets pi of each data stream Yi that will actually be transmitted in the incoming time slot Tj is obtained, the token bucket of each data stream Yi is placed into pi tokens for the incoming time slot Tj and then packets stored in a queue of each data stream Yi are scheduled during the incoming time slot Tj to transmit over the common communication link based on pi tokens for each data stream Yi according to orders from high to low priority levels of the n data streams.
[0057] It is evident that since the maximum number of packets Pimax of each data stream Yi is calculated according to orders from high to low priority levels of the n data streams, when high priority data streams of the n data streams have too many packets that will reach their delays before the end of the next time slot Tj+i, it is possible that packets of low priority data streams are not transmitted during the incoming time slot Tj. For example, assuming that PRi =0.4* R*Dmm, PR2 =0.3* R*Dmm, and PR3 =0.3* R*Dmm, P¾+ PR2+ PR3= R*Dmm. In this case, Pimax = R*Dmm,
P2max 0.6*R*Dmm, P3max 0.3 *R*Dmm, and P4max P5max P6max · · · Pnmax 0, and thus pi = 0.4*R*Dmin, p2 = 0.3*R*Dmin, p3 = 0.3*R*Dmin, and p4 = p5 = p6 =...=pn =0. That is, packets of the data streams from Y4 to Yn are not transmitted during the incoming time slot Tj even if the data streams from Y4 to Yn may have packets that will reach the delay before the end of the next time slot Tj+1. The packets that should be transmitted but are not transmitted during the incoming time slot Tj may be discarded at the end of the incoming time slot Tj. Or, the packets that should be transmitted but are not transmitted during the incoming time slot Tj are discarded if they are not transmitted in the next time slot Tj+1.
[0058] As a first modification of the present invention, those skilled in the art will understand that if the sum from i to pn is less than the maximum number of packets R* Dmin that can be transmitted in the incoming time slot Tj, it is possible that additional packets of at least one data stream of the n data streams that does not reach its delay before the end of the next time slot Tj+i or additional packets of at least one elastic data stream whose delay is not as critical as the n data streams can be transmitted during the incoming time slot Tj after all the data packets pi to pn are transmitted in the incoming time slot Tj, and the maximum amount of additional packets that can be transmitted during the incoming time slot Tj is equal to a difference between R* Dmin and the sum from pi to pn, so that bandwidth is used well while delay requirements of the n data streams are guaranteed and occurrence of bandwidth shortage in some time slots in the future is avoided.
[0059] Further, it is obvious that the maximum serving rate R used for the n data streams may be variable with time slots or constant for each time slot. If the maximum serving rate R used for the n data streams is variable with the time slots, it is necessary to determine the maximum serving rate R for each time slot. If the maximum serving rate R used for the n data streams is the same and constant for each time slot, it is not necessary to determine the maximum serving rate R once for each time slot, and the maximum serving rate R may be only determined once for all time slots, so that operation load required for the method is reduced.
[0060] As a second modification of the present invention, those skilled in the art will understand that the number of packets pi of each data stream Yi that will actually be transmitted in the incoming time slot Tj may also be calculated directly based on the Dmin, the R and the PR; according to orders from high to low priority levels of the n data streams. Specifically, pi= Min ( R^Dmin, PRi ) , p2= Min ( R*Dmin- p1 ? PR2 ) , p3= Min ( R*Dmin- p p2, PR3 ), pn= Min ( R*Dmin- p p2-..., pn-1 » PRn) , so that operation load required for the method is reduced.
[0061] Further, as a third modification of the present invention, those skilled in the art will understand that the delay actually applied to at least one of the n data streams may be adjusted to make the transmitting time of the data of at least one data stream to be advanced, so that leftover capacities in each time slot are substantially the same to create a larger contiguous leftover bandwidth and avoid occurrence of bandwidth shortage in some time slots in the future. Specifically, delay offset DOg (g=l,2,...,zz, 1<=ζζ<=η) of each of zz data streams of the n data streams is obtained based on that leftover capacities in each time slot are substantially the same after the above step S120, preferably the delay offset DOg of the data stream Yg being multiple of the most stringent delay bound Dmin and less than the maximum delay value Dg of the data stream Yg; adjusted delay d'g of each of the zz data streams that is actually applied to each of the zz data streams is calculated before the above step SI 50 based on the delay dg and the delay offset DOg of each of the zz data streams, i.e., d'g = dg - DOg; and at the above step SI 50, data stored in the buffer for each of the zz data streams are checked to calculate the number of packets PRg of each of the zz data streams that will reach the adjusted delay d'g before the end of the next time slot Tj+i following the incoming time slot Tj.
[0062] Another illustrative example for scheduling transmission of data streams over a common communication link according to the third modification of the present invention is shown in Fig. 3C. As shown in Fig. 3C, compared to Fig. 3A, the delay actually applied to the data streams Y3 and Y4 is adjusted based on that the leftover capacities in each time slot are substantially the same. It is apparent from Fig. 3C that delay offset D03 of the data streamY3 is Dmin and delay offset D04 of the data stream Y3 is 15*Dmin. The adjusted delay d'3 of the data stream Y3 is d'3 = d3 - D03=22* Dmin - Dmin, and the adjusted delay d'4 of the data stream Y4 is d'4 = d4 - D04=24* Dmin - * Dmin- It can be seen from Fig. 3C that compared to Fig. 3A, the leftover capacity in each time slot is substantially the same, and thus larger contiguous leftover bandwidth is created and occurrence of bandwidth shortage in some time slots in the future is avoided.
[0063] Fig. 4 is a flowchart illustrating a method for scheduling transmission of data streams over a common communication link according to another implementation of the present invention. The method may be executed in a communication node such as a base station, a radio network controller (RNC), a switch or a router. This implementation deals with such case where an emergency data stream EM with maximum delay value DEM arrives in a time slot Tp when packets of the n data streams are being transmitted over the common communication link during the time slot Tp.
[0064] At a step S200, it is judged whether or not the emergency data stream EM has any packets that will reach the maximum delay value DEM before the end of the next time slot Tp+i following the time slot Tp.
[0065] If the emergency data stream EM has at least one packet that will reach the maximum delay value DEM before the end of the next time slot Tp+1, at a step S210, the number of packets PREM of the emergency data stream EM that will reach the maximum delay value DEM before the end of the time slot Tp+i is determined by detecting the packets stored in the buffer for the emergency data stream EM.
[0066] At a step S220, transmission of packets of a current data stream Ys (l<=s<=n) during the time slot Tp is stopped. It is assumed that the current data stream Ys is a data stream whose data packets are being transmitted over the common communication link during the time slot Tp and transmission of data packets of the data streams from Yi to Ys-i (whose priority levels are higher than that of the current data stream Ys) during the time slot Tp has been finished.
[0067] At a step S230, PEM packets of the emergency data stream EM that will reach the maximum delay value DEM before the end of the next time slot Tp+i are transmitted over the common communication link during the time slot Tp. PEM = Min (Ps max-pals, PREM), and pals is the amount of data packets of the current data stream Ys that has been transmitted in the time slot Tp.
[0068] At a step S240, transmission of pph (h=s, s+1 , s+2, ... ,n) packets of each of the data streams from Ys to Yn that will reach their delays ds to dn, respectively, before the end of the next time slot Tp+i over the common communication link during the time slot Tp are scheduled according to orders from high to low priority levels of the data streams from Ys to Yn, after the PEM packets of the emergency data stream EM are transmitted, if the number of packets that have been transmitted in the time slot Tp after the PEM packets of the emergency data stream EM are transmitted in the time slot Tp is less than the maximum number of packets R*Dmin that can be transmitted in the time slot Tp. Specifically, pps = Min (Ps max - pals - pEM, PRS - pals), pps+i = Min (Ps max - pals - PEM - pps, PRs+i), ppS+2 = Min (Ps max - pals - pEM - pps - pps+i, PRs+2), ... , ppn = Min (Ps max - pals - PEM - pps - pps+i - ... - ppn-i , PRO-
[0069] At a step S250, if not all packets of the emergency data stream EM have been transmitted in the time slot Tp or if the emergency data stream EM has at least one packet that will reach the maximum delay value DEM before the end of the next time slot Tp+i, the emergency data stream EM is set to have the highest priority level than the n data streams, and for these data streams including the emergency data stream EM and the n data streams, the above steps S110-S130 are executed for next time slot Tp+i following the time slot Tp and the above steps S140-S180 are executed repeatedly for each time slot following the time slot Tp, until all packets of the emergency data stream EM are transmitted.
[0070] In the method shown in Fig. 4, when the emergency data stream EM arrives in the time slot Tp, if the emergency data stream EM has a packet that will reach the maximum delay value DEM before the end of the next time slot Tp+i following the time slot Tp, the packet of the emergency data stream EM are transmitted immediately during the time slot Tp, and compared to packets of the n data streams, packets of the emergency data stream EM are transmitted first during each time slot after the time slot Tp until all packets of the emergency data stream EM are transmitted, so the delay requirement of the emergency data stream EM is guaranteed.
[0071] Further, as a fourth modification of the present invention, those skilled in the art will understand that packets of the emergency data stream EM that don't reach its delay before the end of the time slot Te+i may also be transmitted over the common communication link during the time slot Te after transmitting of the packets of the n data streams in the time slot Te has been finished, if the emergency data stream EM doesn't have any packet that will reach its delay before the end of the time slot Te+i and the maximum number of packets that can be transmitted over the common communication link in the time slot Te is larger than the sum of the amount of packets of the n data streams that are transmitted actually in the time slot Te, so that bandwidth is used well while the delay requirements of the emergency data stream is guaranteed and occurrence of bandwidth shortage in some time slots in the future is avoided.
[0072] Fig. 5 is a flowchart illustrating a method for scheduling transmission of data streams over a common communication link according to a further implementation of the present invention. The method may be executed in the communication node such as a base station, a radio network controller (R C), a switch or a router. This implementation deals with a case where a new data stream Ynew with a maximum delay value DNEW arrives in a time slot Tv when packets of the n data streams are being transmitted over the common communication link during the time slot Tv. It is assumed that priority level of the new data stream Ynew is lower than that of the data stream Ym of the n data streams and higher than that that of the data stream Ym+i of the n data streams.
[0073] At a step S300, it is judged whether or not the new data stream Ynew has any packets that will reach the delay Dnew before the end of the next time slot Tv+i following the time slot Tv.
[0074] If the new data stream Ynew has no packet that will reach the delay Dnew before the end of the time slot Tv+i , at a step S310, for the n+1 data streams including the new data stream Ynew and the n data streams, the above steps S110-S130 are executed for a next time slot Tv+i following the time slot Tv and the above steps S140-S180 are executed repeatedly for each time slot following the time slot Tv.
[0075] If the new data stream Ynew has at least one packet that will reach the delay Dnew before the end of the time slot Tv+i, at a step S320, packets stored in the buffer for the new data stream Ynew are checked to calculate the number of packets PRnew of the new data stream Ynew that will reach the delay Dnew before the end of the time slot Tv+i .
[0076] At a step S330, it is determined whether transmitting of packets of the data stream Ym in the time slot Tv has been finished.
[0077] If the transmitting of packets of the data stream Ym in the time slot Tv has not been finished, at a step S340, the maximum number of packets P'z max of each of the new data stream Ynew and the data streams from Ym+i to Yn can be transmitted in the time slot Tv is re-calculated based on Pm max, PRm, PRnew, P m+i PRn according to orders from high to low priority levels of the new data stream Ynew and the data streams from Ym+i to Y„. Specifically, P'new max = Pm max - Min (Pm max, PRm), P'm+i max
P new max Min (P new max, PRnew), P m+2 max P m+1 max Min (P m+j max, PRm+j) , . . . , P nmax P n-lmax Min (P n-lmax» PRn-ΐ)·
[0078] At a step S350, the number of packets p'z of each of the new data stream Ynew and the data streams from Ym+i to Yn that will actually be transmitted in the time slot Tv is re-determined based on PRm, PRnew, PRm+i , . . . , PRn and P'new max, P'm+i max,
P'm+2 max, - · · , P'nmax- Specifically, p'new= Min ( P'new max' PRnew) ' p'm+l= Min( P 'm+i max, PRm+l ) , p'm+2= Min ( P'm+2 max' PRm+2 ) ' ..., p'n= Min ( P'nmax' PRn) . [0079] At step S360, the new data stream Ynew and the data streams from Ym+i to Yn are scheduled during the time slot Tv according to orders from high to low priority levels of the new data stream Ynew and the data streams from Ym+i to Yn, to transmit over the common communication link p'z packets of each of the new data stream Ynew and the data streams from Ym+i to Yn that will reach the respective delay before the end of the time slot Tv+i, after the transmission of packets of the data stream Ym in the time slot Tv has been finished.
[0080] On the other hand, if the transmission of packets of the data stream Ym in the time slot Tv has been finished, at a step S370, a current data stream Ya of the data streams from Ym+i to Yn whose packets are being transmitted during the time slot Tv is determined.
[0081] At a step S380, the transmission of packets of the current data stream Ya in the time slot Tv is stopped and the number of packets pai of the current data stream Ya that have been transmitted to in the time slot Tv is calculated.
[0082] At a step S390, p"new packets of the new data stream Ynew are transmitted over the common communication link in the time slot Tv. Specifically, p" new =Min
(Pa-1 max" Pal? PR-new)-
[0083] At a step S400, the data streams from Ya to Yn are scheduled in the time slot Tv according to orders from high to low priority levels of the data streams from Ya to Yn, to transmit over the common communication link p"i packets of each of the data streams from Ya to Yn, after the transmission of the packets of the new data stream Ynew has been finished in the time slot Tv, if the amount of packets that have been transmitted in the time slot Tv after the packets of the new data stream are transmitted in the time slot Tv is less than the maximum number of packets R*Dmin that can be transmitted in the time slot Tv. Specifically, p"a = Min (Pa-i max- pai- p"new,
PRa-Pal), P"a+1 = Min (Pa-i max- pal- p"„ew-p"a, PR-a+l), P"a+2 = Min (Pa-i max- pai- P"new-P"a-P"a+1 , PR-a+2), . . . , p"n = Min (Pa-i max- pai- p"new-p"a-p"a+l-. · ·" P"n-1 , PRn) »
[0084] In the method shown in Fig. 5, when the new data stream Ynew arrives in the time slot Tv, packets of the new data stream Ynew are transmitted during the time slot Tv or each time slot after the time slot Tv according to order of priority level of the new data stream Ynew with respect to priority levels of the n data streams, so the delay requirement of the new data stream Ynew is guaranteed at full steam. [0085] Further, as a fifth modification of the present invention, those skilled in the art will understand that packets of the new data stream Ynew is transmitted during the time slot Tv only after transmitting of corresponding packets of the data streams from Yi to Yn in the time slot Tv has been finished when the sum from pi to pn for the time slot Tv is less than the maximum number of packets R* Dmin that can be transmitted in the time slot Tv. Specifically, the maximum number of packets Pnew max of the new data stream Ynew that can be transmitted in the time slot Tv is first calculated as Pnew max = Pn max -Min (Pn max, PRn), the number of packets pnew of the new data stream Ynew that can actually be transmitted in the time slot Tv is then calculated as pnew = Min (Pnew max, PRnew), and pnew packets of the new data stream Ynew are transmitted finally during the time slot Tv after transmitting of packets of the data stream Yn during the time slot Tv is scheduled, so that the delay requirements of the n data streams are guaranteed first.
[0086] It is evident that when a data stream of the n data stream ends in a time slot Tee, for the remainder n-1 data streams, the above steps S110-S130 are executed for a next time slot Tee+i following the time slot Tee and the above steps S140-S180 are executed repeatedly for each time slot after the time slot Tee.
[0087] Based on the descriptions of the preceding embodiments, those skilled in the art may understand that the present invention may be implemented by hardware, or by software running on a hardware platform. The technical solution of the present invention may be embodied by a software program product which comprises a nonvolatile storage medium storing program codes thereon for executing the method provided in the embodiments of the present invention by a processing device (such as a personal computer, a server, or a network device). The storage medium can be, for example, a Compact Disk Read-Only Memory (CD-ROM), a USB disk, or a mobile hard disk.
[0088] Fig. 6 illustrates an apparatus 400 for scheduling transmission of a plurality of data streams over a common communication link according to an embodiment of the present invention. At least a portion of the apparatus 400 may be located at a communication node such as a base station, a radio network controller (RNC), a switch or a router.
[0089] The apparatus 400 includes a receiver 410, a processor 420 and a transmitter 430.
[0090] The receiver 410 comprises a plurality of receiving units 410i, 4102,„„ , 410n, each configured to receive one of a plurality of data streams from a data source.
[0091] The processor 420 is configured to:
for each of the data streams, determine a first amount of data in the data stream for an incoming time slot, wherein the first amount of data is an amount of data in the data stream that will reach a delay before the end of a time slot following the incoming time slot, and wherein the delay applied to the data stream is no larger than a maximum delay value of the data stream; and
for each of the data streams, determine, based on an available data amount that is provided to the data streams for the incoming time slot and the first amounts of data in the data streams for the incoming time slot according to priority levels of the data streams, a second amount of data in the data stream, wherein the second amount of data is an amount of data in the data stream that will actually be transmitted in the incoming time slot.
[0092] The transmitter 430 is configured to transmit, during the incoming time slot, the second amount of data of the plurality of data streams over the common communication link according to the priority levels of the data streams.
[0093] Preferably, the processor 420 may further be configured to determine the delay applied to each of the data streams as a multiple of a most stringent delay bound, wherein the most stringent delay bound is no larger than the smallest value of the maximum delay values of the data streams.
[0094] In an implementation of the present invention, the processor 420 may determine the first amount of data in each of the data streams for an incoming time slot in a manner as shown in the above step SI 50, determine the delay applied to each of the data streams in a manner as shown in the above step SI 20, and determine the most stringent delay bound as shown in the above step SI 10.
[0095] In an implementation of the present invention, the processor 420 may determine the second amount of data in each of the data streams for the incoming time slot in a manner as shown in the above steps SI 60 and SI 70. In another implementation of the present invention, the processor 420 may determine the second amount of data in each of the data streams for the incoming time slot as described in the above second modification of the present invention.
[0096] In the apparatus 400, each of the multiple data streams is applied a delay that is not larger than a maximum delay value of that data stream and data of each of the multiple data streams that will reach the applied delay before the end of a next time slot following an incoming time slot is transmitted over a common communication link during the incoming time slot according to orders from high to low priority levels of the multiple data streams, so delay requirements of the multiple data streams are guaranteed at full steam.
[0097] The processor 420 may further be configured to calculate, based on the available data amount and the first amount of data in each of the data streams for the incoming time slot according to the priority levels of the data streams, a third amount of data in each of the data streams for the incoming time slot, which is a maximum amount of data of each of the data streams that can be transmitted in the incoming time slot over the common communication link, and calculate, based on the first amount of data and the third amount of data in each of the data streams for the incoming time slot, the second amount of data amount in each of the data streams for the incoming time slot. The available data amount may be determined based on the duration of the time slot and a maximum serving rate provided to the data streams in the incoming time slot. The maximum serving rate may be maximum data amount per unit time provided to the data streams in the incoming time slot. In an implementation of the present invention, the processor 420 may calculate the third amount of data and the second amount of data in each of the data streams for the incoming time slot in a manner as shown in the steps SI 60 and SI 70.
[0098] The processor 420 may further be configured to obtain a delay offset of each of at least one data stream of the data streams based on that leftover capacities in each time slot is substantially the same, and calculate an adjusted delay for each of the at least one data stream based on the delay applied to each of the at least one data stream and the obtained delay offset of each of the at least one data stream, and the processor 420 is further configured to calculate the adjusted first amount of data in each of the at least one data stream for the incoming time slot, which is an amount of data in each of the at least one data stream that will reach the adjusted delay before the end of the next time slot, so that a larger contiguous leftover bandwidth is created and occurrence of bandwidth shortage in some time slots in the future is avoided. In an implementation of the present invention, the processor may determine the delay offset and calculate the adjusted delay in a manner as shown in the above third modification of the present invention.
[0099] The transmitter 430 may further be configured to send, over the common communication link during the incoming time slot, data of at least one data stream of the data streams that doesn't reach the delay applied to the data stream before the end of the next time slot following the incoming time slot or send, over the common communication link during the incoming time slot, data of at least one elastic data stream whose delay is not as critical as the data streams, after the transmission of the second amounts of data of the data streams is finished, if sum of the first data amount of the data streams for the time slot is less than the available data amount, so that bandwidth is used well while delay requirements of the data streams are guaranteed. In an implementation of the present invention, the transmitter 430 may send data in a manner as shown in the above first modification of the present invention.
[00100] When an emergency data stream arrives in the incoming time slot, the transmitter 430 may be further configured to stop, transmitting of data of a current data stream of the data streams in the incoming time slot and send data of the emergency data stream over the common communication link in the incoming time slot, so that the delay requirement of the emergency data stream is guaranteed. In an implementation of the present invention, the transmitter 430 may send data of the emergency data stream in a manner as shown in the above steps S200-S230.
[00101] The transmitter 430 may further be configured to continue to send, during the incoming time slot, data of at least one data stream of the current data stream and data streams of the data streams whose priority levels are lower than that of the current data stream according to priority levels of the at least one data stream, after the transmission of data of the emergency data stream in the incoming time slot is finished, if the amount of data that has been transmitted in the incoming time slot after the transmission of data of the emergency data stream in the incoming time slot is finished is less than the available data amount, so that the delay requirements of the data streams are guaranteed at full steam while the delay requirement of the emergency data stream is guaranteed. In an implementation of the present invention, the transmitter 430 may continue to send data in a manner as shown in the above step [00102] The transmitter 430 may further be configured to, if not all data of the emergency data stream has been transmitted in the incoming time slot, transmit in each time slot following the incoming time slot data in the emergency data stream and the data streams in the same manner as for the incoming time slot, until all data of the emergency data stream is transmitted, wherein the priority level of the emergency data stream is set to be higher than that of the data streams, so that the delay requirement of the emergency data stream is guaranteed at full steam.
[00103] The receiver 410 may further be configured to receive a new data stream in the incoming time slot, and the new data stream may have data that will reach a maximum delay within the next time slot following the incoming time slot. The processor 420 may further be configured to calculate the first amount of data of the new data stream for the incoming time slot, if the transmission of data of the high priority data stream whose priority level is higher than that of the new data stream has not been finished. The processor 420 may further be configured to re-determine, based on leftover data amount that is provided to the data streams in the incoming time slot when the transmission of data of the high priority data stream in the incoming time slot is finished and the first data amount of each of the high priority data stream, the new data stream and low priority data streams of the data streams for the incoming time slot, the second data amount of each of the new data stream and the low priority data streams for the incoming time slot according to priority levels of the new data stream and the low priority data streams, the low priority data streams being those data streams whose priority levels are lower than that of the new data stream. The transmitter 430 may further be configured to send, during the incoming time slot, data of the new data stream and the low priority data streams over the common communication link based on the re-determined second amounts of data in each of the new data stream and the low priority data streams for the incoming time slot according to the priority levels of the new data stream and the low priority data streams, after the transmission of data of the high priority data stream is finished. Thus, the delay requirement of the new data stream is guaranteed at full steam. In an implementation of the present invention, the processor 420 may calculate the first amount of data in the new data stream in a manner as shown in the above step S320, the processor 420 may re-determine the first amount of data in a manner as shown in the steps S340 and S350, and the transmitter 430 may send data in a manner as shown in the above step S360.
[00104] The transmitter 430 may further be configured to stop, if the transmission of data of the high priority data stream has been finished, transmission of data of a current data stream of the data streams whose data is being transmitted over the common communication link in the incoming time slot, and send data of the new data stream over the common communication link in the incoming time slot. In an implementation of the present invention, the transmitter 430 may stop transmitting of data and send data of the new data stream in a manner as shown in the steps S370-S390.
[00105] The transmitter 430 may further be configured to continue to send during the incoming time slot data of at least one data stream of the current data stream and low priority level data streams of the data streams whose priority levels are lower than that of the current data stream according to priority levels of the at least one data stream, after the transmission of data of the new data stream in the incoming time slot is finished, if the amount of data that has been transmitted in the incoming time slot after the transmission of data of the new data stream in the incoming time slot is finished is less than the available data amount. In an implementation of the present invention, the transmitter 430 may continue to send data in a manner as shown in the step S400.
[00106] The processor 420 and the transmitter 430 may further be configured to execute, respectively, the calculating, the determining and the transmission for each time slot following the incoming time slot for the new data stream and the data streams.
[00107] The apparatus 400 may further comprise a non-transient memory device 440, configured to store a computer program for executing a process according to the method of the present invention. The memory device may further be configure to store data of the plurality of data streams that are scheduled to be transmitted in the incoming time slot and/or time slots following the incoming time slot.
[00108] A communication node may be made based on the apparatus as shown in Fig. 6. The communication node may be a base station, a radio network controller (R C), a switch or a router. [00109] What has been described above includes examples of one or more embodiments. It is, of course, not possible to describe every conceivable combination of components or methodologies for purpose of describing the aforementioned embodiments, but one of ordinary skill in the art may recognize that many further combinations and permutations of various embodiments are possible. Accordingly, the described embodiments are intended to embrace all such alterations, modifications and variations that fall before the end of the spirit and scope of the appended claims. Furthermore, to the extent that the term "includes" is used in either the detailed description or the claims, such term is intended to be inclusive in a manner similar to the term "comprising" as "comprising" is interpreted when employed as a transitional word in a claim.

Claims

CLAIMS What is claimed is:
1. A method for scheduling a transmission of a plurality of data streams over a common communication link, comprising:
for each of the data streams, determining a first amount of data in the data stream for an incoming time slot, wherein the first amount of data is an amount of data in the data stream that will reach a delay before the end of a time slot following the incoming time slot, and wherein the delay applied to the data stream is no larger than a maximum delay value of the data stream;
for each of the data streams, determining, based on an available data amount that is provided to the data streams for the incoming time slot and the first amounts of data in the data streams for the incoming time slot according to priority levels of the data streams, a second amount of data in the data stream, wherein the second amount of data is an amount of data in the data stream that will actually be transmitted in the incoming time slot; and
transmitting, during the incoming time slot, the second amounts of data in the plurality of data streams over the common communication link according to the priority levels of the data streams.
2. The method according to claim 1, wherein determining the second amount of data comprises:
calculating, based on the available data amount and the first amount of data in each of the data streams for the incoming time slot according to the priority levels of the data streams, a third amount of data in each of the data streams, wherein the third amount of data is a maximum amount of data in each of the data streams that can be transmitted in the incoming time slot over the common communication link; and
calculating, based on the first amount of data and the third amount of data in each of the data streams for the incoming time slot, the second amount of data in each of the data streams for the incoming time slot.
3. The method according to claim 1, wherein the available data amount is determined based on a duration of the time slot and a maximum serving rate provided to the data streams in the incoming time slot.
4. The method according to claim 1, wherein the delay applied to a data stream is a multiple of a most stringent delay bound of the data streams, and the most stringent delay bound is no larger than the smallest value of the maximum delay values of the data streams.
5. The method according to claim 1, wherein before determining the first amount of data for each of the data streams, the method further comprises:
determining a delay offset of each of at least one data stream of the data streams; and
calculating an adjusted delay of each of the at least one data stream based on the delay applied to each of the at least one data stream and the obtained delay offset of each of the at least one data stream, wherein after the adjusted delay is applied to each of the at least one data stream, leftover capacity in each time slot is substantially a constant,
and wherein calculating the first amount of data further comprises:
calculating an adjusted first amount of data in each of the at least one data stream for the incoming time slot, wherein the adjusted first amount of data is an amount of data of each of the at least one data stream that will reach the adjusted delay before the end of the next time slot.
6. The method according to claim 3, wherein the duration of the time slot is equal to the most stringent delay bound.
7. The method according to claim 1, wherein the delay applied to a data stream is calculated according to the following equation:
d Floor^Af d wherein di is the delay applied to the i data stream, Di is the maximum delay value of the ith data stream, d is the most stringent delay bound, and Floor(Di/d) is the largest integer no larger than Di/d.
8. The method according to claim 1, wherein the delay applied to each of the data streams is calculated by the following equation:
d,=2J*d
wherein di is the delay applied to the ith data stream, d is the most stringent delay bound, and j is an integer which causes 2J*d to be closest to and no larger than the maximum delay value of the ith data stream.
9. The method according to claim 1, further comprising:
sending, over the common communication link during the time slot, data of at least one data stream of the data streams that doesn't reach the delay before the end of the next time slot, after the transmission of the second amounts of data is finished, if the sum of the first data amount of the data streams for the time slot is less than the available data amount, or
sending, over the common communication link during the time slot, data of at least one elastic data stream whose delay is not as critical as the data streams, after the transmission of the second amounts of data is finished, if the sum of the first data amount of the data streams for the time slot is less than the available data amount.
10. The method according to claim 1, further comprising:
stopping transmission of data of a current data stream of the data streams whose data is being transmitted over the common communication link in the incoming time slot, when an emergency data stream arrives in the incoming time slot; and
sending data of the emergency data stream over the common communication link in the time slot.
11. The method according to claim 10, further comprising:
continuing to send, during the incoming time slot, data of at least one data stream of the current data stream and low priority level data streams of the data streams whose priority levels are lower than that of the current data stream according to priority levels of the at least one data stream, after the transmission of data of the emergency data stream in the incoming time slot is finished, if amount of data that has been transmitted in the time slot after the transmission of data of the emergency data stream in the incoming time slot is finished is less than the available data amount.
12. The method according to claim 10, further comprising:
if not all data of the emergency data stream has been transmitted in the incoming time slot, repeating the calculating, the determining and the transmitting for each time slot following the incoming time slot for the emergency data stream and the data streams, until all data of the emergency data stream is transmitted, wherein priority level of the emergency data stream is set to be higher than those of the data streams.
13. The method according to claim 1, further comprising:
when a new data stream arrives in the incoming time slot and the new data stream has data that will reach a maximum delay of the new date stream before the end of the next time slot, determining whether the transmission of data of a high priority data stream of the data streams whose priority level is higher than that of the new data stream data is finished;
computing the first amount of data in the new data streams for the incoming time slot, if the transmission of the data of a high priority data stream of the data streams whose priority level is higher than that of the new data stream data is not finished; re-determining, based on leftover data amount that is provided to the data streams in the incoming time slot when the transmission of data of the high priority data stream in the time slot is finished and the first data amount of each of the high priority data stream, the new data stream and low priority data streams of the data streams for the time slot, the second data amount of each of the new data stream and the low priority data streams for the incoming time slot according to priority levels of the new data stream and the low priority data streams, wherein the low priority data streams are those data streams whose priority levels are less than that of the new data stream; and
sending, during the incoming time slot, data of the new data stream and the low priority data streams over the common communication link based on the re-determined second amount of data in each of the new data stream and the low priority data streams for the incoming time slot according to the priority levels of the new data stream and the low priority data streams, after the transmission of data of the high priority data stream in the incoming time slot is finished.
14. The method according to claim 13, further comprising:
stopping transmitting of data of a current data stream whose data is being transmitted over the common communication link in the incoming time slot, if transmission of the data of a high priority data stream of the data streams whose priority level is higher than that of the new data stream data is finished; and
sending data of the new data stream over the common communication link in the incoming time slot.
15. The method according to claim 14, further comprising:
continuing to send during the incoming time slot data of at least one data stream of the current data stream and low priority level data streams of the data streams whose priority levels are lower than that of the current data stream according to priority levels of the at least one data stream, after the transmission of data of the new data stream in the incoming time slot is finished, if amount of data that has been transmitted in the incoming time slot after the transmission of data of the new data stream in the incoming time slot is finished is less than the available data amount.
16. The method according to claim 13, further comprising:
executing the calculating, the determining and the transmitting for each time slot following the incoming time slot for the new data stream and the data streams.
17. An apparatus for scheduling a transmission of a plurality of data streams over a common communication link, comprising:
a receiver comprising a plurality of receiving units, each receiving unit being configured to receive a data stream from a data source;
a processor connected to the receiver, configured to:
for each of the data streams, determine a first amount of data in the data stream for an incoming time slot, wherein the first amount of data is an amount of data in the data stream that will reach a delay before the end of a time slot following the incoming time slot, and wherein the delay applied to the data stream is no larger than a maximum delay value of the data stream; for each of the data streams, determine, based on an available data amount that is provided to the data streams for the incoming time slot and the first amounts of data in the data streams for the incoming time slot according to priority levels of the data streams, a second amount of data in the data stream, wherein the second amount of data is an amount of data in the data stream that will actually be transmitted in the incoming time slot; and
and a transmitter connected to the processor, configured to:
transmit, during the incoming time slot, the second amount of data of the plurality of data streams over the common communication link according to the priority levels of the data streams.
18. The apparatus according to claim 17, wherein
the processor is further configured to calculate, based on the available data amount and the first amount of data in each of the data streams for the incoming time slot according to the priority levels of the data streams, a third amount of data in each of the data streams for the incoming time slot, wherein the third amount of data is a maximum amount of data in each of the data streams that can be transmitted in the incoming time slot over the common communication link, and calculate, based on the first amount of data and the third amount of data in each of the data streams for the incoming time slot, the second amount of data amount in each of the data streams for the time slot.
19. The apparatus according to claim 17, wherein the processor is further configured to determine the available data amount based on a duration of the time slot and a maximum serving rate provided to the data streams in the incoming time slot.
20. The apparatus according to claim 17, wherein
the processor is further configured to determine the delay applied to each of the data streams as a multiple of a most stringent delay bound, wherein the most stringent delay bound is no larger than the smallest value of the maximum delay values of the data streams.
21. The apparatus according to claim 17, wherein the processor is further configured to:
determine a delay offset of each of at least one data stream of the data streams, and calculate an adjusted delay for each of the at least one data stream based on the delay applied to each of the at least one data stream and the obtained delay offset of each of the at least one data stream, wherein when the adjusted delay is applied to each of the at least one data stream, a leftover capacity in each of the time slots is substantially the same,
and wherein the processor is further configured to calculate an adjusted first amount of data in each of the at least one data stream for the incoming time slot, wherein the adjusted first amount of data is an amount of data of each of the at least one data stream that will reach the adjusted delay before the end of the next time slot.
22. The apparatus according to claim 17, wherein
the transmitter is further configured to send, over the common communication link during the incoming time slot, data of at least one data stream of the data streams that doesn't reach the applied delay before the end of the time slot , or send data of at least one elastic data stream whose delay is not as critical as the data streams, after the transmission is finished, if a sum of the first data amount of the data streams for the incoming time slot is less than the available data amount .
23. The apparatus according to claim 17, wherein the apparatus is a base station, a radio network controller, a switch or a router.
24. A computer program product comprising a computer readable storage medium storing program code thereon for use by a communication node for scheduling transmission of a plurality of data streams over a common communication link, the program code comprising instructions for executing a method that comprises: for each of the data streams, determining a first amount of data in the data stream for an incoming time slot, wherein the first amount of data is an amount of data in the data stream that will reach a delay before the end of a time slot following the incoming time slot, and wherein the delay applied to the data stream is no larger than a maximum delay value of the data stream;
for each of the data streams, determining, based on an available data amount that is provided to the data streams for the incoming time slot and the first amounts of data in the data streams for the incoming time slot according to priority levels of the data streams, a second amount of data in the data stream, wherein the second amount of data is an amount of data in the data stream that will actually be transmitted in the incoming time slot; and
transmitting, during the incoming time slot, the second amounts of data in the plurality of data streams over the common communication link according to the priority levels of the data streams.
PCT/CN2011/070878 2011-02-01 2011-02-01 Method and apparatus for scheduling transmission of data streams over a common communication link WO2011100888A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201180066165.3A CN103329608B (en) 2011-02-01 2011-02-01 A kind of dispatch the data stream method and device by the transmission of shared communication link
PCT/CN2011/070878 WO2011100888A2 (en) 2011-02-01 2011-02-01 Method and apparatus for scheduling transmission of data streams over a common communication link

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/070878 WO2011100888A2 (en) 2011-02-01 2011-02-01 Method and apparatus for scheduling transmission of data streams over a common communication link

Publications (2)

Publication Number Publication Date
WO2011100888A2 true WO2011100888A2 (en) 2011-08-25
WO2011100888A3 WO2011100888A3 (en) 2011-12-29

Family

ID=44483367

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/070878 WO2011100888A2 (en) 2011-02-01 2011-02-01 Method and apparatus for scheduling transmission of data streams over a common communication link

Country Status (2)

Country Link
CN (1) CN103329608B (en)
WO (1) WO2011100888A2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105263166B (en) * 2015-09-06 2018-11-13 上海理工大学 Dual path route wireless admittance control method priority-based
CN111211996B (en) * 2019-12-27 2022-03-18 中国科学院计算技术研究所 Flow scheduling method
CN115333952A (en) * 2022-08-11 2022-11-11 成都精灵云科技有限公司 Transmission method and transmission control system of emergency data in distributed simulation system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001095057A2 (en) * 2000-06-02 2001-12-13 Radisys Corporation Voice-over ip communication without echo cancellation
CN101630994A (en) * 2007-12-21 2010-01-20 联发科技股份有限公司 Method and apparatus for controlling dataflow

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6240475B1 (en) * 1997-12-30 2001-05-29 Adaptec, Inc. Timer based arbitrations scheme for a PCI multi-function device
US20070171862A1 (en) * 2006-01-25 2007-07-26 Honeywell International Inc. Media access control protocol for mobile ad hoc networks using CDMA and multiuser detection
CN101466161B (en) * 2009-01-08 2010-08-25 西安电子科技大学 Data collection method suitable for multi-hop wireless sensor network
CN101667962B (en) * 2009-10-14 2012-07-11 天津大学 Dynamic bandwidth allocation method for self-adapting service quality assurance in Ethernet passive optical network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001095057A2 (en) * 2000-06-02 2001-12-13 Radisys Corporation Voice-over ip communication without echo cancellation
CN101630994A (en) * 2007-12-21 2010-01-20 联发科技股份有限公司 Method and apparatus for controlling dataflow

Also Published As

Publication number Publication date
CN103329608B (en) 2016-08-10
CN103329608A (en) 2013-09-25
WO2011100888A3 (en) 2011-12-29

Similar Documents

Publication Publication Date Title
EP3565197B1 (en) Path selection method and device
US7929436B2 (en) Network communication control methods and systems
US9462025B2 (en) Increasing link throughput to enable admission without exceeding latency variation limits
US9185047B2 (en) Hierarchical profiled scheduling and shaping
US7924721B2 (en) Communication apparatus, transmission control method, and transmission control program
WO2017078922A1 (en) Apparatus and method for network flow scheduling
CN102238068B (en) Message transmitting method and system
CN108270674B (en) Message forwarding method and device
US9515940B2 (en) Method for transmitting data in a packet-oriented communications network and correspondingly configured user terminal in said communications network
CN109274589B (en) Service transmission method and device
JP6468193B2 (en) Communication device, network available bandwidth estimation method in communication device, and network available bandwidth estimation program
WO2011100888A2 (en) Method and apparatus for scheduling transmission of data streams over a common communication link
EP3063969B1 (en) System and method for traffic engineering using link buffer status
JP2012506167A (en) Method for selecting resources to be released in case of overload in a cellular land mobile system
EP3585013B1 (en) Data transmission method and apparatus
CN107920028B (en) Data packet sending method, device and equipment
US20150124636A1 (en) System and Method for Delay Management for Traffic Engineering
WO2017169948A1 (en) Communication system, available-bandwidth estimation apparatus, available-bandwidth estimation method, and recording medium having available-bandwidth estimation program stored thereon
CN107710701B (en) Constrained split path computation
EP2930617A1 (en) Resource management method and device
US9172727B2 (en) Customer premise equipment and microprocessor resource management method of customer premise equipment
RU2780659C1 (en) Method for quasi-optimal multimedia packet streaming based on the criteria of minimum delay and minimum relative loss due to buffer overflow
KR20150022385A (en) Method and Apparatus for Controlling Traffic for Reducing Completion Time of Transmitting Data
CN115883457A (en) Communication method and routing equipment
CN115442846A (en) Data distribution method and device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11744246

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11744246

Country of ref document: EP

Kind code of ref document: A2