System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据包的传输方法和电子设备技术_技高网

数据包的传输方法和电子设备技术

技术编号:44063921 阅读:1 留言:0更新日期:2025-01-17 16:03
本申请公开了一种数据包的传输方法和电子设备,该方法包括传输层根据虚拟网卡对应的目标路由的路径,将应用程序的应用数据封装为第一报文,该第一报文存储在共享内存中,该共享内存为内核态的内存。VPN服务从共享内存中读取第一报文,该共享内存被设置为允许用户态的服务操作。该VPN服务对第一报文进行处理后得到第二报文,并将第二报文发送给网络层。该网络层对第二报文进行处理之后得到第一数据包,并通过物理网卡将第一数据包发送给VPN服务对应的VPN服务器。可见,在此过程中,VPN服务根据共享机制从内核态的共享内存中读取报文,仅需经历一次传输层处理和一次网络层处理即可,减少冗余处理,降低功耗、减少内存占用、提升数据转发性能。

【技术实现步骤摘要】

本申请实施例涉及数据传输,尤其涉及一种数据包的传输方法和电子设备


技术介绍

1、随着电子设备的迅速发展,电子设备可以采用harmonyos鸿蒙系统,该系统支持虚拟专网(virtual private network,vpn)功能。虚拟专网是指整个vpn网络中的任意两个节点之间的连接并没有传统专网所需的端到端的物理链路,而是架构在公用网络服务商所提供的网络平台(如internet,atm,frame relay等)之上的逻辑网络,用户数据在逻辑链路中传输。

2、目前,数据包的传输方法通常是:将应用数据经过一次传输层的tcp/udp协议栈封装之后,发送给网络层进行一次过滤之后得到数据包。再将该数据包存储在内核态内存中。在将内存中的数据复制在内核态的硬盘上。用户态vpn服务从该硬盘上读取数据包,并经过vpn服务进行处理之后,将处理后的数据包再经过传输层的一次tcp/udp协议栈封装,及再经过网络层进行一次过滤之后,通过物理网卡发送给vpn服务器。可见,在数据包的传输过程中,数据包需要存储在内核态的硬盘上,需要经过两次传输层处理和两次网络层处理,才可以将数据包从内核态传输到用户态并发出,存在冗余处理,造成功耗高、内存占用高、数据转发性能差。


技术实现思路

1、本申请实施例提供的一种数据包的传输方法和电子设备,减少冗余处理,降低功耗、减少内存占用、提升数据转发性能。

2、为达到上述目的,本申请实施例采用如下技术方案。

3、第一方面,本申请实施例提供一种数据包的传输方法,该方法的执行主体可以是电子设备,也可以是位于电子设备中的部件(例如,芯片,芯片系统或处理器等),下面以执行主体是电子设备为例进行描述。所述方法包括:传输层根据虚拟网卡对应的目标路由的路径,将应用程序的应用数据封装为第一报文,所述第一报文存储在共享内存中,所述共享内存为内核态的内存;vpn服务从所述共享内存中读取所述第一报文,所述共享内存被设置为允许用户态的服务操作;所述vpn服务对所述第一报文进行处理后得到第二报文,并将所述第二报文发送给网络层;所述网络层对所述第二报文进行处理之后得到第一数据包,并通过物理网卡将所述第一数据包发送给所述vpn服务对应的vpn服务器。

4、其中,共享内存可以理解为内核层中的一段存储区域,或者说是程序中的一段区间代码。该共享内存可以部署于虚拟网卡的驱动程序内。

5、在一种设计方案中,所述共享内存被设置为允许用户态的服务操作,具体可以为:vpn服务具备从共享内存读取数据的权限。其中,操作可以包括读取操作、写入操作,等等。

6、在一种设计方案中,第一报文存储在共享内存中,具体实现可以为:所述传输层将所述第一报文发送给虚拟网卡xdp,所述虚拟网卡xdp将所述第一报文写入所述共享内存中。

