End system data fragmentation and transmission method

By adopting specific UDP datagram sharding rules and CRC field processing in the ARINC664 network, the problem of unnecessary filling and excessive sharding during data sharding is solved, and the accuracy of sending timestamps is improved, which is suitable for high security Network and non-intelligent end systems.

CN115733900BActive Publication Date: 2025-01-10XIAN AVIATION COMPUTING TECH RES INST OF AVIATION IND CORP OF CHINA
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202211320135.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-10-26
Publication Date
2025-01-10
Estimated Expiration
2042-10-26

AI Technical Summary

Technical Problem

In the prior art, ARINC664 network data sharding produces too many unnecessary fills or too many shards, resulting in the sending of timestamp STS inadequately, especially in non-intelligent systems that cannot meet the time delay requirements.

Method used

Using an end system data sharding and sending method, the length relationship between non-last slice and last slice is satisfied through preset rules of UDP datagrams, ensuring that the shard offset is 8 byte integer multiples, and in the last slice Includes CRCX and CRCY fields to simplify sharding and sending scheduling logic.

Benefits of technology

Solve the problem of unnecessary filling or excessive sharding when data sharding of ARINC664 network, improve the accuracy of sending timestamp STS, and is suitable for high-security ARINC664 networks, especially in non-intelligent systems to rely on the host processor for CRC. The calculation reduces time uncontrollability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115733900B_ABST
    Figure CN115733900B_ABST
Patent Text Reader

Abstract

The invention discloses a method for slicing and sending end system data, and the invention belongs to airborne network communication technology. Aiming at the requirements of high-security ARI NC664 network data, a method for slicing ARI NC664 network data and a method for sending high-security ARI NC664 network data are formulated, which solves the problems of unnecessary padding or excessive slicing generated when slicing ARI NC664 network data, the problem of insufficient precision of the sending timestamp STS of the high-security ARI NC664 network end system, and the problem of time uncertainty of CRC calculation by relying on the host processor under the non-intelligent end system solution.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention belongs to the field of airborne communication technology, and in particular relates to an end system data segmentation and sending method. Background Art

[0002] In the prior art, patent number 201510920460 discloses a method for improving network data security. In a high-security ARINC664 network, an integrity message header MIH field and two 16-bit CRC fields CRCX and CRCY are added to application data. The MIH field consists of a 2-byte message sequence number MSN and a 6-byte source timestamp STS.

[0003] The patent number of the prior art is Patent 201510920460.0, and the name is: In the intelligent end system solution, the host transmits the unfragmented data to the end system, and the processor inside the end system reads the RTC to fill in the STS field, calculates and fills in the CRCX and CRCY fields, and then performs data slicing, scheduling and sending. Because the internal processor has a single task and the time is controllable, the time for filling in STS, CRC, etc. is determined. STS can basically be considered as the sending time, but it deviates greatly from the actual sending time point. Moreover, this solution cannot be directly applied to the non-intelligent end system solution. In the non-intelligent end system, there is no processor inside the end system. If the host processor is relied on to perform the above work, the time is uncontrollable due to the complex tasks of the host processor, and the delay requirements of the ARINC664 network end system sending technology cannot be met.

[0004] In the prior art, excessive unnecessary padding or excessive fragmentation is generated when ARINC664 network data is fragmented, resulting in the high-security ARINC664 network end system taking the sending timestamp STS inaccurately. Summary of the invention

[0005] In view of this, the present invention provides an end system data fragmentation and sending method to solve the technical problem that too much unnecessary padding or too many fragments are generated when fragmenting ARINC664 network data, resulting in the high-security ARINC664 network end system taking the sending timestamp STS inaccurately.

[0006] An end system data fragmentation and transmission method, an end system data fragmentation and transmission method, characterized in that the UDP datagram length is udp_len, the maximum length in the UDP datagram is udp_max_len, the maximum allowed frame length of the MAC frame is Lmax, and the fragment offset satisfies the unit of 8 bytes, the method comprising:

