CN116074401B - Method for realizing transmission layer protocol on programmable exchanger - Google Patents

Method for realizing transmission layer protocol on programmable exchanger Download PDF

Info

Publication number
CN116074401B
CN116074401B CN202310358801.4A CN202310358801A CN116074401B CN 116074401 B CN116074401 B CN 116074401B CN 202310358801 A CN202310358801 A CN 202310358801A CN 116074401 B CN116074401 B CN 116074401B
Authority
CN
China
Prior art keywords
tcp
programmable switch
data packet
data
tcp stream
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
CN202310358801.4A
Other languages
Chinese (zh)
Other versions
CN116074401A (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.)
Institute of Artificial Intelligence of Hefei Comprehensive National Science Center
Original Assignee
Institute of Artificial Intelligence of Hefei Comprehensive National Science Center
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 Institute of Artificial Intelligence of Hefei Comprehensive National Science Center filed Critical Institute of Artificial Intelligence of Hefei Comprehensive National Science Center
Priority to CN202310358801.4A priority Critical patent/CN116074401B/en
Publication of CN116074401A publication Critical patent/CN116074401A/en
Application granted granted Critical
Publication of CN116074401B publication Critical patent/CN116074401B/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]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Abstract

The invention relates to the technical field of network information, and discloses a method for realizing a transport layer protocol on a programmable switch, which comprises the following steps: TCP stream differentiation; a TCP finite state machine; an application layer support; and retransmitting the data packet. The transmission layer protocol in the invention realizes the establishment and release of TCP connection and data transmission on the data plane of the programmable switch, and reduces the time delay of TCP connection and transmission and reduces the application time delay by utilizing the characteristic of line speed forwarding of the programmable switch. The transmission layer protocol in the invention can modify and customize TCP on the programmable switch, and has the advantages of quick deployment and easy scale compared with the modification of TCP protocol stack on a server (user side). The method breaks the original complex and time-consuming mode of modifying and debugging the TCP protocol stack on the server, and provides a more flexible and effective mode for in-network response and in-network calculation.

Description

