CN113728572A - 通过参数初始化和重用来生成预定系数的线性网络编码 - Google Patents

通过参数初始化和重用来生成预定系数的线性网络编码 Download PDF

Info

Publication number
CN113728572A
CN113728572A CN202080029845.7A CN202080029845A CN113728572A CN 113728572 A CN113728572 A CN 113728572A CN 202080029845 A CN202080029845 A CN 202080029845A CN 113728572 A CN113728572 A CN 113728572A
Authority
CN
China
Prior art keywords
network
parameters
coefficients
node
network node
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.)
Pending
Application number
CN202080029845.7A
Other languages
English (en)
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.)
Network Code Co ltd
Code On Network Coding LLC
Original Assignee
Network Code 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 Network Code Co ltd filed Critical Network Code Co ltd
Publication of CN113728572A publication Critical patent/CN113728572A/zh
Pending legal-status Critical Current

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/0041Arrangements at the transmitter end
    • H04L1/0043Realisations of complexity reduction techniques, e.g. use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • 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/0076Distributed coding, e.g. network coding, involving channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Investigating Or Analysing Biological Materials (AREA)
  • Communication Control (AREA)

Abstract

一种网络节点,其具有:用于接收输入的包的接收器;其中存储了用于编码的一个或更多个参数的本地节点存储器;用于使用线性网络编码从所述输入的包来创建经编码的包的编码器;以及用于发送所述经编码的包的发送器。所述线性网络编码的每个系数是所述一个或更多个参数中的参数,或者所述一个或更多个参数的预定函数。还提出了相关的方法和网络。

Description

通过参数初始化和重用来生成预定系数的线性网络编码
背景技术
线性网络编码是将线性系数应用于输入以便导出经编码的输出的过程。线性网络编码是一种应用于数据传输和存储网络节点以能够进行通信并且提高效率的方法,由此,数据网络中的节点起编码器和解码器的作用。
特别地,作为编码器操作的节点不仅转发(即中继或复制)从输入链路接收的信息,它还对这样的信息进行编码。在网络中的节点处进行编码被称为网络编码。网络可以建模为具有定向链路、一个或更多个源和一个或更多个接收器的图,如R.Koetter和M.Medard在“网络编码的代数方法”(IEEE/ACM Trans actions on Networking,第11卷,第5期,2003年10月)中所示,其通过引用而被整体并入本文。网络中常见的通信问题是多播连接问题,其中,源数据必须传输到接收器节点中的每一个。
网络编码能够实现仅限于转发时无法实现的连接。特别地,R.Ahlswede,N.Cai,S.-Y.R.Li和R.W.Yeung已经在“网络信息流”(IEEE信息论交易第46卷,第1204-1216页(2000年))中表明,其通过引用而被整体并入本文,一般来说,简单地路由或复制要传输的信息不是最佳的。相反,通过在节点处采用编码,一般可以节省带宽。
网络可以表示为有向图,如R.Koetter和M.Medard在“Beyond Routing:AnAlgebraic Approach to Network coding”(2002年IEEE Infocom会议记录(2002年))中所示,其通过引用而被整体并入本文。该图包括源节点和接收器节点,其中,数据从源节点传输到接收器节点。在以上参考文献中,公开了一种使用整个网络拓扑的知识来寻找给定多播连接问题的线性编码解决方案的算法。
然而,在通信受限或昂贵的应用中,以分布式方式确定每个节点的行为可能是优选的。以分布式方式确定节点行为是基于每个节点本地可用的信息和/或最小控制信令,而不需要集中协调或了解整个网络拓扑。T.Ho、R.Koetter、M.Medard、D.R.Karger和M.Effros已在“随机环境下编码优于路由的好处”(2003年信息论国际研讨会(ISIT))中表明,其通过引用而被整体并入本文,多播连接问题可以通过随机线性网络编码以分布式方式解决。
在以上参考文献中,线性网络编码对数据流使用随机系数生成,其中,节点通过向每个流分配随机系数来线性组合流。系数在本文定义为来自有限域的元素,该有限域与作为其乘数的给定的数据流相关联,其中,相乘的数据流的相加形成流的线性组合(即,编码流)。
可以以动态或预定方式进行系数的随机或任意选择。使用预定代码结构可以简化网络操作。使用预定的代码结构可以简化网络操作。建议将预定的代码结构作为简化代码来解决无线多播网络中的多播连接问题,参见Anna H Lee,多播网络的简化随机网络代码,麻省理工学院工程硕士论文,2005年5月(以下简称Lee),其通过引用而被整体并入本文。
发明内容
在本公开内容的第一方面,描述了一种网络节点,该网络节点包括:用于接收输入的包的接收器;其中存储了用于编码的一个或更多个参数的本地节点存储器;用于使用线性网络编码从所述输入的包创建经编码的包的编码器,其中,所述线性网络编码的每个系数是所述一个或更多个参数中的参数,或者所述一个或更多个参数的预定函数;以及用于发送所述经编码的包的发送器。
在本公开内容的第二方面,描述了一种用于处理输入到网络节点的包的方法,该方法包括:从本地存储器读取一个或更多个参数;确定是否需要经编码的包;重用存储的参数以生成线性网络编码所需的一个或更多个参数,以及使用生成的一个或更多个系数从输入的包来创建经编码的包,其中,所述一个或更多个系数中的每个是所述一个或更多个参数中的参数,或者通过一个或更多个预定函数从所述一个或更多个参数生成。
附图说明
并入本说明书并构成本说明书一部分的附图示出了本公开内容的一个或更多个实施例,并且与示例实施例的描述一起用于说明本公开内容的原理和实现。
图1示出了流间网络编码设置中的单变量码的现有技术示例。
图2示出了根据本公开内容的实施例的参数重用。
图3示出了图2的节点的架构。
图4示出了根据本公开内容的又一实施例的参数重用。
图5示出了图4的节点的架构。
图6示出了由先前图中的节点进行的操作的可能顺序集合的流程图。
图7示出了根据本公开内容的又一实施例的多参数重用。
图8示出了根据本公开内容的具有跨网络节点的不同参数的示例性网络。
图9示出了网络中的节俭代码的示例。
图10示出了由图9的一些节点传输的包序列。
具体实施方式
本公开内容的实施例旨在通过在节点的预编程例程中包括简单代码或通过节点初始化来简化大规模生产的节点(例如,传感器节点)。这简化了节点操作(例如通过消除随机系数生成)和节点设计过程(例如通过预编程代码)两者。
本文描述的方法不受单个变量或系数的限制。相反,它们的特征是被预编程(硬连线或编程)或最初分布到节点的变量数量有限。它们的另一个特征是在选择网络编码系数的过程中没有随机性,因此它们具有预定资格。
线性编码可以应用于流或数据单元,其中,流是具有相同路由特征的数据单元序列(例如,它们通常具有相似的寻址信息)。
每个数据单元是比特集。线性编码通常适用于称为符号的相等大小的比特集。符号大小取决于其中应用编码的字段大小。该文档假设在数据单元和符号之间有足够的转换,这是驻留在编码模块和解码模块中的过程,并且通常涉及填充、分段和头生成。本文描述的方法与字段大小无关。
虽然本公开内容可互换地使用术语“数据单元”和“包”,但是本文描述的方法适用于任何层的数据单元,包括物理和数据链路帧、网络层包、传输层段、或应用层数据单元和比特流细分。在存储应用中,数据单元通常代表文件块或磁盘扇区。此外,本文描述的方法可以通过软件或硬件来应用。
流间网络编码是流之间网络编码的应用,其中,系数被分配给流,而不是其组成数据单元。流间网络编码是流内的网络编码的应用,其中,系数被分配给各个数据单元。在流间线性编码中,系数被定义为来自有限域的元素,该有限域与作为其乘数的给定数据单元(例如,包)相关联,其中,相乘的数据单元的相加形成数据单元的线性组合(即,编码数据单元)。
本文描述的方法通过有限数量的参数覆盖流间编码,这些参数可能需要被节点重用,以便为每个数据单元生成系数。通过系数生成函数在节点上实现参数的重用。参数和系数生成函数在设备制造时预编程,或者在节点或网络初始化期间输入到节点。采用有限的参数集和函数的代码在本文中被描述为节俭代码。
节俭代码是线性网络代码,其避免在系数生成中使用在线伪随机数生成器。相反,在节点处使用参数和预定函数来生成系数。节俭代码通过降低生成编码系数所需的操作数量来降低节点需要执行的编码过程的复杂度。这减少了节点的能源使用。
节俭代码可以部署在各个通信节点上,作为实现随机线性网络编码(RLNC)的简单手段。应用包括传输或存储数据的所有系统,其包括主干通信和广域网络(WAN)、光网络、卫星网络、接入和城域(MAN)网络、无线蜂窝和移动网络、局域网(LAN)、家庭网络、个人局域网(PAN)、体域网、存储区域网(SAN)、云网络、企业存储网络、数据中心系统和服务器阵列等。具体地,复杂度和能源使用的降低促进了在使用小尺寸设备的系统和网络中部署节俭代码,如下所述。
术语“节点”表示无线或有线通信基础设施的任何通信元件,其包括蓝牙、WiFi、蜂窝(例如,LTE)、服务器和数据中心系统、主干和接入路由器、云计算节点和用于车载、工业、卫星和计算机网络的网络接口卡(NIC)。具体地,节点可以在各种消费电子设备中实现,例如个人计算机、计算机产品、膝上型电脑、电话、平板电脑等。由于这样的设备对成本、功耗和复杂度的敏感性,本文所述的方法对于大规模生产的小尺寸设备特别地有吸引力。这样的设备包括在以下中使用的设备:传感器系统、家庭网络、物联网(IoT)网络、嵌入式系统、网状网络、移动自组织网络(MANET)、移动系统、蜂窝网络、小尺寸(SFF)系统,以及需要低功耗、使用低成本收发器微芯片或计算能力低的任何设备。因此,在本公开内容中,术语“节点”是指基站、移动终端、个人计算机或能够处理数据的类似电子设备,其中,这些设备能够联网并彼此进行通信。
本申请可能涉及美国专利第9,699,104号和美国专利第9,258,084号,它们两者都通过引用整体并入本文。虽然US9,699,104没有规定在节点处生成系数的方法,但本申请提供了在节点处生成系数和生成编码数据单元的具体实施例。
与US9,258,084相反,在本申请中,在系统启动时没有生成或使用码本。此外,与US9,258,084不同,本申请不需要节点以使用整个网络众所周知的单一函数。相反,可以使用不同的函数,并且节点之间不需要在函数定义上进行协调。此外,本申请需要使用和重用有限数量的参数来在节点处生成系数的函数。
Lee,已经在本申请的背景技术部分中进行了简要描述,提出了用于分布式多播无线设置中的网络编码的单系数(“单变量”)代码构造。术语“单变量”是指使用单个变量的代码。在Lee中,编码所需的单个变量是系数α;原理是所有节点都使用相同的(预编程的)系数(α)进行网络编码。实际上,Lee提出对本地生成的流使用单位系数(1),并且对所有传入流使用预编程的系数α,从而创建系数多样性的度量。(例如参见图1)。
Lee明确地将系数多样性识别为单变量码的限制因素,因为系数多样性的缺乏导致接收器处的线性相关性和无法解码,从而导致不可行的代码。Lee探讨了其他多样性范式。例如,通过引入第二参数(f)来探讨代码多样化,该参数表示要分配单位系数的流的一部分。Lee还探讨了针对不同奇偶有限域大小的不同系数值的代码效率。
Lee只专注于解决多播连接问题,其中,网络被建模为一组多播源、宿和传送信息流的中间节点。因此,该模型仅考虑流间网络编码,其中,节点将传入(和本地)流进行组合以形成传出流,并在流级别应用网络编码。
具体地,图1(从Lee复制)示出了流间网络编码设置中的单变量码的示例。在此示例中,节点使用线性编码组合输入信号和本地信号或流。图1中的表示出了线性组合中使用的系数。用于输入信号和本地信号的系数分别为α和1。
Lee不考虑流间网络编码,即对同一流的各个数据单元(例如,包)进行编码的过程。
流间网络编码已经显示出显著的效率和性能优势,特别是对于包擦除/纠错、延迟减少、多播、多路径操作和网状网络。
流间网络编码在涉及小型设备的、范围从节能到网络效率和稳健性的网络中具有广泛的应用和益处。
本文描述的方法将Lee描述的“单变量”概念扩展到流间网络编码。它们呈现的实施例也受到代码简单性的启发,代码易于批量编程并且更适合较小的设备(例如,传感器)和具有计算约束的设备。
参数初始化和重用
参数是在节点初始化时存储在节点存储器中的有限域的成员,其中,初始化被定义为节点在网络中变得可操作的过程。
应该限制参数和函数的数量,以简化节点生产,并减少存储器使用和系数计算的复杂度。使用一个参数和一个函数将是理想的。然而,对于系数多样性而言,可能需要每种都提供一个以上。
初始化包括利用有限数量的参数对所有节点进行预编程。初始化还包括利用有限数量的函数对每个节点进行预编程,以用于从参数生成系数。在不同的实施例中,中央机构(例如,网络控制器或网络管理单元)可以在通信(例如,网络设置、节点发现等)之前向节点分发/传播参数和函数。替代地,可以对所有节点进行编程,以从初始化时节点可用的信息中选择它们自己的参数(例如,使用例如序列号、网络地址等的硬连线节点参数的一部分或全部)。
参数重用是指重复使用相同的一个或更多个参数来生成多个系数。每个编码操作导致一个经编码的包的创建。节点将在每次编码操作中重用其参数来为要编码的每个数据单元(例如,包)生成编码系数,其中,每个系数是参数或其函数。
每个编码操作(即,一个经编码的包的创建)通常需要多个系数。如果用于创建系数的函数是序列(例如,算术或几何序列),则它可以在每次新的编码操作时重新初始化或继续(例如,继续到参数的下一个倍数或幂)。在一个实施例中,可以为每个不同的包流(例如,视频)重新初始化该函数。
使用预定函数从参数生成系数。预定函数是可以存储在节点存储器中的数学函数或算法(例如,作为其编程软件的一部分)。自节点初始化以来,节点就知道它。
可能已从网络(例如,中心节点)接收或本地选择函数和参数两者。随后可能会修改参数和函数,但这偶尔会作为网络管理事件发生(即,不是以传入的包的频率)。
重用在图2中示出(200),其中,节点n1(210)从输入的包p1、p2和p3(220)生成经编码的包c1和c2(230)。参数(212)存储在节点的本地存储器中。
每次需要新的系数时,节点(210)重用存储的参数(212)以生成新的系数(213)。
系数(213)可以采用由使用参数的函数生成的数学数字的序列的形式。例如,每个系数(一个或更多个系数的初始集合除外)可以是一个或更多个先前系数的函数。因此,可能需要临时存储用于生成下一个系数所需的先前系数(213),直到生成下一个系数为止。
图3示出了为了线性网络编码的目的而重用一个或更多个参数的节点(310)的架构的可能实施例(300)。参数存储在节点的本地存储器(315)中。
传入的包(320)从不同输入端口经由接收器单元(RX)(311)到达节点。然后它们在缓存单元(313)处被缓存以用于编码和重传。当需要编码时,从存储的参数(315)生成系数(316),并在编码单元(314)处使用系数(316)以生成经编码的包。然后经编码的包在缓存单元(313)处被缓存,以用于经由传输单元(TX)(312)传输到输出端口。传出的包(330)可以包含经编码的包和未经编码的包。
接收的包可以直接从接收器单元发送到编码单元,或从编码单元发送到传输单元,而无需缓存。此外,虽然未表示,但可以在传输单元(TX)处执行每个输出的包到一个或更多个输出端口的映射(即,交换或多播)。
传感器节点的示例可以用于说明图3的架构。除了他们的电源和传感器之外,传感器节点还包含中央控制器单元,该单元通常使用微控制器实现,尽管一些传感器设计使用通用微处理器、数字信号处理器、FPGA或ASIC。传感器节点还使用无线电、红外或光收发器进行通信。它们的外部存储器通常是闪存(即电子固态非易失性计算机存储器)。参考图3,编码单元(314)可以在传感器节点的控制器单元处实现。包含参数(315)和系数(316)的本地存储器可以对应于传感器节点的片上微控制器存储器。缓存单元(313)可以是节点的外部存储器的一部分。收发器结合了发送器(312)和接收器(311)单元的功能。
参数重用的示例
参数重用的示例在图4和图5中给出。在图4(400)中,节点n1(410)从输入的包p1、p2和p3(420)生成经编码的包c1和c2(430)。节点n1使用α作为预定参数,其中,α是有限域Fq的成员,q是域大小。参数α存储在节点的本地存储器(411)中。
为了生成系数(413),n1可以通过下面列出的函数g1从Fq生成数字的序列C(i)。
g1:c(i)=iα[q]
其中,i>=1是索引,[.]是模运算符。
在本公开内容中,假设函数跳过零系数。这可以通过在系数计算中用固定数字(例如,一)自动地替换零来完成。
图5(500)示出了该架构的可能实施例。参数α存储在节点的本地存储器(515)中。从不同输入端口经由接收器单元(RX)(511)到达节点的传入的包(520)在缓存单元(513)处被缓存,以用于编码和重传。当需要编码时,使用函数g1从存储的参数(515)和先前的系数(516)生成一批编码系数。在编码单元(514)处使用这些系数以生成经编码的包。
在简单的实现中,节点通过使用参数α(515)作为第一系数并通过将α添加到先前的系数而创建新的系数来循环通过有限域Fq。生成的系数是集合{α,2α,3α,...}的成员。先前的系数的最新值可以存储在系数模块(516)中。
然后经编码的包在缓存单元(513)处缓存以用于经由传输单元(TX)(512)传输到输出端口。
在图4和图5的示例中,固定参数α被节点重用以生成系数。
样本流程图
图6中的流程图(600)示出了由节点进行的操作的可能实施例。
在节点初始化时,节点从其存储器读取(610)参数以准备编码过程。然后节点等待传入的包。
每次接收、缓存(620)和(可选地)发送(630)新的包时,触发决策步骤(640),其中,节点确定是否需要新的经编码的包。如果不需要经编码的包,则节点返回等待传入的包。
如果需要经编码的包,则节点重用(650)存储的参数和先前的系数(如果有的话),以便生成下一个系数。换句话说,第一系数是节点的参数的函数。所有后续系数可以是先前的系数以及节点参数(例如,图5的序列码)的函数。
一个经编码的包的创建通常需要一个以上的系数,因为对于输入到编码单元的每个原始/本地包,经编码的包的创建需要一个系数。例如,如果选择一组B个缓存的包用于编码,则从输入的一组包创建每个经编码包需要B个系数。
因此,只要需要新的系数(660)来创建经编码的包,就重复生成一个或更多个系数的过程(650)。一旦生成了足够数量的系数,就创建、缓存(670)和可选地传输(680)经编码的包。然后节点返回等待传入的包。
在替代实施例中,决策步骤(640)可以由节点内部的因素触发而不是包到达,例如定时约束(例如,规则的周期性触发)、网络上包丢失的估计,或外部因素例如协议反馈(例如,请求经编码的包、有关包丢失的信息)。
例如,图3、图5和图6的实施例可以是完全基于软件的节点,该节点使用现场可编程门阵列(FPGA)或软无线电来实现。替代地,基于硬件的节点设计(例如,使用专用的特定于应用的集成电路(ASIC)实现)或专用芯片和可编程芯片的组合也是可能的。
其他示例
节点可以具有一个以上的参数。这在图7(700)中示出。节点n1(710)从输入的包p1、p2和p3(720)生成经编码的包c1和c2(730)。节点n1使用两个参数α和κ(712),其中α和κ是有限域Fq的成员,q是域大小。参数α和κ存储在节点的本地存储器(711)中。为了生成系数,n1可以通过下面列出的函数g2从Fq生成数字的序列C(i)。
g2:C(1)=α
C(i+1)={C(i)+κ}[q],
其中i>=1是索引,[.]是模运算符。
因此,函数g2通过将常数κ添加到从α开始的先前的系数来循环通过有限域。生成的系数是集合{α,α+κ,α+2κ,α+3κ,...}的成员。换句话说,g2:c(i)=α+(i-1)k[q],i>=1。
因此,参数(α,κ)被节点重用以生成系数。图8是示出参数和函数在网络节点上可能不同的示例。图8表示网状网络(800),其中,四个节点n1(810)、n2(820)、n3(830)和n4(840)使用不同的参数。尽管n1和n4使用参数α(811,841)初始化,但是n2和n3使用参数β(821,831)初始化。
函数也可以不同。在图8中,n2可以使用函数g1,导致系数{β,2β,3β,…},而n3可以使用函数g2,κ=1,导致系数{β,β+1,β+2,…}。
“节俭”代码的示例
单系数代码:单系数代码是要实现的最简单的节俭代码。它使用单个参数α作为任何编码操作的唯一系数,如图4所示。然而,和图5不同,对于每个要创建的新的经编码的包,它可以将单个系数α分配给所有要编码的包。由于预期缺乏多样性(即,经编码的包之间的线性相关性的可能性很高),该代码的适用性可能有限。
系数集代码:在这个节俭代码中,参数被视为预定系数,无需进一步计算。该函数分配直接从参数集中选择的系数(例如,图7,其中节点具有两个参数)。例如,该函数可以以循环方式从存储的参数列表中分配系数,选择下一个参数作为下一个要编码的包的系数,并且每次遍历列表时返回到参数列表的开头,但需要更多的系数。替代地,该函数可以基于要编码的包之间子集的定义来映射参数。例如,具有参数α和κ的节点内的函数(如图7所示)可以将要编码的包分为两类:到达的包和先前缓存的包。然后,该函数可以将系数α用于传入的包,并将系数κ用于缓存的包。
序列码:序列码使用一个或更多个参数作为数学序列(例如,算术或几何序列)的输入。例如,单参数函数可以为要编码的包分配α(1,α,α23,等)的幂或α(1,α,2α,3α,等)的倍数。(后者的序列码如图5所示。)在图6的流程图中,给出序列码作为参数重用步骤(650)的示例。自然地,可以使用一个以上的参数来定义序列(例如,参见图7,上面定义了功能g2)。
代码可以从序列和系数集代码来借用元素。例如,函数可以对传入的包使用1,并计算序列的下一个元素作为缓存的包(例如,位于节点的缓存单元(313)中的包)的系数。
系数的分配可能受编码复杂度或节点缓存策略的影响。例如,节点可以仅缓存(313)经编码的包,因为经编码的包提供比未经编码的包更多样化的数据表示。在经编码的包的重新编码(即,经编码的包的重新编码)中,函数可以基于被组合以创建经编码的包的未编码的包的数量(即,其密度)来选择用于该经编码的包的系数。本文的目标可以降低编码复杂度(例如,编码过程所需的字段操作数量)。例如,与稀疏的包或未经编码的包相比,密集的包更有可能被分配系数1。因此,基于例如复杂度的考虑因素,当从一个类别或另一个类别中挑选包时,缓存(313)经编码的包和未经编码的包两者的节点可以使用不同的系数集。
复合函数代码:节俭代码的最一般描述是采用预编程函数和有限数量的预编程参数(713)来生成用于线性编码的系数(714)的代码,其中,函数定义可能随每个系数的生成而变化。对于要创建的每个经编码的包,该函数基于参数为每个要编码的包生成一个系数。在复合函数代码中,函数本身可以被重用为序列元素。此外,它可以通过对每个生成的系数的不同参数或操作来定义。以下示例说明了复合函数。
函数重用:节点(210)可以通过函数组合来重用其函数(即,使用其函数的组合)以生成系数(213)。例如,具有参数α(例如,参见图4)和函数g的单变量码可以按照序列(g(α),g2(α),g3(α),...)或者为了增加多样性(1,g(α),g2(α),g3(α),...)生成系数(413),其中,g2(α)=g(g(α))。
多个参数:节点可以在一组参数之间交替,同时移动到函数的高阶组合。例如,具有函数g和参数集{α,κ}的节点(例如,见图7)可以使用系数序列(1,g(α),g(κ),g2(α),g2(κ),g3(α),g3(κ),...)作为其系数(713)。
多个函数:节点函数可以通过多个子函数的组合来定义。例如,具有参数α(例如,参见图4)的单变量码可以按照序列(1,g(α),g’(α),g2(α),g’2(α),g3(α),g’3(α),...)生成系数(413),其中,g和g’是不同的子函数。节点函数也可以通过多个子函数组合之间的交替来定义。例如,具有参数α(例如,参见图4)的单变量码可以按照序列(1,g(α),g’(g(α)),g(g’(g(α))),...)生成系数(413)。代码可以组合上述两种或多种方法中的元素。
多跳网络中的节俭代码的示例
多跳网络是其中数据单元需要从源到目的地遍历多于一跳的网络。线路、或菊花链、网络通常用于说明多跳性能。图9示出了由三个节点形成的线网络(900):源节点n1(910)、中间节点n2(920)和目的节点n3(930)。在n1(911)、n2(921)和n3(931)的存储器中编程了相同的参数α=3,其中,在字段F32(即q=32)中进行操作。
当执行线性编码时,所有节点使用以下函数来选择系数C(i):
g3:C(1)=1
C(i+1)={C(i)+α}[q],
其中,i>=1是索引,[.]是模运算符。
代码:该函数因此以循环方式在有限域中按照序列{1,α,2α,3α,...}循环,其中,α=3。对于每个新的经编码的包,序列不会中断。
场景和传输策略:包含包(p1,p2,p3)的3个包块将从n1到n3传输。在每条链路上,由于信道质量的波动,五分之二的包丢失。为了保护传输的包,在第二传输的包和第三传输的包之后插入冗余包(码率=3/5)。
图10示出了由节点n1(912)和n2(922)传输的未经编码的包和经编码的包的序列。
节点n1从输入的包p1、p2和p3生成包c1和c2,并根据上述传输策略发送该五个包(912)。包p2和c1随后丢失(912)。
节点n2接收包p1、p3和c2(912)。根据相同的传输策略,它使用这三个输入的包来生成和传输两个额外的经编码的包,c3和c4。因此,节点n2发送包序列{p1,p3,c3,c2,c4}(912)。随后,包p1和c2丢失(922)。节点n3接收由n2传输的五个包中的三个(922)。
图10中的表示出了图9场景中所有经编码的包的系数,其中,任何包都由表示线性组合L=ap1+bp2+cp3的F32[a,b,c]中的三元组表示。在目的地收到的三个包是(p3,c3,c4)=([0,0,1],[1,0,3],[30,12,1]),这三个独立的组合使得能够对三个原始包进行解码。这表示节俭代码可以成功地在流内通信中生成线性无关性。
增加代码多样性和鲁棒性
可以应用多种方法来增加代码多样性(即,降低在接收器处接收线性相关包的可能性)。这里是一些示例:
分数:要编码的包被分成两个子集:包的固定分数f使用α参数作为系数,而其余的1-f使用1。这是Lee描述的方法,但被应用于流间设置。在本申请的内容中,分数f将是函数定义的一部分。可以使用非概率方法(例如,基于浮动分数的永久更新来分配系数)来执行确定是否要为包分配系数α或1。
分数和函数:要编码的包的固定分数f被分配g(α),而剩余的1-f被分配g’(α)。
节点函数:传播/编程单个参数/系数和多个函数。每个节点或节点组对系数应用不同的函数。这在图8的讨论中提到。其他节点特征(例如,网络地址)也可以用作附加参数以对生成的系数贡献多样性。
上述实施例提供给本领域普通技术人员,作为对如何制作和使用本公开内容的实施例的完整公开和描述,并不旨在限制发明人视为其公开内容的范围。
对本领域技术人员显而易见的,用于执行在此公开的方法和系统的上述模式的修改意在在所附权利要求的范围内。说明书中提到的所有专利和出版物都表明本公开内容所属领域技术人员的技术水平。本公开内容中引用的所有参考文献均以引用的方式并入,其程度与各参考文献单独以引用方式并入的程度相同。
应当理解,本公开内容不限于特定的方法或系统,其当然可以变化。还应理解,本文中使用的术语仅用于描述特定实施例的目的,并不旨在进行限制。除非内容另有明确规定,否则在本说明书和所附权利要求书中使用的单数形式“一个”、“一种”和“该”包括复数所指对象。除非内容另有明确规定,否则术语“多个”包括两个或多个所指对象。除非另有定义,本文使用的所有技术和科学术语与本公开内容所属领域的普通技术人员通常理解的含义相同。

Claims (22)

1.一种网络节点,包括:
接收器,用于接收输入的包;
本地节点存储器,其中存储了用于编码的一个或更多个参数;
编码器,用于使用线性网络编码从所述输入的包来创建经编码的包,其中,所述线性网络编码的每个系数是所述一个或更多个参数中的参数,或者所述一个或更多个参数的预定函数;以及
发送器,用于发送所述经编码的包。
2.根据权利要求1所述的网络节点,其中,所述编码器被配置为从输入的包或先前经编码的包的缓存副本来创建所述经编码的包。
3.根据权利要求1-2中任一项所述的网络节点,其中,所述编码器被配置为使用一个或更多个先前生成的并且本地存储的系数来计算所述线性网络编码的系数。
4.根据权利要求1-3中任一项所述的网络节点,其中,所述一个或更多个参数或所述预定函数由所述网络节点在网络设置或节点发现时选择。
5.根据权利要求1-4中任一项所述的网络节点,其中,所述一个或更多个参数或所述预定函数由网络管理单元在网络设置或节点发现时初始化,并且在此后固定。
6.根据权利要求1-3中任一项所述的网络节点,其中,所述一个或更多个参数或所述预定函数在设备制造时被预编程并且固定。
7.根据权利要求1-3中任一项所述的网络节点,其中,所述一个或更多个参数或所述预定函数在网络设置或节点发现时被初始化,并且可以由所述网络节点或网络管理单元修改或更新。
8.根据权利要求1-7中任一项所述的网络节点,其中,所述预定函数循环通过所述一个或更多个参数的有限集合。
9.根据权利要求1-8中任一项所述的网络节点,其中,所述预定函数是数学序列。
10.根据权利要求9所述的网络节点,其中,针对每个编码操作重新初始化所述数学序列。
11.一种用于处理输入到网络节点的包的方法,包括:
从本地存储器读取一个或更多个参数;
确定是否需要经编码的包;
重用存储的参数来生成线性网络编码所需的一个或更多个系数;以及
使用生成的一个或更多个系数从输入的包来创建经编码的包,
其中,所述一个或更多个系数中的每个是所述一个或更多个参数中的参数,或者通过一个或更多个预定函数从所述一个或更多个参数生成。
12.根据权利要求11所述的方法,其中,所述确定基于对经编码的包的外部请求。
13.根据权利要求11所述的方法,其中,所述确定基于内部因素。
14.根据权利要求13所述的方法,其中,所述内部因素是用于生成经编码的包的周期性触发,或所述网络上包丢失的本地估计。
15.一种包括多个网络节点的网络,其中,一个或更多个所述网络节点如权利要求1-10中任一项所述。
16.根据权利要求15所述的网络,其中,一个或更多个所述网络节点的一个或更多个参数是预编程参数。
17.根据权利要求9所述的网络节点,其中,所述数学序列针对每个流或每批包被重新初始化。
18.根据权利要求1-10和17中任一项所述的网络节点,其中,所述预定函数是两个或更多个子函数的组合。
19.根据权利要求18所述的网络节点,其中,使用所述两个或更多个子函数中的不同的子函数来生成不同的系数。
20.根据权利要求1-10和17-19中任一项所述的网络节点,其中,所述预定函数仅生成非零系数。
21.根据权利要求1-10和17-20中任一项所述的网络节点,其中,所述预定函数生成一批系数,其中,一批的大小取决于编码要求。
22.根据权利要求1-10和17-21中任一项所述的网络节点,其中,所述网络节点选择系数以降低或控制编码复杂度。
CN202080029845.7A 2019-04-30 2020-02-28 通过参数初始化和重用来生成预定系数的线性网络编码 Pending CN113728572A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/399,552 US11108705B2 (en) 2019-04-30 2019-04-30 Linear network coding with pre-determined coefficient generation through parameter initialization and reuse
US16/399,552 2019-04-30
PCT/US2020/020427 WO2020222903A1 (en) 2019-04-30 2020-02-28 Linear network coding with pre-determined coefficient generation through parameter initialization and reuse