[0007] S101: Divide UDP datagrams according to preset rules and satisfy:

[0008] The maximum length of the non-last UDP datagram udp_nor_len = the maximum length in the UDP datagram and udp_max_len & (~0x7); the maximum length of the last UDP datagram udp_max_len = Lmax-39;

[0009] The extra length of the last UDP datagram udp_e_len = the maximum length of the last UDP datagram minus the maximum length of the non-last UDP datagram, that is, udp_max_len-udp_nor_len;

[0010] m = the ratio of the UDP datagram length to the maximum length of the non-last UDP datagram and rounded, that is, udp_len / udp_nor_len, n = the modulo of the UDP datagram length and the maximum length of the non-last UDP datagram, that is, udp_len%udp_nor_len;

[0011] S102: The number of fragments meets the following requirements: determine whether n is less than or equal to the extra length udp_e_len of the last UDP datagram. If so, the number of fragments fn is the same as the value of m. If not, the value of the number of fragments fn = m+1.

[0012] S103: The length of the f_n-1th fragment meets the following requirements: whether n is less than or equal to the extra length of the last UDP datagram or whether n is greater than or equal to 25; if so, the length of the f_n-1th fragment is equal to the extra length udp_e_len of the last UDP datagram; if not, the length of the f_n-1th fragment is equal to the extra length udp_e_len of the last UDP datagram minus 24;

[0013] S104: The length of the last segment f_n satisfies:

[0014] When the value of n is less than or equal to the value of the extra length udp_e_len of the last UDP datagram, the length of the last fragment f_n is the sum of the maximum length udp_nor_len of the non-last UDP datagram and n;

[0015] When n is greater than or equal to 25, the length of the last fragment f_n is 25;

[0016] When the extra length value of the last UDP datagram is less than , and n is less than 25, the length of the last fragment f_n is the sum of 24 and n;

[0017] S105: The length of f_len of the remaining fragments is the maximum length of the non-last fragment UDP datagram udp_nor_len;

[0018] S106: Send network data after segmentation.

[0019] The technical beneficial effects of the present invention are:

[0020] Aiming at the requirements of high-security ARINC664 network data, an ARINC664 network data fragmentation method and a high-security ARINC664 network data sending method are developed to solve the problems of unnecessary padding or excessive fragmentation generated when ARINC664 network data is fragmented, the high-security ARINC664 network end system takes the sending timestamp STS inaccurately, and the time uncertainty problem of relying on the host processor for CRC calculation in the non-intelligent end system (no internal processor) solution. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings required for use in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present disclosure. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0022] Figure 1 It is a high-security data format;

[0023] Figure 2 It is the data sending process;

[0024] Figure 3 This is an example of sending data structure. DETAILED DESCRIPTION

[0025] The embodiments of the present disclosure are described in detail below with reference to the accompanying drawings.

[0026] The following describes the embodiments of the present disclosure through specific examples, and those skilled in the art can easily understand other advantages and effects of the present disclosure from the contents disclosed in this specification. Obviously, the described embodiments are only a part of the embodiments of the present disclosure, rather than all of the embodiments. The present disclosure can also be implemented or applied through other different specific embodiments, and the details in this specification can also be modified or changed in various ways based on different viewpoints and applications without departing from the spirit of the present disclosure. It should be noted that the following embodiments and features in the embodiments can be combined with each other without conflict. Based on the embodiments in the present disclosure, all other embodiments obtained by ordinary technicians in the field without making creative work are within the scope of protection of the present disclosure.

[0027] It should be noted that various aspects of the embodiments within the scope of the appended claims are described below. It should be apparent that the aspects described herein can be embodied in a wide variety of forms, and any specific structure and / or function described herein is merely illustrative. Based on the present disclosure, it should be understood by those skilled in the art that an aspect described herein can be implemented independently of any other aspect, and two or more of these aspects can be combined in various ways. For example, any number of aspects described herein can be used to implement the device and / or practice the method. In addition, other structures and / or functionalities other than one or more of the aspects described herein can be used to implement this device and / or practice this method.

