Protocol frame and data transmission method of FC integrated Ethernet

By using FC converged Ethernet protocol frames and data transmission methods, the problem of protocol fragmentation in the transmission of short messages and long-stream messages in airborne avionics systems was solved, achieving efficient and reliable hybrid message transmission, reducing system complexity and power consumption, and meeting the high-performance communication requirements of airborne avionics systems.

CN121842284APending Publication Date: 2026-04-10XIAN AVIATION COMPUTING TECH RES INST OF AVIATION IND CORP OF CHINA
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-12-09
Publication Date
2026-04-10

AI Technical Summary

Technical Problem

When short messages and long-term messages are transmitted together in airborne avionics systems, there are problems such as protocol fragmentation, high CPU overhead, high end-to-end latency, complex application programming interfaces, and high power consumption. Existing solutions are difficult to meet the communication requirements of high performance, high reliability, and low complexity.

Method used

By adopting the protocol frames and data transmission methods of FC converged Ethernet and designing an innovative frame structure through an FPGA-based all-hardware offload architecture, this paper supports the unified and efficient transmission of short messages and long-stream messages, including IP packets, UDP datagrams and FoCE data units. The paper utilizes sequence identifiers, sequence counters and offset indicator fields to segment and reassemble stream messages, and realizes end-to-end verification and quality of service control.

Benefits of technology

It achieves low-latency and high-reliability transmission of short and long messages, reduces CPU utilization and system complexity, meets the requirements of airborne avionics systems for high bandwidth, strong real-time performance and low power consumption, and is suitable for resource-constrained airborne platforms.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121842284A_ABST
    Figure CN121842284A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of airborne network communication, and provides a protocol frame and a data transmission method of an FC integrated Ethernet (FoCE), the protocol frame is a standard Ethernet frame, the load part of the protocol frame comprises an IP data packet, a UDP datagram is packaged in the IP data packet, the effective load of the UDP datagram is a FoCE data unit, and the FCE data unit is used for transmitting data to the FC integrated Ethernet. The FoCE data unit includes a FoCE frame header, a data segment, and an end-to-end check field. The FoCE frame header comprises flow control information used for segmented transmission and recombination of flow messages; the data segment is used as a fragment of the stream message; the end-to-end verification field is used for integrity verification of the data load. The method does not need a switch to support an FC or RoCE protocol, can be compatible with the existing Ethernet infrastructure, remarkably reduces the CPU overhead, improves the throughput rate and deterministic delay, and is suitable for high-performance calculation and storage networks.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of airborne network communication, and in particular to a protocol frame and a data transmission method of FC fusion Ethernet. BACKGROUND

[0002] With the increasing degree of functional integration of airborne avionics task systems, and the widespread application of multi-core processors and high-density integrated processing units, the information interaction bandwidth and real-time requirements of processing units have significantly increased. At the same time, the sensing capabilities in the radio frequency domain and the optoelectronic domain continue to enhance, giving rise to new applications such as large data volume information fusion and edge intelligent processing, which puts forward higher requirements on the bandwidth and deterministic communication of airborne networks.

[0003] Traditional avionics networks (such as FC or AFDX) are limited by low bandwidth and poor scalability, and are difficult to support high-throughput scenarios such as radio frequency integration and intelligent processing. In this context, the introduction of Ethernet technology into avionics systems after airborne adaptation has become a development trend. With its high bandwidth, standardized ecosystem, and good interoperability, Ethernet can provide sustainable evolution capabilities and extensive industrial support for airborne networks.

[0004] However, airborne avionics system communication has typical mixed characteristics: it contains a large number of low-delay, small-size short messages (such as control instructions and state reports), as well as large blocks of continuous stream messages (such as radar images and video streams, which can reach more than 1MB at a time). However, the standard Ethernet is limited by the IPv4 / UDP protocol stack, and the single message payload is usually not more than 64KB, which cannot directly carry long stream messages.

[0005] Existing solutions have obvious limitations: One is to use the RoCE v2 protocol, which supports up to 16MB of stream message transmission and has the advantages of high bandwidth and low delay, but it relies on a lossless network environment and cannot meet the stringent deterministic and safety requirements of airborne systems in terms of real-time scheduling, fault reconstruction, and other aspects. Another is the UOE (UDP Offload Engine) and RoCE v2 fusion solution, which uses UOE for short messages and RoCE v2 for stream messages, which can accommodate both types of messages, but requires users to maintain two sets of API interfaces, making the system design complex, resource-intensive, and power-hungry, and it is difficult to achieve unified task scheduling and resource management.

[0006] Therefore, there is an urgent need for an airborne Ethernet transmission mechanism that is protocol-unified, hardware-unloaded, switch-transparent, and simultaneously supports short messages and long stream messages efficiently, to meet the needs of new-generation integrated avionics systems for high-performance, high-reliability, and low-complexity communication architectures. SUMMARY

[0007] In order to solve the technical problems of protocol fragmentation, large CPU overhead, high end-to-end delay, complex application programming interface (API) and high power consumption existing in mixed transmission of short messages and long stream messages in airborne avionics system, the application provides a protocol frame of FC fusion Ethernet and a matching data transmission method.

[0008] The protocol frame adopts an innovative frame structure design, and realizes unified and efficient support of a single protocol stack to two types of messages on the basis of standard Ethernet infrastructure in combination with FPGA full hardware offload architecture: short messages (such as control instructions and state reporting) of byte level can be transmitted with low delay, and long stream messages (such as radar echo, photoelectric image and large data volume load) of megabyte level can be reliably carried. The scheme does not need to rely on lossless network or special switch, and only through hardware optimization of terminal network card, the strict requirements of airborne avionics system on high bandwidth, strong real-time performance, multi-task partition isolation, deterministic communication and low power consumption design can be met.

[0009] Specifically, the technical solutions of the application are as follows: The application provides a protocol frame of FC fusion Ethernet, the protocol frame is a standard Ethernet frame, a payload part of the protocol frame comprises an IP data packet, the IP data packet encapsulates a UDP data report, a payload of the UDP data report is a FoCE data unit, and the FoCE data unit comprises a FoCE frame header, a data segment and an end-to-end check field.

