Cross-network convergence transmission method and device based on network coding
By using the network -based cross -network fusion transmission method in the network of smart cities, the problem of unreliable unreliable transmission of single network system transmission is solved, and data transmission of high bandwidth, low latency and high reliability is achieved. Application needs.
Patent Information
- Application Number
- CN202411120835.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-15
- Publication Date
- 2025-01-24
AI Technical Summary
In the construction of smart cities, data transmission in a single network system is easily restricted by signal loss and connection rate, and the wireless link is unreliable, making it difficult to meet the reliability and delay requirements of different applications.
Using a cross-network converged transmission method based on network coding, the original data packet is encoded by selecting the encoding method according to the application type to generate encoded data packets and redundant data packets, and the link weight is adjusted based on the network status to achieve high bandwidth and low cost. Delayed data transmission.
The bandwidth of data transmission is increased, the delay is reduced, the reliability of data transmission can be enhanced, and the diverse needs of different applications on delay and reliability can be met.
Smart Images

Figure CN119363682A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a cross-network fusion transmission method and device based on network coding. Background Art
[0002] The main research content of the network architecture centered on cloud computing in the construction of smart cities is as follows. At present, data is transmitted through a single network standard. When the mobile communication device runs to the dead point of the network standard, it is easy to suffer from signal loss and connection rate limitation. The wireless link is susceptible to frequent emergencies, unreliable and unpredictable. Different application types have different requirements for reliability and latency; the unified encoding method before data transmission cannot meet these requirements. Summary of the invention
[0003] The purpose of this application is to provide a cross-network fusion transmission method and device based on network coding, which can complete cross-network fusion transmission based on network coding, while increasing the bandwidth of data transmission and reducing the delay.
[0004] To achieve the above objectives, this application provides the following solutions:
[0005] The present application provides a cross-network fusion transmission method based on network coding, including:
[0006] According to the application type, a coding method is selected to encode the original data packet to obtain multiple data packets to be transmitted; the data packets to be transmitted include coded data packets and redundant data packets;
[0007] Get network status;
[0008] Determine a scheduling solution based on the network status;
[0009] The weight of each link when sending multiple packets to be transmitted is adjusted based on the scheduling scheme.
[0010] A cross-network fusion transmission device based on network coding is applied to a smart city system; the system includes a sending end and a receiving end; the sending end sends multiple data packets to be transmitted to the receiving end through multiple links;
[0011] The device includes: a network status detection module, a network coding module and a cross-network fusion scheduling module integrated at the sending end;
[0012] The cross-network fusion scheduling module is connected to the network status detection module and the network coding module respectively;
[0013] The network coding module is used to select a coding method to encode the original data packet according to the application type to obtain multiple data packets to be transmitted;
[0014] The network status detection module is used to obtain the network status;
[0015] The cross-network fusion scheduling module is used to determine the scheduling scheme based on the network status, and adjust the weight of each link when sending multiple data packets to be transmitted based on the scheduling scheme;
[0016] The network coding module includes a protocol construction module, a redundancy adjustment module and a coding mode selection module, as well as a parsing module, a caching module, a coding module and a forwarding module connected in sequence;
[0017] The protocol construction module, the redundancy adjustment module and the encoding mode selection module are all connected to the encoding module;
[0018] The cross-network fusion scheduling module includes a weight adjustment module and a forwarding scheduling module;
[0019] The forwarding scheduling module is connected to the forwarding module and the weight adjustment module respectively;
[0020] The weight adjustment module is connected to the network status detection module.
[0021] According to the specific embodiments provided in this application, this application discloses the following technical effects:
[0022] This application uses a programmable switch to make it possible to build a network coding data plane. The programmable switch chip processes more data packets per second, thereby improving the throughput of network coding. In order to improve the performance of this application in smart city applications, the encoding module selects the corresponding encoding method according to the application type to optimize the encoding method. The cross-network fusion scheduling module selects the optimal path for scheduling based on the detected network status information to ensure the fastest transmission of data packets to the receiving end. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments are briefly introduced below.
[0024] Figure 1 It is a module diagram of a cross-network fusion transmission device;
[0025] Figure 2 This is a schematic diagram of a cross-network fusion transmission device;
[0026] Figure 3 This is a schematic diagram of the message format of the network status detection module;
[0027] Figure 4 This is a schematic diagram of the network status detection module message header parsing;
[0028] Figure 5 This is a schematic diagram of information collection for the network status detection module;
[0029] Figure 6This is a schematic diagram of the IP network coding message header format;
[0030] Figure 7 This is a schematic diagram of the network coding module message header parsing;
[0031] Figure 8 This is a schematic diagram of a network coding cache module;
[0032] Fig. 9 It is a schematic diagram of the network coding module and the cross-network fusion scheduling module;
[0033] Fig.10 Schematic diagram of random linear network coding;
[0034] Fig.11 Schematic diagram of network coding to increase throughput;
[0035] Fig.12 This is a schematic diagram of the cross-network fusion transmission method. DETAILED DESCRIPTION
[0036] Example 1
[0037] This embodiment discloses a cross-network fusion transmission device based on network coding applied to a smart city system. The system includes a transmitting end and a receiving end. The transmitting end sends multiple data packets to be transmitted to the receiving end through multiple links.
[0038] like Figure 1 The device includes a network status detection module, a network coding module and a cross-network fusion scheduling module integrated at the sending end. The network coding module includes a protocol construction module, a redundancy adjustment module and a coding mode selection module, as well as a parsing module, a cache module, a coding module and a forwarding module connected in sequence. The protocol construction module, the redundancy adjustment module and the coding mode selection module are all connected to the coding module.
[0039] The network status detection module has only one functional module, the status detection module; it mainly allows fine-grained monitoring of network traffic, allowing the module to collect data at various points in the network, including individual switches and routers. This module constructs and parses network status detection messages, and realizes the function of perceiving network status including latency, bandwidth, and packet loss rate through only a few data packets.
[0040] The network coding module mainly includes 7 functional modules: including protocol construction module, redundancy adjustment module and coding mode selection module, as well as sequentially connected parsing module, cache module, coding module and forwarding module; the network coding method with increased throughput in the network coding module can ensure low-delay transmission of application services with strict validity periods such as video streams; the random linear network coding method ensures the reliability of transmission by increasing redundancy, and effectively reduces the additional delay caused by the introduction of network coding by adjusting the coding redundancy: the protocol construction and parsing modules add the corresponding information required for encoding and decoding to the data packet; the cache module caches the collected data packets, and after a period of time or when enough data packets are collected, the coding mode selection module selects the corresponding coding mode to encode them; the random linear network coding module uses the multicast mode of the forwarding module to generate different coding vectors to obtain coded data packets and redundant data packets, and adjusts the number of redundant packets according to the redundancy adjustment module to improve the coding performance. The network coding with increased throughput directly performs XOR on the data packet to become a data packet for forwarding operation. Since there is only one data packet, the forwarding scheduling module selects a link with the best link to the next hop switch or terminal according to the weight.
[0041] The cross-network fusion scheduling module mainly includes two functional modules: the weight adjustment module and the forwarding scheduling module. The network status detection module obtains information about the link perception, adjusts the estimation of the link status, and adjusts the link weight accordingly. Then, the forwarding scheduling module sends the corresponding number of data packets according to the link weight, ensuring the low latency and high reliability requirements of the application.
[0042] like Figure 2 As shown, the specific functional modules and implementation process of the method in the process of data transmission at the sending end are as follows:
[0043] The transmitting end and the receiving end and the cross-network fusion transmission in the wireless environment include multiple paths. In the transmitting end: the network status detection module uses in-band network telemetry technology to sense each link, and makes corresponding adjustments to the delay, bandwidth, packet loss rate and other estimates based on the measured link status; the network coding module can establish a mathematical model for the encoding and decoding delay and the transmission delay and set the optimization target to adjust the coding redundancy to perform random linear network coding to ensure reliability, and select different coding methods according to different application types to achieve high reliability or low delay transmission. According to the link status of multiple links for the network status detection module, the weight of each current link is adjusted accordingly to ensure that the data packet can reach the receiving end with lower delay and higher reliability.
[0044] In addition to the receiving buffer, the receiving end also includes the random linear coded data packets and their redundant data packets arriving at the receiving end, and decodes the coded data packets according to their coding coefficients to obtain the payload of the original data packets; or immediately decodes the received network coded data packets that increase the throughput by monitoring some of the received data packets; and encapsulates the decoded data and hands it over to the upper layer application through the data report generator. Below, the role and function of each module in the cross-network fusion transmission method based on network coding is described in detail by describing the data packet forwarding process from the sender to the receiver.
[0045] When the sending end, i.e. the programmable switch, receives a data packet, it adds an additional header of the coded data packet and selects the corresponding coding method according to the application type. Based on the estimation of the encoding and decoding delay and the transmission delay, the random linear network coding module determines the coding redundancy, that is, the ratio of the number of redundant packets added to the original data packet, so as to minimize the network coding delay and improve reliability. Although the redundant data packets increase the amount of data sent, it can ensure that enough data packets reach the receiving end, speed up the encoding process and minimize retransmission. The network coding that increases the throughput selects how many data packets to perform XOR operations and transmit. The upper-layer application data will be divided into data blocks of equal length and encapsulated into data packets of equal length for encoding operations. Other types of data packets will not be operated by the network coding module and are usually forwarded directly.
[0046] Then, the network status detection module uses custom constructed data packets, which are standard network traffic data packets but introduce special headers for collecting INT information. These headers contain the parameters to be monitored. After that, the constructed INT data packets are periodically sent to the network. When the INT data packets pass through the network device, the programmable switch will parse the INT header and perform corresponding operations based on the information in it, such as writing the delay and the number of data packets into the header of the data packet. When the data packet arrives at the receiving end, the data information will be collected and presented with information such as delay and bandwidth. The cross-network fusion scheduling module updates the currently maintained status indicators based on the network status information such as delay, bandwidth, and packet loss rate collected by the network status detection module, predicts the next link status information, and adjusts the weight of the link sending data packets accordingly, so that the data packet selects a path for forwarding according to the weight.
[0047] At the receiving end, the data packet is first stored in the receiving buffer. The random linear network decoder decodes it and extracts the original data packet information based on the collected encoding vector of the data packet header and the payload part after encoding. The data will then be passed to the upper-layer application by the data report generator. Since random linear network coding ensures reliability, the connection used in this application is an unreliable connection, and it will not automatically retransmit lost data packets to ensure that it will not retransmit redundant lost data packets. When the decoding is unsuccessful, a feedback strategy can be adopted and a time threshold can be set. When the decoding time exceeds a threshold, the receiving end will send a feedback data packet to inform the sending end to implement the retransmission strategy. The network coded data packet that increases the throughput will be immediately decoded at the receiving end based on the rest of the received data packets monitored, and the data packets that cannot be decoded will be discarded to reduce the calculation delay.
[0048] Network status detection module:
[0049] The message header is mainly located after the Ethernet frame, such as Figure 3 As shown in the figure, the main headers include three parts: probe_t, probe_data_t and probe_fwd_t. The probe_t header provides a mechanism to track the transmission path of data packets in the network. By recording the number of hops that the data packet passes through, the administrator can understand the propagation of the data packet in the network and the path length, as well as evaluate the complexity and performance of the network topology; the probe_data_t header carries additional monitoring information to help administrators monitor and analyze the performance and status of the network. This information may include understanding the identity of each network node that the data packet passes through, the traffic load, the actual traffic data, and the transmission time of the data packet in the network, so as to help administrators quickly identify and solve problems in the network; the probe_fwd_t header indicates the egress port to which the next node should send the data packet, thereby guiding the transmission path of the data packet in the network. Through this header, it is possible to ensure that the data packet is transmitted along the expected path, ensure that the data packet can reach its destination, and ultimately achieve comprehensive monitoring and management of network performance and status, while ensuring that the status information of the corresponding link can be measured.
[0050] The various fields in the network status detection module message header are described in detail, mainly including 3 types of headers and 8 fields; the fields mainly include the number of hops through the switch field, the switch identification field, and the outbound port field, etc. The meaning of the specific fields and their functional descriptions are shown in Table 1.
[0051] Table 1 INT header field meaning table
[0052]
[0053]
[0054] The specific process of network status detection is described below. The network status detection design of this application is mainly based on programmable switches and their high-level language P4 for programming. The data packet parsing process of the network status perception module is as follows: Figure 4 As shown, the data packet is first processed by the parser, and the parser distributes the data packet to the corresponding processing flow according to the EtherType field in the Ethernet frame; if the EtherType is a specific detection type (0x0812), the data packet is sent to the detection packet parsing process; when the data packet is identified as a detection packet, the switch is responsible for extracting the detection packet header information from the data packet and setting the remaining hop count to the hop counter (hop_cnt) plus 1 for use in subsequent states. In the data part of the parsing detection packet (parse_probe_data state), it extracts the next detection data (probe_data) and selects to enter the next state according to the last flag bit (bos) of the detection data; if the flag bit is 1, this is the last data part of the detection packet, and preparation for parsing the export forwarding (parse_probe_fwd state) should be started; otherwise, continue to parse the next data part of the detection packet. According to the remaining hop count of the current probe packet, the next state is selected through state transition. Each time the egress forwarding of the probe packet is parsed (parse_probe_fwd state), the remaining number is reduced by 1. If the remaining hop count is 0, it means that the egress forwarding of the probe packet has been parsed and the parsing process should be ended. Otherwise, continue to parse the egress forwarding of the probe packet.
[0055] like Figure 5As shown, in the switch ingress port handler, if the data packet is a probe packet (judged by hdr.probe.isValid()), the egress port of the probe packet is set to the egress_spec field in the metadata, and the hop counter of the probe packet is increased. In the switch egress port handler, the main function of the switch is to record the data flow of each port and process and record the information of the probe packet when necessary; in this part, the byte count and time information of the data packet will be recorded, and the special logic of the probe packet will be processed. First, the byte count and current timestamp of the data packet are obtained; then, the timestamp and other information are inserted into the data packet header, and the byte count record of the data packet is updated. If the data packet is a probe packet (judged by hdr.probe.isValid()), the byte count record is reset, a new data item is created in the probe data structure, and it is marked as valid; according to the hop count of the probe packet, whether it is the first and last data item of the probe data is set; the swid table is called to set the switch ID field; other probe data fields such as port number, byte count and timestamp are set; and the timestamp record of the last probe packet is updated.
[0056] Finally, the data packet is sent to the Deparser, where all header fields are sent in reverse order to reconstruct the original data packet. Each switch performs the same operation, and finally the receiving end can obtain the network status information in each switch that supports the network detection module, including delay, bandwidth, packet loss rate, etc. In a one-hop switch, the delay of each link is:
[0057] RTT i =cur_time i -last_time i (1)
[0058] Where cur_time i with last_time i are the time of the current and last received data packets, respectively, and the difference between them can be the propagation delay of the link.
[0059] The throughput of each link is:
[0060]
[0061] Where byte_cnt i is the number of bytes transmitted on the link, then the throughput can be the number of bits transmitted on the link divided by the transmission delay of the link.
[0062] The packet loss rate can be calculated by the ratio of the number of data packets received by the receiving end to the number of data packets sent by the previous hop switch:
[0063]
[0064] where count_rcv i and count_snd i They are the number of data packets received by the receiver and the number of data packets sent by the previous hop switch.
[0065] Network Coding Module
[0066] (1) Network Coding Protocol Header
[0067] The network coding message header is mainly located after the Ethernet frame, such as Figure 6 As shown, the main function of the header is to ensure that the data packet belongs to the right round, so as to ensure that the data packet is correctly decoded and accepted; in addition, the receiving end can also obtain information such as the number and content of the payload and coding coefficients, the type of data packet, the size of the finite field, etc. through the message header.
[0068] The meaning and function of each field are described in detail, as shown in Table 2. The number of bits and functions of each field are described respectively. By defining the network coding message header, the programmable switch and its corresponding programming language P4 can be convenient for changing the coding vector and payload, obtaining the round of each group of data packets, the number of bits of the payload, the size of the finite field, etc., which facilitates the correct reception and decoding of the receiving end.
[0069] Table 2 Network coding header field meaning table
[0070]
[0071]
[0072] (2) Network Coding Analysis Module
[0073] First, check whether the Ethernet header exists. If the protocol indicating the encapsulated frame is a network coding message protocol, verify and extract the network coding header according to the previously proposed format. If the network coding header does not exist, the data packet does not belong to the network coding message and will be immediately returned to the control entry stream for multicast. The parsing technology used in this application is unique in that the payload is divided into multiple symbols and extracted into multiple headers (one header contains N symbols) instead of a single header. This is because in network coding, the multiplication and addition used in the encoding and decoding process are performed on a finite field, and payloads that are too long cannot be calculated. We need the header to individually reference each group of symbols in order to correctly implement the calculation of the network coding scheme in the finite field during the encoding process. For example, if GF is 2 8And the data packets have 32 bits, then their pkt.payload represents 4 symbols (i.e. 8 bits each), assuming that a header contains one symbol, then pkt.payload is extracted into the headers of 4 data packets respectively. The specific parsing process is as follows Figure 7 shown.
[0074] (3) Network Coding Cache Module
[0075] The cache module of network coding messages is used to cache messages with network coding protocols to be sent by the sender. They are stored and used for subsequent coding operations. In order to save memory in the cache module, the cache module maintains the identifier of the current round, and only the data packets of the current round can be cached. Figure 8 As shown, in the cache module, consider GF(2 8 ) finite field, all calculations are done on finite fields, so 8 bits are needed to contain all calculation results. Therefore, the payload of the data packet and the encoding vector will be divided into 8-bit fixed-size symbols and stored in different buffers. The cache module extracts the data in each buffer for calculation by indexing.
[0076] (4) Random Linear Network Coding Module
[0077] The schematic diagram of the network coding module and the cross-network fusion scheduling module is as follows: Fig. 9 As shown, the main process of the random linear network coding module is as follows: the programmable switch receives the data packets of the same round, and stores them in the buffer module after parsing and inbound port processing, and then the data packets are ready for network coding. If the size of the above index is greater than or equal to the number of coded data packets contained in each round, it indicates that the programmable switch has received enough data packets for network coding operations. In this case, the data packet of the buffer module is randomly selected as input, and each symbol of the payload and the content of the coding vector are retrieved. During the outbound port processing, the header content of the data packet is replaced by randomly generating a coding vector, and the coding vector matrix and the payload part are calculated in a finite field. Finally, multicast technology is used to generate multiple different coded data packets for decoding by the receiving end.
[0078] Since large calculations can cause buffer overflows, the operation of the encoding module in this application is limited to operations on finite fields. For the arithmetic operations required in the encoding, addition can be implemented using XOR; however, multiplication requires the maintenance of a logarithm table and an antilogarithm table in advance. The multiplication of two numbers a and b can be changed to loga+logb, and then the antilogarithm of the obtained value can be calculated once to obtain the result of the multiplication of a and b. In order to speed up the processing of each data packet, the programmable switch saves these pre-calculated tables in registers during startup.
[0079] Next, we will introduce the specific random linear network encoding and decoding operations. Each time the switch encodes a data packet, it will generate a row vector of the encoding matrix, which together constitute the encoding matrix:
[0080]
[0081] The encoding matrix CM is composed of the vector matrix SM that encodes the original data packet K×K And the added redundant coding vector matrix RM (n-K)×K The coding matrix CM consists of K column vectors, which is the number of original data packets, n is the total number of data packets in this round, and nK is the number of redundant data packets introduced by a group of data packets. By using the product of the coding vector matrix and the original data packet, we can get all the data packets to be sent in one round. Fig.10 As shown in the figure, it intuitively shows the entire process of network coding at the sending end, data packet loss during transmission, and decoding at the receiving end. In the figure, for any set of rounds, encoding is performed, a row vector of the coding matrix CM is extracted and multiplied with the original data packet, and all data packets are XORed, and the same operation is performed on each row to obtain the coded data packet and the redundant data packet. During the transmission process, due to the unstable link, packet loss occurs, and the receiving end cannot receive the complete coded data message. However, if the number of data packets received by the receiving end is greater than or equal to the number of column vectors K of the coding matrix CM, the inverse of the matrix composed of the first K data packets and their coding coefficients will be extracted to perform the same operation as encoding to decode the original data packet.
[0082] (5) Network coding module to increase throughput
[0083] Intermediate nodes combine packets from different sources through binary XOR operations. Intermediate nodes wait for a shorter time to encode received packets to optimize the encoding advantage of the intermediate nodes. In order to minimize computational latency, packets that are not immediately decodable are discarded and only decodable packets are forwarded further to the next hop. The goal of network coding to increase throughput is to maximize the number of decodable packets on all N nodes through the same set of encoded packets.
[0084] By multicasting in the network, different data packets are simply XOR-encoded to maximize the original data packet sent in a single transmission and ensure that the receiver has a supplementary data packet to decode the original data packet; if the additional data is encoded and forwarded to an area where no receiver can decode the data packet, additional computing resources will be consumed while reducing throughput. Therefore, the mechanism of opportunistic coding needs to guarantee the possibility of decoding, and each node listens to the data packets it can receive and saves these data packets for a period of time in order to decode the received encoded data packets. It should be noted that data packets from different streams can be encoded together at some intermediate nodes and decoded at the next hop path fork. It is used by nodes to exchange information about the data packets owned by neighbors. The neighbor state provides information for intermediate nodes to decide whether to send encoded data packets or only forward original data packets.
[0085] The header of the coded data packet increments the round identifier by one for each multicast coded data packet sent, sets Gen_Size to the number of coded data packets XORed together, sets the size of the finite field to 2, selects the network coding module for increasing throughput as the type, and no longer adds the coding coefficient vector part. The rest is the same as the header of the random linear coding. The receiver decodes the received coded data packet according to the type of the received data packet and the data packet saved in the buffer. If the immediate decoding operation cannot be performed, the data packet is immediately discarded to minimize the computational delay.
[0086] Network coding can increase throughput as shown below: Fig.11 It can be seen that when switch S3 transmits data packets, it only needs to send one data packet through encoding instead of the traditional two data packets, which indirectly increases the throughput during data transmission and ensures the delay problem during video stream transmission.
[0087] (6) Coding redundancy adjustment module
[0088] The coding redundancy is adjusted to minimize the additional delay caused by random linear network coding to meet the needs of communication applications. Specifically, the coding-related delay is first characterized, the number of original data packets sent in each round is sw, the coding redundancy is R, and the total number of data packets sent in each round is: The encoding window for this round is Assuming the length of each data packet is n bits and the transmission rate is f1bps, the transmission delay is:
[0089] T t =(cw×n) / f1 (5)
[0090] Usually, generating a coded packet requires calculating sw×n multiplications and (sw-1)×n additions in the Galois field. The rate of performing a finite field calculation is f2bps. According to the above process, the processing delay of data packet encoding is:
[0091] T e =[(2×sw-1)×cw×n] / f2 (6)
[0092] In the classic linear network coding process, when m packets are transmitted and the number of lost packets is less than cw, decoding is possible. Otherwise, decoding is not possible and the encoding retransmission strategy needs to be started. Therefore, the decoding delay can be:
[0093]
[0094] The first term is the decoding delay for the data packet to reach the receiving end, and the second term is the decoding delay from the time when the data packet cannot reach the receiving end to the start of the next retransmission; Pe is the link packet loss rate. Since this application uses LU decomposition to find the inverse of the matrix, its time complexity is O(n 3 ),so It is the delay of decoding a round of coded packets, which is related to the size of the matrix.
[0095] Considering the real-time and reliable requirements of video streaming for remote driving operations, this application minimizes the encoding delay, decoding delay, and transmission delay in the network coding process. The optimization objectives of the model are:
[0096] minimize T=T t +T e +T d (8)
[0097] subject to C1:R≥Pe
[0098]
[0099] C3:K rcv +sw≤F rcv
[0100] Constraint C1 ensures that the coding redundancy is not less than the packet loss rate, so that the transmitted data packets can be repaired at the receiving end to the greatest extent possible; Constraint C2 ensures that the capacity of the sender buffer F snd Not less than the sum of the total number of packets sent in this round and the next round Constraint C3 guarantees the capacity F of the receiving end buffer rcv Not less than the sum of the total number of packets arriving in this round and the next round K rcv +sw.
[0101] Cross-network fusion scheduling module
[0102] For the link delay estimation and adjustment module, the link delays are transmission delay, propagation delay, processing delay and queuing delay. Since the transmission delay is considered in the network coding module, the processing delay and queuing delay are very small compared to the link propagation delay, so this module only considers the estimated adjustment of the link propagation delay. In an actual network environment, the delay may fluctuate or noisily instantaneously due to network congestion, routing changes or other factors. By using an exponentially weighted moving average, these instantaneous noises can be smoothed to make the average delay more stable, which is very important for application scenarios such as real-time video streaming that require stable delays. Therefore, the estimation formula for the delay in the cross-network fusion scheduling module is:
[0103]
[0104] RTT i is the smoothed delay at the current measurement time, is the smoothed delay of the last measurement, is the original delay at the time of the current measurement. The purpose is to smooth the delay to reduce the impact of random fluctuations and transient noise, making the measurement results more stable and reliable. The parameter α in the formula can be used to adjust the weight of the current measurement value and the last smoothed delay, so that the smoothed result can adapt to network changes more flexibly. A larger α value will make the reliance on historical data stronger, which is suitable for situations where the network changes slowly; while a smaller α value will reflect the changes in the latest measurement value more quickly, which is suitable for situations where the network changes frequently.
[0105] The cross-network fusion scheduling module needs to estimate the packet loss rate because the packet loss rate is one of the important indicators for evaluating the quality of network links. For cross-network fusion scheduling, understanding the packet loss rate of each path can help the system make more reasonable path selection and scheduling decisions. Since the network environment is dynamically changing, the link quality is affected by many factors, such as network congestion, routing changes, signal interference, etc. The packet loss rate of a link is usually random and volatile. Temporary packet loss may occur even in a short period of time. Therefore, the packet loss rate at a single moment may not accurately reflect the true quality of the link; and the measurement of packet loss rate usually depends on the data packet information collected from network devices or protocols. However, due to factors such as network delay and device processing time, the loss of data packets may be delayed or omitted during measurement, resulting in inaccurate estimation of the packet loss rate at the current moment; the measurement of packet loss rate at a certain moment cannot cope with certain emergencies. Therefore, this module measures the packet loss rate over a period of time to prevent the packet loss rate from changing too quickly and ensure the accuracy of the measurement. Therefore, the packet loss rate over a period of time can be:
[0106]
[0107] is the packet loss rate of the ith link during the Nth measurement, is the number of data packets lost by the ith link during the measurement period during the Nth measurement, are the end value and start value of the data packet sequence number in the measurement time period of the ith link during the Nth measurement. The data packet sequence numbers in this time period are usually continuous. Formula (10) is the number of lost data packets divided by the total number of sent data packets to obtain the data packet loss rate in this time period.
[0108] The obtained packet loss rate is used to update the estimated packet loss rate state of the link at the next moment. The packet loss rate estimation of the link is replaced by the average packet loss rate measured in each time period during the operation of the entire cross-network fusion scheduling module. The specific formula is:
[0109]
[0110] P i is the average packet loss rate of the ith link, is the total number of data packets generated on the i-th link during the N-th measurement. This calculation method ensures that when estimating the packet loss rate, when the number of sent data packets is large, the measured packet loss rate accounts for a larger proportion of the average packet loss rate, making the packet loss rate measurement of the link more accurate.
[0111] Finally, the measurement and adjustment of the link bandwidth module. Since the network detection module can only measure the transmission rate of the link, the bandwidth of the link can only be measured when the link is full of measurement traffic. However, this does not allow the entire system to perform normal network coding and forwarding operations. Therefore, this application indirectly measures the bandwidth of the link by measuring the link delay. When achieving load balancing, that is, maximizing throughput, the delay of each link will not differ greatly. Therefore, when the difference in the link delay does not exceed a threshold, it means that the link bandwidth estimate is correct; and when the link delay difference exceeds this threshold, the link needs to be updated, so the update prediction formula for the link bandwidth is:
[0112]
[0113] BW i is the bandwidth of the ith link at the current moment, is the bandwidth of the i-th link at the previous moment, ΔRTT is the delay difference between the two links, Threshold is the threshold of the delay difference, and β is a parameter that controls the bandwidth adjustment rate. is the average delay value obtained in the last measurement. The way in which the bandwidth of the link is adjusted by formula (12) is that when the estimated delay of the link is less than the delay obtained in the current measurement, the estimated bandwidth of the link is reduced; otherwise, the estimated bandwidth of the link is increased.
[0114] Finally, the cross-network fusion scheduling module can determine the weight of each path based on the bandwidth, round-trip delay and packet loss rate of different paths through the weight calculation method, thereby adjusting the number of packets sent by the path and load balancing. The larger the link bandwidth, the smaller the packet loss rate and the smaller the delay, the greater the link weight. Therefore, the formula for adjusting the link weight of the cross-network fusion scheduling module is:
[0115]
[0116] weight i is the weight of the ith link, RTT i , BW i 、Pe i are the delay, bandwidth and packet loss rate of the i-th link respectively; α, β and γ are used to adjust the influence of bandwidth, round-trip delay and packet loss rate on the weight respectively.
[0117] The present application performs random linear coding or a method for increasing throughput network coding for the type of data packet application to be sent. Random linear network coding automatically adjusts the coding redundancy according to link state information such as delay and bandwidth, and restores the original data packet by decoding redundant packets at the receiving end, thereby improving the reliability of the link and reducing the retransmission delay required for packet loss retransmission due to link instability; the method for increasing throughput network coding mainly ensures the low latency requirement of link transmission by maximizing the number of data packets sent during the transmission process. By utilizing the programmable characteristics of programmable switches, the data plane is reconfigured during the process of forwarding data packets by the switch, making it possible to build a high-performance, production-quality network coding data plane. In addition, the chip of the programmable switch can process billions of data packets per second, which is several orders of magnitude higher than the throughput of existing network coding solutions. The use of protocol-independent packet processor programming languages and the increase in the number of available compilers have gradually enhanced the portability of the program in different software and hardware devices. It is equipped with a network status detection module, which mainly allows fine-grained monitoring of network traffic, so that the module can collect data at various points in the network, including a single switch and a router. By constructing and parsing the network status detection message, the function of perceiving the network status through only a few data packets is realized. The protocol construction and parsing module implements network status detection and network coding by constructing and parsing different protocol messages. It adds other message formats to the original ones to implement other functions, reflecting the compatibility of the method. The cache module of network coding caches the data packets of the current round and performs calculations on the GF(2^8) finite field. The payload and coding vector of the data packet are divided into 8-bit symbols and stored in different buffers. If the index is less than the buffer size, the data packet is stored and the index is increased. Otherwise, the randomly selected column is overwritten until the next round of encoding. Coding mode selection module, because large calculations will cause buffer overflow, therefore, the operation of the coding module is limited to operations on finite fields. For finite field multiplication, a logarithm table and an antilogarithm table need to be maintained in advance. The multiplication of two numbers a and b can be changed to loga+logb. After that, the antilogarithm of the obtained value can be obtained once to obtain the result of the multiplication of a and b. In order to speed up the processing speed of each data packet, the programmable switch saves these pre-calculated tables in the register during startup; LU decomposition is used to calculate the inverse of the matrix to reduce the decoding complexity of the receiving end; different coding modes are selected for different application types. If the application has high latency requirements and is suitable for multicast scenarios, the throughput-increasing network coding method is used; if the application has high requirements for reliability, it can be encoded through random linear network coding. Forwarding module, by multicasting the network coding message, multiple outbound port controls are performed on all received payloads to realize the encoding operation of each row vector matrix of the network coding and the original data packet.The redundancy adjustment module minimizes the delay of network coding by adjusting the coding redundancy. The transmission characteristics of the coding fault-tolerant process are characterized according to indicators such as the number of redundant data packets, the coupling correlation of factors such as coding redundancy and encoding and decoding delay is quantified, and the cross-network fusion "delay-reliability" coupling control method and joint optimization coding model under the constraint of transmission reliability are designed. The weight adjustment module and the scheduling forwarding module estimate the state of the network at the next moment according to the perception of the link state by the network state detection module, and use this as the weight to adjust the proportion of data packets sent by each link. Finally, according to the weight adjustment of each link, the corresponding number of data packets is sent. Reconfiguring the data plane during the process of forwarding data packets by the switch makes it possible to build a high-performance, production-quality network coding data plane. In addition, the chip of the programmable switch can process billions of data packets per second, which is several orders of magnitude higher than the throughput of existing network coding solutions. The use of protocol-independent packet processor programming languages and the increase in the number of available compilers have gradually enhanced the portability of programs on different software and hardware devices. In-band network telemetry technology directly collects and reports network status from the data plane, providing end-to-end packet-level network status information with more fine-grained and low latency. In order to improve the performance of the device of the present invention, in the random linear network coding module, the coding redundancy is adjusted to minimize the network coding delay; in the random linear network decoding module, the decoding complexity is reduced by optimizing the decoding method; in the method of increasing throughput network coding, the throughput is increased by maximizing the number of data packets sent during one transmission, and the calculation delay is reduced by discarding data packets that cannot be decoded immediately during the decoding process; in the cross-network fusion scheduling module, the optimal path is selected for scheduling according to the detected network status information to ensure the fastest transmission of data packets to the receiving end. Different encoding methods are used according to the type of application, so that the encoding method is more flexible for the transmission requirements of the application and effectively meets the data transmission of each application.
[0118] This application can ensure the application of Internet of Vehicles, such as remote driving operation or remote medical diagnosis, etc. During the transmission process between the vehicle and the cloud, when it runs to the dead point of a single cellular network, it can still use the cellular network of other operators for reliable communication, and will not be affected by signal loss, etc. And the use of network coding ensures that various types of applications can be transmitted with low latency or high reliability. In the process of remote driving operation, it is required to transmit the video stream captured by the transmission equipment such as high-definition cameras to the cloud in real time and quickly through the cross-network fusion transmission device based on network coding of the present invention. This transmission method ensures that the remote driver can obtain the real-time environmental information around the vehicle in time, so as to make accurate remote control and decision-making. The application has strict latency requirements, but can tolerate some packet loss. Therefore, by adopting the method of increasing throughput network coding, different source data packets are combined, and the data packets that cannot be immediately decodable are discarded, so as to increase the throughput and reduce the latency in the process of transmitting the data of each vehicle to different remote driving platforms. During remote medical diagnosis, high-definition views of the interior of the ambulance and the patient's vital signs data are transmitted to the cloud in real time and quickly, allowing medical professionals to provide real-time guidance and emergency treatment to emergency personnel remotely. The high-definition view of the patient's injuries and vital signs data require absolute reliability to ensure the clarity of the view. Therefore, random linear network coding is used to ensure transmission reliability, and the encoding and decoding performance is improved by optimizing the encoding and decoding method.
[0119] This application can guarantee the application of drones, and can also ensure that drones are continuously within the coverage of network signals during flight through cross-network integration, and use network coding to ensure the requirements of various applications for latency and reliability. In the process of disaster relief missions, there are very strict requirements for latency, because every minute after a disaster may be related to life safety. At the disaster site, it is necessary to obtain intelligence in real time, including disaster conditions, location of survivors, traffic conditions, etc.; and when survivors or emergencies are found, rescue operations need to respond quickly, so it is necessary to transmit data information to each drone in a timely manner, and use a method of increasing throughput network coding to ensure low-latency transmission of applications. In the process of aerial photography, drones need to have high resolution and good clarity to capture the details and features of the photographed area; and accurately restore the true color of the photographed scene, etc., so the data of the transmitted image needs to be highly reliable. Therefore, random linear coding is used to ensure the reliability of the transmission process.
[0120] Example 2
[0121] like Fig.12 This embodiment discloses a cross-network fusion transmission method based on network coding, including:
[0122] Step 201: According to the application type, a coding method is selected to encode the original data packet to obtain a plurality of data packets to be transmitted. The data packets to be transmitted include coded data packets and redundant data packets.
[0123] Step 202: Obtain network status.
[0124] Step 203: Determine a scheduling solution based on the network status.
[0125] Step 204: adjusting the weight of each link when sending multiple data packets to be transmitted based on the scheduling scheme.
[0126] Step 201 includes: when the application type is a scenario that provides reliability guarantee for services, data, and transmission, in an end-to-end transmission or multicast scenario, a random linear network coding method is used to encode the original data packet; when the application type is a scenario that provides low latency guarantee for services, data, and transmission, in a multicast scenario, an increased throughput network coding method is used to encode the original data packet; in an end-to-end transmission scenario, no network coding is performed.
[0127] The random linear network coding method is as follows: initialize the rank of the coding vector matrix to 0; randomly generate the current coding row vector, and increase the rank of the coding vector matrix by 1; multiply the current coding row vector with each original data packet respectively; and perform XOR processing on all the original data packets after the multiplication to obtain the coding data packet corresponding to the current coding row vector; determine whether the coding vector matrix is a square matrix according to the rank of the coding vector matrix; if not, return to the step of "randomly generate the current coding row vector, and increase the rank of the coding vector matrix by 1"; if so, generate the current redundant row vector according to the redundancy; multiply the current redundant row vector with each original data packet respectively; and perform XOR processing on all the original data packets after the multiplication to obtain the redundant data packet corresponding to the current redundant row vector, until the number of redundant data packets reaches the preset number of redundant data packets.
[0128] Correspondingly, the decoding method corresponding to the random linear network coding method is: determine that all data packets received within a time threshold are data packets received in the current round; obtain the number of data packets received in the current round as a first number; obtain the number of data packets sent by the transmitter in the current round as a second number; when the first number is greater than or equal to the second number, obtain the first k data packets received in the current round according to the receiving order of the receiving end to construct an inverse matrix of the coding matrix; perform a product-XOR operation on the inverse matrix of the coding matrix to obtain the original data packet; when the first number is less than the second number, retransmit the data packet to be transmitted.
[0129] In addition, the method for increasing throughput network coding is as follows: determine any intermediate node as the current node. When the current node receives source data packets sent by multiple source nodes, encode the multiple source data packets to obtain an intermediate data packet. When the number of target nodes of the current node is 1, transmit the intermediate data packet to the target node. Let the target node be the current node and return to the step "when the number of target nodes of the current node is 1, transmit the intermediate data packet to the target node" until the number of target nodes of the current node is greater than 1. When the number of target nodes of the current node is greater than 1, decode the intermediate data packet into multiple source data packets. Send all source data packets to each target node.
[0130] The scheduling scheme is:
[0131]
[0132] weight i is the weight of the ith link, α is the adjustment amount of the influence of bandwidth on the weight, BW i is the bandwidth of the i-th link at the current moment, β is the adjustment amount of the impact of the round-trip delay on the weight, RTT i is the round trip delay of the i-th link at the current moment, γ is the adjustment amount of the impact of packet loss rate on weight, Pe i is the average packet loss rate of the i-th link at the current moment.
[0133]
[0134] is the bandwidth of the i-th link at the previous moment, ΔRTT is the delay difference between the two links, Threshold is the preset delay difference threshold, is the average delay value obtained from the last measurement, It is the original delay of the current measurement.
[0135]
[0136] is the smoothed delay of the last measurement.
[0137]
[0138] is the packet loss rate of the ith link during the Nth measurement, is the total number of data packets generated on the ith link during the Nth measurement, and m is the total rounds of measuring the packet loss rate.
[0139] This application senses the link status by adding a network status detection module, transmits the status information to the cross-network fusion scheduling module to adjust the link status, and selects the optimal link path for transmission; applies network coding technology to programmable switches, increases the possibility of applying network coding to physical switches, selects different encoding and decoding methods according to application types, optimizes the encoding and decoding complexity of network coding, and reduces transmission delay.
Claims
1. A cross-network fusion transmission method based on network coding, characterized in that: include: According to the application type, a coding method is selected to encode the original data packet to obtain multiple data packets to be transmitted; The data packets to be transmitted include coded data packets and redundant data packets; Get network status; Determine a scheduling solution based on the network status; The weight of each link when sending multiple packets to be transmitted is adjusted based on the scheduling scheme.
2. The cross-network fusion transmission method based on network coding according to claim 1 is characterized in that: According to the application type, select the encoding method to encode the original data packet to obtain multiple data packets to be transmitted, including: When the application type is to provide reliability guarantee for services, data and transmission, in the scenario of end-to-end transmission or multicast, the random linear network coding method is used to encode the original data packet; When the application type is to provide low latency guarantee for services, data, and transmission, in a multicast scenario, the original data packet is encoded using a throughput-increasing network coding method; In the end-to-end transmission scenario, no network coding is performed.
3. The cross-network fusion transmission method based on network coding according to claim 2 is characterized in that: The random linear network coding method is: Initialize the rank of the encoding vector matrix to 0; Randomly generate the current encoding row vector, and increase the rank of the encoding vector matrix by 1; The current coding row vector is multiplied by each original data packet respectively; and all the original data packets after the multiplication are XORed to obtain the coding data packet corresponding to the current coding row vector; Determine whether the coding vector matrix is a square matrix according to the rank of the coding vector matrix; If not, return to step "randomly generate the current encoding row vector and increase the rank of the encoding vector matrix by 1"; If so, generate the current redundant row vector according to the redundancy; The current redundant row vector is multiplied with each original data packet respectively; and all the original data packets after the multiplication are XOR-ed to obtain the redundant data packets corresponding to the current redundant row vector, until the number of redundant data packets reaches the preset number of redundant data packets.
4. The cross-network fusion transmission method based on network coding according to claim 3 is characterized in that: The decoding method corresponding to the random linear network coding method is: Determine all data packets received within a time threshold as data packets received in the current round; Obtaining the number of data packets received in the current round as a first number; The number of data packets sent by the sender in the current round is obtained as the second number; When the first number is greater than or equal to the second number, the first k received data packets of the current round are obtained according to the receiving order of the receiving end to construct an inverse matrix of the coding matrix; Perform product-XOR operation on the inverse matrix of the coding matrix to obtain the original data packet; When the first number is smaller than the second number, the data packet to be transmitted is retransmitted.
5. The cross-network fusion transmission method based on network coding according to claim 2 is characterized in that: Network coding methods to increase throughput are: Determine any intermediate node as the current node; When the current node receives source data packets sent by multiple source nodes, it encodes the multiple source data packets to obtain an intermediate data packet; When the number of target nodes of the current node is 1, the intermediate data packet is transmitted to the target node; Set the target node as the current node and return to step "when the number of target nodes of the current node is 1, transmit the intermediate data packet to the target node" until the number of target nodes of the current node is greater than 1; When the number of target nodes of the current node is greater than 1, the intermediate data packet is decoded into multiple source data packets; All source packets are sent to each destination node.
6. The cross-network fusion transmission method based on network coding according to claim 2 is characterized in that: The scheduling scheme is: weight i is the weight of the ith link, α is the adjustment amount of the influence of bandwidth on the weight, BW i is the bandwidth of the i-th link at the current moment, β is the adjustment amount of the impact of the round-trip delay on the weight, RTT i is the round trip delay of the i-th link at the current moment, γ is the adjustment amount of the impact of packet loss rate on weight, Pe i is the average packet loss rate of the i-th link at the current moment.
7. The cross-network fusion transmission method based on network coding according to claim 6 is characterized in that: The bandwidth of the i-th link at the current moment is: is the bandwidth of the i-th link at the previous moment, ΔRTT is the delay difference between the two links, Threshold is the preset delay difference threshold, is the average delay value obtained from the last measurement, It is the original delay of the current measurement.
8. The cross-network fusion transmission method based on network coding according to claim 7 is characterized in that: The round trip delay of the i-th link at the current moment is: is the smoothed delay of the last measurement.
9. The cross-network fusion transmission method based on network coding according to claim 8, characterized in that: The average packet loss rate of the i-th link at the current moment is: is the packet loss rate of the ith link during the Nth measurement, is the total number of data packets generated on the ith link during the Nth measurement, and m is the total rounds of measuring the packet loss rate.
10. A cross-network fusion transmission device based on network coding, characterized in that: The device is applied to a smart city system; the system includes a sending end and a receiving end; the sending end sends multiple data packets to be transmitted to the receiving end through multiple links; The device includes: a network status detection module, a network coding module and a cross-network fusion scheduling module integrated at the sending end; The cross-network fusion scheduling module is connected to the network status detection module and the network coding module respectively; The network coding module is used to select a coding method to encode the original data packet according to the application type to obtain multiple data packets to be transmitted; The network status detection module is used to obtain the network status; The cross-network fusion scheduling module is used to determine the scheduling scheme based on the network status, and adjust the weight of each link when sending multiple data packets to be transmitted based on the scheduling scheme; The network coding module includes a protocol construction module, a redundancy adjustment module and a coding mode selection module, as well as a parsing module, a caching module, a coding module and a forwarding module connected in sequence; The protocol construction module, the redundancy adjustment module and the encoding mode selection module are all connected to the encoding module; The cross-network fusion scheduling module includes a weight adjustment module and a forwarding scheduling module; The forwarding scheduling module is connected to the forwarding module and the weight adjustment module respectively; The weight adjustment module is connected to the network status detection module.
Citation Information
Cited By
Optical communication network routing optimization method and system
CN119946469A
A method and system for optimizing routing in an optical communication network
CN119946469B
Telegraph flow cross-network data synchronization method and system based on mobile terminal
CN120263800A
Cross-network data aggregation method and system based on holographic perception
CN120354365A