Publications (1)

Publication Number Publication Date
CN113728572A true CN113728572A (zh) 2021-11-30

Family

ID=70166122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080029845.7A Pending CN113728572A (zh) 2019-04-30 2020-02-28 通过参数初始化和重用来生成预定系数的线性网络编码

Country Status (5)

Country Link
US (1) US11108705B2 (zh)
EP (1) EP3909160B1 (zh)
CN (1) CN113728572A (zh)
ES (1) ES2924311T3 (zh)
WO (1) WO2020222903A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023123336A1 (zh) * 2021-12-31 2023-07-06 Oppo广东移动通信有限公司 通信方法和设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2939584A1 (fr) * 2008-12-08 2010-06-11 Canon Kk Procede de codage reseau dans un reseau maille, produit programme d'ordinateurs, moyen de stockage et noeuds de communication correspondants.
CN102088331A (zh) * 2009-12-03 2011-06-08 株式会社Ntt都科摩 一种数据传输方法及网络节点
CN102487306A (zh) * 2010-12-06 2012-06-06 南京邮电大学 一种无线mesh网络编码方法
CN103166965A (zh) * 2013-03-06 2013-06-19 北京航空航天大学 一种基于子空间属性的多源网络编码污染防御方法
CN103250463A (zh) * 2010-11-23 2013-08-14 香港中文大学 用于通信系统的子集编码
US20140016469A1 (en) * 2012-07-16 2014-01-16 Code On Network Coding, Llc Deterministic distributed network coding
CN103986661A (zh) * 2014-05-30 2014-08-13 上海珉智信息科技有限公司 一种支持网络编码的组播路由协议
US20150095739A1 (en) * 2012-11-08 2015-04-02 Igor Zhovnirnovsky Method & implementation for network coefficents selection

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2397052A1 (en) 2000-01-17 2001-07-26 Sung-Ho Choi Apparatus and method for allocating channel using ovsf code for uplink synchronous transmission scheme in a w-cdma communication system
US9819449B2 (en) 2002-05-14 2017-11-14 Genghiscomm Holdings, LLC Cooperative subspace demultiplexing in content delivery networks
US7574518B2 (en) 2003-06-23 2009-08-11 Microsoft Corporation System and method for computing low complexity algebraic network codes for a multicast network
US7408938B1 (en) 2003-10-15 2008-08-05 Microsoft Coporation System and method for efficient broadcast of information over a network
US7349440B1 (en) 2003-10-15 2008-03-25 Microsoft Corporation System and method for broadcasting information over a network
US7706365B2 (en) 2003-11-25 2010-04-27 California Institute Of Technology Randomized distributed network coding
US7756051B2 (en) 2004-07-02 2010-07-13 Microsoft Corporation Content distribution using network coding
US7529198B2 (en) 2005-04-07 2009-05-05 Microsoft Corporation Scalable overlay network
CA2562202C (en) 2005-10-05 2013-06-18 Lg Electronics Inc. Method of processing traffic information and digital broadcast system
ATE470993T1 (de) 2005-12-22 2010-06-15 Microsoft Corp Optimierungen für netzwerkkodierung und netzwerkdekodierung
WO2007140437A2 (en) 2006-05-31 2007-12-06 Cornell Research Foundation, Inc. Methods and systems for space-time coding for distributed cooperative communication
US8705345B2 (en) 2007-11-26 2014-04-22 Iowa State University Research Foundation, Inc. Network protection using network coding
US8260952B2 (en) 2008-01-31 2012-09-04 Microsoft Corporation Multi-rate peer-assisted data streaming
EP2104036B1 (en) 2008-03-18 2016-06-01 Canon Kabushiki Kaisha Method and device for building of a network coding scheme for data transmission, corresponding computer program product and storage means
DE602008002147D1 (de) 2008-03-28 2010-09-23 Ntt Docomo Inc Verfahren und Vorrichtung zur Erhöhung des Datendurchsatzes in einem Kommunikationsnetzwerk
US8204086B2 (en) 2008-05-19 2012-06-19 Microsoft Corporation Natural network coding for multi-hop wireless network
US8509288B2 (en) 2008-06-04 2013-08-13 Polytechnic Institute Of New York University Spatial multiplexing gain for a distributed cooperative communications system using randomized coding
EP2264930B1 (en) 2009-06-15 2014-05-14 Canon Kabushiki Kaisha Distributed code generation method and device
EP2360863B1 (en) 2010-02-12 2014-04-09 Canon Kabushiki Kaisha Method and device for transmitting data symbols
US8824470B2 (en) 2010-06-02 2014-09-02 Microsoft Corporation Multiparty real time content delivery

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2939584A1 (fr) * 2008-12-08 2010-06-11 Canon Kk Procede de codage reseau dans un reseau maille, produit programme d'ordinateurs, moyen de stockage et noeuds de communication correspondants.
CN102088331A (zh) * 2009-12-03 2011-06-08 株式会社Ntt都科摩 一种数据传输方法及网络节点
CN103250463A (zh) * 2010-11-23 2013-08-14 香港中文大学 用于通信系统的子集编码
CN102487306A (zh) * 2010-12-06 2012-06-06 南京邮电大学 一种无线mesh网络编码方法
US20140016469A1 (en) * 2012-07-16 2014-01-16 Code On Network Coding, Llc Deterministic distributed network coding
US20150095739A1 (en) * 2012-11-08 2015-04-02 Igor Zhovnirnovsky Method & implementation for network coefficents selection
CN103166965A (zh) * 2013-03-06 2013-06-19 北京航空航天大学 一种基于子空间属性的多源网络编码污染防御方法
CN103986661A (zh) * 2014-05-30 2014-08-13 上海珉智信息科技有限公司 一种支持网络编码的组播路由协议

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A.H. LEE; M. MEDARD: "Simplified random network codes for multicast networks", PROCEEDINGS. INTERNATIONAL SYMPOSIUM ON INFORMATION THEORY, 2005. ISIT 2005. *
崔凯;王丽;: "网络编码技术及其在通信网络中的应用", 黑龙江科技信息, no. 04 *