[0010] The FoCE frame header comprises flow message segmentation transmission and recombination flow control information, including a sequence identifier, a sequence counter, an offset indication field and a flow message total length field. The data segment is a fragment of the flow message. The end-to-end check field is used for data integrity check of the data payload, and the data integrity check covers a data range from the beginning of an IP header of the UDP data report to the end of the data segment.

[0011] Further, the IP data packet is an IPv4 data packet, an IP header of the IP data packet comprises a Flags field, an ECN field and a Total Length field, the Flags field is set to prohibit fragmentation, and the Total Length field length comprises a byte number from the IPv4 header to the end of the end-to-end check field.

[0012] Further, the FoCE frame header further comprises at least one of a type field, a frame control field and a priority field; wherein the type field is used to identify the protocol frame as an FC converged Ethernet frame, the frame control field comprises a first frame identification bit, a last frame identification bit, a sequence end bit, an offset enable bit and a padding data length field; the value of the priority field is consistent with the value of the DSCP field in the IP header, and is used to implement end-to-end quality of service control.

[0013] Further, the FoCE frame header length correction bit is used to indicate the maximum flow length when the flow message total length field is zero.

[0014] Further, the source port number of the UDP datagram is a preset fixed port number, which is used to identify the FoCE protocol type, and the UDP checksum field is set to 0.

[0015] Further, the end-to-end check field is 4 bytes, and when performing data integrity checking, only the data expected to remain unchanged in the range from the IP header to the end of the data segment is checked; for the fields that may change during transmission, they are uniformly set to all 1 before checking.

[0016] Another aspect of the present application provides a data transmission method based on the FC converged Ethernet protocol frame, and the method comprises the following steps: S1, the sender writes the flow message to be transmitted into a pre-allocated non-cached sending buffer, and submits a transmission request to a network card through a sending descriptor; S2, the network card segments and frames the flow message according to the FoCE format according to the sending descriptor, forms a protocol frame and sends it; S3, after the protocol frame is received by the receiver network card, the FoCE data unit is parsed and extracted, and the flow control information is extracted from the FoCE frame header to determine whether the previous frame data belongs to the same flow message, the flow control information comprises a destination IP address, a destination UDP port number, a sequence identifier, a sequence counter and an offset indication field; S4, the corresponding receiving buffer index is obtained by querying the channel connection information table based on the destination IP address, the destination UDP port number and the sequence identifier; S5, the data segment is directly written into the physical address position of the receiving buffer according to the byte offset indicated by the offset indication field; S6, when all segments of the flow message are received, a receiving completion notification is written into a completion queue for application layer processing.

[0017] Further, in step S2, the sending descriptor contains the physical buffer address of the data to be transmitted, the data length, the destination IP address, the destination UDP port number and the flow priority, and the network card automatically generates the FoCE frame header and completes the framing according to the descriptor; In step S4, the channel connection information table is initialized by the receiver in the flow establishment stage, and the receiving buffer base address, the total length and the completion queue ID are recorded with the destination IP address, the destination UDP port number and the sequence identifier as the joint index; The receiving buffer is a non-cacheable physical memory region, which is allocated by the host once in the flow initialization; the receiver performs zero-copy writing according to the offset indicated by the offset indication field, so that the data segments of each FoCE frame are directly spliced in the receiving buffer in the original flow message order, and the CPU does not need to participate in data moving or recombination in the receiving process.

[0018] Further, in step S2, the flow message is segmented and framed according to the FoCE format, including: Different flow messages are distinguished according to the destination IP address and the destination UDP port number, and the data of the same flow message is divided into multiple frames, and the transmission of the flow message is completed through the sequence. When the flow message is segmented, the payload size of other frames except the last frame in the flow message sequence is the same, and the length of the last frame is determined by the flow message length and the length of the transmitted flow message; the relative offset of each frame in the entire data is recorded in the offset indication field. When the flow message sequence is transmitted, each frame is transmitted in the order of segmentation, the context of each frame in the sequence is identified through the frame control field, the frame and the order of the frame are identified through the sequence identifier and the sequence counter, and the relative offset of the transmission data of the frame is indicated through the offset indication field.

[0019] Further, the network card is an FPGA programmable network card, and the processing logic of the IP protocol, the UDP protocol, the ARP protocol and the FoCE protocol is realized by the FPGA hardware, the host only provides the physical buffer address through the DMA mode, and does not participate in the encapsulation, analysis or recombination process of the protocol frame; and the short message and the flow message share the same FoCE protocol stack, the transmission priority of the short message is higher than that of the flow message, and the short message is inserted and transmitted in the gap between the flow message segmentation and transmission, so that the mixed message low-delay transmission is realized.

[0020] Compared with the prior art, the above at least one technical scheme adopted by the embodiments of the present application can achieve at least the following beneficial effects: 1. Unified protocol stack: short message and flow message share a set of API and protocol, reducing software complexity; 2. Zero-copy recombination: write into the receiving buffer according to the offset, avoid intermediate copying, and reduce the end-to-end delay; 3. Full hardware offload: FPGA implements IP / UDP / FoCE processing, significantly reduces CPU occupancy, and meets multi-partition real-time task requirements; 4. Switch transparent: only standard Ethernet switch is required, and the deployment cost is low; 5. High reliability: ICRC end-to-end check covers IP header to data segment, independent of link layer FCS; 6. Low power consumption and simple design: avoid redundant logic of double protocol stack, suitable for resource-limited airborne platform. BRIEF DESCRIPTION OF DRAWINGS

[0021] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings needed in the embodiments will be briefly introduced as follows. Obviously, the drawings in the following description are only some embodiments of the present application, and those skilled in the art can obtain other drawings according to these drawings without creative labor.

[0022] Figure 1 The frame format of the protocol frame of the FC fusion Ethernet of the present application; Figure 2 The FC fusion Ethernet architecture diagram of the present application; Figure 3 The flowchart of data transmission based on the protocol frame of the FC fusion Ethernet of the present application; Figure 4 The execution flow of data transmission based on the protocol frame of the FC fusion Ethernet of the present application. DETAILED DESCRIPTION

[0023] The embodiments of the present application will be described in detail below with reference to the drawings.

[0024] The embodiments of the present application will be described in detail below with reference to the drawings.

