CN103107875B - Broadcast retransmission system based on network coding and method thereof - Google Patents
Broadcast retransmission system based on network coding and method thereof Download PDFInfo
- Publication number
- CN103107875B CN103107875B CN201310054287.1A CN201310054287A CN103107875B CN 103107875 B CN103107875 B CN 103107875B CN 201310054287 A CN201310054287 A CN 201310054287A CN 103107875 B CN103107875 B CN 103107875B
- Authority
- CN
- China
- Prior art keywords
- frame
- module
- information
- retransmission
- dynamic link
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
- Communication Control (AREA)
Abstract
Description
技术领域technical field
本发明属于通信技术领域,更进一步涉及无线通信广播工程技术领域中的基于网络编码的广播重传系统及其方法。本发明可以用于各种无线可靠性广播情景下,实现了一种基于网络编码的、动态的、收发双方的广播重传方法与广播重传流程控制。The invention belongs to the technical field of communication, and further relates to a broadcast retransmission system and method based on network coding in the technical field of wireless communication broadcast engineering. The present invention can be used in various radio reliability broadcast scenarios, and realizes a network coding-based, dynamic broadcast retransmission method and broadcast retransmission process control for both the sender and the receiver.
背景技术Background technique
自动请求重传(Automatic-repeat-request,ARQ)是重传协议的一个主流类型,是通信中用于处理信道中分组丢失或分组比特受损所带来差错的一种可靠数据传输协议。ARQ技术的优点是比较简单,缺点是通信信道利用率不高。而多播或广播是一种广泛应用于无线通信网络的数据传输形式,其拓扑图如图一所示,它由一个发送方节点、多个接收方节点构成,发送方向多个接收方发送数据。无线广播相较于传统的有线通信中的广播,具有较高的误帧率、传输时延以及较低的重传效率。例如,若此时有一个接收方接收数据失败,根据传统的ARQ协议,发送方则需广播接收失败的数据帧,直到所有的接收方都正确接收该数据帧为止。网络编码(NC,Network Coding)在网络的中间节点对各条信道上收到的信息进行线性或者非线性的处理,然后转发给下一个节点,可以提高网络吞吐量、减少数据帧的传输次数、增强网络的容错性和鲁棒性。Automatic retransmission request (Automatic-repeat-request, ARQ) is a mainstream type of retransmission protocol, and it is a reliable data transmission protocol used in communication to deal with errors caused by packet loss or packet bit damage in the channel. The advantage of the ARQ technology is that it is relatively simple, but the disadvantage is that the utilization rate of the communication channel is not high. Multicast or broadcast is a form of data transmission widely used in wireless communication networks. Its topology diagram is shown in Figure 1. It consists of a sender node and multiple receiver nodes. The sender sends data to multiple receivers. . Compared with broadcast in traditional wired communication, wireless broadcast has higher frame error rate, transmission delay and lower retransmission efficiency. For example, if a receiver fails to receive data at this time, according to the traditional ARQ protocol, the sender needs to broadcast the failed data frame until all receivers receive the data frame correctly. Network Coding (NC, Network Coding) performs linear or non-linear processing on the information received on each channel at the intermediate node of the network, and then forwards it to the next node, which can improve network throughput, reduce the number of data frame transmissions, Enhance the fault tolerance and robustness of the network.
北京邮电大学提出的专利申请“基于随机线性编码的无线可靠广播方法”(申请日:2012年03月16日,申请号:201210071101.9,公开号:CN102638331A)中公开了一种基于随机线性编码的无线可靠广播方法,来解决无线通信中广播重传的低效率问题。该方法的实现步骤为:第一,发送端广播指定多个信息帧。第二,发送端对接收端丢失的信息帧进行随机线性网络编码。第三,接收端利用高斯消元法获得丢失的信息帧。该方法所存在的不足是:该专利申请没有考虑到实际工程中的一些要求,如信息帧的及时性、接收端在通信中可分配的内存空间、是否与不同的信道编码兼容等问题,导致该方法并不适合广泛的用于工程应用领域。由于该专利申请只是采用分块的传输模式,分组与分组之间的信息帧无法进行网络编码,因此无法使网络编码所带来的性能最大化,并且使所有信息帧的传输时延整体较大;只是简单的采用了随机线性网络编码,难以实现网络编码的最优组合,所能带来的重传效率的提升非常有限。该专利申请没有详细的考虑重传帧的接收情况,使得该方法会在某些特殊情况下产生部分数据帧接收超时的情况。The patent application "Wireless Reliable Broadcasting Method Based on Random Linear Coding" (application date: March 16, 2012, application number: 201210071101.9, publication number: CN102638331A) filed by Beijing University of Posts and Telecommunications discloses a wireless broadcasting method based on random linear coding. A reliable broadcast method to solve the inefficiency of broadcast retransmission in wireless communication. The implementation steps of the method are as follows: first, the sending end broadcasts a plurality of specified information frames. Second, the sender performs random linear network coding on the information frames lost by the receiver. Third, the receiving end uses the Gaussian elimination method to obtain the lost information frame. The disadvantage of this method is that this patent application does not take into account some requirements in actual engineering, such as the timeliness of information frames, the memory space that can be allocated by the receiving end in communication, whether it is compatible with different channel codes, etc., resulting in This method is not suitable for a wide range of engineering applications. Since the patent application only adopts the block transmission mode, the information frames between groups cannot be network coded, so the performance brought by network coding cannot be maximized, and the overall transmission delay of all information frames is relatively large ; It simply uses random linear network coding, it is difficult to achieve the optimal combination of network coding, and the improvement of retransmission efficiency that can be brought is very limited. This patent application does not consider the reception of retransmission frames in detail, so that the method may cause the reception of some data frames to time out in some special cases.
自2008年开始,解决广播重传问题的专利技术共有13个,基本上都是简单的对信息帧进行分组,然后在分组中寻找最优组合,这种解决方案限制了重传效率。Since 2008, there have been 13 patented technologies to solve the broadcast retransmission problem. Basically, they simply group information frames and then find the optimal combination in the group. This solution limits the retransmission efficiency.
发明内容Contents of the invention
本发明的目的在于克服上述现有技术的不足,针对广播重传问题,提出基于网络编码的广播重传系统与方法,可以有效地降低重传延迟,提高重传效率,并且广泛的适用于各种工程应用场景,满足下一代宽带无线通信系统对实时性和高吞吐量需求。The purpose of the present invention is to overcome the deficiencies of the above-mentioned prior art, aiming at the problem of broadcast retransmission, propose a broadcast retransmission system and method based on network coding, which can effectively reduce retransmission delay, improve retransmission efficiency, and is widely applicable to various This engineering application scenario meets the real-time and high-throughput requirements of the next-generation broadband wireless communication system.
为实现上述目的,本发明方法的思路是:过传输测试包确定系统单帧最大存活时间;通过基于动态列表的动态更新方法,即时的跟踪每一个信息帧的接收情况;根据最大匹配与完美匹配方法,找到一种相对最优的网络编码方案;通过基于重传帧反馈信息更新动态列表方法,避免了数据帧接收超时的情况;通过广播重传系统来实现的数据传输,具有更高的重传效率,更低的整体传输时延,适用于无线通信系统中的多种广播情景。In order to achieve the above object, the idea of the method of the present invention is: determine the maximum survival time of a single frame of the system through the transmission test packet; through the dynamic update method based on the dynamic list, track the receiving situation of each information frame in real time; according to the maximum matching and perfect matching method, to find a relatively optimal network coding scheme; by updating the dynamic list method based on the feedback information of the retransmission frame, the situation of receiving the data frame overtime is avoided; the data transmission realized by the broadcast retransmission system has higher retransmission Transmission efficiency, lower overall transmission delay, suitable for various broadcast scenarios in wireless communication systems.
本发明的系统包括一个发送端和多个接收端。The system of the present invention includes a sending end and a plurality of receiving ends.
发送端由协商模块、动态列表模块、重传缓存模块、网络编码模块、发送缓冲模块组成;所述的多个接收端中的任意一个接收端由信息缓存模块、译码模块、反馈模块组成。协商模块,用于测试帧的发送,来自于接收端的测试帧应答信息的接收,计算系统单帧最大生存时间,并且将系统生存时间发送至动态列表模块;动态列表模块,用于来自于接收端的信息帧或重传帧应答信息的接收,建立、存储动态列表,以及对动态列表进行匹配运算;重传缓存模块,用于存储待重传的多个信息帧;网络编码模块,用于对不同的信息帧进行网络编码,构造重传帧,发送重传帧,暂存重传帧;发送缓冲模块,用于存储当前待发送的信息帧;信息缓存模块,用于存储多个已正确接收的信息帧与重传帧;译码模块,用于对重传帧进行译码,恢复原始信息帧;反馈模块,用于向接收端反馈数据帧的接收情况。The sending end is composed of a negotiation module, a dynamic list module, a retransmission buffer module, a network coding module, and a sending buffer module; any one of the multiple receiving ends is composed of an information buffering module, a decoding module, and a feedback module. The negotiation module is used for sending the test frame, receiving the test frame response information from the receiving end, calculating the maximum survival time of the system single frame, and sending the system survival time to the dynamic list module; the dynamic list module is used for receiving the response information from the receiving end Receiving information frames or retransmission frame response information, establishing and storing dynamic lists, and performing matching operations on dynamic lists; retransmission cache module, used to store multiple information frames to be retransmitted; network coding module, used for different The information frame is network encoded, the retransmission frame is constructed, the retransmission frame is sent, and the retransmission frame is temporarily stored; the sending buffer module is used to store the current information frame to be sent; the information buffer module is used to store multiple correctly received The information frame and the retransmission frame; the decoding module is used to decode the retransmission frame to restore the original information frame; the feedback module is used to feed back the reception status of the data frame to the receiving end.
本发明方法的具体步骤如下:The concrete steps of the inventive method are as follows:
(1)发送测试包:(1) Send test package:
1a)协商模块记录广播测试帧的发送时间,等待来自于多个接收端的反馈信息;1a) The negotiation module records the sending time of the broadcast test frame, and waits for feedback information from multiple receiving ends;
1b)协商模块若收到所有多个接收端的确认应答信息,则执行步骤1c);若协商模块收到了否定应答或者未接收到任意一个接收端的反馈信息,则执行步骤1a);1b) If the negotiating module receives confirmation response information from all multiple receiving ends, then perform step 1c); if the negotiating module receives a negative response or does not receive feedback information from any receiving terminal, then perform step 1a);
1c)协商模块记录每一个确认应答信息的接收时间,并记录多个接收端中的每一个反馈的单帧可等待时延以及可分配存储空间;1c) The negotiation module records the receiving time of each acknowledgment response information, and records the single-frame waitable delay and allocable storage space fed back by each of the multiple receiving ends;
(2)获取系统单帧最大存活时间:(2) Obtain the maximum survival time of a single frame in the system:
2a)协商模块选取多个确认应答信息接收时间中最大的一个,将最大接收时间减去测试帧的发送时间,得到系统传播时延;2a) The negotiation module selects the largest one among multiple confirmation response message receiving times, subtracts the sending time of the test frame from the maximum receiving time, and obtains the system propagation delay;
2b)选取多个单帧可等待时延中最小的一个作为系统单帧可等待时延;2b) Select the smallest one among multiple single-frame waitable delays as the single-frame waitable delay of the system;
2c)选取多个可分配存储空间中最小的一个作为系统可分配存储空间;2c) Selecting the smallest one of multiple allocatable storage spaces as the system allocatable storage space;
2d)将满足下式的最大整数,作为系统单帧最大存活时间:2d) The largest integer that satisfies the following formula is used as the maximum survival time of a single frame in the system:
(NH-1)TR<TM(NH-1)TR<TM
(NH-1)CO<CM(NH-1)C O <CM
其中,NH表示系统单帧最大存活时间,TR表示系统传播时延,TM表示系统单帧可等待时延,CO表示一个信息帧所需要的存储空间,CM表示系统可分配存储空间;Among them, NH represents the maximum survival time of a single frame of the system, TR represents the propagation delay of the system, TM represents the waiting delay of a single frame of the system, C O represents the storage space required by an information frame, and CM represents the storage space that the system can allocate;
(3)动态链表初始化:(3) Dynamic linked list initialization:
3a)发送缓冲模块将系统单帧最大存活时间除以2,舍尾取整,得到初始量;3a) The sending buffer module divides the maximum survival time of a single frame of the system by 2, rounds the tail to an integer, and obtains the initial amount;
3b)发送缓冲模块向多个接收端连续广播初始量个信息帧;3b) The sending buffer module continuously broadcasts an initial amount of information frames to multiple receiving ends;
3c)存储子模块建立与初始量个信息帧一一对应的动态链表;3c) The storage sub-module establishes a dynamic linked list corresponding to the initial number of information frames;
3d)存储子模块将初始量个动态链表的序列号分别赋值为对应的信息帧序列号,将初始量个动态链表的生存时间分别赋值为,初始量减去初始量个的信息帧序列号后加1,将每个动态链表的若干个节点值分别赋值为,对该动态链表所对应的信息帧返回否定信息的接收端的用户序列号;3d) The storage sub-module assigns the serial numbers of the initial number of dynamic linked lists to the corresponding information frame serial numbers, respectively assigns the survival time of the initial number of dynamic linked lists to the initial number after subtracting the initial number of information frame serial numbers Add 1, assign several node values of each dynamic linked list to be respectively, and return the user serial number of the receiving end of negative information to the information frame corresponding to the dynamic linked list;
3e)遍历存储子模块中所有链表,依次地提取表头中的序列号,将所提取的信息帧序列号对应的信息帧由发送缓冲模块转存至重传缓冲模块,记录此时转存的信息帧在重传缓冲模块中存储的地址,并且由映射子模块建立所提取的信息帧序列号与信息帧存储地址的对应关系;再次遍历存储子模块中所有链表的节点个数一项,将节点个数为0的动态链表从动态列表中删除,同时将该动态链表对应的信息帧从重传缓冲模块中删除,将该动态链表对应的对应关系从映射子模块中删除;3e) Traversing all linked lists in the storage submodule, sequentially extracting the serial numbers in the header, transferring the information frames corresponding to the extracted information frame serial numbers from the sending buffer module to the retransmission buffer module, and recording the data transferred at this time The address of the information frame stored in the retransmission buffer module, and the corresponding relationship between the extracted information frame sequence number and the information frame storage address is established by the mapping submodule; the node number item of all linked lists in the storage submodule is traversed again, and the The dynamic linked list whose number of nodes is 0 is deleted from the dynamic list, and the information frame corresponding to the dynamic linked list is deleted from the retransmission buffer module at the same time, and the corresponding relationship corresponding to the dynamic linked list is deleted from the mapping submodule;
(4)发送信息帧:(4) Send information frame:
4a)发送缓冲模块检查是否有信息帧待发送,如果有,则发送缓冲模块广播下一个信息帧,执行步骤4b);否则,执行步骤9a);4a) sending buffer module checks whether there is information frame to be sent, if there is, then sending buffer module broadcasts next information frame, execution step 4b); Otherwise, execution step 9a);
4b)若存储子模块收到所有多个接收端的确认应答信息,则执行步骤5a);若收到了否定应答或者未接收到任意一个接收端的反馈信息,则执行步骤5b);4b) If the storage submodule receives confirmation response information from all multiple receiving ends, then perform step 5a); if a negative response is received or no feedback information from any receiving terminal is received, then step 5b) is performed;
(5)更新动态列表:(5) Update the dynamic list:
5a)发送缓冲模块将所发送信息帧的储存空间释放,存储子模块将当前所有链表的生存时间加1后,执行步骤6a);5a) The sending buffer module releases the storage space of the sent information frame, and the storage sub-module adds 1 to the survival time of all current linked lists, and then executes step 6a);
5b)发送缓冲模块将所发送的信息帧转存至重传缓存模块,映射子模块创建信息帧存储地址与序列号的对应关系;5b) The sending buffer module transfers the sent information frame to the retransmission buffer module, and the mapping sub-module creates the corresponding relationship between the information frame storage address and the serial number;
5c)存储子模块将所发送的信息帧的序列号作为动态链表的序列号,将0作为动态链表的生存时间,将未能成功接收信息帧的接收端的个数,作为动态链表的节点个数,将未能成功接收信息帧的接收端的用户序列号,作为动态链表的节点,得到一个新的动态链表;5c) The storage submodule uses the serial number of the sent information frame as the serial number of the dynamic linked list, uses 0 as the survival time of the dynamic linked list, and uses the number of receiving ends that fail to receive the information frame as the number of nodes of the dynamic linked list , using the user serial number of the receiving end that failed to receive the information frame as a node of the dynamic linked list to obtain a new dynamic linked list;
5d)存储子模块将存储子模块中所有链表的生存时间加1,执行步骤6a);5d) the storage submodule adds 1 to the survival time of all linked lists in the storage submodule, and executes step 6a);
(6)构造重传帧:(6) Construct a retransmission frame:
6a)判断所有动态链表中,序列号最小的动态链表的存活时间是否小于系统单帧最大存活时间减去2的差,若小于,则执行步骤6c);若大于或者等于,执行步骤6b);6a) Judging among all dynamic linked lists, whether the survival time of the dynamic linked list with the smallest serial number is less than the difference between the maximum survival time of a single frame of the system minus 2, if less than, then perform step 6c); if greater than or equal to, perform step 6b);
6b)匹配子模块调用最大匹配算法,对所有动态链表中序列号最小的动态链表进行最大匹配运算,得到重传帧构造集合,匹配子模块将重传帧构造集合发送至网络编码模块,执行步骤7a);6b) The matching sub-module invokes the maximum matching algorithm, performs the maximum matching operation on the dynamic linked list with the smallest sequence number in all dynamic linked lists, and obtains the retransmission frame construction set, and the matching sub-module sends the retransmission frame construction set to the network coding module, and executes the steps 7a);
6c)匹配子模块调用完美匹配算法,对所有动态链表中序列号最小的动态链表进行完美匹配,判断匹配结果是否为重传帧构造集合,如果是,则匹配子模块将重传帧构造集合发送至网络编码模块,执行步骤7a);如果运算的结果是“无法进行完美匹配”,则执行步骤4a);6c) The matching submodule invokes the perfect matching algorithm to perform perfect matching on the dynamic linked list with the smallest serial number in all dynamic linked lists, and judges whether the matching result is a retransmission frame construction set, and if so, the matching submodule sends the retransmission frame construction set To the network coding module, perform step 7a); if the result of the operation is "unable to perform a perfect match", then perform step 4a);
(7)发送重传帧:(7) Send retransmission frame:
7a)网络编码模块从重传帧构造集合中取出所有元素,将这组元素的值送入映射子模块,对于每一个元素的值,逐一索引信息帧序列号与元素值相同的信息帧的存储位置,根据存储位置从重发缓存模块中逐一提取信息帧;7a) The network coding module takes out all the elements from the retransmission frame construction set, sends the value of this group of elements to the mapping sub-module, and for the value of each element, indexes one by one the storage location of the information frame whose serial number is the same as the element value , extracting information frames one by one from the retransmission cache module according to the storage location;
7b)网络编码模块将,帧长为信息帧内容部分的长度、每个比特都为0的帧作为初始重传帧,将提取的多个信息帧逐一与初始重传帧进行逐比特异或运算,得到准重传帧;7b) The network coding module takes the frame whose length is the length of the content part of the information frame and each bit is 0 as the initial retransmission frame, and performs a bit-by-bit XOR operation on the extracted multiple information frames and the initial retransmission frame one by one , get the quasi-retransmission frame;
7c)网络编码模块在准重传帧之后添加重传帧构造集合,获得重传帧;7c) The network coding module adds the retransmission frame construction set after the quasi-retransmission frame to obtain the retransmission frame;
7d)网络编码模块向多个接收端广播重传帧,等待接收端返回应答信息;7d) The network coding module broadcasts retransmission frames to multiple receivers, and waits for the receivers to return response information;
(8)再次更新动态列表:(8) Update the dynamic list again:
8a)存储子模块将所有链表的生存时间加1,将多个接收端中返回确认应答的接收端的用户序列号记录下来,并将记录的用户序列号组合成一个反馈用户集合;8a) The storage submodule adds 1 to the survival time of all linked lists, records the user serial numbers of the receivers that return confirmation responses among multiple receivers, and combines the recorded user serial numbers into a feedback user set;
8b)判断反馈用户集合是否为空集,若是,则执行步骤7d);若不为空集,则执行步骤8c);8b) Determine whether the feedback user set is an empty set, if so, perform step 7d); if not an empty set, then perform step 8c);
8c)动态列表模块从重传帧构造集合中提取所有元素,对于每一个元素的值,逐一在存储子模块中索引出序列号与元素的值相同的动态链表,存储子模块对所有得到的动态链表上的所有节点,如果任意一个节点的值存在于反馈用户集合中,则将该节点删除,并且将该节点所属链表的节点个数减1;8c) The dynamic list module extracts all elements from the retransmission frame construction set, and for the value of each element, index the dynamic linked list whose serial number is the same as the value of the element one by one in the storage submodule, and store the dynamic linked list for all obtained dynamic links by the storage submodule For all nodes on , if the value of any node exists in the feedback user collection, delete the node, and reduce the number of nodes in the linked list to which the node belongs;
8d)动态列表模块删除节点个数为0的链表,将所有剩下链表的生存时间加1;8d) The dynamic list module deletes the linked list whose number of nodes is 0, and adds 1 to the survival time of all remaining linked lists;
8e)动态列表模块删除重传帧构造集合,网络编码模块删除重传帧构造集合、准重传帧以及重传帧,清空反馈用户集合,执行步骤6a);8e) The dynamic list module deletes the retransmission frame construction set, the network coding module deletes the retransmission frame construction set, the quasi-retransmission frame and the retransmission frame, clears the feedback user set, and executes step 6a);
(9)处理动态列表中的剩余信息:(9) Process the remaining information in the dynamic list:
9a)判断动态列表中是否为空,若为空,则执行步骤9i);否则执行步骤9b);9a) judge whether it is empty in the dynamic list, if it is empty, then execute step 9i); otherwise execute step 9b);
9b)匹配子模块调用最大匹配算法,对所有动态链表中序列号最小的动态链表进行最大匹配运算,得到重传帧构造集合,匹配子模块将重传帧构造集合发送至网络编码模块;9b) The matching submodule invokes the maximum matching algorithm, and performs a maximum matching operation on the dynamic linked list with the smallest serial number in all dynamic linked lists to obtain a retransmission frame construction set, and the matching submodule sends the retransmission frame construction set to the network coding module;
9c)网络编码模块从重传帧构造集合中取出所有元素,将这组元素的值送入映射子模块,对于每一个元素的值,逐一索引信息帧序列号与元素值相同的信息帧的存储位置,根据存储位置从重发缓存模块中逐一提取信息帧;9c) The network coding module takes out all elements from the retransmission frame construction set, sends the value of this group of elements to the mapping sub-module, and for the value of each element, indexes one by one the storage location of the information frame whose serial number is the same as the element value , extracting information frames one by one from the retransmission cache module according to the storage location;
9d)网络编码模块将,帧长为信息帧内容部分的长度、每个比特都为0的帧作为初始重传帧,将得到的多个信息帧逐一与初始重传帧进行逐比特异或运算,得到准重传帧;9d) The network coding module takes the frame whose length is the length of the content part of the information frame and each bit is 0 as the initial retransmission frame, and performs a bit-by-bit exclusive OR operation on the obtained multiple information frames with the initial retransmission frame one by one , get the quasi-retransmission frame;
9e)网络编码模块在准重传帧之后添加重传帧构造集合,从而得到重传帧,并将重传帧暂时保存;网络编码模块向多个接收端广播重传帧,等待接收端返回应答信息;9e) The network coding module adds the retransmission frame construction set after the quasi-retransmission frame, thereby obtaining the retransmission frame, and temporarily saves the retransmission frame; the network coding module broadcasts the retransmission frame to multiple receivers, and waits for the receiver to return a response information;
9f)存储子模块将多个接收端中返回确认应答的若干个接收端的用户序列号记录下来,并将所述的若干个接收端序列号组合成一个反馈用户集合;9f) The storage sub-module records the user serial numbers of several receiving terminals that return confirmation responses among multiple receiving terminals, and combines the serial numbers of the several receiving terminals into a feedback user set;
9g)动态列表模块从重传帧构造集合中提取所有元素,对于每一个元素的值,逐一在存储子模块中索引出序列号与元素的值相同的动态链表,存储子模块对所有得到的动态链表上的所有节点,判断节点的值是否存在于反馈用户集合中,若任意一个节点的值存在于反馈用户集合中,则将该节点删除,并且将该节点所属链表的节点个数减1;9g) The dynamic list module extracts all elements from the retransmission frame construction set. For the value of each element, index the dynamic linked list with the same sequence number as the value of the element in the storage sub-module one by one, and the storage sub-module compares all obtained dynamic linked lists. For all the nodes above, judge whether the value of the node exists in the feedback user set, if the value of any node exists in the feedback user set, delete the node, and reduce the number of nodes in the linked list to which the node belongs;
9h)动态列表模块删除重传帧构造集合,网络编码模块删除重传帧构造集合、准重传帧以及重传帧;清空反馈用户集合,执行步骤9a);9h) The dynamic list module deletes the retransmission frame construction set, the network coding module deletes the retransmission frame construction set, the quasi-retransmission frame and the retransmission frame; clears the feedback user set, and executes step 9a);
9i)结束;9i) end;
所述的接收过程包括如下步骤:The receiving process includes the following steps:
(10)传输前准备:(10) Preparation before transmission:
10a)清空信息缓存模块与译码模块中的缓存内容;10a) Empty the cache contents in the information cache module and the decoding module;
10b)判断是否存在需要接收的数据帧,若有,则执行步骤10c);否则,执行步骤12h);10b) judge whether there is a data frame that needs to be received, if so, then execute step 10c); otherwise, execute step 12h);
10c)接收子模块若未接收到数据帧,反馈模块向发送端发送否定应答,执行步骤10c);否则执行步骤10d);10c) If the receiving sub-module does not receive the data frame, the feedback module sends a negative response to the sending end, and executes step 10c); otherwise, executes step 10d);
10d)判断接收到的数据帧是测试帧、信息帧、重传帧;若接收到的是测试帧,执行步骤10e);若接收到的是信息帧,则执行步骤11a);若接收到的是重传帧,则执行步骤11c);10d) judging that the received data frame is a test frame, an information frame, and a retransmission frame; if it is a test frame received, perform step 10e); if it is an information frame, then perform step 11a); if received is a retransmission frame, then perform step 11c);
10e)反馈模块返回确认应答信息,并且返回单帧可等待时延以及可分配存储空间,执行步骤10c);10e) The feedback module returns the acknowledgment response information, and returns the single frame waiting time delay and allocatable storage space, and executes step 10c);
(11)接收数据帧:(11) Receive data frame:
11a)反馈模块向发送端返回确认应答,解析子模块从信息帧的帧头,提取信息帧的序列号,缓存模块判断是否有足够的存储空间,若有,则执行步骤11b);否则,缓存子模块释放存储的多个信息帧中序列号最小的一个信息帧的存储空间,解析子模块删除信息帧的序列号与存储地址的对应关系,执行步骤11b);11a) The feedback module returns an acknowledgment response to the sending end, and the parsing submodule extracts the serial number of the information frame from the frame header of the information frame, and the cache module judges whether there is enough storage space, and if so, executes step 11b); otherwise, cache The submodule releases the storage space of an information frame with the smallest sequence number among the plurality of information frames stored, resolves the submodule to delete the correspondence between the sequence number and the storage address of the information frame, and executes step 11b);
11b)缓存子模块储存接收到的信息帧,解析子模块保存信息帧存储地址与序列号的对应关系,执行步骤10b);11b) The cache submodule stores the received information frame, and the parsing submodule stores the corresponding relationship between the information frame storage address and the serial number, and executes step 10b);
11c)解析子模块读取重传帧帧头后的第一个比特以及之后的信息帧长度个比特,将所读取的内容作为准恢复帧;11c) The parsing submodule reads the first bit after the frame header of the retransmission frame and the length bits of the subsequent information frame, and uses the read content as a quasi-recovery frame;
11d)解析子模块读取信息帧长度个比特之后所有比特,并将所读取的内容作为重传帧构造集合,将重传帧构造集合与准恢复帧发送至译码模块,执行步骤12a);11d) The parsing submodule reads all the bits after the information frame length bits, and uses the read content as a retransmission frame construction set, sends the retransmission frame construction set and the quasi-recovery frame to the decoding module, and performs step 12a) ;
(12)重传帧译码:(12) Retransmission frame decoding:
12a)译码模块将两个空集作为译码集合与目的集合,译码模块将提取重传帧构造集合中所有元素的值,对于每一个元素的值,若信息缓存模块中存在信息帧序列号与元素的值相同的信息帧,则将这个信息帧序列号作为一个元素加入译码集合中,否则将这个信息帧序列号作为一个元素加入目的集合中;12a) The decoding module uses two empty sets as the decoding set and the target set. The decoding module will extract the values of all elements in the retransmission frame construction set. For the value of each element, if there is an information frame sequence in the information buffer module If there is an information frame with the same number as the value of the element, add this information frame sequence number as an element to the decoding set, otherwise add this information frame sequence number as an element to the destination set;
12b)判断目的集合的元素个数,若元素个数为0,反馈模块向发送端返回确认应答,执行步骤12g);若元素个数大于等于两个,则调用反馈模块向发送端返回否定应答,执行步骤12g);若元素个数仅为1个,则调用反馈模块向发送端返回确认应答,执行步骤12c);12b) Determine the number of elements in the destination set, if the number of elements is 0, the feedback module returns a confirmation response to the sending end, and execute step 12g); if the number of elements is greater than or equal to two, call the feedback module to return a negative response to the sending end , execute step 12g); if the number of elements is only 1, call the feedback module to return a confirmation response to the sender, and execute step 12c);
12c)译码模块从译码集合中取出所有元素,将这组元素的值送入解析子模块,对于每一个元素的值,逐一索引信息帧序列号与元素值相同的信息帧的存储位置,根据存储位置从缓存子模块中逐一提取信息帧;12c) The decoding module takes out all the elements from the decoding set, sends the value of this group of elements into the parsing sub-module, and for the value of each element, indexes the storage locations of the information frames whose serial numbers are the same as the element values one by one, Extract information frames one by one from the cache sub-module according to the storage location;
12d)将提取的多个信息帧逐一与准恢复帧进行逐比特异或运算,得到恢复帧,将目的集合中唯一的元素作为恢复帧的序列号;12d) performing bit-by-bit XOR operation on the extracted multiple information frames one by one with the quasi-recovery frame to obtain the recovery frame, and using the unique element in the target set as the serial number of the recovery frame;
12e)缓存模块判断是否有足够的存储空间,若有则执行步骤12f);否则缓存子模块将存储的多个信息帧中序列号最小的一个信息帧的存储空间释放,解析子模块将序列号最小的信息帧的序列号与存储地址的对应关系删除,执行步骤12f);12e) The cache module judges whether there is enough storage space, and if so, executes step 12f); otherwise, the cache submodule releases the storage space of an information frame with the smallest sequence number among the stored information frames, and the resolution submodule releases the sequence number The serial number of the smallest information frame and the corresponding relationship between the storage address are deleted, and step 12f is performed);
12f)缓存子模块储存得到的恢复帧,解析子模块保存恢复帧的序列号与恢复帧的存储地址的对应关系;12f) The cache sub-module stores the recovery frame obtained, and the parsing sub-module saves the serial number of the recovery frame and the corresponding relationship between the storage address of the recovery frame;
12g)删除接收端各模块中存在的重传帧构造集合、准恢复帧、译码集合、目的集合以及恢复帧,执行步骤10b);12g) Delete the retransmission frame construction set, quasi-recovery frame, decoding set, purpose set and recovery frame existing in each module of the receiving end, and execute step 10b);
12h)结束。12h) end.
本发明与现有技术相比具有以下优点:Compared with the prior art, the present invention has the following advantages:
第一,由于本发明在数据传输时引入了系统单帧最大生存时间,克服了现有技术忽视信息帧的及时性、接收端通信中可分配的内存空间的缺点,使得本发明具有更高的实际工程适用性,适用于无线通信系统中的多种广播情景。First, because the present invention introduces the maximum survival time of a single frame in the system during data transmission, it overcomes the shortcomings of the existing technology that ignores the timeliness of information frames and the memory space that can be allocated in the communication of the receiving end, so that the present invention has a higher Practical engineering applicability, suitable for a variety of broadcast scenarios in wireless communication systems.
第二,由于本发明在数据传输时采用了基于动态列表的动态更新方法,克服了现有技术需要分块传输的缺点,实现了分组与分组之间的信息帧仍可以进行网络编码,使得本发明具有更高的重传效率,更低的整体传输时延。Second, because the present invention adopts a dynamic update method based on a dynamic list during data transmission, it overcomes the shortcoming of block transmission in the prior art, and realizes that information frames between groups can still be network coded, making this The invention has higher retransmission efficiency and lower overall transmission delay.
第三,由于本发明在网络编码时引入了最大匹配算法与完美匹配算法,克服了现有技术难以实现网络编码的最优组合的缺点,使得本发明具有更高的重传效率,适用于无线通信系统中的多种广播情景。Third, since the present invention introduces the maximum matching algorithm and the perfect matching algorithm in network coding, it overcomes the disadvantage that it is difficult to realize the optimal combination of network coding in the prior art, so that the present invention has higher retransmission efficiency and is suitable for wireless Various broadcast scenarios in communication systems.
第四,由于本发明采用了基于重传帧反馈信息更新动态列表方法,克服了现有技术对重传帧的接收情况考虑不周的缺点,使得本发明避免了数据帧接收超时的情况。Fourth, because the present invention adopts the method of updating the dynamic list based on the feedback information of the retransmission frame, it overcomes the shortcoming that the prior art does not consider the reception of the retransmission frame carefully, so that the present invention avoids the situation that the data frame reception times out.
附图说明Description of drawings
图1为本发明广播网络拓扑图;Fig. 1 is a broadcast network topology diagram of the present invention;
图2为本发明系统结构示意图;Fig. 2 is a schematic structural diagram of the system of the present invention;
图3为本发明方法中发送过程的流程图;Fig. 3 is the flowchart of sending process in the method of the present invention;
图4为本发明方法中接收过程的流程图。Fig. 4 is a flow chart of the receiving process in the method of the present invention.
具体实施方式detailed description
下面结合附图对本发明做进一步详细的描述。The present invention will be described in further detail below in conjunction with the accompanying drawings.
参照附图1,本发明的应用情景为无线广播,发送端S向M个接收端广播数据帧,M个接收端分别用T1,T2,...,TM表示,每一个接收端都拥有唯一的用户序列号,当接收端向发送端反馈信息时,发送端可以通过反馈信息中包含的用户序列号,识别该反馈信息是由哪个接收端发出,本发明实施例中M个接收端的用户序列号分别1,2,…,M,其中M为小于255的任意自然数,本发明实施例中,接收端向发送端反馈的信息中的用户序列号用8位比特表示,发送端广播的数据帧共有三种:测试帧、信息帧、重传帧,每种数据帧的帧头中,包涵了可以识别数据帧种类的信息,其中信息帧的长度是一个定值,本发明实施例中为l比特,信息帧的帧头中包涵了信息帧序列号,每一个信息帧都有一个序列号,序列号存储于信息帧的帧头,工程协议中用8bit或者16bit表示,为了方便,本发明实施例中信息帧的序列号为8bit,即序列号可以表示为0到255中任意一个自然数,如果发送帧数超过255,信息帧的序列号是将该信息帧发送的次序模二和的结果。With reference to accompanying drawing 1, the application scene of the present invention is wireless broadcasting, and sending end S broadcasts data frame to M receiving ends, and M receiving ends are represented by T 1 , T 2, ..., TM respectively, and each receiving end Each has a unique user serial number. When the receiving end feeds back information to the sending end, the sending end can identify which receiving end sent the feedback information through the user serial number contained in the feedback information. In the embodiment of the present invention, M receiving end The user serial numbers of the end are 1, 2, ..., M, wherein M is any natural number less than 255. In the embodiment of the present invention, the user serial number in the information fed back by the receiving end to the sending end is represented by 8 bits, and the sending end broadcasts There are three types of data frames: test frames, information frames, and retransmission frames. The frame headers of each type of data frame contain information that can identify the type of data frame, and the length of the information frame is a fixed value. Embodiments of the present invention The middle is l bit, and the frame header of the information frame includes the serial number of the information frame. Each information frame has a serial number, and the serial number is stored in the frame header of the information frame. In the engineering agreement, it is represented by 8bit or 16bit. For convenience, In the embodiment of the present invention, the serial number of the information frame is 8bit, that is, the serial number can be expressed as any natural number in 0 to 255, if the number of frames to be sent exceeds 255, the serial number of the information frame is the order modulo two and the result of.
参照附图2,本发明的系统包括一个发送端和多个接收端。Referring to accompanying drawing 2, the system of the present invention includes a sending end and a plurality of receiving ends.
发送端由协商模块、动态列表模块、重传缓存模块、网络编码模块、发送缓冲模块组成。其中,协商模块与发送缓冲模块通过数据线连接,动态列表模块与网络编码模块通过数据线连接,动态列表模块与重传缓存模块通过数据线连接,重传缓存模块与网络编码模块通过数据线连接,重传缓存模块与发送缓冲模块通过数据线连接。协商模块用于测试帧的发送,来自于接收端的测试帧应答信息的接收,计算系统单帧最大生存时间,并且将系统生存时间发送至动态列表模块。动态列表模块用于来自于接收端的信息帧和重传帧应答信息的接收,建立、存储、更新动态列表,建立动态链表与信息帧存储地址的对应关系,以及对动态列表进行匹配运算,并将运算结果发送至网络编码模块。重传缓存模块用于存储待重传的多个信息帧。网络编码模块用于对不同的信息帧进行网络编码,构造重传帧,发送重传帧,以及暂存重传帧。发送缓冲模块用于存储、发送当前待发送的信息帧。其中,动态列表模块包括存储子模块、匹配子模块、映射子模块。存储子模块与匹配子模块通过数据线连接,存储子模块与映射子模块通过数据线连接。存储子模块,用于接收来自于接收端的信息帧与重传帧应答信息,存储、更新接收端反馈的接收情况。匹配子模块,进行完美匹配算法或者最大匹配算法,并向网络编码模块返回重传帧构造集合。映射子模块,用于建立链表序列与信息帧存储地址的一一对应关系。The sending end is composed of a negotiation module, a dynamic list module, a retransmission buffer module, a network coding module, and a sending buffer module. Among them, the negotiation module is connected to the sending buffer module through a data line, the dynamic list module is connected to the network coding module through a data line, the dynamic list module is connected to the retransmission cache module through a data line, and the retransmission cache module is connected to the network coding module through a data line , the retransmission buffer module is connected to the send buffer module through a data line. The negotiation module is used for sending test frames, receiving test frame response information from the receiving end, calculating the maximum survival time of a single frame of the system, and sending the system survival time to the dynamic list module. The dynamic list module is used to receive the information frame and retransmission frame response information from the receiving end, establish, store, and update the dynamic list, establish the corresponding relationship between the dynamic linked list and the storage address of the information frame, and perform matching operations on the dynamic list, and The calculation result is sent to the network coding module. The retransmission buffer module is used for storing multiple information frames to be retransmitted. The network coding module is used for network coding different information frames, constructing retransmission frames, sending retransmission frames, and temporarily storing retransmission frames. The sending buffer module is used for storing and sending the information frame currently to be sent. Wherein, the dynamic list module includes a storage submodule, a matching submodule, and a mapping submodule. The storage sub-module is connected to the matching sub-module through a data line, and the storage sub-module is connected to the mapping sub-module through a data line. The storage sub-module is used to receive the information frame and retransmission frame response information from the receiving end, store and update the receiving status fed back by the receiving end. The matching sub-module performs the perfect matching algorithm or the maximum matching algorithm, and returns the retransmission frame construction set to the network coding module. The mapping sub-module is used to establish a one-to-one correspondence between the linked list sequence and the storage address of the information frame.
多个接收端中的任意一个接收端由信息缓存模块、译码模块、反馈模块组成。信息缓存模块与译码模块通过数据线连接,信息缓存模块与反馈模块通过数据线连接,译码模块与反馈模块通过数据线连接。Any one of the multiple receiving ends is composed of an information buffer module, a decoding module and a feedback module. The information cache module is connected to the decoding module through a data line, the information cache module is connected to the feedback module through a data line, and the decoding module is connected to the feedback module through a data line.
信息缓存模块,用于接收数据帧,分析数据帧的类型,建立信息帧存储地址与信息帧序列号的对应关系,存储多个已正确接收的信息帧与重传帧。译码模块,用于对重传帧进行译码,恢复原始信息帧。反馈模块,用于向接收端反馈数据帧的接收情况。其中,信息缓存模块包括接收子模块、解析子模块、缓存子模块。接收子模块与解析子模块通过数据线连接,解析子模块与缓存子模块通过数据线连接。接收子模块,用于接收来自发送端的数据帧,对所接收的数据帧选择发送解析子模块或者选择通知反馈模块。解析子模块,用于分析信息帧或重传帧的帧头,从而得出信息帧的序列号,或者重传帧构造向量,并且储存表示信息帧序列号与存储地址对应关系的映射表。缓存子模块,用于存储多个信息帧与当前重传帧。The information cache module is used to receive data frames, analyze the types of data frames, establish the corresponding relationship between information frame storage addresses and information frame serial numbers, and store multiple correctly received information frames and retransmission frames. The decoding module is used to decode the retransmission frame and restore the original information frame. The feedback module is used to feed back the receiving condition of the data frame to the receiving end. Wherein, the information cache module includes a receiving submodule, a parsing submodule, and a cache submodule. The receiving sub-module is connected to the analyzing sub-module through a data line, and the analyzing sub-module is connected to the buffering sub-module through a data line. The receiving sub-module is used to receive the data frame from the sending end, and select the sending analysis sub-module or the notification feedback module for the received data frame. The parsing sub-module is used to analyze the frame header of the information frame or the retransmission frame to obtain the sequence number of the information frame or the construction vector of the retransmission frame, and store a mapping table representing the corresponding relationship between the sequence number of the information frame and the storage address. The cache sub-module is used for storing multiple information frames and the current retransmission frame.
结合具体实例,对本发明方法的具体步骤做详细描述:In conjunction with specific examples, the concrete steps of the inventive method are described in detail:
参照附图3,本发明发送过程包括如下步骤:With reference to accompanying drawing 3, the sending process of the present invention comprises the following steps:
步骤1,发送测试包:Step 1, send a test packet:
1a)协商模块记录广播测试帧的发送时间,等待来自于多个接收端的反馈信息;1a) The negotiation module records the sending time of the broadcast test frame, and waits for feedback information from multiple receiving ends;
1b)协商模块若收到所有多个接收端的确认应答信息,则执行步骤1b);若协商模块收到了否定应答或者未接收到任意一个接收端的反馈信息,则执行步骤1a);1b) If the negotiating module receives confirmation response information from all multiple receiving ends, then perform step 1b); if the negotiating module receives a negative response or does not receive feedback information from any receiving terminal, then perform step 1a);
1c)协商模块记录每一个确认应答信息的接收时间,并记录多个接收端中的每一个反馈的单帧可等待时延以及可分配存储空间;1c) The negotiation module records the receiving time of each acknowledgment response information, and records the single-frame waitable delay and allocable storage space fed back by each of the multiple receiving ends;
单帧可等待时延是指,多个接收端中的任意一个接收端Ti,从对任意一个数据帧进行第一次请求到正确接收该数据帧的最大可承受的等待时间,这个参数反应了接收端Ti对信息及时性的要求;可分配存储空间是指,多个接收端中的任意一个接收端的缓存子模块的存储空间,这个参数反应了接收端Ti愿意在该次通信中分配的内存空间;因此,整个步骤1的意义在于,发送端通过测试帧,了解M个接收端中每个接收端对信息及时性的要求、在该次通信中可分配的内存空间。Single-frame waitable delay refers to the maximum tolerable waiting time from the first request for any data frame to the correct reception of the data frame for any one of the multiple receivers T i , this parameter reflects Requirements for the timeliness of information at the receiving end T i ; the allocatable storage space refers to the storage space of the cache sub-module of any receiving end among multiple receiving ends, and this parameter reflects the willingness of the receiving end T i to The allocated memory space; therefore, the significance of the whole step 1 is that the sending end understands the timeliness requirements of each of the M receiving ends for information and the memory space that can be allocated in this communication through the test frame.
步骤2,获取系统单帧最大存活时间:Step 2. Obtain the maximum survival time of a single frame in the system:
2a)协商模块选取多个确认应答信息接收时间中最大的一个,将最大接收时间减去测试帧的发送时间,得到系统传播时延;2a) The negotiation module selects the largest one among multiple confirmation response message receiving times, subtracts the sending time of the test frame from the maximum receiving time, and obtains the system propagation delay;
2b)选取多个单帧可等待时延中最小的一个作为系统单帧可等待时延;2b) Select the smallest one among multiple single-frame waitable delays as the single-frame waitable delay of the system;
2c)选取多个可分配存储空间中最小的一个作为系统可分配存储空间;2c) Selecting the smallest one of multiple allocatable storage spaces as the system allocatable storage space;
2d)将满足下式的最大整数,作为系统单帧最大存活时间:2d) The largest integer that satisfies the following formula is used as the maximum survival time of a single frame in the system:
(NH-1)TR<TM(NH-1)TR<TM
(NH-1)CO<CM(NH-1)C O <CM
其中,NH表示系统单帧最大存活时间,TR表示系统传播时延,TM表示系统单帧可等待时延,CO表示一个信息帧所需要的存储空间,CM表示系统可分配存储空间;Among them, NH represents the maximum survival time of a single frame of the system, TR represents the propagation delay of the system, TM represents the waiting delay of a single frame of the system, C O represents the storage space required by an information frame, and CM represents the storage space that the system can allocate;
系统单帧最大存活时间的意义在于,一定会保证所有接收端对信息及时性的不同要求,一定不会超过任何一个接收端愿意在该次通信中分配的内存空间。The significance of the maximum survival time of a single frame in the system is that it will ensure that all receiving ends have different requirements for information timeliness, and will not exceed the memory space that any receiving end is willing to allocate in this communication.
步骤3,动态链表初始化:Step 3, dynamic linked list initialization:
3a)发送缓冲模块将系统单帧最大存活时间除以2,舍尾取整,得到初始量;3a) The sending buffer module divides the maximum survival time of a single frame of the system by 2, rounds the tail to an integer, and obtains the initial amount;
3b)发送缓冲模块向多个接收端连续广播初始量个信息帧;在这里,如果总共需要发送的信息帧帧数小于初始量个,那么直接连续广播需要发送的信息帧帧数;所述的连续广播,指的是发送缓冲模块向接收端广播信息帧1,存储子模块接收反馈信息之后,发送缓冲模块再向接收端广播信息帧2,存储子模块接收反馈信息之后,发送缓冲模块再向接收端广播信息帧3......直到广播初始量个信息帧,并且在此过程中存储子模块记录对于初始量个信息帧所有的反馈信息;若未接收到M个接收端中任意一个接收端Ti,对于任意一个信息帧Pi的反馈信息,存储子模块则将Ti对于Pi记录为反馈了否定信息;3b) The sending buffer module continuously broadcasts an initial number of information frames to multiple receiving ends; here, if the total number of information frames to be sent is less than the initial number of frames, then directly and continuously broadcast the number of information frames that need to be sent; Continuous broadcasting means that the sending buffer module broadcasts information frame 1 to the receiving end, after the storage sub-module receives the feedback information, the sending buffer module broadcasts information frame 2 to the receiving end, and after the storage sub-module receives the feedback information, the sending buffer module sends the The receiving end broadcasts information frame 3...until broadcasting the initial number of information frames, and during this process, the storage submodule records all the feedback information for the initial number of information frames; if any of the M receiving ends is not received A receiving end T i , for the feedback information of any information frame P i , the storage sub-module records T i as feedback negative information for P i ;
3c)存储子模块建立与初始量个信息帧一一对应的动态链表;这里所述的一一对应,指的是信息帧Pi的序列号与动态链表Lj中存储的序列号相同;3c) the storage submodule establishes a dynamic linked list corresponding to the initial number of information frames; the one-to-one correspondence described here means that the serial number of the information frame P i is identical to the serial number stored in the dynamic linked list L j ;
3d)存储子模块将初始量个动态链表的序列号分别赋值为对应的信息帧序列号,将初始量个动态链表的生存时间分别赋值为,初始量减去初始量个的信息帧序列号后加1,将每个动态链表的若干个节点值分别赋值为,对该动态链表所对应的信息帧返回否定信息的接收端的用户序列号;3d) The storage sub-module assigns the serial numbers of the initial number of dynamic linked lists to the corresponding information frame serial numbers, respectively assigns the survival time of the initial number of dynamic linked lists to the initial number after subtracting the initial number of information frame serial numbers Add 1, assign several node values of each dynamic linked list to be respectively, and return the user serial number of the receiving end of negative information to the information frame corresponding to the dynamic linked list;
本发明实施例中,M个接收端,对于初始量NH/2个信息帧返回否定应答的用户个数分别为:ET1,ET2,...,ETNH/2,动态列表的初始化结果可以表示如下:In the embodiment of the present invention, the numbers of M receivers that return negative responses to the initial amount of NH/2 information frames are respectively: ET 1 , ET 2 , ..., ET NH/2 , the initialization result of the dynamic list Can be expressed as follows:
{1,NH/2,ET1}{E(1,1),E(1,2),...,E(1,ET1)}{1, NH/2, ET 1 } {E(1, 1), E(1, 2), ..., E(1, ET 1 )}
{2,NH/2-1,ET2}{E(2,1),E(2,2),...,E(2,ET2)}{ 2 ,NH/2-1,ET2}{E(2,1),E(2,2),...,E( 2 ,ET2)}
{NH/2,1,ETNH/2}{E(NH/2,1),E(NH/2,2),...,E(NH/2,ETNH/2)}{NH/2, 1, ET NH/2 } {E(NH/2, 1), E(NH/2, 2), ..., E(NH/2, ET NH/2 )}
其中,每一行表示动态列表中的一个动态链表,每一个动态链表用两个集合表示;第一个集合代表该链表的表头,其第一个元素为动态链表的序列号MF,第二个元素为动态链表的生存时间TL,第三个元素为动态链表的节点个数ET;第二个集合表示该链表所包涵的元素;整个动态列表由初始量个这样的动态链表构成;NH/2表示初始量,ET1,ET2,...,ETNH/2分别表示,接收端认为,对于信息帧P1,P2,…,PNH/2返回否定应答的接收端个数,E(i,j)表示对于第i帧数据,第j个返回否定应答接收端的用户序列号,这里0<i<NH/2,0<j<ETi;Among them, each row represents a dynamic linked list in the dynamic list, and each dynamic linked list is represented by two sets; the first set represents the header of the linked list, and its first element is the serial number MF of the dynamic linked list, and the second The element is the survival time TL of the dynamic linked list, and the third element is the number of nodes ET of the dynamic linked list; the second set represents the elements contained in the linked list; the entire dynamic list is composed of the initial number of such dynamic linked lists; NH/2 Indicates the initial quantity, ET 1 , ET 2 , ..., ET NH/2 respectively represent the number of receiving ends that the receiving end believes to return a negative response to the information frame P 1 , P 2 , ..., P NH/2 , E (i, j) represents that for the i-th frame data, the jth returns the user serial number of the negative acknowledgment receiving end, where 0<i<NH/2, 0<j<ET i ;
3e)遍历存储子模块中所有链表,依次地提取表头中的信息帧序列号,将所提取的信息帧序列号对应的信息帧由发送缓冲模块转存至重传缓冲模块,记录此时转存的信息帧在重传缓冲模块中存储的地址,并且由映射子模块建立所提取的信息帧序列号与信息帧存储地址的对应关系;再次遍历存储子模块中所有链表的节点个数一项,将节点个数为0的动态链表从动态列表中删除,同时将该动态链表对应的信息帧从重传缓冲模块中删除,将该动态链表对应的对应关系从映射子模块中删除;3e) Traverse all linked lists in the storage sub-module, sequentially extract the information frame serial number in the table header, transfer the information frame corresponding to the extracted information frame serial number to the retransmission buffer module by the sending buffer module, and record the information transferred at this time The stored address of the stored information frame in the retransmission buffer module, and the corresponding relationship between the sequence number of the extracted information frame and the storage address of the information frame is established by the mapping submodule; the item number of nodes in all linked lists in the storage submodule is traversed again , deleting the dynamic linked list whose number of nodes is 0 from the dynamic list, deleting the information frame corresponding to the dynamic linked list from the retransmission buffer module, and deleting the corresponding relationship corresponding to the dynamic linked list from the mapping submodule;
(4)发送信息帧:(4) Send information frame:
4a)发送缓冲模块检查是否有信息帧待发送,如果有,则发送缓冲模块广播下一个信息帧,执行步骤4b);否则,执行步骤9a);本发明只关心解决广播重传这一问题,属于无线通信中数据链路层的应用,链路层的上层需要发送多少个信息帧,本发明并不关心,链路层的上层需要发送的信息帧向发送缓冲模块中输入,如果没有输入,且发送缓冲模块为空,本系统将认为没有信息帧待发送;4a) sending buffer module checks whether there is information frame to be sent, if there is, then sending buffer module broadcasts next information frame, execution step 4b); Otherwise, execution step 9a); The present invention only cares about solving this problem of broadcast retransmission, It belongs to the application of the data link layer in wireless communication. The present invention does not care about how many information frames need to be sent by the upper layer of the link layer. The information frames that need to be sent by the upper layer of the link layer are input in the sending buffer module. If there is no input, And the sending buffer module is empty, the system will consider that there is no information frame to be sent;
4b)若存储子模块收到所有多个接收端的确认应答信息,则执行步骤5a);若收到了否定应答或者未接收到任意一个接收端的反馈信息,则执行步骤5b);4b) If the storage submodule receives confirmation response information from all multiple receiving ends, then perform step 5a); if a negative response is received or no feedback information from any receiving terminal is received, then step 5b) is performed;
(5)更新动态列表:(5) Update the dynamic list:
5a)发送缓冲模块将所发送信息帧的储存空间释放,存储子模块将当前所有链表的生存时间加1后,执行步骤6a);5a) The sending buffer module releases the storage space of the sent information frame, and the storage sub-module adds 1 to the survival time of all current linked lists, and then executes step 6a);
5b)发送缓冲模块将所发送的信息帧转存至重传缓存模块,映射子模块创建信息帧存储地址与序列号的对应关系;5b) The sending buffer module transfers the sent information frame to the retransmission buffer module, and the mapping sub-module creates the corresponding relationship between the information frame storage address and the serial number;
5c)存储子模块将所发送的信息帧的序列号作为动态链表的序列号,将0作为动态链表的生存时间,将未能成功接收信息帧的接收端的个数,作为动态链表的节点个数,将未能成功接收信息帧的接收端的用户序列号,作为动态链表的节点,得到一个新的动态链表;5c) The storage submodule uses the serial number of the sent information frame as the serial number of the dynamic linked list, uses 0 as the survival time of the dynamic linked list, and uses the number of receiving ends that fail to receive the information frame as the number of nodes of the dynamic linked list , using the user serial number of the receiving end that failed to receive the information frame as a node of the dynamic linked list to obtain a new dynamic linked list;
本发明实施例中,发送的信息帧序列号为MFx,接收端认为,对于该信息帧M个接收端中返回否定应答的接收端个数为ETx,此因与发送的信息帧所对应的动态链表为:In the embodiment of the present invention, the sequence number of the information frame sent is MF x , and the receiver believes that the number of receivers returning negative responses among the M receivers of the information frame is ET x , which corresponds to the information frame sent. The dynamic linked list of is:
{MFx,0,ETx}{E(x,1),E(x,2),…,E(x,ETx)}{MF x , 0, ET x } {E(x, 1), E(x, 2), ..., E(x, ET x )}
其中,E(x,j)表示对于信息帧序列号位MFx的信息帧,第j个返回否定应答接收端的用户序列号,这里0<j<ETi;Wherein, E(x, j) represents for the information frame of information frame serial number position MF x , jth returns the user serial number of negative acknowledgment receiving end, here 0<j<ET i ;
5d)存储子模块将存储子模块中所有链表的生存时间加1,执行步骤6a);5d) the storage submodule adds 1 to the survival time of all linked lists in the storage submodule, and executes step 6a);
(6)构造重传帧:(6) Construct a retransmission frame:
6a)判断所有动态链表中,序列号最小的动态链表的存活时间是否小于系统单帧最大存活时间减去2的差,若小于,则执行步骤6g);若大于或者等于,执行步骤6b);6a) Judging among all dynamic linked lists, whether the survival time of the dynamic linked list with the smallest serial number is less than the difference between the maximum survival time of a single frame of the system minus 2, if less than, then perform step 6g); if greater than or equal to, perform step 6b);
6b)匹配子模块将重传帧构造集合、目的用户集合置为空集,将所有动态链表中序列号最小的动态链表中的序列号作为元素加入重传帧构造集合中,将所有动态链表中序列号最小的动态链表中所包含所有的节点作为元素逐个加入目的用户集合中;6b) The matching sub-module sets the retransmission frame construction set and the target user set to an empty set, adds the serial number in the dynamic linked list with the smallest serial number in all dynamic linked lists as an element to the retransmission frame construction set, and puts all the dynamic linked lists in the dynamic linked list All the nodes contained in the dynamic linked list with the smallest sequence number are added to the target user collection one by one as elements;
6c)遍历存储子模块中所有的动态链表,寻找是否存在满足下式的动态链表:6c) traverse all dynamic linked lists in the storage submodule, and find whether there is a dynamic linked list satisfying the following formula:
其中,ψCRS表示重传帧构造集合,ψi表示存储子模块任意一个动态链表所有节点构成的集合;Among them, ψ CRS represents the retransmission frame construction set, and ψ i represents the set of all nodes in any dynamic linked list of the storage submodule;
6d)判断是否存满足6c)等式动态链表,若存在则执行6e);否则执行6f);6d) Judging whether there is a dynamic linked list that satisfies the equation 6c), if it exists, execute 6e); otherwise execute 6f);
6e)在所有满足6c)中等式的动态链表中选取节点个数最多的一个,如果节点个数最多的动态链表不止一个,则在所述的节点个数最多的动态链表中任意选取一个动态链表,按照如下公式对重传帧构造集合与目的用户集合进行赋值:6e) Select the one with the largest number of nodes among all the dynamic linked lists that satisfy the equation in 6c), if there is more than one dynamic linked list with the largest number of nodes, then arbitrarily select a dynamic linked list in the dynamic linked list with the largest number of nodes , assign values to the retransmission frame construction set and the destination user set according to the following formula:
ψCRS=ψCRS∪{MFj} ψCRS = ψCRS ∪{MF j }
ψCUD=ψCUD∪ψj ψ CUD = ψ CUD ∪ψ j
其中,ψCRS表示重传帧构造集合,MFj表示所选取的这个动态链表的序列号,ψCUD表示目的用户集合,ψj表示所选取的这个动态链表所有节点构成的集合,执行6c);Among them, ψ CRS represents the retransmission frame construction set, MF j represents the sequence number of the selected dynamic linked list, ψ CUD represents the set of destination users, and ψ j represents the set of all nodes in the selected dynamic linked list, execute 6c);
6f)匹配子模块将重传帧构造集合发送至网络编码模块,执行步骤7a);6f) The matching submodule sends the retransmission frame construction set to the network coding module, and performs step 7a);
6g)匹配子模块将重传帧构造集合、目的用户集合置为空集,将所有动态链表中序列号最小的动态链表中的序列号作为元素加入重传帧构造集合中,将所有动态链表中序列号最小的动态链表中所包含所有的节点作为元素逐个加入目的用户集合中;6g) The matching sub-module sets the retransmission frame construction set and the target user set to an empty set, adds the serial number in the dynamic linked list with the smallest serial number in all dynamic linked lists as an element to the retransmission frame construction set, and adds the serial number in all dynamic linked lists to the retransmission frame construction set. All the nodes contained in the dynamic linked list with the smallest sequence number are added to the target user collection one by one as elements;
6h)遍历存储子模块中所有的动态链表,寻找是否存在满足下式的动态链表:6h) traverse all dynamic linked lists in the storage submodule, and find whether there is a dynamic linked list satisfying the following formula:
其中,ψCRS表示重传帧构造集合,ψi表示存储子模块任意一个动态链表所有节点构成的集合;Among them, ψ CRS represents the retransmission frame construction set, and ψ i represents the set of all nodes in any dynamic linked list of the storage submodule;
6i)判断是否存满足6h)等式动态链表,若存在则执行6j);否则执行6k);6i) Judging whether there is a dynamic linked list that satisfies 6h) equation, if it exists, execute 6j); otherwise execute 6k);
6j)在所有满足6h)中等式的动态链表中选取节点个数最多的一个,如果节点个数最多的动态链表不止一个,则在所述的节点个数最多的动态链表中任意选取一个动态链表,按照如下公式对重传帧构造集合与目的用户集合进行赋值:6j) Select the one with the largest number of nodes among all the dynamic linked lists satisfying the equation in 6h), if there is more than one dynamic linked list with the largest number of nodes, then arbitrarily select a dynamic linked list in the dynamic linked list with the largest number of nodes , assign values to the retransmission frame construction set and the destination user set according to the following formula:
ψCRS=ψCRS∪{MFj} ψCRS = ψCRS ∪{MF j }
ψCUD=ψCUD∪ψj ψ CUD = ψ CUD ∪ψ j
其中,ψCRS表示重传帧构造集合,MFj表示所选取的这个动态链表的序列号,ψCUD表示目的用户集合,ψj表示所选取的这个动态链表所有节点构成的集合,执行6h);Among them, ψ CRS represents the retransmission frame construction set, MF j represents the serial number of the selected dynamic linked list, ψ CUD represents the set of destination users, and ψ j represents the set of all nodes of the selected dynamic linked list, execute 6h);
6k)若目的用户集合包括了所有接收端的用户序列号,则匹配子模块将重传帧构造集合发送至网络编码模块,执行步骤7a);否则执行步骤4a);6k) If the target user set includes the user serial numbers of all receivers, the matching submodule sends the retransmission frame construction set to the network coding module, and executes step 7a); otherwise, executes step 4a);
(7)发送重传帧:(7) Send retransmission frame:
7a)网络编码模块从重传帧构造集合中取出所有元素,将这组元素的值送入映射子模块,对于每一个元素的值,逐一索引信息帧序列号与元素值相同的信息帧的存储位置,根据存储位置从重发缓存模块中逐一提取信息帧,在网络编码时所用的信息帧,都是不包括帧头的信息帧内容部分;7a) The network coding module takes out all the elements from the retransmission frame construction set, sends the value of this group of elements to the mapping sub-module, and for the value of each element, indexes one by one the storage location of the information frame whose serial number is the same as the element value , extract information frames one by one from the retransmission cache module according to the storage location, and the information frames used in network encoding are the content of the information frame excluding the frame header;
7b)网络编码模块将,帧长为信息帧内容部分的长度、每个比特都为0的帧作为初始重传帧,将提取的多个信息帧逐一与初始重传帧进行逐比特异或运算,得到准重传帧;所述的逐比特异或运算是指,从长度相同的两个帧的第一个比特到最后一个比特,对于每个相同位置的一对比特,进行模二和;当信息帧P1与信息帧P2进行逐比特异或运算时,P1中的信息表示为[λ1,λ2,…,μl],l为信息帧的内容长度,P2中的信息表示为[ε1,ε2,…,εl],P1与P2逐比特异或运算的结果表示为:7b) The network coding module takes the frame whose length is the length of the content part of the information frame and each bit is 0 as the initial retransmission frame, and performs a bit-by-bit XOR operation on the extracted multiple information frames and the initial retransmission frame one by one , to obtain a quasi-retransmission frame; the bit-by-bit XOR operation refers to, from the first bit to the last bit of two frames of the same length, for each pair of bits at the same position, perform a modulo two sum; When information frame P 1 and information frame P 2 are subjected to bit-by-bit XOR operation, the information in P 1 is expressed as [λ1, λ2, ..., μl], l is the content length of the information frame, and the information in P 2 is expressed as [ε 1 ,ε 2 ,…,ε l ], the result of bit-by-bit XOR operation between P 1 and P 2 is expressed as:
其中,λi为信息帧P1内容部分的第i个比特的值,εi为信息帧P2内容部分的第i个比特的值,这里0<i<l,l为信息帧的内容长度;Among them, λi is the value of the i - th bit of the content part of the information frame P1, and εi is the value of the i -th bit of the content part of the information frame P2, where 0 <i<l, and l is the content length of the information frame ;
7c)网络编码模块将重传帧构造集合中的每一个元素,通过2进制的换算,表示成8比特的形式,将所有的以8比特形式表示的元素,逐一的加入一个空向量中,得到一个2进制的向量,将这个向量添加到准重传帧之后,从而实现将重传帧构造集合添加至准重传帧之后,获得重传帧;7c) The network coding module expresses each element in the retransmission frame construction set into 8-bit form through binary conversion, and adds all the elements expressed in 8-bit form into an empty vector one by one, Obtain a binary vector, add this vector to the quasi-retransmission frame, so as to realize the retransmission frame construction set is added to the quasi-retransmission frame, and obtain the retransmission frame;
7d)网络编码模块向多个接收端广播重传帧,等待接收端返回应答信息;7d) The network coding module broadcasts retransmission frames to multiple receivers, and waits for the receivers to return response information;
(8)再次更新动态列表:(8) Update the dynamic list again:
8a)存储子模块将所有链表的生存时间加1,将多个接收端中返回确认应答的接收端的用户序列号记录下来,并将记录的每一个用户序列号作为一个元素,这所有的元素组合成一个反馈用户集合;8a) The storage sub-module adds 1 to the survival time of all linked lists, records the user serial number of the receiving end that returns the confirmation response among multiple receiving ends, and takes each recorded user serial number as an element, and the combination of all elements into a collection of feedback users;
8b)判断反馈用户集合是否为空集,若是,则执行步骤7d);若不为空集,则执行步骤8c);8b) Determine whether the feedback user set is an empty set, if so, perform step 7d); if not an empty set, then perform step 8c);
8c)动态列表模块从重传帧构造集合中提取所有元素,对于每一个元素的值,逐一在存储子模块中索引出序列号与元素的值相同的动态链表,存储子模块对所有得到的动态链表上的所有节点,如果任意一个节点的值存在于反馈用户集合中,则将该节点删除,并且将该节点所属链表的节点个数减1;8c) The dynamic list module extracts all elements from the retransmission frame construction set, and for the value of each element, index the dynamic linked list whose serial number is the same as the value of the element one by one in the storage submodule, and store the dynamic linked list for all obtained dynamic links by the storage submodule For all nodes on , if the value of any node exists in the feedback user collection, delete the node, and reduce the number of nodes in the linked list to which the node belongs;
8d)动态列表模块删除节点个数为0的链表,将所有剩下链表的生存时间加1;8d) The dynamic list module deletes the linked list whose number of nodes is 0, and adds 1 to the survival time of all remaining linked lists;
8e)动态列表模块删除重传帧构造集合,网络编码模块删除重传帧构造集合、准重传帧以及重传帧,清空反馈用户集合,执行步骤6a);8e) The dynamic list module deletes the retransmission frame construction set, the network coding module deletes the retransmission frame construction set, the quasi-retransmission frame and the retransmission frame, clears the feedback user set, and executes step 6a);
(9)处理动态列表中的剩余信息:(9) Process the remaining information in the dynamic list:
9a)判断动态列表中是否为空,若为空,则执行步骤9l);否则执行步骤9b);9a) judge whether it is empty in the dynamic list, if empty, then execute step 91); otherwise execute step 9b);
9b)遍历存储子模块中所有的动态链表,寻找是否存在满足下式的动态链表:9b) traverse all dynamic linked lists in the storage submodule, and find whether there is a dynamic linked list satisfying the following formula:
其中,ψCRS表示重传帧构造集合,ψi表示存储子模块任意一个动态链表所有节点构成的集合;Among them, ψ CRS represents the retransmission frame construction set, and ψ i represents the set of all nodes in any dynamic linked list of the storage submodule;
9c)判断是否存满足9b)等式动态链表,若存在则执行9d);否则执行9e);9c) Judging whether there is a dynamic linked list that satisfies the equation 9b), if it exists, execute 9d); otherwise execute 9e);
9d)在所有满足9b)中等式的动态链表中选取节点个数最多的一个,如果节点个数最多的动态链表不止一个,则在所述的节点个数最多的动态链表中任意选取一个动态链表,按照如下公式对重传帧构造集合与目的用户集合进行赋值:9d) Select the one with the largest number of nodes among all the dynamic linked lists that satisfy the equation in 9b), if there is more than one dynamic linked list with the largest number of nodes, then arbitrarily select a dynamic linked list in the dynamic linked list with the largest number of nodes , assign values to the retransmission frame construction set and the destination user set according to the following formula:
ψCRS=ψCRS∪{MFj} ψCRS = ψCRS ∪{MF j }
ψCUD=ψCUD∪ψj ψ CUD = ψ CUD ∪ψ j
其中,ψCRS表示重传帧构造集合,MFj表示所选取的这个动态链表的序列号,ψCUD表示目的用户集合,ψj表示所选取的这个动态链表所有节点构成的集合,执行9b);Among them, ψ CRS represents the retransmission frame construction set, MF j represents the serial number of the selected dynamic linked list, ψ CUD represents the set of destination users, and ψ j represents the set of all nodes of the selected dynamic linked list, execute 9b);
9e)匹配子模块将重传帧构造集合发送至网络编码模块;9e) The matching submodule sends the retransmission frame construction set to the network coding module;
9f)网络编码模块从重传帧构造集合中取出所有元素,将这组元素的值送入映射子模块,对于每一个元素的值,逐一索引信息帧序列号与元素值相同的信息帧的存储位置,根据存储位置从重发缓存模块中逐一提取信息帧;9f) The network coding module takes out all the elements from the retransmission frame construction set, sends the value of this group of elements to the mapping sub-module, and for the value of each element, indexes one by one the storage location of the information frame whose serial number is the same as the element value , extracting information frames one by one from the retransmission cache module according to the storage location;
9g)网络编码模块将,帧长为信息帧内容部分的长度、每个比特都为0的帧作为初始重传帧,将得到的多个信息帧逐一与初始重传帧进行逐比特异或运算,得到准重传帧;9g) The network coding module takes the frame whose frame length is the length of the content part of the information frame and each bit is 0 as the initial retransmission frame, and performs a bit-by-bit exclusive OR operation on the obtained multiple information frames with the initial retransmission frame one by one , get the quasi-retransmission frame;
9h)网络编码模块在准重传帧之后添加重传帧构造集合,从而得到重传帧,并将重传帧暂时保存;网络编码模块向多个接收端广播重传帧,等待接收端返回应答信息;9h) The network coding module adds the retransmission frame construction set after the quasi-retransmission frame, thereby obtaining the retransmission frame, and temporarily saves the retransmission frame; the network coding module broadcasts the retransmission frame to multiple receivers, and waits for the receiver to return a response information;
9i)存储子模块将多个接收端中返回确认应答的若干个接收端的用户序列号记录下来,并将所述的若干个接收端序列号组合成一个反馈用户集合;9i) The storage sub-module records the user serial numbers of several receiving terminals that return confirmation responses among multiple receiving terminals, and combines the serial numbers of the several receiving terminals into a feedback user set;
9j)动态列表模块从重传帧构造集合中提取所有元素,对于每一个元素的值,逐一在存储子模块中索引出序列号与元素的值相同的动态链表,存储子模块对所有得到的动态链表上的所有节点,判断节点的值是否存在于反馈用户集合中,若任意一个节点的值存在于反馈用户集合中,则将该节点删除,并且将该节点所属链表的节点个数减1;9j) The dynamic list module extracts all elements from the retransmission frame construction set. For the value of each element, index the dynamic linked list with the same serial number as the value of the element in the storage sub-module one by one, and the storage sub-module compares all obtained dynamic linked lists. For all the nodes above, judge whether the value of the node exists in the feedback user set, if the value of any node exists in the feedback user set, delete the node, and reduce the number of nodes in the linked list to which the node belongs;
9k)动态列表模块删除重传帧构造集合,网络编码模块删除重传帧构造集合、准重传帧以及重传帧;清空反馈用户集合,执行步骤9a);9k) The dynamic list module deletes the retransmission frame construction set, the network coding module deletes the retransmission frame construction set, the quasi-retransmission frame and the retransmission frame; clears the feedback user set, and executes step 9a);
9l)结束;9l) end;
参照附图4,本发明的接收过程包括如下步骤:With reference to accompanying drawing 4, receiving process of the present invention comprises the following steps:
(10)传输前准备:(10) Preparation before transmission:
10a)清空信息缓存模块与译码模块中的缓存内容;10a) Empty the cache contents in the information cache module and the decoding module;
10b)判断是否存在需要接收的数据帧,若有,则执行步骤10c);否则,执行步骤12h);本发明只关心解决广播重传这一问题,属于无线通信中数据链路层的应用,链路层的上层需要接收多少个信息帧,本发明并不关心,链路层的上层若需要信息帧,则在信息缓存模块中提取,如果没有需要提取的信息帧,本系统将认为没有信息帧待接收;10b) judge whether there is a data frame that needs to be received, if so, then perform step 10c); otherwise, perform step 12h); the present invention only cares about solving the problem of broadcast retransmission, and belongs to the application of the data link layer in wireless communication, The present invention does not care about how many information frames the upper layer of the link layer needs to receive. If the upper layer of the link layer needs an information frame, it will be extracted in the information cache module. If there is no information frame to be extracted, the system will consider that there is no information frame frame to be received;
10c)接收子模块若未接收到数据帧,反馈模块向发送端发送否定应答,执行步骤10c);否则执行步骤10d);本发明只关心解决广播重传这一问题,属于无线通信中数据链路层的应用,若数据帧在信道译码的检验中检验通过,接收子模块才会接收到信道译码后的数据帧;若数据帧在信道译码的检验中检验不通过,则直接返回否定信息,无需通过本系统;10c) If the receiving sub-module does not receive the data frame, the feedback module sends a negative response to the sending end, and executes step 10c); otherwise, executes step 10d); the present invention only cares about solving the problem of broadcast retransmission, and belongs to the data link in wireless communication In the application of the channel layer, if the data frame passes the inspection of channel decoding, the receiving sub-module will receive the data frame after channel decoding; if the data frame fails the inspection of channel decoding, it will directly return Negative information, without going through the system;
10d)判断接收到的数据帧是测试帧、信息帧、重传帧;若接收到的是测试帧,执行步骤10e);若接收到的是信息帧,则执行步骤11a);若接收到的是重传帧,则执行步骤11c);10d) judging that the received data frame is a test frame, an information frame, and a retransmission frame; if it is a test frame received, perform step 10e); if it is an information frame, then perform step 11a); if received is a retransmission frame, then perform step 11c);
10e)反馈模块返回确认应答信息,并且返回单帧可等待时延以及可分配存储空间,执行步骤10c);单帧可等待时延根据接收端用户对于信息及时性的要求,在本系统运行之前由用户自行确定,单帧可等待时延以及可分配存储空间都作为固定值,存储于反馈模块中;10e) The feedback module returns the confirmation response information, and returns the single-frame waiting time delay and allocable storage space, and executes step 10c); the single-frame waiting time delay is based on the timeliness requirements of the receiving end user, before the system runs Determined by the user, the latency of a single frame and the allocatable storage space are stored in the feedback module as fixed values;
(11)接收数据帧:(11) Receive data frame:
11a)反馈模块向发送端返回确认应答,解析子模块从信息帧的帧头,提取信息帧的序列号,缓存模块判断是否有足够的存储空间,若有,则执行步骤11b);否则,缓存子模块释放存储的多个信息帧中序列号最小的一个信息帧的存储空间,解析子模块删除信息帧的序列号与存储地址的对应关系,执行步骤11b);11b)缓存子模块储存接收到的信息帧,解析子模块保存信息帧存储地址与序列号的对应关系,执行步骤10b);11a) The feedback module returns an acknowledgment response to the sending end, and the parsing submodule extracts the serial number of the information frame from the frame header of the information frame, and the cache module judges whether there is enough storage space, and if so, executes step 11b); otherwise, cache The submodule releases the storage space of an information frame with the smallest sequence number among the plurality of information frames stored, resolves the submodule to delete the correspondence between the sequence number and the storage address of the information frame, and executes step 11b); 11b) the cache submodule stores the received information frame, the parsing submodule saves the correspondence between the information frame storage address and the serial number, and executes step 10b);
11c)解析子模块读取重传帧帧头后的第一个比特以及之后的信息帧长度个比特,将所读取的内容作为准恢复帧;11c) The parsing submodule reads the first bit after the frame header of the retransmission frame and the length bits of the subsequent information frame, and uses the read content as a quasi-recovery frame;
11d)解析子模块读取信息帧长度个比特之后所有比特,并将所读取的内容作为重传帧构造集合,将重传帧构造集合与准恢复帧发送至译码模块,执行步骤12a);11d) The parsing submodule reads all the bits after the information frame length bits, and uses the read content as a retransmission frame construction set, sends the retransmission frame construction set and the quasi-recovery frame to the decoding module, and performs step 12a) ;
(12)重传帧译码:(12) Retransmission frame decoding:
12a)译码模块将两个空集作为译码集合与目的集合,译码模块将提取重传帧构造集合中所有元素的值,对于每一个元素的值,若信息缓存模块中存在信息帧序列号与元素的值相同的信息帧,则将这个信息帧序列号作为一个元素加入译码集合中,否则将这个信息帧序列号作为一个元素加入目的集合中;12a) The decoding module uses two empty sets as the decoding set and the target set. The decoding module will extract the values of all elements in the retransmission frame construction set. For the value of each element, if there is an information frame sequence in the information buffer module If there is an information frame with the same number as the value of the element, add this information frame sequence number as an element to the decoding set, otherwise add this information frame sequence number as an element to the destination set;
12b)判断目的集合的元素个数,若元素个数为0,反馈模块向发送端返回确认应答,执行步骤12g);若元素个数大于等于两个,则调用反馈模块向发送端返回否定应答,执行步骤12g);若元素个数仅为1个,则调用反馈模块向发送端返回确认应答,执行步骤12c);12b) Determine the number of elements in the destination set, if the number of elements is 0, the feedback module returns a confirmation response to the sending end, and execute step 12g); if the number of elements is greater than or equal to two, call the feedback module to return a negative response to the sending end , execute step 12g); if the number of elements is only 1, call the feedback module to return a confirmation response to the sender, and execute step 12c);
12c)译码模块从译码集合中取出所有元素,将这组元素的值送入解析子模块,对于每一个元素的值,逐一索引信息帧序列号与元素值相同的信息帧的存储位置,根据存储位置从缓存子模块中逐一提取信息帧;12c) The decoding module takes out all the elements from the decoding set, sends the value of this group of elements into the parsing sub-module, and for the value of each element, indexes the storage locations of the information frames whose serial numbers are the same as the element values one by one, Extract information frames one by one from the cache sub-module according to the storage location;
12d)将提取的多个信息帧逐一与准恢复帧进行逐比特异或运算,得到恢复帧,将目的集合中唯一的元素作为恢复帧的序列号;12d) performing bit-by-bit XOR operation on the extracted multiple information frames one by one with the quasi-recovery frame to obtain the recovery frame, and using the unique element in the target set as the serial number of the recovery frame;
12e)缓存模块判断是否有足够的存储空间,若有则执行步骤12f);否则缓存子模块将存储的多个信息帧中序列号最小的一个信息帧的存储空间释放,解析子模块将序列号最小的信息帧的序列号与存储地址的对应关系删除,执行步骤12f);12e) The cache module judges whether there is enough storage space, and if so, executes step 12f); otherwise, the cache submodule releases the storage space of an information frame with the smallest sequence number among the stored information frames, and the resolution submodule releases the sequence number The serial number of the smallest information frame and the corresponding relationship between the storage address are deleted, and step 12f is performed);
12f)缓存子模块储存得到的恢复帧,解析子模块保存恢复帧的序列号与恢复帧的存储地址的对应关系;12f) The cache sub-module stores the recovery frame obtained, and the parsing sub-module saves the serial number of the recovery frame and the corresponding relationship between the storage address of the recovery frame;
12g)删除接收端各模块中存在的重传帧构造集合、准恢复帧、译码集合、目的集合以及恢复帧,执行步骤10b);12g) Delete the retransmission frame construction set, quasi-recovery frame, decoding set, purpose set and recovery frame existing in each module of the receiving end, and perform step 10b);
12h)结束。12h) end.
Claims (6)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310054287.1A CN103107875B (en) | 2013-01-31 | 2013-01-31 | Broadcast retransmission system based on network coding and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310054287.1A CN103107875B (en) | 2013-01-31 | 2013-01-31 | Broadcast retransmission system based on network coding and method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103107875A CN103107875A (en) | 2013-05-15 |
CN103107875B true CN103107875B (en) | 2015-07-15 |
Family
ID=48315463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310054287.1A Expired - Fee Related CN103107875B (en) | 2013-01-31 | 2013-01-31 | Broadcast retransmission system based on network coding and method thereof |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103107875B (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016067076A1 (en) * | 2014-10-29 | 2016-05-06 | Pismo Labs Technology Ltd. | Methods and systems for transmitting broadcast data |
CN106888073A (en) * | 2017-01-06 | 2017-06-23 | 国网新疆电力公司电力科学研究院 | Transmission line of electricity wireless network instructs transmission method |
CN108763291B (en) * | 2018-04-16 | 2021-04-30 | 北京奇艺世纪科技有限公司 | Data management method and device and electronic equipment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714915A (en) * | 2009-11-02 | 2010-05-26 | 清华大学 | Data retransmission method and system |
CN102013966A (en) * | 2010-11-30 | 2011-04-13 | 北京星河亮点通信软件有限责任公司 | Data packet retransmission method based on network coding |
CN102497248A (en) * | 2011-11-30 | 2012-06-13 | 电子科技大学 | Data retransmission method based on network coding |
-
2013
- 2013-01-31 CN CN201310054287.1A patent/CN103107875B/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714915A (en) * | 2009-11-02 | 2010-05-26 | 清华大学 | Data retransmission method and system |
CN102013966A (en) * | 2010-11-30 | 2011-04-13 | 北京星河亮点通信软件有限责任公司 | Data packet retransmission method based on network coding |
CN102497248A (en) * | 2011-11-30 | 2012-06-13 | 电子科技大学 | Data retransmission method based on network coding |
Non-Patent Citations (2)
Title |
---|
Network Coding based E-MBS Retransmission;Guosen Yue,Xiaodong Wang;《IEEE 802.16 Broadband Wireless Access Working Group》;20091231;全文 * |
Optional retransmission schemes for LTE-A MBMS;3GPP;《3GPP》;20090116;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103107875A (en) | 2013-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100359839C (en) | Method for minimizing feedback responses in ARQ protocols | |
US9432251B2 (en) | Enhanced acknowledgement and retransmission mechanism | |
CN100593313C (en) | Method and system for dynamic aggregation in wireless networks | |
CN101714915B (en) | Data retransmission method and system | |
CN102123471B (en) | Stub network of Internet of things and seepage data transmission method thereof | |
CN103250463A (en) | Subset coding for communication systems | |
CN102684856B (en) | A kind of data repeating method and device | |
EP1944925A1 (en) | Group communication in a mobile ad-hoc network | |
CN103051424B (en) | A kind of radio transmitting method of unequal error protection fountain codes | |
CN107147471A (en) | A data transmission optimization method based on linear network coding | |
CN109714130A (en) | A kind of document transmission method based on fountain codes | |
CN105338570A (en) | Wireless sensor network data traceablility method based on pseudorandom sequence | |
CN101969668A (en) | Data transmission method for wireless cooperative relay system | |
CN102447530A (en) | Data frame aggregation method with fault-tolerant function | |
CN103200088A (en) | Improved type MMRS fixed relay node selection signal transmission method based on fountain encoding | |
CN103107875B (en) | Broadcast retransmission system based on network coding and method thereof | |
Apavatjrut et al. | Toward increasing packet diversity for relaying LT fountain codes in wireless sensor networks | |
CN107426101B (en) | Quantum cluster fragment transmission method based on layering | |
CN102652414B (en) | Forwarding a packet in a sensor personal area network | |
CN105391766B (en) | A kind of DTN network data beam compression methods towards end to end performance | |
Garrido et al. | Exploiting sparse coding: A sliding window enhancement of a random linear network coding scheme | |
CN109982405B (en) | Opportunistic routing mode of inter-session network coding based on multiple data streams | |
CN107615810A (en) | Header compression system and method for online network code | |
CN114900273B (en) | A continuous reliable transmission method based on covering window and non-uniform sampling fountain code | |
Ju et al. | Easipc: A packet compression mechanism for embedded WSN |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150715 Termination date: 20200131 |