7、本申请,传输层根据虚拟网卡对应的目标路由的路径,将应用程序的应用数据封装为第一报文,该第一报文存储在共享内存中,该共享内存为内核态的内存。vpn服务从共享内存中读取第一报文,该共享内存被设置为允许用户态的服务操作。该vpn服务对第一报文进行处理后得到第二报文,并将第二报文发送给网络层。该网络层对第二报文进行处理之后得到第一数据包,并通过物理网卡将第一数据包发送给vpn服务对应的vpn服务器。可见,现有技术中应用数据从内核态转为用户态的过程中,需要经历两次传输层进行封装、两次网络层进行过滤。而本申请在此过程中,vpn服务仅需根据共享机制从内核态的共享内存中读取报文,即可实现应用数据从内核态转为用户态,仅需经历一次传输层处理和一次网络层处理即可,减少冗余处理,降低功耗、减少内存占用、提升数据转发性能。

8、在一些设计方案中,在所述vpn服务从所述共享内存中读取所述第一报文之前,还包括:所述传输层将所述第一报文发送给所述网络层;所述网络层对所述第一报文进行过滤,得到第三报文;所述网络层将所述第三报文存储在所述共享内存中。这样,通过对第一报文进行过滤,可以过滤掉错误ip地址的报文,减少共享内存的存储量。

9、在一种设计方案中,所述网络层对所述第一报文进行过滤得到第三报文,具体实现可以为:所述虚拟网卡xdp对所述第一报文进行过滤得到第三报文。

10、在一种设计方案中,所述网络层对所述第一报文进行过滤,得到第三报文,包括:所述网络层根据报文头判断规则,对所述第一报文进行过滤,得到所述第三报文。

11、具体的,所述虚拟网卡xdp按照第一过滤规则对所述第一报文进行过滤得到第三报文,该第一过滤规则可以包括过滤报文头规则。就是说,所述虚拟网卡xdp按照第一过滤规则可以将所述第一报文中携带错误报文头过滤掉,得到第三报文。其中,错误报文头的判断可以根据报文头表确定。

12、在一种设计方案中,所述vpn服务中的第一部分程序部署在所述虚拟网卡对应的虚拟网卡驱动上,所述第一部分程序用于将所述第一报文写入所述共享内存中。就是说,vpn服务中的第一部分程序可以下陷至虚拟网卡驱动上。这样,当需要向共享内存中写入报文时,该vpn服务可以通过虚拟网卡驱动实现在共享内存中写入报文。

13、在一种设计方案中,所述vpn服务中的第二部分程序部署在所述虚拟网卡对应的虚拟网卡驱动上,所述第二部分程序用于从所述共享内存中读取所述第一报文。就是说,vpn服务中的第二部分程序可以下陷至虚拟网卡驱动上。这样,当需要从共享内存中读取报文时,该vpn服务可以通过虚拟网卡驱动实现从共享内存中读取报文。

14、在一种设计方案中,所述vpn服务中的第二部分程序部署在所述物理网卡对应的物理网卡驱动上,所述第二部分程序用于从所述共享内存中读取所述第一报文。就是说,vpn服务中的第二部分程序可以下陷至物理网卡驱动上。这样,当需要从共享内存中读取报文时,该vpn服务可以通过物理网卡驱动实现从共享内存中读取报文。

15、在一种设计方案中,所述vpn服务为用户态的vpn服务。

16、在一种设计方案中,所述vpn服务属于所述网络层或应用层。其中,所述vpn服务的第一部分程序下陷至虚拟网卡的驱动程序中,该第一部分程序可以用于将报文写入共享内存中。所述vpn服务的第二部分程序下陷至物理网卡的驱动程序中,该第二部分程序可以用于从共享内存中读取报文。

17、在一种设计方案中,所述网络层对所述第二报文进行处理之后得到第一数据包,包括:所述网络层对所述第二报文进行过滤,得到所述第一数据包。

18、具体的,所述网络层按照第二过滤规则对所述第二报文进行过滤,之后,对过滤后的第二报文进行流量控制,得到第一数据包。

