CN105610840B - Data receiver method, device and network interface card - Google Patents

Data receiver method, device and network interface card Download PDF

Info

Publication number
CN105610840B
CN105610840B CN201511032143.1A CN201511032143A CN105610840B CN 105610840 B CN105610840 B CN 105610840B CN 201511032143 A CN201511032143 A CN 201511032143A CN 105610840 B CN105610840 B CN 105610840B
Authority
CN
China
Prior art keywords
window
tcp
receiving window
edge
data
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.)
Active
Application number
CN201511032143.1A
Other languages
Chinese (zh)
Other versions
CN105610840A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201511032143.1A priority Critical patent/CN105610840B/en
Publication of CN105610840A publication Critical patent/CN105610840A/en
Application granted granted Critical
Publication of CN105610840B publication Critical patent/CN105610840B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

An embodiment of the present invention provides a kind of data receiver method, device and network interface cards, are related to field of data transmission, the method includes:Window reception data are received according to TCP, the left hand edge by the way that TCP to be received to window reduces TCP by way of moving to right target range and receives window;When the right hand edge of TCP reception windows is not up to the edge upper limit, TCP by way of receiving the right hand edge of window moving to right TCP after zoom receives window, and executes reduce the step of TCP receives window in such a way that the left hand edge that TCP is received to window moves to right target range again;When the right hand edge of TCP reception windows reaches the edge upper limit, it executes again and reduces the step of TCP receives window in such a way that the left hand edge that TCP is received to window moves to right target range, when TCP receives window and is contracted to close, data DMA that historical reception is arrived to user's space.Solve the problems, such as that data transmission can interrupt in the prior art.

Description