[0025] In current airborne avionics system, using high-speed Ethernet to connect each system becomes a trend, however, there are both short messages (single frame data) with short data length and stream messages with relatively long data length in the airborne avionics system, such as 1MB length data, and the traditional Ethernet transmission does not support data more than 64KB.

[0026] The application designs a FC fusion Ethernet (FC over Converged Ethernet, FoCE) and lightweight data transmission method by referring to the methods of FC, UOE and RoCE v2 frame definition and protocol processing, defines the structure of the protocol frame, uses the socket interface, is compatible with the interface of UOE, designs the architecture and transmission mechanism of FC over Ethernet based on UOE, so that the airborne high-speed Ethernet can support the transmission of stream messages with large data volume, thereby solving the mixed transmission of short messages and stream messages, without the need of modifying the switch in the data transmission process, and having the advantages of convenient use, compatibility with Ethernet, low power consumption and lightweight, etc.

[0027] Specifically, the application discloses a FC fusion Ethernet protocol frame, which is a standard Ethernet frame, and a payload part of the FC fusion Ethernet protocol frame includes an IP data packet, the IP data packet encapsulates a UDP datagram, a payload of the UDP datagram is a FoCE data unit, and the FoCE data unit includes a FoCE frame header, a data segment and an end-to-end check field.

[0028] The FoCE frame header includes flow control information for flow message segmentation transmission and recombination, and includes a sequence identifier, a sequence counter, an offset indication field and a flow message total length field. The data segment is a fragment of the flow message. The end-to-end check field is used for data integrity check of the data payload, and the data integrity check covers a data range from the beginning of the IP header of the UDP datagram to the end of the data segment.

[0029] Further, the IP data packet is an IPv4 data packet, the IP header includes a Flags field, an ECN field and a TotalLength field, the Flags field is set to prohibit fragmentation, and the Total Length field length includes the number of bytes from the IPv4 header to the end of the end-to-end check field.

[0030] Further, when the ECN field is set to 0, it indicates that the FoCE network card is configured to not support congestion notification.

[0031] Furthermore, the FoCE frame header also includes at least one of a type field, a frame control field, and a priority field; wherein, the type field is used to identify the protocol frame as an FC converged Ethernet frame, the frame control field includes a first frame identifier bit, an last frame identifier bit, a sequence end bit, an offset enable bit, and a padding data length field; the value of the priority field is consistent with the value of the DSCP field in the IP header, and is used to implement end-to-end quality of service control.

[0032] Furthermore, the FoCE frame header length correction bit is used to indicate the maximum stream length when the total stream message length field is zero.

[0033] Furthermore, the source port number of the UDP datagram is a preset fixed port number used to identify the FoCE protocol type, and the UDP checksum field is set to 0.

[0034] Furthermore, the end-to-end verification field is 4 bytes. When performing data integrity verification, only data that is expected to remain unchanged from the beginning of the IP header to the end of the data segment is verified. For fields that may change during transmission, they are uniformly set to all 1s before verification.

[0035] More specifically, the end-to-end checksum field is set after the data payload to implement end-to-end CRC. It covers the IP header, UDP header, FoCE frame header, and data payload, specifically calculating the data payload from the first byte of the IP header to the last FoCE data payload byte before ICRC. It provides data integrity verification by only verifying the unchanged data within the above range. The changed parts of the IP header and UDP header are covered by bit 1. Specifically, this includes: Time to Live, Header Checksum, and Type of Service (DSCP and ECN) in IPv4; and Checksum in UDP.

[0036] In a preferred embodiment of the present invention, the data segment length in the FoCE data unit is limited to no more than 1448 bytes. This value is calculated based on the constraint that the standard Ethernet Maximum Transmission Unit (MTU) is 1500 bytes. The maximum Ethernet frame payload is 1500 bytes; The IP header occupies a fixed 20 bytes (options field not enabled); The UDP header occupies 8 bytes; Therefore, the maximum available space for the UDP payload (i.e., FoCE data unit) is: 1500−20−8 = 1472 bytes.

[0037] Considering that the FoCE frame header itself occupies a certain number of bytes (e.g., 16 bytes), and to reserve a small amount of space for future expansion, this embodiment sets the upper limit of the data segment length of a single fragment to 1448 bytes, ensuring that the total length of the entire FoCE data unit (FoCE frame header + data segment + 4-byte ICRC) does not exceed 1472 bytes, thereby fully adapting to the standard Ethernet MTU and avoiding IP layer fragmentation.

[0038] Furthermore, in airborne avionics systems, this design ensures that protocol frames can be transmitted without loss under existing high-speed standard Ethernet switching architectures, without requiring any modifications to network equipment.

[0039] In other embodiments, if the deployment environment supports jumbo frames (MTU=9000 bytes), the data segment length can be extended to more than 8900 bytes. This invention does not limit this, but only uses 1448 bytes as a typical value under standard Ethernet for illustration.

[0040] Another aspect of the present invention provides a data transmission method based on the above-mentioned FC converged Ethernet protocol frames, such as... Figure 3 As shown, the method includes the following steps: S1. The sender writes the message to be transmitted into the pre-allocated non-buffered transmission buffer and submits a transmission request to the network card through the transmission descriptor. S2. The network card segments and frames the stream message according to the FoCE format based on the transmission descriptor, forms a protocol frame, and sends it. S3. After receiving the protocol frame, the receiving network card parses and extracts the FoCE data unit, and extracts the flow control information from the FoCE frame header to determine whether it belongs to the same flow message as the previous frame data. The flow control information includes the destination IP address, destination UDP port number, sequence identifier, sequence counter and offset indicator field. S4. Based on the destination IP address, destination UDP port number and sequence identifier, query the channel connection information table to obtain the corresponding receive buffer index; S5. Write the data segment directly to the physical address location of the receive buffer according to the byte offset indicated by the offset indication field; S6. After all segments of the stream message have been received, write a reception completion notification to the completion queue for processing by the application layer.

[0041] Furthermore, in step S2, the sending descriptor includes the physical buffer address of the data to be transmitted, the data length, the destination IP address, the destination UDP port number, and the flow priority. The network card automatically generates a FoCE frame header and completes framing based on the descriptor.

[0042] Furthermore, in step S4, the channel connection information table is initialized by the receiver during the stream establishment phase, using the destination IP address, destination UDP port number, and sequence identifier as a combined index to record the base address of the receive buffer, the total length, and the completion queue ID.

