[go: up one dir, main page]

CN106789708B - Multi-channel processing method in TCP/IP (Transmission control protocol/Internet protocol) unloading engine - Google Patents

Multi-channel processing method in TCP/IP (Transmission control protocol/Internet protocol) unloading engine Download PDF

Info

Publication number
CN106789708B
CN106789708B CN201611110885.6A CN201611110885A CN106789708B CN 106789708 B CN106789708 B CN 106789708B CN 201611110885 A CN201611110885 A CN 201611110885A CN 106789708 B CN106789708 B CN 106789708B
Authority
CN
China
Prior art keywords
tcp
channel
protocol
toe
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
CN201611110885.6A
Other languages
Chinese (zh)
Other versions
CN106789708A (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.)
No32 Research Institute Of China Electronics Technology Group Corp
Original Assignee
No32 Research Institute Of China Electronics Technology Group Corp
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 No32 Research Institute Of China Electronics Technology Group Corp filed Critical No32 Research Institute Of China Electronics Technology Group Corp
Priority to CN201611110885.6A priority Critical patent/CN106789708B/en
Publication of CN106789708A publication Critical patent/CN106789708A/en
Application granted granted Critical
Publication of CN106789708B publication Critical patent/CN106789708B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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/12Protocol engines
    • 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/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention provides a multi-channel processing method in a TCP/IP (Transmission control protocol/Internet protocol) unloading engine, which comprises the following steps of: the method comprises the following steps that firstly, experiments and debugging are carried out through a field programmable gate array FPGA, and a multichannel processing technology in the TOE is realized; step two, integrating the multi-channel processing technology in the TOE into an ASIC chip of the TOE to perform network protocol processing; step three, customizing a software interface, and selecting different channels through a port; step four, in the TCP protocol processing module, the option part of the TCP header is defined in an improved way; and step five, in the handshake stage of TCP connection establishment, during the first handshake, the active requester adds the source channel number, and the destination channel is not distributed and is set to be all zero. The invention can solve the problems of data congestion and connection interruption, greatly improves the working efficiency of the TOE, realizes the function of multi-port TCP connection and data transmission, realizes the high-level protocol of hardware processing TCP/IP protocol, and provides reliable guarantee for data transmission in a high-speed network environment.

Description