Data receiving method, device and network card
Technical Field
The embodiment of the invention relates to the field of data transmission, in particular to a data receiving method, a data receiving device and a network card.
Background
In the data Transmission process conforming to the data Transmission Protocol (TCP), after the sending end sends a TCP data packet to the receiving end, the network card in the receiving end receives the TCP data packet, and directly accesses the TCP data packet to a Central Processing Unit (CPU), and the CPU copies the TCP data packet to the user space.
The zero-copy receiving technology is a technology that a network card directly DMA (direct memory access) a received TCP data packet to a user space, and a CPU (central processing unit) is not needed in the middle, so that the load of the CPU is reduced, and the performance of the CPU is improved. A data receiving method based on zero copy receiving technology comprises the following steps: the network card receives the TCP data packet according to the TCP receiving window, the left edge of the TCP receiving window is moved to the right by the distance corresponding to the data size of the TCP data packet, and when the left edge of the TCP receiving window is moved to the right edge, namely the TCP receiving window is reduced to be closed, the network card DMA (direct memory access) the received TCP data packet to the user space. And then, when the CPU confirms that the user space receives the data and the data can still be stored in the user space, the CPU sends a window opening instruction to the network card, the network card reopens a TCP receiving window after receiving the window opening instruction, and continues to receive the data according to the reopened TCP receiving window until the user space is full of the data. When the TCP receiving window opened for the last time is closed, the data size of the data received by the network card in an accumulated mode is equal to the space size of the user space.
In the above scheme, data can still be stored in the user space, but after the TCP receiving window is closed, the sending end cannot continue to send data to the network card, and data transmission is interrupted.
Disclosure of Invention
In order to solve the problem in the prior art that data transmission is interrupted due to the closing of a TCP receiving window when a user space can still store data, embodiments of the present invention provide a data receiving method, an apparatus, and a network card, where the technical scheme is as follows:
in the process of data transmission conforming to the TCP, a 16-bit receiving window field is set in the header of the TCP, and the field is used to inform the sending end of the data size of the data which can be currently received, that is, to indicate the size of the buffer area for receiving the data. In general, we refer to the size indicated by this field as the window size of the TCP receive window.
The window size of the TCP receive window may decrease with the data size of the received data. Specifically, after the network card receives the data sent by the sending end, in order to represent that the data that the network card can receive becomes small, the network card may narrow the TCP receiving window by shifting the left edge of the TCP receiving window to the right by a distance corresponding to the data size of the received data. For example, when the network card receives 10kb of data, it indicates that the data size of the data that the network card can continuously receive is reduced by 10kb, so at this time, the network card can shift the left edge of the TCP receiving window by a distance corresponding to 10kb to the right. Therefore, as the data is received, the TCP receiving window will be continuously reduced, and when the TCP receiving window is reduced to be closed, the sending end will not be able to send data to the network card any more, and the data receiving process is ended.
When each application process runs, the application process applies for a user space in the CPU, and the size of the user space is the data size of the data to be received. The initial position of the left edge of the TCP receive window corresponds to the starting position of the user space.
Different from the foregoing solutions, in a first aspect of an embodiment of the present invention, there is provided a data receiving method, including:
when each application process runs, the application process applies for a user space in the CPU, and the size of the user space is the size of data to be received. In the embodiment of the present invention, in order to enable the network card to receive data of the space size of the user space, an edge upper limit may be preset in the network card, and when the left edge of the TCP receiving window is shifted to the right to the edge upper limit, the size of data accumulated and received by the network card is the same as the space size of the user space, so that the problem that the received data cannot fill the user space completely or the received data overflows the user space does not occur. Wherein, the upper limit of the edge is the maximum upper limit which can be reached by the right edge of the TCP receiving window set according to the space size of the user space.
In the actual data receiving process, the network card receives data sent by a sending end according to an opened TCP receiving window, and after the data sent by the sending end is received, the TCP receiving window is reduced in a mode that the left edge of the TCP receiving window is moved to the right by a target distance, wherein the target distance is a distance corresponding to the size of the received data; then, the network card detects whether the right edge of the TCP receiving window reaches the edge upper limit, if not, the TCP receiving window after being reduced is enlarged in a mode of shifting the right edge of the TCP receiving window to the right, and the step of reducing the TCP receiving window according to the data size of the received data is executed again; and when the detection result shows that the right edge of the TCP receiving window reaches the upper edge limit, the TCP receiving window is continuously reduced according to the data size of the continuously received data, and all the historically received data are DMA-controlled to the user space when the TCP receiving window is closed.
Amplifying the TCP receiving window in a mode of shifting the right edge of the TCP receiving window to the right when the right edge of the TCP receiving window does not reach the upper limit of the edge, and continuously receiving data according to the amplified TCP receiving window until the right edge of the TCP receiving window reaches the upper limit of the edge and the TCP receiving window is closed, and DMA (direct memory access) accumulated received data to a user space; the problems that in the prior art, when data can be stored in a user space, a TCP receiving window is closed and data transmission is interrupted are solved, and the effect of avoiding data transmission interruption is achieved.
In a first possible implementation manner of the first aspect, the step of enlarging the reduced TCP receive window by shifting a right edge of the TCP receive window to the right may include:
shifting the right edge of the reduced TCP receiving window by the distance of the data size of the received data to the right;
determining the left edge of the amplified TCP receiving window according to the left edge of the reduced TCP receiving window; alternatively, the window size of the enlarged TCP receive window is determined.
With reference to the first possible implementation manner of the first aspect, in a second possible implementation manner, the step of determining a window size of the amplified TCP receive window may include:
determining the window size of the amplified TCP receiving window according to the sum of the window size of the reduced TCP receiving window and the data size of the received data;
or,
and determining the window size of the amplified TCP receiving window according to the window size of the TCP receiving window before reduction.
With reference to the first possible implementation manner of the first aspect, in a third possible implementation manner, the left edge of the enlarged TCP receiving window is determined according to the left edge of the reduced TCP receiving window; or, before determining the window size of the amplified TCP receive window, the method further includes:
detecting whether the right edge of the TCP receiving window after right shift exceeds the upper limit of the edge;
if the detection result is that the edge upper limit is exceeded, determining the right edge of the amplified TCP receiving window according to the edge upper limit;
determining the window size of the amplified TCP receiving window according to the determined right edge of the TCP receiving window and the left edge of the TCP receiving window before amplification;
if the detection result is that the edge upper limit is not exceeded, determining the left edge of the amplified TCP receiving window according to the left edge of the reduced TCP receiving window; or, determining the window size of the amplified TCP receiving window.
Before the TCP receiving window is amplified, whether the right edge of the TCP receiving window after right shifting reaches the edge upper limit or not is detected, and when the edge upper limit is reached, the edge upper limit is determined as the right edge of the amplified TCP receiving window, so that the problem that the right edge of the TCP receiving window exceeds the upper limit and received data can overflow a user space is avoided.
With reference to the first aspect and any one of the first possible implementation manner to the fourth possible implementation manner of the first aspect, in a fifth possible implementation manner, when a right edge of the TCP receiving window does not reach an upper edge limit, before the TCP receiving window after being scaled up is scaled up by shifting the right edge of the TCP receiving window to the right, the method further includes:
detecting whether a window amplification condition of a TCP receiving window is met;
and if the window amplification condition is met, executing a step of amplifying the reduced TCP receiving window in a mode of shifting the right edge of the TCP receiving window to the right when the right edge of the TCP receiving window does not reach the upper limit of the edge.
With reference to the fifth possible implementation manner of the first aspect, in a sixth possible implementation manner, the detecting whether the window enlargement condition of the TCP receive window is satisfied includes:
detecting whether the data receiving mode is a zero-copy receiving mode;
and/or the presence of a gas in the gas,
and detecting whether the window size of the reduced TCP receiving window is lower than a preset threshold value.
With reference to the first aspect and any one of the first possible implementation manner to the fourth possible implementation manner of the first aspect, in a seventh possible implementation manner, after a TCP receiving window is amplified, a notification message is sent to a sending end of data, where the notification message is used to notify the sending end of the window size of the amplified TCP receiving window.
Specifically, the network card may send the TCP message to the sending end after amplifying the TCP receiving window each time. Or when the size of the received data reaches the preset proportion of the window size of the TCP receiving window, the TCP message is sent to the sending end.
After the TCP receiving window is amplified, the TCP message used for informing the data sending end of the window size of the amplified TCP receiving window is sent to the sending end, so that the sending end can continue to send data to the network card according to the received TCP message, and the problem of data sending interruption caused by the closing of the TCP receiving window maintained by the sending end is avoided.
Before sending the TCP message to the sending end, if the extension factor of the TCP receiving window is preset between the sending end and the receiving end, the network card may divide the window size of the current TCP receiving window by the extension factor, and carry the obtained result in the TCP message to send to the sending end.
In a second aspect, a data receiving apparatus is provided, which may include at least one unit configured to implement the data receiving method of the first aspect.
In a third aspect, a network card is provided, and the network card includes the data receiving apparatus of the second aspect.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings needed to be used in the description of the embodiments will be briefly introduced below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without creative efforts.
FIG. 1 is a schematic diagram of an implementation environment in which various embodiments of the present invention are implemented.
Fig. 2 is a schematic diagram of a data receiving apparatus according to an embodiment of the present invention.
Fig. 3A is a flowchart of a method of receiving data according to an embodiment of the present invention.
Fig. 3B is a flowchart of another method of a data receiving method according to an embodiment of the present invention.
Fig. 4A is a flowchart of a method of receiving data according to another embodiment of the present invention.
Fig. 4B is a diagram illustrating a window change of a TCP receive window according to another embodiment of the present invention.
Fig. 4C is a flowchart of another method of a data receiving method according to another embodiment of the present invention.
Fig. 4D is a flowchart of another method of a data receiving method according to another embodiment of the present invention.
Fig. 4E is another diagram illustrating a window change of a TCP receive window according to another embodiment of the present invention.
Fig. 5 is a block diagram of a data receiving apparatus according to an embodiment of the present invention.
Fig. 6 is a block diagram of a data receiving apparatus according to another embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are some, but not all, embodiments of the present invention. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
Reference is made to fig. 1, which illustrates a schematic diagram of an implementation environment in which all or a portion of the exemplary embodiments of the invention may be implemented. As shown in FIG. 1, network card 110 and CPU120 may be included in this implementation environment.
The network card 110 is a network card with TCP protocol offload function. In practice, the network card 110 may be a network card including any one of a TCP Offload Engine (TOE) chip, an Integrated Circuit (ASIC), a programmable logic device (plc) or a network processor.
The CPU120 has a user space provided therein for storing received data. Optionally, there may be one or at least two user spaces, and each user space corresponds to one application process. In practical implementation, the space size of the user space is the data size of the data to be received.
In each embodiment of the present invention, an edge upper limit may be preset in the network card, where the edge upper limit is an upper limit set according to the space size of the user space. Specifically, when the right edge of the TCP receiving window reaches the edge upper limit and the left edge moves to the right to the edge upper limit, the network card accumulates the data size of the received data according to the TCP receiving window and is the same as the space size of the user space, that is, the received data can just fill the whole user space, and the problem that the user space cannot be filled or the received data can overflow the user space cannot occur.
Referring to fig. 2, a schematic structural diagram of a data receiving apparatus according to an exemplary embodiment of the present invention is shown. The data receiving device may be implemented as all or part of the network card 110 shown in fig. 1, and the data receiving device is implemented as all of the network card in the embodiment for example. The network card may include: a processor 220, and a communication interface 240 coupled to the processor 220. Those skilled in the art will appreciate that the network card configuration shown in fig. 2 is not meant to be limiting and may include more or fewer components than those shown, or some combination of components, or a different arrangement of components. For example, the network card further includes a memory 260, a power supply, and the like. Wherein:
the processor 220 is a control center of the network card, connects each part of the entire network card by using various interfaces and lines, and performs various functions of the network card and processes data by running or executing software programs and/or modules stored in the memory 260 and calling data stored in the memory 260, thereby integrally controlling the network card. Optionally, processor 220 may include one or more processing cores; optionally, the processor 220 may integrate an application processor and a modem processor, wherein the application processor mainly handles operating systems, user interfaces, application programs, and the like, and the modem processor mainly handles wireless communications. It is understood that the modem processor may not be integrated into the processor 220, and the modem processor may be separately implemented as a chip.
The communication interface 240 is used to receive data transmitted by a data transmitting end or transmit data to the CPU.
Memory 260 may be used to store software programs and modules. The processor 220 executes various functional applications and data processing by executing software programs and modules stored in the memory 260. The memory 260 may mainly include a storage program area and a storage data area, wherein the storage program area may store an operating system 261, a receiving module 262, an amplifying module 263, a transmitting module 264, and at least one application 265 required for other functions, and the like; the storage data area may store data (such as audio data, a phonebook, etc.) created according to the use of the network card, and the like. Further, the memory 260 may be implemented by any type of volatile or non-volatile storage device or combination thereof.
Referring to fig. 3A, a flowchart of a method for receiving data according to an embodiment of the present invention is shown, where the data receiving method is used in the network card 110 shown in fig. 1 for example. As shown in fig. 3A, the data receiving method may include:
step 301, according to the TCP receiving window receiving data, the TCP receiving window is reduced by shifting the left edge of the TCP receiving window by the target distance to the right.
The target distance is a distance corresponding to the data size of the received data, and the window size of the TCP receive window is used to indicate the size of the buffer area for receiving the data.
And 302, when the right edge of the TCP receiving window does not reach the upper limit of the edge, amplifying the reduced TCP receiving window in a mode of shifting the right edge of the TCP receiving window to the right, and executing the step of reducing the TCP receiving window in a mode of shifting the left edge of the TCP receiving window to the right by a target distance according to the data received by the TCP receiving window again.
The upper limit of the edge is the maximum upper limit which can be reached by the right edge of the TCP receiving window preset according to the user space.
Step 303, when the right edge of the TCP receiving window reaches the upper edge limit, the step of reducing the TCP receiving window by shifting the left edge of the TCP receiving window to the right by the target distance according to the TCP receiving window receiving data is executed again, and when the TCP receiving window is reduced to be closed, the historically received data is DMA-transferred to the user space.
In summary, in the data receiving method provided in this embodiment, when the right edge of the TCP receiving window does not reach the upper limit of the edge, the TCP receiving window is enlarged by shifting the right edge of the TCP receiving window to the right, and data continues to be received according to the enlarged TCP receiving window until the right edge of the TCP receiving window reaches the upper limit of the edge and the TCP receiving window is closed, and the accumulated received data is DMA to the user space; the problems that in the prior art, when data can be stored in a user space, a TCP receiving window is closed and data transmission is interrupted are solved, and the effect of avoiding data transmission interruption is achieved.
The above embodiment is only exemplified by amplifying the TCP receiving window in a manner of shifting the right edge of the TCP receiving window to the right when the right edge of the TCP receiving window does not reach the upper limit of the edge, optionally, referring to fig. 3B, before amplifying the TCP receiving window, the network card may further perform the following steps:
step 304, detecting whether a window enlarging condition of a TCP receiving window is satisfied.
The corresponding step 302 may be replaced by: if the window enlarging condition is met, when the right edge of the TCP receiving window does not reach the upper limit of the edge, the reduced TCP receiving window is enlarged in a mode of shifting the right edge of the TCP receiving window to the right, and the step of reducing the TCP receiving window in a mode of shifting the left edge of the TCP receiving window to the right by the target distance according to the data received by the TCP receiving window is executed again. Similarly, step 303 may be replaced with: if the window enlarging condition is met, when the right edge of the TCP receiving window reaches the upper edge limit, the step of reducing the TCP receiving window in a mode of moving the left edge of the TCP receiving window to the right by a target distance according to the TCP receiving window receiving data is executed again, and when the TCP receiving window is reduced to be closed, the historically received data is directly accessed to a DMA (direct memory access) to a user space.
And if the detection result is that the window amplification condition is not met, at the moment, the network card can continue to receive data according to the reduced TCP receiving window, and continue to reduce the window size of the TCP receiving window according to the data size of the received data, and when the TCP receiving window is reduced to be closed, the network card DMA (direct memory access) the received data to the user space. This embodiment will not be described in detail.
Wherein, step 304 may include at least one of the following two possible implementations:
first, it is detected whether the data reception mode is a zero-copy reception mode.
And secondly, detecting whether the window size of the reduced TCP receiving window is lower than a preset threshold value.
For the above two cases, the above case will be explained in different embodiments below.
Referring to fig. 4A, a flowchart of a method for receiving data according to an embodiment of the present invention is shown, where in this embodiment, the data receiving method is used in the network card shown in fig. 1, and the network card performs detection through the first possible implementation manner, for example, as shown in fig. 4A, the data receiving method may include:
step 401, receiving context configuration information configured by the CPU, and opening a TCP receiving window according to the context configuration information.
Before the receiving end receives the data sent by the sending end, the CPU in the receiving end can configure the context configuration information to the network card, the network card opens a TCP receiving window according to the context configuration information configured by the CPU, and then receives the data according to the opened TCP receiving window. Wherein, the context configuration information may include a configured data receiving mode, a space size of the user space, and a physical address of the user space; the data reception mode may be a normal reception mode or a zero-copy reception mode.
The step of configuring the data reception mode by the CPU may include: CPU detects whether the space size of user space is large enough compared with the window size of TCP receiving window; if the size is large enough, determining that the data receiving mode is a zero-copy receiving mode; and if not, determining the data receiving mode as the normal receiving mode.
The step of detecting, by the CPU, whether the size of the space of the user space is sufficiently larger than the window size of the TCP receive window may include: the CPU detects whether the difference value between the space size of the user space and the window size of the TCP receiving window reaches a threshold value; alternatively, the CPU may detect whether the space size of the user space is larger than the window size of the m TCP receive window. m is a preset value.
The initial window size of the TCP receive window may be the size specified in the protocol. For example, the window size of the TCP receive window may be 100 kb.
Step 402, according to the TCP receiving window receiving data, the TCP receiving window is reduced by shifting the left edge of the TCP receiving window by the target distance to the right.
The target distance is a distance corresponding to the data size of the received data. For example, taking the window size of the TCP receiving window as 100kb as an example, please refer to window 41 in fig. 4B, after the network card receives 10kb of data, the network card may shift the left edge of the TCP receiving window by a distance corresponding to 10 kb.
Since data is transmitted in the form of TCP packets during TCP data transmission, the network card will also receive data in the form of TCP packets. The data size of the received data may be the size of one TCP data packet, or may be the size of multiple data packets, which is not limited in this embodiment.
In step 403, it is detected whether the data reception mode is the zero-copy reception mode.
After reducing the window size of the TCP receive window, the network card may detect whether the current data receiving mode is a zero-copy receiving mode. Optionally, the network card may detect whether the data receiving mode configured in the context configuration information received in the history is a zero-copy receiving mode.
In step 404, if the data receiving mode is the zero-copy receiving mode, it is detected whether the right edge of the TCP receiving window reaches the upper limit of the edge.
The upper limit of the edge is the maximum upper limit which can be reached by the right edge of the TCP receiving window preset according to the user space. In actual implementation, the upper limit of the edge is the position corresponding to the ending physical address of the user space. That is, when the right edge of the TCP receiving window is the upper limit of the edge and the TCP receiving window is closed, the network card receives data according to the TCP receiving window, and the size of the data is equal to the size of the space of the user space.
If the detection result indicates that the data receiving mode is the normal receiving mode, it indicates that the window enlarging condition is not satisfied at this time, and the flow is not limited in this embodiment.
In step 405, if the right edge of the TCP receiving window does not reach the upper limit of the edge, the right edge of the TCP receiving window after being reduced is shifted to the right by the data size of the received data.
If the detection result is that the right edge of the TCP receiving window does not reach the upper limit of the edge, it indicates that the network card cannot fill up the entire user space according to the data received by the TCP receiving window in an accumulated manner, and at this time, in order to avoid the problem that data can be stored in the user space continuously but data transmission is interrupted after the TCP receiving window is closed, the network card may shift the right edge of the TCP receiving window after being reduced by the distance of the data size of the received data.
For example, referring to the 42 windows in fig. 4B, after the network card receives 10kb of data, the network card shifts the right edge of the reduced TCP receiving window by a distance corresponding to 10kb to the right.
Step 406, determining the left edge of the amplified TCP receiving window according to the left edge of the reduced TCP receiving window; alternatively, the window size of the enlarged TCP receive window is determined, and after the enlarged TCP receive window is determined, step 402 is performed again.
After right edge of the TCP receive window is shifted right, the network card may determine the amplified TCP receive window and continue to receive data according to the determined TCP receive window.
The step of determining the amplified TCP receiving window by the network card may include the following two possible implementation manners:
(1) and the network card determines the left edge of the amplified TCP receiving window according to the left edge of the reduced TCP receiving window.
And the network card determines the left edge of the reduced TCP receiving window as the left edge of the amplified TCP receiving window, and the determined left edge and the right edge jointly determine the amplified TCP receiving window.
(2) And the network card determines the window size of the amplified TCP receiving window.
This step may include two possible implementations as follows:
A. and determining the window size of the amplified TCP receiving window according to the sum of the window size of the reduced TCP receiving window and the data size of the received data.
In a possible implementation manner, the network card may calculate a sum of a window size of the reduced TCP receiving window and a data size of the received data, and determine the calculated sum as the window size of the enlarged TCP receiving window. Namely: the window size of the enlarged TCP receive window is the window size of the reduced TCP receive window + the data size of the received data. And uniquely determining the window size of the amplified TCP receiving window according to the determined right edge of the amplified TCP receiving window and the calculated window size of the amplified TCP receiving window.
When the data is amplified for the first time, the data size of the received data is as follows: accumulating the data size of the received data between the current time and the initial time of the received data; during the nth amplification, the data size of the received data is: the data size of the data received between the current time and the last amplification time, n > 1.
B. And determining the window size of the amplified TCP receiving window according to the window size of the TCP receiving window before reduction.
In another possible implementation manner, the network card may also directly determine the window size of the TCP receiving window before the reduction as the window size of the TCP receiving window after the amplification. For example, still taking the initial size of the TCP receive window as 100kb for example, the network card may determine that the window size of the amplified TCP receive window is 100 kb.
After determining the amplified TCP receive window, the network card may continue to receive data according to the amplified TCP receive window, that is, execute step 402 again.
Step 407, if the right edge of the TCP receive window reaches the upper limit of the edge, step 402 is executed again, and when the TCP receive window is reduced to be closed, the data received in history is DMA-transferred to the user space.
If the right edge of the TCP receiving window reaches the upper edge limit, it indicates that the data accumulatively received by the network card can fill up the whole user space when the TCP receiving window is closed, and at this time, the network card can continue to receive data according to the reduced TCP receiving window and continue to reduce the TCP receiving window according to the received data. And when the TCP receiving window is reduced to be closed, the network card DMA (direct memory access) all the data received in history to the user space. Optionally, the network card DMA-transmits all the data received in history to the user space corresponding to the physical address of the user space in the context configuration information.
It should be noted that, between step 405 and step 406, referring to fig. 4C, the data receiving method may further include the following steps:
step 408, detecting whether the right edge of the right-shifted TCP receiving window exceeds the upper limit of the edge.
After the right edge of the TCP receiving window is shifted to the right, the right edge of the TCP receiving window may exceed the upper limit of the edge, so that the situation is avoided.
And step 409, if the detection result is that the edge upper limit is exceeded, determining the right edge of the amplified TCP receiving window according to the edge upper limit.
And if the detection result is that the edge upper limit is exceeded, the network card determines the edge upper limit as the right edge of the TCP receiving window at the moment. For example, referring to fig. 4B, after the network card shifts the right edge of the TCP receiving window to the right by X, the right edge ab after the right shift exceeds the edge upper limit max, and at this time, the network card may determine the edge upper limit max as the right edge of the amplified TCP receiving window.
Step 410, determining the window size of the amplified TCP receiving window according to the determined right edge of the TCP receiving window and the left edge of the TCP receiving window before amplification, and after determining the amplified TCP receiving window, performing step 402 again.
After determining the right edge of the amplified TCP receiving window, the network card may determine the amplified TCP receiving window according to the determined right edge and the right edge of the TCP receiving window before amplification. For example, in conjunction with fig. 4B, the network card may determine that the enlarged TCP receiving window is the window 43.
After determining the enlarged TCP receive window, step 402 is performed again.
If the detection result does not exceed the upper limit of the edge, step 406 may be replaced with: if the detection result is that the edge upper limit is not exceeded, determining the left edge of the amplified TCP receiving window according to the left edge of the reduced TCP receiving window; alternatively, the window size of the enlarged TCP receive window is determined, and after the enlarged TCP receive window is determined, step 402 is performed again.
It should be noted that, in this embodiment, the right edge of the TCP receiving window is merely shifted to the right by the distance corresponding to the data size of the received data, optionally, the right edge of the TCP receiving window may also be shifted to the right by another preset distance, which is not limited in this embodiment. And when the TCP receiving window is shifted to the right by another preset distance, the window size of the enlarged TCP receiving window may be the sum of the window size of the reduced TCP receiving window and the other preset distance, which is not described herein again.
In summary, in the data receiving method provided in this embodiment, when the right edge of the TCP receiving window does not reach the upper limit of the edge, the TCP receiving window is enlarged by shifting the right edge of the TCP receiving window to the right, and data continues to be received according to the enlarged TCP receiving window until the right edge of the TCP receiving window reaches the upper limit of the edge and the TCP receiving window is closed, and the accumulated received data is DMA to the user space; the problems that in the prior art, when data can be stored in a user space, a TCP receiving window is closed and data transmission is interrupted are solved, and the effects of avoiding data transmission interruption and improving TCP bandwidth are achieved.
In this embodiment, after the CPU configures the context configuration information to the network card, the network card may automatically complete the steps of data reception and window size adjustment of the TCP receiving window, and the CPU does not need to participate in the middle of the process, thereby further reducing the load of the CPU and improving the performance of the CPU. Meanwhile, the time delay caused by instruction interaction when the network card receives the window opening instruction sent by the CPU is also avoided.
When the user space is large, the network card does not need to participate in the process of receiving the data of the space size of the user space, so that the load of the CPU is greatly reduced, and the bandwidth of the TCP is improved.
It should be noted that, in the above embodiment, the network card is only used to detect whether the data receiving mode is the zero-copy receiving mode, and amplify the TCP receiving window when the detection result is the zero-copy receiving mode, optionally, the network card may also detect whether the window size of the reduced TCP receiving window is lower than a preset threshold, and amplify the TCP receiving window when the window size is lower than the preset threshold. That is, referring to fig. 4D, step 403 in the above embodiment may be replaced by: and detecting whether the window size of the reduced TCP receiving window is lower than a preset threshold value. Accordingly, step 404 may be replaced with: and if the upper limit is lower than the preset threshold, detecting whether the right edge of the TCP receiving window reaches the upper limit of the edge.
The preset threshold may be a specific value, such as 20kb, or may be a preset percentage of the initial window size of the TCP receive window, for example, the preset threshold may be 30% of the initial window size of the TCP receive window.
Taking the original window size of the TCP receiving window as 100kb and the preset threshold value as 30% of the window size of the TCP receiving window as an example, please refer to fig. 4E, when the window size of the reduced TCP receiving window is smaller than 30kb, the network card will enlarge the reduced TCP receiving window. The specific amplification method is similar to the above embodiments, and the details of this embodiment are not repeated herein.
In addition, in actual implementation, the network card may further amplify the TCP receiving window when detecting that the data receiving mode is the zero-copy receiving mode and the window size of the reduced TCP receiving window is lower than the preset threshold, which is not limited in this embodiment.
It should be noted that, in each of the above embodiments, after the network card enlarges the reduced TCP receiving window, the network card may send a TCP message to the sending end. Wherein, the TCP message is used to inform the sending end of the window size of the TCP receiving window.
Optionally, the step of sending the TCP packet to the sending end by the network card may include the following two possible implementation manners:
first, after each amplification of the TCP receive window, the TCP message is sent to the sender.
And secondly, when the size of the received data reaches the preset proportion of the window size of the TCP receiving window, the TCP message is sent to the sending end.
When the size of the received data reaches a preset proportion of the window size of the TCP receiving window, for example, 90%, the sending end may think that the TCP receiving window is about to be closed, and at this time, in order to avoid the problem that the TCP receiving window known by the sending end is closed and then stops sending data to cause data interruption, the network card may send a TCP message to the sending end. The TCP packet carries the window size of the current TCP receiving window.
If an extension factor of a TCP receive window is preset between the sending end and the receiving end, before sending the TCP message to the sending end, the network card may divide the window size of the current TCP receive window by the extension factor, and carry the calculated result in the TCP message to send to the sending end, which is not limited in this embodiment.
By sending the TCP message to the sending end, the sending end can know the size of the window of the amplified TCP receiving window, and the problem that data sending is interrupted because the sending end does not continue to send data to the receiving end when the TCP receiving window maintained by the sending end is closed is solved.
It should be noted that the data receiving method may be implemented by a processor of the network card calling a corresponding module in a memory of the network card.
Referring to fig. 5, a block diagram of a data receiving apparatus according to an embodiment of the present invention is shown, and as shown in fig. 5, the data receiving apparatus may include: a receiving unit 510, a window enlarging unit 520, and a data transmitting unit 530.
A receiving unit 510, configured to receive data according to a TCP receiving window, and narrow the TCP receiving window by shifting a left edge of the TCP receiving window by a target distance to the right;
a window enlarging unit 520, configured to enlarge the reduced TCP receiving window in a manner of moving the right edge of the TCP receiving window to the right when the right edge of the TCP receiving window does not reach the upper limit of the edge; the receiving unit 510 is further configured to, after the window enlarging unit 520 enlarges the TCP receiving window, execute the step of reducing the TCP receiving window by shifting the left edge of the TCP receiving window by the target distance to the right after receiving data according to the TCP receiving window again; the upper limit of the edge is the maximum upper limit which can be reached by the right edge of the TCP receiving window preset according to the user space;
the receiving unit 510 is further configured to, when the right edge of the TCP receive window reaches the upper edge limit, perform the step of receiving data according to the TCP receive window again and reducing the TCP receive window by shifting the left edge of the TCP receive window by the target distance to the right; a data sending unit 530, configured to, when the TCP receiving window is reduced to be closed, directly access, to the user space, the historically received data from the DMA.
In summary, the data receiving apparatus provided in this embodiment enlarges the TCP receiving window by shifting the right edge of the TCP receiving window to the right when the right edge of the TCP receiving window does not reach the upper limit of the edge, and continues to receive data according to the enlarged TCP receiving window until the right edge of the TCP receiving window reaches the upper limit of the edge and the TCP receiving window is closed, and DMA is performed to the user space on the data that is cumulatively received; the problems that in the prior art, when data can be stored in a user space, a TCP receiving window is closed and data transmission is interrupted are solved, and the effects of avoiding data transmission interruption and improving TCP bandwidth are achieved.
Referring to fig. 6, a block diagram of a data receiving apparatus according to an embodiment of the present invention is shown, and as shown in fig. 6, the data receiving apparatus may include: a receiving unit 610, a window enlarging unit 620, and a data transmitting unit 630.
A receiving unit 610, configured to receive data according to a TCP receiving window, and narrow the TCP receiving window by shifting a left edge of the TCP receiving window by a target distance to the right;
a window enlarging unit 620, configured to enlarge the reduced TCP receiving window in a manner of moving the right edge of the TCP receiving window to the right when the right edge of the TCP receiving window does not reach the upper limit of the edge; the receiving unit 610 is further configured to execute the step of reducing the TCP receive window by shifting the left edge of the TCP receive window by the target distance to the right after the window enlarging unit 620 enlarges the TCP receive window and receives data according to the TCP receive window again; the upper limit of the edge is the maximum upper limit which can be reached by the right edge of the TCP receiving window preset according to the user space;
the receiving unit 610 is further configured to, when the right edge of the TCP receive window reaches the upper edge limit, perform the step of receiving data according to the TCP receive window again and reducing the TCP receive window by shifting the left edge of the TCP receive window by the target distance to the right; a data sending unit 630, configured to, when the TCP receiving window is reduced to be closed, directly access, to the user space, the data received in the history by the DMA.
Optionally, the window enlarging unit 620 includes:
a right shift subunit 621, configured to shift the right edge of the reduced TCP receiving window by the data size of the received data;
a first determining subunit 622, configured to determine, according to the left edge of the reduced TCP receiving window, the left edge of the enlarged TCP receiving window; or, the second determining subunit 623 is configured to determine the window size of the amplified TCP receive window.
Optionally, the second determining subunit 623 is further configured to:
determining the window size of the amplified TCP receiving window according to the sum of the reduced window size of the TCP receiving window and the data size of the received data;
or,
and determining the window size of the amplified TCP receiving window according to the window size of the TCP receiving window before reduction.
Optionally, the window enlarging unit 620 further includes:
a detecting subunit 624, configured to detect whether a right edge of the TCP receiving window after right shifting exceeds the upper edge limit;
a third determining subunit 625, configured to determine, when the detection result of the detecting subunit 624 is that the edge upper limit is exceeded, a right edge of the amplified TCP receiving window according to the edge upper limit;
a fourth determining subunit 626, configured to determine the window size of the TCP receiving window after amplification according to the right edge of the TCP receiving window determined by the third determining subunit 625 and the left edge of the TCP receiving window before amplification.
Optionally, the first determining subunit 622 is further configured to, when the detection result of the detecting subunit 624 does not exceed the edge upper limit, perform the step of determining the left edge of the enlarged TCP receiving window according to the left edge of the reduced TCP receiving window;
or,
the second determining subunit 623 is further configured to, when the detection result of the detecting subunit 624 does not exceed the edge upper limit, perform the step of determining the window size of the amplified TCP receiving window.
Optionally, when the right edge of the TCP receive window does not reach the upper limit of the edge, before the TCP receive window after being enlarged and reduced is enlarged and reduced by shifting the right edge of the TCP receive window to the right, the apparatus further includes:
a detecting unit 640, configured to detect whether a window enlarging condition of the TCP receive window is satisfied before the window enlarging unit enlarges the reduced TCP receive window;
the window enlarging unit 620 is further configured to execute the step of enlarging the reduced TCP receiving window in a manner of moving the right edge of the TCP receiving window to the right when the right edge of the TCP receiving window does not reach the upper limit of the edge when the detection result of the detecting unit 640 is that the window enlarging condition is satisfied.
Optionally, the detecting unit 640 is further configured to:
detecting whether the data receiving mode is a zero-copy receiving mode;
and/or the presence of a gas in the gas,
and detecting whether the window size of the reduced TCP receiving window is lower than a preset threshold value.
Optionally, the apparatus further comprises:
a message sending unit 650, configured to send a notification message to the sending end of the data after the TCP receiving window is amplified, where the notification message is used to notify the sending end of the window size of the TCP receiving window after the TCP receiving window is amplified.
In summary, the data receiving apparatus provided in this embodiment enlarges the TCP receiving window by shifting the right edge of the TCP receiving window to the right when the right edge of the TCP receiving window does not reach the upper limit of the edge, and continues to receive data according to the enlarged TCP receiving window until the right edge of the TCP receiving window reaches the upper limit of the edge and the TCP receiving window is closed, and DMA is performed to the user space on the data that is cumulatively received; the problems that in the prior art, when data can be stored in a user space, a TCP receiving window is closed and data transmission is interrupted are solved, and the effects of avoiding data transmission interruption and improving TCP bandwidth are achieved.
In this embodiment, after the CPU configures the context configuration information to the network card, the network card may automatically complete the steps of data reception and window size adjustment of the TCP receiving window, and the CPU does not need to participate in the middle of the process, thereby further reducing the load of the CPU and improving the performance of the CPU. Meanwhile, the time delay caused by instruction interaction when the network card receives the window opening instruction sent by the CPU is also avoided.
When the user space is large, the network card does not need to participate in the process of receiving the data of the space size of the user space, so that the load of the CPU is greatly reduced, and the bandwidth of the TCP is improved.
The embodiment of the present invention further provides a network card, where the network card may include the data receiving apparatus shown in fig. 5 or fig. 6, and the network card may be used to implement the data receiving method.
To sum up, the network card provided in this embodiment amplifies the TCP receiving window by shifting the right edge of the TCP receiving window to the right when the right edge of the TCP receiving window does not reach the upper limit of the edge, and continues to receive data according to the amplified TCP receiving window until the right edge of the TCP receiving window reaches the upper limit of the edge and the TCP receiving window is closed, and DMA transfers the accumulated received data to the user space; the problems that in the prior art, when data can be stored in a user space, a TCP receiving window is closed and data transmission is interrupted are solved, and the effects of avoiding data transmission interruption and improving TCP bandwidth are achieved.
In this embodiment, after the CPU configures the context configuration information to the network card, the network card may automatically complete the steps of data reception and window size adjustment of the TCP receiving window, and the CPU does not need to participate in the middle of the process, thereby further reducing the load of the CPU and improving the performance of the CPU. Meanwhile, the time delay caused by instruction interaction when the network card receives the window opening instruction sent by the CPU is also avoided.
When the user space is large, the network card does not need to participate in the process of receiving the data of the space size of the user space, so that the load of the CPU is greatly reduced, and the bandwidth of the TCP is improved.
The above-mentioned serial numbers of the embodiments of the present invention are merely for description and do not represent the merits of the embodiments.
It will be understood by those skilled in the art that all or part of the steps for implementing the above embodiments may be implemented by hardware, or may be implemented by a program instructing relevant hardware, where the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a magnetic disk or an optical disk, etc.
The above description is only for the purpose of illustrating the preferred embodiments of the present invention and is not to be construed as limiting the invention, and any modifications, equivalents, improvements and the like that fall within the spirit and principle of the present invention are intended to be included therein.

