CN100486248C - Zero-copy communication method under real-time environment - Google Patents

Zero-copy communication method under real-time environment Download PDF

Info

Publication number
CN100486248C
CN100486248C CNB2005100197843A CN200510019784A CN100486248C CN 100486248 C CN100486248 C CN 100486248C CN B2005100197843 A CNB2005100197843 A CN B2005100197843A CN 200510019784 A CN200510019784 A CN 200510019784A CN 100486248 C CN100486248 C CN 100486248C
Authority
CN
China
Prior art keywords
data
network interface
interface card
buffering
transmitting terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005100197843A
Other languages
Chinese (zh)
Other versions
CN1801806A (en
Inventor
金海�
李胜利
袁平鹏
张明虎
徐力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CNB2005100197843A priority Critical patent/CN100486248C/en
Publication of CN1801806A publication Critical patent/CN1801806A/en
Application granted granted Critical
Publication of CN100486248C publication Critical patent/CN100486248C/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

Present invention discloses zero copying communication method under real time condition. It contains (1) transmitting end proceeding write-protect to transmitted-data,(2) transmitting end using static system buffer as user to transmit buffer,(3) transmitting end judging whether above-mentioned transmitted-data length L sub > data < / sub > is greater than k , wherein is the maximum data length in single chip package , if greater than k , entering step (4) , otherwise entering step (5),(4) transmitting end receiving terminal adopting handshake response mode to transmit and receive demand slicing transmitted-data , ending communication after processing,(5) transmitting end and receiving terminal adopting direct mapping mode sending and receiving data , ending communication after processing. Said has shorter real time communication delay and lower hardware requirement.

Description

Zero-copy communication method under a kind of real time environment
Technical field
This method belongs to the network communications technology of computer application field, is specifically related to the Zero-copy communication method under a kind of real time environment.
Background technology
Along with the appearance of group system, the disposal ability that computer system can provide is strengthened greatly, can satisfy many new application demands, but higher relatively communication delay has limited application and development under the cluster environment.Be used for the group system that science is calculated, the communication efficiency between the node has crucial influence to the overall performance of parallel computation.Under the situation that does not improve the inter-node communication performance, the performance of uniprocessor node cpu improves 32 times, and the raising of entire system performance is less than 10 times.Particularly for those operands were not very big program, the network service time had accounted for sizable ratio in the total time of program running.Therefore, how reducing the time that signal post consumes is the important component part of grid cluster development.
The network service processing time mainly is created on the data copy and transfer of data at all levels such as system, network interface.Reduce the number of times of data copy and shared bus operation, elimination communication data unnecessary intermediate copy process between memory can improve communication efficiency effectively, Here it is so-called zero duplication technology.Zero duplication technology is one of important technology that reduces communication delay.
Existing zero-copy implementation method mainly contains following three kinds.
First kind of mode copies once at transmitting terminal, and receiving terminal also copies once.This is one of initial several implementations of zero-copy.The network interface card that does not have direct memory access (DMA) function or other direct control memory power all is to adopt this Zero-copy mode.At transmitting terminal, the data that the user be about to is sent are mapped to the data space of kernel by the mode of remapping, and network interface card copies these data to the network interface card buffering area again, from buffering area data is sent then.Receiving terminal arrives the network interface card buffering area with Data Receiving earlier, directly the data of network interface card buffering area is handled then, finds its corresponding user program, then with the data copy in the past.Its advantage is: very low to the hardware device requirement, can carry out pile line operation during parallel transmission, and realize simple.Its shortcoming is: time delay is still longer in the communication, can not satisfy the requirement of real-time communication system.
The Zero-copy mode of another kind of fairly simple practicality is: transmitting terminal does not copy, and receiving terminal copies once.This scheme is also referred to as single copy scheme.This programme requires network interface card to have the DMA function.The similar substantially such scheme of process of transmitting, but network interface card directly cushions the data space of inner core region as sending.Receiving terminal is then given user by mapping mechanism with data to the DMA buffering back in the main memory with Data Receiving, and the user copies data to relevant position as required.The advantage of this scheme is: can carry out pile line operation during parallel transmission, realize fairly simplely, communication efficiency is better than above-mentioned single copy scheme.Its shortcoming is: or carried out once copy at receiving terminal, when transmitting big packet, communication delay there is tangible influence.
Also having a kind of main zero-copy communication mode is remote storage visit (RMA) (RemoteMemory Access) mode.It is suitable for big packet transmission, and its main implementation is that far-end direct memory access (RDMA) (Remote Direct Memory Access) and immediate data are placed DDP (Direct Data Placement) mode.This scheme has reduced the once copy of receiving terminal, and do not require for the size of packet, but since each data transmit before hardware all will to carry out primary information mutual, need to consume the regular hour, increased communication delay, so the time of adopting this scheme to need packet copy to be consumed be longer than data flight time the time just system effectiveness is had facilitation, be not suitable for the transmission of small data packets.Some agreement is avoided the disadvantage of RMA mode by the mode that small data packets is spliced into big packet and sends, brings into play its strong point, but adopts this scheme can prolong the communication response time in real time communication, violates the real-time requirement.
Summary of the invention
The purpose of this method is to provide the Zero-copy communication method under a kind of real time environment, and this method has relatively short time delay under real time environment.
Zero-copy communication method under a kind of real time environment that this method provides the steps include:
(1) transmitting terminal carries out write-protect to data to be sent;
(2) transmitting terminal sends buffering with the static system buffering as the user;
(3) transmitting terminal is judged the length L of above-mentioned data to be sent DataGreater than k, wherein k is the maximum length of data in the monolithic bag, if greater than k, enters step (4), otherwise enters step (5);
(4) transmitting terminal and receiving terminal adopt the response mode of shaking hands to send and receive the data to be sent that need burst, and the back sign off disposes;
(5) transmitting terminal and receiving terminal transmit and receive data by the direct mapping mode of network interface card, and the back sign off disposes.
This method utilizes the DMA function of network interface card to realize the outstanding zero-copy communication mode of call duration time performance at the situation that does not still have at present zero-copy communication protocol special-purpose under the real time environment.The main thought of this method is to guarantee on the basis of real-time, adopts the scheme of communication delay minimum to transmit to the packet of different situations.Compare with existing zero-copy scheme, this method mainly contains following characteristics:
(1) real-time.This programme can be handled real time data bag and non-real-time data bag simultaneously, can guarantee that when two kinds of packets arrive simultaneously the real time data bag preferentially finishes, basically identical when guaranteeing real time communication efficient and receiving only the real time data bag.
(2) than short communication delay.Existing zero-copy scheme mainly contains RMA mode and single copy scheme.The RMA scheme will be carried out interacting message one time between communication, make receiving-transmitting sides understand the other side's information relevant with communication.The transmitting terminal packet all sends with Zero-copy mode according to mapping mode in single copy scheme, then adopts general datagram protocol (UDP) protocol processes at receiving terminal, has still carried out once copy.In fact comprehensive, this method is compared with this dual mode has shorter communication delay under real time environment.When handling not fragment packets, this method has been saved the once copy of receiving terminal compared with single copy mode, has then lacked the once mutual of message compared with the RMA mode.Handling under the situation of fragment packets, this method efficient is basic consistent with the RMA mode, has saved the once copy of receiving terminal compared with single copy mode, but more than once information alternately.Test shows, in general real-time communication system, the time that fragment packets once copies is greater than the mutual time of primary information.So when handling fragment packets, this method is consistent with RMA mode efficient under the best circumstances when handling fragment packets, is better than single copy scheme.The packet of considering all size shared ratio in communication, the generalized time of this method postpones littler than other agreement in the ordinary course of things.
(3) hardware requirement is lower: compared with other zero-copy communication protocol, this programme is lower for the basic demand of hardware---and only the DMA function to network interface card has requirement.If hardware can reach the requirement of RDMA mode, then can further reduce communication delay, reduce CPU usage, but this not rigid requirement.
Description of drawings
Fig. 1 is this method schematic flow sheet;
Fig. 2 is the schematic flow sheet of a kind of embodiment of the response mode of shaking hands among Fig. 1;
Fig. 3 is the schematic flow sheet of a kind of embodiment of direct mapping mode among Fig. 1;
Fig. 4 is the schematic flow sheet of prioritization scheme of the present invention;
Fig. 5 is the schematic flow sheet of 0/1 copy mode among Fig. 4.
Embodiment
The hardware environment of this method requires network interface card to have the DMA function, and software environment is communicated by letter for the UDP/IP under the Linux environment (datagram protocol/Internet protocol) mode.We's ratio juris is described below:
If the maximum length of data is k in the monolithic bag, then the maximum length of first of fragment packets middle data is k, and the maximum length of data is k+8 in other sheet; If total length of data package to be sent is L Data, the data length that does not send is L as yet Left, pointer p points to the corresponding kernel buffering start address of communication socket (socket interface).
The present invention is further detailed explanation below in conjunction with accompanying drawing and example.As shown in Figure 1, the step of the inventive method is as follows:
(1) transmitting terminal carries out write-protect to the data that will send, and makes other program not read operation in addition to this segment data;
(2) transmitting terminal is by socket interface of system call application, and distribute the kernel cache blocks of a suitable size to give this interface from the overall Buffer Pool of system, the real-time network Buffer Pool that has some meshwork bufferings simultaneously for one of this interface initialization, be defined as rtskb_pool, the meshwork buffering piece is defined as rtskb.Like this, the meshwork buffering resource that needs in the data transmission procedure is with regard to directly taking from rtskb_pool and do not need dynamic application, the kernel cushion space that this meshwork buffering is relevant does not need dynamic application yet simultaneously, but directly points to suitable position in the kernel cache blocks of this real-time socket interface;
(3) transmitting terminal is judged above-mentioned data L to be sent DataWhether,, then need burst to send if greater than k greater than k.Burst enters step (4) if desired, otherwise enters step (5);
(4) transmitting terminal and receiving terminal adopt the response mode of shaking hands that the data to be sent that need burst are received and dispatched processing, and Fig. 2 has enumerated a kind of implementation, and its step is specific as follows:
(4.1) transmitting terminal is applied for a blank meshwork buffering piece rtskb from rtskb_pool, is used for depositing related data structures in process of transmitting.Hardware head, IP head, UDP head are packed in the kernel buffers that pointer p begins successively, form total data bag to be sent, make L Left=L Data
(4.2) user program of the transmitting terminal data correspondence that will send, size and these information of fragment packets number of each fragment packets put together, and form a small data packets, and this packet is called " message ", and message is sent to receiving terminal;
(4.3) after receiving terminal is received message, read data wherein, learn that according to data transmitting terminal will send the respective user program of data;
(4.4) after receiving terminal finds corresponding user program, will receive the DMA reception buffering of the memory headroom of data correspondence as network interface card, send a packet to transmitting terminal then, the message that is called " can send " does not send " can send " message to other transmitting terminal before receiving this segment data;
(4.5) transmitting terminal is received after the message of " can send " k+36 the byte that will begin from p by the dma mode DMA buffering as network interface card, and network interface card sends this segment data by dma mode then.After sending successfully, make L Left=L Left-k, mobile backward k the byte of p simultaneously;
(4.6) receiving terminal receives data with dma mode, after being about to data and being put into DMA buffering in the internal memory with dma mode, just put into the memory headroom of corresponding user program after, the mobile backward k byte of DMA buffering of receiving terminal;
(4.7) transmitting terminal blank rtskb piece of application from rtskb_pool again, transmitting terminal are packed hardware head and IP head into respectively in the kernel buffers that pointer p begins successively;
(4.8) transmitting terminal k+36 the byte that will begin from p is as the DMA buffering of network interface card, and network interface card sends this segment data by dma mode then.After sending successfully, make L Left=L Left-k-8, mobile backward k+8 the byte of p simultaneously.Receiving terminal receives data with dma mode, the mobile backward k+8 byte of DMA buffering of receiving terminal;
(4.9) if L LeftK+8, change step (4.7), otherwise enter step (4.10);
(4.10) the transmitting terminal L that will begin from p Left+ 36 bytes are as the DMA buffering of network interface card, and network interface card sends this segment data by dma mode then.After transmission finishes, revise the user and send buffer flag, make data to be sent be rewritten or to delete, corresponding network interface card buffering can be reused;
(4.11) receiving terminal finishes with dma mode reception packet, notifies user data to use by the callback mode, and network interface card can send the message of " can send " to other transmitting terminal simultaneously;
If wherein network interface card has the SCSI function, can carry out a part of control operation to data.If network interface card has programing function simultaneously, then step (4.2)-(4.5) by finishing alternately, do not need the CPU of transmitting-receiving two-end to participate in by the network interface card of transmitting terminal and receiving terminal, and whole fragment packets transmitting-receiving process adopts the RDMA mode.If network interface card does not possess above-mentioned functions, then the CPU by transmitting-receiving two-end finishes, and CPU usage is more, and communication delay is bigger.
(5) transmitting terminal and receiving terminal adopt direct mapping mode to transmit and receive data, and Fig. 3 has enumerated a kind of implementation, and its concrete steps are:
(5.1) transmitting terminal is applied for a blank meshwork buffering piece rtskb from rtskb_pool, is used for depositing related data structures in process of transmitting.Hardware head, IP head, UDP head are packed in the kernel buffers that pointer p begins successively;
(5.2) transmitting terminal length that pointer p is begun is L DataThe data of+36 bytes send buffering as the DMA of network interface card, and network interface card sends it with dma mode then;
(5.3) receiving terminal in the DMA buffering area of network interface card, is locked the Data Receiving received to the network interface card receiving terminal, makes it temporarily can not receive new packet;
(5.4) the pairing user program of data newly received of receiving terminal inspection, if find that the monolithic bag that receives is to be placed on correct position---be that network interface card receives in the free buffer piece in the buffering, change step (5.6), otherwise enter step (5.5);
(5.5) receive the idle data bag that distributes a rtksb structure the buffering from network interface card, in the past with the data copy;
(5.6) separate the lock of inter nic receiving terminal, notify the user, disconnect the contact of this packet and network interface card simultaneously, distribute a new rtskb bag to transfer to the network interface card management by the callback mode.
The general communication mode of the compatible Linux of this method.When adopting this method, at receiving terminal, if receive the non-real-time data bag, then the mode of fragment packets receives with treating not, then packet is transferred to Linux and handles.
In general real-time network environment, data are not long in the time of transmitting-receiving two-end transmission, so can all use the RMA mode when handling fragment packets.If under special circumstances, network delay is bigger, and one time interacting message is consuming time long.Then may occur in the RMA mode adopting the RMA scheme can reduce system effectiveness on the contrary like this for the time of mutual time of less packet segment primary information greater than secondary data copy.System tests the communication delay of all size packet when initialization, obtain the delay scope of this system, has a separation j in this scope, as packet size L DataDuring greater than j, the response scheme of shaking hands transport data communications postpones less than receiving terminal copy scheme; As packet size L DataReceiving terminal copy scheme transport data communications postpones less than the response scheme of shaking hands during less than j.As j〉when k or j 〉=k, this method with 0/1 copy mode as the replenishing of a kind of communication plan, general structure as shown in Figure 4, its step is as follows:
In above-mentioned steps (4) before, elder generation is to the big or small L of packet to be sent DataJudge, if L Dn taJ or L DataDuring 〉=j, transmitting terminal (4.1)-(4.12) is set by step handled data to be sent, otherwise transmitting terminal set by step (A.1-A.9) data to be sent are handled:
(A.1) transmitting terminal is applied for a blank meshwork buffering piece rtskb from rtskb_pool, is used for depositing related data structures in process of transmitting.Hardware head, IP head, UDP head are packed in the kernel buffers that pointer p begins successively, form total data bag to be sent, make L Left=L Data
(A.2) transmitting terminal k+36 byte that p is begun is as the DMA buffering of network interface card, and network interface card sends this segment data by dma mode then.After sending successfully, make L Left=L Left-k, mobile backward k the byte of p simultaneously.Receiving terminal is handled the reception data with general udp protocol after receiving data with dma mode;
(A.3) transmitting terminal blank rtskb data block of application from rtskb_pool again, transmitting terminal are packed hardware head and IP head into respectively in the kernel buffers that pointer p begins successively;
(A.4) transmitting terminal k+36 byte that p is begun is as the DMA buffering of network interface card, and network interface card sends this segment data by dma mode then.Make L after sending successfully Left=L Left-k-8, mobile backward k+8 the byte of p simultaneously.
(A.5) after receiving terminal receives data with dma mode, handle the reception data with general udp protocol;
(A.6) if L LeftK+8, change step (A.3), otherwise enter step (A.7);
(A.7) transmitting terminal L that p is begun Left+ 36 bytes are as the DMA buffering of network interface card, and network interface card sends this segment data by dma mode then;
(A.8) transmitting terminal transmission packet finishes, and revises the user and sends buffer flag, makes data to be sent be rewritten or to delete, and corresponding network interface card buffering can be reused.
(A.9) receiving terminal reception packet finishes, and notifies user data to use by the callback mode, and network interface card can send the message of " can send " to other transmitting terminal simultaneously.
Example
If three kinds of communication plans are respectively communication plan one in the background technology, communication plan two and communication plan three.Because communication plan one realizes on better simply hundred Broadcoms of realtek8139 geometric ratio, can not break through 100M/s on the bandwidth, so will not test.
Utilize this programme on real-time network communication protocol, to implement, need to stop the network interface card driver module of Linux before the present invention uses, load amended Rtnet module of the present invention and amended network interface card driver module and RTAI real-time process scheduler module then.On Rtnet, realize the back two kinds of Zero-copy modes in the background technology simultaneously.The testing hardware environment is: CPU is Intel 2.0G, 256 MB of memory, IntelPro1000 network interface card.Software environment is: Linux 9.0 operating systems, RTAI3.0r4 real-time kernel module and RTNET-0.7.1 real-time network communication module.Testing scheme is: send data from the user end to server end, server end postbacks data to client after receiving data, be the ping-pong test, the difference that client is got twice time promptly once circulates round poor (Round-Trip Time) as the testing time data.Can think that generally speaking Round-Trip Time is 2 times of communication delay.After tested, the k value is 1472, and the j value is 1024, so do not adopt additional project.Test result is as follows:
Packet size RTNET communication plan two communication plans three this method
(byte) (us) (us) (us) (us)
8 510 221 315 111
64 520 234 315 123
128 545 232 327 135
256 513 259 322 166
512 557 240 327 214
1k 556 279 354 242
2k 573 327 394 306
4k 597 383 425 396
8k 644 517 532 558
16k 749 716 675 681
20k 818 827 740 774
As seen, communication delay is less than second kind of communication mode in original Rtnet real-time scheduling and the background technology, the packet size during less than 4k communication delay more much smaller than RMA communication mode, the packet size during greater than 4k and the RMA communication mode similar, packet during greater than 8k communication delay be slightly larger than the RMA mode.Consider the ratio of packet in real time communication of all size, can think that this method has communication delay preferably under real time environment.

Claims (4)

1, the Zero-copy communication method under a kind of real time environment the steps include:
(1) transmitting terminal carries out write-protect to data to be sent;
(2) transmitting terminal sends buffering with the static system buffering as the user;
(3) transmitting terminal is judged the length L of above-mentioned data to be sent DataGreater than k, wherein k is the maximum length of data in the monolithic bag, if greater than k, enters step (4), otherwise enters step (5);
(4) transmitting terminal and receiving terminal adopt the response mode of shaking hands to send and receive the data to be sent that need burst, and the back sign off disposes;
(5) transmitting terminal and receiving terminal transmit and receive data by the direct mapping mode of network interface card, and the back sign off disposes.
2, method according to claim 1 is characterized in that: enter step (4) before, transmitting terminal is to the length L of data to be sent DataJudge, work as L DataDuring 〉=j, enter step (4), wherein j is that system communication postpones separation, otherwise adopts following 0/1 copy mode that data are handled, and the back sign off disposes;
The step of 0/1 copy mode is:
(A.1) transmitting terminal is applied for a blank meshwork buffering piece from the real-time network Buffer Pool, hardware head, IP head, UDP head are packed in the kernel buffers of distributing in the overall Buffer Pool of the system that pointer p begins successively, form total data bag to be sent, the data length L that order does not send as yet Left=L Data
(A.2) transmitting terminal k+36 byte that p is begun is as the DMA buffering of network interface card, and network interface card sends this segment data by dma mode then, send successfully after, make L Left=L Left-k, mobile backward k the byte of p after receiving terminal adopts dma mode to receive data, adopts udp protocol to handle and receives data simultaneously;
(A.3) transmitting terminal is applied for a blank meshwork buffering piece again from the real-time network Buffer Pool, and transmitting terminal is packed hardware head, IP head into respectively in the kernel buffers of distributing in the overall Buffer Pool of the system that pointer p begins successively;
(A.4) transmitting terminal k+36 byte that p is begun is as the DMA buffering of network interface card, and network interface card sends this segment data by dma mode then, makes L after sending successfully Left=L Left-k-8, mobile backward k+8 the byte of p simultaneously;
(A.5) after receiving terminal receives data with dma mode, adopt udp protocol to handle and receive data;
(A.6) if L LeftK+8, change step (A.3), otherwise enter step (A.7);
(A.7) transmitting terminal L that p is begun Left+ 36 bytes are as the DMA buffering of network interface card, and network interface card sends this segment data by dma mode then;
(A.8) transmitting terminal transmission packet finishes, and revises the user and sends buffer flag, makes data to be sent be rewritten or to delete, and corresponding network interface card buffering can be reused;
(A.9) receiving terminal reception packet finishes, and notifies the user after receiving.
3, method according to claim 1 and 2 is characterized in that: step (4) is:
(4.1) transmitting terminal is applied for a blank meshwork buffering piece from the real-time network Buffer Pool, hardware head, IP head, UDP head are packed in the kernel buffers of distributing in the overall Buffer Pool of the system that pointer p begins successively, form total data bag to be sent, the data length that order does not send as yet is L Left=L Data
(4.2) transmitting terminal will have the user program of the data correspondence that will send, the size of each fragment packets and " message " of fragment packets number to send to receiving terminal;
(4.3) receiving terminal is analyzed from " message " that receives and is found above-mentioned user program;
(4.4) receiving terminal will receive the DMA reception buffering of the memory headroom of data correspondence as network interface card, send the information of " can send " to transmitting terminal;
(4.5) transmitting terminal is received after the information of " can send " k+36 byte p being begun by the dma mode DMA buffering as network interface card, and network interface card sends this segment data by dma mode then, send successfully after, make L Left=L Left-k, mobile backward k the byte of p simultaneously;
(4.6) receiving terminal receives data with dma mode, the mobile backward k byte of DMA buffering of receiving terminal;
(4.7) transmitting terminal is applied for a blank meshwork buffering piece again from the real-time network Buffer Pool, in the kernel buffers of distributing in the overall Buffer Pool of the system that the pointer p that respectively hardware head and IP head packed into successively begins;
(4.8) transmitting terminal k+36 byte that p is begun is as the DMA buffering of network interface card, and network interface card sends this segment data by dma mode then, send successfully after, make L Left=L Left-k-8, mobile backward k+8 the byte of while p, receiving terminal adopts dma mode to receive data, the mobile backward k+8 byte of DMA buffering of receiving terminal;
(4.9) if L LeftK+8, change step (4.7), otherwise enter step (4.10);
(4.10) transmitting terminal L that p is begun Left+ 36 bytes are as the DMA buffering of network interface card, and network interface card sends this segment data by dma mode then; After transmission finishes, revise the user and send buffer flag, make data to be sent be rewritten or to delete, corresponding network interface card buffering can be reused;
(4.11) receiving terminal receives packet with dma mode, notifies the user after receiving.
4, method according to claim 3 is characterized in that: step (5) is:
(5.1) transmitting terminal is applied for a blank meshwork buffering piece from the real-time network Buffer Pool, and hardware head, IP head and UDP head are packed in the kernel buffers of distributing in the overall Buffer Pool of the system that pointer p begins successively;
(5.2) transmitting terminal length that pointer p is begun is L DataThe data of+36 bytes send buffering as the DMA of network interface card, and network interface card sends with dma mode then;
(5.3) receiving terminal in the DMA buffering area of network interface card, is locked the Data Receiving received to the network interface card receiving terminal;
(5.4) whether the user program of the data correspondence newly received of receiving terminal inspection leaves network interface card in and receives in the free buffer piece in the buffering, if change step (5.6), otherwise enter step (5.5);
(5.5) receive idle data bag of distribution the buffering, copies data from network interface card;
(5.6) separate the lock of inter nic receiving terminal, notify the user.
CNB2005100197843A 2005-11-11 2005-11-11 Zero-copy communication method under real-time environment Expired - Fee Related CN100486248C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100197843A CN100486248C (en) 2005-11-11 2005-11-11 Zero-copy communication method under real-time environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100197843A CN100486248C (en) 2005-11-11 2005-11-11 Zero-copy communication method under real-time environment

Publications (2)

Publication Number Publication Date
CN1801806A CN1801806A (en) 2006-07-12
CN100486248C true CN100486248C (en) 2009-05-06

Family

ID=36811564

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100197843A Expired - Fee Related CN100486248C (en) 2005-11-11 2005-11-11 Zero-copy communication method under real-time environment

Country Status (1)

Country Link
CN (1) CN100486248C (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546612A (en) * 2011-12-23 2012-07-04 华中科技大学 Remote procedure call implementation method based on remote direct memory access (RDMA) protocol in user mode

Families Citing this family (5)

* 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
CN102300257A (en) * 2011-07-21 2011-12-28 西北工业大学 Channel booking mechanism-based multi-channel multi-address access method in wireless ad hoc network
CN104753813B (en) * 2013-12-27 2018-03-16 国家计算机网络与信息安全管理中心 The method that DMA transmits message
CN104992711B (en) * 2015-05-27 2018-06-15 东南大学 A kind of LAN cluster duplex voice communication method based on mobile terminal
CN107066340B (en) * 2017-03-27 2020-05-12 恒安嘉新(北京)科技股份公司 LINUX-based uninterrupted line speed packet receiving and transmitting method and equipment

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于RDMA协议的零拷贝技术研究. 余胜生,初莹莹,周敬利,欧阳凯.计算机工程与应用,第2004.3期. 2004
基于RDMA协议的零拷贝技术研究. 余胜生,初莹莹,周敬利,欧阳凯.计算机工程与应用,第2004.3期. 2004 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546612A (en) * 2011-12-23 2012-07-04 华中科技大学 Remote procedure call implementation method based on remote direct memory access (RDMA) protocol in user mode
CN102546612B (en) * 2011-12-23 2015-07-08 华中科技大学 Remote procedure call implementation method based on remote direct memory access (RDMA) protocol in user mode

Also Published As

Publication number Publication date
CN1801806A (en) 2006-07-12

Similar Documents

Publication Publication Date Title
US11290544B2 (en) Data transmission methods applied to a proxy server or a backend server, and data transmission system
US9176911B2 (en) Explicit flow control for implicit memory registration
US7089289B1 (en) Mechanisms for efficient message passing with copy avoidance in a distributed system using advanced network devices
US7461160B2 (en) Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US11809367B2 (en) Programmed input/output mode
CN101304373B (en) Method and system for implementing high-efficiency transmission chunk data in LAN
US6799200B1 (en) Mechanisms for efficient message passing with copy avoidance in a distributed system
CN104796337A (en) Method and device for forwarding message
US7822053B2 (en) Apparatus and method for TCP buffer copy distributed parallel processing
CN100486248C (en) Zero-copy communication method under real-time environment
CN100535886C (en) Data-transmission system between nodes, and device and method
US8539112B2 (en) TCP/IP offload device
CN113064846A (en) Zero-copy data transmission method based on Rsockets protocol
EP4177763A1 (en) Data access method and related device
CN113127139B (en) Memory allocation method and device based on DPDK of data plane development kit
CN115334586A (en) Data forwarding method and device, computer equipment and storage medium
CN106131162A (en) A kind of method realizing network service agent based on IOCP mechanism
CN111404986B (en) Data transmission processing method, device and storage medium
CN110445580B (en) Data transmission method and device, storage medium, and electronic device
CN109743350B (en) Unloading implementation method for switching communication mode of scientific computing application image area
CN116471242A (en) RDMA-based transmitting end, RDMA-based receiving end, data transmission system and data transmission method
CN109861967A (en) Remote direct memory based on Spark Shuffle accesses system
US20040240388A1 (en) System and method for dynamic assignment of timers in a network transport engine
CN100391200C (en) Data transmitting method
CN101572689A (en) Method and device for transmitting data between network interface card and accelerators in multi-processor system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090506

Termination date: 20111111