CN102892142A - 自适应选择中继方案的中继传输***及方法 - Google Patents
自适应选择中继方案的中继传输***及方法 Download PDFInfo
- Publication number
- CN102892142A CN102892142A CN2012103195549A CN201210319554A CN102892142A CN 102892142 A CN102892142 A CN 102892142A CN 2012103195549 A CN2012103195549 A CN 2012103195549A CN 201210319554 A CN201210319554 A CN 201210319554A CN 102892142 A CN102892142 A CN 102892142A
- Authority
- CN
- China
- Prior art keywords
- packet
- wireless device
- source node
- network code
- 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.)
- Granted
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明一种自适应选择中继方案的中继传输***及方法,属于无线通信技术领域;该***包括三个无线电设备,每个无线电设备由一台通用软件无线电设备USRP和一台计算机组成;上述三个无线电设备作为三个节点,其中两个节点作为源节点,另外一个作为中继节点,并且两个源节点通过中继节点进行中继通信,所述的中继节点可自适应选择无网络编码双向中继传输方式或流间网络编码双向中继传输方式;本发明建立出适合软件无线电平台的多种中继方式,并在软件无线电平台上实现了多种中继传输方案,并能够支持传输数据、文件和视频3种不同类型的业务;本发明可提高提高吞吐率,并通过软件无线电平台实现在办公室条件下进行实验数据的采集和分析。
Description
技术领域
本发明属于无线通信技术领域,具体涉及一种自适应选择中继方案的中继传输***及方法。
背景技术
在无线通信中,随着通信距离的增加,无线信号的衰减也越严重,这就使得长距离的点对点直接通信变得不现实。为了解决这一问题,满足即使相隔很远的两个节点间也能够完成彼此的数据传输与交换,可以在这两个节点之间寻找一个或一系列能够同时与两节点直接通信的节点来进行辅助通信,这种通信方式就称之为无线中继。无线中继传输具有诸多优势,可以扩展无线网络的覆盖范围、实现长距离的可靠通信、节省布线、降低成本等,目前已广泛应用于移动通信、无线局域网、卫星通信网络等领域,且在未来的新型无线通信中,也将具有更加广泛的应用前景。
然而,现有无线中继协议(即路由协议)仍存在诸多不足,尚有许多关键问题待研究解决。目前已被广泛应用的无线中继协议其最初是参考有线网络的路由模式设计的,认为网络节点之间是一个点对点的链路,并没有考虑无线网络不同于有线网络的固有的链路广播特性,因此其效率较低。为解决这一问题,网络编码这一概念被提出。其原理是将数据包在中继节点处进行编码处理,并将编码后的内容作为一个新的数据包进行广播,相邻的其他节点再对收到的一系列编码后的数据包进行解码,以获得自己需要的数据包。这样,特别是在有一个节点为中心节点的无线中继网络中,可以减小中继节点所需的转发次数,从而提高吞吐率等性能指标。
GNU Radio是一个可以通过最小程度地结合硬件,用软件来定义无线电波发射和接收的方式,进而搭建无线电通信***的开源软件。它为大众提供一套信号处理软件模块,将那些高性能的无线电设备中所遇到的数字调制等问题转换成软件问题,在通信***的设计和实现上具有更大的灵活性。GNU Radio应用程序用Python来编写,实际的信息处理过程是由C++来实现的,因此开发者可以获得实时高效的可复用的应用开发环境。
通用软件无线电外设(Universal Software Radio Peripheral,USRP)是与GNU Radio配套使用的硬件平台,旨在使普通的计算机能够像高带宽的软件无线电设备一样工作。从本质上讲,它充当了一个无线电通信***的数字基带和中频部分。其基本设计理念是在主机CPU上完成所有波形相关方面的处理,如调制和解调,其他诸如数字上下变频、抽样和内插等高速通用操作都在FPGA(Field Programmable Gata Array)上完成。USRP的真正价值是它能使工程师和设计师以较低预算和最少精力进行创造。
目前国内外的相关研究仅针对单一中继方式进行,比如只针对传统中继方式或只针对网络编码方式进行研究,并没有将传统中继方式、网络编码方式联合考虑。另外,市场上现有成型的中继设备仅支持传统中继方式,不支持网络编码方式,也没有人利用相关设备实现可以同时支持多种中继方式自适应选择。
发明内容
针对现有技术的不足,本发明的目的提出一种自适应选择中继方案的中继传输***及方法,以实现将传统中继方式和网络编码方式相结合,可以同时支持多种中继方式自适应选择,进一步提高吞吐率、灵活度的目的。
一种自适应选择中继方案的中继传输***,该***包括三个无线电设备,每个无线电设备由一台通用软件无线电设备USRP和一台计算机组成;上述三个无线电设备作为三个节点,其中两个节点作为源节点,另外一个作为中继节点,并且两个源节点通过中继节点进行中继通信,所述的作为中继节点无线电设备是用于自适应选择无网络编码双向中继传输方式进行数据传输还是流间网络编码双向中继传输方式进行传输的装置;
所述的作为中继节点的无线电设备包括网络编码模块、协议头部生成模块、协议头部分析模块和网络解码模块;其中:
网络编码模块:用于在作为中继节点的无线电设备处对作为源节点的两个无线电设备发送的两个数据包进行网络编码;
协议头部生成模块:用于生成数据包包头,包括非网络编码的数据包、网络编码数据包、请求包和停止包;
协议头部分析模块:用于在作为中继节点的无线电设备接收数据包时,对接收数据包包头进行分析处理,包括识别数据包的类型、源地址和目的地址的信息;并通过判断作为源节点的两个无线电设备数据包发送完成情况,进行自适应选择无网络编码双向中继传输方式或流间网络编码双向中继传输方式;
网络解码模块:用于在作为源节点的无线电设备处根据本地数据包与接收到的网络编码包进行异或运算解出另一个作为源节点的无线电设备发送的数据包。
采用自适应选择中继方案的中继传输***进行中继传输的方法,包括以下步骤:
步骤1、在三个无线电设备内建立通信协议,包括所需数据包格式、请求包和停止包格式,以及帧格式;并启动流间网络编码双向中继传输过程;
步骤2、作为中继节点的无线电设备向作为其中一个源节点的无线电设备发送请求包,请求作为该源节点的无线电设备发送数据包;
步骤3、作为源节点的无线电设备接收到请求包后,通过协议头部生成模块对数据加入 包头,形成完整的数据包,并通过打包与封装成帧模块将上述数据包封装成帧,发送至作为中继节点的无线电设备;
步骤4、作为中继节点的无线电设备接收并储存作为一个源节点的无线电设备发送的数据包,并向作为另一个源节点的无线电设备发送请求包,请求该源节点的无线电设备发送数据包;
步骤5、作为另一个源节点的无线电设备接收到上述请求包后,通过协议头部生成模块对数据加入包头,形成完整的数据包;并通过打包与封装成帧模块将上述数据包封装成帧,发送至作为中继节点的无线电设备;
步骤6、作为中继节点的无线电设备接收到作为另一个源节点的无线电设备数据包后,利用网络编码模块将作为一个源节点的无线电设备发送的数据包与作为另一个源节点的无线电设备发送的数据包进行网络编码操作,形成网络编码包;
步骤7、作为中继节点的无线电设备通过协议头部生成模块将上述网络编码包加入包头,形成完整的数据包,并通过打包与封装成帧模块将上述数据包封装成帧,发至作为源节点的两个无线电设备;
步骤8、作为源节点的两个无线电设备接收到编码数据包后,利用自身内部的解码模块解出对方作为源节点的无线电设备所发送的数据包;
步骤9、判断作为源节点的两个无线电设备是否都未发送完毕;若是,则返回执行步骤2;否则,执行步骤10;
步骤10、判断作为源节点的两个无线电设备是否都发送完毕,若是,则执行步骤12;否则,则执行步骤11;
步骤11、启动无网络编码双向中继传输过程继续进行数据传输;
步骤12、作为中继节点的无线电设备向作为源节点的两个无线电设备发送停止包,作为源节点的两个无线电设备停止传输。
本发明优点:
本发明是一种自适应选择中继方案的中继传输***及方法,本发明建立出适合软件无线电平台的多种中继方式,并在软件无线电平台上实现了多种中继传输方案,并能够支持传输数据、文件和视频3种不同类型的业务;本发明可提高吞吐率,并通过软件无线电平台实现在办公室条件下进行实验数据的采集和分析。
附图说明
图1为本发明一种实施例无网络编码双向中继传输方式的结构框图;
图2为本发明一种实施例流间网络编码双向中继传输方式的结构框图;
图3为本发明一种实施例无网络编码双向中继传输方式和流间网络编码双向中继传输方式的原理图;
其中,图3中(a)为无网络编码双向中继传输方式的原理图;图3中(b)为流间网络编码双向中继传输方式的原理图;
图4为本发明一种实施例封装成帧过程示意图;图5为本发明一种实施例基于GNU Radio和USRP软件无线电平台的中继传输方法流程图;其中,
图5(a)为本发明一种实施例自适应选择中继方案的中继传输方法流程图;图5(b)为本发明一种实施例无网络编码双向中继传输方案的流程图;
图6为本发明一种实施例***功能框架示意图;
图7为本发明一种实施例***平台示意图;
图8为本发明一种实施例的非网络编码数据包包头格式示意图;
图9为本发明一种实施例的网络编码数据包包头格式示意图;
图10为本发明一种实施例采用信道编码时帧格式示意图;
其中,图10中(a)为控制帧格式;图10中(b)数据帧格式;
图11为本发明一种实施例不采用信道编码时帧格式示意图;
其中,图11中(a)为控制帧格式;图11中(b)数据帧格式;
图12为本发明一种实施例请求包和控制包的发送过程示意图;
图13为本发明一种实施例发送模块的结构示意图;
图14为本发明一种实施例流间网络编码双向中继方式源节点的接收过程图;
图15为本发明一种实施例流间网络编码双向中继方式源节点的发送过程;
图16为本发明一种实施例流间网络编码双向中继方式中继节点的接收过程;
图17为本发明一种实施例突发大小不同时,网络编码与有效吞吐量的关系示意图;
图18为本发明一种实施例突发大小不同时,采用网络编码时有效吞吐量增益的实际值和理论值的关系示意图;
图19为本发明一种实施例突发大小不同时,网络编码与误包率的关系示意图;
图20为本发明一种实施例发射速率不同时,网络编码与有效吞吐量的关系示意图;
图21为本发明一种实施例发射速率不同时,采用网络编码时有效吞吐量增益的实际值和理论值的关系示意图;
图22为本发明一种实施例发射速率不同时,网络编码与误包率的关系示意图。
具体实施方式:
下面结合如图对本发明做进一步说明。
一种自适应选择中继方案的中继传输***,该***包括三个无线电设备,每个无线电设备由一台通用软件无线电设备USRP和一台计算机组成;上述三个无线电设备作为三个节点,其中两个节点作为源节点A、B,另外一个作为中继节点R,并且两个源节点A、B通过中继 节点R进行中继通信,所述的作为中继节点无线电设备是用于自适应选择无网络编码双向中继传输方式进行数据传输还是流间网络编码双向中继传输方式进行传输的装置;上述两种传输方式如图1和图2所示,所述的无网络编码双向中继传输方式中,每个节点无线电设备内包括协议头部生成模块、协议头部分析模块、打包与封装成帧模块、发送模块、接收模块和存储模块;流间网络编码双向中继传输方式中,除包括上述模块外,作为源节点的无线电设备还包括网络解码模块,作为中继节点的无线电设备还包括网络编码模块;其中:网络编码模块用于在作为中继节点的无线电设备处对作为源节点的两个无线电设备发送的两个数据包进行网络编码;协议头部生成模块用于生成数据包包头,包括非网络编码的数据包、网络编码数据包、请求包和停止包;协议头部分析模块用于在作为中继节点的无线电设备接收数据包时,对接收数据包包头的进行分析处理,包括识别数据包的类型、源地址和目的地址的信息;并通过判断作为源节点的两个无线电设备数据包发送完成情况,进行自适应选择无网络编码双向中继传输方式或流间网络编码双向中继传输方式;网络解码模块用于在作为源节点的无线电设备处根据本地数据包与接收到的网络编码包进行异或运算解出另一个作为源节点的无线电设备发送的数据包。
所述的无网络编码双向中继传输***和流间网络编码双向中继传输***的工作原理如下:
如图3所示,在三节点的中继网络中,源节点A和源节点B之间由于距离太远,无法直接进行通信,需要借助中继节点R进行辅助来完成彼此的数据交换。图3(a)所示,无网络编码双向中继传输***采用存储转发方式,即源节点A向中继节点R发送数据包,中继节点R再向源节点B转发源节点A发送的数据包,源节点B向中继节点R发送数据包,中继节点R再向源节点A转发源节点B发送的数据包。图3(b)所示,流间网络编码双向中继传输***中,首先源节点A和源节点B分别向中继节点R发送数据包x和y,中继节点R接收上述两个数据包x、y后,对其进行异或(XOR)运算,再将运算结果形成一个新的数据包 广播至源节点A、B,源节点A、B接收到数据包 后,根据自身的数据包解出对方的数据包,例如,源节点A通过 ,从而获得源节点B的数据包,该***相比于无网络编码双向中继传输***节省了源节点A和B交换数据的时间,从而提高了网络吞吐量。
本发明实施例中,流间网络编码双向中继传输与无网络编码双向中继传输的适用区别在于中继节点采用基于网络编码与解码的中继方式进行辅助中继传输。
(1)本发明实施例中,网络编码与解码模块的实现:
网络编码核心思想是将待编码双方数据进行逐比特异或(XOR)操作从而能够将多个数据包的信息用一个网络编码的数据包来表示。由于网络编码需要逐比特进行异或操作,从而要求待编码双方数据的大小保持一致。由于传输业务可是对称的也可是非对称,且待传输业 务量的大小也可不等,因此,在本发明实施例中,通过补0扩充的方式来保证并实现网络编码双方数据的大小一致,即在进行网络编码之前,检查待编码双方数据的大小:若二者一致,则直接进行具体的编码操作;若二者不一致,则对较小者进行补0扩充,即在其后补充若干个0,使其大小与另一方的大小保持一致,再进行具体的编码操作。
网络解码模块仍然通过异或操作来实现,将网络编码包和本地数据包进行逐比特异或操作。在进行网络解码时,若恢复出的内容为补0后的新数据包,为获得其中的有用数据部分,则需要再对其进行消0还原操作,去除冗余。
(2)本发明实施例中,协议头部生成与分析模块的实现:
协议头部生成模块用于数据包包头的生成与处理。在本发明实施例中,发送数据时,协议头部生成与分析模块用于生成数据包包头,包括数据包DATA(非网络编码的数据包或网络编码数据包)、请求包RTS和控制包STOP包头的生成;
本发明实施例中数据包头部主要携带数据包类型(DATA、RTS、STOP等)、源地址目的地址、数据包ID以及有用数据长度信息。因此,协议头部的生成主要是将这些信息包含到头部中去。在形成包头的过程中,首先需要采集该包的相关信息,并将其封装在相应的包头字节变量中,如数据包类型、地址信息、数据包ID、有用数据长度信息,这一过程可以通过按位或操作来完成,并将各信息变量转换为字符串(即字节流,因Python中没有Byte类型);最后,通过函数将表示包头各字节内容的字符串连接起来,即为生成好的包头。
协议头部分析模块在接收数据时,用于对接收数据包包头的分析处理,包括识别数据包的类型、源地址、目的地址等信息,为节点下一步的处理过程提供决策依据。通过函数完成包头分析与处理功能,包括对接收到的数据包的包头首字节和次字节的内容进行分析并提取相关包信息,这主要是通过按位与操作来完成,并将字符串转化为信息变量,返回的内容是由True(判定词,判定结果为真)和False(判定词,判定结果为假)构成的。
(3) 本发明实施例中,打包与封装成帧模块的实现:
本发明实施例中的打包与封装成帧模块用于完整数据包的形成以及将数据包最终封装成帧。打包过程就是将已生成好的数据包包头与数据包的内容即有用数据部分连接起来形成初始数据包。封装成帧就是将初始数据包进行处理形成一个可直接交付给发包器的数据帧。
打包过程的实现仅需将包头和包内容加起来便可,在Python语言中仅需将两个字符串相加便可实现。
本发明中封装成帧处理过程如图4所示。其中,由于帧长度是固定的,因此有时需要进行内容填充,以符合帧长度的要求;内容填充功能是通过字符串相加实现的,填充的内容为全0;加CRC(Cyclic Redundancy Check, 循环冗余校验码)校验是GNU Radio内置的函数实现;信道编码是由GNU Radio自带的信道编码函数实现的,本发明实施例采用RS(Read Solomon, 里德·所罗门码)信道编码;通过相关函数实现加帧头操作。该模块最终返回一个完整的数据帧。
(4)本发明实施例中,建立传输***的传输过程:
如图5(a)和图5(b)所示,其中,图5(a)表示自适应选择中继方案的中继传输方法流程图,图5(b)表示无网络编码双向中继传输方案的流程图:
中继传输的发起与结束控制:
在本发明实施例中,中继传输的发起与结束控制均由中继节点来完成。中继节点通过发送请求包RTS(Request to Send)来请求源节点发送数据,从而发起中继传输过程;中继节点通过发送控制包STOP来告知所有节点停止传输,从而结束中继传输过程,采用中继触发模式能够避免USRP设备本身具有的不确定发送时延和接收延时的限制问题。
节点收发数据的方式:
在本发明实施例中,节点包括源节点和中继节点两种类型。其中,由于是双向传输,源节点也可以充当目的节点;中继节点为起辅助中继功能的中间节点。不同类型的节点其收发数据的类型不同,其收发数据的方式也不同。具体来讲,对于发送过程,源节点仅发送数据包,而中继节点既可以发送数据包又可以发送控制包;对于接收过程,源节点既可以接收数据包又可以接收控制包,而中继节点仅接收数据包。另外,对于控制包的收发,是以单个数据包的形式进行的;而对于数据包的收发,则是以一个突发(一次发送的连续多个数据包)为单位进行的。
节点收发状态的切换控制:
在本发明实施例中,对于中继节点来讲,其初始状态为发送状态,当发送结束后则立即切换为接收状态;而当在接收过程中检测到突发尾(突发的最后一个数据包)时则又重新切换为发送状态,并重复以上过程。对于源节点来讲,其初始状态为接收状态,其中源节点当接收到请求包RTS后,则立即启动发送过程,切换为发送状态;当本次突发中的所有数据包全部发送完毕后,则重新切换为接收状态,等待新的请求包和控制包的到来。
流间网络编码双向中继方案中除了要解决上述问题外,还要解决网络编码与解码:
在本发明实施例中,中继节点首先接收不同源节点发来的数据包,并将其存储与相应的接收缓存器中,然后,再对不同接收缓存器中的数据进行网络编码,获得网络编码的数据包并发送出去。而源节点发送数据包时,需要对发出的数据包在本地保留备份,当接收到中继节点发出的网络编码的数据包,结合备份的本地数据包,可以进行网络解码,从而获得期望数据。
本发明的***功能框架示意图如图6所示,本发明实施例中所实现平台的***功能框架中,从计算机网络四层模型入手,主机Host主要负责应用层的业务生成发送与接收处理,例如传输视频时,发送方主机Host负责读取待传输视频文件,而接收方主机Host则负责将接收到的视频文件通过播放器播放出来;网络层主要负责数据的封包、网络编码和解码等;MAC(Media Access Control, 媒体接入控制)层模块主要负责协调网络中各节点的信道接入;物理层主要负责信号的调制、解调等信号处理操作,并与USRP(Universal Software Radio Peripheral,通用软件无线电外设)连接进行信号的接收与发送;测试与记录模块主要负责各模块的测试与调试,并记录详细的运行信息以及进行相关数据的统计与分析处理。
本发明实施例***包括三个无线电设备,每个无线电设备由一台通用软件无线电设备USRP和一台计算机组成;如图7所示;一个完整的通信节点由USRP设备和PC(Personal Computer, 个人电脑)共同组成。PC安装有GNU Radio(与USRP配套使用的开源软件)软件包,以及本实施例已编写完成并调试通过的Python(一种编程语言)应用,主要完成高层协议功能,USRP设备完成具体信号的收发工作,主要完成物理层的信号处理等功能。搭建完整的实现平台,共需要3个节点组成,分别作为源节点A,中继节点R和源节点B。本发明实施例中实现平台可以完全支持流间网络编码双向中继传输方式和无网络编码双向中继传输方式,并可同时支持传输数据、文件和视频3种不同类型的业务。
采用自适应选择中继方案的中继传输***进行中继传输的方法,如图5(a)所示,包括以下步骤:
步骤1、在三个无线电设备内建立通信协议,包括所需数据包格式、请求包和停止包格式,以及帧格式;并启动流间网络编码双向中继传输过程;
本发明实施例中收发数据包的类型包括请求包RTS、控制包STOP和数据包DATA(包括网络编码的数据包和非网络编码的数据包)。它们都由包头和数据部分构成,其中,数据部分即为待传输的有用数据,首部指定数据包的类型、源地址和目的地址、数据包ID以及有用数据的长度等信息。如图8所示,该图适用于除网络编码数据包以外的所有数据包,包括非网络编码的数据包、请求包RTS和控制包STOP,图9仅适用于网络编码的数据包。
如图8所示:
对于非网络编码数据包,其初始数据包的首部包含pkt_type(第0字节)、pkt_addr(第1字节)、pkt_id(第2、3字节)和length(第5字节)信息,分别指定了该初始数据的数据类型、源地址和目的地址、数据包ID以及有用数据的长度;padding表示数据填充部分,其功能主要是为了占位,以保证包头总长度为6字节,一般填充为0,不能为空;对于请求包RTS和控制包STOP来讲,其有用数据部分均为空,故其length = 0。
其中pkt_type的后四位分别为is_RTS、is_STOP、is_DATA、is_last_in_burst,分别表示该包为请求包、停止包、数据包和突发尾,用于节点对该包进行识别;如果突发尾为真,表示该包为一个突发中的最后一个包,标志一个突发发送结束;
pkt_addr中前四位0、1、2、3表示源地址src_addr,后四位4、5、6、7表示目的地址dest_addr。
如图9所示,对于网络编码的数据包,其初始数据包的首部包含pkt_type、pkt_id_A、pkt_id_B和length信息,pkt_type指定了该数据包的类型,其中is_NC表示该包为网络编码 包,pkt_id_A和pkt_id_B为进行网络编码双方的数据包ID,length为网络编码双方编码后的网络编码包长度。
本发明实施例中,初始数据包经过封装成帧处理后得到帧,包括控制帧(RTS帧、STOP帧)和数据帧。本发明实施例中的传输方案均可自主选择是否采用信道编码,故数据帧格式需要考虑采用信道编码和不采用信道编码两种策略。图10所示为采用信道编码时,图中(a)为控制帧格式;图中(b)数据帧格式。图11所示为不采用信道编码时,图中(a)为控制帧格式;图中(b)数据帧格式其中:
header为帧头,表示该帧的类型。当header = 0x0000时,表示该帧为控制帧;当header = 0xffff时,表示该帧为数据帧,其中0x表示16进制,即之后的每一位都是用四位二进制表示;
payload_with_cc是控制帧里的内容,包含payload_with_crc和cc,其中payload_with_crc表示含有CRC校验的数据包,而cc表示payload_with_crc部分的信道编码值,cc对于控制帧来讲,其长度为4字节;针对数据帧,其长度为32字节,由所选信道编码方式决定;
payload_with_crc包含payload和crc32;payload由初始数据包组成,或由初始数据包和paddings组成,当帧类型和是否采用信道编码确定之后,其长度固定;crc32为payload部分的CRC校验值,其长度为固定值4字节。
如图10和图11所示,无论是控制帧还是数据帧,其组成部分相同,当采用信道编码时,均由header、payload、crc32和cc构成;当不采用信道编码时,均由header、payload、crc32构成。控制帧和数据帧的不同之处在于其组成部份的大小不同,另外,header和payload的内容也不同。
数据帧的payload部分由初始数据包和paddings(数据填充)部分构成。由于本发明实施例采用的信道编码仅支持固定长度的输入,故对其长度有特别限制,当数据长度小于规定值时,需要补充0来实现。此外,对于具体crc32校验码以及信道编码cc值的计算过程,都是有GNU Radio本身所提供的相关函数完成。
步骤2、作为中继节点的无线电设备R向作为其中一个源节点的无线电设备A发送请求包,请求作为该源节点的无线电设备发送数据包;
本发明实施例中,如图12所示,中继节点R通过协议头部生成模块生成请求包RTS_to_A的包头,然后通过打包与封装成帧模块形成完整的数据包并封装成帧,然后通过发送模块将帧发送出去,请求源节点A发送数据包。
数据包是以字节流的形式进入发送模块,如图13所示,依次经过类型转换(比特转化为符号)、高斯滤波和FM调制后获得已调制的信号,再经过放大器放大,通过USRP以无线电磁波的形式发送。选用不同的调制方式,其具体的调制处理过程也不同,本发明实施例采用的调制方式为GMSK(Guassian Minimum Shift Keying, 高斯最小频移键控)调制。初始数据包的有效数据部分内容均为空,包头即为初始数据包的全部内容,另外,发送请求包RTS时,必须指定该包的源地址和目的地址。
步骤3、作为源节点的无线电设备A接收到请求包后,通过协议头部生成模块对数据加入包头,形成完整的数据包,并通过打包与封装成帧模块将上述数据包封装成帧,发送至作为中继节点的无线电设备R;
本发明实施例中,源节点A利用接收模块接收到请求包RTS_to_A后,利用协议头部分析模块对请求包进行分析,然后对待发送的数据加入包头,形成完整的数据包DATA_A2R,然后再封装成帧,通过发送模块发送给中继节点。
对请求包的接收过程如图14所示。当源节点收到一个新包后,首先更新统计变量总收包数n_rcvd,以便后续统计诸如误包率等相关信息;再依次对收到的内容进行信道解码以及CRC32检验,若检验有误则直接丢弃该包并结束本次接收处理过程;若检验无误,则可继续进行下一步的收包处理。若检验无误,该节点先更新统计变量正确收包数n_right,通过协议头部分析模块对该包包头进行分析,获得该包的类型、源地址、目的地址信息,并根据这些信息继续进行下一步的收包处理。通过包头分析结果中的包类型信息判断,若该包是控制包STOP,则应直接启动停止过程,否则,继续判断是否为网络编码包,若不是,根据目的地址信息判断该包是否为发给该源节点的包(即是否为is_to_me)。若不是,则丢弃该包;若是发给该源节点,则进行统计变量n_for_me(统计发送给自己包的数量)的更新,并根据该包的类型信息判断该包是否为RTS包。若不是,则直接丢弃;若是,则应启动数据发送过程。
源节点数据包的发送过程如图15所示。本发明中源节点的数据包发送过程与请求包和控制包的发送过程区别在于本发送过程在封装成帧之前,需判断是否要进行网络编码,若要进行网络编码,则将该数据包缓存起来,用于之后的解码过程,否则就直接封装成帧,此外,只有当发送队列已满(即队列中的数据包数量等于突发大小)时,封装好的帧才进入发送模块,否则,继续读取数据包。
当传输视频或文件时,首先检查是否已经到达文件末尾,若是,则说明文件已经传输完毕,直接返回空;否则,说明文件尚未全部传完,则从指定的待发送数据源中读取固定的字节数作为本次传输的内容。
步骤4、作为中继节点的无线电设备R接收并储存作为一个源节点的无线电设备A发送的数据包,并向作为另一个源节点的无线电设备B发送请求包,请求该源节点的无线电设备B发送数据包;
本发明实施例中,中继节点R接收源节点A发来的数据包DATA_A2R,并将其存储在接收缓存器Rcvd_Buffer_A中;中继节点R发送请求包RTS_to_B,请求源节点B发送数据;
中继节点接收过程如图16所示。由图所示,在分析包头之前的步骤与源节点步骤相同。通过包头分析处理之后,控制节点可以获得该包的类型、源地址、目的地址信息。首先根据 目的节点信息判断该包是否发给本节点,若不是,则直接丢弃;若是,则继续判断该包类型是否为DATA。如果该包不是DATA类型,则直接丢弃;若是,则根据包头分析结果中的源地址信息记录该包的来源。当该包内容为空时,将相应的结束标识设置为True;若内容不为空,则存入相应的收包缓存器中。并根据包头分析结果中的包类型信息,判断该包是否为突发尾,若不是,则重新启动超时计时器,并结束本次收包处理过程; 如果是突发尾,说明本次突发的所有数据包都接收完毕,那么就判断该包是从哪个节点发送过来的,如果是从源节点A发送过来的,则向源节点B发送请求包RTS_to_B。
步骤5、作为另一个源节点的无线电设备B接收到上述请求包后,通过协议头部生成模块对数据加入包头,形成完整的数据包;并通过打包与封装成帧模块将上述数据包封装成帧,发送至作为中继节点的无线电设备R;
本发明实施例中,源节点B收到请求包RTS_to_B后,发送数据包DATA_B2R给中继节点R;对请求包的接收过程与步骤4中的一致,对数据包的发送过程与步骤4中的发送过程也一致。
步骤6、作为中继节点的无线电设备R接收到作为另一个源节点的无线电设备B数据包后,利用网络编码模块将作为一个源节点的无线电设备发送的数据包与作为另一个源节点的无线电设备B发送的数据包进行网络编码操作,形成网络编码包;
本发明实施例中,中继节点R接收源节点B发来的数据包DATA_B2R,并将其存储在接收缓存器Rcvd_Buffer_B中;中继节点R将缓存器Rcvd_Buffer_A和Rcvd_Buffer_B中的数据利用网络编码模块进行网络编码后获得网络编码的数据包DATA_NC;在实际的数据传输中,由于两个源节点的数据不等长,在传输的最后,会出现缓存器Rcvd_Buffer_A和Rcvd_Buffer_B中的数据包个数不等,两个缓存器中的数据包进行网络编码后,那么其中一个缓存器中剩下的数据包不再进行编码。
中继节点对第二个源节点数据包的接收过程与步骤5中的接收过程相同。
步骤7、作为中继节点的无线电设备R通过协议头部生成模块将上述网络编码包加入包头,形成完整的数据包,并通过打包与封装成帧模块将上述数据包封装成帧,发至作为源节点的两个无线电设备A、B;
DATA_NC的ID可以直接从两个源节点的原数据包包头信息中提取,即packet_id_A与packet_id_B;有效数据长度new_length为2个数据包的原有效数据长度进行网络编码后的值;网络编码数据包的有效数据部分为2个数据包的原有效数据部分进行网络编码后的值。将形成的网络编码数据包的包头与其有效数据部分连接起来完成打包操作并获得网络编码的初始数据包。最后,将其送入封装成帧器,完成封装成帧处理。
中继节点发送过程与源节点数据包的发送过程相同,如图15所示,但不必对网络编码包 进行缓存。
步骤8、作为源节点的两个无线电设备A、B接收到编码数据包后,利用自身内部的解码模块解出对方作为源节点的无线电设备所发送的数据包;
本发明实施例中,源节点A、B接收中继节点R发出的网络编码的数据包DATA_NC,并结合本地发送缓存器中的数据包进行网络解码,从而获得各自期望数据;源节点的接收过程如图14所示,判断是否为网络编码包,如果是就利用网络解码模块解出对方的数据包。
步骤9、判断作为源节点的两个无线电设备是否都未发送完毕;若是,则返回执行步骤2;否则,执行步骤10;
在图16中继节点对每个源节点的数据包的接收过程中,会检查发送来的数据包DATA是否为空,如果为空,那么就表明该源节点的数据已经发送完毕,那么设置结束标志X_is_end为真,其中X为A或B;如果检查到接收的结束标志都为假,那么就进行进一步操作,重新向两个源节点发送数据请求包;
如果两结束标识同时为True,说明双方待传输的内容均已经全部传输完毕,此时可以直接发送控制包STOP,并启动停止过程stop_execution来结束传输;若不全为True,则需要根据该包的来源信息进行下一步处理。若该包是来自源节点A,则发送RTS_to_B请求另一源节点发送数据;若该包是来自源节点B,则启动数据发送过程,先将来自A的数据转发给B,再将来自B的数据转发给A,然后检查收包缓存器的状态;否则的话,应直接检查收包缓存器的状态。若两个收包缓存器的内容同时为空,则重新发送RTS_to_A, 否则,直接重新启动超时计时器并结束本次收包处理过程。
步骤10、判断作为源节点的两个无线电设备是否都发送完毕,若是,则执行步骤12;否则,则执行步骤11;
如果检查到两个结束标志都为真,表明两个节点的数据都发送完毕,那么中继节点就执行步骤12;如果有一个源节点的结束标志为真,那么表明该节点的数据已经发送完毕,这个时候另外一个源节点的数据还未发送完毕,此时在中继节点处无法进行网络编码,因此执行步骤11,采用无网络编码双向中继方案来继续完成数据传输。
步骤11、启动无网络编码双向中继传输过程继续进行数据传输;
无网络编码双向中继传输***的传输过程如图5(b),本发明实施例中,无网络编码双向中继传输步骤如下:
步骤a:中继节点R发送请求包RTS_to_A至源节点A,请求源节点A发送数据;
步骤b:源节点A收到请求包RTS_to_A后,发送数据包DATA_A2R给中继节点R;
步骤c:中继节点R接收源节点A发来的数据包DATA_A2R,并将其存储在接收缓存器Rcvd_Buffer_A中;
步骤d:中继节点R发送请求包RTS_to_B至源节点B,请求源节点B发送数据;
步骤e:源节点B收到请求包RTS_to_B后,发送数据包DATA_B2R给中继节点R;
步骤f:中继节点R接收源节点B发来的数据包DATA_B2R,并将其存储在接收缓存器Rcvd_Buffer_B中;
步骤g:中继节点R将缓存器Rcvd_Buffer_A中的数据包(即源节点A发给中继节点R的数据包)全部转发给节点B,并清空缓存器Rcvd_Buffer_A;
步骤h:中继节点R将缓存器Rcvd_Buffer_B中的数据包(即源节点B发给中继节点R的数据包)全部转发给源节点A,并清空缓存器Rcvd_Buffer_B;
步骤i:两个源节点中的数据是否完全发送完毕,如果没有就执行步骤a,否则执行步骤j;
步骤j:中继节点向两个源节点发送STOP,两个源节点停止发送数据包。
在无网络编码双向中继传输过程中,源节点与中继节点的发送和接收过程与流间网络编码双向中继传输过程中的发送过程和接收过程相似,只不过此时中继节点不再进行网络编码,而是直接转发收到的数据包;接收过程中源节点不用再进行网络解码。
步骤12、作为中继节点的无线电设备向作为源节点的两个无线电设备发送停止包,作为源节点的两个无线电设备停止传输。
本发明实施例中,源节点A和源节点B收到控制包STOP后,立即停止传输。
图17为突发大小与有效数据吞吐量的关系,其中带圆圈的实线表示无网络编码,带三角的为有网络编码,在突发大小一定时,由图可知,采用网络编码时的有效数据吞吐量要远大于不采用网络编码时的有效数据吞吐量,且突发越大时,这一相差的幅度也越大。因此网络编码可以提高***吞吐量的理论优势。
图18为采用网络编码时,有效数据吞吐量增益与突发大小的关系,带圆圈的实线表示实际值,带三角的实线表示理论值。由图可知,随着突发大小的增加,有效数据吞吐量增益也在不断提高,并最终接近理论值。
图19为突发大小与误包率之间的关系,各曲线与图17中代表的含义相同。由图19所示,随着突发大小的增大,误包率是降低的,当突发大小固定时,采用网络编码时的误包率要比不采用网络编码时的误包率小。因此网络编码还可以在一定程度上降低误包率。
图20为发射速率与有效数据吞吐量之间的关系,各曲线与图17中代表的含义相同。由图20所示,当发射速率不断增大时,有效数据吞吐量也随之提高;当发射速率一致时,采用网络编码时比不采用网络编码时的有效数据吞吐量要高,且发射速率越大,这一优势越明显。
图21为采用网络编码时发射速率与有效数据吞吐量增益之间的关系,各曲线与图18中代表的含义相同。由图21可知,有效数据吞吐量增益随着发射速率的增大而增大,且其值与有效数据吞吐量增益的理论值非常接近。
图22为发射速率与误包率之间的关系,各曲线与图17中代表的含义相同。由图22可以看出,误包率随着发射速率的增大而降低。另外,在发射速率相同时,使用网络编码时要比不使用网络编码时的误包率低。
Claims (2)
1.一种自适应选择中继方案的中继传输***,该***包括三个无线电设备,每个无线电设备由一台通用软件无线电设备USRP和一台计算机组成;上述三个无线电设备作为三个节点,其中两个节点作为源节点,另外一个作为中继节点,并且两个源节点通过中继节点进行中继通信,其特征在于:所述的作为中继节点无线电设备是用于自适应选择无网络编码双向中继传输方式进行数据传输还是流间网络编码双向中继传输方式进行传输的装置;
所述的作为中继节点的无线电设备包括网络编码模块、协议头部生成模块、协议头部分析模块和网络解码模块;其中:
网络编码模块:用于在作为中继节点的无线电设备处对作为源节点的两个无线电设备发送的两个数据包进行网络编码;
协议头部生成模块:用于生成数据包包头,包括非网络编码的数据包、网络编码数据包、请求包和停止包;
协议头部分析模块:用于在作为中继节点的无线电设备接收数据包时,对接收数据包包头进行分析处理,包括识别数据包的类型、源地址和目的地址的信息;并通过判断作为源节点的两个无线电设备数据包发送完成情况,进行自适应选择无网络编码双向中继传输方式或流间网络编码双向中继传输方式;
网络解码模块:用于在作为源节点的无线电设备处根据本地数据包与接收到的网络编码包进行异或运算解出另一个作为源节点的无线电设备发送的数据包。
2.采用权利要求1所述的自适应选择中继方案的中继传输***进行中继传输的方法,其特征在于:包括以下步骤:
步骤1、在三个无线电设备内建立通信协议,包括所需数据包格式、请求包和停止包格式,以及帧格式;并启动流间网络编码双向中继传输过程;
步骤2、作为中继节点的无线电设备向作为其中一个源节点的无线电设备发送请求包,请求作为该源节点的无线电设备发送数据包;
步骤3、作为源节点的无线电设备接收到请求包后,通过协议头部生成模块对数据加入包头,形成完整的数据包,并通过打包与封装成帧模块将上述数据包封装成帧,发送至作为中继节点的无线电设备;
步骤4、作为中继节点的无线电设备接收并储存作为一个源节点的无线电设备发送的数据包,并向作为另一个源节点的无线电设备发送请求包,请求该源节点的无线电设备发送数据包;
步骤5、作为另一个源节点的无线电设备接收到上述请求包后,通过协议头部生成模块对数据加入包头,形成完整的数据包;并通过打包与封装成帧模块将上述数据包封装成帧,发送至作为中继节点的无线电设备;
步骤6、作为中继节点的无线电设备接收到作为另一个源节点的无线电设备数据包后,利用网络编码模块将作为一个源节点的无线电设备发送的数据包与作为另一个源节点的无线电设备发送的数据包进行网络编码操作,形成网络编码包;
步骤7、作为中继节点的无线电设备通过协议头部生成模块将上述网络编码包加入包头,形成完整的数据包,并通过打包与封装成帧模块将上述数据包封装成帧,发至作为源节点的两个无线电设备;
步骤8、作为源节点的两个无线电设备接收到编码数据包后,利用自身内部的解码模块解出对方作为源节点的无线电设备所发送的数据包;
步骤9、判断作为源节点的两个无线电设备是否都未发送完毕;若是,则返回执行步骤2;否则,执行步骤10;
步骤10、判断作为源节点的两个无线电设备是否都发送完毕,若是,则执行步骤12;否则,则执行步骤11;
步骤11、启动无网络编码双向中继传输过程继续进行数据传输;
步骤12、作为中继节点的无线电设备向作为源节点的两个无线电设备发送停止包,作为源节点的两个无线电设备停止传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210319554.9A CN102892142B (zh) | 2012-08-31 | 2012-08-31 | 自适应选择中继方案的中继传输***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210319554.9A CN102892142B (zh) | 2012-08-31 | 2012-08-31 | 自适应选择中继方案的中继传输***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102892142A true CN102892142A (zh) | 2013-01-23 |
CN102892142B CN102892142B (zh) | 2015-03-04 |
Family
ID=47535461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210319554.9A Expired - Fee Related CN102892142B (zh) | 2012-08-31 | 2012-08-31 | 自适应选择中继方案的中继传输***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102892142B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014166440A1 (zh) * | 2013-07-09 | 2014-10-16 | 中兴通讯股份有限公司 | 集群中继方法、装置、***及存储介质 |
CN105490729A (zh) * | 2015-11-26 | 2016-04-13 | 中国航天空气动力技术研究院 | 一种基于卫星链路的一对多数据传输***及方法 |
CN106604273A (zh) * | 2016-12-23 | 2017-04-26 | 成都三零嘉微电子有限公司 | 基于安全语音SoC芯片的手机语音加密通讯方法 |
CN107204798A (zh) * | 2017-05-12 | 2017-09-26 | 南京邮电大学 | 一种基于usrp的放大中继转发优化***及其优化方法 |
CN108233993A (zh) * | 2017-01-22 | 2018-06-29 | 南京邮电大学 | 一种基于usrpn200的无线中继传输实现优化方法 |
CN110855403A (zh) * | 2019-11-12 | 2020-02-28 | 哈尔滨工业大学(深圳) | 空间信息网的高能效网络编码arq双向中继传输机制 |
CN114938251A (zh) * | 2022-05-18 | 2022-08-23 | 厦门大学 | 基于通用软件无线电平台的水声物理层网络编码中继*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101141172A (zh) * | 2006-09-07 | 2008-03-12 | 华为技术有限公司 | 无线中继***中的传输方法及传输*** |
US20080227388A1 (en) * | 2007-03-16 | 2008-09-18 | Samsung Electronics Co., Ltd. | Method and apparatus for transmitting and receiving data using multi-user superposition coding in a wireless relay system |
CN101282199A (zh) * | 2008-04-14 | 2008-10-08 | 北京邮电大学 | 用于多中继协作通信的中继策略的自适应选择方法 |
CN101997593A (zh) * | 2009-08-17 | 2011-03-30 | 上海交通大学 | 自适应中继方式择优选择方法和中继节点 |
-
2012
- 2012-08-31 CN CN201210319554.9A patent/CN102892142B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101141172A (zh) * | 2006-09-07 | 2008-03-12 | 华为技术有限公司 | 无线中继***中的传输方法及传输*** |
US20080227388A1 (en) * | 2007-03-16 | 2008-09-18 | Samsung Electronics Co., Ltd. | Method and apparatus for transmitting and receiving data using multi-user superposition coding in a wireless relay system |
CN101282199A (zh) * | 2008-04-14 | 2008-10-08 | 北京邮电大学 | 用于多中继协作通信的中继策略的自适应选择方法 |
CN101997593A (zh) * | 2009-08-17 | 2011-03-30 | 上海交通大学 | 自适应中继方式择优选择方法和中继节点 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014166440A1 (zh) * | 2013-07-09 | 2014-10-16 | 中兴通讯股份有限公司 | 集群中继方法、装置、***及存储介质 |
CN105490729A (zh) * | 2015-11-26 | 2016-04-13 | 中国航天空气动力技术研究院 | 一种基于卫星链路的一对多数据传输***及方法 |
CN105490729B (zh) * | 2015-11-26 | 2018-10-09 | 中国航天空气动力技术研究院 | 一种基于卫星链路的一对多数据传输***及方法 |
CN106604273A (zh) * | 2016-12-23 | 2017-04-26 | 成都三零嘉微电子有限公司 | 基于安全语音SoC芯片的手机语音加密通讯方法 |
CN108233993A (zh) * | 2017-01-22 | 2018-06-29 | 南京邮电大学 | 一种基于usrpn200的无线中继传输实现优化方法 |
CN108233993B (zh) * | 2017-01-22 | 2021-03-30 | 南京邮电大学 | 一种基于usrpn200的无线中继传输实现优化方法 |
CN107204798A (zh) * | 2017-05-12 | 2017-09-26 | 南京邮电大学 | 一种基于usrp的放大中继转发优化***及其优化方法 |
CN110855403A (zh) * | 2019-11-12 | 2020-02-28 | 哈尔滨工业大学(深圳) | 空间信息网的高能效网络编码arq双向中继传输机制 |
CN110855403B (zh) * | 2019-11-12 | 2022-05-31 | 哈尔滨工业大学(深圳) | 空间信息网的高能效网络编码arq双向中继传输机制 |
CN114938251A (zh) * | 2022-05-18 | 2022-08-23 | 厦门大学 | 基于通用软件无线电平台的水声物理层网络编码中继*** |
Also Published As
Publication number | Publication date |
---|---|
CN102892142B (zh) | 2015-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102892142B (zh) | 自适应选择中继方案的中继传输***及方法 | |
CN109639679B (zh) | 一种适应北斗短报文的天基测控数据传输方法 | |
CN100593313C (zh) | 用于无线网络中的动态聚集的方法和*** | |
CN102365885B (zh) | 传送和接收数据帧的***和方法 | |
CN105743616B (zh) | 基于北斗短报文通信的长报文分割和可靠通信方法 | |
US7003710B2 (en) | Communications method, communications apparatus and communications system using same communications apparatus | |
RU2337484C2 (ru) | Способ и устройство для ретрансляции, облегчающей связь | |
CN104335516B (zh) | 用于高效重传通信的方法和设备 | |
CN106385390B (zh) | 一种基于fpga实现万兆以太网电口传输的方法及*** | |
CN112468209B (zh) | 一种基于SpaceWire总线实现的在轨高速注入***及方法 | |
CN102301818A (zh) | 中继链路中处理数据的方法、中继节点和*** | |
CN101809952A (zh) | 用于具有延迟迟钝数据转发的无线通信的***和方法 | |
CN101636989A (zh) | 在无线通信中用于传输不同类型信息的方法和*** | |
CN101621368A (zh) | 一种重传数据包的方法、装置及*** | |
CN103580773A (zh) | 数据帧的传输方法及装置 | |
CN103095439A (zh) | 基于网络编码的双向协作中继传输数据的方法和设备 | |
CN108631873B (zh) | 网络管理信息的收发方法、装置、发送设备和接收设备 | |
CN103607264B (zh) | 基于3g网络的带内数据传输方法 | |
CN102208962B (zh) | 无线数据传输方法 | |
CN103701562A (zh) | 自由空间光通信***中的差错控制协议 | |
CN112838886B (zh) | 一种用于小卫星的数据处理方法、装置、设备及存储介质 | |
CN101238674A (zh) | 经由无线网络和无线装置发送和/或接收数据的方法和设备 | |
CN104144044B (zh) | 一种多设备透明harq的处理方法 | |
JP5185024B2 (ja) | 通信システム及びその従属局並びに中継伝送方法 | |
CN201742566U (zh) | 多点组网式数据*** |
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: 20150304 Termination date: 20210831 |