CN109525368B - 基于线性网络编码的混合传输方法、电子设备和存储介质 - Google Patents

基于线性网络编码的混合传输方法、电子设备和存储介质 Download PDF

Info

Publication number
CN109525368B
CN109525368B CN201811423125.XA CN201811423125A CN109525368B CN 109525368 B CN109525368 B CN 109525368B CN 201811423125 A CN201811423125 A CN 201811423125A CN 109525368 B CN109525368 B CN 109525368B
Authority
CN
China
Prior art keywords
data packets
original data
coding
packet
data packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811423125.XA
Other languages
English (en)
Other versions
CN109525368A (zh
Inventor
彭雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Zhongxing Newstart Technology Co ltd
Original Assignee
Guangdong Zhongxing Newstart Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Zhongxing Newstart Technology Co ltd filed Critical Guangdong Zhongxing Newstart Technology Co ltd
Priority to CN201811423125.XA priority Critical patent/CN109525368B/zh
Publication of CN109525368A publication Critical patent/CN109525368A/zh
Application granted granted Critical
Publication of CN109525368B publication Critical patent/CN109525368B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种基于线性网络编码的混合传输方法、电子设备和存储介质,涉及网络编码技术领域,包括获取当前分组中的n个原始数据包,将n个原始数据包发送给接收端;当n个原始数据包发送完毕时,接着将发送过程中计算得到m个编码数据包发送给接收端,其中,m≤n;当n个原始数据包中有x个丢失时,接收端根据预设编码系数矩阵、接收到的编码数据包和原始数据包,还原得到x个丢失数据包,其中,x<m,这样整体上可以增强数据传输的可靠性,同时编码数据和原始数据混合传输的特性可以大大减少编码解码运算时间,预设编码系数矩阵可以降低解码失败率、减少传输负载。

Description

基于线性网络编码的混合传输方法、电子设备和存储介质
技术领域
本发明涉及网络编码技术领域,尤其是涉及一种基于线性网络编码的混合传输方法、电子设备和存储介质。
背景技术
网络编码技术是信息论领域与网络传输工程实践交叉结合产生的一项新技术。网络编码技术通过在传输节点上对传输信息进行某种编码,从而实现链路的高吞吐率、可靠性传输等。
现有的网络编码传输应用中,常通过采用随机编码系数进而传输编码数据包的方式,来实现还原原始数据包的目的,但上述方式解码失败率较高,且时延较长。
发明内容
有鉴于此,本发明的目的在于提供基于线性网络编码的混合传输方法、电子设备和存储介质,在保证数据传输可靠的基础上,加快编解码的速度,降低解码失败率,并缩短解码时延。
第一方面,本发明实施例提供了一种基于线性网络编码的混合传输方法,应用于发送端,包括:
获取当前分组中的n个原始数据包,将所述n个原始数据包发送给接收端;
当所述n个原始数据包发送完毕时,根据所述n个原始数据包和预设编码系数矩阵,计算得到m个编码数据包,其中,m≤n;
将所述m个编码数据包发送给所述接收端,以使所述接收端根据所述预设编码系数矩阵、接收到的编码数据包和原始数据包,还原得到所述n个原始数据包。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述预设编码系数矩阵中的编码系数固定、所述预设编码系数矩阵中任意两行组成的向量组线性无关且所述预设编码系数矩阵中任意j行j列交叉线上的元素构成的子矩阵为非奇异矩阵,其中,j<n。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述将所述m个编码数据包发送给所述接收端,以使所述接收端根据所述预设编码系数矩阵和接收到的编码数据包和原始数据包,还原得到所述n个原始数据包,包括:
将所述m个编码数据包发送给所述接收端,在所述原始数据包未在预设时间内都被接收情况下,以使所述接收端根据所述预设编码系数矩阵和接收到的原始数据包和编码数据包构建与丢失的原始数据包相关的高斯方程组,计算得出所述丢失的原始数据包,还原所述丢失的原始数据包。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述接收端接收到的原始数据包和编码数据包的个数大于且等于n。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述将所述m个编码数据包发送给所述接收端,在所述原始数据包未在预设时间内都被接收情况下,以使所述接收端根据所述预设编码系数矩阵和接收到的原始数据包和编码数据包构建与丢失的原始数据包相关的高斯方程组,计算得出所述丢失的原始数据包,还原所述丢失的原始数据包包括:
将所述m个编码数据包发送给所述接收端,在所述原始数据包丢失或接收超时情况下,以使所述接收端根据所述预设编码系数矩阵和接收到的原始数据包和编码数据包,计算各个所述接收到的原始数据包在m个编码数据包中的m个解码分量;根据所述m个解码分量对应的解码和与编码数据包构建与丢失的原始数据包相关的高斯方程组,计算得出所述丢失的原始数据包,还原所述丢失的原始数据包。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述根据所述n个原始数据包和预设编码系数矩阵,计算得到m个编码数据包,包括重复执行以下处理,直至分组中的所述原始数据包都被遍历:
根据编码系数矩阵计算第i个原始数据包分别在m个编码数据包中的m个解码分量;
将所述m个解码分量进行累加计算,得到所述第i个原始数据包对应的解码和
Figure BDA0001880103880000031
根据所述解码和
Figure BDA0001880103880000032
计算得到编码数据包
Figure BDA0001880103880000033
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,在所述获取当前分组中的n个原始数据包之前,还包括:根据所述原始数据包的序列号将所述原始数据包划分到相应分组中。
结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,所述根据所述解码和
Figure BDA0001880103880000034
计算得到所述编码数据包Qi,包括:
将所述解码和
Figure BDA0001880103880000035
累加计算得到所述编码数据包Qi,其中,1≤a≤i。
第二方面,本发明实施例还提供一种电子设备,所述电子设备包括:
存储介质;
处理器;以及
基于线性网络编码的混合传输装置,所述装置存储于所述存储介质中并包括由所述处理器执行的软件功能模块,所述装置包括:
获取模块,用于获取当前分组中的n个原始数据包,将所述n个原始数据包发送给接收端;
计算模块,用于当所述n个原始数据包发送完毕时,根据所述n个原始数据包和预设编码系数矩阵,计算得到m个编码数据包,其中,m≤n;
发送模块,用于将所述m个编码数据包发送给所述接收端,以使所述接收端根据所述预设编码系数矩阵、接收到的编码数据包和原始数据包,还原得到所述n个原始数据包。
第三方面,本发明实施例还提供一种存储介质装置,所述存储介质中存储有计算机程序,所述计算机程序被执行时实现如上所述的基于线性网络编码的混合传输方法。
本发明提供了一种基于线性网络编码的混合传输方法、电子设备和存储介质,通过采用固定编码系数矩阵,并非随机编码系数发生器,可以加速编解码速度,同时降低解码失败几率,并减少传输数据量;通过原始数据和编码数据混合传输,并非纯粹编码数据传输,进一步的加快编解码速度,同时降低解码失败几率;
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方法,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为传统随机线性网络编码过程示意图;
图2为本发明实施例提供的固定编码系数的线性网络编码混合传输过程示意图;
图3为本发明实施例提供的线性网络编码混合传输方法的应用场景示意图;
图4为本发明实施例提供的一种基于线性网络编码的混合传输方法流程图;
图5为本发明实施例提供的发送端编码和发送流程示意图;
图6为本发明实施例提供的接收端解码流程示意图;
图7为本发明实施例提供的网络编码混合传输接收时序示意图;
图8为本发明实施例提供的另一种基于线性网络编码的混合传输方法流程图;
图9为本发明实施例提供的用于实现上述基于线性网络编码的混合传输方法的电子设备的方框示意图。
图标:100-电子设备;110-存储介质;120-处理器;200-基于线性网络编码的混合传输装置;210-获取模块;220-计算模块;230-发送模块。
具体实施方式
为使本发明实施例的目的、技术方法和优点更加清楚,下面将结合附图对本发明的技术方法进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,网络编码技术主要可分为两大类:流间网络编码和流内网络编码。本发明实施例主要涉及的网络编码技术是流内网络编码,下述网络编码特指流内网络编码技术。
流内网络编码则是相同流内的数据包在源节点进行随机线性网络编码,然后直接在目的节点通过高斯消元法解码出原始数据包,此种编码方式可以提高端到端传输可靠性。线性网络编码具体实施步骤为:每一次将n个原始数据包通过随机线性组合的方式在源节点形成一个编码数据包,继而传输给目标节点,而目标节点至少要收到n个线性无关的编码数据包才能解码出原始的n个数据包,原理和解n个n元方程构成的方程组类似。由于接收端只要接收任意n个线性无关的编码数据包就可实现解码,所以这种传输方式在一些应用场景(例如无线多跳网络)下,具有更高效的传输可靠性保证。
以图1为例说明网络编码过程,节点A发送数据包到节点B,在节点A上每5个连续的数据包为一个编码组,一个编码组通过随机线性网络编码形成一个编码包,一共生成5个编码包,这5个编码包被节点B接收后,可以通过高斯消元法计算得出5个A要发送的原始数据包,从而完成数据的传输。编码传输的可靠性体现在,如果在节点A,同一个编码组生成7个编码包而不是5个,那么接收节点B接收到同一个编码组内任意5个编码包就可以完成该编码组内数据包的传输。
其中,随机线性网络编码过程为在GF(28)选取一组非零系数
Figure BDA0001880103880000061
与数据包P1,P2,P3,P4,P5通过有限域四则运算形成编码包Q1
现有的上述网络编码技术虽然可以实现提高数据的传输可靠性,但缺点也比较多。
第一,编码过程中编码系数
Figure BDA0001880103880000062
选取为有限域内的随机选取,因此可能出现同一个编码组选了两组线性相关的编码系数,造成接收端无法完成高斯消元,从而解码失败,无法恢复出原始数据包。
第二,现有网络编码技术中编码包的形成存在一定的编码时延,该编码包的编码时延大小与编码组中数据包的个数正相关。以编码包
Figure BDA0001880103880000071
为例,该编码包在发送端生成的前提条件是接收端必须有P1,P2,P3,P4,P5 5个数据包,如果只有前4个数据包,那么接收需要等待第5个数据包到达后才能形成一个编码包并发送。这种编码等待时延在编码组内数据包个数非常多的时候会增加,在发送端发送流量非常少的时候变得不可用(例如发送端发送了P1,P2,P3,P4后一个小时才发送P5,那么相应编码包的发送也要等上一个小时,从而造成接收端P1,P2,P3,P4要延缓一个小时才能接收)。
第三,现有网络编码技术中接收端根据编码包解码原始数据包还需要编码系数的信息,即每一组编码包使用了什么编码系数。这些信息需要发送端发送到接收端,从而造成额外的数据传输开销,这些开销在流量费用敏感型网络中是昂贵的。
第四,现有网络编码技术中编码包的解码还存在一定的解码时延,以图1所示为例,编码包的高斯消元法运算的前提是接收端至少到5个及以上编码数据包,这会造成原始数据包的接收处理时延增加。
第五,现有网络编码技术中编码解码乘除法运算量问题。以
Figure BDA0001880103880000072
为例,数据包P1中的每一字节都需与系数
Figure BDA0001880103880000073
做一次乘法运算,同理解码的时候,P1的每一个字节还需要与系数
Figure BDA0001880103880000074
做一次除法运算,这样对于接收发送端的计算力是有一定要求的。
第六,现有网络编码技术中解码运算对接收节点计算力的要求,接收端每接收一组编码包的时候,需要运行一次高斯消元算法,计算量较大。
基于此,本发明实施例提供的一种基于线性网络编码的混合传输方法、电子设备和存储介质,可以在保证数据传输可靠的基础上,加快编解码的速度,降低解码失败率,并缩短解码时延。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种基于线性网络编码的混合传输方法进行详细介绍;
针对上述缺点1,本发明实施例是通过固定编码系数的方式解决这个问题,即编码算法运行开始前,通过程序生成或者预定义一个编码系数组成的矩阵,矩阵内每一行为一个编码系数,且矩阵任意两行编码系数都是线性无关的。本发明采用预定义固定系数矩阵,可以避免随机选取到线性相关的编码系数,从而提升解码成功率,杜绝随机线性网络编码中由于随机选取编码系数造成的解码失败可能性;
针对上述缺点2,本发明实施例则是通过原始数据包和编码包混合传输的方式来解决这个问题,即原始数据包的发送流程不变,在每一组原始数据包传输完成之后,发送端再发送一定数量的编码包来保证这个编码组内数据包的可靠传输。
针对上述缺点3,本发明实施例采用的固定编码系数的线性网络编码方式可以解决该问题,既然是固定编码系数,接收端可以直接从预定义的固定编码系数矩阵中获知编码组的每个编码包使用的是何种编码系数。
针对上述缺点4,本发明实施例提供的原始数据包和编码包混合传输方式大幅减少这种解码时延,在这种编码传输中方式,编码包仅是保证原始数据包的可靠传输,不会干扰原始数据包的传输,编码包仅在部分原始数据包传输丢失后才起到恢复丢失数据包的作用。所以在无丢包情况下,本发明的传输方法不存在解码处理时延;在丢包率较低时,仅对丢失的那些数据包而言才会有一定的解码处理时延,传输可靠性保证的同时效率大幅提升。
针对上述缺点5,本发明实施例采用查表法来规避有限域四则运算带来的编解码运算量,即将有限四则中所有乘法运算结果与除法运算结果存储于二维数组中,计算
Figure BDA0001880103880000091
时直接根据P1
Figure BDA0001880103880000092
查表得出运算结果,这样所有的字节乘法除法运算就变成了直接读取内存的操作,速度大幅提升。
针对上述缺点6,本发明实施例的原始数据包和编码包混合传输方式可以减少这种解码运算,混合传输方式的解码过程只会发送在编码分组内有原始数据包丢失的情况下,并不会在处理所有编码分组的时候执行解码算法,这样可以减少接收端的计算量。
此外,本发明在编码包生成时可以做到边发送原始数据包边编码,当一个编码组的原始数据包发送完毕时,所有对应编码包编码计算已完成,从而做到原始数据包发送到编码数据包发送的无缝对接。
本发明实施例提供的基于固定编码系数的线性网络编码混合传输方法,通过传输一定量的冗余数据包实现对传输可靠性的提升,其中冗余数据包的数量可以根据链路质量动态配置,当链路丢包率较高时,提升冗余数据包的数量。
图2所展示的编码方法是本发明实施例的核心,该方法与图1所展示的随机线性网络编码方法有着明显的外在流程区别,且还有着内在处理性能(数据传输时延、编解码运算负载)上区别。
当计算一个编码包Qi时,编码包系数
Figure BDA0001880103880000093
是从预先生成的固定预设编码系数矩阵中直接读取的,即当生成第一个编码包时使用固定系数矩阵第一行,生成第i个编码包时使用固定系数矩阵第i行,依次类推,且图2中所涉及的运算均为有限域内的四则运算。
图3为本发明实施例提供的基于线性网络编码的混合传输方法的一般应用场景示意图。
参照图3,根据数据包的消息格式分组,即根据消息头部的序列号进行分组,应用本发明实施例提供的混合传输方法,将数据包从发送端的应用层经传输层、网络层,发送到接收端的应用层,实现发送端与接收端之间的数据传输;
这里,对本发明实施例提供的基于线性网络编码的混合传输方法进行详细说明,参照图8,应用于发送端,发送端为执行主体,包括以下步骤:
步骤S801,获取当前分组中的n个原始数据包,将n个原始数据包发送给接收端;
这里,在步骤S801之前,还包括:根据原始数据包的序列号将原始数据包划分到相应分组中。
步骤S802,当n个原始数据包发送完毕时,根据n个原始数据包和预设编码系数矩阵,计算得到m个编码数据包,其中,m≤n;
在该编码传输方法中,每连续n个数据包为一组,简称为一个分组;每次处理一个分组时候,先传输n个原始数据包,然后再传输m个对应的编码数据包。且隧道内的所有数据包是按发送顺序依次编号的,为了标识编码包所对应分组,编码包的编号为该分组中序号最大数据包所对应的编号。
步骤S803,将m个编码数据包发送给接收端,以使接收端根据预设编码系数矩阵和接收到的编码数据包和原始数据包,还原得到n个原始数据包,其中,接收端接收到的原始数据包和编码数据包的个数大于且等于n。
这里,步骤S802、步骤S803还包括:
当n个原始数据包发送完毕时,接着将发送过程中计算得到m个编码数据包发送给接收端,其中,m≤n;
当n个原始数据包中有x个丢失时,接收端根据预设编码系数矩阵、接收到的编码数据包和原始数据包,还原得到x个丢失数据包,其中,x<m,这样整体上可以增强数据传输的可靠性,同时编码数据和原始数据混合传输的特性可以大大减少编码解码运算时间,预设编码系数矩阵可以降低解码失败率、减少传输负载。
进一步的,预设编码系数矩阵中的编码系数固定,即生成每个分组对应的编码包时,依次按行顺序从固定系数矩阵读取编码系数;预设编码系数矩阵中任意两行组成的向量组线性无关且预设编码系数矩阵中任意j行j列交叉线上的元素构成的子矩阵为非奇异矩阵,其中,j<n。
其中,上述步骤S803发送在原始数据包未在预设时间内都被接收情况下,包括在原始数据包丢失或接收超时情况下;在上述情况下以使接收端根据预设编码系数矩阵和接收到的原始数据包和编码数据包,计算各个接收到的原始数据包在m个编码数据包中的m个解码分量;根据m个解码分量对应的解码和与编码数据包构建与丢失的原始数据包相关的高斯方程组,计算得出丢失的原始数据包,还原丢失的原始数据包。
进一步的,步骤S802包括重复执行以下处理,直至分组中的原始数据包都被遍历:
根据编码系数矩阵计算第i个原始数据包分别在m个编码数据包中的m个解码分量;将m个解码分量进行累加计算,得到第i个原始数据包对应的解码和
Figure BDA0001880103880000111
根据解码和
Figure BDA0001880103880000112
计算得到编码数据包Qi
其中,将解码和
Figure BDA0001880103880000113
累加计算得到编码数据包Qi,其中,1≤a≤i。
图4示出了本发明实施例中的采用线性网络编码的另一种混合传输传输的方法流程图,该流程图包括如下步骤:
步骤S401,发送端将发送数据包按序列号依次划分到不同编码组,每个分组内包含n个原始数据包。
步骤S402,依次发送分组内的原始数据包,并根据预设编码系数矩阵依次计算每一个原始数据包在m个编码数据包中的编码分量;
具体实施过程中涉及到预设编码系数矩阵预定义,以及数据包与编码系数有限域内的乘法除法运算。其中Mn×n为预设编码系数矩阵,如式(1)所示,对应图2中编码系数
Figure BDA0001880103880000121
构成的矩阵,该矩阵任意两行构成的向量组是线性无关的,且任意i行(i<n)i列交叉元素组成的子矩阵是非奇异矩阵。对应图2,以数据包P1为例,P1在m个编码数据包中的编码分量依次为
Figure BDA0001880103880000122
发送过程中依次累加计算出的编码和就分别为
Figure BDA0001880103880000124
Figure BDA0001880103880000123
步骤S403,当分组内的n个原始数据包发送完毕后,依次发送上一步累加得出的m个编码数据包Q1,Q2,...,Qm
步骤S404,接收端接收分组内原始数据包和编码数据包,并在接收的过程中根据预设编码系数矩阵依次计算每一个接收的原始数据包在m个编码数据包中的解码分量,并依次累加计算对应的解码和
Figure BDA0001880103880000125
这里,采用边发送分组内的原始数据包边计算编码包的方式,即分组内的原始数据包发送完毕时,相应分组对应的编码数据包计算完毕。
步骤S405,分组内有数据包丢失,则根据上一步计算的解码和
Figure BDA0001880103880000126
与编码数据包Q1,Q2,...,Qm构建与丢失数据包相关的高斯方程组,并解方程得出丢失数据包;
具体实施过程中,当有数据包丢失或者数据包接收超时时,根据步骤S404计算的编码和
Figure BDA0001880103880000127
与接收的编码包Q1,Q2,...,Qm来构建丢失数据包或者超时数据包的方程组,然后运行高斯消元法,得出丢失数据包或者超时数据包。
原始数据包与编码数据包的混合传输最小化对原数据传输流程影响。
在接收端,接收端先接收的是分组内的原始数据包,然后再接收分组内的编码数据包;编码包的存在只是为了恢复分组内的丢失数据包和超时数据包,当没有数据丢失发生时,接收端不会运行高斯消元解码运算;这样做的好处:一是减少接收端解码运算量;二是减少随机线性网络编码造成的解码时延。
在发送端,原始数据包的发送仍是按照原来的流程进行,本发明实施例只在每发送n个原始数据包之后发送m个编码数据包,且编码包的形成不必等待同一个分组内的所有数据包到齐之后再进行(根据图4的描述),实现了网络编码与现有数据传输流程的无缝对接。
在其他随机线性网络编码传输方法中,都是采用编码包来直接代替原始数据包进行传输,每一个分组内的第一个编码包的发送必须在分组内的所有原始数据包到齐之后才能发送,这样会造成很明显的原始数据包传输时延;同理接收端一样存在弊端,由于所有的数据都是编码数据,接收端需要频繁运行解码算法(高斯消元),而且必须等到至少收到n个编码包之后解码算法才会有输出结果。
原始数据包和编码包混合传输抗丢失性。发送端每次先发送n个原始数据包,之后再发送m个对应的编码数据包(m<=n),发送数据冗余比例(m/n)%;可以保证一定比例内((m/n)%)的数据包丢失,可以通过编码包恢复出来。
当n个原始数据包有丢失(任意序列号数据包的丢失)时,只要接收端接收的同一分组内原始数据包和编码包个数大于等于n,接收端就可以恢复出丢失的数据包。所以,当传输链路丢包率小于冗余比例(m/n)%时,本发明实施例可以恢复出丢失数据包,从而降低丢包率;
图5所描述的是发送端发送原始数据包和编码数据包的具体实施过程。
步骤S501,初始化分组内的原始数据包计数i;
步骤S502,判断分组内的已处理原始数据包计数i是否小于等于n;如果是则进入步骤S503,如果不是则进入步骤S507;
步骤S503,从发送队列中获取一个待发送原始数据包Pi
步骤S504,初始化分组内的编码数据包计数j,并初始化m个待形成的编码包Q1,Q2,...,Qm为0;
其中,本发明实施例可边接收分组内的原始数据包边构建与丢失数据包的相关的线性方程组,即当分组接收超时时,可以立即进行解方程组的操作。
步骤S505,判断分组内的已处理编码数据包计数j是否小于等于m,
如果是则进入S506,如果不是则发送数据包Pi并增加计数i,之后进入步骤S502;
步骤S506,计算
Figure BDA0001880103880000141
并将其结果累加到对应的编码包Qj中;
步骤S507,m个编码数据包Q1,Q2,...,Qm计算完毕;
其中,当在超时时间内有原始数据包丢失,且接收端的同一分组内编码数据包和原始数据包个数和大于等于n(n为分组内原始数据包个数),接收端才需运行高斯消元法;其他情况(例如没有原始数据包丢失)接收端是不需要运行高斯消元法;当有分组内原始数据包丢失时,丢失的任意序列号原始数据包可以通过编码数据包高斯消元恢复出来。
步骤S508,依此发送m个编码数据包Q1,Q2,...,Qm
图6所描述的是接收端接收原始数据包和编码数据包,并恢复丢失数据包的具体实施过程。
步骤S601,接收一个数据包Pi
步骤S602,读取数据包头部标识信息,判断数据包是否为编码数据包;如果是,进入步骤S605;如果不是,进入步骤S603;
步骤S603,根据原始数据包的序列号判断数据包所属分组k,计数该分组的原始数据包接收数量kraw
步骤S604,计算编码分量
Figure BDA0001880103880000151
并将其结果累加到对应编码和
Figure BDA0001880103880000152
中;
步骤S605,接收一个编码数据包Qkj,判断该包所属分组k,并计数该分组编码包接收数量kcoded
步骤S606,当kraw+kcoded>=n且kraw<n,即当有原始数据包丢失且接收端具有构建与丢失数据包相关的线性方程组时,进入步骤S607;否则,进入到步骤S601接收下一个数据包;
步骤S607,
Figure BDA0001880103880000153
构建出与丢失数据包相关的线性方程组,并用高斯消元运算,解码出丢失数据包。
原始数据包和编码包混合传输降低网络时延抖动。当把数据包丢失理解为数据包超时时,本发明实施例还具有降低网络时延抖动的效果。示例图7描述该效果,其中P表示原始数据包,C表示编码数据包,每个分组5个原始数据包,每个分组生成两个编码包,图7描述上述7个数据包在接收端的到达时序。发送端是按照P1、P2、P3、P4、P5顺序等间距发送,当由于某种原因,数据包P5比其他数据包具有更高的传输时延,P4与P5之间的时间间距变大,那么网络就产生了时延抖动;但是如果接收端在T1时刻接收到了一个编码数据包C1,那么接收端可以根据P1、P2、P3、P4、C1构成的线性方程组在T1时刻解码出数据包P5,这样P4与P5之间的时间间距就变成了P4与C1之间的时间间距,所以该编码方法具有降低网络时延抖动的效果。
进一步地,如图9所示,是本发明实施例提供的用于实现所述基于线性网络编码的混合传输方法的电子设备100的示意图。本实施例中,所述电子设备100可以是,但不限于,个人电脑(Personal Computer,PC)、笔记本电脑、监控设备、服务器等具备基于线性网络编码的混合传输及处理能力的计算机设备。
所述电子设备100还包括基于线性网络编码的混合传输装置200、存储介质110以及处理器120。本发明较佳实施例中,基于线性网络编码的混合传输装置200包括至少一个可以软件或固件(Firmware)的形式存储于所述存储介质110中或固化在所述电子设备100的操作系统(Operating System,OS)中的软件功能模块。所述处理器120用于执行所述存储介质110中存储的可执行软件模块,例如,所述基于线性网络编码的混合传输装置200所包括的软件功能模块及计算机程序等。本实施例中,所述基于线性网络编码的混合传输装置200也可以集成于所述操作系统中,作为所述操作系统的一部分。具体地,所述基于线性网络编码的混合传输装置200包括:
获取模块210,用于获取当前分组中的n个原始数据包,将所述n个原始数据包发送给接收端;
计算模块220,用于当所述n个原始数据包发送完毕时,根据所述n个原始数据包和预设编码系数矩阵,计算得到m个编码数据包,其中,m≤n;
发送模块230,用于将所述m个编码数据包发送给所述接收端,以使所述接收端根据所述预设编码系数矩阵和接收到的编码数据包和原始数据包,还原得到所述n个原始数据包。
可以理解的是,本实施例中的各功能模块的具体操作方法可参照上述方法实施例中相应步骤的详细描述,在此不再重复赘述。
综上所述,本发明实施例提供一种基于线性网络编码的混合传输方法、电子设备及可读存储介质,采用的是固定编码系数,并非随机编码系数发生器,可以加速编解码速度,同时降低解码失败几率,并减少传输数据量;通过原始数据和编码数据混合传输,并非纯粹编码数据传输,进一步的加快编解码速度,同时降低解码失败几率。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
需要说明的是,在本文中,术语"包括"、"包含"或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其它的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

Claims (9)

1.一种基于线性网络编码的混合传输方法,其特征在于,应用于发送端,包括:
获取当前分组中的n个原始数据包,将所述n个原始数据包发送给接收端;
当所述n个原始数据包发送完毕时,根据所述n个原始数据包和预设编码系数矩阵,计算得到m个编码数据包,其中,m≤n;
将所述m个编码数据包发送给所述接收端,以使所述接收端根据所述预设编码系数矩阵、接收到的编码数据包和原始数据包,还原得到所述n个原始数据包;
所述预设编码系数矩阵中的编码系数固定、所述预设编码系数矩阵中任意两行组成的向量组线性无关且所述预设编码系数矩阵中任意j行j列交叉线上的元素构成的子矩阵为非奇异矩阵,其中,j<n;
当生成每个分组对应的编码包时,依次按行顺序从固定系数矩阵读取所述编码系数。
2.根据权利要求1所述的基于线性网络编码的混合传输方法,其特征在于,所述将所述m个编码数据包发送给所述接收端,以使所述接收端根据所述预设编码系数矩阵和接收到的编码数据包和原始数据包,还原得到所述n个原始数据包,包括:
将所述m个编码数据包发送给所述接收端,在所述原始数据包未在预设时间内都被接收情况下,以使所述接收端根据所述预设编码系数矩阵和接收到的原始数据包和编码数据包构建与丢失的原始数据包相关的高斯方程组,计算得出所述丢失的原始数据包,还原所述丢失的原始数据包。
3.根据权利要求2所述的基于线性网络编码的混合传输方法,其特征在于,所述接收端接收到的原始数据包和编码数据包的个数大于且等于n。
4.根据权利要求3所述的基于线性网络编码的混合传输方法,其特征在于,所述将所述m个编码数据包发送给所述接收端,在所述原始数据包未在预设时间内都被接收情况下,以使所述接收端根据所述预设编码系数矩阵和接收到的原始数据包和编码数据包构建与丢失的原始数据包相关的高斯方程组,计算得出所述丢失的原始数据包,还原所述丢失的原始数据包包括:
将所述m个编码数据包发送给所述接收端,在所述原始数据包丢失或接收超时情况下,以使所述接收端根据所述预设编码系数矩阵和接收到的原始数据包和编码数据包,计算各个所述接收到的原始数据包在m个编码数据包中的m个解码分量;根据所述m个解码分量对应的解码和与编码数据包构建与丢失的原始数据包相关的高斯方程组,计算得出所述丢失的原始数据包,还原所述丢失的原始数据包。
5.根据权利要求1所述的基于线性网络编码的混合传输方法,其特征在于,所述根据所述n个原始数据包和预设编码系数矩阵,计算得到m个编码数据包,包括重复执行以下处理,直至分组中的所述原始数据包都被遍历:
根据编码系数矩阵计算第i个原始数据包分别在m个编码数据包中的m个解码分量;
将所述m个解码分量进行累加计算,得到所述第i个原始数据包对应的解码和Q’i
根据所述解码和Q’i计算得到编码数据包Qi
6.根据权利要求1所述的基于线性网络编码的混合传输方法,其特征在于,在所述获取当前分组中的n个原始数据包之前,还包括:根据所述原始数据包的序列号将所述原始数据包划分到相应分组中。
7.根据权利要求5所述的基于线性网络编码的混合传输方法,其特征在于,所述根据所述解码和Q’i计算得到所述编码数据包Qi,包括:
将所述解码和Q’a累加计算得到所述编码数据包Qi,其中,1≤a≤i。
8.一种电子设备,其特征在于,所述电子设备包括:
存储介质;
处理器;以及
基于线性网络编码的混合传输装置,所述装置存储于所述存储介质中并包括由所述处理器执行的软件功能模块,所述装置包括:
获取模块,用于获取当前分组中的n个原始数据包,将所述n个原始数据包发送给接收端;
计算模块,用于当所述n个原始数据包发送完毕时,根据所述n个原始数据包和预设编码系数矩阵,计算得到m个编码数据包,其中,m≤n;
发送模块,用于将所述m个编码数据包发送给所述接收端,以使所述接收端根据所述预设编码系数矩阵、接收到的编码数据包和原始数据包,还原得到所述n个原始数据包;
所述预设编码系数矩阵中的编码系数固定、所述预设编码系数矩阵中任意两行组成的向量组线性无关且所述预设编码系数矩阵中任意j行j列交叉线上的元素构成的子矩阵为非奇异矩阵,其中,j<n;
当生成每个分组对应的编码包时,依次按行顺序从固定系数矩阵读取所述编码系数。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1-7中任意一项所述的基于线性网络编码的混合传输方法。
CN201811423125.XA 2018-11-26 2018-11-26 基于线性网络编码的混合传输方法、电子设备和存储介质 Active CN109525368B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811423125.XA CN109525368B (zh) 2018-11-26 2018-11-26 基于线性网络编码的混合传输方法、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811423125.XA CN109525368B (zh) 2018-11-26 2018-11-26 基于线性网络编码的混合传输方法、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN109525368A CN109525368A (zh) 2019-03-26
CN109525368B true CN109525368B (zh) 2021-12-10

Family

ID=65779500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811423125.XA Active CN109525368B (zh) 2018-11-26 2018-11-26 基于线性网络编码的混合传输方法、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN109525368B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110970039A (zh) * 2019-11-28 2020-04-07 北京蜜莱坞网络科技有限公司 一种音频传输方法、装置、电子设备和存储介质
CN112153693B (zh) * 2020-09-23 2024-05-10 南京邮电大学 一种基于随机线性网络编码的双路径传输方法
CN112600647B (zh) * 2020-12-08 2021-11-02 西安电子科技大学 基于网络编码续航的多跳无线网络传输方法
CN112995953B (zh) * 2021-03-03 2022-07-12 中山大学 基于随机线性网络编码降低车间通信时延的方法及系统
CN114615014B (zh) * 2022-01-29 2023-03-17 北京航空航天大学 面向多层分布式网络的数据传输方法及系统
CN114760009B (zh) * 2022-04-01 2023-07-25 国网综合能源服务集团有限公司 数据流的编解码方法、装置及存储介质
CN114928573A (zh) * 2022-05-20 2022-08-19 中国科学院计算技术研究所 一种数据的传输方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105356968A (zh) * 2015-06-24 2016-02-24 深圳大学 基于循环置换矩阵的网络编码的方法及系统
CN105391530A (zh) * 2015-10-16 2016-03-09 中国人民解放军国防科学技术大学 一种基于网络编码的卫星网络可靠组播方法
CN106789919A (zh) * 2016-11-25 2017-05-31 上海交通大学 一种自适应多频段协同安全传输方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10031806B2 (en) * 2016-11-01 2018-07-24 Cisco Technology, Inc. Efficient repair of erasure coded data based on coefficient matrix decomposition

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105356968A (zh) * 2015-06-24 2016-02-24 深圳大学 基于循环置换矩阵的网络编码的方法及系统
CN105391530A (zh) * 2015-10-16 2016-03-09 中国人民解放军国防科学技术大学 一种基于网络编码的卫星网络可靠组播方法
CN106789919A (zh) * 2016-11-25 2017-05-31 上海交通大学 一种自适应多频段协同安全传输方法及装置

Also Published As

Publication number Publication date
CN109525368A (zh) 2019-03-26

Similar Documents

Publication Publication Date Title
CN109525368B (zh) 基于线性网络编码的混合传输方法、电子设备和存储介质
KR101990018B1 (ko) 채널 인코딩 및 디코딩 방법 및 장치
US9369255B2 (en) Method and apparatus for reducing feedback and enhancing message dissemination efficiency in a multicast network
TWI812623B (zh) 節點裝置、電腦實施方法及相關非暫時性處理器可讀媒體
Halloush et al. Network coding with multi-generation mixing: A generalized framework for practical network coding
KR20130095231A (ko) 데이터 패킷 송수신 장치 및 방법
MX2014010252A (es) Aparato de transmision/recepcion de paquete y metodo que utiliza esquema de correccion de error anticipada.
KR20080040669A (ko) 다양한 클래스의 코드들을 인코딩 및 디코딩하는 애플리케이션을 갖는 인-플레이스 변환
CN109818714B (zh) 动态fec方法、装置、计算机终端和计算机可读存储介质
CN112751644A (zh) 数据传输方法、装置及系统、电子设备
JPWO2008139882A1 (ja) 通信システムおよび通信方法、並びに、プログラム
JP2011091677A (ja) 送信装置および通信システム
WO2016142193A1 (en) Apparatus and method for transmitting and receiving redundancy information of a first packet in a second packet
CN111447044B (zh) 分布式存储方法和传输译码方法
KR101874537B1 (ko) 극 부호의 병렬 복호화 방법 및 장치
US9276606B2 (en) Correction data
Jena et al. A novel bit stuffing technique for Controller Area Network (CAN) protocol
US20100027563A1 (en) Evolution codes (opportunistic erasure coding) platform
CN109245850B (zh) 基于媒体内容的自适应系统码fec编译码方法
US8938019B2 (en) Data transmitting device and data transmitting/receiving method
KR101496058B1 (ko) 회선 활용도 기반 네트워크 코딩 방식 결정 방법 및 장치
CN106302573B (zh) 一种采用擦除码处理数据的方法、系统及装置
Hassan Third bit complement (TBC) mechanism to reduce bit stuffing jitter in controller area network (CAN)
JPH0654017A (ja) スキュー変換点の訂正・検出方法及び通信システム
WO2023238205A1 (ja) 通信装置、通信方法、及びプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant