WO2015109708A1 - Data packet processing method and device, and server - Google Patents

Data packet processing method and device, and server Download PDF

Info

Publication number
WO2015109708A1
WO2015109708A1 PCT/CN2014/078563 CN2014078563W WO2015109708A1 WO 2015109708 A1 WO2015109708 A1 WO 2015109708A1 CN 2014078563 W CN2014078563 W CN 2014078563W WO 2015109708 A1 WO2015109708 A1 WO 2015109708A1
Authority
WO
WIPO (PCT)
Prior art keywords
data packets
receiving
kernel
protocol stack
data packet
Prior art date
Application number
PCT/CN2014/078563
Other languages
French (fr)
Chinese (zh)
Inventor
王魏强
朱志勇
Original Assignee
中兴通讯股份有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2015109708A1 publication Critical patent/WO2015109708A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport

Definitions

  • the present invention relates to the field of communications, and in particular to a method, an apparatus, and a server for processing a data packet.
  • BACKGROUND In a streaming media server application based on a Linux operating system, a code stream needs to be forwarded. In this process, a data stream is received, and a received data message occupies a large amount of CPU resources, thereby improving the receiving performance and directly improving the server. Processing performance. 1 is a flowchart of a method for receiving a data packet according to the related art. In the related art, for each audio stream, a network socket is required to invoke a User Data Protocol (UDP) packet. The receiving interface receives data from the protocol stack.
  • UDP User Data Protocol
  • Embodiments of the present invention provide a method, an apparatus, and a server for processing a data packet to solve at least the foregoing problems.
  • a method for processing a data packet including: receiving, by a protocol stack, a request for receiving a data packet in batches, receiving a plurality of data packets through a kernel debugging mechanism of an operating system; After the number of packets is greater than the preset batch threshold, the multiple packets are returned.
  • receiving the plurality of data packets by the kernel debugging mechanism of the operating system comprises: receiving the plurality of data packets by a jprobe mechanism provided by a kernel of the operating system.
  • receiving, by the jprobe mechanism provided by the kernel of the operating system, the plurality of data packets comprises: adding a batch receiving data packet function to a receiving interface of the protocol stack by using a jprobe management method;
  • the batch receiving packet function receives the plurality of data packets.
  • the request by the protocol stack to receive the data packet in batch includes: the protocol stack responding to the request of the user process for receiving the data packet in batches.
  • returning the multiple data packets includes: determining whether the number of the multiple data packets received in a receive queue of a kernel state is If the number of the plurality of data packets is greater than the preset batch threshold, copying the plurality of data packets in the receive queue of the kernel state to the data of the user state.
  • a buffer wherein the user state corresponds to the user process, and the kernel state corresponds to the protocol stack.
  • a processing apparatus for a data packet is provided on a protocol stack, including: a control module, configured to receive a plurality of requests for obtaining a data packet in batches, and receive multiple by a kernel debugging mechanism of an operating system a data packet; a return module, configured to return the plurality of data packets after the number of the plurality of data packets is greater than a preset batch threshold.
  • the control module is further configured to receive the plurality of data packets by a jprobe mechanism provided by a kernel of the operating system.
  • control module includes: a setting unit configured to increase a batch receiving data packet function in a receiving interface of the protocol stack by using a jprobe management method; and a receiving unit configured to invoke the batch receiving data packet function Receiving the plurality of data packets.
  • control module is further configured to receive a request for a data packet in response to a batch of user processes.
  • the returning module includes: a determining unit, configured to determine whether the number of the plurality of data packets received in the receiving queue of the kernel state is greater than the preset batch threshold; the copying unit is set to be in the If the number of the plurality of data packets is greater than the preset batch threshold, copying the plurality of data packets in the receive queue of the kernel state to the data buffer of the user state, where the user state is Corresponding to the user process, the kernel state corresponds to the protocol stack.
  • a server including a protocol stack, where the protocol stack includes the apparatus described in any one of the above.
  • the protocol stack is configured to receive multiple data packets in response to the batch request, and receive multiple data packets through the kernel debugging mechanism of the operating system, and return multiple after the number of multiple data packets is greater than a preset batch threshold.
  • the data packet solves the problem that the protocol stack resource consumption in the related art is large, thereby achieving the effect of reducing resource consumption.
  • FIG. 1 is a flowchart of a method of receiving a data packet according to the related art
  • FIG. 1a is a flowchart of a data packet processing method according to an embodiment of the present invention
  • FIG. 2 is a packet processing according to an embodiment of the present invention.
  • FIG. 3 is a schematic structural diagram of a data packet processing apparatus according to an embodiment of the present invention
  • FIG. 4 is a schematic structural diagram 3 of a data packet processing apparatus according to an embodiment of the present invention
  • FIG. FIG. 6 is a flowchart of a packet processing method 1 according to a preferred embodiment of the present invention
  • FIG. 7 is a flowchart of a packet processing method 2 according to a preferred embodiment of the present invention.
  • FIG. 1a is a flowchart of a data packet processing method according to an embodiment of the present invention. As shown in FIG. 1a, the method includes the following steps: Step S102, the protocol stack responds to the batch.
  • Step S104 After the number of the plurality of data packets is greater than a preset batch threshold, returning the plurality of data packets.
  • the step of acquiring a plurality of data packets by using a kernel debugging mechanism of the operating system may include: receiving a plurality of data packets by using a jprobe mechanism provided by a kernel of the operating system.
  • the step of receiving the plurality of data packets by using the jprobe mechanism provided by a kernel of the operating system may include: using a jprobe management method, and a receiving interface of the protocol stack Increase the batch receive packet function; call the batch receive packet function to receive multiple packets.
  • the step of returning the multiple data packets to the user process may include: determining, by the protocol stack, the kernel-state receiving queue Whether the number of received multiple data packets is greater than a preset batch threshold, and if the number of the multiple data packets is greater than the preset batch threshold, copying multiple data packets in the kernel state receiving queue To the user-mode data buffer, where the user state corresponds to the user process, and the kernel state corresponds to the protocol stack.
  • the operating system may be a Linux system, and the data packet may be a streaming media data packet.
  • other operating systems such as Android, may also be other types of data packets, such as data packets for voice communication of mobile terminals.
  • FIG. 2 is a schematic structural diagram 1 of a data packet processing apparatus according to an embodiment of the present invention. As shown in FIG.
  • the apparatus includes:
  • the control module 22 is configured to receive a plurality of data packets through a kernel debugging mechanism of the operating system in response to the request for obtaining the data packet in batches, and return to the module 24, and set to return more after the number of the plurality of data packets is greater than a preset batch threshold. Packets.
  • control module 22 is further configured to receive a plurality of data packets through a jprobe mechanism provided by a kernel of the operating system.
  • a kernel debugging mechanism of the operating system in response to the request for obtaining the data packet in batches, and return to the module 24, and set to return more after the number of the plurality of data packets is greater than a preset batch threshold. Packets.
  • control module 22 is further configured to receive a plurality of data packets through a jprobe mechanism provided by a kernel of the operating system.
  • a kernel debugging mechanism of the operating system in response to the request for obtaining the data packet in batches, and return to the module 24,
  • the control module 22 may further include: a setting unit 222 configured to add a batch receiving data packet function in the receiving interface of the protocol stack by using a jprobe management method; the receiving unit 224 is set to be called Receive packet functions in batches and receive multiple packets.
  • the returning module 24 may further include: a determining unit 242, configured to determine whether the number of the plurality of data packets received in the receiving queue of the kernel state is greater than a preset batch threshold; the copying unit 244, Set to copy multiple packets in the kernel-state receive queue to the user-mode data buffer when the number of multiple data packets is greater than the preset batch threshold, where the user state corresponds to the user process, the kernel The state corresponds to the protocol stack.
  • FIG. 5 is a schematic structural diagram of a server according to an embodiment of the present invention.
  • the server includes a protocol stack 52, and the protocol stack 52 includes the data packet processing apparatus provided by the foregoing embodiment. 522.
  • FIG. 6 is a flowchart of a method for processing a data packet according to a preferred embodiment of the present invention.
  • the method is based on protocol stack layer processing.
  • the method includes the following steps: Step S602: Using jprobe's management method, batch receiving data pack.
  • Step S602 Using the kernel debugging mechanism provided by the Linux system, jprobe's management method inserts an increased batch receiving packet function into the receiving interface of the protocol stack. This function is used to receive data packets in batches. For example, suppose the server where the Linux system is located is streaming media.
  • step S602 may specifically include the following steps: A, registering a jprobe probe point, and replacing the instruction code of the detected function with the instruction code of int 3 when registering the probe point;
  • C in jprobe's exception handler, determine whether there is a pre_handler hook function, where the hook function is equivalent to batch receiving packet functions. If there is a hook function, continue the hook function; D, after executing the hook function, prepare to enter the single-step debugging, and modify the address returned by the exception to the saved original by setting the trace flag (Trap Flag, TF for short) in the EFLAGS register.
  • Instruction code in jprobe's exception handler, determine whether there is a pre_handler hook function, where the hook function is equivalent to batch receiving packet functions. If there is a hook function, continue the hook function; D, after executing the hook function, prepare to enter the single-step debugging, and modify the address returned by the exception to the saved original by setting the trace flag (Trap Flag, TF for short) in the EFLAGS register.
  • Step S604 return multiple data packets.
  • the kernel buffer of the socket buffer (skb) receiving queue is copied to the data buffer of the user state in batches. Area.
  • the server may include a user process, a Linux kernel space, and a hardware device. Between the hardware device and the user process is a Linux kernel space, and a hook function is added to the protocol stack receiving interface in the kernel space, that is, a batch receiving packet function, receiving a bulk data packet, and receiving a specified amount of data. After the packet, the packet is returned to the user mode in bulk.
  • the method includes the following steps: Step S702: A user process sends a bulk receiving data packet request to a protocol stack.
  • the user process creates a socket socket using the standard protocol stack and receives the data packet using the standard receive receipt packet interface recvmsgO.
  • the user process is specified in the msg_name of the struct msghdr collection structure.
  • the number of received packets in batches, where the recvmsgO function is equivalent to receiving packets in batches, and the number of received packets received in batches is equivalent to a preset batch threshold.
  • Step S704 the protocol stack receives the data packet in batches.
  • the protocol stack inserts the judp_recvmsg collection and processing function through jprobe, receiving a batch of data packets each time. Among them, judp_recvmsg receiving packet processing function is equivalent to batch receiving packet function.
  • Step S706 storing the received data packet in a receiving queue.
  • the protocol stack stores the packets received in batches in the skb receive queue.
  • Step S708 copying the data packet in the receiving queue to the data buffer in the user state.
  • each time the user state to the kernel mode switch can receive a batch of data packets, effectively reducing the overhead of the system call. From the above description, it can be seen that the embodiment of the present invention achieves the following technical effects: using the original Linux network protocol stack, the bulk data packet is received through the kernel debugging mechanism, so that the loading and unloading of the kernel module are not performed.
  • modules or steps of the present invention can be implemented by a general-purpose computing device, which can be concentrated on a single computing device or distributed among multiple computing devices. On the network, optionally, they may be implemented by program code executable by the computing device, such that they may be stored in the storage device by the computing device and, in some cases, may be different from The steps shown or described are performed sequentially, or they are separately fabricated into individual integrated circuit modules, or a plurality of modules or steps thereof are fabricated into a single integrated circuit module. Thus, the invention is not limited to any specific combination of hardware and software.
  • a data packet processing method, apparatus, and server provided by an embodiment of the present invention have the following beneficial effects: Using the original Linux network protocol stack, the bulk data packet is received through the kernel debugging mechanism, thereby The kernel module loading and unloading will not affect the original network protocol stack of the Linux kernel.