Multi-channel processing method in TCP/IP (Transmission control protocol/Internet protocol) unloading engine
Technical Field
The invention relates to the field of computer networks, in particular to a multi-channel processing method in a TCP/IP (transmission control protocol/Internet protocol) unloading engine.
Background
With the increasing development of internet technology, the TCP/IP protocol suite has become a standard network communication protocol. However, in a high-speed network environment, the traditional TCP/IP software protocol stack consumes excessive CPU performance due to the characteristics of context switching overhead and redundant data replication, and reliable data indicates that the current main stream processor cannot meet the performance requirement of protocol processing when the network speed reaches 10 Gbps. The TOE (TCP offload Engine) technology of the hardware device processing protocol is commonly used in server or high-speed network environments. The TCP/IP protocol is divided into an application layer, a transport layer, a network layer and a data link layer from top to bottom in sequence. Compared with the traditional software protocol stack, the TOE technology also incorporates the protocol processing of a transport layer and a network layer into hardware processing so as to improve the processing speed of a data packet. A typical implementation structure of the TOE system is shown in fig. 1, wherein the TOE hardware implementation module mainly processes the main protocols of the transport layer and the network layer, and the most important protocols are ARP protocol, IP protocol, UDP protocol, and TCP protocol.
The TCP protocol is connection-oriented and is handled in the TOE system. The connection needs to be established before the data transmission starts and needs to be disconnected at the end of the transmission. And when receiving and sending data, the protocol processing module will respond to the last data. Meanwhile, in order to keep the smooth of a data channel, the flow control of the data to be transmitted and received is carried out in a sliding window mode. Because the speed of the hardware processing protocol is far higher than that of software, data accumulation at the interface between the software and the hardware can exist, and the congestion problem is caused. Especially when multiple ports establish a TCP connection simultaneously, the failure of hardware to process data in order will result in connection interruption or failure to respond. The connection is simultaneously established by a plurality of ports in a software protocol stack, and the connection can only be processed in series in the hardware realization at present. When the TOE hardware processes the TCP protocol, a plurality of channels are established to manage data storage and connection, so that the transmission efficiency and the data processing speed can be greatly improved.
Disclosure of Invention
Aiming at the defects in the prior art, the invention aims to provide a multichannel processing method in a TCP/IP (transmission control protocol/Internet protocol) unloading engine, which can solve the problems of data congestion and connection interruption by adding a multichannel processing technology into a TOE (time of arrival), greatly improve the working efficiency of the TOE, realize the function of multi-port TCP connection and data transmission, realize the high-level protocol of hardware processing TCP/IP protocol and provide reliable guarantee for data transmission in a high-speed network environment.
According to an aspect of the present invention, there is provided a multi-channel processing method in a TCP/IP offload engine, comprising the steps of:
the method comprises the following steps that firstly, experiments and debugging are carried out through a field programmable gate array FPGA, and a multichannel processing technology in the TOE is realized;
step two, integrating the multi-channel processing technology in the TOE into an ASIC chip of the TOE to perform network protocol processing;
step three, customizing a software interface, and selecting different channels through a port;
step four, in the TCP protocol processing module, the option part of the TCP header is defined in an improved way;
step five, in the handshake phase of TCP connection establishment, during the first handshake, the active requester adds the source channel number, and the destination channel is not allocated and is set to be all zero;
step six, if the multichannel technology is not adopted at one end, the channel number is set to be all zero, data come from equipment which does not use the multichannel technology, the data are matched through a source port number and a destination port number of a TCP header, and a TCP protocol processing module puts the data into the channel number according to the identified corresponding storage channel number;
and step seven, when the connection is finished, after the data of the storage channel is completely transmitted, the TCP protocol processing module controls to release the storage space of the channel, and the channel is used for establishing new connection next time.
Preferably, the TCP protocol processing module is capable of performing channel allocation on the transmitted and received data.
Preferably, the multi-channel processing method in the TCP/IP offload engine can perform functions of multi-port TCP connection and data transmission.
Compared with the prior art, the invention has the following beneficial effects: the invention can solve the problems of data congestion and connection interruption by adding a multi-channel processing technology in the TOE, greatly improves the working efficiency of the TOE, realizes the function of multi-port TCP connection and data transmission, realizes the hardware processing of a high-level protocol of a TCP/IP protocol, and provides reliable guarantee for data transmission in a high-speed network environment.
Drawings
Other features, objects and advantages of the invention will become more apparent upon reading of the detailed description of non-limiting embodiments with reference to the following drawings:
FIG. 1 is a flow chart of a typical TOE system implementation architecture;
FIG. 2 is a flow chart of the structure of the present invention for implementing the multi-channel technique;
FIG. 3 is a diagram of improved TCP data in accordance with the present invention;
FIG. 4 is a flow chart of an implementation of the FIFO windowing technique of the present invention.
Detailed Description
The present invention will be described in detail with reference to specific examples. The following examples will assist those skilled in the art in further understanding the invention, but are not intended to limit the invention in any way. It should be noted that variations and modifications can be made by persons skilled in the art without departing from the spirit of the invention. All falling within the scope of the present invention.
As shown in fig. 1 to 4, the present invention provides a multi-channel processing method in a TCP/IP offload engine, which includes the following steps:
the method comprises the following steps that firstly, experiments and debugging are carried out through a field programmable gate array FPGA, and a multichannel processing technology in the TOE is realized;
step two, integrating the multi-channel processing technology in the TOE into an ASIC chip of the TOE to perform network protocol processing;
in the selection of the channel space, if only a small amount of data is needed to be stored, the requirement can be met by adopting a high-speed SRAM register chip. If a large amount of data is to be realized and the number of channels is large, a storage device can be hung externally to realize a multi-channel technology.
Step three, customizing a software interface, and selecting different channels through a port;
but at the upper layer of software, the processing is generalized, and the method has good compatibility with the current protocol stack processing. That is, if one end is a hardware protocol processing server using the TOE technology and the other end is a terminal using the conventional protocol stack processing, data transmission can be performed normally without any special configuration between them. The technology can be widely applied to network environments of the server, such as cloud services, large-scale data rooms, the Internet of things and other environments with extremely high requirements on network speed.
Step four, in the TCP protocol processing module, the option part of the TCP header is defined in an improved way;
as shown in fig. 3, a source channel number and a destination channel number are added after the 20-byte general header, each 2 bytes being used to identify the storage channel number of the TCP packet. The channel number can quickly identify the channel space required to store the data packet.
Step five, in the handshake phase of TCP connection establishment, during the first handshake, the active requester adds the source channel number, and the destination channel is not allocated and is set to be all zero;
if the multi-channel technology is adopted after the destination end is reached, the channel number is distributed to the connection, the destination channel number of the TCP header of the ack is the source channel number of the request end, and the source channel number is the newly distributed channel number.
Step six, if the multichannel technology is not adopted at one end, the channel number is set to be all zero, data come from equipment which does not use the multichannel technology, the data are matched through a source port number and a destination port number of a TCP header, and a TCP protocol processing module puts the data into the channel number according to the identified corresponding storage channel number;
and step seven, when the connection is finished, after the data of the storage channel is completely transmitted, the TCP protocol processing module controls to release the storage space of the channel, and the channel is used for establishing new connection next time.
As shown in fig. 4, it is implemented in a FIFO (first in first out) manner, and the position of the next read and write is determined by using the sequence number and the acknowledgement number of the TCP header as pointers.
The invention designs a multi-channel TCP connection processing technology in the TOE realization, and realizes the function of multi-port TCP connection and data transmission. Different channels of the whole system adopt different storage spaces, so that data package can be effectively realized. Wherein the TCP protocol processing module can perform channel allocation on the sent and received data. According to the actual situation, the channel number can be set, and the storage space of each channel is distributed, so that the storage space of the channel can be effectively utilized.
The multi-channel processing method in the TCP/IP unloading engine can perform multi-port TCP connection and perform the function of data transmission, so that the data transmission is quicker and more convenient, the processing speed is accelerated, and the time cost is saved.
In the TCP protocol processing module, the option part of the TCP header is defined in an improved way. The 20-byte generic header is followed by the source and destination channel numbers, 2 bytes each, which are used to identify the stored channel number of the TCP packet. The channel number can quickly identify the channel space required to store the data packet. The channel numbers in the different cases function as follows:
in the handshake phase of TCP connection establishment, during the first handshake, the active requester adds the source channel number, and the destination channel is not allocated and is set to all zeros. If the multi-channel technology is adopted after the destination end is reached, the channel number is distributed to the connection, the destination channel number of the TCP header of the ack is the source channel number of the request end, and the source channel number is the newly distributed channel number.
If one end does not adopt the multi-channel technology, the channel number is set to be all zero, data come from equipment which does not use the multi-channel technology, the source port number and the destination port number of the TCP header are matched, and the TCP protocol processing module can identify the corresponding storage channel number and put the data into the storage channel number.
And thirdly, when the connection is finished and the data of the storage channel is completely transmitted, the TCP protocol processing module controls to release the storage space of the channel, and the channel can be used for establishing new connection next time.
The number of the storage channels realized by the invention can be designed according to the actual situation, and more channels mean that more connection number can be realized. But also consumes more memory space, so that space utilization is sufficiently efficient when a balance needs to be made. The size of the memory channel space corresponds to a window size in a hardware implementation. FIFO (first in first out) mode is adopted to realize the method, and the position of next reading and writing is determined by using the serial number and the confirmation number of the TCP header as pointers.
The multi-channel processing technology in the TOE can be used for carrying out experiment and debugging through a Field Programmable Gate Array (FPGA), and then can be integrated into an ASIC chip of the TOE to carry out network protocol processing. In the selection of the channel space, if only a small amount of data is needed to be stored, the requirement can be met by adopting a high-speed SRAM register chip. If a large amount of data is to be realized and the number of channels is large, a storage device can be hung externally to realize a multi-channel technology. The multichannel technology adopted by the invention is mainly used in a TCP protocol processing module, can improve the processing speed of the TOE to the TCP protocol and relieve the congestion phenomenon. The designed TOE chip can be integrated into a network card of a server, so that the high-level protocol of a TCP/IP protocol is systematically processed by hardware, and reliable guarantee is provided for data transmission in a high-speed network environment.
In summary, the present invention provides an implementable design method for hardware processing of multi-channel data according to the content of the TCP protocol, and by adding the multi-channel processing technology to the TOE, the problems of data congestion and connection interruption can be solved, the working efficiency of the TOE is greatly improved, the function of multi-port TCP connection and data transmission is implemented, the high-level protocol of the hardware processing TCP/IP protocol is implemented, and reliable guarantee is provided for data transmission in a high-speed network environment.
The foregoing description of specific embodiments of the present invention has been presented. It is to be understood that the present invention is not limited to the specific embodiments described above, and that various changes and modifications may be made by one skilled in the art within the scope of the appended claims without departing from the spirit of the invention.

