技术领域Technical field
本发明涉及网络传输技术领域,尤其涉及一种网络数据传输方法、装置、计算机设备及计算机可读介质。The present invention relates to the field of network transmission technology, and in particular, to a network data transmission method, device, computer equipment and computer-readable medium.
背景技术Background technique
网络传输是计算机系统运行中不可或缺的一部分,而绝大多数应用软件使用的网络传输都基于TCP(Transport Control Protocol,传输控制协议)/UDP(User DataProtocol,用户数据报协议)网络协议提供的超时控制、错误重传、帧校验功能等。Network transmission is an integral part of the operation of computer systems, and the network transmission used by most application software is based on the TCP (Transport Control Protocol, Transmission Control Protocol)/UDP (User DataProtocol, User Datagram Protocol) network protocol. Timeout control, error retransmission, frame check function, etc.
传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793[1]定义。TCP旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。Transmission Control Protocol is a connection-oriented, reliable, byte stream-based transport layer communication protocol, defined by IETF's RFC 793 [1]. TCP is designed to accommodate a layered protocol hierarchy that supports multiple network applications. TCP is relied upon to provide reliable communication services between pairs of processes in a host computer connected to different but interconnected computer communication networks. TCP assumes that it can obtain simple, possibly unreliable datagram services from lower-level protocols. In principle, TCP should be able to operate on top of a variety of communications systems, from hardwired connections to packet-switched or circuit-switched networks.
用户数据报协议是一个简单的面向无连接的,不可靠的数据报的传输层(transport layer)协议,IETF RFC 768是UDP的正式规范。在TCP/IP模型中,UDP为网络层(network layer)以上和应用层(application layer)以下提供了一个简单的接口。UDP只提供数据的不可靠交付,它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份(所以UDP有时候也被认为是不可靠的数据报协议)。UDP在IP数据报的头部仅仅加入了复用和数据校验(字段)。由于缺乏可靠性,UDP应用一般必须允许一定量的丢包、出错和复制。The User Datagram Protocol is a simple transport layer protocol for connectionless, unreliable datagrams. IETF RFC 768 is the official specification of UDP. In the TCP/IP model, UDP provides a simple interface above the network layer and below the application layer. UDP only provides unreliable delivery of data. Once it sends the data sent by the application to the network layer, it does not retain data backup (so UDP is sometimes considered an unreliable datagram protocol). UDP only adds multiplexing and data verification (fields) to the header of the IP datagram. Due to this lack of reliability, UDP applications generally must tolerate a certain amount of packet loss, errors, and duplication.
但在某些特殊情况下,TCP/UDP协议并不能满足要求。比如计算机网络系统并不基于TCP/IP协议基础设施、网络协议需要零拷贝、需要自己的任务调度设计等。而TCP/UDP协议实现于Windows/Linux内核当中,无法进行个性化设计与优化,而在没有提供网络基础设施的情况下,实现一套可靠的传输协议是非常困难的。But in some special cases, the TCP/UDP protocol cannot meet the requirements. For example, computer network systems are not based on TCP/IP protocol infrastructure, network protocols require zero copy, and require their own task scheduling design, etc. The TCP/UDP protocol is implemented in the Windows/Linux kernel and cannot be customized and optimized. It is very difficult to implement a reliable transmission protocol without providing network infrastructure.
目前已经有几种能实现类似TCP协议可靠传输结构的结构,如KCP协议,QUIC协议等。但他们的结构仍然基于TCP/IP协议提供的流控制基础,尽管带来了一定的自由度,设计仍然受限于TCP/IP协议的自身逻辑。同时,不基于流控制的网络协议设计通常是为了进一步优化性能,抛弃不必要的网络协议特性,以加快网络数据包的内存调度、任务处理等。而以上协议由于是基于完整的TCP/IP协议基础设计,对于缺失特性支持表现并不优秀。There are already several structures that can achieve reliable transmission structures similar to TCP protocols, such as KCP protocol, QUIC protocol, etc. However, their structure is still based on the flow control foundation provided by the TCP/IP protocol. Although it brings a certain degree of freedom, the design is still limited by the own logic of the TCP/IP protocol. At the same time, the design of network protocols that are not based on flow control is usually to further optimize performance and discard unnecessary network protocol features to speed up memory scheduling, task processing, etc. of network data packets. Since the above protocols are based on the complete basic design of the TCP/IP protocol, their support for missing features is not excellent.
发明内容Contents of the invention
有鉴于此,本发明实施例的目的在于提出一种网络数据传输方法、装置、计算机设备及计算机可读介质,通过直接使用数据帧传输数据,提高了接收效率;通过协程调度结构,避免线程之间的锁开销;不基于流控制的数据传输,扩展了适用范围。In view of this, the purpose of embodiments of the present invention is to propose a network data transmission method, device, computer equipment and computer-readable medium, which improves reception efficiency by directly using data frames to transmit data; and avoids threads through a coroutine scheduling structure. lock overhead; data transmission that is not based on flow control expands the scope of application.
基于上述目的,本发明实施例的一方面提供了一种网络数据传输方法,该方法可以包括以下步骤:获取用户数据,并将所述用户数据转化成数据帧;将所述数据帧加入环链表中的空白环链表帧,并计算元数据信息;响应于接收到发送命令,则基于所述发送命令中的元数据信息获取对应的所述数据帧;以及将所述数据帧发送至接收端。Based on the above purpose, one aspect of the embodiment of the present invention provides a network data transmission method. The method may include the following steps: obtaining user data and converting the user data into a data frame; adding the data frame to a ring linked list in the blank ring linked list frame, and calculate the metadata information; in response to receiving the send command, obtain the corresponding data frame based on the metadata information in the send command; and send the data frame to the receiving end.
在一些实施方式中,本发明的方法还可以包括:响应于接收到所述接收端的确收消息,则基于所述确收消息中的元数据信息释放所述环链表中对应的所述数据帧。In some embodiments, the method of the present invention may further include: in response to receiving an acknowledgment message from the receiving end, releasing the corresponding data frame in the ring linked list based on the metadata information in the acknowledgment message. .
在一些实施方式中,本发明的方法还可以包括:将应用层读写操作与循环线程设置为协程调度。In some embodiments, the method of the present invention may further include: setting application layer read and write operations and loop threads as coroutine scheduling.
在一些实施方式中,将所述用户数据转化成数据帧可以包括:通过mmap将操作系统内核段地址指针映射到应用层内存地址。In some implementations, converting the user data into a data frame may include: mapping the operating system kernel segment address pointer to the application layer memory address through mmap.
在一些实施方式中,基于所述确收消息中的元数据信息释放所述环链表中对应的所述数据帧可以包括:通过下层设备的释放接口释放所述换链表中对应的所述数据帧。In some implementations, releasing the corresponding data frame in the ring linked list based on the metadata information in the acknowledgment message may include: releasing the corresponding data frame in the linked list through a release interface of a lower-layer device. .
本发明实施例的另一方面,本发明还提供了一种网络数据传输装置,该装置可以包括:第一模块,所述第一模块可以配置用于获取用户数据,并将所述用户数据转化成数据帧;第二模块,所述第二模块可以配置用于将所述数据帧加入环链表中的空白环链表帧,并计算元数据信息;第三模块,所述第三模块可以配置用于响应于接收到发送命令,则基于所述发送命令中的元数据信息获取对应的所述数据帧;以及第四模块,所述第四模块可以配置用于将所述数据帧发送至接收端。In another aspect of the embodiments of the present invention, the present invention also provides a network data transmission device. The device may include: a first module, and the first module may be configured to obtain user data and convert the user data into into a data frame; a second module, the second module can be configured to add the data frame to a blank ring linked list frame in the ring linked list, and calculate metadata information; a third module, the third module can be configured to use In response to receiving the send command, obtaining the corresponding data frame based on the metadata information in the send command; and a fourth module, the fourth module may be configured to send the data frame to the receiving end .
在一些实施方式中,本发明的装置还可以包括第五模块,所述第五模块可以配置用于:响应于接收到所述接收端的确收消息,则基于所述确收消息中的元数据信息释放所述环链表中对应的所述数据帧。In some embodiments, the device of the present invention may further include a fifth module, which may be configured to: in response to receiving an acknowledgment message from the receiving end, based on the metadata in the acknowledgment message The information releases the corresponding data frame in the ring linked list.
在一些实施方式中,本发明的装置还包括第六模块,所述第六模块可以配置用于:将应用层读写操作与循环线程设置为协程调度。In some embodiments, the device of the present invention further includes a sixth module, which can be configured to: set application layer read and write operations and loop threads as coroutine scheduling.
在一些实施方式中,第一模块可以进一步配置用于:通过mmap将操作系统内核段地址指针映射到应用层内存地址。In some implementations, the first module may be further configured to: map the operating system kernel segment address pointer to the application layer memory address through mmap.
在一些实施方式中,第五模块可以进一步配置用于:通过下层设备的释放接口释放所述换链表中对应的所述数据帧。In some implementations, the fifth module may be further configured to: release the corresponding data frame in the chain swap list through a release interface of the lower layer device.
本发明实施例的再一方面,本发明还提供了一种计算机设备,所述计算机设备可以包括:至少一个处理器;以及存储器,该存储器可以存储有可在处理器上运行的计算机指令,该计算机指令由处理器执行时可以实现方法的步骤包括:获取用户数据,并将所述用户数据转化成数据帧;将所述数据帧加入环链表中的空白环链表帧,并计算元数据信息;响应于接收到发送命令,则基于所述发送命令中的元数据信息获取对应的所述数据帧;以及将所述数据帧发送至接收端。In yet another aspect of the embodiments of the present invention, the present invention also provides a computer device. The computer device may include: at least one processor; and a memory, which may store computer instructions that can be run on the processor. When the computer instructions are executed by the processor, the steps of the method may include: obtaining user data and converting the user data into a data frame; adding the data frame to a blank ring linked list frame in the ring linked list, and calculating metadata information; In response to receiving the send command, obtain the corresponding data frame based on the metadata information in the send command; and send the data frame to the receiving end.
在一些实施方式中,计算机指令由处理器执行时可以实现方法的步骤还可以包括:响应于接收到所述接收端的确收消息,则基于所述确收消息中的元数据信息释放所述环链表中对应的所述数据帧。In some embodiments, when the computer instructions are executed by a processor, the steps of the method may further include: in response to receiving an acknowledgment message from the receiving end, releasing the ring based on the metadata information in the acknowledgment message. The corresponding data frame in the linked list.
在一些实施方式中,计算机指令由处理器执行时可以实现方法的步骤还可以包括:将应用层读写操作与循环线程设置为协程调度。In some embodiments, the steps of the method that can be implemented when the computer instructions are executed by the processor may further include: setting application layer read and write operations and loop threads as coroutine scheduling.
在一些实施方式中,将所述用户数据转化成数据帧可以包括:通过mmap将操作系统内核段地址指针映射到应用层内存地址。In some implementations, converting the user data into a data frame may include: mapping the operating system kernel segment address pointer to the application layer memory address through mmap.
在一些实施方式中,基于所述确收消息中的元数据信息释放所述环链表中对应的所述数据帧可以包括:通过下层设备的释放接口释放所述换链表中对应的所述数据帧。In some implementations, releasing the corresponding data frame in the ring linked list based on the metadata information in the acknowledgment message may include: releasing the corresponding data frame in the linked list through a release interface of a lower-layer device. .
本发明实施例的再一方面,本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以存储有被处理器执行时实现如上方法步骤的计算机程序。In yet another aspect of the embodiments of the present invention, the present invention also provides a computer-readable storage medium, which can store a computer program that implements the above method steps when executed by a processor.
本发明至少可以具有以下有益技术效果:利用直接使用帧数据的运行方式,改变了原始kcp协议只支持tcp/ip协议栈的限制,同时由于使用底层帧直接操作数据,可以省去多次内存拷贝与校验过程,优化了发送/接收效率;同时,借用协程结构,使用过程中避免了线程之间的锁开销,也减轻了开发时的开发负担,用户仅需调用创建协程、操作、yield、完成流程的简单逻辑即可开发出高效、无锁的io收发请求逻辑;最后,由于将tcp/ip协议栈剥离出kcp协议,以及省去了kcp协议中申请帧/释放帧的运行流程,修改后的逻辑可以运行于资源紧张的嵌入式系统,或者对资源管理要求严格的大型程序当中,扩展了适用范围。The present invention can at least have the following beneficial technical effects: by using the operating mode of directly using frame data, it changes the limitation that the original kcp protocol only supports the tcp/ip protocol stack. At the same time, because the underlying frame is used to directly operate data, multiple memory copies can be omitted. and verification process, optimizing the sending/receiving efficiency; at the same time, borrowing the coroutine structure avoids the lock overhead between threads during use, and also reduces the development burden during development. Users only need to call the creation coroutine, operation, Yield, complete the simple logic of the process to develop efficient, lock-free io transceiver request logic; finally, because the tcp/ip protocol stack is stripped out of the kcp protocol, and the application frame/release frame running process in the kcp protocol is omitted , the modified logic can run in embedded systems with tight resources, or large programs with strict resource management requirements, expanding the scope of application.
附图说明Description of the drawings
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。In order to explain the embodiments of the present invention or the technical solutions in the prior art more clearly, the drawings needed to be used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings in the following description are only These are some embodiments of the present invention. For those of ordinary skill in the art, other embodiments can be obtained based on these drawings without exerting creative efforts.
图1为本发明提供的网络数据传输方法的实施例的示意图;Figure 1 is a schematic diagram of an embodiment of a network data transmission method provided by the present invention;
图2为本发明提供的网络数据传输装置的实施例的示意图;Figure 2 is a schematic diagram of an embodiment of a network data transmission device provided by the present invention;
图3为本发明提供的计算机设备的实施例的示意图;以及Figure 3 is a schematic diagram of an embodiment of a computer device provided by the present invention; and
图4为本发明提供的计算机可读存储介质的实施例的示意图。Figure 4 is a schematic diagram of an embodiment of a computer-readable storage medium provided by the present invention.
具体实施方式Detailed ways
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。In order to make the purpose, technical solutions and advantages of the present invention more clear, the embodiments of the present invention will be further described in detail below with reference to specific embodiments and the accompanying drawings.
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”、“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。It should be noted that all expressions using "first" and "second" in the embodiments of the present invention are to distinguish two entities or parameters with the same name but not the same. It can be seen that "first" and "second" ” is only for the convenience of expression and should not be understood as limiting the embodiments of the present invention, and subsequent embodiments will not describe this one by one.
基于上述目的,本发明实施例的第一个方面,提出了网络数据传输方法的实施例。图1示出的是本发明提供的网络数据传输方法的实施例的示意图。如图1所示,本发明实施例的网络数据传输方法可以包括如下步骤:Based on the above objectives, the first aspect of the embodiments of the present invention provides an embodiment of a network data transmission method. Figure 1 shows a schematic diagram of an embodiment of a network data transmission method provided by the present invention. As shown in Figure 1, the network data transmission method according to the embodiment of the present invention may include the following steps:
S01、获取用户数据,并将所述用户数据转化成数据帧;S01. Obtain user data and convert the user data into a data frame;
S02、将所述数据帧加入环链表中的空白环链表帧,并计算元数据信息;S02. Add the data frame to the blank ring linked list frame in the ring linked list, and calculate metadata information;
S03、响应于接收到发送命令,则基于所述发送命令中的元数据信息获取对应的所述数据帧;以及S03. In response to receiving the send command, obtain the corresponding data frame based on the metadata information in the send command; and
S04、将数据帧发送至接收端。S04. Send the data frame to the receiving end.
在本实施例中,将原始kcp协议中申请帧内存并管理的逻辑修改为直接调度设备帧的运行逻辑,使用协程调度发送/接收请求的运行逻辑。其中,kcp协议是一个具有可靠性的ARQ(Automatic Repeat-reQuest,自动重传请求)协议,自动重传请求协议是OSI模型(Open System Interconnection Reference Model,开放式系统互联通信参考模)中数据链路层的错误纠正协议之一。它包括停止等待ARQ协议和连续ARQ协议,错误侦测(ErrorDetection)、正面确认(Positive Acknowledgment)、逾时重传(Retransmission afterTimeout)与负面确认继以重传(Negative Acknowledgment and Retransmission)等机制。In this embodiment, the logic of applying for and managing frame memory in the original kcp protocol is modified into the operating logic of directly scheduling device frames, and the coroutine is used to schedule the operating logic of sending/receiving requests. Among them, the kcp protocol is a reliable ARQ (Automatic Repeat-reQuest, automatic retransmission request) protocol. The automatic retransmission request protocol is the data link in the OSI model (Open System Interconnection Reference Model, open system interconnection communication reference model). One of the error correction protocols at the road layer. It includes the stop-waiting ARQ protocol and the continuous ARQ protocol, mechanisms such as ErrorDetection, Positive Acknowledgment, Retransmission after Timeout and Negative Acknowledgment and Retransmission.
在本实施例中,对于kcp协议基于流控的特性,本发明的实施例的技术方案可以对kcp协议读取、写入数据接口进行了修改,将原本基于流控制的写入、读取函数修改为基于数据帧的接口,可以直接将底层数据帧写入设备发送队列,绕过tcp/ip协议的限制。In this embodiment, regarding the flow control-based characteristics of the kcp protocol, the technical solution of the embodiment of the present invention can modify the kcp protocol read and write data interfaces, and replace the original flow control-based write and read functions. Modified to a data frame-based interface, the underlying data frame can be directly written to the device sending queue, bypassing the limitations of the TCP/IP protocol.
在本实施例中,对于停-等协议缓存,原本kcp协议使用了一个数组队列存储待重发队列,然后将其拷贝至输出流中,这造成了一次额外的内存拷贝消耗。针对该问题,将重发队列更换为由底层帧数据提供的环链表结构,写入发送数据时直接写入空白环链表帧并计算meta(元数据)信息,接收确认时则直接释放帧内存,免去了内存拷贝与应用层/内核层调度开销。In this embodiment, for the stop-and-wait protocol cache, the original kcp protocol uses an array queue to store the queue to be retransmitted, and then copies it to the output stream, which causes an additional memory copy consumption. To solve this problem, the retransmission queue is replaced with a ring linked list structure provided by the underlying frame data. When writing the sending data, the blank ring linked list frame is directly written and the meta (metadata) information is calculated. When the confirmation is received, the frame memory is directly released. It eliminates memory copying and application layer/kernel layer scheduling overhead.
在本实施例中,对于一般情况的网络传输请求,应用层设计可能需要seletc/iocp/epoll/libev等机制实现异步数据调度,这种机制其内部实现是构建线程池,触发异步回调函数。但在性能优化要求很高的情况下(如tcp/ip协议栈),单独的线程开销或单独的内存分配功能可能是不可接受的。针对以上情况,本发明的实施例的技术方案可以修改kcp协议数据发送循环,将发送循环调度入coroutine过程当中,避免了系统切换开销和额外的数据锁功能。In this embodiment, for general network transmission requests, the application layer design may require seletc/iocp/epoll/libev and other mechanisms to implement asynchronous data scheduling. The internal implementation of this mechanism is to build a thread pool and trigger an asynchronous callback function. But in situations where performance optimization requirements are high (such as TCP/IP protocol stack), separate thread overhead or separate memory allocation functions may not be acceptable. In response to the above situation, the technical solution of the embodiment of the present invention can modify the kcp protocol data sending cycle and schedule the sending cycle into the coroutine process, thereby avoiding system switching overhead and additional data lock functions.
在本发明的一些实施例中,本发明提供的方法还可以包括:响应于接收到所述接收端的确收消息,则基于所述确收消息中的元数据信息释放所述环链表中对应的所述数据帧。In some embodiments of the present invention, the method provided by the present invention may further include: in response to receiving an acknowledgment message from the receiving end, releasing the corresponding link in the ring linked list based on the metadata information in the acknowledgment message. The data frame.
在本实施例中,在确认帧发送成功之后,不使用传统的free函数,而调用的是下层设备自己的释放接口。这样,可以避免一次内存申请/释放产生的内存碎片问题,节省一次内存由用户态到内核态的拷贝过程;在实际使用中也可以使用类似设备DMA内存复制intelavx512指令集等机制加快最耗时的内存拷贝过程。而且在此过程中天然地支持了巨型帧(>4k byte)的传输机制。In this embodiment, after confirming that the frame is sent successfully, the traditional free function is not used, but the release interface of the lower layer device itself is called. In this way, the memory fragmentation problem caused by a memory application/release can be avoided, and the memory copy process from user mode to kernel mode can be saved. In actual use, similar device DMA memory copy intelavx512 instruction set and other mechanisms can also be used to speed up the most time-consuming process. Memory copy process. And in this process, the transmission mechanism of jumbo frames (>4k byte) is naturally supported.
在本发明的一些实施例中,本发明提供的方法还可以包括:将应用层读写操作与循环线程设置为协程调度。In some embodiments of the present invention, the method provided by the present invention may also include: setting application layer read and write operations and loop threads as coroutine scheduling.
在本实施例中,原协议中常见的使用方式是使用一个线程循环等待,处理读取/写入消息,其他多个线程执行读取/写入操作以及对应的后续逻辑。这样实现的优势在于容易使用和理解,但线程间数据同步一直都是一个性能开销颇高的操作过程。现在我们将应用层读写操作与循环线程设置为coroutine(协程)。协程又称微线程,纤程,协程之间的切换发生在用户态。在用户态没有时钟中断,系统调用等机制。最大的优势就是协程极高的执行效率,其次是不需要多线程的锁机制。In this embodiment, a common usage method in the original protocol is to use one thread to wait in a loop and process read/write messages, and other multiple threads to perform read/write operations and corresponding subsequent logic. The advantage of this implementation is that it is easy to use and understand, but data synchronization between threads has always been an operation process with high performance overhead. Now we set the application layer read and write operations and loop threads as coroutines. Coroutines are also called micro-threads and fibers. The switching between coroutines occurs in user mode. There are no clock interrupts, system calls and other mechanisms in user mode. The biggest advantage is the extremely high execution efficiency of the coroutine, and the second is that it does not require a multi-threaded lock mechanism.
借助coroutine机制,任意个协程任务在发送数据时实际都运行于当前线程中,与其他任务调度没有线程冲突。在调度完成后执行yield操作切换到任意另一个待发送的yield操作或者kcp核心循环中。在核心循环中,kcp协议执行数据的收发与管理,当前任务全部完成后执行resume,则线程上下文切换到之前执行yield操作的协程逻辑,继续进行发送成功/接收成功的其他逻辑行为。通过这样的方法,避免了线程之间的锁开销,也减轻了开发时的开发负担,用户仅需调用创建协程、操作、yield、完成流程的简单逻辑即可开发出高效、无锁的io收发请求逻辑。With the help of the coroutine mechanism, any coroutine task actually runs in the current thread when sending data, and there is no thread conflict with other task scheduling. After the scheduling is completed, the yield operation is executed and switched to any other yield operation to be sent or the kcp core loop. In the core loop, the kcp protocol performs the sending, receiving and management of data. After the current task is completed, resume is executed, and the thread context switches to the coroutine logic that previously performed the yield operation, and continues with other logical behaviors of successful transmission/reception. Through this method, the lock overhead between threads is avoided, and the development burden during development is reduced. Users only need to call the simple logic of creating coroutines, operations, yields, and completion processes to develop efficient, lock-free io Send and receive request logic.
在本发明的一些实施例中,将所述用户数据转化成数据帧包括:通过mmap将操作系统内核段地址指针映射到应用层内存地址。In some embodiments of the present invention, converting the user data into a data frame includes: mapping the operating system kernel segment address pointer to the application layer memory address through mmap.
在本实施例中,传统协议中,上层传入的原始数据需要分配帧内存-设置帧头-调用tcp/udp协议发送,这意味着两次内存拷贝过程。改进后,分配应用帧内存、调度帧发送/接收的流程中不再使用现有技术中malloc(memory allocation,动态内存分配)动态分配帧内存,而使用mmap(一种内存映射文件的方法),将操作系统内核段地址指针直接映射到应用层内存地址。In this embodiment, in the traditional protocol, the original data passed in by the upper layer needs to allocate frame memory, set the frame header, and call the tcp/udp protocol to send, which means two memory copy processes. After the improvement, the process of allocating application frame memory and scheduling frame transmission/reception no longer uses malloc (memory allocation, dynamic memory allocation) in the existing technology to dynamically allocate frame memory, but uses mmap (a method of memory mapping files). Map the operating system kernel segment address pointer directly to the application layer memory address.
其中,动态内存分配用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存,且分配的大小就是程序要求的大小。Among them, dynamic memory allocation is used to apply for a continuous memory block area of a specified size and return the allocated memory area address in void* type. When the specific location of the memory cannot be known, you need to use it if you want to bind the real memory space. Dynamically allocate memory, and the allocated size is the size required by the program.
而mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。mmap在用户空间映射调用系统中作用很大。mmap操作提供了一种机制,让用户程序直接访问设备内存,通过这种机制,相比较在用户空间和内核空间互相拷贝数据,这种机制的效率明显更高。在要求高性能的应用中比较常用。mmap映射内存必须是页面大小的整数倍,面向流的设备不能进行mmap,mmap的实现和硬件有关。And mmap maps a file or other object into memory. Files are mapped to multiple pages, and if the size of the file is not the sum of the sizes of all pages, the unused space on the last page will be cleared. mmap plays a great role in the user space mapping call system. The mmap operation provides a mechanism that allows user programs to directly access device memory. Through this mechanism, compared with copying data between user space and kernel space, this mechanism is significantly more efficient. It is commonly used in applications requiring high performance. The mmap mapped memory must be an integral multiple of the page size. Stream-oriented devices cannot perform mmap. The implementation of mmap is related to the hardware.
在本实施例中,利用直接使用帧数据的运行方式,改变了原始kcp协议只支持tcp/ip协议栈的限制,同时由于使用底层帧直接操作数据,可以省去多次内存拷贝与校验过程,优化了发送/接收效率。In this embodiment, the operating mode of directly using frame data changes the limitation that the original kcp protocol only supports the tcp/ip protocol stack. At the same time, because the underlying frame is used to directly operate data, multiple memory copies and verification processes can be omitted. , optimized sending/receiving efficiency.
在本发明的一些实施例中,基于所述确收消息中的元数据信息释放所述环链表中对应的所述数据帧可以包括:通过下层设备的释放接口释放所述换链表中对应的所述数据帧。In some embodiments of the present invention, releasing the corresponding data frames in the ring linked list based on the metadata information in the acknowledgment message may include: releasing all corresponding data frames in the linked list through a release interface of a lower-layer device. The data frame.
在本实施例中,将现有技术协议中写入数据是调用socket接口,修改为直接与下层应用发送帧数据的数据交互接口,避开了tcp/ip协议层对数据要求顺序性的强相关关系。In this embodiment, writing data in the existing technology protocol is to call the socket interface, and modify it to a data interaction interface that directly sends frame data to the lower-layer application, avoiding the strong correlation between the order of data requirements of the TCP/IP protocol layer. relation.
在本发明的一些实施例中,由于将tcp/ip协议栈剥离出kcp协议,以及省去了kcp协议中申请帧/释放帧的运行流程,修改后的逻辑可以运行于资源紧张的嵌入式系统,或者对资源管理要求严格的大型程序当中,扩展了适用范围。In some embodiments of the present invention, since the tcp/ip protocol stack is stripped out of the kcp protocol, and the running process of requesting frames/releasing frames in the kcp protocol is omitted, the modified logic can be run on resource-constrained embedded systems. , or in large-scale programs with strict resource management requirements, the scope of application has been expanded.
需要特别指出的是,上述网络数据传输方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于网络数据传输方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在实施例之上。It should be particularly pointed out that each step in each embodiment of the above-mentioned network data transmission method can be crossed, replaced, added, or deleted with each other. Therefore, these reasonable permutations and combinations of the network data transmission method should also belong to the present invention. The protection scope of the present invention should not be limited to the embodiments.
基于上述目的,本发明实施例的第二个方面,提出了一种网络数据传输装置。图2示出的是本发明提供的网络数据传输装置的实施例的示意图。如图2所示,本发明实施例的网络数据传输装置可以包括如下模块:第一模块S11,所述第一模块S11可以配置用于获取用户数据,并将所述用户数据转化成数据帧;第二模块S12,所述第二模块S12可以配置用于将所述数据帧加入环链表中的空白环链表帧,并计算元数据信息;第三模块S13,所述第三模块S13可以配置用于响应于接收到发送命令,则基于所述发送命令中的元数据信息获取对应的所述数据帧;以及第四模块S14,所述第四模块S14可以配置用于将所述数据帧发送至接收端。Based on the above purpose, a second aspect of the embodiment of the present invention provides a network data transmission device. Figure 2 shows a schematic diagram of an embodiment of a network data transmission device provided by the present invention. As shown in Figure 2, the network data transmission device according to the embodiment of the present invention may include the following modules: a first module S11. The first module S11 may be configured to obtain user data and convert the user data into a data frame; The second module S12, the second module S12 can be configured to add the data frame to a blank ring linked list frame in the ring linked list, and calculate metadata information; the third module S13, the third module S13 can be configured to use In response to receiving the send command, obtain the corresponding data frame based on the metadata information in the send command; and a fourth module S14, the fourth module S14 may be configured to send the data frame to Receiving end.
在本发明的一些实施例中,本发明提供的装置还可以包括第五模块(图中未示出),所述第五模块可以配置用于:响应于接收到所述接收端的确收消息,则基于所述确收消息中的元数据信息释放所述环链表中对应的所述数据帧。In some embodiments of the present invention, the device provided by the present invention may further include a fifth module (not shown in the figure). The fifth module may be configured to: in response to receiving an acknowledgment message from the receiving end, Then the corresponding data frame in the ring linked list is released based on the metadata information in the acknowledgment message.
在本发明的一些实施例中,本发明提供的装置还包括第六模块,所述第六模块可以配置用于:将应用层读写操作与循环线程设置为协程调度。In some embodiments of the present invention, the device provided by the present invention further includes a sixth module, which can be configured to: set application layer read and write operations and loop threads as coroutine scheduling.
在本发明的一些实施例中,第一模块S11可以进一步配置用于:通过mmap将操作系统内核段地址指针映射到应用层内存地址。In some embodiments of the present invention, the first module S11 may be further configured to: map the operating system kernel segment address pointer to the application layer memory address through mmap.
在本发明的一些实施例中,第五模块可以进一步配置用于:通过下层设备的释放接口释放所述换链表中对应的所述数据帧。In some embodiments of the present invention, the fifth module may be further configured to: release the corresponding data frame in the link swap list through a release interface of a lower-layer device.
基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备。图3示出的是本发明提供的计算机设备的实施例的示意图。如图3所示,本发明实施例的计算机设备可以包括如下装置:至少一个处理器S21;以及存储器S22,所述存储器S22可以存储有可在处理器上运行的计算机指令S23,所述计算机指令S23由处理器执行时可以实现方法的步骤包括:获取用户数据,并将所述用户数据转化成数据帧;将所述数据帧加入环链表中的空白环链表帧,并计算元数据信息;响应于接收到发送命令,则基于所述发送命令中的元数据信息获取对应的所述数据帧;以及将所述数据帧发送至接收端。Based on the above objectives, a third aspect of the embodiments of the present invention provides a computer device. FIG. 3 shows a schematic diagram of an embodiment of a computer device provided by the present invention. As shown in Figure 3, the computer equipment of the embodiment of the present invention may include the following device: at least one processor S21; and a memory S22. The memory S22 may store computer instructions S23 that can be run on the processor. The computer instructions When S23 is executed by the processor, the steps of the method may include: obtaining user data and converting the user data into a data frame; adding the data frame to a blank ring linked list frame in the ring linked list, and calculating metadata information; responding Upon receiving the send command, obtain the corresponding data frame based on the metadata information in the send command; and send the data frame to the receiving end.
在本发明的一些实施例中,计算机指令S23由处理器执行时可以实现方法的步骤还可以包括:响应于接收到所述接收端的确收消息,则基于所述确收消息中的元数据信息释放所述环链表中对应的所述数据帧。In some embodiments of the present invention, when the computer instruction S23 is executed by the processor, the steps of the method may also include: in response to receiving an acknowledgment message from the receiving end, based on the metadata information in the acknowledgment message Release the corresponding data frame in the ring linked list.
在本发明的一些实施例中,计算机指令S23由处理器执行时可以实现方法的步骤还可以包括:将应用层读写操作与循环线程设置为协程调度。In some embodiments of the present invention, when the computer instruction S23 is executed by the processor, the steps of the method may also include: setting application layer read and write operations and loop threads as coroutine scheduling.
在本发明的一些实施例中,将所述用户数据转化成数据帧可以包括:通过mmap将操作系统内核段地址指针映射到应用层内存地址。In some embodiments of the present invention, converting the user data into a data frame may include: mapping the operating system kernel segment address pointer to the application layer memory address through mmap.
在本发明的一些实施例中,基于所述确收消息中的元数据信息释放所述环链表中对应的所述数据帧可以包括:通过下层设备的释放接口释放所述换链表中对应的所述数据帧。In some embodiments of the present invention, releasing the corresponding data frames in the ring linked list based on the metadata information in the acknowledgment message may include: releasing all corresponding data frames in the linked list through a release interface of a lower-layer device. The data frame.
在图3所示的实施例中,处理器S21和存储器S22可以通过总线或者其他方式连接,图3中以通过总线连接为例。In the embodiment shown in FIG. 3 , the processor S21 and the memory S22 may be connected through a bus or other means. In FIG. 3 , the connection through the bus is taken as an example.
存储器S22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的预测固态硬盘寿命的方法对应的程序指令/模块。处理器S21通过运行存储在存储器S22中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现网络数据传输方法。As a non-volatile computer-readable storage medium, the memory S22 can be used to store non-volatile software programs, non-volatile computer executable programs and modules, such as the method for predicting the life of a solid-state drive in the embodiment of the present application. program instructions/modules. The processor S21 executes various functional applications and data processing of the server by running non-volatile software programs, instructions and modules stored in the memory S22, that is, implementing the network data transmission method.
本发明还提供了一种计算机可读存储介质。图4示出的是本发明提供的计算机可读存储介质的实施例的示意图。如图4所示,计算机可读存储介质S31存储有可以被处理器执行时执行如上方法的计算机程序S32。The invention also provides a computer-readable storage medium. FIG. 4 shows a schematic diagram of an embodiment of a computer-readable storage medium provided by the present invention. As shown in Figure 4, the computer-readable storage medium S31 stores a computer program S32 that can perform the above method when executed by a processor.
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,网络数据传输方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。Finally, it should be noted that those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be implemented by instructing relevant hardware through computer programs. The program of the network data transmission method can be stored in a computer-readable In the storage medium, when the program is executed, it may include the processes of the above method embodiments. Among them, the storage medium of the program can be a magnetic disk, an optical disk, a read-only memory (ROM) or a random access memory (RAM), etc. The foregoing computer program embodiments can achieve the same or similar effects as any of the corresponding foregoing method embodiments.
此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。In addition, the method disclosed according to the embodiment of the present invention can also be implemented as a computer program executed by a processor, and the computer program can be stored in a computer-readable storage medium. When the computer program is executed by the processor, the above functions defined in the method disclosed in the embodiment of the present invention are performed.
此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。In addition, the above-mentioned method steps and system units can also be implemented using a controller and a computer-readable storage medium for storing a computer program that enables the controller to implement the above-mentioned steps or unit functions.
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits and steps have been described generally in terms of their functionality. Whether this functionality is implemented as software or hardware depends on the specific application and the design constraints imposed on the overall system. Those skilled in the art may implement the functionality in various ways for each specific application, but such implementation decisions should not be interpreted as causing a departure from the scope of the disclosed embodiments of the present invention.
在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。In one or more example designs, functionality may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functionality may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. Storage media can be any available media that can be accessed by a general purpose or special purpose computer. By way of example and not limitation, the computer-readable medium may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage devices, magnetic disk storage devices or other magnetic storage devices, or may be used to carry or store instructions in the form of or any other medium containing the required program code for the data structures and capable of being accessed by a general-purpose or special-purpose computer or a general-purpose or special-purpose processor. Also, any connection is properly termed a computer-readable medium. For example, if coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave are used to deliver software from a website, server, or other remote source, the coaxial cable Cable, fiber optic cable, twisted pair, DSL or wireless technologies such as infrared, radio and microwave are included in the definition of media. As used herein, disks and optical disks include compact disks (CDs), laser disks, optical disks, digital versatile disks (DVDs), floppy disks, and Blu-ray disks, where disks typically reproduce data magnetically, while optical disks reproduce data optically using lasers. . Combinations of the above should also be included within the scope of computer-readable media.
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。The above are exemplary embodiments disclosed by the present invention, but it should be noted that various changes and modifications can be made without departing from the scope of the disclosed embodiments of the present invention defined by the claims. The functions, steps and/or actions of the method claims in accordance with the disclosed embodiments described herein need not be performed in any particular order. In addition, although the elements disclosed in the embodiments of the present invention may be described or claimed in individual form, they may also be understood as plural unless expressly limited to the singular.
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。It will be understood that, as used herein, the singular form "a" and "an" are intended to include the plural form as well, unless the context clearly supports an exception. It will also be understood that as used herein, "and/or" is meant to include any and all possible combinations of one or more of the associated listed items.
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。The embodiment numbers disclosed in the above embodiments of the present invention are only for description and do not represent the advantages or disadvantages of the embodiments.
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。Those of ordinary skill in the art can understand that all or part of the steps to implement the above embodiments can be completed by hardware, or can be completed by instructing the relevant hardware through a program. The program can be stored in a computer-readable storage medium. The above-mentioned The storage medium can be a read-only memory, a magnetic disk or an optical disk, etc.
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。Those of ordinary skill in the art should understand that the above discussion of any embodiments is only illustrative, and is not intended to imply that the scope of the disclosure of the embodiments of the present invention (including the claims) is limited to these examples; under the thinking of the embodiments of the present invention , the above embodiments or technical features in different embodiments can also be combined, and there are many other changes in different aspects of the above embodiments of the present invention, which are not provided in details for the sake of simplicity. Therefore, any omissions, modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the embodiments of the present invention shall be included in the protection scope of the embodiments of the present invention.
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110964378.3ACN113709131B (en) | 2021-08-22 | 2021-08-22 | Network data transmission method, device, computer equipment and readable medium |
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110964378.3ACN113709131B (en) | 2021-08-22 | 2021-08-22 | Network data transmission method, device, computer equipment and readable medium |
| Publication Number | Publication Date |
|---|---|
| CN113709131A CN113709131A (en) | 2021-11-26 |
| CN113709131Btrue CN113709131B (en) | 2024-01-09 |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202110964378.3AActiveCN113709131B (en) | 2021-08-22 | 2021-08-22 | Network data transmission method, device, computer equipment and readable medium |
| Country | Link |
|---|---|
| CN (1) | CN113709131B (en) |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114338830B (en)* | 2022-01-05 | 2024-02-27 | 腾讯科技(深圳)有限公司 | Data transmission method, device, computer readable storage medium and computer equipment |
| CN114629824B (en)* | 2022-03-24 | 2024-03-19 | 阿里巴巴(中国)有限公司 | Packet loss positioning method, device, computing equipment and medium |
| CN114745257B (en)* | 2022-03-28 | 2024-01-09 | 杭州义益钛迪信息技术有限公司 | Data frame debugging method, device, equipment and storage medium |
| CN114466151B (en)* | 2022-04-11 | 2022-07-12 | 武汉中科通达高新技术股份有限公司 | Video storage system, computer equipment and storage medium of national standard camera |
| CN115334176B (en)* | 2022-07-27 | 2024-08-16 | 广州安凯微电子股份有限公司 | Data transmission method, apparatus, computer device, storage medium, and program product |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103546250A (en)* | 2013-09-18 | 2014-01-29 | 中标软件有限公司 | Communication method and communication system for vehicular terminal |
| CN106792263A (en)* | 2016-12-09 | 2017-05-31 | 东方网力科技股份有限公司 | A kind of method of transmitting video data, apparatus and system |
| CN108737378A (en)* | 2018-04-17 | 2018-11-02 | 全球能源互联网研究院有限公司 | A kind of dual mode communication network-building method and system based on media access control layer |
| CN109976664A (en)* | 2017-12-28 | 2019-07-05 | 北京忆恒创源科技有限公司 | The daily record data tissue of solid storage device |
| CN110391999A (en)* | 2018-04-18 | 2019-10-29 | 海能达通信股份有限公司 | A kind of data communications method and system |
| CN111600961A (en)* | 2020-05-22 | 2020-08-28 | 山东超越数控电子股份有限公司 | Method, system, equipment and medium for transmitting bitmap file through CAN port |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103546250A (en)* | 2013-09-18 | 2014-01-29 | 中标软件有限公司 | Communication method and communication system for vehicular terminal |
| CN106792263A (en)* | 2016-12-09 | 2017-05-31 | 东方网力科技股份有限公司 | A kind of method of transmitting video data, apparatus and system |
| CN109976664A (en)* | 2017-12-28 | 2019-07-05 | 北京忆恒创源科技有限公司 | The daily record data tissue of solid storage device |
| CN108737378A (en)* | 2018-04-17 | 2018-11-02 | 全球能源互联网研究院有限公司 | A kind of dual mode communication network-building method and system based on media access control layer |
| CN110391999A (en)* | 2018-04-18 | 2019-10-29 | 海能达通信股份有限公司 | A kind of data communications method and system |
| CN111600961A (en)* | 2020-05-22 | 2020-08-28 | 山东超越数控电子股份有限公司 | Method, system, equipment and medium for transmitting bitmap file through CAN port |
| Publication number | Publication date |
|---|---|
| CN113709131A (en) | 2021-11-26 |
| Publication | Publication Date | Title |
|---|---|---|
| CN113709131B (en) | Network data transmission method, device, computer equipment and readable medium | |
| US7664026B2 (en) | Methods and systems for reliable data transmission using selective retransmission | |
| CN103945456B (en) | A kind of efficient UDP message of LTE base station user plane based on linux system sends optimization method | |
| TWI332150B (en) | Processing data for a tcp connection using an offload unit | |
| CN106657365A (en) | High concurrent data transmission method based on RDMA (Remote Direct Memory Access) | |
| US20240069977A1 (en) | Data transmission method and data transmission server | |
| CN105141603B (en) | Communication data transmission method and system | |
| CN106411767A (en) | Transporting operations of arbitrary size over remote direct memory access | |
| CN113127139B (en) | Memory allocation method and device based on DPDK of data plane development kit | |
| CN112286454B (en) | A bitmap synchronization method, device, electronic device and storage medium | |
| WO2024067529A1 (en) | Rdma-based link establishment method and apparatus, and device and storage medium | |
| WO2025190156A1 (en) | Data transmission method, node and storage medium | |
| CN118540322B (en) | Multi-mode file transmission method based on full user mode QUIC protocol | |
| CN110798366B (en) | Task logic processing method, device and equipment | |
| CN111901689B (en) | Streaming media data transmission method, device, terminal equipment and storage medium | |
| CN102137101A (en) | A method and system for data transmission in an SCTP-based embedded Linux system | |
| WO2007004374A1 (en) | Information processing method and information processing device | |
| CN111586040A (en) | High-performance network data receiving method and system | |
| CN115917519B (en) | Recording medium storing information processing program, information processing apparatus, and information processing method | |
| CN118012510B (en) | Network processor, network data processing device and chip | |
| CN117729274A (en) | Message processing methods, devices, equipment and readable storage media | |
| CN118626289A (en) | A model reasoning method and chip based on remote procedure call | |
| CN115801877A (en) | Data transmission platform and method | |
| WO2025149836A1 (en) | Data processing | |
| KR100441742B1 (en) | A method for controlling inter-process communication data using an information exchange bus and the system thereof |
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant | ||
| TR01 | Transfer of patent right | ||
| TR01 | Transfer of patent right | Effective date of registration:20240705 Address after:2324, Building 1, Aosheng Building, No. 1166 Xinluo Street, High tech Zone, Jinan City, Shandong Province, 250000 Patentee after:Inspur Computer Technology Co.,Ltd. Country or region after:China Address before:250000 floor 35, S01 building, Inspur Science Park, 1036 Inspur Road, Jinan area, China (Shandong) pilot Free Trade Zone, Jinan, Shandong Province Patentee before:Shandong Yunhai guochuang cloud computing equipment industry innovation center Co.,Ltd. Country or region before:China |