[0028] The end system data fragmentation and transmission method provided by the present invention is used for the fragmentation and transmission of ordinary ARINC664 network data, or for the fragmentation and transmission of high ARINC664 network data. The UDP datagram length is udp_len, the maximum length in the UDP datagram is udp_max_len (each network corresponds to a maximum value), the maximum allowed frame length of the MAC frame is Lmax, and the fragmentation offset meets the unit of 8 bytes, which is used for the message receiving end to identify the message of the sending end. The driver software fills the relevant fields of the structure according to the fragmentation information to simplify the implementation of the sending scheduling and control logic; the sending data structure includes the MAC frame length, the MAC frame first address, the message SID, whether it is high-security data, whether it is fragmented, whether it is the first fragment and whether it is the last fragment. The method comprises:

[0029] S101: Divide UDP datagrams according to preset rules and satisfy:

[0030] The maximum length of the non-last UDP datagram udp_nor_len = the maximum length in the UDP datagram and udp_max_len & (~0x7); (~0x7) is the representation of 7 in hexadecimal. The maximum value of the two is taken as the maximum length of the non-last UDP datagram udp_nor_len

[0031] The maximum length of the last UDP datagram udp_max_len = Lmax-39, 39 is the general length value, which is the length of one information byte in the payload;

[0032] The extra length of the last UDP datagram udp_e_len = the maximum length of the last UDP datagram minus the maximum length of the non-last UDP datagram, that is, udp_max_len-udp_nor_len;

[0033] m = the ratio of the UDP datagram length to the maximum length of the non-last UDP datagram and rounded, that is, udp_len / udp_nor_len, n = the modulo of the UDP datagram length and the maximum length of the non-last UDP datagram, that is, udp_len%udp_nor_len;

[0034] S102: The number of fragments meets the following requirements: Determine whether n is less than or equal to the extra length udp_e_len of the last UDP datagram. If so, the number of fragments fn is the same as the value of m. If not, the value of the number of fragments fn is equal to m+1, that is, When n≤udp_e_len, udp_nor_len+udp_e_len≤udp_max_len, the m-th length udp_nor_len data and the length n data are combined into the final fragment;

[0035] S103: The length of the f_n-1th fragment satisfies: whether n is less than or equal to the extra length of the last UDP datagram or whether n is greater than or equal to 25, if so, the length of the f_n-1th fragment is equal to the extra length udp_e_len of the last UDP datagram, if so, the length of the f_n-1th fragment is equal to the extra length udp_e_len of the last UDP datagram minus 24, expressed as:

[0036] When udp_e_len<n<25, if it is directly divided into one piece, the final piece of data does not meet the Ethernet minimum frame length requirement of 64 bytes, and there are padding fields in the data. To avoid the padding fields occupying the network bandwidth, this method allocates 24 bytes of data from the second to last piece to the last piece;

[0037] S104: The length of the last segment f_n satisfies:

[0038] When the value of n is less than or equal to the value of the extra length udp_e_len of the last UDP datagram, the length of the last fragment f_n is the sum of the maximum length udp_nor_len of the non-last UDP datagram and n;

[0039] When n is greater than or equal to 25, the length of the last fragment f_n is 25;

[0040] When the extra length value of the last UDP datagram is less than , and n is less than 25, the length of the last fragment f_n is the sum of 24 and n, which can be expressed as:

[0041] The CRCX and CRCY fields are completely included in the last fragment, simplifying the implementation of the CRCX and CRCY field transmission control;

[0042] S105: The length of f_len of the remaining fragments is the maximum length of the non-last UDP datagram udp_nor_len,

[0043] The driver collects relevant information to form a send data structure, including MAC frame length frame_len, MAC frame first address frame_addr, message SID, whether it is high-security data, whether it is fragmented, whether it is the first fragment, and whether it is the last fragment. Then, the structure and MAC frame are transmitted to the queue of the end system send buffer through the host interface;

[0044] S106: Send network data after segmentation.

[0045] As a specific implementation method provided in this case, it is applicable to a high-security ARINC664 network data transmission method, which solves the inaccurate value of the sending timestamp and the additional delay caused by calculating the CRC, including:

[0046] When the data is scheduled to be sent, the RTC value is collected as the sending timestamp STS to accurately indicate the time point when the first byte of the data is sent: the CRC calculation control of the data, the STS field and the CRC field sending control are performed according to the fragment identifier, the first fragment identifier and the last fragment identifier of the sending data structure; the CRC calculation is processed in parallel with the sending data. For example, the end system sends the data in a polling manner. When the VL used by the current data is scheduled:

[0047] 1. Read the structure and read the RTC value;

[0048] 2. If it is non-fragmented data, send data starting from the first address of the MAC frame:

[0049] ——Bytes 37 to 42 are replaced by the RTC value (both during transmission and CRC calculation);

[0050] ——Calculate the CRCX and CRCY check values ​​of {message SID, MAC frame 35th byte - frame_len-9th byte};

[0051] ——Bytes frame_len-8 to frame_len-5 are replaced by CRCX and CRCY check values;

[0052] 3. If it is the first fragment, send data starting from the first address of the MAC frame:

[0053] --Bytes 37-42 send the RTC value (both when sending and when calculating CRC);

[0054] ——Calculate the CRCX and CRCY check values ​​of {message SID, MAC frame 35th byte - frame_len-5th byte} and store the results temporarily;

[0055] 4. If it is not the first or last fragment, send data from the first address of the MAC frame, and calculate the CRCX and CRCY check values ​​of {temporarily stored CRCX check value or CRCY check value, 35th byte of MAC frame - frame_len-5 bytes}, and store the results temporarily;

[0056] 5. If it is the last fragment, send data starting from the first address of the MAC frame:

[0057] ——Calculate the CRCX and CRCY check values ​​of {message SID, MAC frame 35th byte - frame_len-9th byte};

[0058] ——Bytes frame_len-8-frame_len-5 are replaced by the CRCX and CRCY check values.

[0059] See also Figure 1 ,

[0060] Step 1: The application acts as a data source (data source generates data) and generates the initial data to be sent. The length of all data is 1-8180 bytes. The driver is called through the configured communication port to process and send the data.

[0061] Step 2:

[0062] Drivers ( Figure 1 ) combines the initial data (length 1-8180 bytes), MIH field and CRC field to form the UDP layer Payload (length 13-8192 bytes, data structure as shown Figure 1 ). Read the configuration information according to the communication port number,

[0063] Step 1: data (header) adds UDP header to form UDP datagram (length 21-8200 bytes), where:

[0064] When the UDP datagram length is greater than udp_max_len bytes, the UDP datagram is fragmented.

[0065] Step 2: Add the IP header to form an IP datagram (length 45 to udp_max_len + 20 bytes), and add the MAC header, ARINC664 data SN number, and MAC tail to form a complete MAC frame (length 64-Lmax bytes).

[0066] For the definitions of udp_max_len and Lmax, please refer to the above fragmentation method.

[0067] Set the UDP datagram length to udp_len, the maximum allowed frame length of the MAC frame to Lmax, and the fragmentation method is as follows:

[0068] 1. The maximum length of the last fragmented UDP datagram satisfies: (determine the length of UDP) udp_max_len = Lmax-18-1-20, that is, the maximum MAC frame length minus 18 bytes of MAC frame header and tail, 1 byte of ARINC664 data SN number, and 20 bytes of IP frame header;

[0069] 2. The maximum length of the non-last UDP datagram is udp_nor_len = udp_max_len & (~0x7). The maximum length of the non-last UDP datagram must be less than the maximum UDP length of udp_max_len, and the maximum integer multiple of 8 is used as the maximum length value (65, 8*8=64, the extra 1 is placed in the next piece), ensuring that the fragment offset is an integer multiple of 8 bytes and the fragments are as few as possible;

[0070] 3. The extra length of the last UDP datagram udp_e_len = udp_max_len - udp_nor_len; (udp maximum length - non-last UDP datagram maximum length)

[0071] 4. Calculate the number of fragments: m = udp_len / udp_nor_len (rounded), 24 (UDP datagram length), n = udp_len% udp_nor_len (remainder), 1 is the number of fragments, the mth length udp_nor_len data and length n data are combined into the final fragment;

[0072] 5. The length of the f_n-1th fragment is . If it is directly divided into one piece, the data of the last fragment does not meet the minimum frame length requirement of 64 bytes of Ethernet, and there is a padding field in the data. To avoid the padding field occupying the network bandwidth, this method divides 24 bytes of data from the second to last fragment to the last fragment. (To ensure that the length of the last fragment is greater than 64)

[0073] 6. The f_nth fragment is the last fragment, with a length of . The last fragment needs to add CRCX and CRCY fields, which are included in the last fragment to form a complete data packet. Simplify the implementation of the CRCX and CRCY field sending control.

[0074] 7. Other fragments, except the last and the second to last fragments, the length of other fragments is f_len = udp_nor_len,

[0075] Step 3: The driver collects relevant information to form a send data structure. The structure example is as follows Figure 3, including MAC frame length frame_len, MAC frame first address frame_addr, message SID, whether it is high-security data, whether it is fragmented, whether it is the first fragment, whether it is the last fragment, and then the structure and MAC frame are transmitted to the queue of the end system send buffer through the host interface.

[0076] Step 4: End system sending scheduling (sending processing) Figure 1 ) uses polling mode, and when the VL (virtual link) used by the current data is dispatched, data processing is performed ( Figure 1 ), while sending data ( Figure 1 ): (virtual link), (send only when there is data);

[0077] 1. Read the RTC value in the structure;

[0078] 2. If it is non-fragmented data (the data packet is very short, less than the length of the minimum Ethernet frame, for example, 1500 bytes, no fragmentation is required), send data starting from the first address of the MAC frame:

[0079] Bytes 37-42 are replaced by the RTC value (both during transmission and during CRC calculation);

[0080] ——Calculate the CRCX and CRCY check values ​​of {message SID, MAC frame 35th byte - frame_len-9th byte};

[0081] -- Bytes frame_len-8-frame_len-5 are replaced by the CRCX and CRCY check values;

[0082] 3. If it is the first fragment, send data starting from the first address of the MAC frame:

[0083] --Bytes 37-42 send the RTC value (both when sending and when calculating CRC);

[0084] ——Calculate the CRCX and CRCY check values ​​of {message SID, MAC frame 35th byte - frame_len-5th byte} and store the results temporarily;

[0085] 4. If it is not the first or last fragment, send data from the first address of the MAC frame, and calculate the CRCX and CRCY check values ​​of {temporarily stored CRCX check value or CRCY check value, 35th byte of MAC frame - frame_len-5 bytes}, and store the results temporarily;

[0086] 5. If it is the last fragment, send data starting from the first address of the MAC frame:

[0087] ——Calculate the CRCX and CRCY check values ​​of {message SID, MAC frame 35th byte - frame_len-9th byte};

[0088] ——Bytes frame_len-8 to frame_len-5 are replaced by CRCX and CRCY check values.

[0089] Step 5: Complete the data sending process and use the existing technology to send it.

[0090] The above are only specific embodiments of the present disclosure, but the protection scope of the present disclosure is not limited thereto. Any changes or substitutions that can be easily thought of by a person skilled in the art within the technical scope disclosed in the present disclosure should be included in the protection scope of the present disclosure. Therefore, the protection scope of the present disclosure should be based on the protection scope of the claims.

Claims

1. A method for segmenting and sending end system data, characterized in that: The length of the UDP datagram is udp_len, the maximum length of the UDP datagram is udp_max_len, the maximum allowed frame length of the MAC frame is Lmax, and the fragment offset satisfies the unit of 8 bytes. The method includes: S101: Divide UDP datagrams according to preset rules and satisfy: The maximum length of the non-last UDP datagram udp_nor_len = the maximum length in the UDP datagram and udp_max_len & (~0x7); the maximum length of the last UDP datagram udp_max_len = Lmax-39; The extra length of the last UDP datagram udp_e_len = the maximum length of the last UDP datagram minus the maximum length of the non-last UDP datagram, that is, udp_max_len-udp_nor_len; m = the ratio of the UDP datagram length to the maximum length of the non-last UDP datagram and rounded, that is, udp_len / udp_nor_len, n = the modulo of the UDP datagram length and the maximum length of the non-last UDP datagram, that is, udp_len%udp_nor_len; S102: The number of fragments meets the following requirements: determine whether n is less than or equal to the extra length udp_e_len of the last UDP datagram. If so, the number of fragments fn is the same as the value of m. If not, the value of the number of fragments fn is equal to m+1. S103: The length of the f_n-1th fragment meets the following requirements: whether n is less than or equal to the extra length of the last UDP datagram or whether n is greater than or equal to 25; if so, the length of the f_n-1th fragment is equal to the extra length udp_e_len of the last UDP datagram; if not, the length of the f_n-1th fragment is equal to the extra length udp_e_len of the last UDP datagram minus 24; S104: The length of the last segment f_n satisfies: When the value of n is less than or equal to the value of the extra length udp_e_len of the last UDP datagram, the length of the last fragment f_n is the sum of the maximum length udp_nor_len of the non-last UDP datagram and n; When n is greater than or equal to 25, the length of the last fragment f_n is 25; When the extra length value of the last UDP datagram is less than , and n is less than 25, the length of the last fragment f_n is the sum of 24 and n; S105: The length of f_len of the remaining fragments is the maximum length of the non-last fragment UDP datagram udp_nor_len; S106: Send network data after segmentation.

2. The end system data fragmentation and transmission method according to claim 1, characterized in that: The driver software fills the relevant fields of the structure according to the fragmentation information to simplify the implementation of the sending scheduling and control logic; the sending data structure includes the MAC frame length, the MAC frame first address, the message SID, whether it is high-security data, whether it is fragmented, whether it is the first fragment, and whether it is the last fragment.

3. The end system data fragmentation and transmission method according to claim 1, characterized in that: Applicable to the high-security ARINC664 network data transmission method, solving the inaccurate sending timestamp value and the extra delay caused by CRC calculation, including: When the data is scheduled to be sent, the RTC value is collected as the sending timestamp STS, which accurately indicates the time point when the first byte of the data is sent: According to the fragment identifier, first fragment identifier and last fragment identifier of the data structure, the CRC calculation control of the data and the transmission control of the STS field and the CRC field are performed; The CRC calculation is processed in parallel with the transmitted data.

4. The end system data fragmentation and transmission method according to claim 1, characterized in that: Used for segmenting and sending common ARINC664 network data.

5. The end system data fragmentation and transmission method according to claim 1, characterized in that: Used for segmenting and sending high-speed ARINC664 network data.

Citation Information

Patent Citations

  • A method for improving network data security based on end systems

    CN105577647B

  • Avionics full duplex switched Ethernet (AFDX) network terminal system simulator with layered fault injection and fault analysis functions

    CN102209000A

  • End system-based safety improving method of network data

    CN105577647A