[0043] Furthermore, in step S5, the receiving buffer is a non-cached physical memory area that is allocated by the host once during stream initialization; the receiver performs zero-copy writing according to the offset indicated by the offset indication field, so that the data segments of each FoCE frame are directly concatenated in the receiving buffer in the order of the original stream messages, and no CPU is required to participate in data movement or reassembly during the receiving process.

[0044] Further, in step S2, the stream message is segmented and framed according to the FoCE format, including: Different stream messages are distinguished based on the destination IP address and destination UDP port number. When sending, the data of the same stream message is divided into multiple frames and the stream message is sent through sequence transmission. When segmenting streaming messages, except for the last frame in the streaming message sequence, the payload size of other frames is the same. The length of the last frame is determined by the length of the streaming message and the length of the sent streaming message. The relative offset of each frame in the entire data is recorded in the offset indication field. During streaming message sequence transmission, each frame is sent in the order of its segments. The frame control field identifies the context of each frame in the sequence, the sequence identifier and sequence counter identify the order of frames, and the offset indicator field indicates the relative offset of the frame data transmission.

[0045] Furthermore, the network interface card (NIC) is an FPGA programmable NIC. The processing logic of IP, UDP, ARP, and FoCE protocols is all implemented by FPGA hardware. The host only provides physical buffer addresses through DMA and does not participate in the encapsulation, parsing, or reassembly of protocol frames. Short messages and streaming messages share the same FoCE protocol stack. The transmission priority of short messages is higher than that of streaming messages. Short messages are inserted and sent during the segmented transmission gaps of streaming messages to achieve low-latency transmission of mixed messages.

[0046] To more clearly illustrate the above-mentioned FC converged Ethernet protocol frames (referred to as FoCE frames), this invention combines... Figure 1 The protocol frame structure is described in detail, including the format and data transmission of the protocol frames. Example 1: Definition of FoCE frame format A FoCE frame adds a 16-byte FoCE header, a payload (data segment), and a 4-byte ICRC (End-to-End Checksum) to the Ethernet UDP header. The FoCE header integrates some field definitions from the FC and ASM protocols, specifically defined as follows: (1) The type field (TYPE) is 1 byte (word 0, bit 31 to bit 24), which indicates the protocol of the data frame content. Refer to the type field of the FC frame header and take a value from the manufacturer-defined field from 0xE0 to 0xFF. (2) Frame control (F_CTL) consists of 3 bytes (word 0, bits 23 to 0), containing control information related to the frame content. The definition of the F_CTL bits refers to the FC protocol, as shown in Table 1 below;

[0047] (3) The sequence identifier (SEQ_ID) is 1 byte (word 1, bit 32 to bit 24), which is assigned by the sequence sender. When the sequence is opened, SEQ_ID is unique for a specific destination UDP and destination IP pair; (4) Reserved is 1 byte (word 1, bit 23 to bit 16), reserved; (5) The sequence counter (SEQ_CNT) is 2 bytes (word 1, bit 15 to bit 0) and indicates the order of transmission of a single sequence or multiple consecutive sequences of data frames within the same exchange.

[0048] The first frame of the initiator's or responder's sequence should have SEQ_CNT set to 0, and the SEQ_CNT of subsequent data frames within the sequence should be incremented by 1. A single frame's SEQ_CNT should be set to 0. In a sequence with multiple frames, the starting frame's SEQ_CNT should be set to 0, and the SEQ_CNT of subsequent data frames should be incremented by 1. The SEQ_CNT count should wrap back to 0 after reaching 65535. (6) The offset indicator (Parameter) is 4 bytes (word 2, bits 31 to 0). When the "relative offset bit" in F_CTL is set to 1, the offset indicator is the relative offset value (4-byte aligned), which represents the relative offset of the first byte of the current frame data payload relative to the upper layer protocol data. The relative offset value is represented in bytes. Taking data of length M bytes as an example, each frame of FoCE message can transmit a maximum of 1448 bytes. The calculation method is as follows: Parameter = i × 0x5A8. If M mod 0x5A8 = 0, then the value of i is 0 to (M / 1448-1); if M mod 0x5A8 ! = 0, then the value of i is 0 to (M / 1448). (7) The L bit is 1 bit (word 3, bit 31), which is the data length correction field. The meaning of setting the corrected data payload length field value to 0 is shown in Table 2 below: Table 2 L Field Definitions

[0049] (8) Priority is 7 bits (word 3, bits 30 to 24), which is the data priority. The priority is implemented according to the requirements of the system and network layer and corresponds to the DSCP field in the IP frame header; (9) The data payload length is 3 bytes (word 3, bit 23 to bit 0), which represents the total number of data bytes sent by the application, including multiple frames. This field should not include the length of the FoCE frame header. (10) The data segment is a payload of 0 to 1452B in length. In order to be compatible with more DMA operations, if there is fragmentation, each FoCE frame supports a maximum of 1448B. (11) ICRC is 4 bytes long and is placed after the data payload to implement end-to-end CRC, overwriting the unchanged data in the data packet and providing protection in addition to FCS. Since FCS is frequently updated hop-by-hop in the switching network, the calculation of ICRC refers to the RoCE v2 protocol, including: a. ICRC calculations start from 0xffffffffffffffffff; b. Calculate the payload bytes from the first byte of the IP header up to the last FoCE data byte before the ICRC; c. The changed parts of the IP header are covered by bit 1, including: Time to Live, HeaderChecksum, and Type of Service (DSCP and ECN) in IPv4; and Checksum in UDP.

[0050] More specifically, such as Figure 1 As shown, in the FoCE frame: (1) The IP header adopts the traditional structure, including: IHL field: 0x5; DSCP field (priority field), which is consistent with the value of the Priority field in the FoCE frame header; ECN: 0x0; Flags: 0x2; Fragment Offset: 0x0; Protocol: 0x11.

[0051] (2) The UDP header is an improvement on the source UDP and checksum in the original UDP header, while the rules for setting other fields remain unchanged.

[0052] (3) Source UDP: 0xBFFF(49151): This is a custom value used to identify the type of the subsequent FoCE frame header. It is used to identify whether it is a FoCE frame during later decoding.

[0053] (4) Checksum: 0x0.

