Optimizing user experience in encrypted traffic
Methods ( 500 ) and devices ( 800 ) for determining a priority level for a first application or a first application type. The method comprises receiving (s 502 ) a first usage data reporting message, the first usage data reporting message comprising a first masked usage value generated by a first UE ( 102 ) using i) a first usage value associated with a first application or a first application type and ii) a mask value. The method further comprises receiving (s 504 ) a second usage data reporting message, the second usage data reporting message comprising a second masked usage value generated by a second UE ( 104 ) using i) a second usage value associated with the first application or the first application type and ii) the mask value. The method further comprises combining (s 506 ) the first masked usage value and the second masked usage value, thereby generating a combined usage value; and using (s 508 ) the combined usage value to determine a priority level for the first application or the first application type.
1 . A method for determining a priority level for a first application or a first application type, the method comprising:
receiving a first usage data reporting message, the first usage data reporting message comprising a first masked usage value calculated by a first UE using i) a first usage value associated with a first application or a first application type and ii) a mask value;
receiving a second usage data reporting message, the second usage data reporting message comprising a second masked usage value generated by a second UE using i) a second usage value associated with the first application or the first application type and ii) the mask value;
combining the first masked usage value and the second masked usage value, thereby generating a combined usage value; and
using the combined usage value to determine a priority level for the first application or the first application type, wherein
V1 Masked =V1 Not Masked +M or V1 Masked =V1 Not Masked −M, where V1 Masked is the first masked usage value, V1 Not Masked is the first usage value, and M is the mask value,
V2 Masked =V2 Not Masked −M Or V2 Masked =V2 Not Masked +M, where V2 Masked is the second masked usage value, V2 Not Masked is the second usage value, and M is the mask value, and
V combined =V1 Masked +V2 Masked , where V combined is the combined usage value.
2 . The method of claim 1 , wherein
the second usage value is associated with the first application type, and
the second usage value is determined based on a combination of two or more usage values each of which is associated with an application of the first application type.
3 . The method of claim 1 , the method further comprising transmitting toward the first UE a usage data request, wherein the usage data request is configured to trigger the first UE to transmit the mask value or a request for the mask value.
4 . The method of claim 3 , the method further comprising:
identifying top N UEs that are most frequently connected to a network node, wherein N is a positive integer;
forming a plurality of pairs of UEs among the identified top N UEs, wherein the first UE and the second UE form one pair of the plurality of pairs of UEs; and
generating the usage data request, wherein the usage data request includes information identifying the second UE.
5 . The method of claim 1 , wherein using the combined usage value to determine a priority level for the first application or the first application type comprises:
transmitting toward a Quality Channel Indicator generator (dQCI_generator) a message indicating the combined usage value, and
the QCI generator determining the priority level for the first application or the first application type based on the combined usage value.
6 . The method of claim 1 , wherein
the first usage data reporting message includes a first application identifier identifying the first application or the first application type, and
the second usage data reporting message includes a second application identifier identifying the first application or the first application type.
7 . The method of claim 1 , wherein
the first usage value indicates the amount of the first UE's usage of the first application or the first application type, and
the second usage value indicates the amount of the second UE's usage of the first application or the first application type.
8 . The method of claim 7 , wherein
the first UE's usage of the first application or the first application type corresponds to the number of times the first application and/or applications having the first application type was consumed at the first UE during a given time interval.
9 . The method of claim 7 , wherein
the first UE comprises any one or a combination of a central processing unit (CPU), a display screen, a microphone, and/or a camera, and
the first UE's usage of the first application or the first application type corresponds to any one or a sum of:
a duration of how long the CPU ran the first application or applications having the first application type within a given time interval,
a duration of how long the display screen was used for the first application or applications having the first application type within the given time interval,
a duration of how long the microphone was used for the first application or applications having the first application type within the given time interval, and
a duration of how long the camera was used for the first application or applications having the first application type within the given time interval.
10 . The method of claim 1 , the method further comprising:
transmitting toward the first UE and the second UE global machine learning (ML) model information identifying a global ML model, wherein
the global ML transmitted toward the first UE is configured to be trained at the first UE using local data available at the first UE,
the global ML transmitted toward the second UE is configured to be trained at the second UE using local data available at the second UE,
the global ML model is associated with the first application or the first application type, and
the global ML model is configured to predict future network conditions of a network.
11 . The method of claim 10 , the method further comprising:
(i) receiving from the first UE first local ML model information identifying a first locally trained ML model,
(ii) receiving from the second UE second local ML model information identifying a second locally trained ML model,
(iii) combining the first local trained ML model and the second locally trained ML model, thereby generating an updated global ML model, and
(iv) transmitting toward the first UE and the second UE updated global ML model information identifying the updated global ML model.
12 . The method of claim 11 , the method further comprising:
receiving from a plurality of UEs data packets, wherein each of the data packets includes an identifier identifying a different application or a different application type;
unpacking only a part of each of the data packets to obtain the identifier;
transmitting toward a dQCI table a request for data handling information, wherein the request includes the identifier;
receiving from the dQCI table the data handling information; and
performing any one or more of the followings:
prioritizing, based on the received data handling information, the data packets, and
allocating, based on the received data handling information, downlink (DL) resources or uplink (UL) resources for the data packets.
13 . A method performed by a first user equipment (UE), the method comprising:
receiving from a network node a usage data request;
negotiating a first mask value with a second UE;
obtaining first usage value associated with a first application or a first application type;
calculating a first masked usage value using the obtained first usage value and the first mask value as inputs to the calculation;
after receiving the usage data request, transmitting toward the network node a usage data reporting message comprising the first masked usage value, wherein the network node is configured to:
combine the first masked usage value and a second masked usage value, thereby generating a combined usage value; and
use the combined usage value to determine a priority level for the first application or the first application type,
V1 Masked =V1 Not Masked +M or V1 Masked =V1 Not Masked −M, where V1 Masked is the first masked usage value, V1 Not Masked is the first usage value, and M is the first mask value,
V2 Masked =V2 Not Masked −M or V2 Masked =V2 Not Masked +M, where V2 Masked is the second masked usage value, V2 Not Masked is a second usage value, and M is the mask value, and
V Combined =V1 Masked +V2 Masked , where V Combined is the combined usage value.
14 . The method of claim 13 , wherein negotiating the first mask value with the second UE comprises:
transmitting toward the second UE a request for the first mask value and receiving a response message including the first mask value, or
transmitting toward the second UE the first mask value.
15 . The method of claim 13 , wherein
the usage data reporting message includes an application identifier identifying the first application or the first application type, and/or
the first usage value indicates the number of times the first application or applications having the first application type was ran at the first UE during a given interval.
16 . The method of claim 13 , wherein
the first UE comprises a central processing unit (CPU), a display screen, a microphone, and/or a camera, and
the first usage value indicates any one or a sum of:
a duration of how long the CPU ran the particular application within a given time interval,
a duration of how long the display screen was used for the particular application within the given time interval,
a duration of how long the microphone was used for the particular application within the given time interval, and
a duration of how long the camera was used for the particular application within the given time interval.
17 . The method of claim 13 , the method further comprising:
receiving from the network node global machine learning (ML) model information identifying a global ML model, wherein
the global ML model is associated with the first application or the first application type, and
the global ML model is configured to predict future network conditions of a network.
18 . The method of claim 17 , the method further comprising:
training the global ML model using local data available at the first UE, thereby generating a locally trained ML model; and
transmitting toward the network node local ML model information identifying the locally trained ML model.