Abstract

Disclosed are a data packet processing method and device, and a server. The method comprises: in response to a request for receiving data packets in batches, receiving, by a protocol stack, a plurality of data packets through an inner core debugging mechanism of an operating system, and returning the plurality of data packets after the number of the plurality of data packets is greater than a pre-set batch threshold value. The present invention solves the problem in the related art that the resource consumption of a protocol stack is large, and has the beneficial effect of reducing the resource consumption.

Description

数据包的处理方法、 装置及服务器 技术领域 本发明涉及通信领域, 具体而言, 涉及一种数据包的处理方法、 装置及服务器。 背景技术 在基于 Linux操作系统的流媒体服务器应用中, 需要对码流进行转发, 在这个过 程中存在数据码流的接收, 接收数据报文占用大量的 CPU的资源, 提高收包性能直接 提高服务器的处理性能。 图 1是根据相关技术的接收数据包的方法的流程图, 在相关技术中, 对于每一路 音频流,都需要使用网络套接字,调用用户数据协议(User Date Protocol,简称为 UDP) 数据包接收接口, 从协议栈接收数据。 用户进程每接收一个数据包, 就需要使用一次 系统调用, 每次系统调用需要先从用户态切换到内核态, 系统调用返回后, 再从内核 态切换到用户态。 在流媒体服务器负荷较重的情况下, 会触发大量的数据拷贝和上下 文切换操作, 极大地消耗了系统的 CPU资源, 降低了系统的处理能力。 由上述流程可见, 相关技术中, 用户进程接收每个数据包, 都需要调用一次系统, 使系统接收数据包, 从而导致频繁的系统调用, 极大的消耗 CPU资源, 进而降低整个 系统的性能, 降低整个流媒体服务的质量。 针对相关技术中用户进程获取数据包时需频繁调用系统而导致的资源消耗大的问 题, 目前尚未提出有效的解决方案。 发明内容 本发明实施例提供了一种数据包的处理方法、 装置及服务器, 以至少解决上述问 题。 根据本发明实施例的一个方面, 提供了一种数据包的处理方法, 包括: 协议栈响 应批量接收数据包的请求, 通过操作系统的内核调试机制接收多个数据包; 在所述多 个数据包的数量大于预设的批量阈值后, 返回所述多个数据包。 优选地, 通过所述操作系统的内核调试机制接收所述多个数据包包括: 通过所述 操作系统的内核提供的 jprobe机制接收所述多个数据包。 优选地, 通过所述操作系统的内核提供的所述 jprobe机制接收所述多个数据包包 括: 利用 jprobe的打点方法, 在所述协议栈的收包接口中增加批量接收数据包函数; 调用所述批量接收数据包函数, 接收所述多个数据包。 优选地, 所述协议栈响应所述批量接收数据包的请求包括: 所述协议栈响应用户 进程的批量接收数据包的请求。 优选地, 在所述多个数据包的数量大于所述预设的批量阈值后, 返回所述多个数 据包包括: 判断内核态的接收队列中接收到的所述多个数据包的数量是否大于所述预 设的批量阈值; 在所述多个数据包的数量大于所述预设的批量阈值的情况下, 将所述 内核态的接收队列中的多个数据包拷贝到用户态的数据缓冲区, 其中, 所述用户态与 所述用户进程相应, 所述内核态与所述协议栈相应。 根据本发明实施例的另一个方面,提供了一种数据包的处理装置,位于协议栈上, 包括: 控制模块, 设置为响应批量获取数据包的请求, 通过操作系统的内核调试机制 接收多个数据包; 返回模块,设置为在所述多个数据包的数量大于预设的批量阈值后, 返回所述多个数据包。 优选地, 所述控制模块还设置为通过所述操作系统的内核提供的 jprobe机制接收 所述多个数据包。 优选地, 所述控制模块包括: 设置单元, 设置为利用 jprobe的打点方法, 在所述 协议栈的收包接口中增加批量接收数据包函数; 接收单元, 设置为调用所述批量接收 数据包函数, 接收所述多个数据包。 优选地, 所述控制模块还设置为响应用户进程的批量接收数据包的请求。 优选地, 所述返回模块包括: 判断单元, 设置为判断内核态的接收队列中接收到 的所述多个数据包的数量是否大于所述预设的批量阈值; 拷贝单元, 设置为在所述多 个数据包的数量大于所述预设的批量阈值的情况下, 将所述内核态的接收队列中的多 个数据包拷贝到用户态的数据缓冲区, 其中, 所述用户态与所述用户进程相应, 所述 内核态与所述协议栈相应。 根据本发明实施例的又一个方面, 提供了一种服务器, 包括协议栈, 所述协议栈 包括上述任一项所述的装置。 通过本发明实施例, 采用协议栈响应批量接收数据包的请求, 通过操作系统的内 核调试机制接收多个数据包, 在多个数据包的数量大于预设的批量阈值后, 返回多个 数据包, 解决了相关技术中协议栈资源消耗大的问题, 进而达到了减轻资源消耗的效 果。 附图说明 此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一部分, 本发 明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的不当限定。 在附图 中: 图 1是根据相关技术的接收数据包的方法的流程图; 图 la是根据本发明实施例的数据包处理方法的流程图; 图 2是根据本发明实施例的数据包处理装置的结构示意图一; 图 3是根据本发明实施例的数据包处理装置的结构示意图二; 图 4是根据本发明实施例的数据包处理装置的结构示意图三; 图 5是根据本发明实施例的服务器的结构示意图; 图 6是根据本发明优选实施例的数据包处理方法一的流程图; 以及 图 7是根据本发明优选实施例的数据包处理方法二的流程图。 具体实施方式 下文中将参考附图并结合实施例来详细说明本发明实施例。 需要说明的是, 在不 冲突的情况下, 本申请中的实施例及实施例中的特征可以相互组合。 本发明实施例提供了一种数据包的处理方法,图 la是根据本发明实施例的数据包 处理方法的流程图, 如图 la所示, 该方法包括以下步骤: 步骤 S102, 协议栈响应批量接收数据包的请求, 通过操作系统的内核调试机制接 收多个数据包; 步骤 S104, 在多个数据包的数量大于预设的批量阈值后, 返回多个数据包。 通过上述步骤, 改变了相关技术中用户进程每次接收一个数据包都需要调用操作 系统的协议栈一次的做法, 解决了相关技术中用户进程获取数据包时需频繁调用系统 而导致的资源消耗大的问题, 具有减轻资源消耗的有益效果。 在本发明实施例的一个优选实施方式中, 通过操作系统的内核调试机制获取多个 数据包的步骤可以包括: 通过操作系统的内核提供的 jprobe机制接收多个数据包。 通 过上述步骤可以不修改现有协议栈结构、 用户态代码使用标准 socket编程的情况下, 通过内核提供的 jprobe机制实现高效批量收包的方法, 即可以有效减少系统调用, 提 高收包性能, 同时有效降低代码的修改量。 在本发明实施例的一个优选实施方式中, 通过所述操作系统的内核提供的所述 jprobe机制接收所述多个数据包的步骤可以包括: 利用 jprobe的打点方法, 在协议栈 的收包接口中增加批量接收数据包函数; 调用批量接收数据包函数,接收多个数据包。 通过上述步骤, 可以无需修改内核代码, 灵活地增加内核处理流程, 并且方便快捷、 影响较小。 在本发明实施例的一个优选实施方式中, 在多个数据包的数量大于预设的批量阈 值后, 将多个数据包返回给用户进程的步骤可以包括: 协议栈判断内核态的接收队列 中接收到的多个数据包的数量是否大于预设的批量阈值, 在多个数据包的数量是否大 于所述预设的批量阈值的情况下, 将内核态的接收队列中的多个数据包拷贝到用户态 的数据缓冲区, 其中, 用户态与用户进程相应, 内核态与协议栈相应。 通过上述步骤, 提高了接收数据包的效率, 将内核态、 用户态切换的次数降低到 l/n, 其中, n是接收 的数据包的数量。 在本发明实施例的一个优选实施方式中, 该操作系统可以是 Linux系统, 数据包 可以是流媒体数据包。 当然, 在其他的实施例中, 也可能是其他操作系统, 比如安卓 系统, 数据包也可能是其他类型的数据包, 比如移动终端的语音通信的数据包。 TECHNICAL FIELD The present invention relates to the field of communications, and in particular to a method, an apparatus, and a server for processing a data packet. BACKGROUND In a streaming media server application based on a Linux operating system, a code stream needs to be forwarded. In this process, a data stream is received, and a received data message occupies a large amount of CPU resources, thereby improving the receiving performance and directly improving the server. Processing performance. 1 is a flowchart of a method for receiving a data packet according to the related art. In the related art, for each audio stream, a network socket is required to invoke a User Data Protocol (UDP) packet. The receiving interface receives data from the protocol stack. Each time a user process receives a data packet, it needs to use a system call. Each time the system call needs to be switched from the user state to the kernel state, the system call returns, and then the kernel state is switched to the user state. In the case that the streaming media server is heavily loaded, a large amount of data copying and context switching operations are triggered, which greatly consumes the CPU resources of the system and reduces the processing capability of the system. It can be seen from the above process that in the related art, when the user process receives each data packet, the system needs to be called once to enable the system to receive the data packet, thereby causing frequent system calls, greatly consuming CPU resources, and thereby reducing the performance of the entire system. Reduce the quality of the entire streaming service. In view of the problem that the resource consumption caused by the frequent calling of the system when the user process acquires the data packet in the related art, an effective solution has not been proposed yet. SUMMARY OF THE INVENTION Embodiments of the present invention provide a method, an apparatus, and a server for processing a data packet to solve at least the foregoing problems. According to an aspect of the embodiments of the present invention, a method for processing a data packet is provided, including: receiving, by a protocol stack, a request for receiving a data packet in batches, receiving a plurality of data packets through a kernel debugging mechanism of an operating system; After the number of packets is greater than the preset batch threshold, the multiple packets are returned. Advantageously, receiving the plurality of data packets by the kernel debugging mechanism of the operating system comprises: receiving the plurality of data packets by a jprobe mechanism provided by a kernel of the operating system. Preferably, receiving, by the jprobe mechanism provided by the kernel of the operating system, the plurality of data packets comprises: adding a batch receiving data packet function to a receiving interface of the protocol stack by using a jprobe management method; The batch receiving packet function receives the plurality of data packets. Preferably, the request by the protocol stack to receive the data packet in batch includes: the protocol stack responding to the request of the user process for receiving the data packet in batches. Preferably, after the number of the multiple data packets is greater than the preset batch threshold, returning the multiple data packets includes: determining whether the number of the multiple data packets received in a receive queue of a kernel state is If the number of the plurality of data packets is greater than the preset batch threshold, copying the plurality of data packets in the receive queue of the kernel state to the data of the user state. a buffer, wherein the user state corresponds to the user process, and the kernel state corresponds to the protocol stack. According to another aspect of the embodiments of the present invention, a processing apparatus for a data packet is provided on a protocol stack, including: a control module, configured to receive a plurality of requests for obtaining a data packet in batches, and receive multiple by a kernel debugging mechanism of an operating system a data packet; a return module, configured to return the plurality of data packets after the number of the plurality of data packets is greater than a preset batch threshold. Preferably, the control module is further configured to receive the plurality of data packets by a jprobe mechanism provided by a kernel of the operating system. Preferably, the control module includes: a setting unit configured to increase a batch receiving data packet function in a receiving interface of the protocol stack by using a jprobe management method; and a receiving unit configured to invoke the batch receiving data packet function Receiving the plurality of data packets. Preferably, the control module is further configured to receive a request for a data packet in response to a batch of user processes. Preferably, the returning module includes: a determining unit, configured to determine whether the number of the plurality of data packets received in the receiving queue of the kernel state is greater than the preset batch threshold; the copying unit is set to be in the If the number of the plurality of data packets is greater than the preset batch threshold, copying the plurality of data packets in the receive queue of the kernel state to the data buffer of the user state, where the user state is Corresponding to the user process, the kernel state corresponds to the protocol stack. According to still another aspect of the embodiments of the present invention, a server is provided, including a protocol stack, where the protocol stack includes the apparatus described in any one of the above. According to the embodiment of the present invention, the protocol stack is configured to receive multiple data packets in response to the batch request, and receive multiple data packets through the kernel debugging mechanism of the operating system, and return multiple after the number of multiple data packets is greater than a preset batch threshold. The data packet solves the problem that the protocol stack resource consumption in the related art is large, thereby achieving the effect of reducing resource consumption. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are set to illustrate,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, In the drawings: FIG. 1 is a flowchart of a method of receiving a data packet according to the related art; FIG. 1a is a flowchart of a data packet processing method according to an embodiment of the present invention; FIG. 2 is a packet processing according to an embodiment of the present invention. FIG. 3 is a schematic structural diagram of a data packet processing apparatus according to an embodiment of the present invention; FIG. 4 is a schematic structural diagram 3 of a data packet processing apparatus according to an embodiment of the present invention; FIG. FIG. 6 is a flowchart of a packet processing method 1 according to a preferred embodiment of the present invention; and FIG. 7 is a flowchart of a packet processing method 2 according to a preferred embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that the embodiments in the present application and the features in the embodiments may be combined with each other without conflict. The embodiment of the present invention provides a method for processing a data packet, and FIG. 1a is a flowchart of a data packet processing method according to an embodiment of the present invention. As shown in FIG. 1a, the method includes the following steps: Step S102, the protocol stack responds to the batch. Receiving a request for a data packet, receiving a plurality of data packets through a kernel debugging mechanism of the operating system; Step S104: After the number of the plurality of data packets is greater than a preset batch threshold, returning the plurality of data packets. Through the above steps, the method of calling the operating system protocol stack once every time a user process receives a data packet in the related art is changed, which solves the problem that the user process needs to frequently call the system when the user process acquires the data packet in the related art. The problem has the beneficial effect of reducing resource consumption. In a preferred embodiment of the embodiment of the present invention, the step of acquiring a plurality of data packets by using a kernel debugging mechanism of the operating system may include: receiving a plurality of data packets by using a jprobe mechanism provided by a kernel of the operating system. Through the above steps, the existing protocol stack structure and the user state code can be used to implement the efficient batch collection by using the jprobe mechanism provided by the kernel without modifying the existing protocol stack structure, and the method can effectively reduce the system call and improve the receiving performance. Effectively reduce the amount of code modifications. In a preferred embodiment of the present invention, the step of receiving the plurality of data packets by using the jprobe mechanism provided by a kernel of the operating system may include: using a jprobe management method, and a receiving interface of the protocol stack Increase the batch receive packet function; call the batch receive packet function to receive multiple packets. Through the above steps, the kernel processing flow can be flexibly increased without modifying the kernel code, and it is convenient, quick, and less influential. In a preferred embodiment of the present invention, after the number of the plurality of data packets is greater than the preset batch threshold, the step of returning the multiple data packets to the user process may include: determining, by the protocol stack, the kernel-state receiving queue Whether the number of received multiple data packets is greater than a preset batch threshold, and if the number of the multiple data packets is greater than the preset batch threshold, copying multiple data packets in the kernel state receiving queue To the user-mode data buffer, where the user state corresponds to the user process, and the kernel state corresponds to the protocol stack. Through the above steps, the efficiency of receiving the data packet is improved, and the number of kernel state and user state switching is reduced to l/n, where n is the number of received data packets. In a preferred embodiment of the embodiment of the present invention, the operating system may be a Linux system, and the data packet may be a streaming media data packet. Of course, in other embodiments, other operating systems, such as Android, may also be other types of data packets, such as data packets for voice communication of mobile terminals.
在本实施例中还提供了数据包的处理装置, 该装置设置为实现上述实施例及优选 实施方式, 已经进行过说明的不再赘述。 如以下所使用的, 术语 "模块"可以实现预 定功能的软件和 /或硬件的组合。 尽管以下实施例所描述的装置较佳地以软件来实现, 但是硬件, 或者软件和硬件的组合的实现也是可能并被构想的。该装置位于协议栈上, 图 2是根据本发明实施例的数据包处理装置的结构示意图一, 如图 2所示, 该装置包 括: 控制模块 22, 设置为响应批量获取数据包的请求, 通过操作系统的内核调试机制 接收多个数据包; 返回模块 24, 设置为在多个数据包的数量大于预设的批量阈值后, 返回多个数据 包。 优选地,控制模块 22还设置为通过操作系统的内核提供的 jprobe机制接收多个数 据包。 优选地,如图 3所示,控制模块 22还可以包括:设置单元 222,设置为利用 jprobe 的打点方法, 在协议栈的收包接口中增加批量接收数据包函数; 接收单元 224, 设置 为调用批量接收数据包函数, 接收多个数据包。 优选地, 如图 4所示, 返回模块 24还可以包括: 判断单元 242, 设置为判断内核 态的接收队列中接收到的多个数据包的数量是否大于预设的批量阈值; 拷贝单元 244, 设置为在多个数据包的数量大于预设的批量阈值的情况下, 将内核态的接收队列中的 多个数据包拷贝到用户态的数据缓冲区, 其中, 用户态与用户进程相应, 内核态与协 议栈相应。 The processing device of the data packet is also provided in the embodiment, and the device is configured to implement the above-mentioned embodiments and preferred embodiments, and the description thereof has been omitted. As used hereinafter, the term "module" may implement a combination of software and/or hardware of a predetermined function. Although the apparatus described in the following embodiments is preferably implemented in software, hardware, or a combination of software and hardware, is also possible and conceivable. The device is located on the protocol stack. FIG. 2 is a schematic structural diagram 1 of a data packet processing apparatus according to an embodiment of the present invention. As shown in FIG. 2, the apparatus includes: The control module 22 is configured to receive a plurality of data packets through a kernel debugging mechanism of the operating system in response to the request for obtaining the data packet in batches, and return to the module 24, and set to return more after the number of the plurality of data packets is greater than a preset batch threshold. Packets. Preferably, control module 22 is further configured to receive a plurality of data packets through a jprobe mechanism provided by a kernel of the operating system. Preferably, as shown in FIG. 3, the control module 22 may further include: a setting unit 222 configured to add a batch receiving data packet function in the receiving interface of the protocol stack by using a jprobe management method; the receiving unit 224 is set to be called Receive packet functions in batches and receive multiple packets. Preferably, as shown in FIG. 4, the returning module 24 may further include: a determining unit 242, configured to determine whether the number of the plurality of data packets received in the receiving queue of the kernel state is greater than a preset batch threshold; the copying unit 244, Set to copy multiple packets in the kernel-state receive queue to the user-mode data buffer when the number of multiple data packets is greater than the preset batch threshold, where the user state corresponds to the user process, the kernel The state corresponds to the protocol stack.
本发明实施例提供了一种服务器, 图 5是根据本发明实施例的服务器的结构示意 图, 如图 5所示, 该服务器包括协议栈 52, 协议栈 52包括上述实施例提供的数据包 处理装置 522。 The embodiment of the present invention provides a server, and FIG. 5 is a schematic structural diagram of a server according to an embodiment of the present invention. As shown in FIG. 5, the server includes a protocol stack 52, and the protocol stack 52 includes the data packet processing apparatus provided by the foregoing embodiment. 522.
以下结合优选实施例进行说明, 以下优选实施例结合了上述实施例及其优选实施 方式。 图 6是根据本发明优选实施例的数据包处理方法一的流程图, 该方法基于协议栈 层处理, 如图 6所示, 该方法包括以下步骤: 步骤 S602, 利用 jprobe的打点方法, 批量接收数据包。 使用 linux系统提供的内核调试机制 jprobe的打点方法, 在协议栈的收包接口中 插入增加的批量接收数据包函数, 该函数用于批量接收数据包, 比如, 假设 Linux系 统所在的服务器是流媒体服务器, 则通过 jprobe调用批量接收数据包函数后, 流媒体 服务器便会从其他媒体资源服务器批量接收数据包, 当然, 如果该媒体资源在流媒体 服务器本地,调用批量接收数据包函数后,流媒体服务器便会从本地获取多个数据包。 通过上述方法无需修改 Linux操作系统的内核代码, 可以灵活地增加内核处理流程, 使得处理变得方便快捷, 影响较小。 优选地, 步骤 S602可以具体包括如下步骤: A, 注册 jprobe探测点, 在注册探测点的时候, 对被探测函数的指令码进行替换, 替换为 int 3的指令码; Hereinafter, the following description will be made in conjunction with the preferred embodiments, and the following preferred embodiments incorporate the above-described embodiments and preferred embodiments thereof. FIG. 6 is a flowchart of a method for processing a data packet according to a preferred embodiment of the present invention. The method is based on protocol stack layer processing. As shown in FIG. 6, the method includes the following steps: Step S602: Using jprobe's management method, batch receiving data pack. Using the kernel debugging mechanism provided by the Linux system, jprobe's management method inserts an increased batch receiving packet function into the receiving interface of the protocol stack. This function is used to receive data packets in batches. For example, suppose the server where the Linux system is located is streaming media. After the server receives the batch receiving packet function through jprobe, the streaming server receives the data packet from other media resource servers in batches. Of course, if the media resource is streaming media The server local, after calling the batch receive packet function, the streaming server will get multiple packets locally. Through the above method, it is not necessary to modify the kernel code of the Linux operating system, and the kernel processing flow can be flexibly increased, so that the processing becomes convenient and quick, and the influence is small. Preferably, step S602 may specifically include the following steps: A, registering a jprobe probe point, and replacing the instruction code of the detected function with the instruction code of int 3 when registering the probe point;
B, 在执行 int 3的异常执行中, 通过通知链的方式调用 jprobe的异常处理函数; B, in the execution of the exception of int 3, call jprobe's exception handling function by means of a notification chain;
C, 在 jprobe的异常处理函数中, 判断是否存在 pre_handler钩子函数, 其中, 钩 子函数相当于批量接收数据包函数。 如果存在钩子函数, 则继续钩子函数; D, 执行钩子函数后, 准备进入单步调试, 通过设置 EFLAGS寄存器中的追踪标 志位 (Trap Flag, 简称 TF), 把异常返回的地址修改为保存的原指令码; C, in jprobe's exception handler, determine whether there is a pre_handler hook function, where the hook function is equivalent to batch receiving packet functions. If there is a hook function, continue the hook function; D, after executing the hook function, prepare to enter the single-step debugging, and modify the address returned by the exception to the saved original by setting the trace flag (Trap Flag, TF for short) in the EFLAGS register. Instruction code
E, 代码返回, 执行原有指令, 执行结束后触发单步异常; E, the code returns, the original instruction is executed, and the single step exception is triggered after the execution ends;
F, 在单步异常的处理中, 清除单步标志, 执行 post—handler流程, 并最终返回; 步骤 S604, 返回多个数据包。 当内核态的 skb接收队列所接收到的数据包达到预定的批量阈值时, 将内核态的 套接字缓存 (socket buffer,简称 skb)接收队列中的数据包批量地拷贝到用户态的数据缓 冲区。 通过上述步骤, 提高了接收数据包的效率, 将内核态、 用户态切换的次数降低 至 lj l/n, 其中, n是接收到的数据包个数。 F, in the processing of the single-step exception, clear the single-step flag, execute the post-handler process, and finally return; Step S604, return multiple data packets. When the data packet received by the skb receiving queue in the kernel state reaches a predetermined batch threshold, the kernel buffer of the socket buffer (skb) receiving queue is copied to the data buffer of the user state in batches. Area. Through the above steps, the efficiency of receiving the data packet is improved, and the number of kernel state and user state switching is reduced to lj l/n, where n is the number of received data packets.
图 7是根据本发明优选实施例的数据包处理方法二的流程图。 本实施例中, 服务 器可以包括用户进程、 Linux内核空间和硬件设备。在硬件设备与用户进程之间是 Linux 内核空间, 在该内核空间内的协议栈收包接口中增加钩子函数, 即批量接收数据包函 数, 进行批量数据包的接收, 在接收到指定数量的数据包后, 向用户态批量返回数据 包。 如图 7所示, 该方法包括以下步骤: 步骤 S702, 用户进程向协议栈发送批量接收数据包请求。 用户进程使用标准协议栈创建 socket 套接字并使用标准的接收收据包接口 recvmsgO进行数据包的接收。用户进程在 struct msghdr收包结构的 msg_name中指定 批量接收数据包的个数, 其中, recvmsgO函数相当于批量接收数据包请求, 指定的批 量接收数据包的个数相当于预设的批量阈值。 步骤 S704, 协议栈批量接收数据包。 协议栈通过 jprobe插入 judp_recvmsg收包处理函数,每次接收一批数据包。其中, judp_recvmsg收包处理函数相当于批量接收数据包函数。 步骤 S706, 将接收到的数据包存放在接收队列中。 协议栈将批量接收到的数据包存放在 skb接收队列中。 步骤 S708, 将接收队列中的数据包拷贝到用户态的数据缓冲区中。 调用 netif_reCV_skb函数, 将接收队列中的数据包拷贝到用户态的数据缓冲区中。 本实施例中, 每次用户态到内核态切换可以接收一批数据包, 有效减少系统调用 的开销。 从以上的描述中,可以看出,本发明实施例实现了如下技术效果:利用原有的 Linux 网络协议栈, 通过内核调试机制实现批量数据包的接收, 从而使得内核模块的加载和 卸载都不会影响 Linux内核原有的网络协议栈。 显然, 本领域的技术人员应该明 A, 上述的本发明的各模块或各步骤可以用通用 的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布在多个计算装置所 组成的网络上, 可选地, 它们可以用计算装置可执行的程序代码来实现, 从而, 可以 将它们存储在存储装置中由计算装置来执行, 并且在某些情况下, 可以以不同于此处 的顺序执行所示出或描述的步骤, 或者将它们分别制作成各个集成电路模块, 或者将 它们中的多个模块或步骤制作成单个集成电路模块来实现。 这样, 本发明不限制于任 何特定的硬件和软件结合。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的 任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。 工业实用性 如上所述, 本发明实施例提供的一种数据包的处理方法、 装置及服务器具有 以下有益效果: 利用原有的 Linux网络协议栈, 通过内核调试机制实现批量数据包 的接收,从而使得内核模块的加载和卸载都不会影响 Linux内核原有的网络协议栈。 7 is a flow chart of a second method of data packet processing in accordance with a preferred embodiment of the present invention. In this embodiment, the server may include a user process, a Linux kernel space, and a hardware device. Between the hardware device and the user process is a Linux kernel space, and a hook function is added to the protocol stack receiving interface in the kernel space, that is, a batch receiving packet function, receiving a bulk data packet, and receiving a specified amount of data. After the packet, the packet is returned to the user mode in bulk. As shown in FIG. 7, the method includes the following steps: Step S702: A user process sends a bulk receiving data packet request to a protocol stack. The user process creates a socket socket using the standard protocol stack and receives the data packet using the standard receive receipt packet interface recvmsgO. The user process is specified in the msg_name of the struct msghdr collection structure. The number of received packets in batches, where the recvmsgO function is equivalent to receiving packets in batches, and the number of received packets received in batches is equivalent to a preset batch threshold. Step S704, the protocol stack receives the data packet in batches. The protocol stack inserts the judp_recvmsg collection and processing function through jprobe, receiving a batch of data packets each time. Among them, judp_recvmsg receiving packet processing function is equivalent to batch receiving packet function. Step S706, storing the received data packet in a receiving queue. The protocol stack stores the packets received in batches in the skb receive queue. Step S708, copying the data packet in the receiving queue to the data buffer in the user state. Call the n e tif_ reCV _skb function to copy the packets in the receive queue to the data buffer in the user mode. In this embodiment, each time the user state to the kernel mode switch can receive a batch of data packets, effectively reducing the overhead of the system call. From the above description, it can be seen that the embodiment of the present invention achieves the following technical effects: using the original Linux network protocol stack, the bulk data packet is received through the kernel debugging mechanism, so that the loading and unloading of the kernel module are not performed. Will affect the original network protocol stack of the Linux kernel. Obviously, those skilled in the art should understand that the above modules or steps of the present invention can be implemented by a general-purpose computing device, which can be concentrated on a single computing device or distributed among multiple computing devices. On the network, optionally, they may be implemented by program code executable by the computing device, such that they may be stored in the storage device by the computing device and, in some cases, may be different from The steps shown or described are performed sequentially, or they are separately fabricated into individual integrated circuit modules, or a plurality of modules or steps thereof are fabricated into a single integrated circuit module. Thus, the invention is not limited to any specific combination of hardware and software. The above is only the preferred embodiment of the present invention, and is not intended to limit the present invention, and various modifications and changes can be made to the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and scope of the present invention are intended to be included within the scope of the present invention. Industrial Applicability As described above, a data packet processing method, apparatus, and server provided by an embodiment of the present invention have the following beneficial effects: Using the original Linux network protocol stack, the bulk data packet is received through the kernel debugging mechanism, thereby The kernel module loading and unloading will not affect the original network protocol stack of the Linux kernel.

