Method and apparatus for implementing scheduling in Ping process

09660925 ยท 2017-05-23

Assignee

Inventors

Cpc classification

International classification

Abstract

Provided are a method and apparatus for implementing scheduling in a Ping process. An MAC layer of an eNB learns about the traffic of UE, determines whether the UE is carrying out Ping according to a learning result, determines a period of sending a data packet by the UE when determining that the UE is carrying out Ping and carries out pre-scheduling according to the period. According to the technology of implementing scheduling in the Ping process in the present disclosure, a high layer can report the traffic statistic to the MAC layer; and the MAC layer learns continuously based on a set learning period so as to judge whether the UE is carrying out Ping, and determines the period of sending a data packet by the UE when determining that the UE is carrying out Ping to predict the coming of a next data packet for the Ping and carry out pre-scheduling, thereby saving the time of sending an SR by the UE; in this way, the time delay for the Ping is considered, moreover, the technology can be used in the network all the time and do not affect the traffic of a system.

Claims

1. A method for implementing scheduling in a Packet Internet Grope (Ping) process, comprising: learning about, by a Media Access Control (MAC) layer of an Evolved Node B (eNB), traffic of User Equipment (UE), determining whether the UE is carrying out Ping according to a learning result, determining a period of sending a data packet by the UE when the MAC layer determines that the UE is carrying out Ping, and carrying out pre-scheduling according to the period; setting statuses learned in the learning period as a status array; and determining whether to carry out pre-scheduling in a later learning period according to a learning result in a previous learning period; wherein a time length of the learning is w * and is taken as a learning period, where is learning times in the learning period, and w is a duration of each learning.

2. The method according to claim 1, wherein determining whether the UE is carrying out Ping comprises: determining by comparison whether adjacent values or values with a fixed interval in the status array are equal, and if the adjacent values or the values with a fixed interval are equal and indicate that the UE is carrying out Ping, then determining that the UE is carrying out Ping.

3. The method according to claim 2, wherein determining the period comprises: subtracting time points of values stored in a learning period two by two to obtain difference values, and taking a difference value obtained most frequently in the difference values as the period of sending a data packet by the UE.

4. The method according to claim 1, wherein determining the period comprises: subtracting time points of values stored in a learning period two by two to obtain difference values, and taking a difference value obtained most frequently in the difference values as the period of sending a data packet by the UE.

5. The method according to claim 1, further comprising: periodically sending, by a high layer, a traffic statistic for carrying out the learning to the MAC layer.

6. An apparatus for implementing scheduling in a Packet Internet Grope (Ping) process, comprising: a memory storing programming instructions; and a processor configured to execute the stored programming instructions to perform steps comprising: learning about traffic of User Equipment (UE); determining whether the UE is carrying out Ping according to the learning result, and determining a period of sending a data packet by the UE when determining that the UE is carrying out Ping; carrying out pre-scheduling according to the period; setting statuses learned in the learning period as a status array; and determining whether to carry out pre-scheduling in a later learning period according to a learning result of a previous learning period; wherein a time length of the learning is w * and is taken as a learning period, where is learning times in the learning period, and w is a duration of each learning.

7. The apparatus according to claim 6, wherein determining whether the UE is carrying out Ping comprises: determining by comparison whether adjacent values or values with a fixed interval in the status array are equal, and if the adjacent values or the values with a fixed interval are equal and indicate that the UE is carrying out Ping, determining that the UE is carrying out Ping.

8. The apparatus according to claim 7, wherein determining the period comprises, subtracting time points of values stored in a learning period two by two to obtain difference values, and taking a difference value obtained most frequently in the difference values as the period of sending a data packet by the UE.

9. The apparatus according to claim 6, wherein determining the period comprises: subtracting time points of values stored in a learning period two by two to obtain difference values, and taking a difference value obtained most frequently in the difference values as the period of sending a data packet by the UE.

10. The apparatus according to claim 6, wherein the processor is configured to execute the stored programming instructions to perform steps comprising: receiving a traffic statistic for carrying out the learning which is sent from a high layer to a Media Access Control (MAC) layer periodically.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) FIG. 1 is a schematic diagram showing a flow of implementing scheduling in a Ping process in an embodiment of the present disclosure;

