一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据转发方法、装置、计算机设备和存储介质与流程

2022-11-13 12:17:06 来源:中国专利 TAG:


1.本技术涉及移动网络通信技术领域,特别是涉及一种数据转发方法、装置、计算机设备和存储介质。


背景技术:

2.目前4g移动通信网络仍被大多数用户所使用,随着通信技术的不断发展,4g移动通信网络的用户数量仍在增加,用户对带宽的需求也越来越高,因此对数据的处理能力提出了更高的要求。
3.传统技术中,由4g核心网的数据面网元承载上、下行数据流量的传输,数据传输的过程中需要经过网卡缓存、内核socket缓存以及应用空间缓存,存在内核态与用户态的反复切换以及重复拷贝,导致系统开销会随着用户增多而不断变大,增大了核心网数据传输的压力,使得核心网数据面的数据转发效率较低。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高数据转发效率的数据转发方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
5.第一方面,本技术提供了一种数据转发方法。所述方法包括:将用于承载4g移动通信网络的目标网卡与upf进行绑定;upf在确定目标网卡接收到数据包的情况下,将接收到的数据包映射到用户空间的缓存区;利用upf提供的进程,对所述缓存区中的数据包的消息头进行修改,得到目标数据包;利用所述目标网卡对所述目标数据包进行转发。
6.第二方面,本技术还提供了一种数据转发装置。所述装置包括:网卡绑定模块,用于将用于承载4g移动通信网络的目标网卡与upf进行绑定;数据缓存模块,用于在确定目标网卡接收到数据包的情况下,将接收到的数据包映射到用户空间的缓存区;消息头修改模块,用于利用upf提供的进程,对所述缓存区中的数据包的消息头进行修改,得到目标数据包;数据转发模块,用于利用所述目标网卡对所述目标数据包进行转发。
7.在一些实施例中,所述数据包为针对目标终端的下行数据包;所述目标数据包中的目的地址,为与所述目标终端建立通信连接的目标基站的网络地址;所述目标基站的网络地址是从服务网关获取的,所述服务网关为支持所述4g移动通信网络的数据传输设备;所述数据转发模块还用于:利用所述目标网卡将所述目标数据包发送至所述目标基站,以使得所述目标基站基于所述目标数据包向所述目标终端发送数据。
8.在一些实施例中,在所述将接收到的数据包映射到用户空间的缓存区的步骤之前,还包括:接收服务网关通过目标数据存储设备转发的所述目标终端的订阅消息;所述upf与所述服务网关通过所述目标数据存储设备进行通信;所述订阅消息包括所述目标基站的网络地址以及通道端标识;所述消息头修改模块还用于:利用从所述订阅消息中获取的所述目标基站的网络地址以及通道端标识,对所述缓存区中的针对所述目标终端的下行数据包的消息头进行修改,得到目标数据包。
9.在一些实施例中,所述订阅消息中还包括所述目标终端的终端状态;在所述确定目标网卡接收到数据包之后,所述数据转发装置还包括终端唤醒模块,所述终端唤醒模块用于:在确定所述目标终端的终端状态为空闲状态的情况下,通过所述目标数据存储设备向所述服务网关转发针对所述目标终端的终端唤醒消息,以使得所述服务网关将所述终端唤醒消息发送至所述目标终端,以唤醒所述目标终端。
10.在一些实施例中,所述数据转发装置还用于:基于所述upf,采用轮询模式对所述目标网卡进行收包和发包。
11.在一些实施例中,所述数据转发装置还用于:将所述目标网卡的消息队列和任务线程绑定到指定的cpu内核;所述任务线程是指应用程序的任务线程。
12.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述数据转发方法中的步骤。
13.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据转发方法中的步骤。
14.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据转发方法中的步骤。
15.上述数据转发方法、装置、计算机设备、存储介质和计算机程序产品,将用于承载4g移动通信网络的目标网卡与upf进行绑定,在确定目标网卡接收到数据包的情况下,将接收到的数据包映射到用户空间的缓存区,利用upf提供的进程,对缓存区中的数据包的消息头进行修改,得到目标数据包,利用目标网卡对目标数据包进行转发。通过将用于承载4g移动通信网络的目标网卡与upf进行绑定,在目标网卡接收到数据包的情况下,可以将目标网卡接收的数据包映射至用户空间的缓存区,从而可以从用户空间的缓存区中获取数据并转发,减少了数据转发过程中的拷贝次数,提高了数据转发效率。
附图说明
16.图1为一个实施例中数据转发方法的应用环境图;图2为一个实施例中数据转发方法的流程示意图;图3为一个实施例中4g移动通信网络的核心网系统架构的示意图;图4a为一个实施例中upf处理数据包的示意图;图4b为一个实施例中linux内核处理数据包的示意图;图4c为一个实施例中用户空间机制的工作原理图;图5为一个实施例中数据转发装置的结构框图;图6为一个实施例中计算机设备的内部结构图;图7为一个实施例中计算机设备的内部结构图。
具体实施方式
17.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不
用于限定本技术。
18.本技术实施例提供的数据转发方法,可以应用于如图1所示的应用环境中。其中,终端102通过移动通信网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102可以是支持4g移动通信网络,即终端102可以采用4g移动通信网络进行通信,当然,终端102也可以支持5g移动通信网络。服务器104可以是用于为网卡提供服务的设备。
19.具体地,终端102可以通过基站与目标网卡进行通信,终端102通过基站发送到目标网卡的数据包可以通过服务器104处理后得到目标数据包,例如,在终端102与目标网卡进行数据包转发之前,服务器104将用于承载4g移动通信网络的目标网卡与upf进行绑定,绑定后,在确定目标网卡接收到终端102发送的数据包的情况下,将接收到的数据包映射到用户空间的缓存区,并利用upf提供的进程,对缓存区中的数据包的消息头进行修改,得到目标数据包,然后利用目标网卡对目标数据包进行转发。其中,upf(user plane function,用户面功能服务),为5g移动通信网络中用于实现用户面功能的服务。
20.其中,终端102可以但不限于是各种笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等,便携式可穿戴设备可为智能手表、智能手环、头戴设备等。
21.服务器104可以是独立的物理服务器,也可以是区块链系统中的服务节点,该区块链系统中的各服务节点之间形成组成点对点(p2p,peer to peer)网络,p2p协议是一个运行在传输控制协议(tcp,transmission control protocol)协议之上的应用层协议。此外,服务器104还可以是多个物理服务器构成的服务器集群,可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
22.本领域技术人员可以理解,图1中示出的应用环境,仅仅是与本技术方案相关的部分场景,并不构成对本技术方案应用环境的限定。
23.在一些实施例中,如图2所示,提供了一种数据转发方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:步骤202,将用于承载4g移动通信网络的目标网卡与upf进行绑定。
24.其中,目标网卡是4g移动通信网络中用于进行数据包接收和发送的网卡。4g移动通信网络和5g移动通信网络的核心网包括控制面和用户面,控制面用于建立和传输控制信令,用户面用于传输用户的业务数据,用户面功能为提供传输用户的业务数据的功能,upf(user plane function,用户面功能服务)是5g移动通信网络中用于实现用户面功能的服务,upf也可以称之为用户面网元。upf是服务器中提供的服务。用于承载4g移动通信网络的目标网卡,是指可以利用目标网卡实现4g移动通信网络。将用于承载4g移动通信网络的目标网卡与upf进行绑定后,可以使得目标网卡接收或发送的数据经过upf进行处理。
25.数据包是指gprs(general packet radio service,通用无线分组业务)隧道协议数据包,可以为上行数据包或下行数据包。
26.具体地,服务器接收到将目标网卡与upf进行绑定的指令后,可以将目标网卡与服务器中的upf进行绑定。绑定之后,服务器可以利用upf对目标网卡在4g移动通信网络的核
心网架构中接收或转发的数据包进行处理。其中,upf可以是基于dpdk(data plane development kit,数据平面开发套件)开发包实现的,dpdk是一个开源的数据平面开发工具集,是为了解决数据包处理性能问题而提供的一个用户空间下的高效数据包处理函数库和驱动集。
27.在一些实施例中,图3中的实线部分为服务器将目标网卡与upf进行绑定后,4g移动通信网络的核心网的用户面系统架构的示意图,图3中,第一虚拟端口n6和第二虚拟端口n3为目标网卡的两个虚拟端口,第一虚拟端口n6用于向公用数据网转发数据包以及用于接收来自公用数据网的数据包,第二虚拟端口n3用于向基站转发数据包以及接收来自基站的数据包。目标网卡接收来自基站或公用数据网的数据包,服务器获取该数据包,利用upf对公用数据网数据包进行处理得到目标数据包,通过目标网卡将目标数据包进行转发。图3中的虚线部分为现有技术中4g核心网的系统架构的示意图。其中,公用数据网是一个由电信主管部门或是被广泛认可的私营机构建立和运营的通信网络,例如,可以是由中国移动所提供的通信网络。
28.以数据包从公用数据网流向基站为例,在图3中的虚线部分中,数据包依次经过核心网架构中数据面的公用数据网、pgw(public data network gateway,公用数据网网关)、sgw(serving gateway,服务网关)以及基站,过程中需要经过多次数据拷贝,且4g核心网的系统架构中,控制面与数据面耦合在一起,从而导致数据转发的效率较低,而在图3中的实线部分中,通过将5g核心网中的upf与目标网卡进行绑定,实现了4g核心网控制面和数据面的分离,数据包经过公用数据网、upf以及基站,从而缩短了数据包的转发路径,并且减少了数据拷贝次数,实现了数据转发路径的优化。
29.步骤204,在确定目标网卡接收到数据包的情况下,将接收到的数据包映射到用户空间的缓存区。
30.其中,数据包是指gprs(general packet radio service,通用无线分组业务)隧道协议数据包,可以为上行数据包或下行数据包,图3中,从目标终端流向公用数据网的数据包为上行数据包,例如,上行数据包可以是由第一虚拟端口n6向公用数据网方向进行转发的数据包,从公用数据网流向目标终端的数据包为下行数据包,例如,下行数据包可以是由第二虚拟端口n3口向基站方向进行转发的数据包。
31.用户空间是普通应用程序可访问的内存区域,与用户空间相对的是内核空间,内核空间是操作系统内核访问的区域,独立于普通的应用程序,是受保护的内存空间。缓存区是用于缓存数据包的存储区域,是一个环形队列。
32.具体地,目标网卡具有接收队列和发送队列两个消息队列,接收队列用于存储来源于基站和公用数据网的数据包,发送队列用于存储目标网卡向基站和公用数据网发送的数据包。服务器在确定目标网卡的接收队列接收到数据包的情况下,利用upf,绕过内核空间,将接收到的数据包映射到用户空间的缓存区。
33.在一些实施例中,目标网卡的接收队列里的数组存储的是指向存储数据包的内存地址,接收队列中指针指向存储数据包的内存地址,服务器在确定目标网卡接收到数据包的情况下,在用户空间申请一个缓存区,将数据包映射至用户空间缓存区中,随后用指向这个缓存区的指针更新接收队列中的指针,使得cpu内核上的线程可以直接访问缓存区内的数据包,以此实现了零拷贝。用户服务进程可以直接对被映射到用户空间的缓存区的数据
包进行处理。
34.在一些实施例中,如图4a所示,服务器基于upf查询目标网卡的接收队列是否收到数据包,当确定接收队列收到数据包,则从接收队列获取该数据包的内存地址,将数据包映射到用户空间的缓存区,然后利用upf的进程对数据包进行处理,在数据包处理完成后,将数据包的内存地址写入目标网卡的发送队列;当确定接收队列没有收到数据包,则继续查询接收队列。
35.在一些实施例中,upf还可以提供拦截中断的功能,服务器可以利用upf能够拦截中断,并重设中断回调行为,从而绕过内核协议栈后续的处理流程。在现有技术中,一个数据包从目标网卡到用户空间的进程,需要经过多次的数据拷贝,如图4b所示,数据包从目标网卡传输到内核空间的缓存区,然后从内核空间的缓存区需要经过driver以及socket,然后从内核空间拷贝到用户空间的进程中进行数据处理。图4c为用户空间机制的工作原理图。
36.步骤206,利用upf提供的进程,对缓存区中的数据包的消息头进行修改,得到目标数据包。
37.其中,进程是应用程序的基本执行实体,消息头是数据包的头部信息,包括数据包的目的地址、源地址或通道端标识中的至少一个。目的地址是最终接收数据包的端口的网络地址,源地址是发送数据包的设备端口的网络地址,例如,当一个数据包是从终端发送至基站的数据包,则数据包的目的地址是基站的网络地址,源地址是终端的网络地址。通道端标识是gprs隧道协议数据包中的重要字段,用于确定gprs隧道协议数据的传输通道。目标数据包是将缓存区中的数据包进行消息头修改后得到的数据包。
38.具体地,服务器利用upf提供的进程,对缓存区中的数据包的消息头进行修改,将修改后的数据包作为目标数据包,修改消息头包括但不限于是修改消息头中的源地址和目的地址,例如,当缓存区中的数据包是从公用数据网接收的,则该数据包的消息头中,源地址是公用数据网的网络地址,目的地址是upf的第一虚拟端口n6的网络地址,要将该数据包转发至目标基站,则服务器利用upf提供的进程,将数据包的源地址修改为upf的第二虚拟端口n3的网络地址,目的地址修改为目标基站的网络地址,得到目标数据包。
39.在一些实施例中,修改消息头还可以包括修改消息头中的通道端标识,具体地,在修改源地址和目的地址的同时,服务器还可以利用upf提供的进程,对缓存区中的数据包的消息头中的通道端标识进行修改,例如,当缓存区中的数据包是从公用数据网接收的,要发送至目标基站,则将数据包的消息头中源通道端标识修改为upf的通道端标识,将目标通道端标识修改为目标基站的通道端标识。
40.步骤208,利用目标网卡对目标数据包进行转发。
41.其中,目标网卡具有虚拟端口,包括第一虚拟端口n6和第二虚拟端口n3。
42.具体地,服务器基于upf,将缓存区中的目标数据包存入目标网卡的发送队列,等待目标网卡对目标数据包进行转发。当服务器确认目标网卡的发送队列中的目标数据包需要进行转发,获取目标数据包的消息头内的目的地址,将目标数据包转发至目的地址对应的设备。
43.上述数据转发方法中,将用于承载4g移动通信网络的目标网卡与upf进行绑定,在确定目标网卡接收到数据包的情况下,将接收到的数据包映射到用户空间的缓存区,利用
upf提供的进程,对缓存区中的数据包的消息头进行修改,得到目标数据包,利用目标网卡对目标数据包进行转发。通过将用于承载4g移动通信网络的目标网卡与upf进行绑定,在目标网卡接收到数据包的情况,可以将目标网卡接收的数据包映射至用户空间的缓存区,从而可以从用户空间的缓存区中获取数据并转发,减少了数据转发过程中的拷贝次数,提高了数据转发效率。此外,由于upf为5g移动通信网络中用于实现用户面功能的服务,将目标网卡与upf进行绑定,实现了4g移动通信网络的核心网中的控制面和数据面的分离,从而提高了数据转发效率。
44.在一个实施例中,数据包为针对目标终端的下行数据包;目标数据包中的目的地址,为与目标终端建立通信连接的目标基站的网络地址;目标基站的网络地址是从服务网关获取的,服务网关为支持4g移动通信网络的数据传输设备;步骤208还包括:利用目标网卡将目标数据包发送至目标基站,以使得目标基站基于目标数据包向目标终端发送数据。
45.其中,目标终端是目标数据包的接收终端,可以是手机或平板电脑。下行数据包指的是由第二虚拟端口n3口向终端方向进行转发的数据包,下行数据包的目的地址,是与目标终端建立通信连接的目标基站的网络地址。目标基站是与目标终端建立了通信连接的基站。
46.服务网关为支持4g移动通信网络的数据传输设备,例如,可以是图3中的sgw(serving gateway,服务网关),服务网关是4g移动通信网络的核心网系统架构中的重要组成部分,在mme(mobility management entity,移动管理实体)的控制下进行数据的路由和转发,mme负责4g核心网的信令处理。图3中,pgw(public data network gateway,公用数据网网关)用于会话和承载管理以及网络地址的分配,hss(home subscriber server,归属用户服务器)用于位置管理服务,存储和管理在4g移动通信网络中注册的用户和访问的移动用户的位置信息,pcrf(policy and charging rules function,策略与计费规则功能单元)是业务数据流和网络地址承载资源的策略与计费控制策略决策点。
47.具体地,当目标数据包为针对目标终端的下行数据包的情况下,则目标数据包的消息头中目的地址为目标基站的网络地址,例如,可以是目标基站的s1-u端口的网络地址,服务器获取目标数据包的消息头中目的地址以及目标基站的通道端标识,利用目标网卡将目标数据包发送至目标基站的s1-u端口,目标基站s1-u端口接收目标数据包,然后目标基站将目标数据包发送至目标终端。
48.在一些实施例中,目标基站的网络地址可以是从服务网关获取的,upf中存储了目标终端所连接的目标基站的网络地址以及通道端标识,当目标终端第一次上线或更换所连接的基站时,需要通过服务网关向upf发送订阅消息,订阅消息中包括基站的网络地址以及通道端标识,upf在获取基站的网络地址后,确定了下行数据包对应的目标基站,并修改下行数据包消息头中的目的地址以及通道端标识,由于upf与基站之间是通过gtpv1(gprs tunneling protocol,gprs隧道协议)协议进行通信,因此upf与基站之间根据网络地址以及通道端标识来进行数据包转发。服务器利用upf提供的进程,对缓存区中的数据包的消息头进行修改之前,upf可以订阅服务网关的包括目标基站的网络地址和通道端标识的消息,服务器可以获取服务网关向upf发送的订阅消息,订阅消息中包括目标基站的网络地址和通道端标识,服务器中的upf接收到服务网关发送的订阅消息,对订阅消息中的目标基站的网络地址和通道端标识进行存储。在对缓存区中的数据包的消息头进行修改时,则可以利
用存储的网络地址和通道端标识对消息头进行修改。其中,订阅消息还包括目标终端以及目标终端所连接的基站的其他信息。
49.本实施例中,通过利用目标网卡将目标数据包发送至目标基站,能够提高数据转发的效率。
50.在一个实施例中,在将接收到的数据包映射到用户空间的缓存区的步骤之前,还包括:接收服务网关通过目标数据存储设备转发的目标终端的订阅消息;upf与服务网关通过目标数据存储设备进行通信;订阅消息包括目标基站的网络地址以及通道端标识;步骤206还包括:利用从订阅消息中获取的目标基站的网络地址以及通道端标识,对缓存区中的针对目标终端的下行数据包的消息头进行修改,得到目标数据包。
51.其中,在利用upf对数据包进行转发之前,还需要建立数据包上行与下行的缺省承载,缺省承载是用于承载数据包流通的默认承载通道,包括上行缺省承载与下行缺省承载,上行缺省承载是数据包从基站到upf的默认承载通道,下行缺省承载是数据包从upf到基站的默认承载通道。
52.目标数据存储设备是用于存储数据的设备,可以是数据库服务器,例如可以是指redis数据库服务器。订阅消息是服务网关发送给upf的关于目标终端的消息,订阅消息中可以包括目标终端的相关信息,可以是从目标终端通过基站发送给服务网关的消息中获取的,目标终端发送给基站的消息,用于构建终端到移动通信网络的承载,目标终端发送给基站的消息可以是nas消息,nas消息包括imsi(international mobile subscriber identity,国际移动用户识别码)、apn(access point name,接入点)名称、公用数据网类型以及校验信息等信息。imsi是用于区分用户终端的唯一识别码。apn是指一种网络接入技术,是移动终端上网必须配置的参数,决定了移动终端访问网络的接入方式。
53.具体地,服务器在将接收到的下行数据包存储到用户空间的缓存区之前,还需要通过4g移动通信网络的核心网的控制面建立数据包从upf到基站下行缺省承载,建立下行缺省承载的具体步骤包括:如图3所示,目标终端向目标基站发送消息,目标基站将该消息透传给mme,mme获取目标基站的网络地址和通道端标识,并在该消息中增加目标基站的网络地址和通道端标识,得到更新后的消息,将更新后的消息转发给服务网关,服务网关通过目标数据存储设备,向upf发布订阅消息,例如图3中的c1消息,upf接收到订阅消息,从而在目标网卡获取到流向目标终端的数据包的情况下,从订阅消息中获取目标基站的网络地址,从而upf确认了下行数据包对应的目标基站,然后利用订阅消息中的目标基站的网络地址和通道端标识,对缓存区中针对目标终端的下行数据包的消息头进行修改,将消息头中目的地址、源地址、目标通道端标识和源通道端标识,对应修改为目标基站的网络地址、upf的第二虚拟端口n3的网络地址、目标基站的通道端标识以及upf的通道端标识,得到目标数据包。订阅消息中包括的目标终端的相关信息可以称为目标终端的上下文信息,终端的上下文信息包括核心网为终端分配的网络地址、apn名称、通道端标识、消息类型以及终端状态。终端状态是指终端所处的状态。
54.在一些实施例中,通过4g移动通信网络的核心网的控制面建立数据包从upf到基站下行缺省承载,还可以是公用数据网向upf发送下行数据包时,携带目标终端的网络地址一同发送至upf,利用该目标终端的网络地址建立下行缺省承载。当目标终端的上下文信息是已缓存在upf中的,且目标终端所连接的基站不变情况下,则利用目标终端的网络地址在
已缓存的目标终端的上下文信息中,找到对应的目标基站的网络地址以及通道端标识,对接收到的数据包的消息头进行修改,得到目标数据包;当目标终端所连接的基站发生改变,则按照上述利用服务网关与upf之间的订阅消息的方式,建立下行缺省承载。
55.在一些实施例中,通过4g核心网的控制面建立缺省承载的时候,目标终端网络地址是控制面的pgw为目标终端分配的。
56.在一些实施例中,服务器在将接收到的上行数据包映射到用户空间的缓存区之前,还需要通过4g移动通信网络的核心网的控制面,建立数据包从基站到upf的上行缺省承载。upf通过目标数据存储设备向服务网关发送第二虚拟端口n3的网络地址以及通道端标识,服务网关接收后向mme发送消息,消息中携带upf的第二虚拟端口n3的网络地址以及通道端标识,mme接收消息后向目标基站的发送upf的第二虚拟端口n3的网络地址以及通道端标识,则当目标基站接收到目标终端的上行数据包时,可以利用第二虚拟端口n3的网络地址以及通道端标识,向upf进行转发。
57.本实施例中,通过接收服务网关通过目标数据存储设备转发的目标终端的订阅消息,利用从订阅消息中获取的目标基站的网络地址以及通道端标识,从而建立了从upf到目标基站的下行缺省承载,实现了下行数据包的数据流通,提高了数据包的转发效率。
58.在一个实施例中,订阅消息中还包括目标终端的终端状态;在确定目标网卡接收到数据包之后,还包括:在确定目标终端的终端状态为空闲状态的情况下,通过目标数据存储设备向服务网关转发针对目标终端的终端唤醒消息,以使得服务网关将终端唤醒消息发送至目标终端,以唤醒目标终端。
59.其中,终端状态是指目标终端所处的状态,包括空闲状态和激活状态,空闲状态是指终端处于空闲的状态,由于空口资源有限,在预设时间段内终端没有数据流向的情况下,终端会释放空口资源,进入空闲状态。激活状态是指终端处于接收或发送数据的状态。终端唤醒消息是对终端进行唤醒的消息,处于空闲状态的终端在接收到终端唤醒消息后,可以从空闲状态切换到激活状态。
60.具体地,目标终端的订阅消息中还可以包括目标终端的终端状态,upf接收服务网关通过目标数据存储设备转发的目标终端的订阅消息,从订阅消息中获取目标终端的终端状态,并存储在服务器中。当服务器基于upf确定目标网卡的发送队列中有下行数据包需要发送时,提取目标终端的终端状态,当目标终端的终端状态为空闲状态,则通过upf经过目标数据存储设备向服务网关发送终端唤醒消息,服务网关在接收到终端唤醒消息后,转发给mme,mme再将终端唤醒消息发送至目标基站,由目标基站将终端唤醒消息发送至目标终端。处于空闲状态的目标终端再接收到终端唤醒消息后,可以从空闲状态切换到激活状态。
61.本实施例中,通过目标数据存储设备向服务网关转发针对目标终端的终端唤醒消息,实现目标终端的唤醒,提高了数据转发的效率。
62.在一个实施例中,数据转发方法还包括:基于upf,采用轮询模式对目标网卡进行收包和发包。
63.其中,轮询模式是一种cpu决策如何提供周边设备服务的方式,指cpu定时向每个周边设备发出询问,询问周边设备是否需要服务,如果需要,则cpu向该周边设备提供服务,服务结束后询问下一个周边设备,直到遍历所有周边设备,再循环询问。例如,cpu可以定时向网卡发出询问,询问网卡是否有数据包到达。
64.具体地,服务器中的upf利用轮询模式驱动,轮询目标网卡上的接收队列或发送队列,即定期询问目标网卡接收队列或发送队列是否存在新的数据包,若存在,则将该新的数据包存储至用户空间的缓存区中,以完成收包或发包操作。
65.在一些实施例中,服务器的upf利用轮询模式驱动,查询目标网卡的发送队列是否有数据包需要转发,当确定发送队列有数据包需要发送,则基于数据包的消息头对数据包进行转发;当确定发送队列没有数据包需要发送,则继续查询。
66.本实施例中,通过采用轮询模式对目标网卡进行收包和发包,抛弃中断模式,减少中断开销,从而提高了接收数据包和发送数据包的效率。
67.在一个实施例中,数据转发方法还包括:将目标网卡的消息队列和任务线程绑定到指定的cpu内核;任务线程是指应用程序的任务线程。
68.由于目前主流处理器多为多核处理器,处理器对一个数据包进行处理的处理过程可能涉及多个处理器核心,例如,处理器共有四个处理器核心,分别为cpu0、cpu1、cpu2和cpu3,处理器对一个数据包进行处理的过程中,数据包可能在cpu0中断,在cpu1内核态处理,在cpu2用户态处理,涉及多个处理器核心,容易造成处理器缓存失效,导致性能受到很大影响。
69.具体地,服务器创建预设数量的任务线程,利用dpdk开发包将每个任务线程各绑定一个cpu内核,即设置cpu亲和性,这样同一个cpu上就不存在多个任务线程争抢资源的情况,每个任务线程在各自的cpu内核上运行,运行期间不切换cpu内核。其中,预设数量可以是根据情况预先设置的。然后服务器初始化并启动网卡,指定消息队列的数量,将目标网卡的一个消息队列与一个任务线程进行绑定,这样任务线程就可以通过目标网卡收发数据包。
70.在一些实施例中,服务器可以利用dpdk开发包对目标网卡的消息队列进行设置,基于dpdk开发包配置的各消息队列可以为无锁环形队列。当有多个数据包同时存入一个消息队列时,可以使用cas指令判断是否发生冲突,当有冲突发生时,则数据包存入队列失败,重新进行存入操作。其中cas(compare and swap,比较并交换)指令为原子操作,不会被其他线程中断,可以得到最新的入队位置。
71.在一些实施例中,upf利用dpdk开发包,通过配置文件设置大页内存,将页面大小设置为2mb或512kb,通过提高页面内存,减少页面数量,提高了cpu的命中率,进而提高了cpu的访问速度。
72.本实施例中,通过将目标网卡的消息队列和任务线程绑定到指定的cpu内核,减少了任务线程间的频繁切换带来的开销,能够提高数据转发的效率。
73.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
74.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的数据转
发方法的数据转发装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据转发装置实施例中的具体限定可以参见上文中对于数据转发方法的限定,在此不再赘述。
75.在一个实施例中,如图5所示,提供了一种数据转发装置,包括:网卡绑定模块502、数据缓存模块504、消息头修改模块506和数据转发模块508,其中:网卡绑定模块502,用于将用于承载4g移动通信网络的目标网卡与upf进行绑定。
76.数据缓存模块504,用于在确定目标网卡接收到数据包的情况下,将接收到的数据包映射到用户空间的缓存区。
77.消息头修改模块506,用于利用upf提供的进程,对缓存区中的数据包的消息头进行修改,得到目标数据包。
78.数据转发模块508,用于利用目标网卡对目标数据包进行转发。
79.在一些实施例中,数据包为针对目标终端的下行数据包;目标数据包中的目的地址,为与目标终端建立通信连接的目标基站的网络地址;目标基站的网络地址是从服务网关获取的,服务网关为支持第二类4g移动通信网络的数据传输设备;数据转发模块还用于:利用目标网卡将目标数据包发送至目标基站,以使得目标基站基于目标数据包向目标终端发送数据。
80.在一些实施例中,在将接收到的数据包映射到用户空间的缓存区的步骤之前,还包括:接收服务网关通过目标数据存储设备转发的目标终端的订阅消息;upf与服务网关通过目标数据存储设备进行通信;订阅消息包括目标基站的网络地址以及通道端标识;消息头修改模块还用于:利用从订阅消息中获取的目标基站的网络地址以及通道端标识,对缓存区中的针对目标终端的下行数据包的消息头进行修改,得到目标数据包。
81.在一些实施例中,订阅消息中还包括目标终端的终端状态;在确定目标网卡接收到数据包之后,数据转发装置还包括终端唤醒模块,终端唤醒模块用于:在确定目标终端的终端状态为空闲状态的情况下,通过目标数据存储设备向服务网关转发针对目标终端的终端唤醒消息,以使得服务网关将终端唤醒消息发送至目标终端,以唤醒目标终端。
82.在一些实施例中,数据转发装置还用于:基于upf,采用轮询模式对目标网卡进行收包和发包。
83.在一些实施例中,数据转发装置还用于:将目标网卡的消息队列和任务线程绑定到指定的cpu内核;任务线程是指应用程序的任务线程。
84.上述数据转发装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
85.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据转发方法涉及的相关数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据转发方法。
86.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据转发方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
87.本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
88.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述数据转发方法中的步骤。
89.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述数据转发方法中的步骤。
90.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据转发方法中的步骤。
91.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
92.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
93.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛
盾,都应当认为是本说明书记载的范围。
94.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献