Claims

权 利 要 求 书 Claims
1. 一种数据包的处理方法, 包括: 协议栈响应批量接收数据包的请求, 通过操作系统的内核调试机制接收多 个数据包; A method for processing a data packet, comprising: a protocol stack responding to a request for receiving a data packet in batches, and receiving a plurality of data packets through a kernel debugging mechanism of an operating system;
在所述多个数据包的数量大于预设的批量阈值后, 返回所述多个数据包。  After the number of the plurality of data packets is greater than a preset batch threshold, the plurality of data packets are returned.
2. 根据权利要求 1所述的方法, 其中, 通过所述操作系统的内核调试机制接收所 述多个数据包包括: 通过所述操作系统的内核提供的 jprobe机制接收所述多个 数据包。 2. The method of claim 1, wherein receiving the plurality of data packets by a kernel debugging mechanism of the operating system comprises: receiving the plurality of data packets by a jprobe mechanism provided by a kernel of the operating system.
3. 根据权利要求 2所述的方法,其中,通过所述操作系统的内核提供的所述 jprobe 机制接收所述多个数据包包括: 3. The method of claim 2, wherein receiving the plurality of data packets by the jprobe mechanism provided by a kernel of the operating system comprises:
利用 jprobe的打点方法, 在所述协议栈的收包接口中增加批量接收数据包 函数;  Using jprobe's management method, adding a batch receiving data packet function to the receiving interface of the protocol stack;
调用所述批量接收数据包函数, 接收所述多个数据包。  The batch receiving packet function is called to receive the plurality of data packets.
4. 根据权利要求 3所述的方法, 其中, 所述协议栈响应所述批量接收数据包的请 求包括: 所述协议栈响应用户进程的批量接收数据包的请求。 The method according to claim 3, wherein the request of the protocol stack to receive the data packet in batch includes: the protocol stack responding to a request of a user process for receiving a data packet in batches.
5. 根据权利要求 4所述的方法, 其中, 在所述多个数据包的数量大于所述预设的 批量阈值后, 返回所述多个数据包包括: 5. The method according to claim 4, wherein, after the number of the plurality of data packets is greater than the preset batch threshold, returning the plurality of data packets includes:
判断内核态的接收队列中接收到的所述多个数据包的数量是否大于所述预 设的批量阈值; 在所述多个数据包的数量大于所述预设的批量阈值的情况下, 将所述内核 态的接收队列中的多个数据包拷贝到用户态的数据缓冲区, 其中, 所述用户态 与所述用户进程相应, 所述内核态与所述协议栈相应。  Determining whether the number of the plurality of data packets received in the receive queue of the kernel mode is greater than the preset batch threshold; if the number of the multiple data packets is greater than the preset batch threshold, The plurality of data packets in the receive queue of the kernel state are copied to the data buffer of the user state, wherein the user state corresponds to the user process, and the kernel state corresponds to the protocol stack.
6. 一种数据包的处理装置, 位于协议栈上, 包括: 控制模块, 设置为响应批量获取数据包的请求, 通过操作系统的内核调试 机制接收多个数据包; A processing device for a data packet, located on a protocol stack, comprising: a control module, configured to receive a plurality of data packets through a kernel debugging mechanism of an operating system in response to a request for obtaining a data packet in batches;
返回模块, 设置为在所述多个数据包的数量大于预设的批量阈值后, 返回 所述多个数据包。 根据权利要求 6所述的装置, 其中, 所述控制模块还设置为通过所述操作系统 的内核提供的 jprobe机制接收所述多个数据包。 根据权利要求 7所述的装置, 其中, 所述控制模块包括: 设置单元, 设置为利用 jprobe的打点方法, 在所述协议栈的收包接口中增 加批量接收数据包函数; Returning to the module, the method is configured to return the multiple data packets after the number of the multiple data packets is greater than a preset batch threshold. The apparatus according to claim 6, wherein the control module is further configured to receive the plurality of data packets by a jprobe mechanism provided by a kernel of the operating system. The device according to claim 7, wherein the control module comprises: a setting unit, configured to increase a batch receiving data packet function in a receiving interface of the protocol stack by using a jprobe management method;
接收单元, 设置为调用所述批量接收数据包函数, 接收所述多个数据包。 根据权利要求 6所述的装置, 其中, 所述控制模块还设置为响应用户进程的批 量接收数据包的请求。 根据权利要求 9所述的装置, 其中, 所述返回模块包括: 判断单元, 设置为判断内核态的接收队列中接收到的所述多个数据包的数 量是否大于所述预设的批量阈值;  The receiving unit is configured to invoke the batch receiving data packet function to receive the plurality of data packets. The apparatus of claim 6, wherein the control module is further configured to receive a request for a data packet in response to a batch of a user process. The apparatus according to claim 9, wherein the returning module comprises: a determining unit, configured to determine whether the number of the plurality of data packets received in a receiving queue of the kernel state is greater than the preset batch threshold;
拷贝单元, 设置为在所述多个数据包的数量大于所述预设的批量阈值的情 况下, 将所述内核态的接收队列中的多个数据包拷贝到用户态的数据缓冲区, 其中, 所述用户态与所述用户进程相应, 所述内核态与所述协议栈相应。  a copy unit, configured to copy, in a case where the number of the plurality of data packets is greater than the preset batch threshold, to copy a plurality of data packets in the receive queue of the kernel state to a data buffer of a user state, where The user state corresponds to the user process, and the kernel state corresponds to the protocol stack.
11. 一种服务器,包括协议栈,所述协议栈包括权利要求 6至 10中任一项所述的装 置。 A server comprising a protocol stack, the protocol stack comprising the apparatus of any one of claims 6 to 10.
PCT/CN2014/078563 2014-01-24 2014-05-27 Data packet processing method and device, and server WO2015109708A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410034940.2 2014-01-24
CN201410034940.2A CN104811391B (en) 2014-01-24 2014-01-24 Data packet processing method and device and server