[0054] (5) FoCE frame header: The TYPE field is 0xE0, which is the FoCE frame header type identifier; the frame control field is F_CTL.

[0055] The first condition for setting the frame control field is: when the current frame is the last frame in the data segment, the F_CTL field should be filled with 0x3A0018; when it is not the last frame in the streaming data message, it should be filled with 0x320018. The second condition for setting the frame control field is: when the length of the data segment is not an integer multiple of 4 bytes, the last 2 bits of the F_CTL field are used to indicate the number of bytes needed to pad the data to an integer multiple of 4 bytes.

[0056] Example 2: Fusion design of protocols in FoCE frame The convergence design of protocols within a FoCE frame refers to the convergence of the FC protocol onto the Ethernet protocol, specifically including: (2) Integrates the concepts of switching and sequence in FC, supports single-switched single-sequence and single-switched multi-sequence transmission, and sets the corresponding values ​​in the F_CTL field for the initiation, management and termination of switching and sequence; (3) Each network terminal supports the concurrent execution of 16 FC converged Ethernet stream sequences; (4) The FoCE protocol currently supports IPv4, and the Ethertype value is 0x0800. The IPv4 header format and fields are defined according to RFC791, RFC2474 and RFC3168. The relevant fields of the IPv4 header in FoCE are defined as follows: a. The IHL field should be set to 5; b. The DSCP field should match the value of the Priority field in the FoCE frame header; c. The Total Length field should include the number of bytes from the IPv4 header up to the ICRC (inclusive); The d.Flags field should be set to 010b (set to no segmentation); The e.FragmentOffset field should be set to 0; The f.Protocol field should be set to 0x11 (UDP); (5) The UDP header format and fields are defined according to RFC768. The relevant fields of the UDP header in FoCE are defined as follows: a. The source UDP number of FoCE data is a fixed value, which is conventionally identified as the FC converged Ethernet frame type in the system. The source UDP number in the range of 1024 to 49151 specifies a port. b. The destination UDP value is determined according to the communication configuration, and the value should be in the range of 1 to 65535; The c.Length field should contain the number of bytes from the UDP header up to the ICRC (inclusive); The d.Checksum field should be set to 0.

[0057] Example 3: Definition of socket-like interface in FoCE frame In this embodiment, the socket-like interface is defined with reference to the UDP usage of the traditional socket interface, with the following differences: (1) In this invention, a network terminal initialization API interface is added. When this interface is called, the sending physical buffer and receiving physical buffer of the stream message are pre-allocated according to the maximum length of data sent and received by the user, for DMA transmission. Both the sending physical buffer and the receiving physical buffer are non-cached spaces.

[0058] (2) When creating a socket descriptor, the domain parameter uses AF_INET, the type parameter uses SOCK_PACKET, and the protocol parameter uses IPPROTO_UDP; (3) Bind the local FC converged Ethernet UDP number; (4) Before sending, add a send buffer to obtain the API interface, write user data into the obtained buffer, and then call sendto to send, supporting data sending with a length of 16MB; (5) When receiving, call recvfrom to receive and obtain the address of the receive buffer (output parameter) and the data length; (6) After the received data processing is completed, add a receiving completion API interface to notify the network card to release the corresponding receiving buffer.

[0059] The socket interface has different applications on the receiver and sender sides, such as... Figure 2 As shown, specifically: The process of the sender applying the socket interface includes: First, the network terminal initialization API interface is invoked. When this interface is invoked, the send and receive physical buffers for the streaming data are pre-allocated according to the user-configured maximum send and receive lengths for DMA module transfer. Both the send and receive physical buffers are non-cached space. Secondly, when creating a socket descriptor, the domain parameter uses AF_INET, the type parameter uses SOCK_PACKET, and the protocol parameter uses IPPROTO_UDP; Secondly, the socket-like descriptor binds to the source UDP header of the UDP header; Then, before sending, add a send buffer to obtain the API interface; Next, the user's stream data is written into the acquired send buffer; Finally, the sendto interface is called to send data, supporting data transmission up to 16MB in length.

[0060] The process of the receiving party applying the socket interface includes: First, the network terminal initialization API interface is invoked. When this interface is invoked, the send and receive physical buffers for the stream messages are pre-allocated according to the user-configured maximum data send and receive lengths for DMA module transfer. Both the send and receive physical buffers are non-cached spaces. Secondly, when creating the socket descriptor, the domain parameter uses AF_INET, the type parameter uses SOCK_PACKET, and the protocol parameter uses IPPROTO_UDP; Next, bind the socket communication address (receiving IP and port) to the socket descriptor; Finally, during reception, call recvfrom to receive data and obtain the address of the receive buffer and the data length.

[0061] Example 4: Design of Transmission Mechanism and Flow Control Based on FoCE Frames In this implementation, the FoCE protocol transmission mechanism mainly handles the segmentation and reassembly of FoCE frames.

[0062] (a) Segmentation Rules Different FoCE streams are distinguished based on the destination IP and destination UDP. When sending, the data of the same stream is divided into multiple frames and the stream message is sent through sequence transmission. When segmenting streaming messages, the payload size of each frame is fixed except for the last frame of the sequence. The length of the last frame is determined by the length of the streaming message and the length already sent.

[0063] During sequence transmission, frames are sent in the order of segments. The F_CTL field identifies the context of each frame in the sequence, the SEQ_ID and SEQ_CNT fields identify the order of frames, and the offset indicator field indicates the relative offset of the frame data transmission.

[0064] Specifically, when transmitting streaming data, the streaming data is split into multiple frames based on the length of each data segment.

[0065] When performing segmentation, for the sequence identifier field SEQ_ID of the current frame, if it is determined that it is the same as the sequence identifier field SEQ_ID of the previous frame, then it is determined that it is the same stream data. In this case, the current frame is the same as the previous frame, and SEQ_ID remains unchanged. In addition, global control is required. The SEQ ID must be incremented for each data stream sent. Specifically, the SEQ ID is incremented cyclically for different data streams or different frames of the same data stream. When the set maximum value is reached, the SEQ ID is reset to 0xFFFF and then to 0x0.