Method for realizing transmission layer protocol on programmable exchanger
Technical Field
The invention relates to the technical field of network information, in particular to a method for realizing a transport layer protocol on a programmable switch.
Background
With the development of network infrastructure, new network scenarios such as data center networks, information center networks and the like and corresponding new network technologies are derived. New network scenarios require network forwarding with higher switching speeds, more flexible forwarding strategies. The traditional commercial network programmable switch has the characteristics of closed black box and non-programmable, protocols supported by equipment, table entry space and forwarding logic are fixed when the equipment comes out, and the switch has hysteresis property relative to the rapid development of network technology. When a novel protocol, tunnel encapsulation and forwarding logic are required to be flexibly deployed in the network, the traditional switch cannot flexibly support. While the software programmable switch supports flexible definition of forwarding logic and deployment of a novel protocol, the speed is far lower than that of a traditional programmable switch realized by hardware, and the requirements of a new scene cannot be met.
A software defined network (Software Defined Network, SDN) serves as a novel network architecture that separates the control plane from the data plane in a traditional commercial programmable switch, enabling control plane programming. Although the user can modify the forwarding logic and the real-time policy by means of the SDN issuing the flow table, the data plane is still closed, the protocols and fields supported by the device are still determined when leaving the factory, and the user can only define the flow table entry through the existing protocol, so that a new protocol cannot be deployed.
The programmable switch realizes the programmable data plane, abstracts the forwarding flow of the programmable switch, supports the user-defined analysis and forwarding logic, ensures the forwarding flexibility and simultaneously adopts hardware to ensure the forwarding speed. The advent of programmable switches reduced network complexity, provided a good carrier for new network technologies, derived a series of new scenarios such as network computing, in-band in-network telemetry (Inband Network Telemetry, INT), etc.
In the current application scenario of a programmable switch, such as in network computing, the programmable switch is often used as an end system to directly provide services and to exchange data with a server. The existing end device software uses a large amount of transmission control protocol (Transmission Control Protocol, TCP) as a transmission layer protocol, so that customized TCP protocol is realized on a programmable switch, the adaptation work of the traditional software in a new scene can be reduced, the transmission delay is greatly reduced, the multiplexing of the existing software architecture is obtained, and the repeated development is reduced. The TCP protocol deployed in the programmable switch can be used as a basic suite and widely applied to novel network scenes such as network computing, network caching, network resource scheduling and the like.
Unlike traditional computers, programmable switches have less on-chip memory due to hardware device limitations; in order to ensure extremely high forwarding speed of the programmable switch, the number of programmable processing modules in a pipeline of the programmable switch is limited, and the operation modes and operation times in the processing modules are also greatly limited. Thus, implementing the TCP protocol on a programmable switch has the following requirements: (1) the TCP functions need to be customized to accommodate the particular hardware environment of the programmable switch; (2) the TCP functionality should be able to provide good support for the application layer of the new network scenario; (3) the implemented TCP protocol should be extensible and not require modification of its own code before the client establishes a TCP connection with the programmable switch.
Disclosure of Invention
In order to solve the technical problems, the invention provides a method for realizing a transport layer protocol on a programmable switch.
In order to solve the technical problems, the invention adopts the following technical scheme:
a method of implementing a transport layer protocol on a programmable switch, comprising the steps of:
step one, TCP flow differentiation:
when the user end establishes TCP connection with the programmable switch or transmits TCP data, a TCP stream is generated; the method comprises the steps of obtaining the packet head content of a TCP stream data packet through protocol analysis of the TCP stream data packet, and further obtaining a TCP stream serial number corresponding to the TCP stream;
step two, TCP finite state machine:
recording TCP stream states, window sizes and offset corresponding to different TCP stream serial numbers through a TCP state machine table;
in the TCP state machine table, the programmable switch determines the TCP stream state according to the analyzed TCP stream sequence number:
if the TCP stream state corresponding to the TCP stream sequence number is CLOSED at the moment, executing a state transition action, and modifying the TCP stream state corresponding to the TCP stream sequence number in a TCP state machine table into SYN_RECV;
if the TCP stream state corresponding to the TCP stream sequence number is ESTABLISHED, the programmable switch modifies the window size and the offset corresponding to the TCP stream sequence number in the TCP state machine table according to the transmission window field in the received TCP stream data packet;
step three, supporting by an application layer:
adding the application layer function into a processing pipeline of a programmable switch, modifying the received TCP stream data packet by the programmable switch through the application layer function to obtain a data packet to be returned, and sending the data packet to be returned to a user side;
step four, data packet retransmission: constructing a retransmission buffer zone, wherein the retransmission buffer zone caches the data packet to be returned which is not acknowledged by the ACK temporarily, and when the data packet to be returned meets the retransmission condition or is acknowledged by the ACK, the data packet to be returned is moved out of the retransmission buffer zone;
meeting retransmission conditions includes meeting timeout retransmissions and meeting redundant ACK retransmissions;
the timeout retransmission is satisfied: retransmitting the data packet to be returned, which is buffered in the buffer area and is not confirmed by the ACK, when the buffer time exceeds the given time, and retransmitting the data packet to be returned;
the redundant ACK retransmission is satisfied: when receiving data packets of TCP streams, the programmable switch judges redundant ACK, counts redundant ACK of each TCP stream, and resends data packets to be returned, which are buffered in a retransmission buffer zone and have not been confirmed by ACK, to the TCP stream of which the number of redundant ACK reaches the upper limit; redundant ACK refers to an ACK packet that is retransmitted by a user to contain a desired segment when the user receives a segment that exceeds the user's desired segment.
Specifically, in the first step, the header contents of the data link layer, the network layer and the transport layer of the TCP stream data packet are parsed through hash calculation, extraction of port numbers and self-set header information, so as to obtain the TCP stream sequence number.
Specifically, in the second step, the TCP state machine table is constructed in the form of a register table.
In the third step, before the data packet to be returned is sent to the user terminal, the packet header contents of the data link layer, the network layer and the transmission layer of the data packet to be returned are modified.
Specifically, in step four, the retransmission buffer is built in the on-chip storage of the programmable switch in the form of a register table.
Specifically, when the user side transmits TCP data to the programmable switch, an iWARP type remote data storage transmission mode is adopted to transmit the data to the programmable switch.
Compared with the prior art, the invention has the beneficial technical effects that:
the transmission layer protocol in the invention realizes the establishment and release of TCP connection and data transmission on the data plane of the programmable switch, and reduces the time delay of TCP connection and transmission and reduces the application time delay by utilizing the characteristic of line speed forwarding of the programmable switch.
The transmission layer protocol in the invention can modify and customize TCP on the programmable switch, and has the advantages of quick deployment and easy scale compared with the modification of TCP protocol stack on a server (user side). The method breaks the original complex and time-consuming mode of modifying and debugging the TCP protocol stack on the server, and provides a more flexible and effective mode for in-network response and in-network calculation.
Aiming at the characteristics that a programmable switch is used as a server in the existing network: the programmable switch is often used as a server, only the establishment and release of the connection are passively accepted, and the data transmission is not required actively. Meanwhile, aiming at the characteristics of network scenes, a quick release mechanism of three waving hands is adopted when the connection is released.
The transmission layer protocol in the invention can support the programmable switch and a plurality of servers to simultaneously establish TCP connection and can simultaneously support different application layer functions, so that a single programmable switch can be virtualized into a plurality of programmable switches supporting different functions to support network slicing.
In addition, iWARP is used as a remote data storage (Remote Direct Memory Access, RDMA) mode based on TCP, and needs to be used when TCP communication is established between two transmission ends.
Drawings
FIG. 1 is a flow chart of a method for implementing a transport layer protocol in the present invention;
FIG. 2 is a diagram of a TCP finite state machine for the transport layer protocol of the present invention;
FIG. 3 is a topology of an embodiment of an intra-network aggregation;
fig. 4 is a timing flow diagram of an embodiment of intra-network aggregation as an example.
Detailed Description
A preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.
As shown in fig. 1, a method for implementing a transport layer protocol on a programmable switch in this embodiment includes the following steps:
step S1, TCP stream distinguishing:
when the server (client) establishes a TCP connection with the programmable switch or transmits TCP data in step S1, a distinction needs to be made between TCP flows, so that relevant connection information is maintained in subsequent processing. And acquiring the packet header contents of a data link layer, a network layer and a transmission layer of the TCP stream data packet in a protocol analysis mode, acquiring corresponding TCP stream sequence numbers according to the packet header contents obtained through analysis through means of hash calculation, port number extraction, self-set header information and the like, distinguishing different TCP streams through the TCP stream sequence numbers, and taking the TCP stream sequence numbers as entry entries matched with a later stream table.
In this example, the network topology is shown in fig. 3, where there are four servers, all connected to a programmable switch deployed with the transport layer protocol of the present invention. The server is a user terminal, and the programmable switch is a server terminal.
Application layer functionality is exemplified by the common in-network computing application, in-network aggregation. All servers are connected to a programmable switch by TCP, data to be aggregated is transmitted to the programmable switch by adopting an iWARP type remote data storage (Remote Direct Memory Access, RDMA) transmission mode, and the programmable switch aggregates the data transmitted by each server and then sends the data back according to the needs of each server.
Step S1 of the present invention corresponds to each server actively establishing a TCP connection to the programmable switch in fig. 4. Taking server a as an example, server a sends a SYN (Synchronize Sequence Numbers, sync sequence number) packet to the programmable switch requesting that a TCP connection be established with the programmable switch. After receiving the SYN data packet, the programmable switch analyzes the packet header contents of the data link layer, the network layer and the transmission layer of the SYN data packet, obtains the TCP stream serial number corresponding to the SYN data packet from the packet header contents by adopting the modes of hash calculation, four-tuple information extraction, self-set header information and the like, and sets the TCP stream serial number corresponding to the server A as 0.
Step S2, TCP finite state machine and flow control, specifically comprising the following steps.
Step S21, TCP finite state machine:
considering the specificity of the programmable switch in the network structure and the novel network scene, namely the programmable switch is often used as a service end rather than a user end, the TCP connection does not need to be actively initiated or released, so that the user end part in the original switch needs to be cut, and the state of the programmable switch when the TCP connection is established and the state of the programmable switch when the TCP connection is released are combined so as to adapt to the environment of the programmable switch. And (2) recording the TCP stream states corresponding to different TCP stream serial numbers in a register table form, and according to the state transition actions defined by the TCP finite state machine, executing the corresponding state transition actions by matching the TCP stream serial numbers obtained by analyzing in the step (S1) with the stream table, and modifying the TCP stream states in the register table.
In step S21, since it is considered that the programmable switch is often a service end rather than a user end, there is no need to actively initiate or release the TCP connection. The TCP finite state machine designed and deployed on a programmable switch according to the present invention is shown in FIG. 2. The invention deploys the part in the programmable switch, which realizes that the server establishes TCP connection with the programmable switch and realizes data transmission by the identity of the user terminal. Taking the server a as an example, after analyzing the SYN packet sent by the server a in step S1 and obtaining the TCP flow sequence number 0, entering a TCP state machine table as shown in fig. 1, and if the state of the corresponding TCP flow sequence number in the TCP state machine table is CLOSED at this time, executing a corresponding action: and performing state transition, and modifying the corresponding state in the TCP state machine table to be SYN_RECV.
The TCP state names used in the drawings are common nouns in the field of computer networks, and are explained below in comparison:
CLOSED: interception state, interception of connection request from remote TCP port, combining CLOSED and LISTEN state in original TCP state machine;
syn_send: waiting for a matched connection request after sending the connection request;
syn_rcvd: after receiving and returning the connection request, waiting for confirmation of the opposite side to the connection request;
ESTABLISHED: the connection is successfully established, and data transmission can be performed;
fin_wait_1: waiting for a connection interrupt request of a remote TCP, or confirmation of a previous connection interrupt request;
fin_wait_2: waiting for a connection interrupt request of a remote TCP;
close_wait: three hand swings are adopted to disconnect TCP, and the closed_WAIT and LAST_ACK states in the original TCP state machine are combined
Closing: waiting for confirmation of connection interruption by remote TCP;
time_wait: wait to ensure that the remote TCP receives an acknowledgement of the connection interrupt request.
Step S22, flow control:
in order to ensure that the data packet sent by the programmable switch does not flood the server, a flow control mechanism of rollback N frames (go-back-N, GBN) and accumulated acknowledgements is adopted. The size of a transmission window of the TCP stream and the offset of the sliding window are recorded in the TCP state machine table at the same time, and the transmission of the data packet is controlled in a sliding window mode. The programmable switch can send a maximum number of data packets not exceeding the window size at a time, and acknowledge the received ACK packets by means of accumulated acknowledgements.
When the server a completes the three-way handshake with the programmable switch and successfully establishes a connection, that is, the state of the number 0 TCP flow in the TCP state machine table is ESTABLISHED, the programmable switch modifies the window size and the offset in the TCP state machine table according to the transmission window field in the received ACK packet, so as to ensure that the packet transmitted later does not exceed the transmission window limit.
Step S3, supporting and modifying the packet header by the application layer, which specifically comprises the following steps:
step S31, application layer support:
by arranging a transmission layer protocol in the programmable switch, the existing software architecture can be multiplexed at the programmable switch end, repeated development is reduced, application layer functions such as in-network aggregation, gRPC response and the like can be used as a link of a processing pipeline of the programmable switch, and the received data packet is modified to obtain the data packet to be returned.
The application layer support of this embodiment takes intra-network aggregation as an example. It is noted that the application layer support in the present invention may be various applications implemented based on the transport layer protocol of the present invention. The process of in-network polymerization is as follows: (1) each server connected to the programmable switch sends data to be aggregated to the programmable switch; (2) the data is aggregated in the programmable switch; (3) the server may obtain the aggregated data from the programmable switch.
For example: (1) server a sends data '1' to the programmable switch, server B sends data '2' to the programmable switch, and server C sends data '3' to the programmable switch; (2) the programmable switch obtains a result '6' after aggregation; (3) server D obtains the aggregated data '6' in the programmable switch.
Step S32, modifying the data packet header:
in this step, the packet header of the data packet to be returned is calculated according to the type of the data packet established by the intra-network aggregation or the TCP connection, including the contents of the MAC header, the IP header, the TCP header, etc., for confirming the forwarding port, exchanging the IP address, modifying the data packet length field, exchanging the TCP port, modifying the TCP stream sequence number and the confirmation number, modifying the TCP flag bit, etc. And forwarding and transmitting the data packet to be returned after finishing modification.
And S4, retransmitting the data packet. Step S4 of the present invention corresponds to the timeout retransmission section in fig. 1, and when the data packet sent in step S3 exceeds a predetermined time, retransmission is performed in step S4; the method specifically comprises the following steps.
Step S41, retransmitting a buffer data structure:
consider that in TCP transmission, retransmission of lost packets is required. The invention constructs the retransmission buffer zone on the on-chip storage in a register table mode, the retransmission buffer zone can buffer the data packet which does not receive the ACK confirmation temporarily, and the data packet can be moved out of the retransmission buffer zone after meeting the retransmission condition or being confirmed by the ACK. For example, after the SYN packet sent by the server a is received by the programmable switch, the returned syn+ack packet is buffered in the retransmission buffer after being sent, and a timer is set, and after waiting, the retransmission condition is confirmed or triggered.
Step S42, retransmission triggering form: two retransmission trigger forms are supported, including timeout retransmission, and redundant ACK retransmission:
(1) and (5) retransmitting overtime. A timer is set for the data packets in the retransmission buffer, and when a given time is exceeded, unacknowledged data packets buffered in the retransmission buffer are retransmitted. For example, after the programmable switch sends a data packet to the server a, the data packet which is not acknowledged is buffered in a retransmission buffer, and if a timeout mechanism is triggered, the data packet in the retransmission buffer is retransmitted until an ACK acknowledgement is received.
(2) And redundant ACK retransmission. Redundant ACK refers to an ACK packet that is retransmitted by a receiving end that contains a desired segment when the segment exceeds its desired segment. And the programmable switch performs redundant ACK judgment when receiving the data packet through a match-action table (match-action table), uses a register table to count redundant ACKs of all TCP streams, and resends unacknowledged packets cached in a retransmission buffer zone for the TCP streams reaching the upper limit.
It will be evident to those skilled in the art that the invention is not limited to the details of the foregoing illustrative embodiments, and that the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The present embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims rather than by the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.
Furthermore, it should be understood that although the present disclosure describes embodiments, not every embodiment is provided with a single embodiment, and that this description is provided for clarity only, and that the disclosure is not limited to specific embodiments, and that the embodiments may be combined appropriately to form other embodiments that will be understood by those skilled in the art.