Publications (1)

Publication Number Publication Date
WO2015109708A1 true WO2015109708A1 (en) 2015-07-30

Family

ID=53680730

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/078563 WO2015109708A1 (en) 2014-01-24 2014-05-27 Data packet processing method and device, and server

Country Status (2)

Country Link
CN (1) CN104811391B (en)
WO (1) WO2015109708A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110121114B (en) * 2018-02-07 2021-08-27 华为技术有限公司 Method for transmitting stream data and data transmitting apparatus
CN115687159B (en) * 2022-12-29 2023-03-21 飞腾信息技术有限公司 Debugging method, debugging device and computer readable storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080059699A1 (en) * 2006-09-06 2008-03-06 International Business Machines Corporation System and method of mirrored raid array write management
CN102185770A (en) * 2011-05-05 2011-09-14 汉柏科技有限公司 Multi-core-architecture-based batch message transmitting and receiving method
CN103391256A (en) * 2013-07-25 2013-11-13 武汉邮电科学研究院 Base station user plane data processing and optimizing method based on Linux system
CN103428108A (en) * 2013-08-07 2013-12-04 大唐移动通信设备有限公司 Data frame processing method and device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100464304C (en) * 2006-08-29 2009-02-25 飞塔信息科技(北京)有限公司 Device and method for realizing zero copy based on Linux operating system
CN101217464B (en) * 2007-12-28 2010-09-08 北京大学 UDP data package transmission method
CN101304373B (en) * 2008-06-25 2011-03-02 中兴通讯股份有限公司 Method and system for implementing high-efficiency transmission chunk data in LAN
CN101340574B (en) * 2008-08-04 2010-09-08 中兴通讯股份有限公司 Method and system realizing zero-copy transmission of stream media data
US8516509B2 (en) * 2011-02-08 2013-08-20 BlueStripe Software, Inc. Methods and computer program products for monitoring system calls using safely removable system function table chaining
CN102156662A (en) * 2011-02-14 2011-08-17 大唐移动通信设备有限公司 Method and equipment for processing data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080059699A1 (en) * 2006-09-06 2008-03-06 International Business Machines Corporation System and method of mirrored raid array write management
CN102185770A (en) * 2011-05-05 2011-09-14 汉柏科技有限公司 Multi-core-architecture-based batch message transmitting and receiving method
CN103391256A (en) * 2013-07-25 2013-11-13 武汉邮电科学研究院 Base station user plane data processing and optimizing method based on Linux system
CN103428108A (en) * 2013-08-07 2013-12-04 大唐移动通信设备有限公司 Data frame processing method and device