Claims (17)

1. A method for receiving data, the method comprising:
receiving data according to a Transmission Control Protocol (TCP) receiving window, and reducing the TCP receiving window in a mode of shifting the left edge of the TCP receiving window to the right by a target distance, wherein the target distance is a distance corresponding to the data size of the received data, and the window size of the TCP receiving window is used for representing the size of a buffer area for receiving the data;
when the right edge of the TCP receiving window does not reach the upper limit of the edge, the TCP receiving window after being scaled up and down is scaled up in a mode of shifting the right edge of the TCP receiving window to the right, and the step of receiving data according to the TCP receiving window and scaling down the TCP receiving window in a mode of shifting the left edge of the TCP receiving window to the right by a target distance is executed again; the upper limit of the edge is the maximum upper limit which can be reached by the right edge of the TCP receiving window preset according to a user space, and the space size of the user space is the data size of data to be received;
and when the right edge of the TCP receiving window reaches the upper edge limit, executing the step of receiving data according to the TCP receiving window again, and reducing the TCP receiving window in a mode of moving the left edge of the TCP receiving window to the right by a target distance, and when the TCP receiving window is reduced to be closed, directly accessing the historical received data to the user space through a memory by DMA.
2. The method according to claim 1, wherein the enlarging the reduced TCP receive window by right-shifting a right edge of the TCP receive window comprises:
shifting the right edge of the reduced TCP receiving window to the right by a distance corresponding to the data size of the received data;
determining the left edge of the amplified TCP receiving window according to the left edge of the reduced TCP receiving window; or determining the window size of the amplified TCP receiving window.
3. The method according to claim 2, wherein the determining the window size of the enlarged TCP receive window comprises:
determining the window size of the amplified TCP receiving window according to the sum of the reduced window size of the TCP receiving window and the data size of the received data;
or,
and determining the window size of the amplified TCP receiving window according to the window size of the TCP receiving window before reduction.
4. The method according to claim 2, wherein said determining the left edge of the TCP receive window after the scaling up is based on the left edge of the TCP receive window after the scaling down; or, before determining the window size of the amplified TCP receive window, the method further includes:
detecting whether the right edge of the TCP receiving window after the right shift exceeds the edge upper limit;
if the detection result is that the edge upper limit is exceeded, determining the right edge of the amplified TCP receiving window according to the edge upper limit;
and determining the window size of the amplified TCP receiving window according to the determined right edge of the TCP receiving window and the left edge of the TCP receiving window before amplification.
5. The method of claim 4, further comprising:
if the detection result is that the edge upper limit is not exceeded, executing the step of determining the left edge of the amplified TCP receiving window according to the left edge of the reduced TCP receiving window; or, determining the window size of the amplified TCP receiving window.
6. The method according to any one of claims 1 to 5, wherein before enlarging the reduced TCP receive window by shifting the right edge of the TCP receive window to the right when the right edge of the TCP receive window does not reach the upper edge limit, the method further comprises:
detecting whether a window amplification condition of the TCP receiving window is met;
and if the window amplification condition is met, executing the step of amplifying the reduced TCP receiving window in a mode of shifting the right edge of the TCP receiving window to the right when the right edge of the TCP receiving window does not reach the upper edge limit.
7. The method according to claim 6, wherein said detecting whether a window enlarging condition of the TCP receiving window is satisfied comprises:
detecting whether the data receiving mode is a zero-copy receiving mode;
and/or the presence of a gas in the gas,
and detecting whether the window size of the reduced TCP receiving window is lower than a preset threshold value.
8. The method of any of claims 1 to 5, further comprising:
and after the TCP receiving window is amplified, sending a notification message to the sending end of the data, wherein the notification message is used for notifying the sending end of the window size of the amplified TCP receiving window.
9. A data receiving apparatus, the apparatus comprising:
a receiving unit, configured to receive data according to a transmission control protocol TCP receiving window, and reduce the TCP receiving window by shifting a left edge of the TCP receiving window by a target distance to the right;
the window amplifying unit is used for amplifying the reduced TCP receiving window in a mode of shifting the right edge of the TCP receiving window to the right when the right edge of the TCP receiving window does not reach the upper limit of the edge; the receiving unit is further configured to execute the step of receiving data according to the TCP receive window again after the window enlarging unit enlarges the TCP receive window, and reducing the TCP receive window by shifting a left edge of the TCP receive window by a target distance to the right; the upper limit of the edge is the maximum upper limit which can be reached by the right edge of the TCP receiving window preset according to a user space, and the space size of the user space is the data size of data to be received;
the receiving unit is further configured to execute the step of receiving data according to the TCP receive window again when the right edge of the TCP receive window reaches the edge upper limit, and reducing the TCP receive window by shifting the left edge of the TCP receive window by a target distance to the right; and the data sending unit is used for directly accessing the historical received data into the user space by the DMA when the TCP receiving window is reduced to be closed.
10. The apparatus of claim 9, wherein the window enlarging unit comprises:
a right shift subunit, configured to shift the right edge of the reduced TCP receiving window by a distance corresponding to the data size of the received data;
a first determining subunit, configured to determine, according to the left edge of the reduced TCP receiving window, the left edge of the enlarged TCP receiving window; or, the second determining subunit is configured to determine the window size of the amplified TCP receiving window.
11. The apparatus of claim 10, wherein the second determining subunit is further configured to:
determining the window size of the amplified TCP receiving window according to the sum of the reduced window size of the TCP receiving window and the data size of the received data;
or,
and determining the window size of the amplified TCP receiving window according to the window size of the TCP receiving window before reduction.
12. The apparatus of claim 10, wherein the window enlarging unit further comprises:
a detecting subunit, configured to detect whether a right edge of the TCP receiving window after the right shift exceeds the upper edge limit;
a third determining subunit, configured to determine, when the detection result of the detecting subunit exceeds the edge upper limit, a right edge of the amplified TCP receiving window according to the edge upper limit;
a fourth determining subunit, configured to determine, according to the right edge of the TCP receiving window determined by the third determining subunit and the left edge of the TCP receiving window before amplification, a window size of the TCP receiving window after amplification.
13. The apparatus of claim 12,
the first determining subunit is further configured to, when the detection result of the detecting subunit is that the edge upper limit is not exceeded, execute the step of determining the left edge of the enlarged TCP receiving window according to the left edge of the reduced TCP receiving window;
or,
the second determining subunit is further configured to, when the detection result of the detecting subunit does not exceed the edge upper limit, perform the step of determining the window size of the amplified TCP receiving window.
14. The apparatus according to any of claims 9 to 13, wherein before enlarging the reduced TCP receive window by shifting the right edge of the TCP receive window to the right when the right edge of the TCP receive window does not reach the upper edge limit, the apparatus further comprises:
a detection unit, configured to detect whether a window enlargement condition of the TCP receive window is satisfied before the window enlargement unit enlarges the reduced TCP receive window;
the window amplifying unit is further configured to execute the step of amplifying the reduced TCP receiving window in a manner of shifting the right edge of the TCP receiving window to the right when the right edge of the TCP receiving window does not reach the upper edge limit when the detection result of the detecting unit satisfies the window amplifying condition.
15. The apparatus of claim 14, wherein the detection unit is further configured to:
detecting whether the data receiving mode is a zero-copy receiving mode;
and/or the presence of a gas in the gas,
and detecting whether the window size of the reduced TCP receiving window is lower than a preset threshold value.
16. The apparatus of any of claims 9 to 13, further comprising:
and the message sending unit is used for sending a notification message to the sending end of the data after the TCP receiving window is amplified, wherein the notification message is used for notifying the sending end of the window size of the amplified TCP receiving window.
17. A network card comprising a data receiving device according to any one of claims 9 to 16.
CN201511032143.1A 2015-12-31 2015-12-31 Data receiver method, device and network interface card Active CN105610840B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511032143.1A CN105610840B (en) 2015-12-31 2015-12-31 Data receiver method, device and network interface card

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511032143.1A CN105610840B (en) 2015-12-31 2015-12-31 Data receiver method, device and network interface card