Claims (6)

1. A method of implementing a transport layer protocol on a programmable switch, comprising the steps of:
step one, TCP flow differentiation:
when the user end establishes TCP connection with the programmable switch or transmits TCP data, a TCP stream is generated; the method comprises the steps of obtaining the packet head content of a TCP stream data packet through protocol analysis of the TCP stream data packet, and further obtaining a TCP stream serial number corresponding to the TCP stream;
step two, TCP finite state machine:
recording TCP stream states, window sizes and offset corresponding to different TCP stream serial numbers through a TCP state machine table;
in the TCP state machine table, the programmable switch determines the TCP stream state according to the analyzed TCP stream sequence number:
if the TCP stream state corresponding to the TCP stream sequence number is CLOSED at the moment, executing a state transition action, and modifying the TCP stream state corresponding to the TCP stream sequence number in a TCP state machine table into SYN_RECV;
if the TCP stream state corresponding to the TCP stream sequence number is ESTABLISHED, the programmable switch modifies the window size and the offset corresponding to the TCP stream sequence number in the TCP state machine table according to the transmission window field in the received TCP stream data packet;
step three, supporting by an application layer:
adding the application layer function into a processing pipeline of a programmable switch, modifying the received TCP stream data packet by the programmable switch through the application layer function to obtain a data packet to be returned, and sending the data packet to be returned to a user side;
step four, data packet retransmission: constructing a retransmission buffer zone, wherein the retransmission buffer zone caches the data packet to be returned which is not acknowledged by the ACK temporarily, and when the data packet to be returned meets the retransmission condition or is acknowledged by the ACK, the data packet to be returned is moved out of the retransmission buffer zone;
meeting retransmission conditions includes meeting timeout retransmissions and meeting redundant ACK retransmissions;
the timeout retransmission is satisfied: retransmitting the data packet to be returned, which is buffered in the buffer area and is not confirmed by the ACK, when the buffer time exceeds the given time, and retransmitting the data packet to be returned;
the redundant ACK retransmission is satisfied: when receiving data packets of TCP streams, the programmable switch judges redundant ACK, counts redundant ACK of each TCP stream, and resends data packets to be returned, which are buffered in a retransmission buffer zone and have not been confirmed by ACK, to the TCP stream of which the number of redundant ACK reaches the upper limit; redundant ACK refers to an ACK packet that is retransmitted by a user to contain a desired segment when the user receives a segment that exceeds the user's desired segment.
2. The method according to claim 1, wherein in step one, the TCP flow sequence number is obtained by hash calculation, extracting port number and parsing header contents of a data link layer, a network layer and a transport layer of a TCP flow packet from the set header information.
3. The method according to claim 1, wherein in the second step, the TCP state machine table is constructed in the form of a register table.
4. The method according to claim 1, wherein in step three, before sending the data packet to be returned to the user terminal, the header contents of the data link layer, the network layer and the transport layer of the data packet to be returned are modified.
5. The method according to claim 1, wherein in step four, the retransmission buffer is constructed in a register table in an on-chip memory of the programmable switch.
6. The method according to claim 1, wherein when the user side transmits TCP data to the programmable switch, the data is transmitted to the programmable switch by using an iWARP type remote data storage transmission mode.
CN202310358801.4A 2023-04-06 2023-04-06 Method for realizing transmission layer protocol on programmable exchanger Active CN116074401B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310358801.4A CN116074401B (en) 2023-04-06 2023-04-06 Method for realizing transmission layer protocol on programmable exchanger

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310358801.4A CN116074401B (en) 2023-04-06 2023-04-06 Method for realizing transmission layer protocol on programmable exchanger