Also Published As

Publication number Publication date
CN104811391A (en) 2015-07-29
CN104811391B (en) 2020-04-21

Similar Documents

Publication Publication Date Title
US20190146855A1 (en) Modifying Application Behaviour
CN106161537B (en) Method, device and system for processing remote procedure call and electronic equipment
US10305813B2 (en) Socket management with reduced latency packet processing
US11563649B2 (en) NF service consumer restart detection using direct signaling between NFs
JP2013515293A (en) Method and apparatus for managing an operating system in an embedded system
US9621633B2 (en) Flow director-based low latency networking
WO2020114292A1 (en) Virtual switch handover method and apparatus, and host machine and storage medium
CN111190854A (en) Communication data processing method, device, equipment, system and storage medium
US10740161B2 (en) Broadcast message sending method and apparatus, and mobile terminal
WO2015109708A1 (en) Data packet processing method and device, and server
CN113641410A (en) Netty-based high-performance gateway system processing method and system
GB2515637A (en) Apparatus, systems, and methods for providing policy in network-based applications
WO2012065432A1 (en) Method for implementing timer in multi-core system and multi-core system
CN111314272B (en) Task processing method and device
WO2012126212A1 (en) Communication apparatus and method for interface layer of radio frequency identification device
US10372374B2 (en) System and method for providing input/output determinism for servers hosting remotely accessible storages
WO2016206399A1 (en) Communication equipment, device and software version upgrade method utilized in communication equipment
CN111367683A (en) Result obtaining method, device and equipment
US10235225B2 (en) Data processing system having messaging
US10320715B1 (en) Automated scaling of computing message architecture
JP2017046286A (en) Information processing apparatus, information processing method, and program
CN113472523A (en) User mode protocol stack message processing optimization method, system, device and storage medium
WO2014169689A1 (en) Method and device for filtering system events, terminal, and storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14879706

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14879706

Country of ref document: EP

Kind code of ref document: A1