Also Published As

Publication number Publication date
EP3909160A1 (en) 2021-11-17
US20200351220A1 (en) 2020-11-05
US11108705B2 (en) 2021-08-31
EP3909160B1 (en) 2022-06-29
WO2020222903A1 (en) 2020-11-05
ES2924311T3 (es) 2022-10-05

Similar Documents

Publication Publication Date Title
Kushwaha et al. Reliable multimedia transmission over cognitive radio networks using fountain codes
Hansen et al. Network coded software defined networking: Enabling 5G transmission and storage networks
US8223728B2 (en) Combined scheduling and network coding for wireless mesh networks
EP2962428B1 (en) Method and apparatus for improving performance in a wireless network
CN105530195A (zh) 用于确定性以太网的稀疏图码调度
CN107040334B (zh) 用于设备辅助通信的方法、装置和计算机可读介质
KR20120018805A (ko) 레이트리스 코드를 이용한 순번 대기형 협력적인 무선 네트워크 구성
Zeng et al. Joint coding and scheduling optimization in wireless systems with varying delay sensitivities
CN109417533B (zh) 发送数据的方法和转发设备
US20200328858A1 (en) Network coded multipath system and related techniques
EP3909160B1 (en) Linear network coding with pre-determined coefficient generation through parameter initialization and reuse
Shahrasbi et al. Rateless-coding-based cooperative cognitive radio networks: Design and analysis
Barati et al. RDTP: Reliable data transport protocol in wireless sensor networks
Nguyen et al. Exploring the benefits of memory-limited fulcrum recoding for heterogeneous nodes
Do-Duy et al. Efficient communication over cellular networks with network coding in emergency scenarios
CN107615810A (zh) 用于在线网络代码的包头压缩系统和方法
Li et al. Systematic network coding for two-hop lossy transmissions
Zhang et al. Joint redundant and random network coding for robust video transmission over lossy networks
Do-Duy et al. Network coding function for converged satellite–cloud networks
Torre et al. Network-coded multigeneration protocols in heterogeneous cellular networks
Du et al. Reliable transmission protocol for underwater acoustic networks
JP2022524423A (ja) 送信機と受信機、および、シリアライザとデシリアライザ、および、送信と受信のための方法、および、シリアライズ化とデシリアライズ化のための方法
Sinha et al. Improvisation of qos using compression on scalable multimedia manet
US20230422093A1 (en) Communication Method and Communication Participant
Lun et al. Network coding in wireless networks

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