本技术涉及数据处理技术,尤其涉及一种数据处理方法、装置及电子设备。
背景技术:
1、在新空口(new radio,nr)技术中,分组数据汇聚协议(packet data convergenceprotocol,pdcp)层可能会遇到乱序或重复的数据包。但是,pdcp层的数据包重排序可能会导致资源浪费或丢包的问题。
技术实现思路
1、本技术实施例提供一种数据处理方法、装置及电子设备,能够有效利用资源,并避免数据包的丢包。
2、本技术实施例的技术方案是这样实现的:
3、第一方面,本技术实施例提供一种数据处理方法,包括:确定窗口宽度为第一宽度的连续存储空间,所述连续存储空间内包括待递交至协议栈的第一层的数据;所述第一层为分组汇聚协议层之上的层;
4、基于所述连续存储空间中的第一计数值、分组汇聚协议实体所接收的重排序数据包的序列号和所述第一宽度,将所述重排序数据包插入至所述连续存储空间或将所述重排序数据包插入至非连续存储空间;
5、其中,所述第一计数值为:未递交至所述第一层的第一个服务数据单元对应的计数值。
6、在一些实施例中,所述基于所述连续存储空间中的第一计数值、分组汇聚协议实体所接收的数据包的序列号和所述第一宽度,将所述重排序数据包插入至所述连续存储空间或将所述重排序数据包插入至非连续存储空间包括:
7、响应于所述序列号大于所述第一计数值,且所述序列号小于或等于所述第一宽度,将所述重排序数据包插入至所述连续存储空间。
8、在一些实施例中,所述基于所述数组窗口中的第一计数值、分组汇聚协议实体所接收的重排序数据包的序列号和所述第一宽度,将所述重排序数据包插入至所述连续存储空间或将所述重排序数据包插入至非连续存储空间包括:
9、响应于所述序列号大于所述第一宽度,将所述重排序数据包插入至所述非连续存储空间。
10、在一些实施例中,所述方法还包括:
11、确定接收重排序数据包的频次;
12、根据所述接收重排序数据包的频次,调整所述连续存储空间的窗口宽度。
13、在一些实施例中,所述根据所述接收重排序数据包的频次,调整所述连续存储空间的窗口宽度,包括:
14、响应于所述接收重排序数据包的频次满足频次阈值,比较所述重排序数据包的最大序列号与所述第一宽度的大小;
15、若所述最大序列号大于所述第一宽度,则将所述连续存储空间的窗口宽度调整为第二宽度;所述第二宽度大于或等于所述最大序列号。
16、在一些实施例中,所述接收重排序数据包的频次满足频次阈值,包括:
17、在第一时间区间内接收的重排序数据包的数量大于或等于数量阈值;
18、或者,接收所述重排序数据包对应的时长大于或等于时长阈值。
19、在一些实施例中,所述根据所述接收重排序数据包的频次,调整所述连续存储空间的窗口宽度,包括:
20、响应于所述接收重排序数据包的频次不满足频次阈值,比较所述重排序数据包的最大序列号与所述第一宽度的大小;
21、若所述最大序列号小于所述第一宽度,则将所述连续存储空间的窗口宽度调整为第三宽度;所述第三宽度大于所述最大序列号、且所述第三宽度小于所述第一宽度。
22、在一些实施例中,所述接收重排序数据包的频次不满足频次阈值,包括:
23、在第一时间区间内接收的重排序数据包的数量小于数量阈值;
24、或者,接收所述重排序数据包对应的时长小于时长阈值。
25、第二方面,本技术实施例提供一种数据处理装置,包括:
26、确定模块,用于确定窗口宽度为第一宽度的连续存储空间,所述连续存储空间内包括待递交至协议栈的第一层的数据;所述第一层为分组汇聚协议层之上的层;
27、插入模块,用于基于所述连续存储空间中的第一计数值、分组汇聚协议实体所接收的重排序数据包的序列号和所述第一宽度,将所述重排序数据包插入至所述连续存储空间或将所述重排序数据包插入至非连续存储空间;
28、其中,所述第一计数值为:未递交至所述第一层的第一个服务数据单元对应的计数值。
29、在一些实施例中,所述插入模块,具体用于响应于所述序列号大于所述第一计数值,且所述序列号小于或等于所述第一宽度,将所述重排序数据包插入至所述连续存储空间。
30、在一些实施例中,所述插入模块,具体用于响应于所述序列号大于所述第一宽度,将所述重排序数据包插入至所述非连续存储空间。
31、在一些实施例中,所述确定模块,还用于确定接收重排序数据包的频次;
32、根据所述接收重排序数据包的频次,调整所述连续存储空间的窗口宽度。
33、在一些实施例中,所述确定模块,具体用于响应于所述接收重排序数据包的频次满足频次阈值,比较所述重排序数据包的最大序列号与所述第一宽度的大小;
34、若所述最大序列号大于所述第一宽度,则将所述连续存储空间的窗口宽度调整为第二宽度;所述第二宽度大于或等于所述最大序列号。
35、在一些实施例中,所述接收重排序数据包的频次满足频次阈值,包括:
36、在第一时间区间内接收的重排序数据包的数量大于或等于数量阈值;
37、或者,接收所述重排序数据包对应的时长大于或等于时长阈值。
38、在一些实施例中,所述确定模块,具体用于响应于所述接收重排序数据包的频次不满足频次阈值,比较所述重排序数据包的最大序列号与所述第一宽度的大小;
39、若所述最大序列号小于所述第一宽度,则将所述连续存储空间的窗口宽度调整为第三宽度;所述第三宽度大于所述最大序列号、且所述第三宽度小于所述第一宽度。
40、在一些实施例中,所述接收重排序数据包的频次不满足频次阈值,包括:
41、在第一时间区间内接收的重排序数据包的数量小于数量阈值;
42、或者,接收所述重排序数据包对应的时长小于时长阈值。
43、本技术实施例提供一种电子设备,包括:
44、存储器,用于存储可执行指令;
45、处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的数据处理方法。
46、本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现本技术实施例提供的数据处理方法。
47、本技术实施例提供的数据处理方法,确定窗口宽度为第一宽度的连续存储空间,所述连续存储空间内包括待递交至协议栈的第一层的数据;所述第一层为分组汇聚协议层之上的层;基于所述连续存储空间中的第一计数值、分组汇聚协议实体所接收的重排序数据包的序列号和所述第一宽度,将所述重排序数据包插入至所述连续存储空间或将所述重排序数据包插入至非连续存储空间。本技术实施例采用数据最小堆和数组结合的方式对数据包进行存储,根据重排序数据包的序列号与数据的窗口宽度的大小关系确定将重排序数据包存储至数组或存储至数据最小堆。由于数组是连续的存储空间,因此能够充分利用cpucache资源;将数据包插入数组时,只需要一个数据插入指令,可将多个(如几十个)数据包一次性插入数组,提高服务器的性能。在数组没有足够的容量存储重排序数据包时,将重排序数据包插入至数据最小堆,可以避免数据包的丢包问题,提高数据传输的效率,进而提高用户体验。