(2) FIG. 2 is a schematic diagram showing the principle of learning in an embodiment of the present disclosure; and

(3) FIG. 3 is a diagram showing a flow of predicting Ping and a period of sending a data packet by UE in an embodiment of the present disclosure.

DETAILED DESCRIPTION

(4) In an actual application, operation can be carried out as shown in FIG. 1. A learning module learns about traffic and informs a judgment module of a learning result; the judgment module determines whether UE is carrying out Ping according to the received learning result, determines a period of sending a data packet by UE when determining that the UE is carrying out Ping and informs a pre-scheduling module of the period; and the pre-scheduling module carries out pre-scheduling according to the received period.

(5) During the pre-scheduling, an eNB may grant uplink authority DCI0 actively, and the UE sends a service according to the authority. If the UE has a data packet to be sent for the uplink Ping, the UE sends a corresponding data packet according to the DCI0 (i.e., uplink authority) given by the eNB, and the granted DCI0 is aimed to enable the UE to send its data packet for the Ping.

(6) The learning module, the judgment module and the pre-scheduling module may be arranged in an MAC layer. In addition, the judgment module may include a Ping judgment module and a periodic judgment module, wherein the Ping judgment module may determine whether the UE is carrying out Ping according to the received learning result, and informs the periodic judgment module when determining that the UE is carrying out Ping; and the periodic judgment module determines the period of sending a data packet by the UE and informs the pre-scheduling module of the period.

(7) Specifically, a high layer may periodically (such as every millisecond) reports a traffic statistic in this period to the MAC layer, and the traffic statistic can be received by the learning module. Based on the principle in FIG. 2, a time length of the learning can be set to w* in the learning module and is taken as a learning period, where is learning times in one learning period, and w is the duration of each learning. Whether to carry out pre-scheduling in a later learning period can be determined according to a learning result in a previous learning period. For example, whether to carry out pre-scheduling in a second learning period is determined according to a learning result in a first learning period; whether to carry out pre-scheduling in a third learning period is determined according to a learning result in the second learning period, and so on. The statuses learned in the learning period can be set as a status array, and the learning process is continued all the time.

(8) The statuses in a learning period can be obtained through the learning from the learning module, and the statuses can form a status array to be input to the judgment module; and the judgment module determines whether the UE is carrying out Ping (for example, it determines whether the UE is carrying out Ping according to adjacent status values or status values with a fixed interval in the status array). If a judgment result of the judgment module is that the UE is not carrying out Ping, the subsequent normal flow is executed; and if a judgment result of the judgment module is that the UE is carrying out Ping, a period of sending a data packet is determined for the UE (for example, a proper peak value is selected to determine the period by judging the status values and the traffic of each corresponding peak value).

(9) Then, the judgment module informs the pre-scheduling module of the determined period of sending a data packet by the UE, and the pre-scheduling module carries out pre-scheduling to enable the UE not to send an SR as much as possible, thus, time delay can be reduced effectively for the Ping of the UE.

(10) The present disclosure is further described below in combination with specific embodiments in detail.

(11) During the learning, the learning can be started after the access of the UE, and the learning is mainly based on high layer's statistic of traffic transmitted successfully. The high layer reports the traffic statistic in the learning period to the MAC layer every millisecond, and the traffic statistic can be received by the learning module. A time length of the learning can be set to w* for the learning module and is taken as a learning period, and whether to carry out pre-scheduling in a later learning period can be determined according to a learning result in a previous learning period. For example, whether to carry out pre-scheduling in a second learning period is determined according to a learning result in a first learning period; whether to carry out pre-scheduling in a third learning period is determined according to a learning result in the second learning period, and so on. The statuses learned in the learning period can be set as a status array, and the learning process is continued all the time. The values in the status array [StateValue1, StateValue2, StateValue3 . . . StateValue(1), StateValue] are calculated by learning.

(12) Whether the adjacent values or the values at a fixed interval are equal in the status array can be determined by comparison, and if they are equal and indicate that the UE is carrying out Ping, it is determined that the UE is carrying out Ping. If a judgment result is that the UE is not carrying out Ping, the subsequent normal flow is executed; and if a judgment result is that the UE is carrying out Ping, the period of sending a data packet is determined for the UE. For example, the time points of the values stored in the learning period are subtracted two by two to obtain difference values, and a difference value obtained most frequently is taken as the period of the Ping.

