CN114201311A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN114201311A CN114201311A CN202111367931.1A CN202111367931A CN114201311A CN 114201311 A CN114201311 A CN 114201311A CN 202111367931 A CN202111367931 A CN 202111367931A CN 114201311 A CN114201311 A CN 114201311A
- Authority
- CN
- China
- Prior art keywords
- data
- paths
- applications
- path
- application
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- 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/10—Protocols in which an application is distributed across nodes in the network
-
- 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/133—Protocols for remote procedure calls [RPC]
-
- 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/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- 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/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本申请提供一种数据处理方法及装置,该方法中,第一设备的操作系统上运行一个或多个应用,第一设备与第二设备之间有多条路径,该多条路径对应运行在第一设备的操作系统中的一个或多个应用,接收数据过程中,运行第一设备的操作系统中的应用仅通过一次系统调用就可以获取到多条路径上的数据,以及,对该多条路径,还可以通过该次系统调用,从至少一条路径上获取多个数据包的中的数据;发送数据过程中,运行在第一设备的操作系统中的一个或多个应用仅通过一次系统调用就可以将该一个或多个应用的数据分发到对应的路径。由此可知:接收数据或发送数据的过程中,本方案的系统调用次数少,开销小,因此,可以降低第一设备的CPU利用率和功耗。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种数据处理方法及装置。
背景技术
计算机的应用之间常常涉及信息的交互。应用通常运行在终端或服务器等设备的操作系统中,例如,运行在操作系统的用户态。因此,需要应用陷入内核态,从内核态对应的内核空间读取数据或者将待发送的数据拷贝至内核空间。。
应用可以采用户端/服务器端(Client/Server,C/S)这种软件系统体系结构架构进行描述。其中,客户端和服务器端在这种架构上指的就是应用,具体的,作为客户端(Client)的应用请求服务,作为服务器端(Server)的应用为作为客户端(Client)的应用提供服务。一些场景下,客户端和服务端运行在不同的设备上。例如,应用运行在终端,则该应用为客户端,应用运行在服务器,则该应用为服务端。客户端和服务端之间通过建立连接进行数据交互,其中一条连接可以包括多条路径,这种连接称多路径连接,相应的技术称多路径传输技术,或者一条连接对应一条路径,例如常见的传输控制协议(TransmissionControl Protocol、TCP)连接,用户数据报协议(user datagram protocol,UDP)连接,快速UDP网络连线(Quick UDP Internet Connections,QUIC)连接等等。该些路径可以基于Wi-Fi网络、蜂窝网络或蓝牙等传输数据。以客户端和服务端采用多路径传输技术为例,客户端和服务端之间建立多条子流(subflow),每条子流对应一条路径(path),或者说每条子流对应一个连接,每条路径(或者说连接)对应一对套接字描述符,其中一个套接字描述符位于客户端所在的设备,另一个套接字描述符位于服务端所在的设备。
不论是接收数据还是发送数据,应用都需要执行系统调用对数据进行处理,如应用所在的设备的操作系统通过该应用对应的一条路径接收到一个数据包后,该应用需要执行一次系统调用,通过该路径对应的套接字描述符读取数据;对应地,该应用每通过一条路径发送一次数据时,也需要执行一次系统调用,以通过该路径对应的套接字描述符将待发送数据指示给应用层以下的协议栈。然而,一次系统调用会产生很大的开销,而一个应用频繁地收发数据,一个应用使用多条路径收发数据,以及一个设备上运行多个应用都是实际应用场景中非常常见的,因此,一个设备在与其他设备交互数据的过程中,往往被频繁的系统调用占用了很多资源,导致设备的CPU利用率高、功耗增加。
发明内容
本申请实施例提供一种数据处理方法及装置,通过降低系统调用次数,实现降低设备的CPU利用率和功耗的目的。
第一方面,本申请实施例提供一种数据处理方法,该方法用于处理多条路径的数据,所述多条路径为第一设备与第二设备之间的路径,所述多条路径对应一个或多个应用,所述第一设备的操作系统中运行有所述一个或多个应用,该方法包括:所述第一设备的操作系统接收所述多条路径的数据包,所述数据包来自所述第二设备;在所述第一设备的操作系统接收所述多条路径的数据包后,所述一个或多个应用仅通过一次系统调用,获取所述数据包携带的数据中,所述一个或多个应用各自对应的数据。采用这种方案,运行第一设备的操作系统中的应用仅通过一次系统调用就可以获取到多条路径上的数据,以及,对该多条路径,还可以通过该次系统调用,从至少一条路径上获取多个数据包的中的数据(取决于系统调用执行时该多条路径在内核中接收到多少数据)系统调用次数少,开销小,因此,可以降低第一设备的CPU利用率和功耗。另外,由于仅通过一次系统调用可同时读取多个套接字描述符指示的缓存空间中的数据,因此可以提高数据的读取效率。
一种可行的设计中,所述一个或多个应用仅通过一次系统调用,获取所述数据包携带的数据中,所述一个或多个应用各自对应的数据,包括:所述一个或多个应用通过仅调用一次接收函数,获取所述数据包携带的数据中,所述一个或多个应用各自对应的数据,其中,所述接收函数为系统调用接口,所述接收函数用于通过轮询两条及以上路径对应的套接字描述符,获取所述两条及以上路径对应的套接字描述符指示的数据。采用这种方法,运行在第一设备的操作系统中的一个或多个应用通过对各套接字进行管理,以便接收函数轮询各套接字描述符,从而到各套接字描述符指示的缓存空间读取数据包中的数据。
一种可行的设计中,所述接收函数的输入包括所述多条路径各自对应的套接字描述符。采用这种方案,运行在第一设备的操作系统中的一个或多个应用将多条路径各自对应的套接字描述符输入至接收函数,以便接收函数轮询各套接字描述符,从而到各套接字描述符指示的缓存空间读取数据包中的数据。
一种可行的设计中,上述的一个或多个应用执行一次系统调用,轮询多条路径各自对应的套接字描述符,第一设备的操作系统向一个或多个应用发送第一确认信息,该第一确认信息表示操作系统确认该一个或多个应用各自对应的数据已被所述一个或多个应用获取。示例性的,运行在第一设备的操作系统中的一个或多个应用执行系统调用,从各路径的套接字描述符对应的缓存空间读取数据,第一设备的操作系统检测各套接字描述符指示的缓存空间中数据是否被成功读取,并针对每个套接字描述符生成确认信息,各套接字描述符的确认信息形成第一确认信息。每个套接字的确认信息用于指示该套接字描述符指示的缓存空间中数据是否已被成功读取。
一种可行的设计中,上述的多条路径中的至少两条路径属于一个多路径连接。采用这种方案,由于多条路径中的至少两条路径属于一个MP连接,实现MP连接场景中,应用仅通过一次系统调用即可从MP连接包含的多条路径的套接字描述符指示的缓存空间中读取数据的目的。
一种可行的设计中,所述第一设备的操作系统接收的所述多条路径的数据包中,包括至少两个来自同一路径的数据包。采用这种方案,来自同一路径的数据包可以为多个,实现应用通过一次系统调用从多个路径的套接字描述符指示的缓存空间读取数据时,从同一个套接字描述符指示的缓存空间读取至少两个数据包中的数据的目的。
一种可行的设计中,一个或多个应用可以将多条路径的套接字描述符绑定在一起,将其作为一个数组传递给接收函数,使得接收函数轮询数组中的各套接字描述符,从而到各套接字描述符指示的缓存空间读取数据包中的数据。当然,除了数组之外,也可以使用其他数据结构使接收函数获知这些套接字描述符。再如,预先对多条路径的套接字描述符进行排序,接收函数按照排序,依次到各套接字描述符指示的缓存空间读取数据。
一种可行的设计中,所述多条路径各自对应不同的套接字描述符。
第二方面,本申请实施例提供一种数据处理方法,该方法用于处理多条路径的数据,所述多条路径为第一设备与第二设备之间的路径,所述多条路径对应一个或多个应用,所述第一设备的操作系统中运行有所述一个或多个应用,该方法包括:所述一个或多个应用仅通过一次系统调用,将所述一个或多个应用的数据对应地分发给所述多条路径;所述第一设备的操作系统通过所述多条路径,向所述第二设备发送所述数据。采用该种方案,运行在第一设备的操作系统中的一个或多个应用仅通过一次系统调用就可以将该一个或多个应用的数据分发到对应的路径,系统调用次数少,开销小,因此,可以降低第一设备的CPU利用率和功耗。另外,由于仅通过一次系统调用可同时多个套接字描述符指示的缓存空间写入数据,因此可以提高数据的写入效率。
一种可行的设计中,所述一个或多个应用仅通过一次系统调用,将所述一个或多个应用各自的数据对应地分发给所述多条路径,包括:所述一个或多个应用通过仅调用一次发送函数,将所述一个或多个应用各自的数据对应地分发给所述多条路径,其中,所述发送函数为系统调用接口,所述发送函数用于通过轮询两条及以上路径对应的套接字描述符,将数据分发给所述两条及以上路径对应的套接字描述符指示的缓存空间。采用这种方案,运行在第一设备的操作系统中的一个或多个应用通过对各套接字进行管理,以便发送函数轮询各套接字描述符,从而将一个或多个应用的数据写入各套接字描述符指示的缓存空间。
一种可行的设计中,所述发送函数的输入包括所述多条路径各自对应的套接字描述符。采用这种方案,运行在第一设备的操作系统中的一个或多个应用将多条路径各自对应的套接字描述符输入至发送函数,以便发送函数轮询各套接字描述符,从而将一个或多个应用的数据写入各套接字描述符指示的缓存空间
一种可行的设计中,所述第一设备的操作系统向所述一个或多个应用发送第二确认信息,所述第二确认信息表示所述操作系统确认所述一个或多个应用各自对应的数据已写入所述多条路径各自对应的套接字描述符指示的缓存空间。采用这种方案,第一设备的操作系统向一个或多个应用发送第二确认信息,该第二确认信息表示操作系统确认该一个或多个应用各自对应的数据是否已被分发至各路径,实现第一设备的操作系统对各应用进行管理的目的。
一种可行的设计中,所述多条路径中的至少两条路径属于一个多路径连接。采用这种方案,由于多条路径中的至少两条路径属于一个MP连接,实现MP连接场景中,应用仅通过一次系统调用即可向MP连接包含的多条路径的套接字描述符指示的缓存空间中写入数据的目的。
第三方面,本申请实施例提供一种数据处理装置,所述装置用于处理多条路径的数据,所述多条路径为第一设备与第二设备之间的路径,所述多条路径对应一个或多个应用,所述第一设备的操作系统中运行有所述一个或多个应用,所述装置包括:
操作系统,用于接收所述多条路径的数据包,所述数据包来自所述第二设备;
应用,用于在所述操作系统接收所述多条路径的数据包后,仅通过一次系统调用,获取所述数据包携带的数据中,所述一个或多个应用各自对应的数据。
一种可行的设计中,所述应用,用于仅调用一次接收函数,获取所述数据包携带的数据中,所述一个或多个应用各自对应的数据,其中,所述接收函数为系统调用接口,所述接收函数用于通过轮询两条及以上路径对应的套接字描述符,获取所述两条及以上路径对应的套接字描述符指示的数据。
一种可行的设计中,所述接收函数的输入包括所述多条路径各自对应的套接字描述符。
一种可行的设计中,所述操作系统,还用于向所述一个或多个应用发送第一确认信息,所述第一确认信息表示所述操作系统确认所述一个或多个应用各自对应的数据已被所述一个或多个应用获取。
一种可行的设计中,所述多条路径中的至少两条路径属于一个多路径连接。
一种可行的设计中,所述第一设备的操作系统接收的所述多条路径的数据包中,包括至少两个来自同一路径的数据包。
第四方面,本发明实施例提供一种数据处理装置,所述装置用于处理多条路径的数据,所述多条路径为第一设备与第二设备之间的路径,所述多条路径对应一个或多个应用,所述第一设备的操作系统中运行有所述一个或多个应用,所述装置包括:
应用,用于通过一次系统调用,将所述一个或多个应用的数据对应地分发给所述多条路径;
操作系统,用于通过所述多条路径,向所述第二设备发送所述数据。
一种可行的设计中,所述应用,用于仅调用一次发送函数,将所述一个或多个应用各自的数据对应地分发给所述多条路径,其中,所述发送函数为系统调用接口,所述发送函数用于通过轮询两条及以上路径对应的套接字描述符,将数据分发给所述两条及以上路径对应的套接字描述符指示的缓存空间。
一种可行的设计中,所述发送函数的输入包括所述多条路径各自对应的套接字描述符。
一种可行的设计中,所述操作系统,还用于向所述一个或多个应用发送第二确认信息,所述第二确认信息表示所述操作系统确认所述一个或多个应用各自对应的数据已写入所述多条路径各自对应的套接字描述符指示的缓存空间。
一种可行的设计中,所述多条路径中的至少两条路径属于一个多路径连接。
第五方面,本申请实施例提供一种包含指令的计算机程序产品,当其在处理器上运行时,使得处理器执行上述第一方面或第一方面的各种可能的实现方式中的方法。
第六方面,本申请实施例提供一种包含指令的计算机程序产品,当其在处理器上运行时,使得处理器机执行上述第二方面或第二方面的各种可能的实现方式中的方法。
第七方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在处理器上运行时,使得处理器执行上述第一方面或第一方面的各种可能的实现方式中的方法。
第八方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在处理器上运行时,使得处理器执行上述第二方面或第二方面的各种可能的实现方式中的方法。
本申请实施例提供的数据处理方法及装置,第一设备的操作系统上运行一个或多个应用,第一设备与第二设备之间有多条路径,该多条路径对应运行在第一设备的操作系统中的一个或多个应用,接收数据过程中,运行第一设备的操作系统中的应用仅通过一次系统调用就可以获取到多条路径上的数据,以及,对该多条路径,还可以通过该次系统调用,从至少一条路径上获取多个数据包的中的数据;发送数据过程中,运行在第一设备的操作系统中的一个或多个应用仅通过一次系统调用就可以将该一个或多个应用的数据分发到对应的路径。由此可知:接收数据或发送数据的过程中,本方案的系统调用次数少,开销小,因此,可以降低第一设备的CPU利用率和功耗。另外,由于仅通过一次系统调用可同时读取多个套接字描述符指示的缓存空间中的数据,因此可以提高数据的读取效率。
附图说明
图1A是应用接收数据的一种过程示意图;
图1B是应用端接收数据的另一种过程示意图;
图2是本申请实施例所适用的网络架构示意图;
图3是本申请实施例提供的一种数据处理方法的流程图;
图4是本申请实施例提供的数据处理方法中接收函数轮询各路径的套接字描述符的流程图;
图5是本申请实施例提供的一种数据处理方法中应用接收数据的示意图;
图6是本申请实施例提供的另一种数据处理方法的流程图;
图7为本申请实施例提供的一种数据处理装置的结构示意图;
图8为本申请实施例提供的一种数据处理装置的结构示意图。
具体实施方式
通常情况下,两个设备上的应用可以通过建立一条或者多条路径交互数据。
以终端和服务器为例,运行在终端上的应用称之为客户端,运行在服务端的应用称之为服务端。客户端和服务端通过建立多条路径交互数据。数据交互过程中,以应用为终端上的客户端为例,接收数据过程中,数据到达终端后,例如到达终端的操作系统的内核态,需要客户端执行系统调用才能从内核态,如内核态中的缓存空间读取到数据,当客户端对应的路径比较多时,需要客户端针对每条路径执行系统调用,或者,即使客户端对应的路径比较少,但是同一条路径上的数据量比较大时,同样需要客户端执行多次系统调用;同理,发送数据过程中,客户端需要执行系统调用将数据写入到终端的操作系统的内核态,然后才能将数据发送给服务端,系统调用的次数与客户端对应的路径的数量以及每条路径上的数据量有关。然而,执行一次系统调用的开销比较大,多次系统调用势必导致巨大开销。下面,对执行一次系统调用为何会带来开销进行说明。
示例性的,客户端与服务端使用通用的互联网网络协议进行通信,该些协议不是由应用实现的,而是操作系统实现的。以终端为例,终端上的客户端通过终端的操作系统定义好的应用接口调用协议进行通信,比如伯克利软件套件(berkeley softwaredistribution,BSD)套接字应用程序编程接口(application programming interface,API)。通常情况下,操作系统具有单独的进程上下文,操作系统通常具有两个状态,即用户态和内核态。操作系统提供的核心服务,如设备驱动、资源管理、网络协议都运行在内核态,而应用运行在用户态。操作系统管理的虚拟地址也区分为内核态空间和用户态空间,这种区分在安全性和容错性方面有显著的特点,同时也简化了应用的开发。若客户端需要访问操作系统(operating system,OS)服务,或者内核空间和应用空间之间交互数据,则需要客户端使用系统调用。执行系统调用需要将控制权从用户空间转移到内核空间,具体细节依赖于操作系统的实现和CPU架构指令集,会涉及执行状态的保存、参数计算、生成中断等,有可能会导致应用的执行被中断、高速缓存被刷新等。因此,执行一次系统调用会产生巨大的开销。下面,以应用接收数据为例,对客户端如何处理执行系统调用进行说明。
图1A是应用接收数据的一种过程示意图。请参照图1A,图中虚线框所示为终端的操作系统,应用1、应用2和应用3运行在终端的操作系统中,分别对应3条路径,该3条路径中的每条路径在终端上分别对应一个套接字描述符,分别为套接字描述符1(S1)、套接字描述符2(S2)、套接字描述符3(S3)。服务器通过路径1发送的数据包(packet)1到达终端后,并不是直接到达应用层的应用,而是被存储在应用层以下,如内核空间的S1指示的缓存空间,同理,服务器通过路径2发送的packet2和packet3到达终端,被存储在S2指示的缓存空间,服务器通过路径3发送的packet4和packet5到达终端,被存储在S3指示的缓存空间。每次数据包通过某条路径到达终端时,终端触发应用层的应用执行系统调用以从该路径的套接字描述符指示的缓存空间读取数据包。例如,上述的packet1~packet5先后到达终端,则应用执行第一次系统调用从S1指示的缓存空间读取packet1,应用执行第二次系统调用从S2指示的缓存空间读取packet2,应用执行第三次系统调用从S2指示的缓存空间读取packet3,应用执行第四次系统调用从S3指示的缓存空间读取packet4,应用执行第五次系统调用从S3指示的缓存空间读取packet5。该过程中,共执行了5次系统调用。
为避免系统调用次数过多导致终端的CPU利用率高、功耗高,考虑执行一次系统调用,可以读取两个或两个以上的数据包。示例性的,可参见图1B,图1B是应用端接收数据的另一种过程示意图。
请参照图1B,服务器发送的packet1~packet5到达终端后,分别被存储在S1、S2和S3指示的缓存空间。假设packet1~packet5先后到达终端,通过路径2接收packet2和packet3之间的时间间隔足够小,终端通过路径3接收packet4和packet5之间的时间间隔足够小,则应用执行第一次系统调用从S1指示的缓存空间读取packet1,应用执行第二次系统调用从S2指示的缓存空间读取packet2和packet3,应用执行第三次系统调用从S3指示的缓存空间读取packet4和packet5。该过程中,共执行了3次系统调用。该过程要求一次系统调用读取的多个packet之间的时间间隔足够小。
虽然上述执行一次系统调用读取多个packet的方式,可以在一定程度上减少系统调用次数。然而,若一个路径上packet的时间间隔不够小,针对该路径执行一次系统调用则无法读取多个packet,最终还是需要执行多次系统调用才可以实现读取多个packet的目的。典型的场景为端云场景,该场景中,应用运行在终端上,终端到云服务器的带宽一般比较小,吞吐量不会很高,针对一条路径执行一次系统调用无法读取多个数据包,无法达到降低系统调用次数以降低终端CPU利用率高、功耗高的目的。
有鉴于此,本申请实施例提供一种数据处理方法,通过降低系统调用次数,实现降低设备的CPU利用率和功耗的目的。
图2是本申请实施例所适用的网络架构示意图。请参照图2,该架构包括:至少一个第一设备、第二设备以及不同网络的接入节点等。其中,第一设备例如为用户设备(userequipment,UE)、手持终端、笔记本电脑、用户单元(subscriber unit)、蜂窝电话(cellularphone)、智能电话(smart phone)、无线数据卡、个人数字助理(personal digitalassistant,PDA)电脑、平板型电脑、无线调制解调器(modem)、手持设备(handheld)、膝上型电脑(laptop computer)、无绳电话(cordless phone)或者无线本地环路(wireless localloop,WLL)台、机器类型通信(machine type communication,MTC)终端或是其他可以接入网络的设备。第一设备与接入节点之间采用某种空口技术相互通信。该第一设备上运行一个或多个应用。
第二设备例如可以是服务器,如业务服务器、代理服务器等,其可以为运行在第一设备上的一个或多个应用提供服务。第一设备上的一个或多个应用可以称之为客户端,第二设备提供的服务可以称之为服务端。
接入节点专指无线网络的接入节点,具体的,可以是无线Wi-Fi网络的接入点(access point,AP)、路由器、或者Winmax网络的接入点或者无线蜂窝移动网络的基站等等,本发明不限定无线网络的种类以及无线网络的接入节点具体的形式。并且,同一类型的无线网络是指同属于无线Wi-Fi网络的接入节点,或者同属于Winmax网络,或者同属于无线蜂窝网络的接入节点如2G网络、3G网络或者4G网络或者5G网络等等。
请参照图2,本申请实施例中,该第一设备与第二设备均支持Wi-Fi和蜂窝网络。第一设备的操作系统上运行一个或多个应用,第二设备用于为第一设备上运行的一个或多个应用提供服务。第一设备与第二设备可采用多路径传输技术和/或单路径传输技术交互数据。
当第一设备的一个或多个应用与第二设备采用多路径传输技术交互数据时,两个设备之间建立的一条连接中可以包括多条路径。基于Wi-Fi网络和蜂窝网络,建立一个多路径(multipath,MP)连接,该MP连接包含四条路径,如图2中虚线所示,MP连接包括路径1、路径2、路径3和路径4,其中,路径1和路径2基于蜂窝网络传输数据,路径3和路径4基于Wi-Fi网络传输数据。
当第一设备的一个或多个应用与第二设备采用单路径传输技术交互数据时,两个设备之间建立的一条连接中只包括一条路径,该路径例如为图中实线所示的路径5或路径6,路径5基于蜂窝网络传输数据,路径6基于Wi-Fi网络传输数据。单路径传输技术可以使用多种传输协议,例如TCP协议,UDP协议,QUIC协议等等。
请参照图2,本申请实施例中,第一设备可通过上述的路径(包括MP连接的路径和单路径传输技术的路径中的至少一种)接收来自第二设备的数据包,该数据包中的数据是运行在第一设备上的一个或多个应用对应的数据;或者,第一设备可以将一个或多个应用对应的数据打包成数据包,通过上述的路径发送给第二设备。
需要说明的是,虽然上述是以第一设备上运行的应用为客户端、第二设备上提供的服务为服务端对本申请实施例的网络架构进行详细说明,然而,本申请实施例并不限制,例如,在其他可行的实现方式中,第一设备也可以为服务器,第二设备可以为终端。
下面,对本申请实施例中的一些名称进行解释说明。
A和/或B:表示A和B,或者A或B。
数据处理:可以是数据接收过程中的数据处理,也可以是数据发送过程中的数据处理。对于接收数据过程而言,数据处理包括第一设备的操作系统接收都到多条路径的数据包后,运行在第一设备上的各应用仅通过一次系统调用,获取数据包携带的数据中,一个或多个应用各自对应的数据。对于发送数据过程而言,数据处理包括运行在第一设备上的各应用仅通过一次系统调用,将一个或多个应用的数据分发给各条路径。
连接:可以是MP连接和单路径传输技术的连接中的至少一种。
MP连接:包含多条路径的连接。例如本申请中,该多连接的一个端节点是第一设备,另一个端节点是第二设备。第一设备中运行有一个或多个应用,该MP连接和应用的套接字描述符(socket)之间存在一一映射关系。
单路径传输技术的连接:相较于MP连接,单路径传输技术的连接只包含一条路径。
路径(path):路径是发端(sender)与收端(reciever)之间的链路(link)。路径可以用四元组或者五元组来标识。例如,五元组包括源IP地址,源端口号,目的IP地址,目的端口号以及传输层协议名称。一对收端和发端之间的多条路径可以共享一个或者多个路由器(router)。本申请实施例中的路径包括多MP连接中的路径和/或单路径传输技术的连接的路径。路径上传输的流可采用传输控制协议(Transmission Control Protocol、TCP)、用户数据报协议(user datagram protocol,UDP)、流控制传输协议(Stream ControlTransmission Protocol,SCTP)或者快速UDP网络连线(Quick UDP InternetConnections,QUIC)等。
应用,运行在第一设备上,数量可以为一个或多个,该一个或多个应用可仅通过一次系统调用,进行数据处理。应用例如为桌面(launcher)、媒体播放器(Media Player)、浏览器(Browser)等。
系统调用,指应用执行一次上下文切换,或者也可以理解为应用进行一次陷入和陷出。例如,操作系统通常具有两个状态:用户态和内核态。以第一设备为例,第一设备接收数据包的后,该数据包并不是直接到达用户态对应的用户空间,而是被存储在内核态对应的内核空间,需要应用陷入操作系统的内核态,将数据包从内核空间读取到用户空间,之后,应用陷出,进入操作系统的用户态;数据包发送过程中,也需要应用从用户态陷入内核态,将待发送的数据包从用户空间拷贝到内核空间,之后,应用陷出,进入操作系统的用户态。再如,当第一设备的操作系统不区分上下文空间时,第一设备同样需要执行系统调用以处理数据。
套接字(socket)描述符:是一个指针,是套接字文件描述符的简称。本申请实施例中,一条路径对应一对套接字描述符,分别位于路径的两端,一个套接字描述符指示一段缓存空间。例如,对应终端而言,一个套接字指示符指示终端的操作系统的内核空间内的一段缓存空间。
下面,在上述图2所示架构的基础上,对本申请实施例所述的数据处理方法进行详细说明。
图3是本申请实施例提供的一种数据处理方法的流程图。本实施例是从数据接收过程中,第二设备通过多条路径发送的数据包到达第一设备后,运行在第一设备上的应用如何处理该些数据包进行详细说明。本实施例包括如下步骤:
101、第一设备的操作系统接收所述多条路径的数据包,所述数据包来自所述第二设备。
示例性的,第一设备的操作系统中运行一个或多个应用,该第一设备与第二设备之间建立多条路径,该多条路径包括MP连接的路径和/或单路径传输技术连接的路径,该多条路径对应运行在第一设备的操作系统中的一个或多个应用。例如,再请参照图2,多条路径包括路径1~路径6,其中,路径1~路径4是一个MP连接包含的路径,路径5是一个单路径传输技术连接的路径,路径6是另一个单路径传输技术连接的路径。第一设备的操作系统中运行应用1,该6条路径均对应应用1。应理解,第一设备中可能有其他应用,第一设备可能也是其他路径的一个端节点,但其他路径并未示意出,即该多条路径可以不是该第一设备维护的全部路径。再如,第一设备的操作系统中运行应用1、应用2和应用3,路径1和路径2对应应用1,路径3和路径5对应应用2,路径4和路径6对应应用3。当然,也可以是多条路径全都是普通的单路径连接的路径,即路径1~6各对应一个应用。
第二设备向第一设备发送数据包时,通过上述的多条路径向第一设备发送数据包;相应的,第一设备的操作系统接收该些数据包。继续沿用上述的例子,第二设备通过路径1向第一设备发送数据包1,通过路径2向第一设备发送数据包2和数据包3,通过路径3向第一设备发送数据包4、数据包5和数据包6,通过路径4向第一设备发送数据包7,通过路径5向第一设备发送数据包8,通过路径6向第一设备发送数据包9。相应的,第一设备的操作系统接收通过该些路径的数据包。
102、在所述第一设备的操作系统接收所述多条路径的数据包后,所述一个或多个应用仅通过一次系统调用,获取所述数据包携带的数据中,所述一个或多个应用各自对应的数据。
示例性的,每条路径在第二设备上对应一个套接字描述符,该套接字描述符实质上是个指针,可以每个套接字描述符指示一个缓存空间。第二设备的操作系统接收到数据包后,将数据包存储到各路径的套接字描述符指示的缓存空间中。例如,将数据包1存储在路径1的套接字描述符指示的存储空间中,将数据包2和数据包3存储在路径2的套接字描述符指示的存储空间中,将数据包4、数据包5和数据包6存储在路径4的套接字描述符对应的存储空间……。
之后,一个或多个应用仅通过一次系统调用,即应用陷入内核态,获取数据包携带的数据中,一个或多个应用各自对应的数据。例如,6条路径均对应运行在第一设备的操作系统中的应用1,则执行一次系统调用,应用1从数据包1~数据包9中获取数据;再如,第一设备的操作系统中运行应用1、应用2和应用3,路径1和路径2对应应用1,路径3和路径5对应应用2,路径4和路径6对应应用3,则应用1、应用2和应用3仅通过一次系统调用,应用1从数据包1~数据包3中获取数据,应用2从数据包4、数据包5、数据包6和数据包8中获取数据,应用3从数据包7和数据包9中获取数据。
本申请实施例提供的数据处理方法,第一设备的操作系统上运行一个或多个应用,第一设备与第二设备之间有多条路径,该多条路径对应运行在第一设备的操作系统中的一个或多个应用,第一设备的操作系统接收到第二设备通过多条路径发送的数据包后,运行在第一设备的操作系统中的一个或多个应用仅通过一次系统调用,获取数据包携带的数据中,一个或多个应用各自对应的数据包。该过程中,运行第一设备的操作系统中的应用仅通过一次系统调用就可以获取到多条路径上的数据,以及,对该多条路径,还可以通过该次系统调用,从至少一条路径上获取多个数据包的中的数据(取决于系统调用执行时该多条路径在内核中接收到多少数据)系统调用次数少,开销小,因此,可以降低第一设备的CPU利用率和功耗。另外,由于仅通过一次系统调用可同时读取多个套接字描述符指示的缓存空间中的数据,因此可以提高数据的读取效率。
上述实施例中,为了使得系统调用时,各应用确定出从哪些数据包中读取数据,来自第二设备的各数据包携带应用标识,如此一来,各应用在执行系统调用时,可以确定出哪个应用应该从哪个数据包中读取数据。或者,第一设备的操作系统预先定义好路径与应用的对应关系,并保持该对应关系,如此一来,各应用在执行系统调用时,可以根据对应关系确定出哪个应用应该从哪个数据包中读取数据。
一种可行的设计中,上述的一个或多个应用仅通过一次系统调用,获取所述数据包携带的数据中,所述一个或多个应用各自对应的数据时,该一个或多个应用通过仅调用一次接收函数,获取所述数据包携带的数据中,所述一个或多个应用各自对应的数据,其中,接收函数为系统调用接口,该接收函数用于通过轮询两条及以上路径对应的套接字描述符,从而获取两条及以上路径对应的套接字描述符指示的数据。
例如,该一个或多个应用可以将多条路径的套接字描述符绑定在一起,将其作为一个数组传递给接收函数,使得接收函数轮询数组中的各套接字描述符,从而到各套接字描述符指示的缓存空间读取数据包中的数据。当然,除了数组之外,也可以使用其他数据结构使接收函数获知这些套接字描述符。再如,预先对多条路径的套接字描述符进行排序,接收函数按照排序,依次到各套接字描述符指示的缓存空间读取数据。
示例性的,可参见图4是本申请实施例提供的数据处理方法中接收函数轮询各路径的套接字描述符的流程图。本实施例中,令接收函数为recvmmmsg(),将套接字描述符的总数记为epcnt,当前套接字描述符为第r个套接字描述符,执行系统调用过程中,应用读取到的数据存储在应用层的缓存空间中,该缓存空间的最大长度为vlen,则本实施例包括如下步骤:
201、将各路径的套接字描述符、套接字描述符的总数、应用层的缓存空间的最大长度等参数输入接收函数。
202、初始化r和l,其中,r指当前正在遍历的套接字描述符的编号、l指当前已读取的数据的长度。
203、读取第r个套接字描述符指示的缓存空间中数据。
204、判断r是否小于套接字描述符的总数epcnt,若r小于套接字描述符的总数epcnt,则执行步骤205;若r等于套接字描述符的总数epcnt,则执行步骤208
205、判断l是否小于缓存空间的最大长度vlen,若l小于缓存空间的最大长度vlen,则执行步骤206;若l大于或等于缓存空间的最大长度vlen,则执行步骤208
206、将l更新为l+a,之后执行步骤207;
其中,a为步骤203中读取到的数据的长度。
207、将r更新为r+1,之后执行步骤203。
208、接收函数返回r。
本实施例中,运行在第一设备的操作系统中的一个或多个应用通过对各套接字进行管理,以便接收函数轮询各套接字描述符,从而到各套接字描述符指示的缓存空间读取数据包中的数据。
一种可行的设计中,上述的接收函数的输入包括所述多条路径各自对应的套接字描述符。
示例性的,上述的一个或多个应用执行一次系统调用时,该一个或多个应用将多条路径各自对应的套接字描述符输入至接收函数。例如,将多条路径各自对应的套接字描述符绑定为一个数组输入至接收函数;再如,该一个或多个应用将多条路径各自对应的套接字描述符直接输入至接收函数。
本实施中,运行在第一设备的操作系统中的一个或多个应用将多条路径各自对应的套接字描述符输入至接收函数,以便接收函数轮询各套接字描述符,从而到各套接字描述符指示的缓存空间读取数据包中的数据。
一种可行的设计中,上述的一个或多个应用执行一次系统调用,轮询多条路径各自对应的套接字描述符,第一设备的操作系统向一个或多个应用发送第一确认信息,该第一确认信息表示操作系统确认该一个或多个应用各自对应的数据已被所述一个或多个应用获取。示例性的,运行在第一设备的操作系统中的一个或多个应用执行系统调用,从各路径的套接字描述符对应的缓存空间读取数据,第一设备的操作系统检测各套接字描述符指示的缓存空间中数据是否被成功读取,并针对每个套接字描述符生成确认信息,各套接字描述符的确认信息形成第一确认信息。每个套接字的确认信息用于指示该套接字描述符指示的缓存空间中数据是否已被成功读取。
本实施例中,第一设备的操作系统向一个或多个应用发送第一确认信息,该第一确认信息表示操作系统确认该一个或多个应用各自对应的数据是否已被所述一个或多个应用获取,实现第一设备的操作系统对各应用管理的目的。
一种可行的设计中,上述的多条路径中的至少两条路径属于一个多路径连接。
示例性的,请继续参照图2,路径1~路径6中,路径1~路径4属于同一个多路径连接。
本实施例中,由于多条路径中的至少两条路径属于一个MP连接,实现MP连接场景中,应用仅通过一次系统调用即可从MP连接包含的多条路径的套接字描述符指示的缓存空间中读取数据的目的。
一种可行的设计中,第一设备的操作系统接收的所述多条路径的数据包中,包括至少两个来自同一路径的数据包。
示例性的,请继续参照图2,第二设备通过路径1向第一设备发送数据包1,通过路径2向第一设备发送数据包2和数据包3,通过路径3向第一设备发送数据包4、数据包5和数据包6,通过路径4向第一设备发送数据包7,通过路径5向第一设备发送数据包8,通过路径6向第一设备发送数据包9。相应的,第一设备的操作系统接收通过该些路径的数据包。其中,数据包2和数据包3来自同一路径,即路径2,数据包4、数据包5和数据包6来自同一路径,即路径3。
本实施例中,来自同一路径的数据包可以为多个,实现应用通过一次系统调用从多个路径的套接字描述符指示的缓存空间读取数据时,从同一个套接字描述符指示的缓存空间读取至少两个数据包中的数据的目的。
图5是本申请实施例提供的一种数据处理方法中应用接收数据的示意图。请参照图5,本实施例中,第一设备为第一设备、第二设备为第二设备,图中虚线框所示为第一设备的操作系统,应用1、应用2和应用3运行在第一设备的操作系统中,分别对应3条路径,该3条路径中的每条路径在第一设备上分别对应一个套接字描述符,分别为套接字描述符1(S1)、套接字描述符2(S2)、套接字描述符3(S3)。服务端通过路径1发送的数据包(packet)1到达第一设备后,被第一设备的操作系统接收,并不是直接到达应用层的应用,而是被第一设备的操作系统存储在应用层以下S1指示的缓存空间,同理,服务端通过路径2发送的packet2和packet3到达第一设备,被第一设备的操作系统存储在S2指示的缓存空间,服务端通过路径3发送的packet4和packet5到达第一设备,被第一设备的操作系统存储在S3指示的缓存空间。
之后,运行在第一设备的操作系统中的应用执行一次系统调用,从路径1、路径2和路径3各自套接字描述符指示的缓存空间读取数据包1~数据包5,从而获得到应用的数据。
图6是本申请实施例提供的另一种数据处理方法的流程图。本实施例是从数据发送过程中,运行在第一设备上的应用如何将待发送给第二设备的数据分发到多条路径进行详细说明。本实施例包括如下步骤:
301、所述一个或多个应用仅通过一次系统调用,将所述一个或多个应用的数据对应地分发给所述多条路径。
示例性的,第一设备的操作系统中运行一个或多个应用,该第一设备与第二设备之间建立多条路径,该多条路径包括MP连接的路径和/或单路径传输技术连接的路径,该多条路径对应运行在第一设备的操作系统中的一个或多个应用。例如,再请参照图2,多条路径包括路径1~路径6,其中,路径1~路径4是一个MP连接包含的路径,路径5是一个单路径传输技术连接的路径,路径6是另一个单路径传输技术连接的路径。第一设备的操作系统中运行应用1,该6条路径均对应应用1。再如,第一设备的操作系统中运行应用1、应用2和应用3,路径1和路径2对应应用1,路径3和路径5对应应用2,路径4和路径6对应应用3。
运行在第一设备的操作系统中的一个或多个应用向第二设备发送数据时,先确定待发送的数据各自对应的路径。然后,一个或多个应用仅通过一次条用,将该些数据写入各路径的套接字描述符指示的存储空间,该过程也称之为将数据对应的分发给各条路径。
302、所述第一设备的操作系统通过多条路径,向所述第二设备发送所述数据。
示例性的,该些路径可以基于Wi-Fi网络、蜂窝网络或蓝牙等传输数据,因此,第一设备的操作系统可以通过多条路径,向第二设备发送数据。
例如,请参照图2,第一设备的操作系统中运行应用1,该6条路径均对应应用1,应用1确定通过路径1向第二设备发送数据包a,通过路径2向第二设备发送数据包b和数据包c,通过路径3向第二设备发送数据包d、数据包e和数据包f,通过路径4向第二设备发送数据包g,通过路径5向第二设备发送数据包h,通过路径6向第二设备发送数据包i。则应用1仅通过一次系统调用,将数据包a写入路径1的套接字描述符指示的缓存空间,将数据包b、数据包c写入路径2的套接字描述符指示的缓存空间,将数据包d、数据包e和数据包f写入路径3的套接字描述符指示的缓存空间,将数据包g写入路径4的套接字描述符指示的缓存空间,将数据包h写入路径5的套接字描述符指示的缓存空间,将数据包i写入路径6的套接字描述符指示的缓存空间。之后,第一设备的操作系统通过路径1~路径6,向第二设备发送数据包a~数据包i。
再如,第一设备的操作系统中运行应用1、应用2和应用3,路径1和路径2对应应用1,路径3和路径5对应应用2,路径4和路径6对应应用3,应用1确定通过路径1向第二设备发送数据包a,通过路径2向第二设备发送数据包b和数据包c,应用2确定通过路径3向第二设备发送数据包d、数据包e和数据包f,通过路径5向第二设备发送数据包h;应用3确定通过路径4向第二设备发送数据包g,通过路径6向第二设备发送数据包i。则应用1、应用2和应用3仅通过一次系统调用,将数据包a写入路径1的套接字描述符指示的缓存空间,将数据包b、数据包c写入路径2的套接字描述符指示的缓存空间,将数据包d、数据包e和数据包f写入路径3的套接字描述符指示的缓存空间,将数据包g写入路径4的套接字描述符指示的缓存空间,将数据包h写入路径5的套接字描述符指示的缓存空间,将数据包i写入路径6的套接字描述符指示的缓存空间。之后,第一设备的操作系统通过路径1~路径6,向第二设备发送数据包a~数据包i。
本申请实施例提供的数据处理方法,第一设备的操作系统上运行一个或多个应用,第一设备与第二设备之间有多条路径,该多条路径对应运行在第一设备的操作系统中的一个或多个应用,运行在第一设备的操作系统中的一个或多个应用仅通过一次系统调用,将该一个或多个应用的数据对应地分发给多条路径,之后,第一设备的操作系统通过多条路径,向第二设备发送该些数据。该过程中,运行在第一设备的操作系统中的一个或多个应用仅通过一次系统调用就可以将该一个或多个应用的数据分发到对应的路径,系统调用次数少,开销小,因此,可以降低第一设备的CPU利用率和功耗。另外,由于仅通过一次系统调用可同时多个套接字描述符指示的缓存空间写入数据,因此可以提高数据的写入效率。
上述实施例中,发送数据的过程中,可以在不同的路径上发送相同的数据。例如,第一设备的操作系统中运行应用1,该应用1准备将数据1、数据2和数据3发送给第二设备,该应用对应路径1、路径2和路径3,则应用1仅通过一次系统调用,将数据1和数据2分发给路径1,将数据3分发给路径2,将数据1、数据2和数据3分发给路径3,从而实现在不同的路径上发送相同的数据的目的。
一种可行的设计中,上述的一个或多个应用仅通过一次系统调用,将所述一个或多个应用各自的数据对应地分发给所述多条路径,包括:所述一个或多个应用通过仅调用一次发送函数,将所述一个或多个应用各自的数据对应地分发给所述多条路径,其中,所述发送函数为系统调用接口,所述发送函数用于通过轮询两条及以上路径对应的套接字描述符,将数据分发给所述两条及以上路径对应的套接字描述符指示的缓存空间。
例如,该一个或多个应用可以将多条路径的套接字描述符绑定在一起,将其作为一个数组传递给发送函数,使得发送函数轮询数组中的各套接字描述符,从而将数据写入各套接字描述符指示的缓存空间中。再如,预先对多条路径的套接字描述符进行排序,发送函数按照排序,依次将一个或多个应用的数据写入各套接字描述符指示的缓存空间。
本实施例中,运行在第一设备的操作系统中的一个或多个应用通过对各套接字进行管理,以便发送函数轮询各套接字描述符,从而将一个或多个应用的数据写入各套接字描述符指示的缓存空间。
一种可行的设计中,所述发送函数的输入包括所述多条路径各自对应的套接字描述符。
示例性的,上述的一个或多个应用执行一次系统调用时,该一个或多个应用将多条路径各自对应的套接字描述符输入至发送函数。例如,将多条路径各自对应的套接字描述符绑定为一个数组输入至发送函数;再如,该一个或多个应用将多条路径各自对应的套接字描述符直接输入至发送函数。
本实施中,运行在第一设备的操作系统中的一个或多个应用将多条路径各自对应的套接字描述符输入至发送函数,以便发送函数轮询各套接字描述符,从而将一个或多个应用的数据写入各套接字描述符指示的缓存空间。
一种可行的设计中,上述的一个或多个应用执行一次系统调用,轮询多条路径各自对应的套接字描述符,以将数据写入各套接字描述符指示的缓存空间,第一设备的操作系统向所述一个或多个应用发送第二确认信息,所述第二确认信息表示所述操作系统确认所述一个或多个应用各自对应的数据已写入所述多条路径各自对应的套接字描述符指示的缓存空间。示例性的,运行在第一设备的操作系统中的一个或多个应用执行系统调用,将一个或多个应用的数据写入各路径的套接字描述符对应的缓存空间,第一设备的操作系统检测检测各套接字描述符指示的缓存空间中否已被写入数据,并针对每个套接字描述符生成确认信息,各套接字描述符的确认信息形成第二确认信息。每个套接字的确认信息用于指示该套接字描述符指示的缓存空间中是否已被写入数据。
本实施例中,第一设备的操作系统向一个或多个应用发送第二确认信息,该第二确认信息表示操作系统确认该一个或多个应用各自对应的数据是否已被分发至各路径,实现第一设备的操作系统对各应用进行管理的目的。
一种可行的设计中,上述的多条路径中的至少两条路径属于一个多路径连接。
示例性的,请继续参照图2,路径1~路径6中,路径1~路径4属于同一个多路径连接。
本实施例中,由于多条路径中的至少两条路径属于一个MP连接,实现MP连接场景中,应用仅通过一次系统调用即可向MP连接包含的多条路径的套接字描述符指示的缓存空间中写入数据的目的。
图7为本申请实施例提供的一种数据处理装置的结构示意图。该装置用于处理多条路径的数据,所述多条路径为第一设备与第二设备之间的路径,所述多条路径对应一个或多个应用,所述第一设备的操作系统中运行有所述一个或多个应用,所述装置100包括:操作系统11和应用12,当该数据处理装置100用于数据接收过程中的数据处理时,操作系统11和应用12的功能如下:
操作系统11,用于接收所述多条路径的数据包,所述数据包来自所述第二设备;
应用12,用于在所述操作系统11接收所述多条路径的数据包后,仅通过一次系统调用,获取所述数据包携带的数据中,所述一个或多个应用各自对应的数据。
一种可行的设计中,所述应用12,用于仅调用一次接收函数,获取所述数据包携带的数据中,所述一个或多个应用各自对应的数据,其中,所述接收函数为系统调用接口,所述接收函数用于通过轮询两条及以上路径对应的套接字描述符,获取所述两条及以上路径对应的套接字描述符指示的数据。
一种可行的设计中,所述接收函数的输入包括所述多条路径各自对应的套接字描述符。
一种可行的设计中,所述操作系统11,还用于向所述一个或多个应用发送第一确认信息,所述第一确认信息表示所述操作系统确认所述一个或多个应用各自对应的数据已被所述一个或多个应用获取。
一种可行的设计中,所述多条路径中的至少两条路径属于一个多路径连接。
一种可行的设计中,所述第一设备的操作系统接收的所述多条路径的数据包中,包括至少两个来自同一路径的数据包。
当该数据处理装置100用于数据接收过程中的数据处理时,操作系统11和应用12的功能如下:
应用12,用于通过一次系统调用,将所述一个或多个应用的数据对应地分发给所述多条路径;
操作系统11,用于通过所述多条路径,向所述第二设备发送所述数据。
一种可行的设计中,所述应用12,用于仅调用一次发送函数,将所述一个或多个应用各自的数据对应地分发给所述多条路径,其中,所述发送函数为系统调用接口,所述发送函数用于通过轮询两条及以上路径对应的套接字描述符,将数据分发给所述两条及以上路径对应的套接字描述符指示的缓存空间。
一种可行的设计中,所述发送函数的输入包括所述多条路径各自对应的套接字描述符。
一种可行的设计中,所述操作系统11,还用于向所述一个或多个应用发送第二确认信息,所述第二确认信息表示所述操作系统确认所述一个或多个应用各自对应的数据已写入所述多条路径各自对应的套接字描述符指示的缓存空间。
一种可行的设计中,所述多条路径中的至少两条路径属于一个多路径连接。
图8为本申请实施例提供的一种数据处理装置的结构示意图。如图8所示,该数据处理装置200可以包括:处理器21(例如CPU)、存储器22;存储器22可能包含高速随机存取存储器(random-access memory,RAM),也可能还包括非易失性存储器(non-volatilememory,NVM),例如至少一个磁盘存储器,存储器24中可以存储各种指令,以用于完成各种处理功能以及实现本申请的方法步骤。
可选的,本申请涉及的数据处理装置还可以包括:通信总线23以及通信接口24,通信总线23用于实现元件之间的通信连接,通信接口24用于实现数据处理装置与其他外设之间进行连接通信。
在本申请实施例中,各应用被下载到第一设备后,应用的安装包存储在存储器22中,应用被安装时,处理器21对存储在存储器22中的安装包中进行处理,从而将应用运行在第一设备的操作系统中;或者,应用是操作系统自带的应用,无需下载安装即可运行在操作系统中,第一设备的操作系统存储在存储器22中,操作系统通过硬件的指令集来驱动硬件。上述存储器22还用于存储计算机可执行程序代码,程序代码包括指令;当处理器21执行指令时,指令使数据处理装置的处理器21执行上述实施例或可选实施例中第一设备的处理动作,其实现原理和技术效果类似,在此不再赘述。
本申请实施例还提供一种存储介质,所述存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上所述的数据处理方法。
本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在第一设备上运行时,使得第一设备执行如上述的数据处理方法。
本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对第一设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
本文中的术语“多个”是指两个或两个以上。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。
可以理解的是,在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
可以理解的是,在本申请的实施例中,存储器可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、第一设备、终端或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,SSD)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (26)
1.一种数据处理方法,其特征在于,所述方法用于处理多条路径的数据,所述多条路径为第一设备与第二设备之间的路径,所述多条路径对应一个或多个应用,所述第一设备运行有管理程序和所述一个或多个应用,所述方法包括:
所述第一设备的管理程序接收所述多条路径的数据包,所述数据包来自所述第二设备;
在所述第一设备的管理程序接收所述多条路径的数据包后,所述一个或多个应用仅通过一次管理程序获取所述数据包携带的数据中与所述一个或多个应用关联的数据。
2.根据权利要求1所述的方法,其特征在于,所述一个或多个应用仅通过调用一次管理程序,获取所述数据包携带的数据中与所述一个或多个应用关联的数据,包括:
所述管理程序为操作系统;
所述一个或多个应用通过仅调用一次接收函数,获取所述数据包携带的数据中与所述一个或多个应用关联的数据,其中,所述接收函数为系统调用接口,所述接收函数用于通过轮询两条及以上路径对应的套接字描述符,获取所述两条及以上路径对应的套接字描述符指示的数据。
3.根据权利要求2所述的方法,其特征在于,所述接收函数的输入包括所述多条路径各自对应的套接字描述符。
4.根据权利要求1~3任一所述的方法,其特征在于,所述方法还包括:
所述第一设备的管理程序向所述一个或多个应用发送第一确认信息,所述第一确认信息表示所述管理程序确认所述一个或多个应用关联的数据已被所述一个或多个应用获取。
5.根据权利要求1~4任一所述的方法,其特征在于,所述多条路径中的至少两条路径属于一个多路径连接。
6.根据权利要求1~5任一所述的方法,其特征在于,所述第一设备的管理程序接收的所述多条路径的数据包中,包括至少两个来自同一路径的数据包。
7.一种数据处理方法,其特征在于,所述方法用于处理多条路径的数据,所述多条路径为第一设备与第二设备之间的路径,所述多条路径对应一个或多个应用,所述第一设备运行有管理程序和所述一个或多个应用,所述方法包括:
所述一个或多个应用仅通过调用一次管理程序,将所述一个或多个应用的数据对应地分发给所述多条路径;
所述第一设备的管理程序通过所述多条路径,向所述第二设备发送所述数据。
8.根据权利要求7所述的方法,其特征在于,所述一个或多个应用仅通过调用一次管理程序,将所述一个或多个应用各自的数据对应地分发给所述多条路径,包括:
所述管理程序为操作系统;
所述一个或多个应用通过仅调用一次发送函数,将所述一个或多个应用各自的数据对应地分发给所述多条路径,其中,所述发送函数为系统调用接口,所述发送函数用于通过轮询两条及以上路径对应的套接字描述符,将数据分发给所述两条及以上路径对应的套接字描述符指示的缓存空间。
9.根据权利要求8所述的方法,其特征在于,所述发送函数的输入包括所述多条路径各自对应的套接字描述符。
10.根据权利要求7~9任一所述的方法,其特征在于,所述方法还包括:
所述第一设备的管理程序向所述一个或多个应用发送第二确认信息,所述第二确认信息表示所述管理程序确认所述一个或多个应用关联的数据已写入所述多条路径各自对应的套接字描述符指示的缓存空间。
11.根据权利要求7~10任一所述的方法,其特征在于,所述多条路径中的至少两条路径属于一个多路径连接。
12.一种数据处理装置,其特征在于,所述装置用于处理多条路径的数据,所述多条路径为第一设备与第二设备之间的路径,所述多条路径对应一个或多个应用,所述第一设备的管理程序中运行有所述一个或多个应用,所述装置包括:
管理程序,用于接收所述多条路径的数据包,所述数据包来自所述第二设备;
应用,用于在所述管理程序接收所述多条路径的数据包后,仅通过调用一次管理程序,获取所述数据包携带的数据中与所述一个或多个应用关联的数据。
13.根据权利要求12所述的装置,其特征在于,
所述管理程序为操作系统;
所述应用,用于仅调用一次接收函数,获取所述数据包携带的数据中与所述一个或多个应用关联的数据,其中,所述接收函数为系统调用接口,所述接收函数用于通过轮询两条及以上路径对应的套接字描述符,获取所述两条及以上路径对应的套接字描述符指示的数据。
14.根据权利要求13所述的装置,其特征在于,所述接收函数的输入包括所述多条路径各自对应的套接字描述符。
15.根据权利要求12~14任一项所述的装置,其特征在于,
所述管理程序,还用于向所述一个或多个应用发送第一确认信息,所述第一确认信息表示所述管理程序确认所述一个或多个应用关联的数据已被所述一个或多个应用获取。
16.根据权利要求12~15任意所述的装置,其特征在于,所述多条路径中的至少两条路径属于一个多路径连接。
17.根据权利要求12~15任意所述的装置,其特征在于,所述第一设备的管理程序接收的所述多条路径的数据包中,包括至少两个来自同一路径的数据包。
18.一种数据处理装置,其特征在于,所述装置用于处理多条路径的数据,所述多条路径为第一设备与第二设备之间的路径,所述多条路径对应一个或多个应用,所述第一设备运行有管理程序和所述一个或多个应用,所述装置包括:
应用,用于通过调用一次管理程序,将所述一个或多个应用的数据对应地分发给所述多条路径;
管理程序,用于通过所述多条路径,向所述第二设备发送所述数据。
19.根据权利要求18所述的装置,其特征在于,
所述管理程序为操作系统;
所述应用,用于仅调用一次发送函数,将所述一个或多个应用各自的数据对应地分发给所述多条路径,其中,所述发送函数为系统调用接口,所述发送函数用于通过轮询两条及以上路径对应的套接字描述符,将数据分发给所述两条及以上路径对应的套接字描述符指示的缓存空间。
20.根据权利要求19所述的装置,其特征在于,所述发送函数的输入包括所述多条路径各自对应的套接字描述符。
21.根据权利要求18~20所述的装置,其特征在于,所述管理程序,还用于向所述一个或多个应用发送第二确认信息,所述第二确认信息表示所述管理程序确认所述一个或多个应用关联的数据已写入所述多条路径各自对应的套接字描述符指示的缓存空间。
22.根据权利要求18~21所述的装置,其特征在于,所述多条路径中的至少两条路径属于一个多路径连接。
23.一种数据处理装置,其特征在于,包括:处理器、存储器,所述存储器用于存储指令,所述处理器用于执行所述存储器中存储的指令,实现如权利要求1~6任一项所述的数据处理方法。
24.一种数据处理装置,其特征在于,包括:处理器、存储器,所述存储器用于存储指令,所述处理器用于执行所述存储器中存储的指令,实现如权利要求7~11任一项所述的数据处理方法。
25.一种计算机可读存储介质,其特征在于,其上存储有计算机执行指令,当所述计算机执行指令被至少一个处理器执行时,实现如权利要求1~6任一项所述的数据处理方法。
26.一种计算机可读存储介质,其特征在于,其上存储有计算机执行指令,当所述计算机执行指令被至少一个处理器执行时,实现如权利要求7~11任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111367931.1A CN114201311A (zh) | 2019-03-15 | 2019-03-15 | 数据处理方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910200157.1A CN111698274B (zh) | 2019-03-15 | 2019-03-15 | 数据处理方法及装置 |
CN202111367931.1A CN114201311A (zh) | 2019-03-15 | 2019-03-15 | 数据处理方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910200157.1A Division CN111698274B (zh) | 2019-03-15 | 2019-03-15 | 数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114201311A true CN114201311A (zh) | 2022-03-18 |
Family
ID=72475453
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910200157.1A Active CN111698274B (zh) | 2019-03-15 | 2019-03-15 | 数据处理方法及装置 |
CN202111367931.1A Pending CN114201311A (zh) | 2019-03-15 | 2019-03-15 | 数据处理方法及装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910200157.1A Active CN111698274B (zh) | 2019-03-15 | 2019-03-15 | 数据处理方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11397627B2 (zh) |
EP (1) | EP3832987B1 (zh) |
CN (2) | CN111698274B (zh) |
WO (1) | WO2020187124A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111698274B (zh) * | 2019-03-15 | 2021-11-19 | 华为技术有限公司 | 数据处理方法及装置 |
CN112929409A (zh) * | 2021-01-20 | 2021-06-08 | 努比亚技术有限公司 | 一种wifi数据传输的方法、终端及存储介质 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7571247B2 (en) | 2005-12-12 | 2009-08-04 | International Business Machines Corporation | Efficient send socket call handling by a transport layer |
CN101159747B (zh) * | 2007-11-12 | 2010-09-01 | 中兴通讯股份有限公司 | 一种基于tcp并发多链路的通信系统及其方法 |
CN101304373B (zh) * | 2008-06-25 | 2011-03-02 | 中兴通讯股份有限公司 | 一种实现局域网内高效传输大块数据的方法及系统 |
CN101340574B (zh) * | 2008-08-04 | 2010-09-08 | 中兴通讯股份有限公司 | 一种实现零拷贝发送流媒体数据的方法及系统 |
RU2477930C2 (ru) * | 2008-08-04 | 2013-03-20 | ЗетТиИ Корпорейшн | Способ и система для передачи потоковых мультимедийных данных с нулевым копированием |
US8689222B2 (en) * | 2008-10-30 | 2014-04-01 | International Business Machines Corporation | Controlling priority of multi-threaded hardware resources by system calls |
CN101447925A (zh) * | 2008-12-17 | 2009-06-03 | 中兴通讯股份有限公司 | 一种发送多路数据包的方法及系统 |
CN101494661B (zh) * | 2008-12-29 | 2012-07-04 | 深圳市同洲电子股份有限公司 | 传输控制协议/网间协议的协议栈读取数据的方法和装置 |
CN101848235B (zh) * | 2010-04-16 | 2012-10-17 | 北京航空航天大学 | 一种支持nat穿越的实时多媒体数据p2p传输方案 |
US9384071B2 (en) * | 2011-03-31 | 2016-07-05 | Solarflare Communications, Inc. | Epoll optimisations |
CN103312625B (zh) | 2012-03-09 | 2016-02-03 | 深圳市腾讯计算机系统有限公司 | 一种网络通信的方法和系统 |
CN103841148A (zh) * | 2012-11-23 | 2014-06-04 | 京信通信系统(中国)有限公司 | 监控程序中利用可靠与非可靠网络的主从通信方法及系统 |
US9038075B2 (en) * | 2012-11-26 | 2015-05-19 | Red Hat, Inc. | Batch execution of system calls in an operating system |
CN104717189A (zh) * | 2013-12-16 | 2015-06-17 | 中兴通讯股份有限公司 | 网络数据包的发送方法及装置 |
CN103945456B (zh) * | 2014-05-12 | 2017-06-27 | 武汉邮电科学研究院 | 一种基于Linux系统的LTE基站用户面高效UDP数据发送优化方法 |
US10999417B2 (en) * | 2017-12-11 | 2021-05-04 | Greyware Automation Products, Inc. | Method and apparatus for unicast packet sharing |
US11223708B2 (en) * | 2018-06-26 | 2022-01-11 | Microsoft Technology Licensing, Llc | Scalable sockets for QUIC |
CN111698274B (zh) * | 2019-03-15 | 2021-11-19 | 华为技术有限公司 | 数据处理方法及装置 |
-
2019
- 2019-03-15 CN CN201910200157.1A patent/CN111698274B/zh active Active
- 2019-03-15 CN CN202111367931.1A patent/CN114201311A/zh active Pending
-
2020
- 2020-03-12 EP EP20774230.5A patent/EP3832987B1/en active Active
- 2020-03-12 WO PCT/CN2020/078965 patent/WO2020187124A1/zh unknown
- 2020-11-13 US US17/097,565 patent/US11397627B2/en active Active
-
2022
- 2022-06-23 US US17/847,525 patent/US11809925B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN111698274B (zh) | 2021-11-19 |
US20210064454A1 (en) | 2021-03-04 |
US11397627B2 (en) | 2022-07-26 |
CN111698274A (zh) | 2020-09-22 |
EP3832987A4 (en) | 2021-12-15 |
WO2020187124A1 (zh) | 2020-09-24 |
US20220327011A1 (en) | 2022-10-13 |
EP3832987B1 (en) | 2023-07-26 |
EP3832987A1 (en) | 2021-06-09 |
US11809925B2 (en) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11277313B2 (en) | Data transmission method and corresponding device | |
US6799220B1 (en) | Tunneling management messages over a channel architecture network | |
US11809925B2 (en) | Data processing method and apparatus | |
CN110505244B (zh) | 远程隧道访问技术网关以及服务器 | |
US11419171B2 (en) | Method for establishing subflow of multipath connection, apparatus, and system | |
CN108494817A (zh) | 数据传输方法、相关装置及系统 | |
JP6598771B2 (ja) | データ・ネットワークにおける分散データ送信 | |
CN110312283B (zh) | 一种信息处理方法及装置 | |
WO2024037296A1 (zh) | 基于协议族的quic数据传输方法及装置 | |
CN113891396B (zh) | 数据包的处理方法、装置、计算机设备和存储介质 | |
CN105141603A (zh) | 通信数据传输方法及系统 | |
KR20210049335A (ko) | 테더링 서비스 제공을 위한 ip 패킷 변환 방법 및 이를 수행하는 통신 시스템 | |
US9015438B2 (en) | System and method for achieving enhanced performance with multiple networking central processing unit (CPU) cores | |
CN108966319B (zh) | 数据包传输控制方法、移动终端以及装置 | |
Kundu et al. | Hardware acceleration for open radio access networks: A contemporary overview | |
CN113271336B (zh) | 基于dpdk的机器人中间件dds数据传输方法、电子设备及计算机可读存储介质 | |
CN113497767A (zh) | 传输数据的方法、装置、计算设备及存储介质 | |
CN114157684A (zh) | 一种报文处理的方法、设备以及存储介质 | |
CN112019450A (zh) | 设备间流式通信 | |
CN117082152B (zh) | 服务处理方法、系统及装置 | |
WO2023202241A1 (zh) | 一种通信方法及相关产品 | |
EP4199469A1 (en) | Method and apparatus to assign and check anti-replay sequence numbers using load balancing | |
CN117478589A (zh) | 基于dpu的业务流量转发方法、装置及系统 | |
CN114928589A (zh) | 数据传输方法、数据传输装置、计算机可读介质及设备 | |
CN116366544A (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 |