19、在一种设计方案中,所述vpn服务对所述第一报文进行处理后得到第二报文,包括:所述vpn服务对所述第一报文进行加密,并封装报文头,得到所述第二报文。

20、例如,应用数据为“你好”。第一报文可以包括ip头、tcp头和应用数据(如你好)。第二报文可以包括ip2头、tcp2头、tls头、ip1头本文档来自技高网...

【技术保护点】

1.一种数据包的传输方法,应用于电子设备,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,在所述VPN服务从所述共享内存中读取所述第一报文之前,还包括:

3.根据权利要求2所述的方法,其特征在于,所述网络层对所述第一报文进行过滤,得到第三报文,包括:

4.根据权利要求1-3中任一项所述的方法,其特征在于,所述VPN服务中的第一部分程序部署在所述虚拟网卡对应的虚拟网卡驱动上,所述第一部分程序用于将所述第一报文写入所述共享内存中。

5.根据权利要求1-4中任一项所述的方法,其特征在于,所述VPN服务中的第二部分程序部署在所述物理网卡对应的物理网卡驱动上,所述第二部分程序用于从所述共享内存中读取所述第一报文。

6.根据权利要求1-5中任一项所述的方法,其特征在于,所述VPN服务为用户态的VPN服务。

7.根据权利要求1-6中任一项所述的方法,其特征在于,所述VPN服务属于所述网络层或应用层。

8.根据权利要求1-7中任一项所述的方法,其特征在于,所述网络层对所述第二报文进行处理之后得到第一数据包,包括:

9.根据权利要求1-8中任一项所述的方法,其特征在于,所述VPN服务对所述第一报文进行处理后得到第二报文,包括:

10.一种电子设备,其特征在于,包括:

11.根据权利要求10所述的电子设备,其特征在于,还包括:

12.根据权利要求11所述的电子设备,其特征在于,所述第一过滤器用于:

13.根据权利要求10-12中任一项所述的电子设备,其特征在于,所述VPN服务中的第一部分程序部署在所述虚拟网卡对应的虚拟网卡驱动上,所述第一部分程序用于将所述第一报文写入所述共享内存中。

14.根据权利要求10-13中任一项所述的电子设备,其特征在于,所述VPN服务中的第二部分程序部署在所述物理网卡对应的物理网卡驱动上,所述第二部分程序用于从所述共享内存中读取所述第一报文。

15.根据权利要求10-14中任一项所述的电子设备,其特征在于,所述VPN服务为用户态的VPN服务。

16.根据权利要求10-15中任一项所述的电子设备,其特征在于,所述VPN服务属于所述网络层或应用层。

17.根据权利要求10-16中任一项所述的电子设备,其特征在于,还包括:

18.根据权利要求10-17中任一项所述的电子设备,其特征在于,所述处理器用于:

...

【技术特征摘要】

1.一种数据包的传输方法,应用于电子设备,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,在所述vpn服务从所述共享内存中读取所述第一报文之前,还包括:

3.根据权利要求2所述的方法,其特征在于,所述网络层对所述第一报文进行过滤,得到第三报文,包括:

4.根据权利要求1-3中任一项所述的方法,其特征在于,所述vpn服务中的第一部分程序部署在所述虚拟网卡对应的虚拟网卡驱动上,所述第一部分程序用于将所述第一报文写入所述共享内存中。

5.根据权利要求1-4中任一项所述的方法,其特征在于,所述vpn服务中的第二部分程序部署在所述物理网卡对应的物理网卡驱动上,所述第二部分程序用于从所述共享内存中读取所述第一报文。

6.根据权利要求1-5中任一项所述的方法,其特征在于,所述vpn服务为用户态的vpn服务。

7.根据权利要求1-6中任一项所述的方法,其特征在于,所述vpn服务属于所述网络层或应用层。

8.根据权利要求1-7中任一项所述的方法,其特征在于,所述网络层对所述第二报文进行处理之后得到第一数据包,包括:

9.根据权利要求1-8中任一项所述的方法,其特征在于...

【专利技术属性】
技术研发人员:毛思平毛宇锋李春霖
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1