Publications (2)

Publication Number Publication Date
CN116074401A CN116074401A (en) 2023-05-05
CN116074401B true CN116074401B (en) 2023-07-18

Family

ID=86173540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310358801.4A Active CN116074401B (en) 2023-04-06 2023-04-06 Method for realizing transmission layer protocol on programmable exchanger

Country Status (1)

Country Link
CN (1) CN116074401B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116708280B (en) * 2023-08-08 2023-10-24 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) Data center network multipath transmission method based on disorder tolerance

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101026510A (en) * 2007-01-31 2007-08-29 华为技术有限公司 Network flow abnormal detecting method and system
WO2009033413A1 (en) * 2007-09-06 2009-03-19 Shanghai Huawei Technologies Co., Ltd. A method and transmission device for controlling retransmission
EP2692096A1 (en) * 2011-03-29 2014-02-05 NEC Europe Ltd. User traffic accountability under congestion in flow-based multi-layer switches
CN104104480A (en) * 2014-07-31 2014-10-15 北京蓝汛通信技术有限责任公司 Method and device for detecting retransmission packet loss of TCP (transmission control protocol)
CN105682146A (en) * 2016-01-08 2016-06-15 努比亚技术有限公司 Data transmission method and device and user equipment
WO2017088326A1 (en) * 2015-11-24 2017-06-01 网宿科技股份有限公司 Tcp connection processing method, device and system
CN107592185A (en) * 2017-07-19 2018-01-16 西南交通大学 A kind of forward direction repeating method suitable for network code transmission control protocol
WO2018068848A1 (en) * 2016-10-12 2018-04-19 NEC Laboratories Europe GmbH Method and system for acceleration of tcp connection establishment
CN110830472A (en) * 2019-11-07 2020-02-21 西北工业大学 Flexible data transmission method of flexible data transmission protocol based on TCP/IP protocol
CN114389966A (en) * 2022-03-24 2022-04-22 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) Network traffic identification method and system based on graph neural network and stream space-time correlation

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101026510A (en) * 2007-01-31 2007-08-29 华为技术有限公司 Network flow abnormal detecting method and system
WO2009033413A1 (en) * 2007-09-06 2009-03-19 Shanghai Huawei Technologies Co., Ltd. A method and transmission device for controlling retransmission
EP2692096A1 (en) * 2011-03-29 2014-02-05 NEC Europe Ltd. User traffic accountability under congestion in flow-based multi-layer switches
CN104104480A (en) * 2014-07-31 2014-10-15 北京蓝汛通信技术有限责任公司 Method and device for detecting retransmission packet loss of TCP (transmission control protocol)
WO2017088326A1 (en) * 2015-11-24 2017-06-01 网宿科技股份有限公司 Tcp connection processing method, device and system
CN105682146A (en) * 2016-01-08 2016-06-15 努比亚技术有限公司 Data transmission method and device and user equipment
WO2018068848A1 (en) * 2016-10-12 2018-04-19 NEC Laboratories Europe GmbH Method and system for acceleration of tcp connection establishment
CN107592185A (en) * 2017-07-19 2018-01-16 西南交通大学 A kind of forward direction repeating method suitable for network code transmission control protocol
CN110830472A (en) * 2019-11-07 2020-02-21 西北工业大学 Flexible data transmission method of flexible data transmission protocol based on TCP/IP protocol
CN114389966A (en) * 2022-03-24 2022-04-22 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) Network traffic identification method and system based on graph neural network and stream space-time correlation