(13) In a specific application, the flow as shown in FIG. 3 can be executed, as shown in the following two embodiments.

(14) First Embodiment

(15) For the Ping in an Unacknowledged Mode (UM) of LTE, whether the UE is carrying out Ping can be determined by the analysis of a high layer, pre-scheduling can be implemented through the learning of the MAC layer without the analysis process of the high layer; firstly, the length of a unit window can be set as follows: w=500 ms, =4 and =0.2. Then, the following steps are executed.

(16) Step 101 is start.

(17) Step 102 is during the initial access of UE, an eNB sets a timer on the MAC layer and starts to learn the law of traffic of the UE when the timer expires, and Step 103_1 is executed.

(18) Specifically, when an UE example is set on the MAC layer, a timer is started, the timing length of the timer is set to T millisecond. When the timer expires, it is indicated that the initial random access process of the UE is completed.

(19) The traffic statistic is started when the high layer sends a preamble from the UE; the value of the traffic statistic is reported to the MAC layer every millisecond; and since the number of bits to be transmitted in a certain window length is ensured to be definite no matter for a GBR or an NGBR service, if the UE is sending a data packet in the Ping process, the data packet is definite in size and period, accordingly, the traffic is definite.

(20) Step 103_1 is that a unit window with a fixed length w is set, the magnitude of the traffic value reported from the high layer to the MAC layer in the unit window and a corresponding moment are recorded, and the maximal value of the traffic is calculated.

(21) The specific learning process is as follows:

(22) a time length of the learning is w* and is taken as learning period, and whether to carry out pre-scheduling in a second learning period is determined according to a learning result in a first learning period; whether to carry out pre-scheduling in a third learning period is determined according to a learning result in the second learning period, and so on; the status array [StateValue1, StateValue2, StateValue3 . . . StateValue(1), StateValue] learned in each learning period may be initialized to [0, 0, 0 . . . 0, 0] when the next learning period starts, and the learning process is continued all the time.

(23) Provided that the initial value of the state value x is 0, x=1, 2, 3 . . . 1, , where represents the times of continuous learning, and Step 103_2 to Step 103_8 are one learning process. A status array [StateValue1, StateValue2, StateValue3 . . . StateValue(1), StateValue] is calculated by learning continuously for times, specifically as follows:

(24) step 103_2: a unit window of a fixed length w millisecond is set, the magnitudes Thr1_x, Thr2_x . . . Thrm_x of traffic values reported from a user plane to the MAC layer in the unit window and the corresponding moments t1_x, t2_x . . . tm_x are recorded, and =max(Thr1_x, Thr2_x . . . Thrm_x) is calculated, where the unit of w is millisecond; the number more than in (Thr1_x, Thr2_x . . . Thrm_x) is counted, and the number is set to n, where 0<alpha<1;

(25) step 103_3: whether 1n is true is judged, if it is true, step 103_4 is executed, otherwise, step 103_5 is executed;

(26) step 103_4: the status value x is assigned to 1 (it is determined that the UE is carrying out Ping), and step 104 is executed;

(27) step 103_5: whether n> is true is judged, if it is true, step 103_6 is executed, otherwise, step 103_7 is executed;

(28) step 103_6: the status value x is assigned to 2; the stored (Thr1_x, Thr2_x . . . Thrm_x) and t1_x, t2_x . . . tm_x are cleared; and step 104 is executed;

(29) step 103_7: whether n=0 is true is judged, if it is true, step 103_8 is executed, otherwise, Step 104 is executed;

(30) step 103_8: the StateValuex is fixed, i.e., 0; the stored (Thr1_x, Thr2_x . . . Thrm_x) and t1_x, t2_x . . . tm_x are cleared; and step 104 is executed; and

(31) step 104: step 103_1 to step 103_8 are repeated, each value in the status array [StateValue1, StateValue2, StateValue3 . . . StateValue(1), StateValue] is calculated.

(32) Step 105 is that whether the UE is carrying out Ping is judged according to the learned content,