Claims (3)

1. A multi-channel processing method in a TCP/IP offload engine, which is characterized in that the multi-channel processing method in the TCP/IP offload engine comprises the following steps:
the method comprises the following steps that firstly, experiments and debugging are carried out through a field programmable gate array FPGA, and a multichannel processing technology in the TOE is realized;
step two, integrating the multi-channel processing technology in the TOE into an ASIC chip of the TOE to perform network protocol processing;
step three, customizing a software interface, and selecting different channels through a port;
step four, in the TCP protocol processing module, the option part of the TCP header is defined in an improved way; adding a source channel number and a destination channel number after the 20-byte general header, wherein each 2 bytes are used for identifying the storage channel number of the TCP packet;
step five, in the handshake phase of TCP connection establishment, during the first handshake, the active requester adds the source channel number, and the destination channel is not allocated and is set to be all zero;
step six, if the multichannel technology is not adopted at one end, the channel number is set to be all zero, data come from equipment which does not use the multichannel technology, the data are matched through a source port number and a destination port number of a TCP header, and a TCP protocol processing module puts the data into the channel number according to the identified corresponding storage channel number;
and step seven, when the connection is finished, after the data of the storage channel is completely transmitted, the TCP protocol processing module controls to release the storage space of the channel, and the channel is used for establishing new connection next time.
2. The method of claim 1, wherein the TCP protocol processing module performs channel allocation for the transmitted and received data.
3. The method of claim 1, wherein the method of processing multiple channels in a TCP/IP offload engine performs functions of multi-port TCP connection and data transmission.
CN201611110885.6A 2016-12-06 2016-12-06 Multi-channel processing method in TCP/IP (Transmission control protocol/Internet protocol) unloading engine Active CN106789708B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611110885.6A CN106789708B (en) 2016-12-06 2016-12-06 Multi-channel processing method in TCP/IP (Transmission control protocol/Internet protocol) unloading engine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611110885.6A CN106789708B (en) 2016-12-06 2016-12-06 Multi-channel processing method in TCP/IP (Transmission control protocol/Internet protocol) unloading engine