Publications (2)

Publication Number Publication Date
CN105610840A CN105610840A (en) 2016-05-25
CN105610840B true CN105610840B (en) 2018-09-11

Family

ID=55990378

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511032143.1A Active CN105610840B (en) 2015-12-31 2015-12-31 Data receiver method, device and network interface card

Country Status (1)

Country Link
CN (1) CN105610840B (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1778079A (en) * 2003-06-17 2006-05-24 思科技术公司 Methods and devices for the coordination of flow control between a TCP/IP network and other networks
CN101540769A (en) * 2008-03-19 2009-09-23 索尼株式会社 Information processing unit, client device, information processing method and system
CN103324592A (en) * 2013-06-24 2013-09-25 华为技术有限公司 Data migration control method, data migration method and data migration device
CN104022998A (en) * 2013-03-01 2014-09-03 北京瑞星信息技术有限公司 Network transmission data virus detection processing method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101631110B (en) * 2008-07-15 2013-01-02 国际商业机器公司 Device and method for dynamically determining connection building mechanism based on relative position

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1778079A (en) * 2003-06-17 2006-05-24 思科技术公司 Methods and devices for the coordination of flow control between a TCP/IP network and other networks
CN101540769A (en) * 2008-03-19 2009-09-23 索尼株式会社 Information processing unit, client device, information processing method and system
CN104022998A (en) * 2013-03-01 2014-09-03 北京瑞星信息技术有限公司 Network transmission data virus detection processing method
CN103324592A (en) * 2013-06-24 2013-09-25 华为技术有限公司 Data migration control method, data migration method and data migration device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于通用平台的TCP/IP协议还原技术研究;王耕;《中国优秀硕士学位论文全文数据库 信息科技辑》;20091115(第11期);第I139-171页 *

Also Published As

Publication number Publication date
CN105610840A (en) 2016-05-25

Similar Documents

Publication Publication Date Title
CN110278157B (en) Congestion control method and network equipment
CN106789718A (en) The jamming control method of data transfer, equipment, server and programmable device
WO2017071442A1 (en) Load sharing method, apparatus and system
EP3780542A1 (en) Data transmission method and device
WO2016112728A1 (en) Data transmission method, network server, user terminal and system
US11258717B2 (en) Method for sending service packet, network device, and system
US20120129509A1 (en) Optimizing long term evolution (lte) capacity using an adaptive dormancy timer
EP2930895B1 (en) Traffic control method for near-field communication software stack logic link layer
CN107329923B (en) Method for adjusting bus time sequence, storage medium and terminal
WO2022227895A1 (en) Data transmission method and apparatus, terminal device, and computer-readable storage medium
CN108574735B (en) Data processing method, terminal and computer readable storage medium
CN103746938A (en) Method and device for transmitting data packet
CN107819853B (en) A kind of data transmission method and device
EP2933963A1 (en) Offload method, device and system
CN105610840B (en) Data receiver method, device and network interface card
US9882820B2 (en) Communication apparatus
CN102711191A (en) Method and device for dynamically adjusting data service transmission rate of mobile network quality
CN117014379A (en) Code rate control method, device, electronic equipment and storage medium
CN105517058A (en) Mobile terminal data transmission control method and mobile terminal data transmission control device
JP2019114947A (en) Communication device, control method of communication device, and program
JP2016171451A (en) Communication device
CN102571280B (en) The method of transfer of data and device
CN112003796A (en) Broadcast message processing method, system, equipment and computer storage medium
CN101227688A (en) Method for transmitting data through USB interface on mobile phone
CN105450480A (en) Information processing method and device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant