CN115002842B - 数据传输的方法、电子设备及可读存储介质 - Google Patents
数据传输的方法、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN115002842B CN115002842B CN202210842069.3A CN202210842069A CN115002842B CN 115002842 B CN115002842 B CN 115002842B CN 202210842069 A CN202210842069 A CN 202210842069A CN 115002842 B CN115002842 B CN 115002842B
- Authority
- CN
- China
- Prior art keywords
- service session
- bandwidth
- quota
- bandwidth quota
- service
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 69
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004891 communication Methods 0.000 description 33
- 239000010410 layer Substances 0.000 description 21
- 230000006870 function Effects 0.000 description 16
- 101150053844 APP1 gene Proteins 0.000 description 13
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 13
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 238000010295 mobile communication Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 6
- 101100055496 Arabidopsis thaliana APP2 gene Proteins 0.000 description 4
- 101100016250 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GYL1 gene Proteins 0.000 description 4
- 102100038359 Xaa-Pro aminopeptidase 3 Human genes 0.000 description 4
- 101710081949 Xaa-Pro aminopeptidase 3 Proteins 0.000 description 4
- 238000005266 casting Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 241000272201 Columbiformes Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/16—Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
- H04W28/18—Negotiating wireless communication parameters
- H04W28/20—Negotiating bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/16—Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
- H04W28/24—Negotiating SLA [Service Level Agreement]; Negotiating QoS [Quality of Service]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请公开了一种数据传输的方法、电子设备及可读存储介质,属于终端技术领域。包括:在当前的QoS预算周期内,确定正在进行的每个业务会话对应的第一带宽配额,第一带宽配额用于指示对应的业务会话在QoS预算周期内能够发送的最大数据量。按照每个业务会话的优先级从高至低的顺序,依次遍历每个业务会话。每遍历到一个业务会话时,基于当前遍历到的业务会话对应的第一带宽配额与上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源。基于所分配的带宽资源,发送当前遍历到的业务会话的数据包。本申请通过衡量接收数据包所需的带宽配额,为接收数据包预留出一定的带宽资源,可以避免发送数据包对接收性能造成影响。
Description
技术领域
本申请涉及终端技术领域,特别涉及一种数据传输的方法、电子设备及可读存储介质。
背景技术
随着终端技术的快速发展,为了满足电子设备的通信需求,近场通信网络得到广泛推广与应用。目前,一些主流的近场通信网络以半双工方式为主,譬如无线保真(Wireless-Fidelity,WiFi)网络。然而,在半双工的近场通信网络中,电子设备在进行业务会话时,发送数据包会影响到接收性能,从而容易导致数据传输效率降低。
发明内容
本申请提供了一种数据传输的方法、电子设备及可读存储介质,可以解决电子设备在进行业务会话时发送数据包会影响到接收性能,从而导致数据传输效率较低的问题。所述技术方案如下:
第一方面,提供了一种数据传输的方法,所述方法包括:
在当前的服务质量QoS预算周期内,确定正在进行的每个业务会话对应的第一带宽配额,所述第一带宽配额用于指示对应的业务会话在所述QoS预算周期内能够发送的最大数据量;
按照所述每个业务会话的优先级从高至低的顺序,依次遍历所述每个业务会话;
每遍历到一个业务会话时,基于当前遍历到的业务会话对应的第一带宽配额与上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源;
基于所分配的带宽资源,发送当前遍历到的业务会话的数据包。
如此,通过基于上一个预设发送周期内的接收数据的带宽占用率,衡量当前接收数据包所需的带宽配额,从而适当地减少当前遍历到的业务会话对应的第二带宽配额,为接收数据包预留出一定的带宽资源,可以避免发送数据包对接收性能造成影响。
另外,在QoS预算周期内通过统一分配带宽配额,控制各个业务会话最多能够发送的数据量,以合理地分配带宽资源,从而可以保证数据通信效率。
作为本申请的一个示例,所述每遍历到一个业务会话时,基于当前遍历到的业务会话对应的第一带宽配额与上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源,包括:
若存在第一剩余配额,确定当前遍历到的业务会话对应的第二带宽配额,所述第二带宽配额是所述第一剩余配额与当前遍历到的业务会话对应的第一带宽配额的总和,所述第一剩余配额是指当前遍历到的业务会话的上一个业务会话对应的剩余的带宽配额;
基于当前遍历到的业务会话对应的第二带宽配额与所述上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源。
如此,在存在第一剩余配额的情况下,将第一剩余配额叠加至当前遍历到的业务会话对应的第一带宽配额中,以最大化的利用带宽配额,从而提供带宽配额的分配率。
作为本申请的一个示例,所述基于当前遍历到的业务会话对应的第二带宽配额与所述上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源,包括:
基于所述上一个预设发送周期内的接收数据的带宽占用率,确定目标速率发送系数,所述目标速率发送系数用于指示当前遍历到的业务会话能够占用所述设备可用总带宽的比例;
将当前遍历到的业务会话对应的第二带宽配额与所述目标速率发送系数相乘,得到当前遍历到的业务会话对应的第三带宽配额;
为当前遍历到的业务会话分配所述第三带宽配额的带宽资源。
如此,将当前遍历到的业务会话对应的第二带宽配额与目标速率发送系数相乘,以适当地减少当前遍历到的业务会话对应的第二带宽配额,为接收数据包预留出一定的带宽资源。
作为本申请的一个示例,所述基于所述上一个预设发送周期内的接收数据的带宽占用率,确定目标速率发送系数,包括:
基于所述上一个预设发送周期内的接收数据的带宽占用率,通过如下公式(1)确定所述目标速率发送系数:
如此,即使上一个预设发送周期内接收数据包,仍可以根据上述公式为接收数据预留一定的带宽配额,从而便于在有数据需要接收时,能够有足够的带宽资源供使用。
作为本申请的一个示例,所述在当前的服务质量QoS预算周期内,确定正在进行的每个业务会话对应的第一带宽配额,包括:
在所述当前的服务质量QoS预算周期内,确定多个二级带宽配额,所述多个二级带宽配额中的每个二级带宽配额为同类应用程序的一类业务会话在所述QoS预算周期内能够传输的最大数据量,不同类应用程序包括前台应用程序和后台应用程序;
根据所述多个二级带宽配额以及所述每个业务会话的优先级,确定所述每个业务会话对应的第一带宽配额,所述优先级是根据所述运行状态和会话类型确定。
如此,通过规定不同类应用程序的一类业务会话在QoS预算周期内能够传输的最大数据量,在QoS预算周期内统一分配带宽配额,以合理地利用带宽资源。
作为本申请的一个示例,所述在所述当前的服务质量QoS预算周期内,确定多个二级带宽配额,包括:
在所述当前的服务质量QoS预算周期内,确定当前的设备可用总带宽;
基于所述设备可用总带宽、所述QoS预算周期的时长、以及所述不同类应用程序中每类应用程序对应的第一系数,确定所述每类应用程序对应的一级带宽配额,所述一级带宽配额是在所述QoS预算周期内对应类应用程序能够传输的最大数据量;
将所述每类应用程序对应的一级带宽配额分别与多个指定业务类型中每个指定业务类型对应的第二系数相乘,得到所述多个二级带宽配额。
如此,根据当前的设备可用总带宽、每类应用程序对应的第一系数、以及每类业务会话对应的第二系数,确定多个二级带宽配额,以便于能够为高优先级的业务会话分配较多的带宽配额,同时为低优先级的业务会话也分配一定的带宽配额,避免低优先级的业务会话分配不到带宽资源。
作为本申请的一个示例,所述每个二级带宽配额对应一种优先级,所述根据所述多个二级带宽配额以及所述每个业务会话的优先级,确定所述每个业务会话对应的第一带宽配额,包括:
根据每个业务会话集合的优先级,从所述多个二级带宽配额中确定所述每个业务会话集合对应的二级带宽配额,所述每个业务会话集合包括正在进行的业务会话中对应的相同运行状态的应用程序的同一类业务会话,同一类业务会话的优先级相同;
将所述每个业务会话集合对应的二级带宽配额与所述每个业务会话集合中的业务会话数量相除,得到所述每个业务会话集合中每个业务会话对应的备选带宽配额;
基于所述每个业务会话对应的备选带宽配额,确定所述每个业务会话对应的第一带宽配额。
如此,通过对每个业务会话进行分类,确定每类业务会话对应的二级带宽配额,进而确定每个业务会话能够分配到的第一带宽配额。
作为本申请的一个示例,所述基于所述每个业务会话对应的备选带宽配额,确定所述每个业务会话对应的第一带宽配额,包括:
按照所述每个二级带宽配额的优先级从低至高的顺序,依次遍历所述每个二级带宽配额;
每遍历到一个二级带宽配额时,若正在进行的业务会话中不存在目标业务会话,且当前遍历到的二级带宽配额对应的优先级不是最高优先级,则将当前遍历到的二级带宽配额确定为待分配二级带宽配额,所述目标业务会话是指优先级是当前遍历到的二级带宽配额对应的优先级的业务会话;
若正在进行的业务会话中存在所述目标业务会话,且当前存在待分配二级带宽配额,则根据所述目标业务会话的备选带宽配额与当前存在的待分配二级带宽配额,确定所述目标业务会话对应的第一带宽配额;
若正在进行的业务会话中存在所述目标业务会话,且当前不存在待分配二级带宽配额,则将所述目标业务会话的备选带宽配额,确定为所述目标业务会话对应的第一带宽配额;
若正在进行的业务会话中不存在所述目标业务会话,且当前遍历到的二级带宽配额对应的优先级是最高优先级,则将当前遍历到的二级带宽配额确定为待分配二级带宽配额,并基于当前存在的待分配二级带宽配额,重新确定正在进行的业务会话中优先级最高的业务会话对应的第一带宽配额。
如此,在分配二级带宽配额时,按照每个业务会话的优先级由低至高的顺序进行分配,以便于能够将在本QoS预算周期内计算的各个二级带宽配额合理地,最大化的分配给当前的各个业务会话。
作为本申请的一个示例,所述方法还包括:
若所述当前的QoS预算周期内存在第三剩余配额,则当下一个业务会话开始时,基于所述第三剩余配额以及所述QoS预算周期内最后一个预设发送周期内的接收数据的带宽占用率,为所述下一个业务会话分配带宽资源。
在当前的QoS预算周期内存在第三剩余配额的情况下,如果下一个业务会话开始,则可以直接将第三剩余配额分配给下一个业务会话,并结合QoS预算周期内最后一个预设发送周期内的接收数据的带宽占用率,为下一个业务会话分配带宽资源,以合理利用剩余的第三剩余配额,并可以为接收数据预留一定的带宽资源。
第二方面,提供了一种数据传输的装置,所述数据传输装置具有实现上述第一方面中数据传输方法行为的功能。所述数据传输装置包括至少一个模块,所述至少一个模块包括发送引擎模块,用于:
在当前的服务质量QoS预算周期内,确定正在进行的每个业务会话对应的第一带宽配额,所述第一带宽配额用于指示对应的业务会话在所述QoS预算周期内能够发送的最大数据量;
按照所述每个业务会话的优先级从高至低的顺序,依次遍历所述每个业务会话;
每遍历到一个业务会话时,基于当前遍历到的业务会话对应的第一带宽配额与上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源;
基于所分配的带宽资源,发送当前遍历到的业务会话的数据包。
作为本申请的一个示例,所述发送引擎模块用于:
若存在第一剩余配额,确定当前遍历到的业务会话对应的第二带宽配额,所述第二带宽配额是所述第一剩余配额与当前遍历到的业务会话对应的第一带宽配额的总和,所述第一剩余配额是指当前遍历到的业务会话的上一个业务会话对应的剩余的带宽配额;
基于当前遍历到的业务会话对应的第二带宽配额与所述上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源。
作为本申请的一个示例,所述发送引擎模块用于:
基于所述上一个预设发送周期内的接收数据的带宽占用率,确定目标速率发送系数,所述目标速率发送系数用于指示当前遍历到的业务会话能够占用所述设备可用总带宽的比例;
将当前遍历到的业务会话对应的第二带宽配额与所述目标速率发送系数相乘,得到当前遍历到的业务会话对应的第三带宽配额;
为当前遍历到的业务会话分配所述第三带宽配额的带宽资源。
作为本申请的一个示例,所述发送引擎模块用于:
基于所述上一个预设发送周期内的接收数据的带宽占用率,通过如下公式(1)确定所述目标速率发送系数:
作为本申请的一个示例,所述发送引擎模块用于:
在所述当前的服务质量QoS预算周期内,确定多个二级带宽配额,所述多个二级带宽配额中的每个二级带宽配额为同类应用程序的一类业务会话在所述QoS预算周期内能够传输的最大数据量,不同类应用程序包括前台应用程序和后台应用程序;
根据所述多个二级带宽配额以及所述每个业务会话的优先级,确定所述每个业务会话对应的第一带宽配额,所述优先级是根据所述运行状态和会话类型确定。
作为本申请的一个示例,所述发送引擎模块用于:
在所述当前的服务质量QoS预算周期内,确定当前的设备可用总带宽;
基于所述设备可用总带宽、所述QoS预算周期的时长、以及所述不同类应用程序中每类应用程序对应的第一系数,确定所述每类应用程序对应的一级带宽配额,所述一级带宽配额是在所述QoS预算周期内对应类应用程序能够传输的最大数据量;
将所述每类应用程序对应的一级带宽配额分别与多个指定业务类型中每个指定业务类型对应的第二系数相乘,得到所述多个二级带宽配额。
作为本申请的一个示例,所述每个二级带宽配额对应一种优先级;所述发送引擎模块用于:
根据每个业务会话集合的优先级,从所述多个二级带宽配额中确定所述每个业务会话集合对应的二级带宽配额,所述每个业务会话集合包括正在进行的业务会话中对应的相同运行状态的应用程序的同一类业务会话,同一类业务会话的优先级相同;
将所述每个业务会话集合对应的二级带宽配额与所述每个业务会话集合中的业务会话数量相除,得到所述每个业务会话集合中每个业务会话对应的备选带宽配额;
基于所述每个业务会话对应的备选带宽配额,确定所述每个业务会话对应的第一带宽配额。
作为本申请的一个示例,所述发送引擎模块用于:
按照所述每个二级带宽配额的优先级从低至高的顺序,依次遍历所述每个二级带宽配额;
每遍历到一个二级带宽配额时,若正在进行的业务会话中不存在目标业务会话,且当前遍历到的二级带宽配额对应的优先级不是最高优先级,则将当前遍历到的二级带宽配额确定为待分配二级带宽配额,所述目标业务会话是指优先级是当前遍历到的二级带宽配额对应的优先级的业务会话;
若正在进行的业务会话中存在所述目标业务会话,且当前存在待分配二级带宽配额,则根据所述目标业务会话的备选带宽配额与当前存在的待分配二级带宽配额,确定所述目标业务会话对应的第一带宽配额;
若正在进行的业务会话中存在所述目标业务会话,且当前不存在待分配二级带宽配额,则将所述目标业务会话的备选带宽配额,确定为所述目标业务会话对应的第一带宽配额;
若正在进行的业务会话中不存在所述目标业务会话,且当前遍历到的二级带宽配额对应的优先级是最高优先级,则将当前遍历到的二级带宽配额确定为待分配二级带宽配额,并基于当前存在的待分配二级带宽配额,重新确定正在进行的业务会话中优先级最高的业务会话对应的第一带宽配额。
作为本申请的一个示例,所述发送引擎模块还用于:
若所述当前的QoS预算周期内存在第三剩余配额,则当下一个业务会话开始时,基于所述第三剩余配额以及所述QoS预算周期内最后一个预设发送周期内的接收数据的带宽占用率,为所述下一个业务会话分配带宽资源。
第三方面,提供了一种电子设备,所述电子设备的结构中包括处理器和存储器,所述存储器用于存储支持电子设备执行上述第一方面所提供的数据传输方法的程序,以及存储用于实现上述第一方面所述的数据传输方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述电子设备还可以包括通信总线,所述通信总线用于在所述处理器与所述存储器之间建立连接。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的数据传输方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的数据传输方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
图1是根据一示例性实施例示出的一种电子设备的结构示意图;
图2是根据一示例性实施例示出的一种电子设备的软件架构示意图;
图3是根据一示例性实施例示出的一种应用场景的示意图;
图4是根据一示例性实施例示出的一种数据传输方法的流程示意图;
图5是根据一示例性实施例示出的一种各个业务会话对应的第一带宽配额的示意图;
图6是根据一示例性实施例示出的一种在一个QoS预算周期内带宽资源的占用情况的示意图;
图7是根据一示例性实施例示出的一种数据传输装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
目前,大多数的电子设备能够实现同时进行多个业务会话(简称:session)。其中,一个业务会话是指从一个业务开始至该业务结束。譬如,对于视频通话业务来说,一个业务会话是指从视频通话开始至视频通话结束。再如,对于投屏业务来说,一个业务会话是指从投屏开始至投屏结束。又如,对于文件传输业务来说,一个业务会话是指从文件传输开始至文件传输结束。再如,对于信息传输业务来说,一个业务会话是指从信息传输开始至信息传输结束。
业务会话一般可能涉及大文件传输(如文件分享、手机克隆)、关键信息传输(如控制指令传输、账号信息同步)、高清视频传输(如高清视频通信、高清投屏)中的一种或者多种。示例性地,用户在同一时间段内使用手机与其他用户进行视频通话、将某文件发送至电脑、以及使用手机控制空调,该种情况下,该手机在这段时间内需要发送视频数据、发送某文件以及发送空调的控制指令。
为了在存在多个业务会话时数据通信仍可以有条不紊,通常需要在进行业务会话的过程中合理分配带宽资源。尤其在一些半双工的近场通信网络中,由于发送数据包和接收数据包共用设备可用总带宽,所以电子设备在进行业务会话时,发送数据包会影响到接收性能,从而会影响数据传输效率。
为此,本申请实施例提供了一种数据传输方法,该方法不仅可以规定某一时间各个业务会话所能发送的数据量,使得高优先级的业务会话获取更多的带宽资源,同时低优先级的业务会话也可以分配到少量的带宽资源,从而使得数据传输有条不紊。而且,该方法还可以在分配带宽配额时,通过衡量当前接收数据的情况,适当减少用于发送数据包的带宽配额,预留出一定的带宽资源供电子设备接收数据包,从而提高数据传输效率。其具体实现可以参见下文各个实施例。
在对本申请实施例提供的数据传输的方法进行详细地解释说明之前,先对本申请实施例涉及的电子设备予以说明。该电子设备中可以安装有多个应用程序,该多个应用程序中的某个或某些应用程序可以进行业务会话。在一个实施例中,该电子设备支持投屏功能,譬如该电子设备可以投屏至其他电子设备上,或者,支持其他电子设备投屏至该电子设备上。作为示例而非限定,该电子设备可以是手机、平板电脑、笔记本电脑、台式机、便携式电脑之类的设备,本申请实施例对此不作限定。
图1是本申请实施例提供的一种电子设备的结构示意图。参见图1,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serialbus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,比如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口,如可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。比如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
外部存储器接口120可以用于连接外部存储卡,比如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。比如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,计算机可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,来执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100在使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,比如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。
接下来对电子设备100的软件系统予以说明。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的安卓(Android)系统为例,对电子设备100的软件系统进行示例性说明。
图2是本申请实施例提供的一种电子设备100的软件系统的框图。参见图2,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统层,以及内核层。
应用程序层可以包括一系列应用程序包。如图2所示,应用程序包可以包括即时通讯,投屏,分享,相机,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
用户可以通过投屏应用程序触发电子设备100投屏至其他电子设备上。
在一个示例中,分享应用程序可以是飞鸽传书TM、飞秋TM、QQTM等。
进一步地,应用程序层还包括极简协议栈的发送引擎模块,发送引擎模块可以为一些应用程序提供可调用的接口,如此,当该类应用程序需要进行业务会话时,可以调用所提供的接口,从而通过发送引擎模块来发送业务会话的数据包。相应的,发送引擎模块按照本申请实施例提供的方法传输数据。在未进行业务会话的情况下,发送引擎模块进入休眠状态。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问,这些数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,比如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序的显示界面,显示界面可以由一个或多个视图组成,比如,包括显示短信通知图标的视图,包括显示文字的视图,以及包括显示图片的视图。电话管理器用于提供电子设备100的通信功能,比如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如,通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或滚动条文本形式出现在系统顶部状态栏的通知,比如后台运行的应用程序的通知。通知管理器还可以是以对话窗口形式出现在屏幕上的通知,比如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块,比如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(比如:OpenGL ES),2D图形引擎(比如:SGL)等。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,比如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
接下来对本申请实施例涉及的应用场景进行简单介绍。
请参考图3,图3是根据一示例性实施例示出的一种应用场景的示意图。手机1、电脑2、平板电脑3以及智能电视机4均处于同一近场通信网络中,且该近场通信网络以半双工方式通信。示例性地,近场通信网络可以是WiFi网络,或者是点对点(point to point,P2P)网络。手机1可以同时与电脑2、平板电脑3以及智能电视机4进行多个业务会话,多个业务会话中某个或某些业务会话需要设备间相互传输数据。另外,进行该多个业务会话中各个业务会话的应用程序所涉及的运行状态可能包括前台运行状态和/或后台运行状态,该多个业务会话中各个业务会话的会话类型可能包括多个指定会话类型中的一种,多个指定业务类型根据实际需求进行设置。作为本申请的一个示例,多个指定会话类型包括信息类型(简称:DMESG)、数据流类型(简称:DSTREAM)和文件类型(简称:DFILE)中的一种。不难理解,DMESG是指发送的数据包为信息,DSTREAM是指发送的数据包为数据流,DFILE是指发送的数据包为文件。
在一个示例中,手机1通过APP1(譬如第三方电视软件)控制智能电视机4,手机1通过APP2向平板电脑3发送账号同步信息;手机通过APP3向电脑2发送信息;手机1通过APP4(譬如投屏应用程序)向平板电脑3投屏,该种情况下,手机1与平板电脑3之间相互传输数据;手机1通过APP5(譬如分享应用程序)向平板电脑3发送文件。其中,APP1与APP2均运行于前台,APP3、APP4和APP5均运行于后台。该种情况下,正在进行业务会话的各个应用程序的运行状态包括前台运行状态和后台运行状态,另外,正在进行的业务会话的会话类型包括DMESG、DSTREAM以及DFILE。
在一个示例中,手机1通过APP4向平板电脑3投屏,且手机1通过APP5向电脑2发送文件。APP4与APP5均运行于后台。该种情况下,正在进行业务会话的各个应用程序的运行状态包括后台运行状态,另外,正在进行的业务会话的会话类型包括DSTREAM和DFILE。
需要说明的是,上述两种应用场景仅是示例性地。在另一应用场景中,电子设备还可能同时进行更多的业务会话,譬如处于前台应用程序正在进行多个业务会话,且该多个业务会话的会话类型包括DMESG、DSTREAM以及DFILE,同时,处于后台应用程序也正在进行多个业务会话,该多个业务会话的会话类型也包括DMESG、DSTREAM以及DFILE。在又一应用场景中,电子设备也可能仅进行一个业务会话,示例性地,进行该业务会话的应用程序处于前台运行状态,且该业务会话的类型为DSTREAM。针对上述几种可能的应用场景,均可以采用本申请实施例提供的方法进行数据传输,以合理地、充分地利用带宽资源。
另外还需要说明的是,本申请实施例是以该方法应用于近场通信网络为例进行说明。在另一实施例中,该方法还可以应用于其他半双工的通信环境中,本申请实施例对此不作限定。
接下来结合附图对本申请实施例提供的数据传输的方法进行详细介绍。请参考图4,图4是根据一示例性示出的一种数据传输的方法的流程示意图。作为示例而非限定,该方法应用于上述图1、图2所示的电子设备中,该电子设备可以通过发送引擎模块执行该方法。具体地,该方法可以包括如下部分或者全部内容:
步骤401:在存在至少一个业务会话的情况下,唤醒发送引擎模块。
一个业务会话对应一个应用程序,或者说,一个业务会话是通过一个应用程序发起的。在同一时间,一个应用程序仅能进行一种会话类型的业务会话。如前文所述,一个业务会话的会话类型可以是DMESG、DSTREAM或者DFILE。
当电子设备通过某应用程序发起业务会话时,如果发送引擎模块为该应用程序提供了可调用的接口,则该应用程序调用该接口,唤醒发送引擎模块,以通过发送引擎模块传输该业务会话的数据包。具体地,应用程序调用该接口唤醒epoll_wait,从而唤醒发送引擎模块。
不难理解,由于一个业务会话对应一个应用程序,所以当存在至少一个业务会话时,说明有至少一个应用程序要通过该发送引擎模块进行业务会话。也即当在同一时间仅有一个业务会话调用该接口时,存在一个业务会话;当在同一时间有多个应用程序调用该接口时,存在多个业务会话。
在一个可能的场景中,该至少一个应用程序可能仅包括前台应用程序。譬如电子设备中仅有APP1在前台运行,且电子设备通过APP1控制智能电视机,则此时APP1正在进行业务会话,也即该至少一个应用程序仅包括处于前台运行的APP1。
在另一个可能的场景中,该至少一个应用程序也可能仅包括后台应用程序。譬如电子设备中仅有APP1在运行,且APP1运行于后台,并正在发送文件给其他电子设备,则此时APP1正在进行业务会话,也即该至少一个应用程序仅包括处于后台运行的APP1。
在又一个可能的场景中,该至少一个应用程序还可能既包括前台应用程序,又包括后台应用程序。譬如电子设备的前台运行有APP4,且电子设备正在通过APP4投屏,另外电子设备的后台运行有APP5,且APP5正在发送文件给其他电子设备。此时,APP4正在进行业务会话以及APP5也正在进行业务会话,也即该至少一个应用程序包括处于前台运行的APP4和处于后台运行的APP5。
不难理解,在同一时间,进行业务会话的前台应用程序的数量可能是一个或者多个,和/或,进行业务会话的后台应用程序的数量也可能是一个或者多个。
步骤402:发送引擎模块确定多类应用程序中每类应用程序对应的一级带宽配额。
在本申请实施例中,应用程序的分类是根据应用程序的运行状态确定,由于应用的运行状态包括前台运行状态和后台运行状态,所以多类应用程序包括前台应用程序和后台应用程序。
一级带宽配额是指在QoS预算周期内对应类应用程序能够传输的最大数据量。换句话说,一级带宽配额是指在QoS预算周期内对应类应用程序最多能够传输多少个数据包。具体地,前台应用程序对应的一级带宽配额是指在该QoS预算周期内前台应用程序能够传输的最大总数据量;后台应用程序对应的一级带宽配额是指在该QoS预算周期内后台应用程序能够传输的最大总数据量。
QoS预算周期是指预估的QoS计算、分配的周期。QoS预算周期的时长可以根据实际需求进行设置。
当电子设备正在进行业务会话时,为了能够合理地分配带宽资源,可以周期性地计算、分配带宽配额以及基于该带宽配额发送数据包。因此,在当前的QoS预算周期内,发送引擎模块需要先计算每个业务会话对应的第一带宽配额,为此,发送引擎模块确定每类应用程序对应的一级带宽配额。
作为本申请的一个示例,发送引擎模块确定每类应用程序对应的一级带宽配额的具体实现可以包括:确定当前的设备可用总带宽。基于设备可用总带宽、QoS预算周期的时长、以及每类应用程序对应的第一系数,通过如下公式(2)确定每类应用程序对应的一级带宽配额:
可以通过周期性检测来确定。在一个示例中,发送引擎模块可以每隔预设发送周期进行一次检测,以确定设备可用总带宽。其中预设发送周期是指发送引擎模块定义的一次发包任务的时间长度,可以根据实际需求进行设置,譬如可以为5毫秒。拥塞控制通过设置该预设发送周期内能够发送的数据量可以限定该时间段内的最大带宽。作为示例而非限定,QoS预算周期可以是预设发送周期的整数倍,譬如可以为15毫秒。
每类应用程序对应的第一系数可以根据需求进行设置。在一个示例中,前台应用程序对应的第一系数可以为0.7,后台应用程序对应的第一系数可以为0.3。如此使得在一个QoS预算周期内,发送引擎模块可以将70%的时间用于对前台应用程序的业务会话的数据包进行发送,剩下的30%的时间用于发送后台应用程序的业务会话的数据包。
需要说明的是,由于在一种可能的情况下,一些应用程序无法调用发送引擎模块提供的接口,也即一些应用程序的业务会话的数据包不通过发送引擎模块传输,所以为了能够给这些应用程序留有一些带宽资源,在确定每类应用程序对应的一级带宽配额时,发送引擎模块将设备可用总带宽乘以0.7,也即发送引擎模块仅使用设备可用总带宽的70%,从而给无法调用接口的那些应用程序留有30%的带宽资源。
当然在另一种可能的情况下,电子设备中的各种应用程序均可以调用发送引擎模块提供的接口,也即各种应用程序的业务会话的数据包均可以通过发送引擎模块进行传输,该种情况下,在计算一级带宽配额时公式(2)中可以去掉系数0.7。
步骤403:发送引擎模块将每类应用程序对应的一级带宽配额分别与多个指定业务类型中每个指定业务类型对应的第二系数相乘,得到多个二级带宽配额。
如前文所述,多个指定业务类型包括DMESG、DSTREAM以及DFILE。
每个指定业务类型对应的第二系数可以根据实际需求进行设置。作为示例而非限定,DMESG对应的第二系数为0.4,DSTREAM对应的第二系数为0.3,DFILE对应的第二系数为0.3,也即针对同一类应用程序的业务会话,DMESG、DSTREAM以及DFILE按照4:3:3的比例分配该类应用程序对应的一级带宽配额。具体地,针对前台应用程序的业务会话,DMESG、DSTREAM以及DFILE按照4:3:3的比例分配前台应用程序对应的一级带宽配额;针对后台应用程序的业务会话,DMESG、DSTREAM以及DFILE按照4:3:3的比例分配后台应用程序对应的一级带宽配额。
多个二级带宽配额中的每个二级带宽配额为同种运行状态下的应用程序的一类业务会话在QoS预算周期内能够传输的最大数据量。换句话说,每个二级带宽配额是指同种运行状态下的应用程序的一类业务会话在QoS预算周期内最多能够传输多少个数据包。
作为本申请的一个示例,运行状态包括前台运行状态和后台运行状态,多个指定业务会话包括DMESG、DSTREAM以及DFILE,在该种情况下,可以确定6个二级带宽配额,分别包括前台运行状态的应用程序的DMESG类业务会话对应的二级带宽配额、前台运行状态的应用程序的DSTREAM类业务会话对应的二级带宽配额、前台运行状态的应用程序的DFILE类业务会话对应的二级带宽配额、后台运行状态的应用程序的DMESG类业务会话对应的二级带宽配额、后台运行状态的应用程序的DSTREAM类业务会话对应的二级带宽配额、后台运行状态的应用程序的DFILE类业务会话对应的二级带宽配额。为了便于描述,可以依次记为B1、B2、B3、B4、B5以及B6。进一步地,在DMESG对应的第二系数为0.4、DSTREAM对应的第二系数为0.3、DFILE对应的第二系数为0.3的情况下,B1为,B2为,B3为,B4为,B5为,B6为。
需要说明的是,上述步骤402至步骤403是确定多个二级带宽配额的一种可能的实现方式,按照上述方式确定多个二级带宽配额,由于每个二级带宽配额与应用程序的运行状态和业务会话的会话类型相关,所以,可以便于后续根据至少一个业务会话(也即正在进行的业务会话)中每个业务会话的会话类型以及每个业务会话对应的应用程序的运行状态,将多个二级带宽配额合理地分配给每个业务会话。当然还可以采用其他方式确定多个二级带宽配额,譬如在另一个可能的实施例中,还可以再为每种指定业务类型设置不同的权重,然后结合不同的权重,确定多个二级带宽配额。
步骤404:发送引擎模块根据每个业务会话集合的优先级,从多个二级带宽配额中确定每个业务会话集合对应的二级带宽配额。
每个业务会话集合包括至少一个业务会话中对应的相同运行状态的应用程序的同一类业务会话,同一类业务会话的优先级相同。
优先级用于指示对应的业务会话的重要性。优先级越高,对应的业务会话的重要性越强。在本申请实施例中,优先级高的业务会话的数据包可以优先发送,且优先级高的业务会话为其分配的带宽资源一般较多。反之,优先级低的业务会话的数据包后发送,且优先级低的业务会话分配到的带宽资源少于优先级高的业务会话分配到的带宽资源。
作为本申请的一个示例,优先级根据应用程序的运行状态与会话类型确定。前台应用程序的优先级高于后台应用程序的优先级。而对于同一运行状态下的应用程序,DMESG类业务会话的优先级高于DSTREAM类业务会话的优先级,DSTREAM类业务会话的优先级高于DFILE类业务会话的优先级。由此可见,业务会话的优先级由高至低排序依次为前台应用程序的DMESG类、前台应用程序的DSTREAM类、前台应用程序的DFILE类、后台应用程序的DMESG类、后台应用程序的DSTREAM类、后台应用程序的DFILE类,分别为P1、P2、P3、P4、P5、P6。
为了确定每个业务会话的带宽配额,发送引擎模块可以对至少一个业务会话进行分类,将对应的应用程序的运行状态相同、且属于同一会话类型的业务会话划为一个业务会话集合,如此可以得到至少一个业务会话集合。譬如,假设至少一个业务会话中各个业务会话对应的应用程序包括前台应用程序和后台应用程序,则分别将至少一个业务会话中前台应用程序的同一类业务会话划为一个业务会话集合,以及分别将至少一个业务会话中后台应用程序的同一类业务会话划为一个业务会话集合。由于每个业务会话集合中包括的是同一运行状态的应用程序的同一类业务会话,所以一个业务会话集合对应一个优先级。
示例性地,假设前台应用程序包括APP1和APP2,后台应用程序包括APP3、APP4和APP5,APP1的业务会话session1的业务类型为DMESG,APP2的业务会话session2的业务类型为DMESG,APP3的业务会话session3的业务类型为DMESG,APP4的业务会话session4的业务类型为DSTREAM,APP5的业务会话session5的业务类型为DFILE。则经过划分后,APP1的业务会话session1与APP2的业务会话session2属于业务会话集合G1,优先级为P1;APP3的业务会话session3属于业务会话集合G2,优先级为P4;APP4的业务会话session4属于业务会话集合G3,优先级为P5;APP5的业务会话session5属于业务会话集合G4,优先级为P6。根据前文描述不难理解,P6<P5<P4<P1。
由于每个二级带宽配额对应一种运行状态和一种指定会话类型,且优先级是根据应用程序的运行状态和会话类型确定的,所以不难理解,每个二级带宽配额对应一个优先级。因此,发送引擎模块可以根据每个业务会话集合的优先级,从步骤403所确定的所有二级带宽配额中,确定每个业务会话集合对应的二级带宽配额。示例性地,业务会话集合G1对应的二级带宽配额为B1,业务会话集合G2对应的二级带宽配额为B4,业务会话集合G3对应的二级带宽配额为B5,业务会话集合G4对应的二级带宽配额为B6。
步骤405:发送引擎模块将每个业务会话集合对应的二级带宽配额与每个业务会话集合中的业务会话数量相除,得到每个业务会话集合中每个业务会话对应的备选带宽配额。
针对每个业务会话集合,发送引擎模块确定该业务会话集合中包括的业务会话的数量。然后,将该业务会话集合对应的二级带宽配额与该数量相除,从而使得该业务会话集合中的每个业务会话能够均分该业务会话集合对应的二级带宽配额,进而得到该业务会话集合中每个业务会话的备选带宽配额。按照该种方式,可以确定至少一个业务会话中的每个业务会话的备选带宽配额。
示例性地,继续以上述例子为例,由于业务会话集合G1中包括的业务会话的数量为两个,所以,业务会话集合G1中的每个业务会话对应的备选带宽配额为B1/2;由于业务会话集合G2中包括的业务会话的数量为1个,所以,业务会话集合G2中的业务会话对应的备选带宽配额为B4;由于业务会话集合G3中包括的业务会话的数量为1个,所以,业务会话集合G3中的业务会话对应的备选带宽配额为B5;由于业务会话集合G4中包括的业务会话的数量为1个,所以,业务会话集合G4中的业务会话对应的备选带宽配额为B6。
步骤406:发送引擎模块基于每个业务会话对应的备选带宽配额,确定每个业务会话对应的第一带宽配额。
作为本申请的一个示例,在基于每个业务会话对应的备选带宽配额,确定每个业务会话对应的第一带宽配额的过程中,可以按照每个二级带宽配额的优先级从低至高的顺序,依次遍历每个二级带宽配额。在一个实施例中,该每个二级带宽配额包括B1、B2、B3、B4、B5以及B6。每遍历到一个二级带宽配额时,根据当前遍历到的二级带宽配额对应的优先级、正在进行的业务会话中每个业务会话的优先级、以及每个业务会话对应的备选带宽配额,为每个业务会话分配对应的第一带宽配额。具体包括如下几种可能的情况:
第一种情况:若正在进行的业务会话中不存在目标业务会话,且当前遍历到的二级带宽配额对应的优先级不是最高优先级,则将当前遍历到的二级带宽配额确定为待分配二级带宽配额,目标业务会话是指优先级是当前遍历到的二级带宽配额对应的优先级的业务会话。
根据前文记载可知,每个二级带宽配额对应一个优先级。如果正在进行的业务会话中不包括优先级是当前遍历到的二级带宽配额对应的优先级的业务会话,则可以确定正在进行的业务会话中没有业务会话因优先级匹配而分当前遍历到的二级带宽配额。为了避免当前遍历到的二级带宽配额的浪费,发送引擎模块将当前遍历到的二级带宽配额确定为待分配二级带宽配额,以便于后续对其进行分配。进一步地,在当前遍历到的二级带宽配额对应的优先级不是最高优先级,也即当前还存在其他二级带宽配额对应的优先级高于当前遍历到的二级带宽配额对应的优先级的情况下,说明遍历没有结束,因此,发送引擎模块继续遍历下一个二级带宽配额。
第二种情况:若正在进行的业务会话中存在目标业务会话,且当前存在待分配二级带宽配额,则根据目标业务会话的备选带宽配额与当前存在的待分配二级带宽配额,确定目标业务会话的带宽配额。
若正在进行的业务会话中包括优先级是当前遍历到的二级带宽配额对应的优先级的业务会话,则说明正在进行的业务会话中有业务会话需要来分当前遍历到的二级带宽配额。该种情况下,如果当前存在待分配二级带宽配额,说明还有待分配的二级带宽配额未分配,此时,可以将待分配二级带宽配额分配给优先级是当前遍历到的二级带宽配额对应的优先级的各个业务会话(也即目标业务会话),并结合目标业务会话的备选带宽配额,确定目标业务会话对应的第一带宽配额。
在一个示例中,如果目标业务会话的数量为多个,则可以将待分配二级带宽配额平均分配给各个目标业务会话。
第三种情况:若正在进行的业务会话中存在目标业务会话,且当前不存在待分配二级带宽配额,则将目标业务会话的备选带宽配额,确定为目标业务会话的带宽配额。
若正在进行的业务会话中包括优先级是当前遍历到的二级带宽配额对应的优先级的业务会话,则说明正在进行的业务会话中有业务会话需要来分当前遍历到的二级带宽配额。该种情况下,如果当前不存在待分配二级带宽配额,说明当前没有待分配的二级带宽配额未分配,此时,可以直接将目标业务会话的备选带宽配额,确定为目标业务会话对应的第一带宽配额。
第四种情况:若正在进行的业务会话中不存在目标业务会话,且当前遍历到的二级带宽配额对应的优先级是最高优先级,则将当前遍历到的二级带宽配额确定为待分配二级带宽配额,并基于当前存在的待分配二级带宽配额,重新确定正在进行的业务会话中优先级最高的业务会话的带宽配额。
若正在进行的业务会话中不包括优先级是当前遍历到的二级带宽配额对应的优先级的业务会话,则说明正在进行的业务会话中没有业务会话因优先级匹配而分当前遍历到的二级带宽配额。为了避免当前遍历到的二级带宽配额的浪费,发送引擎模块将当前遍历到的二级带宽配额确定为待分配二级带宽配额。进一步地,在当前遍历到的二级带宽配额对应的优先级是最高优先级,也即其他二级带宽配额对应的优先级中没有高于当前遍历到的二级带宽配额对应的优先级的情况下,说明再没有二级带宽配额需要遍历,因此,发送引擎模块将当前存在的待分配二级带宽配额分配给上一次确定的目标业务会话(也即是正在进行的业务会话中优先级最高的业务会话),譬如在存在多个的情况下可以平均分配当前存在的待分配二级带宽配额。之后,结合上一次确定的目标业务会话对应的备份带宽配额,确定上一次确定的目标业务会话对应的第一带宽配额。
为了便于理解,接下来继续以上述例子为例对分配过程进行说明:发送引擎模块依次遍历B6、B5、B4、B3、B2、B1。当遍历到B6时,由于正在进行的业务会话中的session5的优先级为B6对应的优先级,即为P6,且当前不存在待分配二级带宽配,因此,可以确定session5对应的第一带宽配额为session5的备选带宽配额,也即为B6,继续遍历下一个二级带宽带宽。当遍历到B5时,由于正在进行的业务会话中的session4的优先级为B5对应的优先级,即为P5,且当前不存在待分配二级带宽配,因此,可以确定session4对应的第一带宽配额为session4的备选带宽配额,也即为B5,继续遍历下一个二级带宽带宽。当遍历到B4时,由于至少一个业务会话中的session3的优先级为B4对应的优先级,即为P4,且当前不存在待分配二级带宽配,因此,可以确定session3对应的第一带宽配额为session3的备选带宽配额,也即为B4,继续遍历下一个二级带宽带宽。当遍历到B3时,由于至少一个业务会话中不存在优先级为B3对应的优先级的业务会话,也即至少一个业务会话中不存在优先级是P3的业务会话,所以将B3确定为待分配二级带宽,继续遍历下一个二级带宽带宽。当遍历到B2时,由于至少一个业务会话中不存在优先级为B2对应的优先级的业务会话,也即至少一个业务会话中不存在优先级是P2的业务会话,所以将B2确定为待分配二级带宽,继续遍历下一个二级带宽带宽。当遍历到B1时,由于至少一个业务会话中的session1和session2的优先级均为B1对应的优先级,即均为P1,且当前存在待分配二级带宽配B2和B3,因此,将B2和B3分别给session1和session2,譬如确定B2和B3的总和,将所确定的总和平均分配给session1和session2,如此,对于session1来说,session1对应的第一带宽配额为session1的备选带宽配额加上平均分配的待分配二级带宽,同理,对于session2来说,session2对应的第一带宽配额为session2的备选带宽配额加上平均分配的待分配二级带宽。由于P1的优先级最高,所以遍历结束,如此,确定了至少一个业务会话中每个业务会话对应的第一带宽配额。
值得一提的是,按照优先级从低到高的顺序依次遍历每个二级带宽配额,以便于将每个二级带宽配额充分地分配给至少一个业务会话中的每个业务会话,提高了带宽配额的分配效率,避免造成浪费问题。
请参考图5,图5示例性地示出了分配带宽配额后的预估效果示意图,在应用程序包括前台应用程序和后台应用程序,业务类型包括DMEGS、DSTREAM和DFILE的情况下,通过上述方式,前台应用程序的DMEGS类业务会话可以分配到约28%的第一带宽配额,前台应用程序的DSTREAM类业务会话可以分配到约21%的第一带宽配额,前台应用程序的DFILE类业务会话可以分配到约21%的第一带宽配额,后台应用程序的DMEGS类业务会话可以分配到约12%的第一带宽配额,后台应用程序的DSTREAM类业务会话可以分配到约9%的第一带宽配额,后台应用程序的DFILE类业务会话可以分配到约8%的第一带宽配额。
需要说明的是,上述分配方式仅是示例性地,在另一个可能的实施例中,发送引擎模块也可以不进行遍历,而是直接将每个业务会话的备份带宽配额确定为每个业务会话对应的第一带宽配额,本申请实施例对此不作限定。
另外还需要说明的是,上述步骤404至步骤406是根据多个二级带宽配额以及每个业务会话的优先级,确定QoS预算周期内每个业务会话对应的第一带宽配额的一种可选的实现方式。当然在另一实施例中,也可以根据多个二级带宽配额以及每个业务会话的优先级,采用其他方式确定QoS预算周期内每个业务会话对应的第一带宽配额,譬如还可以根据每个业务会话的优先级,将从多个二级带宽配额中确定对应的二级带宽配额,将所确定的二级带宽配额直接确定为每个业务会话对应的第一带宽配额等,本申请实施例对此不作限定。
步骤407:在QoS预算周期内,发送引擎模块按照每个业务会话的优先级从高至低的顺序,依次遍历每个业务会话。
在确定QoS预算周期内每个业务会话对应的第一带宽配额后,可以根据每个业务会话对应的第一带宽配额以及每个业务会话的优先级,在QoS预算周期内依次发送每个业务会话的数据包。在一种可能的实现方式中,具体实现包括步骤407至步骤409的内容。也即发送引擎模块可以按照每个业务会话的优先级从高至低的顺序依次遍历每个业务会话,以便于优先发送高优先级的业务会话的数据包。
步骤408:发送引擎模块每遍历到一个业务会话时,根据当前遍历到的业务会话对应的第一带宽配额与上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源。
在一个示例中,上一个预设发送周期内的接收数据的带宽占用率为上一个预设发送周期内数据接收量占设备可用总带宽的比例。不难理解,如果上一个预设发送周期内没有接收数据,则上一个预设发送周期内的接收数据的带宽占用率是0。
由于每个业务会话对应的第一带宽配额为该业务会话在当前的QoS预算周期内能够传输的数据量,且单个数据包包括的字节数是固定的,也即单个数据包在传输过程中占用的带宽资源通常是固定的,因此,对于至少一个业务会话中的任意一个业务会话,在确定该任意一个业务会话对应的第一带宽配额的情况下,就可以确定根据第一带宽配额与上一个预设发送周期内的接收数据的带宽占用率,确定该任意一个业务会话需要多少带宽资源。
在一种可能的情况下,如果存在第一剩余配额,也即当前遍历到的业务会话的上一个业务会话存在剩余的带宽配额,则步骤408的具体实现可以包括:确定当前遍历到的业务会话对应的第二带宽配额,第二带宽配额是第一剩余配额与当前遍历到的业务会话对应的第一带宽配额的总和。基于当前遍历到的业务会话对应的第二带宽配额与上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源。
如果发送上一个业务会话的数据包后有剩余带宽资源未使用完,也就意味着上一个业务会话的带宽配额未使用完,该种情况下,可以将未使用完的带宽配额叠加给当前遍历到的业务会话,因此,将当前遍历到的业务会话对应的第一带宽配额与第一剩余配额相加后,得到当前遍历到的业务会话对应的第二带宽配额,之后基于当前遍历到的业务会话对应的第二带宽配额和上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配第二带宽配额大小的带宽资源。
作为本申请的一个示例,基于当前遍历到的业务会话对应的第二带宽配额与上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源的具体实现可以包括:基于上一个预设发送周期内的接收数据的带宽占用率,确定目标速率发送系数,目标速率发送系数用于指示当前遍历到的业务会话能够占用设备可用总带宽的比例。将当前遍历到的业务会话对应的第二带宽配额与目标速率发送系数相乘,得到当前遍历到的业务会话对应的第三带宽配额。为当前遍历到的业务会话分配第三带宽配额的带宽资源。
在一个示例中,基于上一个预设发送周期内的接收数据的带宽占用率,通过如下公式(1)确定目标速率发送系数:
在另一种可能的情况下,如果不存在第一剩余配额,也即发送上一个业务会话的数据包时,将所分配的带宽资源全使用完,也就意味着上一个业务会话的带宽配额已全部使用,该种情况下,步骤408的具体实现可以包括:基于上一个预设发送周期内的接收数据的带宽占用率,确定目标速率发送系数。将当前遍历到的业务会话对应的第一带宽配额与目标速率发送系数相乘,得到当前遍历到的业务会话对应的第三带宽配额。发送引擎模块为当前遍历到的业务会话分配第三带宽配额大小的带宽资源。
如此,基于上一个预设发送周期内的接收数据的带宽占用率,衡量当前接收数据包所需的带宽配额,从而适当地减少当前遍历到的业务会话对应的第二带宽配额,为接收数据包预留出一定的带宽资源,可以避免发送数据包对接收性能造成影响。
请参考图6,图6是根据一示例性实施例示出的一种带宽资源占用情况的示意图。从图6中不难看出,前台应用程序的session1和session2使用的带宽资源占用设备总带宽的比例较大,后台应用程序的session3、session4以及session5使用的带宽资源占用设备总带宽的比例均较小。由此可见,对于高优先级的业务会话可以分配到更多的带宽资源,且对于低优先级的业务会话同样可以分配到带宽资源,只是低优先级的业务会话分配到的带宽资源较少。
步骤409:发送引擎模块基于所分配的带宽资源,发送当前遍历到的业务会话的数据包。
在为当前遍历到的业务会话分配完带宽资源后,利用所分配的带宽资源,发送当前遍历到的业务会话的数据包。
需要说明的是,如果发送上一个业务会话的数据包时,所分配的带宽资源未够用,则可以将上一个业务会话的剩余未发送的数据包与当前遍历到的业务会话的数据包一起发送。其中,这里所说的剩余未发送的数据包是指上一个业务会话在当前的QoS预算周期内待发送的数据包中未发送的数据包。
步骤410:遍历是否结束。
如果遍历未结束,则进入步骤411。如果遍历结束,则进入如下步骤412。
步骤411:继续遍历下一个业务会话。
如果遍历未结束,则继续遍历,以在QoS预算周期内依次发送完至少一个业务会话中每个业务会话的数据包。并进入步骤408。
步骤412:确定当前的QoS预算周期内是否存在第三剩余配额。
第三剩余配额是指在当前的QoS预算周期内发送完数据包后剩余的带宽配额。
在一种可能的情况下,若发送引擎模块确定当前的QoS预算周期内存在第三剩余配额,则进入如下步骤413。
在另一种可能的情况下,如果发送引擎模块确定当前的QoS预算周期内不存在第三剩余配额,说明分配的带宽配额正好使用完,该种情况下,进入如下步骤414。
步骤413:当下一个业务会话开始时,发送引擎模块基于第三剩余配额以及QoS预算周期内最后一个预设发送周期内的接收数据的带宽占用率,为下一个业务会话分配带宽资源。
如果当前的QoS预算周期内存在第三剩余配额,则可以说明已经将至少一个业务会话中的每个业务会话的数据包均发送完了,且所分配的带宽配额没有全部使用完,此时,发送引擎模块进入休眠状态,等待下一个业务会话。一旦下一个业务会话开始,则发送引擎模块被唤醒后,根据QoS预算周期内最后一个预设发送周期内的数据接收量占设备可用总带宽的比例,缩减第三剩余配额,譬如可以根据QoS预算周期内最后一个预设发送周期的数据接收量占设备可用总带宽的比例确定目标速率发送系数,然后将第三剩余配额与此时确定的目标速率发送系数相乘,得到缩减后的第三剩余配额。之后,为下一个业务会话分配缩减后的第三剩余配额大小的带宽资源。基于所分配的带宽资源,发送下一个业务会话的数据包。
进一步地,在使用完第三剩余配额的情况下,如果下一个业务会话的数据包未传完,则按照上述流程,重新计算下一个业务会话在每个QoS预算周期内对应的第一带宽配额,根据所确定的第一带宽配额,分配对应的带宽资源,并利用所分配的带宽资源进行数据包发送。
在一种可能的情况下,如果下一个业务会话的数量是多个,则可以将缩减后的第三剩余配额全部分配给多个业务会话中优先级最高的业务会话,为优先级最高的业务会话分配缩减后的第三剩余配额大小的带宽资源,并根据所分配的带宽资源,发送优先级最高的业务会话的数据包。
步骤414:至少一个业务会话中是否还有数据包未发送完。
在当前的QoS预算周期内的带宽配额正好使用完,则可能存在两情况:一种情况是,至少一个业务会话中还存在未发送的数据包,也即没有将至少一个业务会话的所有数据包都发送完,该种情况下,返回至步骤402,以便于重新计算下一个QoS预算周期内剩余业务会话中每个业务会话对应的第一带宽配额;另一种情况是,至少一个业务会话中不存在未发送的数据包,也即至少一个业务会话的所有数据包都已发送完,此时传输结束,进入步骤415。
步骤415:发送引擎模块进入休眠模式。
作为本申请的一个示例,如果在传输至少一个业务会话的过程中新增业务会话,则在当前的QoS预算周期结束后,将新增的业务会话加入至少一个业务会话中,之后按照上述流程进行数据传输。
需要说明的是,本申请实施例中的步骤401至步骤411默认是在上一个QoS预算周期结束后不存在剩余的带宽配额的情况下执行,当然,如果上一个QoS预算周期结束后有剩余的带宽配额,则发送引擎模块可以按照步骤413的实现方式为该至少一个业务会话分配上一个QoS预算周期结束后剩余的带宽配额。
在本申请实施例中,在进行业务会话的过程中,确定在当前的QoS预算周期内每个业务会话对应的第一带宽配额,然后按照每个业务会话的优先级从高至低的顺序依次遍历每个业务会话。每遍历到一个业务会话时,根据当前遍历到的业务会话对应的第一带宽配额与上一个发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源。之后利用所分配的带宽资源发送当前遍历到的业务会话的数据包。如此,基于上一个预设发送周期内的接收数据的带宽占用率,衡量当前接收数据包所需的带宽配额,从而适当地减少当前遍历到的业务会话对应的第二带宽配额,为接收数据包预留出一定的带宽资源,可以避免发送数据包对接收性能造成影响。另外,在QoS预算周期内通过统一分配带宽配额,控制各个业务会话最多能够发送的数据量,以合理地分配带宽资源,从而可以保证数据通信效率。
图7是本申请实施例提供的一种数据传输装置的结构示意图,该装置可以由软件、硬件或者两者的结合实现成为电子设备的部分或者全部,该电子设备可以为图2所示的电子设备。参见图7,该装置包括发送引擎模块710,用于:
在当前的服务质量QoS预算周期内,确定正在进行的每个业务会话对应的第一带宽配额,所述第一带宽配额用于指示对应的业务会话在所述QoS预算周期内能够发送的最大数据量;
按照所述每个业务会话的优先级从高至低的顺序,依次遍历所述每个业务会话;
每遍历到一个业务会话时,基于当前遍历到的业务会话对应的第一带宽配额与上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源;
基于所分配的带宽资源,发送当前遍历到的业务会话的数据包。
作为本申请的一个示例,所述发送引擎模块710用于:
若存在第一剩余配额,确定当前遍历到的业务会话对应的第二带宽配额,所述第二带宽配额是所述第一剩余配额与当前遍历到的业务会话对应的第一带宽配额的总和,所述第一剩余配额是指当前遍历到的业务会话的上一个业务会话对应的剩余的带宽配额;
基于当前遍历到的业务会话对应的第二带宽配额与所述上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源。
作为本申请的一个示例,所述发送引擎模块710用于:
基于所述上一个预设发送周期内的接收数据的带宽占用率,确定目标速率发送系数,所述目标速率发送系数用于指示当前遍历到的业务会话能够占用所述设备可用总带宽的比例;
将当前遍历到的业务会话对应的第二带宽配额与所述目标速率发送系数相乘,得到当前遍历到的业务会话对应的第三带宽配额;
为当前遍历到的业务会话分配所述第三带宽配额的带宽资源。
作为本申请的一个示例,所述发送引擎模块710用于:
基于所述上一个预设发送周期内的接收数据的带宽占用率,通过如下公式(1)确定所述目标速率发送系数:
作为本申请的一个示例,所述发送引擎模块710用于:
在所述当前的服务质量QoS预算周期内,确定多个二级带宽配额,所述多个二级带宽配额中的每个二级带宽配额为同类应用程序的一类业务会话在所述QoS预算周期内能够传输的最大数据量,不同类应用程序包括前台应用程序和后台应用程序;
根据所述多个二级带宽配额以及所述每个业务会话的优先级,确定所述每个业务会话对应的第一带宽配额,所述优先级是根据所述运行状态和会话类型确定。
作为本申请的一个示例,所述发送引擎模块710用于:
在所述当前的服务质量QoS预算周期内,确定当前的设备可用总带宽;
基于所述设备可用总带宽、所述QoS预算周期的时长、以及所述不同类应用程序中每类应用程序对应的第一系数,确定所述每类应用程序对应的一级带宽配额,所述一级带宽配额是在所述QoS预算周期内对应类应用程序能够传输的最大数据量;
将所述每类应用程序对应的一级带宽配额分别与多个指定业务类型中每个指定业务类型对应的第二系数相乘,得到所述多个二级带宽配额。
作为本申请的一个示例,所述每个二级带宽配额对应一种优先级;所述发送引擎模块710用于:
根据每个业务会话集合的优先级,从所述多个二级带宽配额中确定所述每个业务会话集合对应的二级带宽配额,所述每个业务会话集合包括正在进行的业务会话中对应的相同运行状态的应用程序的同一类业务会话,同一类业务会话的优先级相同;
将所述每个业务会话集合对应的二级带宽配额与所述每个业务会话集合中的业务会话数量相除,得到所述每个业务会话集合中每个业务会话对应的备选带宽配额;
基于所述每个业务会话对应的备选带宽配额,确定所述每个业务会话对应的第一带宽配额。
作为本申请的一个示例,所述发送引擎模块710用于:
按照所述每个二级带宽配额的优先级从低至高的顺序,依次遍历所述每个二级带宽配额;
每遍历到一个二级带宽配额时,若正在进行的业务会话中不存在目标业务会话,且当前遍历到的二级带宽配额对应的优先级不是最高优先级,则将当前遍历到的二级带宽配额确定为待分配二级带宽配额,所述目标业务会话是指优先级是当前遍历到的二级带宽配额对应的优先级的业务会话;
若正在进行的业务会话中存在所述目标业务会话,且当前存在待分配二级带宽配额,则根据所述目标业务会话的备选带宽配额与当前存在的待分配二级带宽配额,确定所述目标业务会话对应的第一带宽配额;
若正在进行的业务会话中存在所述目标业务会话,且当前不存在待分配二级带宽配额,则将所述目标业务会话的备选带宽配额,确定为所述目标业务会话对应的第一带宽配额;
若正在进行的业务会话中不存在所述目标业务会话,且当前遍历到的二级带宽配额对应的优先级是最高优先级,则将当前遍历到的二级带宽配额确定为待分配二级带宽配额,并基于当前存在的待分配二级带宽配额,重新确定正在进行的业务会话中优先级最高的业务会话对应的第一带宽配额。
作为本申请的一个示例,所述发送引擎模块710还用于:
若所述当前的QoS预算周期内存在第三剩余配额,则当下一个业务会话开始时,基于所述第三剩余配额以及所述QoS预算周期内最后一个预设发送周期内的接收数据的带宽占用率,为所述下一个业务会话分配带宽资源。
在本申请实施例中,在进行业务会话的过程中,确定在当前的QoS预算周期内每个业务会话对应的第一带宽配额,然后按照每个业务会话的优先级从高至低的顺序依次遍历每个业务会话。每遍历到一个业务会话时,根据当前遍历到的业务会话对应的第一带宽配额与上一个发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源。之后利用所分配的带宽资源发送当前遍历到的业务会话的数据包。如此,基于上一个预设发送周期内的接收数据的带宽占用率,衡量当前接收数据包所需的带宽配额,从而适当地减少当前遍历到的业务会话对应的第二带宽配额,为接收数据包预留出一定的带宽资源,可以避免发送数据包对接收性能造成影响。
需要说明的是:上述实施例提供的数据传输装置在传输数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
上述实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请实施例的保护范围。
上述实施例提供的数据传输装置与数据传输方法实施例属于同一构思,上述实施例中单元、模块的具体工作过程及带来的技术效果,可参见方法实施例部分,此处不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,比如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(比如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(比如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(比如:软盘、硬盘、磁带)、光介质(比如:数字通用光盘(Digital Versatile Disc,DVD))或半导体介质(比如:固态硬盘(Solid State Disk,SSD))等。
以上所述为本申请提供的可选实施例,并不用以限制本申请,凡在本申请的揭露的技术范围之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种数据传输的方法,其特征在于,所述方法包括:
在当前的服务质量QoS预算周期内,确定正在进行的每个业务会话对应的第一带宽配额,所述第一带宽配额用于指示对应的业务会话在所述QoS预算周期内能够发送的最大数据量;
按照所述每个业务会话的优先级从高至低的顺序,依次遍历所述每个业务会话;
每遍历到一个业务会话时,基于当前遍历到的业务会话对应的第一带宽配额与上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源;
基于所分配的带宽资源,发送当前遍历到的业务会话的数据包。
2.如权利要求1所述的方法,其特征在于,所述每遍历到一个业务会话时,基于当前遍历到的业务会话对应的第一带宽配额与上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源,包括:
若存在第一剩余配额,确定当前遍历到的业务会话对应的第二带宽配额,所述第二带宽配额是所述第一剩余配额与当前遍历到的业务会话对应的第一带宽配额的总和,所述第一剩余配额是指当前遍历到的业务会话的上一个业务会话对应的剩余的带宽配额;
基于当前遍历到的业务会话对应的第二带宽配额与所述上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源。
3.如权利要求2所述的方法,其特征在于,所述基于当前遍历到的业务会话对应的第二带宽配额与所述上一个预设发送周期内的接收数据的带宽占用率,为当前遍历到的业务会话分配带宽资源,包括:
基于所述上一个预设发送周期内的接收数据的带宽占用率,确定目标速率发送系数,所述目标速率发送系数用于指示当前遍历到的业务会话能够占用设备可用总带宽的比例;
将当前遍历到的业务会话对应的第二带宽配额与所述目标速率发送系数相乘,得到当前遍历到的业务会话对应的第三带宽配额;
为当前遍历到的业务会话分配所述第三带宽配额的带宽资源。
5.如权利要求1-4中任一项所述的方法,其特征在于,所述在当前的服务质量QoS预算周期内,确定正在进行的每个业务会话对应的第一带宽配额,包括:
在所述当前的服务质量QoS预算周期内,确定多个二级带宽配额,所述多个二级带宽配额中的每个二级带宽配额为同类应用程序的一类业务会话在所述QoS预算周期内能够传输的最大数据量,不同类应用程序包括前台应用程序和后台应用程序;
根据所述多个二级带宽配额以及所述每个业务会话的优先级,确定所述每个业务会话对应的第一带宽配额,所述优先级是根据应用程序的运行状态和会话类型确定。
6.如权利要求5所述的方法,其特征在于,所述在所述当前的服务质量QoS预算周期内,确定多个二级带宽配额,包括:
在所述当前的服务质量QoS预算周期内,确定当前的设备可用总带宽;
基于所述设备可用总带宽、所述QoS预算周期的时长、以及所述不同类应用程序中每类应用程序对应的第一系数,确定所述每类应用程序对应的一级带宽配额,所述一级带宽配额是在所述QoS预算周期内对应类应用程序能够传输的最大数据量;
将所述每类应用程序对应的一级带宽配额分别与多个指定业务类型中每个指定业务类型对应的第二系数相乘,得到所述多个二级带宽配额。
7.如权利要求5所述的方法,其特征在于,所述每个二级带宽配额对应一种优先级,所述根据所述多个二级带宽配额以及所述每个业务会话的优先级,确定所述每个业务会话对应的第一带宽配额,包括:
根据每个业务会话集合的优先级,从所述多个二级带宽配额中确定所述每个业务会话集合对应的二级带宽配额,所述每个业务会话集合包括正在进行的业务会话中对应的相同运行状态的应用程序的同一类业务会话,同一类业务会话的优先级相同;
将所述每个业务会话集合对应的二级带宽配额与所述每个业务会话集合中的业务会话数量相除,得到所述每个业务会话集合中每个业务会话对应的备选带宽配额;
基于所述每个业务会话对应的备选带宽配额,确定所述每个业务会话对应的第一带宽配额。
8.如权利要求7所述的方法,其特征在于,所述基于所述每个业务会话对应的备选带宽配额,确定所述每个业务会话对应的第一带宽配额,包括:
按照所述每个二级带宽配额的优先级从低至高的顺序,依次遍历所述每个二级带宽配额;
每遍历到一个二级带宽配额时,若正在进行的业务会话中不存在目标业务会话,且当前遍历到的二级带宽配额对应的优先级不是最高优先级,则将当前遍历到的二级带宽配额确定为待分配二级带宽配额,所述目标业务会话是指优先级是当前遍历到的二级带宽配额对应的优先级的业务会话;
若正在进行的业务会话中存在所述目标业务会话,且当前存在待分配二级带宽配额,则根据所述目标业务会话的备选带宽配额与当前存在的待分配二级带宽配额,确定所述目标业务会话对应的第一带宽配额;
若正在进行的业务会话中存在所述目标业务会话,且当前不存在待分配二级带宽配额,则将所述目标业务会话的备选带宽配额,确定为所述目标业务会话对应的第一带宽配额;
若正在进行的业务会话中不存在所述目标业务会话,且当前遍历到的二级带宽配额对应的优先级是最高优先级,则将当前遍历到的二级带宽配额确定为待分配二级带宽配额,并基于当前存在的待分配二级带宽配额,重新确定正在进行的业务会话中优先级最高的业务会话对应的第一带宽配额。
9.如权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
若所述当前的QoS预算周期内存在第三剩余配额,则当下一个业务会话开始时,基于所述第三剩余配额以及所述QoS预算周期内最后一个预设发送周期内的接收数据的带宽占用率,为所述下一个业务会话分配带宽资源。
10.一种电子设备,其特征在于,所述电子设备的结构中包括处理器和存储器,所述存储器用于存储支持所述电子设备执行如权利要求1-9中任一项所提供的数据传输的方法的程序,以及存储用于实现如权利要求1-9中任一项所提供的数据传输的方法所涉及的数据;所述处理器被配置为用于执行所述存储器中存储的程序。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1-9任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210842069.3A CN115002842B (zh) | 2022-07-18 | 2022-07-18 | 数据传输的方法、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210842069.3A CN115002842B (zh) | 2022-07-18 | 2022-07-18 | 数据传输的方法、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115002842A CN115002842A (zh) | 2022-09-02 |
CN115002842B true CN115002842B (zh) | 2022-10-28 |
Family
ID=83022194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210842069.3A Active CN115002842B (zh) | 2022-07-18 | 2022-07-18 | 数据传输的方法、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115002842B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115834712B (zh) * | 2023-01-05 | 2023-05-02 | 无锡宏创盛安科技有限公司 | 一种面向连接型业务的网关资源调度方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2135429B1 (en) * | 2007-03-16 | 2017-09-06 | BRITISH TELECOMMUNICATIONS public limited company | Data transmission scheduler |
JP4935911B2 (ja) * | 2010-01-28 | 2012-05-23 | 沖電気工業株式会社 | 通信制御装置 |
CN102479108B (zh) * | 2010-11-26 | 2013-09-11 | 中国科学院声学研究所 | 一种多应用进程的嵌入式系统终端资源管理系统及方法 |
US20140155043A1 (en) * | 2011-12-22 | 2014-06-05 | Cygnus Broadband, Inc. | Application quality management in a communication system |
US9801195B2 (en) * | 2013-04-12 | 2017-10-24 | Htc Corporation | Mobile device and method for managing background data transmission thereof |
WO2014200631A1 (en) * | 2013-06-11 | 2014-12-18 | Seven Networks, Inc. | Optimizing keepalive and other background traffic in a wireless network |
EP3207762A4 (en) * | 2014-10-17 | 2018-04-04 | Seven Networks, LLC | Collaborative policy management strategies at a mobile device |
CN106227589B (zh) * | 2016-07-25 | 2019-11-26 | 维沃移动通信有限公司 | 一种应用程序调度方法及移动终端 |
KR20210011166A (ko) * | 2019-07-22 | 2021-02-01 | 삼성전자주식회사 | 전자 장치 및 전자 장치에서 발열 기반의 데이터 처리량 제어 방법 |
CN114449576A (zh) * | 2020-10-30 | 2022-05-06 | 华为技术有限公司 | 一种应用数据的发送方法、装置及设备 |
-
2022
- 2022-07-18 CN CN202210842069.3A patent/CN115002842B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115002842A (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11573829B2 (en) | Task processing method and apparatus, terminal, and computer readable storage medium | |
JP7554905B2 (ja) | チャネル調整方法および電子デバイス | |
US11301300B2 (en) | Method for resource allocation and terminal device | |
CN112527476B (zh) | 资源调度方法及电子设备 | |
WO2021218864A1 (zh) | 一种Wi-Fi点对点业务的实现方法以及相关设备 | |
CN115016706B (zh) | 一种线程的调度方法及电子设备 | |
CN115002842B (zh) | 数据传输的方法、电子设备及可读存储介质 | |
CN113645608B (zh) | 数据传输方法和数据传输装置 | |
CN116126744B (zh) | 一种内存回收方法、装置及终端设备 | |
WO2024027544A1 (zh) | 内存管理方法及电子设备 | |
CN116017388B (zh) | 一种基于音频业务的弹窗显示方法和电子设备 | |
CN114916017B (zh) | 数据传输的方法、电子设备及可读存储介质 | |
CN118233402A (zh) | 一种数据传输方法及电子设备 | |
WO2022233237A1 (zh) | 一种音频播放方法、装置和设备 | |
CN115729684B (zh) | 输入输出请求处理方法和电子设备 | |
CN116263683A (zh) | 应用界面跨设备显示方法、设备系统 | |
CN114928899B (zh) | 物理链路的建立方法和电子设备 | |
CN116743761B (zh) | 一种协同工作的方法及电子设备 | |
CN116709557B (zh) | 业务处理方法、设备及存储介质 | |
WO2024032430A1 (zh) | 管理内存的方法和电子设备 | |
CN115002820B (zh) | 通话状态监听方法、装置、设备、存储介质 | |
WO2024169332A1 (zh) | 处理器频率的调整方法、电子设备及芯片系统 | |
CN116719633B (zh) | 管理内存交换分区的方法和电子设备 | |
CN117880885A (zh) | 音频播放优化的方法及电子设备 | |
CN118283026A (zh) | 传输文件的方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |