CN117857646A - 数据网络共享方法、电子设备及存储介质 - Google Patents
数据网络共享方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117857646A CN117857646A CN202410221450.7A CN202410221450A CN117857646A CN 117857646 A CN117857646 A CN 117857646A CN 202410221450 A CN202410221450 A CN 202410221450A CN 117857646 A CN117857646 A CN 117857646A
- Authority
- CN
- China
- Prior art keywords
- application
- kernel
- network sharing
- uplink data
- network
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 119
- 230000003993 interaction Effects 0.000 claims abstract description 29
- 230000004044 response Effects 0.000 claims abstract description 12
- 230000006870 function Effects 0.000 claims description 115
- 238000013507 mapping Methods 0.000 claims description 74
- 238000012544 monitoring process Methods 0.000 claims description 62
- 238000004891 communication Methods 0.000 claims description 44
- 230000007246 mechanism Effects 0.000 claims description 39
- 238000002955 isolation Methods 0.000 claims description 31
- 230000015654 memory Effects 0.000 claims description 30
- 238000012545 processing Methods 0.000 claims description 20
- 244000035744 Hura crepitans Species 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 14
- 238000012795 verification Methods 0.000 claims description 11
- 238000011144 upstream manufacturing Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 238000002347 injection Methods 0.000 claims description 6
- 239000007924 injection Substances 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 9
- 239000008186 active pharmaceutical agent Substances 0.000 description 8
- 230000006399 behavior Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 6
- 239000000243 solution Substances 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 5
- 238000010295 mobile communication Methods 0.000 description 5
- 230000003190 augmentative effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011982 device technology Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000013067 intermediate product Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/75—Indicating network or usage conditions on the user display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/08—Protocols specially adapted for terminal emulation, e.g. Telnet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种数据网络共享方法、电子设备及存储介质,属于计算机技术、电子设备技术领域。该数据网络共享方法,应用于第一设备中,包括:响应于用户上网操作,在第一设备的人机交互界面上显示提示弹窗,以提示是否请求共享第二设备的可用数据网络,其中,第一设备当前未连接可用数据网络,第二设备具备向第一设备提供共享数据网络的网络共享能力;基于提示弹窗接收网络共享请求操作;响应于网络共享请求操作,向第二设备请求共享第二设备的可用数据网络。可以实现在第一设备没有可用数据网络的情况下,响应于用户上网操作,主动弹窗提示用户连接共享数据网络,用户仅需点击确认连接即可使用共享数据网络,而无需进入设置界面手动设置连接。
Description
技术领域
本申请涉及计算机技术、电子设备技术领域,特别涉及一种数据网络共享方法、电子设备及存储介质。
背景技术
目前,当第一设备(如智能手机、平板电脑)处于未连接可用数据网络状态,在用户有使用第一设备上网的需求时,通常需要用户手动进入设置界面,请求使用第二设备(具备向第一设备提供共享数据网络的网络共享能力)的共享数据网络,体验不够智能。
发明内容
本申请提供一种数据网络共享方法、电子设备及存储介质,此数据网络共享方法可以应用于各种需要对电子设备进行数据网络共享的场景中,可以实现在第一设备没有可用数据网络的情况下,响应于用户上网操作,主动弹窗提示用户连接共享数据网络,用户仅需点击确认连接即可使用共享数据网络,而无需进入设置界面手动设置连接。
第一方面,本申请提供一种数据网络共享方法,应用于第一设备中,所述方法包括:
响应于用户上网操作,在所述第一设备的人机交互界面上显示提示弹窗,以提示是否请求共享第二设备的可用数据网络,其中,所述第一设备当前未连接可用数据网络,所述第二设备具备向所述第一设备提供共享数据网络的网络共享能力;
基于所述提示弹窗接收网络共享请求操作;
响应于所述网络共享请求操作,向所述第二设备请求共享所述第二设备的可用数据网络。
根据第一方面,或者以上第一方面的任意一种实现方式,所述响应于用户上网操作,在所述第一设备的人机交互界面上显示提示弹窗之前,所述方法还包括:
在接收到所述第二设备发出的网络共享告知消息的情况下,确定存在所述第二设备,其中,所述网络共享告知消息用于表征所述第二设备具备向所述第一设备提供共享数据网络的网络共享能力。
根据第一方面,或者以上第一方面的任意一种实现方式,所述方法还包括:
在所述第一设备确定所述第一设备当前未连接所述可用数据网络的情况下,请求将所述第一设备的系统网卡绑定到虚拟网卡;
在所述系统网卡与所述虚拟网卡绑定的情况下,采用近场通信方式与所述第二设备通信;
在与所述第二设备通信的情况下,接收所述网络共享告知消息。
根据第一方面,或者以上第一方面的任意一种实现方式,所述方法还包括:
在监测到第三方应用的上行数据包发送事件的情况下,确定接收到所述用户上网操作,所述第三方应用为运行在所述第一设备上的任意一个应用。
根据第一方面,或者以上第一方面的任意一种实现方式,所述方法还包括:
在所述第一设备的Linux操作系统的内核中,采用所述内核的沙盒程序监测所述第三方应用的上行数据包发送事件。
根据第一方面,或者以上第一方面的任意一种实现方式,所述沙盒程序包括:扩展的伯克利包过滤器eBPF程序。
在一些实现方式中,在采用所述内核的沙盒程序监测所述第三方应用的上行数据包发送事件之前,所述方法还包括:
采用所述第一设备的网络共享模块注册上行数据监测服务;
采用所述上行数据监测服务调用所述Linux操作系统的对象获取函数,以从硬盘的eBPF对象文件中获取eBPF程序,其中,所述eBPF对象文件是采用eBPF源文件编程生成的;
采用所述上行数据监测服务调用所述Linux操作系统的注入内核函数,以将所述eBPF程序加载到所述Linux操作系统的内核中。
根据第一方面,或者以上第一方面的任意一种实现方式,所述方法还包括:
采用所述Linux操作系统的内核中的eBPF验证机制对所述eBPF程序进行校验,并在校验通过后将所述eBPF程序加载到所述内核中。
根据第一方面,或者以上第一方面的任意一种实现方式,将所述eBPF程序加载到所述Linux操作系统的内核中,包括:
在所述eBPF程序被所述Linux操作系统标志为物理资源隔离机制管控类型的情况下,从所述内核中确定一个物理资源隔离机制文件描述符;
将所述eBPF程序加载到所述物理资源隔离机制文件描述符上。
根据第一方面,或者以上第一方面的任意一种实现方式,在将所述eBPF程序加载到所述物理资源隔离机制文件描述符上之后,所述方法还包括:
将加载有所述eBPF程序的物理资源隔离机制文件描述符注入到所述内核中的ip_finish_output函数内的钩子函数,以使得所述内核监测到所述第三方应用的上行数据包发送事件时,从所述第三方应用的上行数据包中识别到所述第三方应用的应用ID,其中,所述ip_finish_output函数为所述内核的网络协议栈ip层上行数据包处理函数之一。
根据第一方面,或者以上第一方面的任意一种实现方式,在将所述eBPF程序注入到所述内核中的ip_finish_output函数内的钩子函数之后,所述方法还包括:
在所述内核的所述eBPF程序中创建第一映射表和第二映射表,其中,所述第一映射表用于提供所述内核和用户空间的通信支持,所述第二映射表用于存储所述第一设备上运行的所有第三方应用的应用ID。
根据第一方面,或者以上第一方面的任意一种实现方式,所述方法还包括:
采用所述上行数据监测服务,将所述第一设备上运行的所有第三方应用的应用ID写入到所述第二映射表中,以更新所述第二映射表,其中,所述上行数据监测服务调用所述内核中的映射表更新函数将所述应用ID写入到所述第二映射表。
根据第一方面,或者以上第一方面的任意一种实现方式,在所述第一设备的人机交互界面上显示提示弹窗之前,所述方法还包括:
在监测到所述上行数据包发送事件的情况下,从所述第三方应用发送的上行数据包中识别应用请求信息,其中,所述应用请求信息包括:所述第三方应用的应用ID,服务器目的IP地址、服务器的目的port端口号,所述服务器为第三方应用对应的应用服务器;
在识别到所述应用ID在所述第二映射表中,且基于所述目的IP地址和/或所述目的port端口号确定所述上行数据包为非局域网业务数据包的情况下,采用所述上行数据监测服务向所述网络共享模块返回监测到的所述上行数据包发送事件,以及与所述上行数据包发送事件对应的应用ID;
若通过所述网络共享模块确定所述上行数据监测服务返回的应用ID与所述第三方应用发送的上行数据包中携带的应用ID相同,则触发执行在所述人机交互界面上显示提示弹窗。
根据第一方面,或者以上第一方面的任意一种实现方式,向所述网络共享模块返回监测到的所述上行数据包发送事件,以及与所述上行数据包发送事件对应的应用ID,包括:
采用所述上行数据监测服务基于所述第一映射表,将所述上行数据包发送事件,以及与所述上行数据包发送事件对应的应用ID写入所述内核中的数据缓冲区,其中,所述数据缓冲区实现在所述内核和所述用户空间之间交换数据。
根据第一方面,或者以上第一方面的任意一种实现方式,所述方法还包括:
在识别到所述应用ID在所述第二映射表中,且基于所述目的IP地址和/或所述目的port端口号确定所述上行数据包为非局域网业务数据包的情况下,采用所述上行数据监测服务将识别到的所述应用ID从所述第二映射表中删除,以更新所述第二映射表。
根据第一方面,或者以上第一方面的任意一种实现方式,所述方法还包括:
采用所述上行数据监测服务调用数据缓冲区轮询函数,对所述内核中的数据缓冲区的轮询处理,以监测所述上行数据包发送事件。
根据第一方面,或者以上第一方面的任意一种实现方式,所述第一设备和所述第二设备的用户设备登录账号相同。
第二方面,本申请提供一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器,以及存储器;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行任一项所述的方法。
第三方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质包括指令,当所述指令在电子设备上运行时,使得所述电子设备执行任一项所述的方法。
通过上述技术方案,由于电子设备包括上述数据网络共享方法,因此至少具备数据网络共享方法的所有有益效果,在此不再赘述。
附图说明
图1是本申请实施例提供的电子设备100的结构示意图;
图2是本申请实施例提供的电子设备100的软件结构框图;
图3是本申请实施例提供的一种数据网络共享方法的示意图;
图4是本申请实施例提供的一种数据网络共享方法适用的场景示意图;
图5是本申请实施例提供的第一设备A和第二设备B进行数据网络共享的交互流程示意图;
图6是本申请实施例提供的数据网络共享方法的预处理流程示意图;
图7是本申请实施例提供的一种将eBPF程序加载到Linux操作系统的内核的流程示意图一;
图8是本申请实施例提供的一种将eBPF程序加载到Linux操作系统的内核的流程示意图二;
图9是本申请实施例提供的一种可选的数据网络共享方法的流程示意图;
图10是本申请实施例提供的另一种可选的数据网络共享方法的流程示意图;
图11是本申请实施例提供的一种循环执行eBPF程序的流程示意图;
图12是本申请实施例提供的又一种可选的数据网络共享方法的流程示意图;
图13是本申请实施例提供的一种数据网络共享装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
扩展的伯克利包过滤器,extended Berkeley Packet Filter,简称eBPF,是在操作系统的内核中运行沙盒程序。它一般来说,要向内核添加新功能,需要修改内核源代码或者编写内核模块来实现。而 eBPF 允许程序在不修改内核源代码,或添加额外的内核模块情况下运行。
虚拟网卡,又称为local网卡,它不受网络防火墙和网卡相关的限制。
物理资源隔离机制Cgroups,全称Control Groups,是Linux内核提供的物理资源隔离机制,通过这种物理资源隔离机制,可以实现对Linux进程或者进程组的资源限制、隔离和统计功能。
数据缓冲区perf buffer,是eBPF中提供的内核和用户空间之间高效地交换数据的机制,当需要将eBPF收集到的数据发送到用户空间记录或者处理时,就可以用perfbuffer来完成。
以上是对本申请实施例所涉及名词的简单介绍,以下不再赘述。
为了更好的说明本申请实施例提供的数据网络共享方法,在对本申请实施例提供的数据网络共享方法进行详细地解释说明之前,先结合图1所给出的本申请实施例提供的电子设备100的结构示意图,对本申请实施例涉及的电子设备(如第一设备和第二设备)予以说明。作为示例而非限定,可选地,电子设备100可以称为终端,也可以称为终端设备,电子设备100的具体产品形态可以是手机、可穿戴设备(例如智能手环、智能手表、耳机等)、平板电脑、膝上型计算机(laptop)、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、蜂窝电话、个人数字助理(personal digitalassistant,PDA)、增强现实(Augmented reality,AR)\虚拟现实(virtual reality,VR)设备等IOT(internet of things,物联网)设备,还可以是电视、大屏、打印机、投影仪等设备,本申请实施例对此不作限定。
应该理解的是,图1所示的电子设备100仅是电子设备的一个范例,并且电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图1中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括:处理器110、外部存储器接口120、内部存储器121、通用串行总线(universal serial bus,USB)接口130、充电管理模块140、电源管理模块141、电池142、天线1、天线2、移动通信模块150、无线通信模块160、音频模块170、传感器模块180、按键190、马达191、指示器192、摄像头193、显示屏194以及用户标识模块(subscriberidentification module,SIM)卡接口195等。其中,传感器模块180可以包括压力传感器、陀螺仪传感器、加速度传感器、温度传感器、运动传感器、气压传感器、磁传感器、距离传感器、接近光传感器、指纹传感器、触摸传感器、环境光传感器、骨传导传感器等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP)、调制解调处理器、图形处理器(graphics processingunit,GPU)、图像信号处理器(image signal processor,ISP)、控制器、存储器、视频编解码器、数字信号处理器(digital signal processor,DSP),基带处理器和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口、Micro USB接口、USB Type C接口等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。电源管理模块141用于连接电池142、充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110、内部存储器121、外部存储器、显示屏194、摄像头193、和无线通信模块160等供电。
电子设备100的无线通信功能可以通过天线1、天线2、移动通信模块150、无线通信模块160、调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器、开关、功率放大器、低噪声放大器(low noise amplifier,LNA)等。
无线通信模块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)等无线通信的解决方案。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
电子设备100通过GPU、显示屏194以及应用处理器等实现显示功能。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP、摄像头193、视频编解码器、GPU、显示屏194以及应用处理器等实现拍摄功能。
ISP 用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给ISP处理,转化为肉眼可见的图像。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB、YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
其中,摄像头193可以位于电子设备的边缘区域,可以为屏下摄像头,也可以是可升降的摄像头。摄像头193可以包括后置摄像头,还可以包括后置摄像头。本申请实施例对摄像头193的具体位置和形态不予限定。电子设备100可以包括一种或多种焦段的摄像头,例如不同焦段的摄像头可以包括长焦摄像头、广角摄像头、超广角摄像头或全景摄像头等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。
内部存储器121可以用于存储计算机可执行程序代码,上述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理,例如使得电子设备100实现本申请实施例中的任务处理方法。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据、电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170以及应用处理器等实现音频功能。例如音乐播放、录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
触摸传感器,也称“触控面板”。触摸传感器可以设置于显示屏194,由触摸传感器与显示屏194组成触摸屏,也称“触控屏”。触摸传感器用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。
压力传感器用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器可以设置于显示屏194。电子设备100也可以根据压力传感器的检测信号计算触摸的位置。
陀螺仪传感器可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器确定电子设备100围绕三个轴(即,x、y和z轴)的角速度。
加速度传感器可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时加速度传感器可检测出重力的大小及方向。加速度传感器还可以用于识别电子设备姿态,应用于横竖屏切换、计步器等应用。
按键190包括开机键(或称电源键)、音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
接下来对电子设备100的软件系统予以说明。电子设备100的软件系统可以采用分层架构、事件驱动架构、微核架构、微服务架构或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
如图2为示例性示出的电子设备100的软件结构框图,电子设备100的分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层、应用程序框架层、安卓运行时(Android runtime)、系统层和内核层。
应用程序层可以包括一系列应用程序包,如图2所示,应用程序包可以包括图库、创作助手、快应用引擎、轻编辑服务等应用程序。创作助手例如可以对用户的会话输入内容进行解析,以及根据会话解析结果调用其他应用或者中间件进行视频生成。快应用引擎例如可以提供JS(JavaScript)卡片下载服务。轻编辑服务例如可以基于搜索到的静态图像素材和/或视频素材生成视频。
应用程序框架层为应用程序层的应用程序提供应用编程接口(ApplicationProgramming Interface,API)和编程框架,包括各种组件和服务来支持开发者的安卓开发。应用程序框架层包括一些预先定义的函数。如图2所示,应用程序框架层可以包括窗口管理器、内容提供器、通知管理器、资源管理器、搜索引擎、学习记忆库和视觉图像模块等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小、判断是否有状态栏、锁定屏幕、截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被第三方应用访问。数据可以包括视频、图像、音频、拨打和接听的电话、浏览历史和书签、电话簿等。
资源管理器可以为应用程序提供各种资源,比如本地化字符串、图标、图片、布局文件、视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知信息被用于告知下载完成、消息提醒等。通知信息还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息、发出提示音、电子设备振动、指示灯闪烁等。
库和安卓运行时(Android Runtime)。系统库可以包括多个功能模块,例如图像渲染库、图像合成库、函数库和媒体库等。安卓运行时包括核心库和虚拟机,安卓运行时负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中,虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理、堆栈管理、线程管理、安全和异常的管理以及垃圾回收等功能。
可以理解的是,图2示出的系统框架层、系统库与运行时层包含的部件,并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
内核层是硬件和上述软件层之间的层。内核层至少包含显示驱动、摄像头驱动和传感器驱动。硬件可以包括摄像头、显示屏、麦克风、处理器以及存储器等器件。
目前,当第一设备(如智能手机、平板电脑)处于未连接可用数据网络状态,在用户有使用第一设备上网的需求时,通常需要用户手动进入设置界面,请求使用第二设备(具备向第一设备提供共享数据网络的网络共享能力)的共享数据网络,体验不够智能。
为解决上述技术问题,本申请实施例提供了一种数据网络共享方法,可应用于电子设备。该电子设备可以包括手机、平板电脑、智慧手表、笔记本电脑、虚实融合设备、超级移动个人计算机、智能电视、智慧屏、高清电视、智能音箱、智能投影仪等。本申请实施例可以应用于各种需要对电子设备进行数据网络共享的场景中。
采用数据网络共享方法,可以实现在第一设备没有可用数据网络的情况下,感知用户上网行为后,主动弹窗提醒用户连接共享数据网络的方法,主动在第一设备的人机交互界面上弹出弹窗,以提示用户连接第二设备的共享数据网络,用户仅需点击确认连接即可使用共享数据网络,而无需进入设置界面去手动连接共享数据网络。
图3是本申请实施例提供的一种数据网络共享方法的示意图,如图3所示,数据网络共享方法应用于第一设备中,包括:
S310,响应于用户上网操作,在第一设备的人机交互界面上显示提示弹窗,以提示是否请求共享第二设备的可用数据网络。
其中,第一设备当前未连接可用数据网络,第二设备具备向第一设备提供共享数据网络的网络共享能力。
S320,基于提示弹窗接收网络共享请求操作。
S330,响应于网络共享请求操作,向第二设备请求共享第二设备的可用数据网络。
该方法涉及两个设备,即第一设备和第二设备,图4是本申请实施例提供的一种数据网络共享方法适用的场景示意图。如图4所示,其中,第一设备是需要上网的设备,如智能手机,平板电脑等,第二设备是具备网络共享能力的设备,例如智能手机、移动热点设备等。
一种可选的实施例中,第一设备和第二设备的用户设备登录账号(登录ID)相同,还可以是蓝牙连接方式进行连接,示例性地,如果第二设备是一台智能手机,第二设备是一台平板电脑,可以通过开启移动热点等近场通信方式,允许第一设备共享第二设备的移动数据网络。实现对网络共享的权限和策略的统一管理和配置,从而满足用户的个性化需求,提高了第一设备的网络共享功能的安全性和个性化。
在第一设备感知到用户的上网行为时,在第一设备的人机交互界面上显示提示弹窗,主动提醒用户可以通过第二设备的网络共享能力来实现上网,从而方便用户选择是否进行网络共享,提高了用户的上网便利性和满意度。
根据用户上网操作感知到用户的上网行为,智能地判断是否需要共享数据网络,而不是一味地强制共享或者拒绝共享,从而避免了不必要的流量消耗或者网络中断,提高了用户的满意度。通过在第一设备的人机交互界面上显示提示弹窗,让第一设备的用户清楚地知道第二设备的网络共享能力和条件,以及共享数据网络的优势和风险,从而让用户有更多的选择权和自主权,增强了用户的信任感。
示例性地,第一设备可以基于提示弹窗接收网络共享请求操作;响应于用户作用于提示弹窗的网络共享请求操作,向第二设备请求共享其可用数据网络。即在用户同意进行网络共享时,快速地向第二设备请求共享数据网络,实现第一设备和第二设备之间的数据网络连接,从而使第一设备可以访问第二设备提供的可用数据网络,减少了用户等待的时间和操作的步骤,提高了用户的便捷性和效率。
在第一设备未连接可用数据网络的情况下,通过第二设备的网络共享能力,为第一设备提供数据网络的访问,从而实现跨网络的数据共享,提高数据网络的利用率和用户的上网体验。
相对于现有技术的优点是,不需要用户手动搜索和连接可用的共享数据网络,而是通过第一设备响应于用户上网操作感知到用户的上网行为,直接在第一设备的人机交互界面自动提示用户是否请求共享第二设备的可用数据网络,实现了在第一设备当前未连接可用数据网络的情况下,能够方便用户选择是否利用第二设备的网络共享能力,从而提高了第一设备的用户上网体验和网络利用效率。
此外,将第二设备的可用数据网络共享给第一设备,可以有效利用第二设备的网络共享能力,避免了数据网络的浪费,提高了数据网络的利用率。
下面结合图5-图12,对本申请实施例的数据网络共享过程进行示意性说明。
如图5所示的第一设备A和第二设备B进行数据网络共享的交互流程示意图,第一设备A是需要上网的设备,如智能手机,平板电脑等,第二设备B是具备网络共享能力的设备,例如智能手机、移动热点设备等。
如图5所示,第二设备B可以通过wifi、蓝牙等近场通信方式将自身的网络共享能力告知第一设备A,以保证第一设备A在无数据网络连接的状态下,通过近场通信通路感知到第二设备B的存在。
第三方应用M2为运行在第一设备A上的任意一个应用,例如,在第一设备的人机交互界面上展示、用户正在与之交互的应用程序,在用户与前台应用的交互过程中,前台应用自身可能根据自身业务的需求发起因特网的数据请求。
M3为第一设备A的系统框架API接口,通常情况下,第三方应用会通过查询系统框架API来判断当前第一设备是否连接数据网络。
M4为第一设备A的网络共享模块,该模块可与第二设备B进行通信交互,感知第二设备B的网络共享能力,并可与第二设备B建立wifi等近场通信连接,获取第二设备B无线共享的可用数据网络。
M5为第一设备A的上行数据监测服务,作为M4和M6(eBPF程序)之间的中间层,负责对M4提供必要的功能接口,用于调用和管理M6,M5内部包含一层JNI(Java NativeInterface)层,以实现上层Java程序和下层C/C++程序之间的交互。
M6为eBPF程序,eBPF(extended Berkeley Packet Filter)是一种在Linux内核中运行的虚拟机技术,为 Linux操作系统提供了一种灵活、高性能的方式,使得用户能够在第一设备运行时定制和扩展内核行为,而无需修改内核源代码,示意性地,本申请示例中,M6为上行数据包监测的eBPF程序源代码通过eBPF编译器编译出的eBPF字节码文件,即eBPF程序编译的中间产物,可以’.o’后缀结尾。
M7为第一设备A的内核(内核态、内核空间),即Linux操作系统核心运行的环境,第三方应用M2与应用服务器的上行交互数据包,包含但不限于:TCP协议握手包、UDP协议数据包、DNS协议查询请求包,都将通过Linux操作系统调用的方式传入内核态的网络协议栈,因此,在M7处可以监控到所有第三方应用M2发送给对应应用服务器的上行交互数据包(上行数据包)。
作为一种可选的示例中,在响应于用户上网操作,在上述第一设备的人机交互界面上显示提示弹窗之前,上述方法还包括:
在接收到上述第二设备发出的网络共享告知消息的情况下,确定存在上述第二设备,其中,上述网络共享告知消息用于表征上述第二设备具备向上述第一设备提供共享数据网络的网络共享能力。
一个可能的应用场景是,当用户在公共场所使用第一设备(如智能手机)时,如果第一设备未连接可用数据网络,而第二设备(如移动Wi-Fi设备)具备网络共享能力,并且与第一设备在近场通信范围内,那么第二设备可以主动向第一设备发送网络共享告知消息,提示第一设备可以请求共享第二设备的可用数据网络,从而节省了第一设备用户的操作时间和步骤。
在响应于用户上网操作,在上述第一设备的人机交互界面上显示提示弹窗之前,在接收到上述第二设备发出的网络共享告知消息的情况下,确定存在上述第二设备,可以预先让第一设备能够知道第二设备是否愿意提供网络共享,提高了网络共享的可靠性和安全性,因为第一设备只有在接收到第二设备的网络共享告知消息后,才能确定第二设备的存在,并且只有在第一设备的用户同意后,才能进行网络共享,从而避免了无意或者恶意的网络共享。
一种可选的示意性实施例中,上述方法还包括:
在上述第一设备确定上述第一设备当前未连接上述可用数据网络的情况下,请求将上述第一设备的系统网卡绑定到虚拟网卡;
在上述系统网卡与上述虚拟网卡绑定的情况下,采用近场通信方式与上述第二设备通信;
在与上述第二设备通信的情况下,接收上述网络共享告知消息。
仍如图5所示,第二设备B采用近场通信方式,发送网络共享告知消息给第一设备A的M4网络共享模块,即告知第一设备A的M4网络共享模块第二设备B具备网络共享能力。
之后,如图5中所示,M4网络共享模块判断第一设备A是否已连接可用数据网络,若未连接,则请求将第一设备A的系统网卡绑定到虚拟网卡上,在系统网卡与虚拟网卡绑定的情况下,采用近场通信方式与第二设备通信,保证在用户启动第三方应用的情况下,可以通过系统框架API接口查询到当前有可用的网络连接。这样,第一设备采用近场通信方式(如WiFi、蓝牙等)与第二设备通信,接收第二设备向第一设备发送的网络共享告知消息。
采用上述方法步骤,使得第一设备能够根据用户使用第三方应用的上网需求,自动判断是否需要网络共享,并且通过虚拟网卡和近场通信方式与第二设备通信,从而适应不同的网络环境和设备类型。例如,在第一设备上运行的第三方应用需要使用数据网络时,通过查询第一设备的系统框架API接口,确定第一设备当前未连接可用数据网络,然后请求将第一设备的系统网卡绑定到虚拟网卡,以使得第一设备可以采用近场通信方式与第二设备通信,那么第三方应用可以通过调用第一设备的系统框架API接口,检测到第一设备当前可与第二设备进行近场通信,接收第二设备发送的网络共享告知消息,从而实现了第一设备在第三方应用层面的网络共享感知和请求,提高了第一设备的网络共享效率和用户体验。
采用上述方法步骤,可以保证第三方应用可以通过系统框架API接口获取到可用近场通信网路;否则在第一设备A未连接可用数据网络的情况下,第三方应用通过系统框架API接口查询到当前数据网络(例如,4G、5G等无线蜂窝网络、WIFI等)不可用,通常是不会发起网络请求的,也就无法根据网络请求来识别第三方应用的上网意图。
一个可能的应用场景是,当用户在第一设备(如智能手机)上使用第三方应用(如视频播放应用)时,如果第一设备未连接可用数据网络,而第二设备(如移动Wi-Fi设备)具备网络共享能力,并且与第一设备在近场通信范围内,然后第一设备请求将系统网卡绑定到虚拟网卡,从而使得第一设备可以接收第二设备发送的网络共享告知消息,并向第二设备请求共享数据网络,从而实现了第三方应用的网络共享功能,避免了第一设备用户手动切换网络的麻烦。
上述方法示例提高了网络共享的便捷性和兼容性,第一设备不需要手动设置或者修改网络连接,而是根据第三方应用的查询自动判断是否需要网络共享,并且通过虚拟网卡和近场通信方式与第二设备通信,从而适应不同的网络环境和设备类型。
作为一种可选的实施例,上述方法还包括:
在监测到第三方应用的上行数据包发送事件的情况下,确定接收到上述用户上网操作,上述第三方应用为运行在上述第一设备上的任意一个应用。
在第一设备上运行的第三方应用需要使用数据网络时,通过监测第三方应用的上行数据包发送事件,并根据上行数据包的内容或特征,确定接收到上述用户上网操作,判断出用户的上网行为(例如浏览网页、聊天、下载文件等),从而为第一设备提供了更灵敏、更准确的网络共享感知和请求方式。
一个可能的应用场景是,当用户在第一设备(如智能手机)上使用第三方应用(如社交应用)时,如果第一设备没有可用的数据网络,而第二设备(如移动Wi-Fi设备)具备网络共享能力,并且与第一设备在近场通信范围内,那么当用户在第三方应用中发送消息或者上传图片等操作时,第三方应用会产生上行数据包发送事件,这些事件会被第一设备的网络共享模块监测到,从而触发第一设备向第二设备请求共享数据网络的操作,从而实现了第三方应用的网络共享功能,提高了第一设备的网络共享效率和用户体验。
一种可选的实施例中,上述方法还包括: 在第一设备的Linux操作系统的内核中,采用内核沙盒程序监测第三方应用的上行数据包发送事件。
在第一设备的Linux操作系统的内核中,采用沙盒程序监测第三方应用的上行数据包发送事件,从而实现了第一设备的网络共享感知和请求功能的高效实现,降低了第一设备的系统资源消耗和安全风险。
一个可能的应用场景是,当用户在第一设备(如智能手机)上使用第三方应用(如社交应用)时,如果第一设备没有可用的数据网络,而第二设备(如移动Wi-Fi设备)具备网络共享能力,并且与第一设备在近场通信范围内,那么当用户在第三方应用中发送消息或者上传图片等操作时,第三方应用会产生上行数据包发送事件,这些事件会被第一设备的Linux操作系统的内核中的沙盒程序监测到,从而触发第一设备向第二设备请求共享数据网络的操作,从而实现了第三方应用的网络共享功能,提高了第一设备的网络共享效率和用户体验。
与在用户空间监测上行数据包发送事件相比,沙盒程序可以更快速、更安全地访问内核数据结构和函数,同时也避免了用户空间和内核空间的频繁切换,从而降低了第一设备的系统资源消耗和安全风险。
一种可选的示例中,沙盒程序包括:扩展的伯克利包过滤器eBPF程序。
在第一设备的Linux操作系统的内核中,采用扩展的伯克利包过滤器eBPF程序作为沙盒程序,从而实现了第一设备的网络共享感知和请求功能的灵活定制,提高了第一设备的网络共享功能的适应性和可扩展性。
作为一种可选的示例,eBPF程序的源代码的伪代码可以为如下:
SEC("egress")
int egress_program(struct __sk_buff *skb) {
//根据入参的skb获取当前上行交互数据包对应的uid,即第三方应用的唯一标识符;
get_uid_from_skb(skb);
//根据入参的skb获取当前上行交互数据包的目的ip地址;
get_ip_from_skb(skb);
//根据入参的skb获取当前上行交互数据包的目的端口号;
get_port_from_skb(skb);
}
与其他类型的内核沙盒程序相比,eBPF程序可以在不修改内核源代码的情况下,动态地加载和卸载,从而实现了第一设备的网络共享功能的灵活定制,提高了第一设备的网络共享功能的适应性和可扩展性。
作为一种可选的实施例,在采用内核的沙盒程序监测第三方应用的上行数据包发送事件之前,上述方法还包括:
采用上述第一设备的网络共享模块注册上行数据监测服务;
采用上述上行数据监测服务调用上述Linux操作系统的对象获取函数,以采用对象获取函数从硬盘的eBPF对象文件中获取eBPF程序。
示意性地,上述eBPF对象文件是采用eBPF源文件编程生成的。
采用上述上行数据监测服务调用上述Linux操作系统的注入内核函数,以将上述eBPF程序加载到上述Linux操作系统的内核中。
示意性地,eBPF程序是一种可在Linux内核中运行的字节码程序,可以用于实现高效的数据包过滤、网络监控、安全审计等功能。eBPF对象文件是由eBPF源文件编译生成的文件,包含了eBPF程序的二进制代码和相关的元数据。对象获取函数是Linux操作系统提供的一种函数,例如可以为bpf_object__open("/txIntent.o"),可以从硬盘中读取eBPF对象文件的内容。注入内核函数是Linux操作系统提供的一种函数,例如可以为bpf_prog_load(obj),可以将eBPF程序加载到内核中,并与内核的特定函数或事件关联起来。
上述方法步骤描述了一种通过注册上行数据监测服务,获取并加载eBPF程序到Linux操作系统的内核的方法,图6是本申请实施例提供的一种数据网络共享方法的预处理流程示意图。如图6所示,首先,采用M4网络共享模块注册上行数据监测服务,之后,采用上述上行数据监测服务调用上述Linux操作系统的对象获取函数,以从硬盘的eBPF对象文件中获取eBPF程序,最后,采用上述上行数据监测服务调用上述Linux操作系统的注入内核函数,以将上述eBPF程序加载到上述Linux操作系统的内核中。
与在内核源代码中编写和编译沙盒程序相比,直接从硬盘的eBPF对象文件中获取eBPF程序,并将eBPF程序加载到内核中,可以避免修改内核源代码,简化了沙盒程序的开发和部署过程,降低了第一设备的网络共享功能的开发和维护成本。
作为一种可选的实施例,仍如图6所示,上述方法还包括:采用上述Linux操作系统的内核中的eBPF验证机制对上述eBPF程序进行校验,并在校验通过后将上述eBPF程序加载到上述内核中。
示意性地,eBPF验证机制(Verifier机制)是Linux内核中的一种机制,可以对eBPF程序的算法复杂度校验、合法性和安全性进行检查,保证eBPF程序的安全性和正确性,以确保eBPF程序不会造成内核的崩溃或泄露。
在第一设备的Linux操作系统的内核中,采用eBPF验证机制对eBPF程序进行校验,并在校验通过后将eBPF程序加载到内核中,与直接加载eBPF程序到内核中相比,可以确保eBPF程序不会对内核造成破坏或者崩溃,提高了第一设备的网络共享功能的可靠性和稳定性。
作为一种可选的实施例,图7是本申请实施例提供的一种将eBPF程序加载到Linux操作系统的内核的流程示意图。则如图7所示,在上述eBPF程序被上述Linux操作系统标志为物理资源隔离机制管控类型的情况下,从上述内核中确定一个物理资源隔离机制文件描述符;
将上述eBPF程序加载到上述物理资源隔离机制文件描述符上。
示意性地,本申请示例中,可以采用上行数据监测服务调用Linux系统,例如,使用加载函数BPF_PROG_ATTACH,将eBPF程序加载到物理资源隔离机制文件描述符(cgroup v2文件描述符)上。
示意性地,本申请示例中,物理资源隔离机制是Linux内核中的一种机制,可以对内核中的物理资源进行隔离和管理,以防止资源的滥用或冲突。物理资源隔离机制文件描述符是Linux系统中的一种文件描述符,例如,cgroup v2的文件描述符,可以用于访问物理资源隔离机制的相关功能。
示意性地,本申请示例中,eBPF程序的类型可以根据eBPF程序的功能和目的进行划分,例如,有些eBPF程序需要访问内核的物理资源,如内存、寄存器等,而有些eBPF程序则不需要。通过根据eBPF程序的类型,选择不同的加载方式,实现了对内核物理资源的合理分配和保护,提高了内核的稳定性和效率。
采用上述方法示例,与直接加载eBPF程序到内核中相比,在上述eBPF程序被上述Linux操作系统标志为物理资源隔离机制管控类型的情况下,从上述内核中确定一个物理资源隔离机制文件描述符,并将eBPF程序加载到物理资源隔离机制文件描述符上,可以实现eBPF程序对内核物理资源的访问控制,避免了eBPF程序对内核物理资源的滥用或者冲突,提高了第一设备的网络共享功能的安全性和效率。
作为一种可选的示例,图8是一种将eBPF程序加载到Linux操作系统的内核的示意图,如图8所示,在将上述eBPF程序加载到上述物理资源隔离机制文件描述符上之后,还可以将加载有上述eBPF程序的物理资源隔离机制文件描述符注入到上述内核中的ip_finish_output函数内的钩子函数,以使得上述内核监测到上述第三方应用的上行数据包发送事件时,从上述第三方应用的上行数据包中识别到上述第三方应用的应用ID。
示意性地,本申请示例中,ip_finish_output函数为内核的网络协议栈ip层上行数据包处理函数之一。
在第一设备的Linux操作系统的内核中,将加载有上述eBPF程序的物理资源隔离机制文件描述符注入到内核中的ip_finish_output函数内的钩子函数,以使得内核监测到第三方应用的上行数据包发送事件时,从第三方应用的上行数据包中识别到第三方应用的应用ID(UID),从而实现了第一设备的网络共享感知和请求功能的用户身份识别,提高了第一设备的网络共享功能的精准性和个性化。
示意性地,本申请示例中,钩子函数是一种特殊的函数,可以在另一个函数的执行过程中被调用,以实现额外的功能。ip_finish_output函数是内核的网络协议栈ip层上行数据包处理函数之一,用于将上行数据包从网络层传递到链路层。应用ID是一种用于标识第三方应用的用户的唯一标识符。
与在用户空间识别用户身份相比,将eBPF程序注入到内核中的ip_finish_output函数内的钩子函数,可以在内核空间直接从第三方应用的上行数据包中识别到第三方应用的应用ID,从而实现了第一设备的网络共享感知和请求功能的用户身份识别,提高了第一设备的网络共享功能的精准性和个性化。例如,第一设备可以根据不同的应用ID,向第二设备请求不同的网络共享策略,如流量限制、速度限制、时长限制等,从而满足不同用户的不同需求。
作为一种可选的实施例,仍如图8所示,在将eBPF程序注入到内核中的ip_finish_output函数内的钩子函数之后,还在内核的eBPF程序中创建第一映射表和第二映射表,其中,第一映射表用于提供内核和用户空间的通信支持,第二映射表用于存储第一设备上运行的所有第三方应用的应用ID。
由于本申请实施例旨在识别第三方应用的上行数据包,因此在Linux内核选择合适的eBPF程序的注入位置是尤为重要的。根据网络协议和第三方应用的网络行为来看,第三方应用在发起上行数据请求时,通常包含下述三个协议行为的一个或多个:基于DNS协议发起DNS请求包用来解析域名并获取相应的IP地址;基于TCP协议建立TCP连接发起TCP握手包;基于UDP协议发起UDP上行数据。
根据上述的上行数据包来识别第三方应用的上网意图,由于上述三种上行数据包都将流经IP(Internet Protocol)层,因此,在内核ip_finish_output函数处注入eBPF程序,ip_finish_output函数位于IP层上行数据包处理流程的结尾处,Linux操作系统的出向流量都将经过此处。
一种可选的示例中,eBPF程序提供了多种类型的映射表,例如:BPF_MAP_TYPE_HASH类型的映射表用于存储键值对,适用于快速查找和更新;BPF_MAP_TYPE_ARRAY类型的映射表可以按索引访问,适用于顺序存储数据;BPF_MAP_TYPE_PROG_ARRAY类型的映射表为程序数组映射,可以存储eBPF程序的文件描述符,允许在运行时选择并执行不同的eBPF程序。
本申请实施例中,第一映射表BPF_MAP_TYPE_PERF_EVENT_ARRAY可以用于用户态和内核态之间的通信,在eBPF程序(txIntent.o)在被注入到内核态后,内核中创建BPF_MAP_TYPE_PERF_EVENT_ARRAY类型的第一映射表用于将内核态(内核空间)识别到的上行数据包发送事件上报至用户态(用户空间)。本申请实施例内核中还可以创建BPF_MAP_TYPE_HASH类型的第二映射表,用于存储第一设备中需要监控的第三方应用的UID。
在将eBPF程序注入到内核的ip_finish_output函数内的钩子函数后,在内核的eBPF程序中创建两个映射表。内核和用户空间是Linux系统中的两种运行模式,内核空间用于执行内核代码,用户空间用于执行用户代码。第一映射表用于提供内核和用户空间的通信支持,即让内核的eBPF程序能够将应用ID等上行数据监测信息传递给用户空间。第二映射表用于存储第一设备上运行的所有第三方应用的应用ID,即让内核的eBPF程序能够记录和查询第三方应用的应用ID。
可以理解的是,用户空间和内核(内核空间)是隔离的,为了保证系统的安全和稳定。如果用户空间中的程序出现错误或者恶意操作,不会影响到内核空间中的代码和数据。用户空间中的程序也不能随意修改或者读取内核空间中的内容,否则会触发异常或者拒绝。
在内核中的eBPF程序中创建第一映射表和第二映射表,可以实现内核和用户空间的高速数据交换,同时也避免了用户空间和内核空间的频繁切换,从而提高了第一设备的网络共享功能的性能和效率。
作为一种可选的实施例,在第一设备的Linux操作系统的内核中,采用上述上行数据监测服务,将上述第一设备上运行的所有第三方应用的应用ID写入到上述第二映射表中,以更新上述第二映射表,示例性的,例如,上述上行数据监测服务调用上述内核中的映射表更新函数将上述应用ID写入到上述第二映射表,这样,可以第一设备的网络共享感知和请求功能的用户身份管理,提高了第一设备的网络共享功能的准确性和安全性。
例如,第一设备可以根据第二映射表中的应用ID,判断是否需要向第二设备请求共享数据网络,或者是否需要从第二映射表中删除已经不需要共享数据网络的应用ID,从而避免了用户身份的冗余或者遗漏,提高了第一设备的网络共享功能的准确性和安全性。
图9是本申请实施例提供的一种可选的数据网络共享方法的流程示意图。如图9所示,第一设备A上的第三方应用开启,在前台运行,响应于第三方应用的应用ID(UID)发生切换,网络共享模块调用上行数据监测服务启动监测,以采用上行数据监测服务从第三方应用发送的上行数据包中识别到应用请求信息,调用bpf_map_update_elem函数更新第二映射表,将第三方应用UID写入到第二映射表中;并采用内核向上行数据监测服务返回第二映射表的写入结果。
如图9所示,上行数据监测服务向网络共享模块返回监测结果,之后,上行数据监测服务设置回调函数来处理内核态发来的事件,并调用轮询函数perf_buffer__poll启动对数据缓冲区perf buffer的轮询。
一种示例中,图10是本申请实施例提供的一种可选的数据网络共享方法的流程示意图。如图10所示,在监测到上述上行数据包发送事件(例如,刷新等操作,触发第三方应用向应用服务器进行数据请求,其中,第三方应用创建socket与应用服务器通信)的情况下,从上述第三方应用发送的上行数据包中识别应用请求信息。
示意性地,本申请示例中,上述应用请求信息包括:上述第三方应用的应用ID,服务器目的IP地址、服务器的目的port端口号,上述服务器为第三方应用对应的应用服务器。
在从第三方应用发送的上行数据包中识别到应用请求信息后,还可以在Linux操作系统的协议栈创建socket并赋值上述应用请求信息。
作为一种可选的实施例,仍如图10所示,上述方法还包括:
采用上行数据监测服务调用数据缓冲区轮询函数,对内核中的数据缓冲区进行轮询处理,以监测上行数据包发送事件,其中,数据缓冲区用于在内核和用户空间之间交换数据。
通过调用数据缓冲区轮询函数,对内核中的数据缓冲区进行轮询处理,以监测上行数据包发送事件,进而可以实现内核和用户空间的高速数据交换,同时也避免了用户空间和内核空间的频繁切换,从而提高了第一设备的网络共享功能的性能和效率。
一种可选的示例中,如图11所示,通过循环(Loop)执行eBPF程序,传递sk_buff 结构体到注入的eBPF程序,从sk_buff结构体中识别到应用请求信息:第三方应用的应用ID,服务器的目的IP地址、服务器的目的port端口号。
在识别到上述应用ID在上述第二映射表中,且基于上述目的IP地址和/或上述目的port端口号确定上述上行数据包为非局域网业务数据包的情况下,采用上行数据监测服务调用内核中的映射表更新函数,将识别到的应用ID从第二映射表中删除,以更新第二映射表。从而实现了第一设备的网络共享感知和请求功能的用户身份更新,提高了第一设备的网络共享功能的准确性和安全性。
例如,局域网ip网段为192.168.x.x,非局域网ip地址可认为上行数据包是第三方应用的业务数据包(即非局域网业务数据包),服务器的目的port端口号用来识别上行数据包是业务数据包或dns请求包,例如,dns请求包的目的port端口号是53。
例如,第一设备可以根据第二映射表中的应用ID,判断是否需要向第二设备请求共享数据网络,或者是否需要从第二映射表中删除已经不需要共享数据网络的应用ID,从而避免了用户身份的冗余或者遗漏,提高了第一设备的网络共享功能的准确性和安全性。
在识别到上述应用ID在上述第二映射表中,且基于上述目的IP地址和/或上述目的port端口号确定上述上行数据包为非局域网业务数据包的情况下,采用上述上行数据监测服务向上述网络共享模块返回监测到的上述上行数据包发送事件,以及与上述上行数据包发送事件对应的应用ID。从而实现了第一设备的网络共享感知和请求功能的业务类型识别,提高了第一设备的网络共享功能的智能性和灵活性。
示意性地,本申请示例中,第一设备可以根据不同的业务类型,向第二设备请求不同的网络共享策略,如优先级、延迟、带宽等,从而满足不同业务的不同需求,提高了第一设备的网络共享功能的智能性和灵活性。
在确定上行数据包为非局域网业务数据包的情况下,如图12所示,采用上行数据监测服务向网络共享模块返回监测到的上行数据包发送事件,以及与上行数据包发送事件对应的应用ID;采用网络共享模块确定上述上行数据监测服务返回的应用ID与上述第三方应用发送的上行数据包中携带的应用ID相同,则触发执行在上述人机交互界面上显示提示弹窗。
仍如图12所示,响应于用户作用于提示弹窗的网络共享请求操作,例如,点击确认连接按钮,向第二设备请求共享第二设备的可用数据网络,之后第一设备开始共享使用第二设备的可用数据网络。
与无差别地对所有上行数据包发送事件进行网络共享请求相比,通过从第三方应用发送的上行数据包中识别到应用请求信息,在识别到应用ID在第二映射表中,且基于服务器的目的IP地址和/或服务器的目的port端口号确定上行数据包为非局域网业务数据包的情况,向网络共享模块返回监测到的上行数据包发送事件,以及与上行数据包发送事件对应的应用ID,可以实现对第一设备的网络共享感知和请求功能的业务类型识别,提高了第一设备的网络共享功能的智能性和灵活性。
一种可选的实施例中,向网络共享模块返回监测到的上行数据包发送事件,以及与上行数据包发送事件对应的应用ID,包括:
采用上述上行数据监测服务基于上述第一映射表,将上述上行数据包发送事件,以及与上述上行数据包发送事件对应的应用ID写入上述内核中的数据缓冲区。可以实现内核和用户空间的高速数据交换,同时也避免了用户空间和内核空间的频繁切换,提高了第一设备的网络共享功能的性能和效率。
示意性地,本申请示例中,上述数据缓冲区实现在上述内核和上述用户空间之间交换数据。
图13是本申请实施例提供的一种数据网络共享装置的结构示意图,该装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部,该计算机设备可以为图1所示的电子设备。参见图13,该数据网络共享装置包括:
提示单元310,用于响应于用户上网操作,在上述第一设备的人机交互界面上显示提示弹窗,以提示是否请求共享第二设备的可用数据网络,其中,上述第一设备当前未连接可用数据网络,上述第二设备具备向上述第一设备提供共享数据网络的网络共享能力。
接收单元320,用于基于上述提示弹窗接收网络共享请求操作。
请求单元330,用于响应于上述网络共享请求操作,向上述第二设备请求共享上述第二设备的可用数据网络。
上述实施例提供的数据网络共享装置可以应用于各种需要对电子设备进行数据网络共享的场景中,可以实现在第一设备没有可用数据网络的情况下,响应于用户上网操作,主动弹窗提示用户连接共享数据网络,用户仅需点击确认连接即可使用共享数据网络,而无需进入设置界面手动设置连接。
根据第一方面,或者以上第一方面的任意一种实现方式,上述装置还包括:
第一确定单元,用于在接收到上述第二设备发出的网络共享告知消息的情况下,确定存在上述第二设备,其中,上述网络共享告知消息用于表征上述第二设备具备向上述第一设备提供共享数据网络的网络共享能力。
根据第一方面,或者以上第一方面的任意一种实现方式,上述装置还包括:
绑定单元,用于在上述第一设备确定上述第一设备当前未连接上述可用数据网络的情况下,请求将上述第一设备的系统网卡绑定到虚拟网卡;
通讯单元,用于在上述系统网卡与上述虚拟网卡绑定的情况下,采用近场通信方式与上述第二设备通信;
消息接收单元,用于在与上述第二设备通信的情况下,接收上述网络共享告知消息。
根据第一方面,或者以上第一方面的任意一种实现方式,上述装置还包括:
第二确定单元,用于在监测到第三方应用的上行数据包发送事件的情况下,确定接收到上述用户上网操作,上述第三方应用为运行在上述第一设备上的任意一个应用。
根据第一方面,或者以上第一方面的任意一种实现方式,上述装置还包括:
监测单元,用于在上述第一设备的Linux操作系统的内核中,采用上述内核的沙盒程序监测上述第三方应用的上行数据包发送事件。
根据第一方面,或者以上第一方面的任意一种实现方式,上述沙盒程序包括:扩展的伯克利包过滤器eBPF程序。
在一些实现方式中,上述装置还包括:
注册单元,用于采用上述第一设备的网络共享模块注册上行数据监测服务;
获取单元,用于采用上述上行数据监测服务调用上述Linux操作系统的对象获取函数,以从硬盘的eBPF对象文件中获取eBPF程序,其中,上述eBPF对象文件是采用eBPF源文件编程生成的;
加载单元,用于采用上述上行数据监测服务调用上述Linux操作系统的注入内核函数,以将上述eBPF程序加载到上述Linux操作系统的内核中。
根据第一方面,或者以上第一方面的任意一种实现方式,上述加载单元,还用于采用上述Linux操作系统的内核中的eBPF验证机制对上述eBPF程序进行校验,并在校验通过后将上述eBPF程序加载到上述内核中。
根据第一方面,或者以上第一方面的任意一种实现方式,上述加载单元,还用于在上述eBPF程序被上述Linux操作系统标志为物理资源隔离机制管控类型的情况下,从上述内核中确定一个物理资源隔离机制文件描述符;将上述eBPF程序加载到上述物理资源隔离机制文件描述符上。
根据第一方面,或者以上第一方面的任意一种实现方式,上述加载单元,还用于将加载有上述eBPF程序的物理资源隔离机制文件描述符注入到上述内核中的ip_finish_output函数内的钩子函数,以使得上述内核监测到上述第三方应用的上行数据包发送事件时,从上述第三方应用的上行数据包中识别到上述第三方应用的应用ID,其中,上述ip_finish_output函数为上述内核的网络协议栈ip层上行数据包处理函数之一。
根据第一方面,或者以上第一方面的任意一种实现方式,上述装置还包括:
创建单元,用于在上述内核的上述eBPF程序中创建第一映射表和第二映射表,其中,上述第一映射表用于提供上述内核和用户空间的通信支持,上述第二映射表用于存储上述第一设备上运行的所有第三方应用的应用ID。
根据第一方面,或者以上第一方面的任意一种实现方式,上述装置还包括:
更新单元,用于采用上述上行数据监测服务,将上述第一设备上运行的所有第三方应用的应用ID写入到上述第二映射表中,以更新上述第二映射表,其中,上述上行数据监测服务调用上述内核中的映射表更新函数将上述应用ID写入到上述第二映射表。
根据第一方面,或者以上第一方面的任意一种实现方式,上述装置还包括:
识别单元,用于在监测到上述上行数据包发送事件的情况下,从上述第三方应用发送的上行数据包中识别应用请求信息,其中,上述应用请求信息包括:上述第三方应用的应用ID,服务器目的IP地址、服务器的目的port端口号,上述服务器为第三方应用对应的应用服务器;
返回单元,用于在识别到上述应用ID在上述第二映射表中,且基于上述目的IP地址和/或上述目的port端口号确定上述上行数据包为非局域网业务数据包的情况下,采用上述上行数据监测服务向上述网络共享模块返回监测到的上述上行数据包发送事件,以及与上述上行数据包发送事件对应的应用ID;
触发单元,用于若通过上述网络共享模块确定上述上行数据监测服务返回的应用ID与上述第三方应用发送的上行数据包中携带的应用ID相同,则触发执行在上述人机交互界面上显示提示弹窗。
根据第一方面,或者以上第一方面的任意一种实现方式,上述返回单元,包括:
采用上述上行数据监测服务基于上述第一映射表,将上述上行数据包发送事件,以及与上述上行数据包发送事件对应的应用ID写入上述内核中的数据缓冲区,其中,上述数据缓冲区实现在上述内核和上述用户空间之间交换数据。
根据第一方面,或者以上第一方面的任意一种实现方式,上述装置还包括:
删除单元,用于在识别到上述应用ID在上述第二映射表中,且基于上述目的IP地址和/或上述目的port端口号确定上述上行数据包为非局域网业务数据包的情况下,采用上述上行数据监测服务将识别到的上述应用ID从上述第二映射表中删除,以更新上述第二映射表。
根据第一方面,或者以上第一方面的任意一种实现方式,上述装置还包括:
轮询单元,用于采用上述上行数据监测服务调用数据缓冲区轮询函数,对上述内核中的数据缓冲区的轮询处理,以监测上述上行数据包发送事件。
根据第一方面,或者以上第一方面的任意一种实现方式,上述第一设备和上述第二设备的用户设备登录账号相同。
需要说明的是:上述实施例提供的数据网络共享装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
上述实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请实施例的保护范围。
上述实施例提供的数据网络共享装置与数据网络共享方法实施例属于同一构思,上述实施例中单元、模块的具体工作过程及带来的技术效果,可参见方法实施例部分,此处不再赘述。
本申请实施例还提供一种电子设备,该电子设备包括一个或多个处理器和存储器;
存储器与一个或多个处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,一个或多个处理器调用计算机指令以使得电子设备执行前述所示的数据网络共享方法。
电子设备可以是手机、智慧屏、平板电脑、可穿戴电子设备、车载电子设备、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、投影仪,或者为服务器、存储器、基站等通信设备,或者为智能汽车等。本申请实施例对电子设备的具体类型不作任何限制。
本申请实施例还提供一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机指令;当上述计算机可读存储介质在电子设备上运行时,使得该电子设备执行前述所示的数据网络共享方法。
上述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,上述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriberline,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质、或者半导体介质(例如固态硬盘(solidstate disk,SSD))等。
本申请实施例还提供了一种包含计算机指令的计算机程序产品,当其在电子设备上运行时,使得电子设备可以执行前述所示的数据网络共享方法。
上述本申请实施例提供的计算机存储介质、计算机程序产品均用于执行上文所提供的方法,因此,其所能达到的有益效果可参考上文所提供的方法对应的有益效果,在此不再赘述。
在上述实施例中,还可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。上述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机指令时,全部或部分地产生按照本申请实施例上述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,比如,上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(比如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(比如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质(比如:软盘、硬盘、磁带)、光介质(比如:数字通用光盘(Digital Versatile Disc,DVD))或半导体介质(比如:固态硬盘(Solid State Disk,SSD))等。
以上所述为本申请提供的可选实施例,并不用以限制本申请,凡在本申请的揭露的技术范围之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (19)
1.一种数据网络共享方法,其特征在于,应用于第一设备中,所述方法包括:
响应于用户上网操作,在所述第一设备的人机交互界面上显示提示弹窗,以提示是否请求共享第二设备的可用数据网络,其中,所述第一设备当前未连接可用数据网络,所述第二设备具备向所述第一设备提供共享数据网络的网络共享能力;
基于所述提示弹窗接收网络共享请求操作;
响应于所述网络共享请求操作,向所述第二设备请求共享所述第二设备的可用数据网络。
2.如权利要求1所述的数据网络共享方法,其特征在于,所述响应于用户上网操作,在所述第一设备的人机交互界面上显示提示弹窗之前,所述方法还包括:
在接收到所述第二设备发出的网络共享告知消息的情况下,确定存在所述第二设备,其中,所述网络共享告知消息用于表征所述第二设备具备向所述第一设备提供共享数据网络的网络共享能力。
3.如权利要求2所述的数据网络共享方法,其特征在于,所述方法还包括:
在所述第一设备确定所述第一设备当前未连接所述可用数据网络的情况下,请求将所述第一设备的系统网卡绑定到虚拟网卡;
在所述系统网卡与所述虚拟网卡绑定的情况下,采用近场通信方式与所述第二设备通信;
在与所述第二设备通信的情况下,接收所述网络共享告知消息。
4.如权利要求1所述的数据网络共享方法,其特征在于,所述方法还包括:
在监测到第三方应用的上行数据包发送事件的情况下,确定接收到所述用户上网操作,所述第三方应用为运行在所述第一设备上的任意一个应用。
5.如权利要求4所述的数据网络共享方法,其特征在于,所述方法还包括:
在所述第一设备的Linux操作系统的内核中,采用所述内核的沙盒程序监测所述第三方应用的上行数据包发送事件。
6.如权利要求5所述的数据网络共享方法,其特征在于,所述沙盒程序包括:扩展的伯克利包过滤器eBPF程序。
7.如权利要求5或6所述的数据网络共享方法,其特征在于,在采用所述内核的沙盒程序监测所述第三方应用的上行数据包发送事件之前,所述方法还包括:
采用所述第一设备的网络共享模块注册上行数据监测服务;
采用所述上行数据监测服务调用所述Linux操作系统的对象获取函数,以从硬盘的eBPF对象文件中获取eBPF程序,其中,所述eBPF对象文件是采用eBPF源文件编程生成的;
采用所述上行数据监测服务调用所述Linux操作系统的注入内核函数,以将所述eBPF程序加载到所述Linux操作系统的内核中。
8.如权利要求7所述的数据网络共享方法,其特征在于,所述方法还包括:
采用所述Linux操作系统的内核中的eBPF验证机制对所述eBPF程序进行校验,并在校验通过后将所述eBPF程序加载到所述内核中。
9.如权利要求7所述的数据网络共享方法,其特征在于,将所述eBPF程序加载到所述Linux操作系统的内核中,包括:
在所述eBPF程序被所述Linux操作系统标志为物理资源隔离机制管控类型的情况下,从所述内核中确定一个物理资源隔离机制文件描述符;
将所述eBPF程序加载到所述物理资源隔离机制文件描述符上。
10.如权利要求9所述的数据网络共享方法,其特征在于,在将所述eBPF程序加载到所述物理资源隔离机制文件描述符上之后,所述方法还包括:
将加载有所述eBPF程序的物理资源隔离机制文件描述符注入到所述内核中的ip_finish_output函数内的钩子函数,以使得所述内核监测到所述第三方应用的上行数据包发送事件时,从所述第三方应用的上行数据包中识别到所述第三方应用的应用ID,其中,所述ip_finish_output函数为所述内核的网络协议栈ip层上行数据包处理函数之一。
11.如权利要求10所述的数据网络共享方法,其特征在于,将所述eBPF程序注入到所述内核中的ip_finish_output函数内的钩子函数之后,所述方法还包括:
在所述eBPF程序中创建第一映射表和第二映射表,其中,所述第一映射表用于提供所述内核和用户空间的通信支持,所述第二映射表用于存储所述第一设备上运行的所有第三方应用的应用ID。
12.如权利要求11所述的数据网络共享方法,其特征在于,所述方法还包括:
采用所述上行数据监测服务,将所述第一设备上运行的所有第三方应用的应用ID写入到所述第二映射表中,以更新所述第二映射表,其中,所述上行数据监测服务调用所述内核中的映射表更新函数将所述应用ID写入到所述第二映射表。
13.如权利要求12所述的数据网络共享方法,其特征在于,在所述第一设备的人机交互界面上显示提示弹窗之前,所述方法还包括:
在监测到所述上行数据包发送事件的情况下,从所述第三方应用发送的上行数据包中识别应用请求信息,其中,所述应用请求信息包括:所述第三方应用的应用ID,服务器目的IP地址、服务器的目的port端口号,所述服务器为第三方应用对应的应用服务器;
在识别到所述应用ID在所述第二映射表中,且基于所述目的IP地址和/或所述目的port端口号确定所述上行数据包为非局域网业务数据包的情况下,采用所述上行数据监测服务向所述网络共享模块返回监测到的所述上行数据包发送事件,以及与所述上行数据包发送事件对应的应用ID;
若通过所述网络共享模块确定所述上行数据监测服务返回的应用ID与所述第三方应用发送的上行数据包中携带的应用ID相同,则触发执行在所述人机交互界面上显示提示弹窗。
14.如权利要求13所述的数据网络共享方法,其特征在于,向所述网络共享模块返回监测到的所述上行数据包发送事件,以及与所述上行数据包发送事件对应的应用ID,包括:
采用所述上行数据监测服务基于所述第一映射表,将所述上行数据包发送事件,以及与所述上行数据包发送事件对应的应用ID写入所述内核中的数据缓冲区,其中,所述数据缓冲区实现在所述内核和所述用户空间之间交换数据。
15.如权利要求13所述的数据网络共享方法,其特征在于,所述方法还包括:
在识别到所述应用ID在所述第二映射表中,且基于所述目的IP地址和/或所述目的port端口号确定所述上行数据包为非局域网业务数据包的情况下,采用所述上行数据监测服务将识别到的所述应用ID从所述第二映射表中删除,以更新所述第二映射表。
16.如权利要求13所述的数据网络共享方法,其特征在于,所述方法还包括:
采用所述上行数据监测服务调用数据缓冲区轮询函数,对所述内核中的数据缓冲区的轮询处理,以监测所述上行数据包发送事件。
17.如权利要求1所述的数据网络共享方法,其特征在于,所述第一设备和所述第二设备的用户设备登录账号相同。
18.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器,以及存储器;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求1至17中任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至17中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410221450.7A CN117857646B (zh) | 2024-02-28 | 2024-02-28 | 数据网络共享方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410221450.7A CN117857646B (zh) | 2024-02-28 | 2024-02-28 | 数据网络共享方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117857646A true CN117857646A (zh) | 2024-04-09 |
CN117857646B CN117857646B (zh) | 2024-07-19 |
Family
ID=90540284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410221450.7A Active CN117857646B (zh) | 2024-02-28 | 2024-02-28 | 数据网络共享方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117857646B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105188013A (zh) * | 2015-06-26 | 2015-12-23 | 北京锤子数码科技有限公司 | 网络热点共享方法、装置及系统 |
CN107820300A (zh) * | 2017-11-27 | 2018-03-20 | 北京小米移动软件有限公司 | 网络搜索方法及装置 |
CN111050377A (zh) * | 2018-10-12 | 2020-04-21 | 华为技术有限公司 | 一种移动终端共享网络连接的方法及移动终端 |
WO2022257643A1 (zh) * | 2021-06-11 | 2022-12-15 | 中兴通讯股份有限公司 | 网络传输层数据处理方法、设备及存储介质 |
WO2023017350A1 (en) * | 2021-08-12 | 2023-02-16 | International Business Machines Corporation | Socket transferring for hpc networks using kernel tracing |
CN116888940A (zh) * | 2021-03-01 | 2023-10-13 | 瞻博网络公司 | 利用虚拟联网的容器化路由器 |
-
2024
- 2024-02-28 CN CN202410221450.7A patent/CN117857646B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105188013A (zh) * | 2015-06-26 | 2015-12-23 | 北京锤子数码科技有限公司 | 网络热点共享方法、装置及系统 |
CN107820300A (zh) * | 2017-11-27 | 2018-03-20 | 北京小米移动软件有限公司 | 网络搜索方法及装置 |
CN111050377A (zh) * | 2018-10-12 | 2020-04-21 | 华为技术有限公司 | 一种移动终端共享网络连接的方法及移动终端 |
CN116888940A (zh) * | 2021-03-01 | 2023-10-13 | 瞻博网络公司 | 利用虚拟联网的容器化路由器 |
WO2022257643A1 (zh) * | 2021-06-11 | 2022-12-15 | 中兴通讯股份有限公司 | 网络传输层数据处理方法、设备及存储介质 |
WO2023017350A1 (en) * | 2021-08-12 | 2023-02-16 | International Business Machines Corporation | Socket transferring for hpc networks using kernel tracing |
Non-Patent Citations (1)
Title |
---|
蒋莹莹;: "基于WiFi热点技术和QR二维码技术的文件快传系统设计", 科技经济导刊, no. 11, 15 April 2016 (2016-04-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117857646B (zh) | 2024-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113032766B (zh) | 应用权限管理的方法和装置 | |
CN111684778A (zh) | 应用功能的实现方法及电子设备 | |
US20240086231A1 (en) | Task migration system and method | |
WO2020233556A1 (zh) | 一种通话内容处理方法和电子设备 | |
CN113835569A (zh) | 终端设备、应用内部功能的快捷启动方法和存储介质 | |
WO2023005711A1 (zh) | 一种服务的推荐方法及电子设备 | |
WO2022253158A1 (zh) | 一种用户隐私保护方法及装置 | |
CN112835495B (zh) | 开启应用程序的方法、装置及终端设备 | |
CN114035870A (zh) | 一种终端设备、应用资源控制方法和存储介质 | |
CN113835802A (zh) | 设备交互方法、系统、设备及计算机可读存储介质 | |
CN117857646B (zh) | 数据网络共享方法、电子设备及存储介质 | |
CN114077368B (zh) | 车载小程序运行方法、装置、计算机设备及存储介质 | |
CN113642010B (zh) | 一种获取扩展存储设备数据的方法及移动终端 | |
CN118400742A (zh) | 数据共享方法和终端设备 | |
CN111159734A (zh) | 通信终端及多应用数据互访处理方法 | |
CN116048829B (zh) | 接口调用方法、设备及存储介质 | |
CN117130698B (zh) | 一种菜单显示方法及电子设备 | |
CN116033592B (zh) | 蜂窝通信功能的使用方法和装置 | |
CN116056176B (zh) | 一种apn切换方法及相关设备 | |
CN114896009B (zh) | 一种终端设备、服务器、主题推荐方法和存储介质 | |
WO2024037346A1 (zh) | 页面管理方法及电子设备 | |
WO2024083114A1 (zh) | 一种软件分发方法、电子设备及系统 | |
EP4290827A1 (en) | Access control method and related apparatus | |
CN118626217A (zh) | 一种组件启动方法及设备 | |
CN117372089A (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 |