[0066] The sequence counter field SEQ_CNT: is the sequence identifier of a frame in the message, indicating which frame this is in this message (starting from 0 and incrementing by 1 for each frame). The offset indicator field Parameter: represents the storage address offset of the frame data. Parameter = i × 0x5A8. If the stream data length and 1448 are integers, then the value of i ranges from 0 to (message data length / 1448) - 1; if (message data length % 1448) is not an integer, then the value of i ranges from 0 to (message data length / 1448). This field is 0 for data block messages. For the L field (length correction field): It is used to correct the meaning of the stream data length field value when it is 0x000000. When the L field is 0, it means that the stream data length is 16MB; when the L field is 1, it means that the stream data length is 0; when the value of the stream data length field is not 0, the L bit is meaningless.

[0067] The Priority field, also known as the data priority field, is implemented based on the requirements of the system and network layers, and is consistent with the DSCP field (priority field) in the IP frame header.

[0068] (ii) Reorganization Rules Upon reception, the corresponding stream message sequence is identified by the destination IP, destination UDP, and SEQ_ID; The receiver reassembles the data by connecting the payloads of each data fragment in the order of SEQ_CNT according to the SEQ_CNT field and the Parameter field (which indicates the storage address offset of the frame data). If SEQ_CNT returns from 0xFFFF to zero within a sequence, the recombination should continue according to the modulo operation with 65536 as the modulus (i.e., after SEQ_CNT equals 0xFFFF, it becomes 0x0).

[0069] In one embodiment, for the FoCE protocol transmission mechanism, data transmission can be performed using DMA. Data transmission resources mainly include send / receive buffers accessible to both the network interface card (NIC) and the host, stream message receive buffer address registers, send descriptors, send descriptor address registers, send / receive completion information, send / receive completion information address registers, send / receive queue position index registers, send / receive completion information index registers, idle receive buffer FIFO, channel connection information table, on-chip send / receive buffers within the FPGA, ARP table, and parameter configuration registers. A detailed description follows: (1) The number of stream messages supported by the network card is limited by FPGA resources and memory resources, but the design method is universal. Assume that it supports the sending and receiving of N (N≤16) stream messages respectively; (2) Stream message data sending / receiving buffer: This is a non-cache memory space used to store data sent and received by the application. A large queue mechanism is used to implement socket message sending and receiving, meaning all sockets share the data sending / receiving buffer. The size of a single buffer is allocated according to the maximum length of the stream message configured by the application, using a 4KB alignment method for the host memory space. The stream message sending and receiving buffers can be set to discrete address spaces. The sending buffer can be allocated in real time or in advance, while the receiving buffer needs to be pre-allocated. The successfully allocated addresses are then written sequentially into the stream message receiving buffer address register. (5) Send descriptor: Used to describe the sending information of socket data, and corresponds one-to-one with the data sending buffer. All sockets share one stream sending queue. The sending descriptor depth is N. A single sending descriptor includes the sending channel connection number, address, length, destination IP and destination UDP, and is allocated in the non-cache memory space. When sending, DMA is triggered by updating the sending descriptor queue index pointer register. The network card logic uses the address and length information in the register to DMA the data to the network card. (7) Transmission completion information: This describes the data transmission and reception status. The transmission completion information includes a completion index pointer, status, and reserved fields, allocated in non-cache memory space. After transmitting data, the network card logic writes the completion information to the host memory and updates the transmission completion information index pointer of the queue. (8) Receive completion information: Each socket has an independent stream message completion information queue with a queue depth of N*2. Therefore, the receive completion information consists of N queues with a depth of N*2. Each receive completion information includes a tag indicating the queue position index, a reserved field, a stream unit index, and a length, allocated in non-cache memory space. The network card logic writes the data to the data receive buffer and then writes the receive completion information to memory. Each socket queries the tag of the queue completion information, compares it with the tag stored in the channel, and if the tag changes, after receiving the data of the corresponding entry, the driver updates the receive completion information index register; (10) Send / Receive Queue Position Index Register: The send queue position index register is a 32-bit wide FIFO with a depth of N. It is used to update the send queue position index register after the socket fills one or more descriptors into the stream message send descriptor queue. The logic detects that the queue is not empty and reads the queue descriptor to send. The receive queue position index register is a 32-bit wide FIFO with a depth of N*2. It is used to update the receive queue position index register of the corresponding socket stream message after the logic DMAs the data to the data receive buffer, and then write the receive completion information to the host memory. (11) Transmit / Receive Completion Information Index Register: The transmit completion information index register is a 32-bit wide FIFO with a depth of N. After transmitting data, the logic updates the completion information index of the stream message data transmit buffer queue and writes the transmit completion information to the host memory. The driver software obtains the free transmit buffer by reading the transmit completion information index register. The receive completion information index register is a 32-bit wide FIFO with a depth of N*2. After receiving data in the corresponding data receive buffer, the driver updates the receive completion information index register to inform the logic to release the address index to the free receive buffer FIFO. (12) Idle Send Buffer FIFO: A 32-bit wide FIFO with a depth of N. After allocating the data send buffer and writing it to the stream message send buffer address register, all FIFOs are set to idle. Then, after the application sends data, the logic updates the stream message sending completion information index register and releases it to the corresponding idle send buffer FIFO. (13) Idle receive buffer FIFO: A 32-bit wide FIFO with a depth of N*2. After allocating the data receive buffer and writing it to the stream message receive buffer address register, all FIFOs are set to idle. Then, after the application receives data, the driver updates the stream message receive completion information index register and releases it to the corresponding idle receive buffer FIFO by logic. (14) Channel connection information table: used to store channel connection information for sending and receiving, including channel connection number, source UDP, destination UDP, destination IP information, SEQ_ID, receive completion information queue index, and stream message data receive buffer index. After receiving a UDP packet, the channel connection information table is queried to check whether the destination IP / destination UDP is matched. After the conditions are matched, the packet is then processed by protocol parsing, verification, reassembly and other processes and then DMA to the host memory. (15) On-chip transmit / receive buffer in FPGA: The on-chip transmit buffer is used to transfer the application's streaming message data from the host memory to the space of the FPGA on-chip buffer, frame the data to be sent according to the protocol, and move the frames to the MAC buffer; when receiving, the data in the MAC buffer is moved to the on-chip receive buffer, the received data is parsed and reassembled according to the protocol, and DMA is started to move the data payload from the on-chip receive buffer to the host memory.