(33) if (StateValue=StateValue(2), and StateValue=1),

(34) or (StateValue1)=StateValue3), and StateValue1)=1),

(35) or (StateValue)=StateValue3), and StateValue)=1),

(36) it is indicated that the UE is carrying out Ping; otherwise, it is indicated that the UE is scheduled dynamically or is not in service, so that scheduling is carried out according to an actual condition.

(37) Step 106 includes that a window of which the status value is 1 is selected for periodic judgment, specifically:

(38) After learning is executed continuously for times, the stored traffic values are:

(39) [(Thr1_1, Thr2_1 . . . Thrm_1), (Thr1_2, Thr2_2 . . . Thrm_2) . . . (Thr1_, Thr2_ . . . Thrm_)];

(40) the corresponding moments are:

(41) [(t1_1, t2_1 . . . tm_1), (t1_2, t2_2 . . . tm_2) . . . (t1_, t2_ . . . tm_)];

(42) Note: the values stored in the two arrays above are the corresponding values when StateValuex=1.

(43) Every adjacent two values in the array [(t1_1, t2_1 . . . tm_1), (t1_2, t2_2 . . . tm_2) . . . (t1_, t2_ . . . tm_)] stored in the period of learning continuously for times are subtracted to obtain difference values, i.e., [(t2_1t1_1) . . . (tm_1t(m1)_1), (t1_2tm_1) . . . ].

(44) By the operation above, a status array is obtained, and the value occurring most frequently in the status array is counted, and is the period of sending a data packet by the UE in the Ping process. When is not unique (such as 1, 2, and 3), the following processing can be executed: the mean of is calculated, Average=mean(1, 2, 3); the Average is taken as the period of sending a data packet by the UE in the Ping process; and =max(|.sub.Average.sub.1|, |.sub.Average.sub.2|, .sub.Average.sub.3) is taken to judge a fluctuation range of a window in a next Ping moment.

(45) Step 107 includes that a pre-scheduling window is pre-scheduled.

(46) As shown in FIG. 2, if it is determined that the UE is carrying out Ping through the learning in a first learning period, a second learning period is pre-scheduled. Firstly, the first point of which the traffic is not 0 and which is considered to belong to Ping in the second learning period is found out, so as to predict the coming of a next Ping moment according to the period of sending a data packet by the UE in the Ping process.

(47) can be determined by many methods, for example:

(48) after continuous learning is carried out for times, the stored traffic values are [(Thr1_1, Thr2_1 . . . Thrm_1), (Thr1_2, Thr2_2 . . . Thrm_2) . . . (Thr1_, Thr2_ . . . Thrm_)]; and the values in status array [(Thr1_(3), Thr2_(3) . . . Thrm_(3)), (Thr1_(2), Thr2_(2) . . . Thrm_(2)), (Thr1_(1), Thr2_(1) . . . Thrm_(1)), (Thr1_, Thr2_ . . . Thrm_A)] are averaged to be marked as ;

(49) meets the following condition: , and 0<<1;

(50) The size of a pre-scheduling window can be PreSchWin=max(, *Average), where 0<<1.

(51) Step 108 is ending.

(52) Second Embodiment

(53) A speed measuring website is different from an ordinary website. For the ordinary website, a data packet of a Ping service can be parsed out by a high layer to judge whether the data packet is sent in the Ping process. Whereas, for the speed measuring website, the high layer cannot judge the Ping by parsing a data packet, but needs to send a data packet of a fixed size periodically to test a time delay. In the embodiment, the period and the size of the data packet sent by the UE in the Ping process can be judged by the learning of an MAC layer so as to carry out pre-scheduling and further to shorten the time delay.

(54) Firstly, the length of a unit window can be set as follows: w=500 ms, =6, =0.25. Then, the following steps are executed.

(55) Step 101 is start.

(56) Step 102 includes that during the initial random access of LTE, a timer is set and the learning for the law of traffic of the UE is started when the timer expires, and Step 103_1 is executed.

(57) Specifically, when an UE example is set on the MAC layer, a timer is started, the timing length of the timer is set to T millisecond. When the timer expires, it is indicated that the initial random access process of the UE is completed.