Publications (2)

Publication Number Publication Date
CN106789708A CN106789708A (en) 2017-05-31
CN106789708B true CN106789708B (en) 2020-10-09

Family

ID=58874402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611110885.6A Active CN106789708B (en) 2016-12-06 2016-12-06 Multi-channel processing method in TCP/IP (Transmission control protocol/Internet protocol) unloading engine

Country Status (1)

Country Link
CN (1) CN106789708B (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110830381B (en) * 2018-08-10 2021-10-26 华为技术有限公司 Congestion control method and related equipment
CN110958213B (en) * 2018-09-27 2021-10-22 华为技术有限公司 Method, TOE component and network device for processing TCP message
CN110109852B (en) * 2019-04-03 2020-11-24 华东计算技术研究所(中国电子科技集团公司第三十二研究所) The Method of Realizing TCP_IP Protocol in Hardware
CN111917738B (en) * 2020-07-14 2022-03-18 华东计算技术研究所(中国电子科技集团公司第三十二研究所) Processing method and system capable of supporting network high-level protocols
CN114138707B (en) * 2021-11-30 2023-02-21 江南大学 A Data Transmission System Based on FPGA

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1910869A (en) * 2003-12-05 2007-02-07 艾拉克瑞技术公司 TCP/IP offload device with reduced sequential processing
CN101827019A (en) * 2009-02-06 2010-09-08 富士通株式会社 Network Interface Unit
CN103929369A (en) * 2014-05-07 2014-07-16 北京邮电大学 A TCP-Friendly Multiplex Control Mechanism
CN106034084A (en) * 2015-03-16 2016-10-19 华为技术有限公司 A data transmission method and device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7324540B2 (en) * 2002-12-31 2008-01-29 Intel Corporation Network protocol off-load engines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1910869A (en) * 2003-12-05 2007-02-07 艾拉克瑞技术公司 TCP/IP offload device with reduced sequential processing
CN101827019A (en) * 2009-02-06 2010-09-08 富士通株式会社 Network Interface Unit
CN103929369A (en) * 2014-05-07 2014-07-16 北京邮电大学 A TCP-Friendly Multiplex Control Mechanism
CN106034084A (en) * 2015-03-16 2016-10-19 华为技术有限公司 A data transmission method and device

Also Published As

Publication number Publication date
CN106789708A (en) 2017-05-31

Similar Documents

Publication Publication Date Title
US12368790B2 (en) Multi-path transport design
US9088451B2 (en) System and method for network interfacing in a multiple network environment
US20240171507A1 (en) System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic)
CN106789708B (en) Multi-channel processing method in TCP/IP (Transmission control protocol/Internet protocol) unloading engine
US10880235B2 (en) Remote shared server peripherals over an ethernet network for resource virtualization
US11979340B2 (en) Direct data placement
US10044616B2 (en) Co-existence of routable and non-routable RDMA solutions on the same network interface
US9143467B2 (en) Network interface controller with circular receive buffer
US6226680B1 (en) Intelligent network interface system method for protocol processing
US20070208820A1 (en) Apparatus and method for out-of-order placement and in-order completion reporting of remote direct memory access operations
US8539089B2 (en) System and method for vertical perimeter protection
EP3744066B1 (en) Method and device for improving bandwidth utilization in a communication network
EP4027249A1 (en) Connection management in a network adapter
US10999364B1 (en) Emulation of memory access transport services
US7937474B2 (en) Method and apparatus for offloading network processes in a computer storage system
EP1460806A2 (en) System and method for network interfacing in a multiple network environment
CN117221225A (en) Network congestion notification method, device and storage medium
EP1540473B1 (en) System and method for network interfacing in a multiple network environment
US8090832B1 (en) Method and apparatus for allocating network protocol operation resources
US12316555B2 (en) Multi-channel connection management in a network adapter
US7149816B1 (en) System and method for peer-level communication with a network interface card
CN100472450C (en) Systems and methods for network connectivity in a multi-network environment

Legal Events

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