[0070] In another embodiment, the FoCE protocol is used for data transmission, such as Figure 4 As shown, the data sending process is as follows: (1) During initialization, set the IP address and MAC address of the network card; (2) During initialization, the driver software allocates the data transmission buffer for the stream message and records the N transmission buffer addresses in the corresponding hardware registers; (3) During initialization, the driver software allocates the space for the send descriptor and records the physical address base of the send descriptor in the corresponding hardware register; (4) During initialization, the driver software allocates space for the transmission completion information and records the physical address of the transmission completion information in the corresponding hardware register; (5) When creating a socket, the driver software selects the stream message data type, writes the corresponding channel connection number, source UDP, destination IP and destination UDP into the channel connection information table, allocates a receive completion information queue in sequence, and writes the receive completion information queue index into the channel connection information table. (6) The driver software reads the send completion information index register to obtain the idle send buffer, obtains the idle data send buffer, writes the data into the data buffer, and calls the sendto interface to send the data; (7) The driver software writes the source UDP, destination IP, destination UDP, buffer address and buffer length to the send descriptor and writes the data send buffer index to the send queue position index register. (8) The logic DMAs the send descriptor to the network card according to the send queue position index, and then DMAs the data to the network card FPGA internal buffer by parsing the buffer address and buffer length. (9) In the FPGA internal buffer, the logic assembles frames according to the FoCE protocol frame format based on the source IP and the destination IP, destination UDP and source UDP in the send descriptor, and submits them to the MAC logic unit. (10) The MAC logic unit looks up the destination MAC address in the ARP table, adds the destination MAC address and the source MAC address, and sends it; (11) After all data has been sent, the logical organization sends a completion message and writes it to the host memory; (12) After the transmission is completed, the transmission completion information index register is updated logically, and the transmission buffer is released to the idle transmission buffer FIFO; In another embodiment, the FoCE protocol is used for data transmission, such as Figure 4 As shown, the data receiving process is as follows: (1) During initialization, the driver software allocates the stream message data receiving buffer according to the maximum length of the stream message configured by the application, pre-configures its base address in the corresponding hardware register, and sets the idle receiving buffer FIFO to idle; (2) The driver software allocates the space for received information and records the physical address base address of each queue in the corresponding hardware register; (3) When data is received, it is stored in the on-chip receive buffer in the FPGA from the MAC, and the protocol is parsed. After passing through the IP and UDP logic units, it is determined that if the source UDP port is a FoCE protocol frame and the type is FoCE frame header, the channel connection information table is queried according to the source UDP, source IP, destination UDP and SEQ_ID. If it exists and is the first frame, the address unit is obtained from the idle receive buffer FIFO, and the stream message data receive buffer index is recorded in the channel connection information table. Then, according to the frame control, sequence counter and offset indication fields of the FoCE frame header, the data payload is DMA'd to the stream message data receive buffer in the host memory according to the position of the whole data packet. If it exists and is not the first frame, the stream message data receive buffer index is recorded in the channel connection information table, and the data payload is DMA'd to the stream message data receive buffer in the host memory according to the position of the whole data packet according to the frame control, sequence counter and offset indication fields of the FoCE frame header.

[0071] (4) When the stream message data is received, the logic updates the receive queue position index register of the corresponding socket stream message, and then adds the completion information queue index, receive buffer index and length to the corresponding socket stream message completion information queue. The logic then DMAs the receive completion information to the host receive completion information queue. (5) After the application calls the driver to obtain socket data, the driver updates the index register of the corresponding socket's completion information queue; (6) After the logic detects that the receiving completion information index register has been updated, it releases the corresponding data receiving buffer into the idle receiving buffer FIFO.

[0072] Compared with the prior art, the present invention has the following significant advantages: (1) Achieve true zero-copy stream message reassembly The receiver directly writes each data segment into the corresponding physical address of the pre-allocated receive buffer based on the Parameter offset field in the FoCE frame header, without the need for intermediate buffering or post-concatenation. This avoids the double copying of "receive buffer → application buffer" in traditional solutions, reducing memory bandwidth consumption and end-to-end latency.

[0073] (2) Unload the entire protocol stack hardware to release host CPU resources IP, UDP, ARP, and FoCE protocol processing are all implemented by the FPGA network card, with the host only providing buffered addresses via DMA. This significantly reduces CPU utilization, and a single core can support hundreds of thousands of concurrent streams, making it suitable for high-density virtualization environments.

[0074] (3) Efficient flow-level context management By using a channel connection information table (indexed by destination IP, destination UDP, and SEQ_ID), hardware can complete stream matching in nanoseconds. Compared to software hash table lookups, the matching latency is reduced by an order of magnitude, supporting millions of concurrent streams.

[0075] (4) Compatible with existing Ethernet infrastructure, with extremely low deployment costs. The protocol frames are standard Ethernet frames, and the switch does not need to support FC, RoCE, PFC, or any special functions. It can be directly deployed in existing data center networks without replacing switches or configuring QoS policies, significantly reducing TCO.

[0076] (5) Supports efficient scheduling of mixed messages Short messages and streaming messages share the same protocol stack, with short messages enjoying higher scheduling priority. Short messages can be dynamically inserted between long stream segments, avoiding the problem of "long streams blocking short streams," and the P99 latency of short messages is consistently within 5μs.

[0077] (6) Robust end-to-end integrity assurance ICRC checksums cover from the first byte of the IPv4 packet to the end of the data segment, independent of the Ethernet FCS. They can detect intermediate node anomalies such as IP route tampering and UDP payload corruption, ensuring high data reliability.

[0078] (7) Good scalability and future compatibility The FoCE frame header reserves fields such as type, priority, and control bits, supporting future expansion. The UDP port is configurable, facilitating multi-tenant isolation or multi-protocol coexistence.

[0079] In summary, this invention achieves near-FC performance and reliability without altering the network infrastructure, while also possessing the flexibility and low-cost advantages of IP networks, filling a technological gap in high-performance general-purpose Ethernet protocols.

[0080] In this embodiment, a computer device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements any of the above-described data transmission methods based on FC converged Ethernet protocol frames.

[0081] Specifically, the computer device can be a computer terminal, a server, or a similar computing device.