(58) The traffic statistic is started when the high layer sends a preamble from the UE; the value of the traffic statistic is reported to the MAC layer every millisecond; and since the number of bits to be transmitted in a certain window length is ensured to be definite no matter for the GBR or the NGBR service, if the UE is sending a data packet in the Ping process, the data packet is definite in size and period, and accordingly, the traffic is definite.

(59) Step 103_1 includes that a unit window with a fixed length w is set, the magnitude of the traffic value reported from the high layer to the MAC layer in the unit window and a corresponding moment are recorded, and the maximal value of the traffic is calculated.

(60) The specific learning process is as follows:

(61) a time length of the learning is w* and is taken as learning period, and whether to carry out pre-scheduling in a second learning period is determined according to a learning result in a first learning period; whether to carry out pre-scheduling in a third learning period is determined according to a learning result in the second learning period, and so on; the status array [StateValue1, StateValue2, StateValue3 . . . StateValue(1), StateValue ] learned in each learning period may be initialized to [0, 0, 0 . . . 0, 0] when the next learning period starts, and the learning process is continued all the time.

(62) Provided that the initial value of the state value x is 0, x=1, 2, 3 . . . 1, , where represents the times of continuous learning, and Step 103_2 to Step 103_8 are one learning process. A status array [StateValue1, StateValue2, StateValue3 . . . StateValue(1), StateValue] is calculated by learning continuously for A times, specifically as follows:

(63) step 103_2: a unit window of a fixed length w millisecond is set, the magnitudes Thr1_x, Thr2_x, Thrm_x of traffic values reported from a user plane to the MAC layer in the unit window and the corresponding moments t1_, t2_x . . . tm_x are recorded, and =max (Thr1_x, Thr2_x . . . Thrm_x is calculated, where the unit of w is millisecond; the number more than in (Thr1_x, Thr2_x . . . Thrm_x) is counted, and the number is set to n, where 0<alpha<1;

(64) step 103_3: whether 1n is true is judged, if it is true, step 103_4 is executed, otherwise, step 103_5 is executed;

(65) step 103_4: the status value x is assigned to 1 (it is determined that the UE is carrying out Ping), and step 104 is executed;

(66) step 103_5: whether n> is true is judged, if it is true, step 103_6 is executed, otherwise, step 103_7 is executed.

(67) step 103_6: the status value x is assigned to 2; the stored (Thr1_x, Thr2_x . . . Thrm_x) and t1_x, t2_x . . . tm_x are cleared; and step 104 is executed;

(68) step 103_7: whether n=0 is true is judged, if it is true, step 103_8 is executed, otherwise, step 104 is executed;

(69) step 103_8: the StateValuex is fixed, i.e., 0; the stored (Thr1_x, Thr2_x . . . Thrm_x) and t1_x, t2_x . . . tm_x are cleared; and step 104 is executed; and

(70) step 104: step 103_1 to Step 103_8 are repeated, each value in the status array [StateValue1, StateValue2, StateValue3 . . . StateValue(1), StateValue] is calculated through the steps above.

(71) Step 105 is that whether the UE is carrying out Ping is judged according to the learned content,

(72) if (StateValue=StateValue(2), and StateValue=1),

(73) or (StateValue(1)=StateValue3), and StateValue1)=1),

(74) or (StateValue)=StateValue3), and StateValue)=1),

(75) it is indicated that the UE is carrying out Ping; otherwise, it is indicated that the UE is scheduled dynamically or is not in service, so that scheduling is carried out according to an actual condition.

(76) Step 106 includes that a window of which the status value is 1 is selected for periodic judgment, specifically:

(77) After learning is executed continuously for times, the stored traffic values are:

(78) [(Thr1_1, Thr2_1 . . . Thrm_1), (Thr1_2, Thr2_2 . . . Thrm_2) . . . (Thr1_, Thr2_ . . . Thrm_)];

(79) the corresponding moments are:

(80) [(t1_1, t2_1 . . . tm_1), (t1_2, t2_2 . . . tm_2) . . . (t1_, t2_ . . . tm_)];

(81) Note: the values stored in the two arrays above are the corresponding values when StateValuex=1.

(82) Every adjacent two values in the array [(t1_1, t2_1 . . . tm_1), (t1_2, t2_2 . . . tm_2) . . . (t1_, t2_ . . . tm_)] stored in the period of learning continuously for times are subtracted to obtain difference values, i.e., [(t2_1t1_1) . . . (tm_1t(m1)_1), (t1_2tm_1) . . . ].

(83) By the operation above, a status array is obtained, and the value occurring most frequently in the status array is counted, and is the period of sending a data packet by the UE in the Ping process. When is not unique (such as 1, 2 and 3), the following processing can be executed: the mean of is calculated, Average=mean(1, 2, 3); the Average is taken as the period of sending a data packet by the UE in the Ping process; and =max (|.sub.Average.sub.1|, |.sub.Average.sub.2|, .sub.Average.sub.3) is taken to judge a fluctuation range of judging the window of a next Ping moment.

(84) Step 107 includes that a pre-scheduling window is pre-scheduled.

(85) As shown in FIG. 2, if it is determined that the UE is carrying out Ping through the learning of a first learning period, a second learning period is pre-scheduled. Firstly, the first point of which the traffic is not 0 and which is considered to belong to Ping in the second learning period is found out, so as to predict the coming of a next Ping moment according to the period of sending a data packet by the UE in the Ping process.

(86) can be determined by many methods, for example:

(87) after continuous learning is carried out for times, the stored traffic values are [(Thr1_1, Thr2_1 . . . Thrm_1), (Thr1_2, Thr2_2 . . . Thrm_2) . . . (Thr1_, Thr2_ . . . Thrm_)]; and the values in the status array [(Thr1_(3), Thr2_(3) . . . Thrm_(3)), (Thr1_(2), Thr2_(2) . . . Thrm_(2)), (Thr1_(1), Thr2_(1) . . . Thrm_(1)), (Thr1_, Thr2_ . . . Thrm_)] are averaged to be marked as ;

(88) meets the following condition: , and 0<<1.

(89) The size of a pre-scheduling window can be PreSchWin=max(,*Average), where 0<<1.

(90) Step 108 is ending.

(91) The apparatus in an embodiment of the present disclosure includes a learning module, a judgment module, and a pre-scheduling module, wherein

(92) the learning module is configured to learn traffic of UE and inform the judgment module of a learning result;

(93) the judgment module is configured to determine whether the UE is carrying out Ping according to the received learning result, determine a period of sending a data packet by the UE when determining that the UE is carrying out Ping, and further inform the pre-scheduling module of the period; and the pre-scheduling module is configured to carry out pre-scheduling according to the received period.

(94) A time length of the learning is w* and is taken as a learning period, where is learning times in one learning period, and w is the duration of each learning.

(95) The learning module is configured to set the statuses learned in the learning period as a status array; and

(96) the pre-scheduling module is configured to determine whether to carry out pre-scheduling in a later learning period according to a learning result in a previous learning period.

(97) When determining whether the UE is carrying out Ping, the judgment module is configured to:

(98) determine by comparison whether the adjacent values or the values with a fixed interval in the status array are equal, and if they are equal and indicate that the UE is carrying out Ping, determine that the UE is carrying out Ping.

(99) When determining the period, the judgment module is configured to:

(100) subtract the time points of the values stored in the learning period two by two, wherein a difference value occurring most frequently in the obtained difference values is a period of sending the data packet of the UE.

(101) The learning module is further configured to receive a traffic statistic for the learning which is sent from a high layer to an MAC layer periodically.

(102) To sum up, no matter for the method or the apparatus supporting the method, in the technology of implementing scheduling in a Ping process, a high layer can report a traffic statistic to an MAC layer; and the MAC layer learns continuously based on a set learning period so as to judge whether the UE is carrying out Ping and determines a period of sending a data packet by UE when determining that the UE is carrying out Ping, so as to predict the coming of a next data packet for the Ping and carry out pre-scheduling; therefore, the time of sending an SR is saved for the UE, and the time delay for UE to perform Ping is reduced. Moreover, the technology can be used in the network all the time and do not affect the traffic of the system.

(103) The above are only the preferred embodiments of the present disclosure, and are not intended to limit the scope of protection of the claims of the present disclosure.