Also Published As

Publication number Publication date
CN116074401A (en) 2023-05-05

Similar Documents

Publication Publication Date Title
TW419919B (en) TCP resegmentation
KR102249741B1 (en) Method and apparatus for data transmission
WO2019144836A1 (en) Data transmission method, apparatus and system
JP5523350B2 (en) Method and apparatus for TCP flow control
KR100988339B1 (en) A dual proxy approach to tcp performance improvements over a wireless interface
JP5816718B2 (en) Communication apparatus, communication system, and data communication relay method
JP7142722B2 (en) Transmission control method and device
KR20190095487A (en) Packet transmission method, terminal, network device and communication system
JP2018535582A (en) Packet transmission method and user equipment
WO2014092779A1 (en) Notification by network element of packet drops
JP2019506072A (en) Data transmission method and related device
EP1393497B1 (en) Dual mode service platform within network communication system
CN116074401B (en) Method for realizing transmission layer protocol on programmable exchanger
EP3820088B1 (en) Method and network device for multi-path communication
CN102769520A (en) Wireless network congestion control method based on stream control transmission protocol (SCTP)
US7623546B1 (en) Latency improvement for file transfers over network connections
JP4506430B2 (en) Application monitor device
Zheng et al. Research on multi-path network in cloud computing based on sctp
JP7123194B2 (en) Data transmission method, transmission device, data reception method, and reception device
Dong et al. A concurrent transmission control protocol
WO2024113459A1 (en) Double unidirectional optical gate system based data transmission methods and apparatuses, device and medium
Hurtig et al. SCTP: designed for timely message delivery?
TWI839155B (en) Computer devcie and transmission control protocol packet processing method
JP6268027B2 (en) COMMUNICATION SYSTEM, TRANSMISSION DEVICE, AND COMMUNICATION METHOD
Wang et al. Reliable and efficient data transfer protocol based on UDP in cluster system

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