[0082] In this embodiment, a computer-readable storage medium is provided, which stores a computer program that executes any of the above-described data transmission methods based on FC converged Ethernet protocol frames.

[0083] Specifically, computer-readable storage media, including both permanent and non-permanent, removable and non-removable media, can store information using any method or technology. Information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer-readable storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable storage media does not include transient media, such as modulated data signals and carrier waves.

[0084] Obviously, those skilled in the art should understand that the modules or steps of the above-described embodiments of the present invention can be implemented using general-purpose computing devices. They can be centralized on a single computing device or distributed across a network of multiple computing devices. Optionally, they can be implemented using computer-executable program code, thereby storing them in a storage device for execution by a computing device. In some cases, the steps shown or described can be performed in a different order than those presented here, or they can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. Thus, the embodiments of the present invention are not limited to any particular hardware and software combination.

[0085] The above description is merely a preferred embodiment of the present invention and is not intended to limit the present invention. For those skilled in the art, various modifications and variations can be made to the embodiments of the present invention. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the protection scope of the present invention.

Claims

1. A protocol frame for FC converged Ethernet, characterized in that, The protocol frame is a standard Ethernet frame, and its payload includes an IP packet. The IP packet encapsulates a UDP datagram. The payload of the UDP datagram is a FoCE data unit, and the FoCE data unit includes a FoCE frame header, a data segment, and an end-to-end check field. The FoCE frame header includes flow control information for segmented transmission and reassembly of the stream message, including a sequence identifier, a sequence counter, an offset indicator field, and a total length field for the stream message; The data segment serves as a fragment of the streaming message; The end-to-end verification field is used for data integrity verification of the data payload. The data integrity verification covers the data range from the beginning of the IP header of the UDP datagram to the end of the data segment.

2. The protocol frame of FC converged Ethernet according to claim 1, characterized in that, The IP packet is an IPv4 packet, and its IP header includes a Flags field, an ECN field, and a Total Length field. The Flags field is set to disable fragmentation. The Total Length field contains the number of bytes from the IPv4 header to the end of the end-to-end checksum field.

3. The FC converged Ethernet protocol frame according to claim 1 or 2, characterized in that, The FoCE frame header also includes a type field, a frame control field, and a priority field; wherein, the type field is used to identify the protocol frame as an FC converged Ethernet frame, the frame control field includes a first frame identifier bit, a last frame identifier bit, a sequence end bit, an offset enable bit, and a padding data length field; the value of the priority field is consistent with the value of the DSCP field in the IP header, and is used to implement end-to-end quality of service control.

4. The FC converged Ethernet protocol frame according to claim 3, characterized in that, The FoCE frame header length correction bit is used to indicate the maximum stream length when the total stream message length field is zero.

5. The protocol frame of FC converged Ethernet according to claim 1, characterized in that, The source port number of the UDP datagram is a preset fixed port number used to identify the FoCE protocol type, and the UDP checksum field is set to 0.

6. The protocol frame of FC converged Ethernet according to claim 1, characterized in that, The end-to-end verification field is 4 bytes. When performing data integrity verification, only data that is expected to remain unchanged from the beginning of the IP header to the end of the data segment is verified. For fields that may change during transmission, they are uniformly set to all 1s before verification.

7. A data transmission method based on the protocol frames of FC converged Ethernet according to any one of claims 1 to 6, characterized in that, include: The sender writes the message to be transmitted into a pre-allocated unbuffered transmission buffer and submits a transmission request to the network card through a transmission descriptor; The network interface card (NIC) segments and frames the stream message according to the FoCE format based on the transmit descriptor, forms a protocol frame, and sends it. After receiving the protocol frame, the receiving network card parses and extracts the FoCE data unit, and extracts the flow control information from the FoCE frame header to determine whether it belongs to the same flow message as the previous frame data. The flow control information includes the destination IP address, destination UDP port number, sequence identifier, sequence counter and offset indicator field. Based on the destination IP address, destination UDP port number, and sequence identifier, query the channel connection information table to obtain the corresponding receive buffer index; The data segment is written directly to the physical address location of the receive buffer according to the byte offset indicated by the offset indication field; Once all segments of the streaming message have been received, a reception completion notification is written to the completion queue for processing by the application layer.

8. The data transmission method according to claim 7, characterized in that, The transmit descriptor contains the physical buffer address of the data to be transmitted, the data length, the destination IP address, the destination UDP port number, and the flow priority. The network card automatically generates a FoCE frame header and completes framing based on the descriptor. The channel connection information table is initialized by the receiver during the stream establishment phase, using the destination IP address, destination UDP port number and sequence identifier as a combined index, and records the base address of the receive buffer, the total length and the completion queue ID. The receive buffer is a non-cached physical memory area that is allocated by the host once during stream initialization. The receiver performs zero-copy writing according to the offset indicated by the offset indicator field, so that the data segments of each FoCE frame are directly concatenated in the receive buffer in the order of the original stream messages, without the need for the CPU to participate in data movement or reassembly during the receiving process.

9. The data transmission method according to claim 7, characterized in that, The streaming message is segmented and framed according to the FoCE format, including: Different stream messages are distinguished based on the destination IP address and destination UDP port number. When sending, the data of the same stream message is divided into multiple frames and the stream message is sent through sequence transmission. When segmenting streaming messages, except for the last frame in the streaming message sequence, the payload size of other frames is the same. The length of the last frame is determined by the length of the streaming message and the length of the sent streaming message. The relative offset of each frame in the entire data is recorded in the offset indication field. During streaming message sequence transmission, each frame is sent in the order of its segments. The frame control field identifies the context of each frame in the sequence, the sequence identifier and sequence counter identify the order of frames, and the offset indicator field indicates the relative offset of the frame data transmission.

10. The data transmission method according to any one of claims 7 to 9, characterized in that, The network interface card (NIC) is an FPGA programmable NIC. The processing logic for IP, UDP, ARP, and FoCE protocols is all implemented by FPGA hardware. The host only provides physical buffer addresses via DMA and does not participate in the encapsulation, parsing, or reassembly of protocol frames. Furthermore, short messages and streaming messages share the same FoCE protocol stack. The transmission priority of short messages is higher than that of streaming messages. Short messages are inserted and sent during the segmented transmission gaps of streaming messages to achieve low-latency transmission of mixed messages.