CN103078707B - 一种深空通信中的文件传输方法 - Google Patents
一种深空通信中的文件传输方法 Download PDFInfo
- Publication number
- CN103078707B CN103078707B CN201310000576.3A CN201310000576A CN103078707B CN 103078707 B CN103078707 B CN 103078707B CN 201310000576 A CN201310000576 A CN 201310000576A CN 103078707 B CN103078707 B CN 103078707B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- pdu
- data segment
- segment
- 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)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种用于深空通信的文件传输方法,属于深空通信技术领域。本发明方法以预先确定的编码冗余度对文件数据分组进行喷泉编码,然后通过链路发送,采用发送端主动停止的方式,提高文件一次成功传输的概率,提高文件传输效率,避免了发送端被动停止导致的大延迟深空通信环境中的带宽浪费,提高了链路利用率;同时,结合空间数据系统咨询委员会建议的文件传输协议(CFDP)中的可靠文件传输方法,通过定义其文件协议数据单元(File DataPDU)的内容和非确认应答协议数据单元(NAK PDU)的内容实现基于喷泉编码的深空文件可靠传输,具有良好的协议兼容性和实用性。
Description
技术领域
本发明涉及一种用于深空通信的文件传输方法,属于深空通信技术领域。
背景技术
深空通信链路的特点是传播延迟大、信道误码率高、周期中断和高度非对称,深空文件传输方法是要基于具有上述特点的深空通信链路按照用户的传输质量要求完成文件的高效传输。
深空文件传输方法包括2个主要的技术方向,一个方向是改进地面Internet中使用最为广泛的TCP协议使之适应深空通信链路,另一个方向是针对深空通信链路的特性专门制定深空文件传输标准。针对TCP协议的改进包括明确的拥塞指示防止指数退避和慢启动,头部压缩降低协议开销,增大发送窗口提高链路利用率,修改定时器减少不必要的超时重传,采用NACK或SNACK减少反馈等。针对空间环境制定的文件传输标准采用不依赖反馈的发送机制和SNACK,并支持多个文件的同时传输。不依赖反馈的发送机制是指发送端在一次传输过程中将需要发送的数据全部发送,只有当所有数据发送完成后才会接收反馈,并根据反馈进行一次新的传输,直到接收方正确接收到所有数据。支持多个文件的同时传输是指发送方完成某个文件的一次传输后,立即开始一个新的文件的传输而不需要等待接收方确认前一个文件已经完全正确收到。这些方法的核心思想是要避免不必要的空闲和协议开销,以充分利用宝贵的深空链路资源。
目前实际应用较多的空间文件传输协议是CCSDS所建议的CFDP协议。该协议将一组数据作为一个文件发送,发送文件的过程包括:首先发送包含需要传输的文件的相关信息(CFDP中称为metadata,如文件名、文件大小、源地址和目的地址等)的协议数据单元(PDU);然后发送包含文件内容的File Data PDU;内容发送完成后发送文件结束标识(EOF)PDU;接收端收到EOF PDU后向发送端发送ACK(EOF)PDU,并判断是否需要发送非确认应答(NAK)PDU,其中包含未正确收到的数据的相关信息;发送端根据NAK PDU的内容进行重传,该过程持续到接收端正确接收到该文件的所有数据并发送传输完成(FIN)PDU。发送端接收到FIN PDU,发送ACK(FIN)PDU,关闭发送。接收端收到传输完成ACK(FIN)PDU,整个文件传输结束。CFDP协议针对空间应用专门进行了优化,其不依赖反馈的发送机制、确认反馈(ACK)与选择性非确认反馈(SNACK)结合的反馈重传机制一方面为深空文件传输提供了可靠服务,另一方面大大提高了链路利用率,缩短了文件传输时间。
实际上,当通信链路往返时间比数据发送时间还长时,重传次数将决定一个文件的传输时间。由于深空链路的高误码率特性,即使采用功能强大的物理层前向纠错(FEC)编码,通常也会达到10-4至10-6级别的误码率,这将导致可能需要多次重传才能实现一个较大文件的可靠传输。例如,当误码率为10-5时,传输一个长度为1KB的数据包,误包率约为8%。这也意味着当以1KB的包传输一个1MB的文件时,从概率意义上讲第一次传输接收端只能正确接收942KB数据,错误的82KB数据必须通过重传来纠正。而第一次重传82KB数据时,从概率意义上讲接收端只能正确接收约75KB数据,错误的7KB数据必须通过第二次重传来纠正。这样的反馈重传过程一直持续,直到所有数据正确接收为止。以火星通信为例,最远距离时的往返传播延迟约为40分钟,一个1MB的文件采用1KB的包传输时若需要2次重传才能正确接收,则整个文件的传输需要约123.5分钟才能完成,而其间实际用于发送该文件的时间仅约1.5分钟(发送速率按100Kbps计算)。
正是因为上述原因,减少重传次数是缩短文件传输时间的关键。专利文件“基于双重传策略的深空文件传输方法(CN102624506A)”中将文件传输分为初始发送阶段和重传阶段,初始发送阶段所有数据包发送一次,重传阶段将需要重传的数据包发送两次,从而提高一次重传成功的概率,降低传输时间。该方法虽然可以减少重传的次数,但并没有降低需要一次重传的概率,即该方法仍然有较大的概率需要进行至少一次重传。
专利文件“基于可靠性保证的卫星网络路由构建方法(CN102497649A)”中对分组传输的主路径建立备份路径,在主路径上发送分组后,在备份路径上发送相同的分组以提高分组成功交付的概率。该方法可以提高分组一次传输成功的概率,但由于占用备份路径发送与主路径上完全相同的副本,导致从整个系统来看链路利用率低。
“深空通信文件传输协议的交织技术研究,2011年11月,宇航学报,第31卷第11期”文章中,以及“深空文件传输方法”专利文件中研究了采用喷泉编码对CFDP协议的数据包进行编码发送以提高一次传输成功率,无需反馈的文件传输方法,并在指定的译码失败概率下分析了不同传输数据量时的冗余开销和不同信道误码率下的文件传输时延。该方法可以在冗余开销不大(小于25%)的情况下明显减少传输时间,但是,文章指出的完全不反馈的方法并不能保证所有数据都能被接收端完全正确译码。
目前的深空文件传输方法中存在单次传输成功率低的问题,以及链路利用率不高的问题,难以在实际应用中以简单的策略提供可靠服务。并且,如何使改进的深空文件传输方法与国际标准的空间文件传输协议兼容的研究也较少。这些问题给改进的深空文件传输方法的实际应用带来困难。
发明内容
本发明的目的在于提高深空文件传输的效率、可靠性和兼容性,提供一种深空通信中的文件传输方法。
本发明方法以预先确定的编码冗余度对文件数据分组进行喷泉编码,然后通过链路发送,提高文件一次成功传输的概率,提高文件传输效率;同时,结合空间数据系统咨询委员会(CCSDS)建议的文件传输协议(CFDP)中的可靠文件传输方法,提供与CFDP协议兼容的深空文件可靠传输服务。
本发明方法具体通过以下步骤实现:
步骤一、发送端将待传输文件分为N段,每段K个数据包,每个数据包长度为L字节;
分包方法分为三个步骤:
步骤1.1,求取文件分段数N,N的取值范围为:
其中,Sfile为待传输文件的字节数,K为预先设定的每段文件所需包含的数据包个数,Lmin为预先设定的每个数据包最小长度,Lmax为预先设定的每个数据包最大长度。
优选的,N为满足取值范围的最小整数。
步骤1.2,计算真实的数据包长度L:
步骤1.3,将文件分段
从文件第一个字节开始以步骤1.1和步骤1.2中得到的文件分段数N和数据包长度L对文件分段和分包。当待传输文件字节数Sfile<N·K·L时,在最后的文件分段中添加冗余数据,使Sfile=N·K·L。
从第一个数据段起将N个数据段依次编号为1,2,…,N。
步骤二、设定每个数据段需要重传的喷泉编码包数量K′和发送端喷泉编码冗余度ε;
设定K′=K·ε′,其中ε′为在系统允许的喷泉译码失败概率范围内,接收端译码所要求的编码冗余度。
设定 其中,Pe为估计的当前信道误码率。
步骤三、采用与CFDP协议兼容的文件可靠传输方式传输文件。
发送端的传输过程为:
步骤3.1,发送包含源文件名称、目的文件名称和文件大小信息的文件信息协议数据单元(Metadata PDU),所述文件信息协议数据单元与CFDP协议规定的一致。
步骤3.2,发送端将步骤一得到的第一个数据段进行喷泉编码,编码结果添加到CFDP协议定义的文件数据协议数据单元(File Data PDU)的文件数据(Filedata)域,并将当前喷泉编码包的度信息和数据段长度K添加到File Data域中,然后发送。
所述File Data PDU中包括位置偏移和文件数据,其中,文件数据中包括喷泉编码度、数据段长度和喷泉编码数据。本发明中,每个数据段的位置偏移为该段数据的第一个字节在待传输文件中的偏移字节数,同一数据段中的每个数据包位置偏移取值相同。
优选的,发送端的喷泉编码采用基于有限域的多进制喷泉编码。
步骤3.3,按照步骤3.2所述方法持续生成并发送K(1+ε)个与第一个数据段相关的File Data PDU。
步骤3.4,若步骤1.1中计算的N=1,则数据发送结束;否则,发送端对下一个数据段进行如步骤3.2至步骤3.3的操作,直到发送完K(1+ε)个与数据段N相关的File Data PDU。
步骤3.5,发送文件结束协议数据单元(EOF PDU),并启动与该EOF PDU对应的系统资源。
所述与EOF PDU对应的系统资源包括用于等待接收端文件结束确认(EOFACK)的定时器和用于记录EOF PDU重传次数的计数器。
步骤3.6,等待接收端响应。
步骤3.7,若接收到EOF ACK,则将与该EOF PDU对应的系统资源复位并释放,转至步骤3.6;若接收到非确认应答协议数据单元(NAK PDU),则根据NAK PDU的内容确定接收端是否正确接收Metadata PDU和接收端译码失败的数据段编号,执行步骤3.8;若接收到传输完成协议数据单元(FIN PDU),则进入步骤3.10。
所述非确认应答协议数据单元中包含接收端是否接收到Metadata PDU的信息和接收端译码失败的数据段的相关信息。所述接收端译码失败的数据段的相关信息包含文件范围(Scope)信息和数据段请求(Segment Request)。Scope的内容和Segment Request的内容与CFDP相同。Segment Request中的起始偏移(Start Offset)为译码失败的数据段的第一个字节在文件中的偏移字节数,结束偏移(End Offset)等于Start Offset+K·L。
所述译码失败的数据段编号为:
所述Segment Request用于反馈Metadata接收状态或译码失败数据段信息。
步骤3.8,对译码失败的数据段重新发送K′个含喷泉编码数据的File DataPDU。
步骤3.9,重复步骤3.7至步骤3.8,直到接收到FIN PDU。
步骤3.10,发送端发送传输完成确认应答(FINACK),并释放已成功传输的文件缓存。
接收端的具体传输过程通过如下步骤实现:
步骤3.11,通过接收到的Metadata PDU获取相关文件信息,当收到File DataPDU时,进入步骤3.12。
步骤3.12,从File Data PDU中获取数据段长度K,根据位置偏移确定数据段编号,存储喷泉编码数据和度信息。
所述数据段编号的确定方法为:从File Data PDU中获取位置偏移(Offset),按照公式计算得到数据段编号。其中的数据包长度L通过计数File DataPDU中喷泉编码数据的长度得到。
步骤3.13,当接收到同一个数据段的File Data PDU的数量等于K时,根据喷泉编码数据的度信息开始对该段数据译码,并更新译码结果标识。
所述译码结果标识包含是否成功译码的信息。
步骤3.14,接收到EOF PDU后,发送文件结束确认反馈(EOF ACK)。
步骤3.15,检查译码结果标识,若所有N个数据段已正确译码,则进入步骤3.17;否则,将译码失败的数据段信息添加到NAK PDU中,反馈回发送端。
步骤3.16,接收步骤3.8重传的File Data PDU,根据位置偏移确定数据段编号,获取喷泉编码数据和度信息,将重传的喷泉编码包与对应数据段已接收的喷泉编码包一起译码。重传译码结束后进入步骤3.15。
步骤3.17,发送FIN PDU,并启动与该FIN PDU对应的系统资源。
所述与该FIN PDU对应的系统资源包括用于等待发送方传输FIN ACK的定时器和用于记录FIN PDU重传次数的计数器。
步骤3.18,接收FINACK,将与该FIN PDU对应的系统资源复位并释放,文件传输结束。
有益效果
本发明采用喷泉编码结合发送端主动停止的方式传输文件,一方面提高了文件一次传输成功的概率,减少了文件正确接收所需的传输次数,减少了文件传输时间;另一方面,避免了发送端被动停止导致的大延迟深空通信环境中的带宽浪费,提高了链路利用率。
本发明不改变CFDP协议的文件传输流程,仅通过定义其File Data PDU的内容和NAK PDU的内容即可实现喷泉编码所带来的性能改善,具有良好的协议兼容性和实用性。
附图说明
图1是本发明的一种深空通信文件传输方法发送端的状态转移图;
图2是本发明的一种深空通信文件传输方法接收端的状态转移图;
图3是本发明的一种深空通信文件传输方法中定义的文件数据协议数据单元与CFDP文件数据协议数据单元的结构对比图;
图4是本发明的一种深空通信文件传输方法中定义的非确认反馈协议数据单元与CFDP非确认反馈协议数据单元的结构对比图;
图5是具体实施方式中本发明方法与现有CFDP方法分别成功传输所需要的次数与传输时间对比图。
具体实施方式
下面结合附图和实施例对本发明做进一步说明和详细描述:
图1是本发明的文件传输方法发送端状态转移图。发送端根据实际应用所需的喷泉编码纠删性能和能够接受的编译码复杂度设定每个数据段的长度K,并根据应用需要设定允许的最大数据包长Lmax和最小包长Lmin。当需要传输某个文件时,发送端根据文件大小Sfile和已经设定的参数K,Lmax,Lmin,利用公式计算文件分段数N,利用公式计算每个数据包的实际字节数,从而确定文件的分段和分包方法。然后,发送端根据文件分段方法和接收端期望的喷泉码译码失败概率确定接收端所需喷泉编码冗余度ε′,并利用公式K′=K·ε′计算发生重传时一个数据段需要再发送的喷泉包数量K′;根据估计的信道误码率使用公式计算发送端喷泉编码冗余度ε。
发送端发送Metadata PDU,通知接收端需传送文件的相关信息。然后,发送端从原始文件的第一个字节开始连续获取第一个长度为K·L字节的数据,并分为K个长度为L字节的数据包。发送端对该K个数据包进行喷泉编码,产生一个长度为L字节的喷泉编码包,将该喷泉编码包及其度信息、数据段长度信息添加到File Data PDU的File Data域,将该段数据在待传输文件中的偏移位置(0)添加到File Data PDU的Offset域,从而生成一个与CFDP协议兼容的File DataPDU并发送。发送端继续对上述K个数据包进行喷泉编码并生成相应的FileData PDU发送,直到发送K(1+ε)个File Data PDU为止。若待传输文件仅有一个数据段,则发送端完成数据发送,发送EOF PDU;若待传输文件有多个数据段,则发送端从原始文件偏移位置K·L字节处开始连续获取K·L字节的数据,并进行与第一个数据段相同的处理过程,但File Data PDU的Offset域设置为K·L。上述对数据段的处理过程一直循环,直到N个数据段均发送完成,发送EOF PDU。若待传输文件最后一个数据段的数据少于K·L字节,则进行填充,使其长度为K·L字节。发送端发送EOF PDU后,启动与该PDU相应的定时器和重传计数器资源,然后等待接收端响应。若接收到EOF ACK,发送端将与该EOF PDU对应的定时器和计数器清零并释放,然后继续等待接收端响应;若接收到FIN PDU,发送端发送FIN ACK;若接收到NAK PDU,则开始重传过程。
重传过程包括从接收到的NAK PDU确定是否需要重传Metadata PDU和是否有译码失败的数据段,若需要重传Metadata PDU则重传,若有译码失败的数据段,则再次针对每个译码失败的数据段发送ε′个喷泉编码包,然后等待重传反馈。若再次接收到NAK PDU,则重复重传过程;若接收到FIN PDU,则发送FIN ACK。发送端从NAK PDU获取译码失败数据段的编号其中start Offset为NAK PDU中的start Offset域的值。发送FIN ACK后,发送端释放文件缓存。
图2是本发明的文件传输方法接收端状态转移图。接收端通过接收到的Metadata PDU获取相关文件信息。当收到File Data PDU时,接收端处理File DataPDU,根据其Offset域确认当前数据包所属的数据段编号,从Data域的前16比特数据获取该喷泉编码包的编码度信息并存储,从紧邻的16比特数据获取当前喷泉编码包所属数据段长度K并存储,从Data域的剩余部分获取喷泉编码数据并存储。其中数据段编号的确定方法为:从File Data PDU中获取Offset,按照公式计算得到数据段编号。上述处理File data PDU的过程一直持续,当接收到同一个数据段的File Data PDU的数量等于K时,根据喷泉编码数据的度信息开始对该段数据译码,并更新译码结果标识。所述译码结果标识包含是否成功译码的信息。
当接收到EOF PDU后,接收端发送EOF ACK,检查译码结果标识。若所有N个数据段已正确译码,则发送FIN PDU,并启动与该FIN PDU对应的系统资源;否则,将译码失败的数据段信息添加到NAK PDU中,反馈回发送端。所述NAK PDU包含文件范围(Scope)信息和Segment Request。Scope的内容和用于反馈Metadata接收状态的Segment Request的内容与CFDP完全相同。当Segment Request用于反馈译码失败的数据段信息时,Segment Request中的起始偏移(Start Offset)为译码失败的数据段的第一个字节在文件中的偏移字节数,结束偏移(End Offset)通过End Offset=Start Offset+K·L计算。接收端接收重传的File Data PDU,根据位置偏移确定数据段编号,获取喷泉编码数据和度信息,将重传的喷泉编码包与对应数据段已接收的喷泉编码包一起译码。重传译码结束后检查译码结果标识,若所有N个数据段已正确译码,则发送FIN PDU,并启动与该FIN PDU对应的系统资源;否则,重复上述重传过程直到所有N个数据端均正确译码,发送FIN PDU,并启动与该FIN PDU对应的系统资源。当接收到FIN ACK,接收端将与该FIN PDU对应的系统资源复位并释放,文件传输结束。
图3是本发明方法中定义的File Data PDU与CFDP中定义的File Data PDU的对比。File Data PDU中,Offset域指示的是该PDU中的喷泉编码包所属的数据段的第一个字节在原始文件中的偏移字节数,对同一数据段的所有K个数据包,PDU的Offset域取值相同。Data域的前16比特用于传输本喷泉编码包的度信息,紧邻的16比特用于传输本喷泉编码包所属数据段的长度K,后续数据为喷泉编码数据。
图4是本发明方法中定义的NAK PDU与CFDP中定义的NAK PDU的对比。CFDP中每个重传数据区用一个重传起始位置和一个重传结束位置指示。本发明方法中对一个数据段(K个数据包)使用相同的一个起始位置和结束位置,若某个需要重传的数据段编号为S1,则指示该数据段需要重传的起始位置通过公式(S1-1)·K·L计算,结束位置通过公式S1·K·L-1计算。
实施例
假设对传输协议来说下层服务的误码率为10-5,以距离地球4亿千米的火星探测器以100Kbps的信息率传输一个大小为10MB的文件至地面站为例,对本发明的具体实施过程进行说明。
假设用户要求在译码失败概率10-2时数据段长度尽量小以减小编译码复杂度,经仿真,选定数据段长度K=100。同时,为兼顾协议效率和链路丢包性能,设定Lmin=512字节,Lmax=1024字节。然后,使用公式计算得到102.4≤N≤204.8。取满足条件的最小整数为N=103,将文件分为103个数据段。每个数据包的长度为字节。经过上述计算,文件分段与分包结果为,10MB的文件分为N=103个数据段,每个数据段K=100个数据包,每个数据包L=1019字节。由于10MB的文件不能被上述N·K·L整除,经计算,需要在第103个数据段中填充9940字节冗余数据,即第103个数据段中第92至第100个数据包均为填充数据,第91个数据包中有769字节为填充数据。
经仿真,当用户要求译码失败概率10-2,采用K=100的数据段长度时,接收端正确译码所需冗余度ε′=0.05,利用公式K′=K·ε′计算得到每个数据段需要重传的喷泉编码包数量K′=5,利用公式计算发送端喷泉编码冗余度ε=0.14。
上述参数计算与设定完成后,火星探测器发送Metadata PDU,通知地面站需传送一个大小为10MB的文件。然后,火星探测器从原始文件的第一个字节开始连续获取第一个长度为101900字节的数据,并分为100个长度为1019字节的数据包。火星探测器对这100个数据包进行喷泉编码,产生一个长度为1019字节的喷泉编码包,设该喷泉编码包的度为10,则按照下述方式生成一个长度为1027字节的File Data PDU并发送:在File Data PDU的Offset域填入数据段偏移0;在File Data PDU的Data域的前16比特填入喷泉编码包度信息10,在紧邻的16比特填入数据段长度100,接下来的区域填入1019字节的喷泉编码数据。火星探测器继续对上述100个数据包进行喷泉编码并生成相应的FileData PDU发送,直到发送114个File Data PDU为止,这114个File Data PDU中的Offset域的值均为0。经过上述过程,火星探测器完成了一个数据段的发送,然后从原始文件的第101901个字节开始获取101900个字节,重复上述的编码发送过程。该过程发送的114个File Data PDU的Offset域均为101900。上述过程一直持续,直到发送完102个数据段。火星探测器获取原始文件中第10393801字节至第10485760字节的数据,并在数据尾部填充9940字节的数据0,构成100个长度为1019字节的数据包,然后进行喷泉编码后生成114个FileData PDU发送。所有数据发送完成后,火星探测器发送EOF PDU,启动与该EOFPDU对应的定时器和重传计数器资源,然后等待地面站响应。若火星探测器接收到EOF ACK,则将与该EOF PDU对应的定时器和重传计数器清零并释放,然后继续等待地面站响应;若火星探测器收到FIN ACK,则释放10MB文件所对应的缓存,文件传输结束;若火星探测器收到NAK PDU,则查看是否需要重传MetadataPDU和需要重传的数据段信息。若需要重传Metadata PDU,则重传Metadata PDU;若有需要重传的数据段,则根据NAK PDU中Segment段中的起始偏移确定需要重传的数据段编号。假设NAK PDU中反馈需要重传一个数据段,其起始偏移为0,结束偏移为101899,则火星探测器确认需要重传文件中的第一个数据段。火星探测器再次发送5个包含第一个数据段喷泉编码数据的File Data PDU,然后等待地面站的重传反馈。若火星探测器接收到FIN PDU,则释放10MB文件所对应的缓存,文件传输结束;若火星探测器再次接收到NAK PDU,则重复重传过程,直到收到FIN PDU。
上述文件传输过程中,地面站的操作过程如下。地面站从接收到的MetadataPDU中获知需要接收一个长度为10MB的文件,并准备接收文件。当地面站接收到File Data PDU,则根据接收到的File Data PDU中的Offset确定接收到的喷泉编码数据包所属的数据段编号,如File Data PDU中的Offset为101900,则地面站确定接收到的喷泉编码数据包属于第二个数据段。地面站根据接收到的File Data PDU中Data域的前16比特确定喷泉编码包的度信息,根据接下来的16比特确定数据段长度为100,然后将File Data PDU剩余的内容存储。上述处理File data PDU的过程一直持续,当同一个数据段接收到的喷泉编码包数量等于该数据段长度100时,地面站开始对该段数据进行喷泉译码。上述过程一直持续,直到收到EOF PDU。收到EOF PDU后,地面站发送EOF ACK,然后检查所有收到的数据段的喷泉译码结果。若所有数据段均译码成功,地面站发送FIN PDU,启动与该FIN PDU对应的定时器和重传计数器资源;若有译码失败的数据段,地面站生成NAK PDU并发送。NAK PDU中包含了所有译码失败的数据段的第一个字节在原始文件中的起始偏移字节数和结束偏移字节数。如假设第一个数据段译码失败,地面站在发送的NAK PDU中描述重传起始偏移为0,重传结束偏移为101899。发送NAK PDU后,地面站等待重传的File Data PDU,并在收到重传的File Data PDU后进行如首次传输时对File Data PDU的处理过程,将重新接收到的喷泉编码包与已经接收到对应段的喷泉编码包一起继续进行喷泉译码。译码结束后,地面站再次检查喷泉译码结果,若所有数据段译码成功,则发送FIN PDU,启动与该FIN PDU对应的定时器和重传计数器资源;若还有译码失败的数据段,则对该段再次进行上述重传过程,直到所有数据段译码成功,发送FIN PDU,启动与该FIN PDU对应的定时器和重传计数器资源。当地面站接收到FIN ACK后,将与该FIN PDU对应的定时器和重传计数器清零并释放,文件传输结束。
将上述实施例中的传输过程与CFDP的重传次数和文件传输时间进行对比,结果表示在图5中。可以看出,本深空通信中的文件传输方法在较低的协议开销(本例中<15%)下,以与国际标准CFDP协议兼容的方式大大提高了文件传输效率。
以上所述为本发明的较佳实施例而已,本发明不应该局限于该实施例和附图所公开的内容。凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。
Claims (8)
1.一种深空通信中的文件传输方法,其特征在于:包括如下步骤:
步骤一、发送端将待传输文件分为N段,每段K个数据包,每个数据包长度为L字节;
分包方法具体为:
步骤1.1,求取文件分段数N,N的取值范围为:
其中,Sfile为待传输文件的字节数,K为预先设定的每段文件所需包含的数据包个数,Lmin为预先设定的每个数据包最小长度,Lmax为预先设定的每个数据包最大长度;
步骤1.2,计算真实的数据包长度L:
步骤1.3,将文件分段:
从文件第一个字节开始以步骤1.1和步骤1.2中得到的文件分段数N和数据包长度L对文件分段和分包;当待传输文件字节数Sfile<N·K·L时,在最后的文件分段中添加冗余数据,使Sfile=N·K·L;
从第一个数据段起将N个数据段依次编号为1,2,…,N;
步骤二、设定每个数据段需要重传的喷泉编码包数量K′:
K′=K·ε′,其中ε′为在系统允许的喷泉译码失败概率范围内,接收端译码所要求的编码冗余度;
设定发送端喷泉编码冗余度ε:
其中,Pe为估计的当前信道误码率;
步骤三、采用与CFDP协议兼容的文件可靠传输方式传输文件,具体方法为;
发送端的传输过程为:
步骤3.1,发送包含源文件名称、目的文件名称和文件大小信息的文件信息协议数据单元;
步骤3.2,发送端将步骤一得到的第一个数据段进行喷泉编码,编码结果添加到CFDP协议定义的File Data PDU的文件数据域,并将当前喷泉编码包的度信息和数据段长度K添加到文件数据域中,然后发送;
所述File Data PDU表示文件数据协议数据单元;其中包括位置偏移和文件数据,所述文件数据中包括喷泉编码度、数据段长度和喷泉编码数据;
步骤3.3,按照步骤3.2所述方法持续生成并发送K(1+ε)个与第一个数据段相关的File Data PDU;
步骤3.4,若步骤1.1中计算的N=1,则数据发送结束;否则,发送端对下一个数据段按照步骤3.2至步骤3.3的方法进行编码并发送,直到N个数据段的FileData PDU均发送完毕;
步骤3.5,发送文件结束协议数据单元,并启动对应的系统资源;
步骤3.6,等待接收端响应;
步骤3.7,若接收到文件结束确认,则将与该文件结束协议数据单元对应的系统资源复位并释放,转至步骤3.6;若接收到NAK PDU,则根据NAK PDU的内容确定接收端是否正确接收文件信息协议数据单元和接收端译码失败的数据段编号,执行步骤3.8;若接收到FIN PDU,则进入步骤3.10;
所述NAK PDU为非确认应答协议数据单元,其中包含接收端是否接收到文件信息协议数据单元的信息和接收端译码失败的数据段的相关信息;所述接收端译码失败的数据段的相关信息包含文件范围信息和数据段请求;
所述FIN PDU为传输完成协议数据单元;
步骤3.8,对译码失败的数据段重新发送K′个含喷泉编码数据的File DataPDU;
步骤3.9,重复步骤3.7至步骤3.8,直到接收到FIN PDU;
步骤3.10,发送端发送传输完成确认应答,并释放已成功传输的文件缓存;
接收端的具体传输过程通过如下步骤实现:
步骤3.11,通过接收到的文件信息协议数据单元获取相关文件信息,当收到File Data PDU时,进入步骤3.12;
步骤3.12,从File Data PDU中获取数据段长度K,根据位置偏移确定数据段编号,存储喷泉编码数据和度信息;
步骤3.13,当接收到同一个数据段的File Data PDU的数量等于K时,根据喷泉编码数据的度信息开始对该段数据译码,并更新译码结果标识;
步骤3.14,接收到文件结束协议数据单元后,发送文件结束确认反馈;
步骤3.15,检查译码结果标识,若所有N个数据段已正确译码,则进入步骤3.17;否则,将译码失败的数据段信息添加到NAK PDU中,反馈回发送端;
步骤3.16,接收步骤3.8重传的File Data PDU,根据位置偏移确定数据段编号,获取喷泉编码数据和度信息,将重传的喷泉编码包与对应数据段已接收的喷泉编码包一起译码;重传译码结束后进入步骤3.15;
步骤3.17,发送FIN PDU,并启动对应的系统资源;
步骤3.18,接收传输完成确认应答,将与该FIN PDU对应的系统资源复位并释放,文件传输结束。
2.根据权利要求1所述的一种深空通信中的文件传输方法,其特征在于:N为满足取值范围的最小整数。
3.根据权利要求1所述的一种深空通信中的文件传输方法,其特征在于:每个数据段的位置偏移为该段数据的第一个字节在待传输文件中的偏移字节数,同一数据段中的每个数据包位置偏移取值相同。
4.根据权利要求1所述的一种深空通信中的文件传输方法,其特征在于:发送端的喷泉编码采用基于有限域的多进制喷泉编码。
5.根据权利要求1所述的一种深空通信中的文件传输方法,其特征在于:所述与文件结束协议数据单元对应的系统资源包括用于等待接收端文件结束确认的定时器和用于记录文件结束协议数据单元重传次数的计数器。
6.根据权利要求1所述的一种深空通信中的文件传输方法,其特征在于:译码失败的数据段编号为:
其中,Start Offset为译码失败的数据段的第一个字节在文件中的偏移字节数。
7.根据权利要求1所述的一种深空通信中的文件传输方法,其特征在于:步骤3.12所述数据段编号的确定方法为:从File Data PDU中获取位置偏移,按照公式计算得到数据段编号;其中Offset为位置偏移,数据包长度L通过计数File Data PDU中喷泉编码数据的长度得到。
8.根据权利要求1所述的一种深空通信中的文件传输方法,其特征在于:所述与FIN PDU对应的系统资源包括用于等待发送方传输完成确认应答的定时器和用于记录FIN PDU重传次数的计数器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310000576.3A CN103078707B (zh) | 2013-01-03 | 2013-01-03 | 一种深空通信中的文件传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310000576.3A CN103078707B (zh) | 2013-01-03 | 2013-01-03 | 一种深空通信中的文件传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103078707A CN103078707A (zh) | 2013-05-01 |
CN103078707B true CN103078707B (zh) | 2015-06-10 |
Family
ID=48155122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310000576.3A Expired - Fee Related CN103078707B (zh) | 2013-01-03 | 2013-01-03 | 一种深空通信中的文件传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103078707B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532674B (zh) * | 2013-10-23 | 2016-08-17 | 东北大学 | 一种基于复杂网络的文件传输编码方法 |
WO2015165090A1 (zh) * | 2014-04-30 | 2015-11-05 | 华为技术有限公司 | 一种数据传输的方法和装置 |
CN104243096B (zh) * | 2014-09-15 | 2017-10-27 | 重庆邮电大学 | 一种基于喷泉码的深空多文件传输方法 |
US10412151B2 (en) | 2015-01-26 | 2019-09-10 | Huawei Technologies Co., Ltd. | Method and system for on-demand file repair |
CN105790899B (zh) * | 2016-02-17 | 2019-05-10 | 北京理工大学 | 一种基于喷泉码的单次反馈重传方法 |
EP3447943B1 (en) | 2016-05-11 | 2021-04-07 | Huawei Technologies Co., Ltd. | Data transmission method, device and system |
WO2021142773A1 (en) * | 2020-01-17 | 2021-07-22 | Qualcomm Incorporated | An efficient scheme for fountain codes over multiple radio access technologies |
WO2021179244A1 (en) * | 2020-03-12 | 2021-09-16 | Qualcomm Incorporated | Fountain-code-based broadcast channel with limited feedback |
CN111683138B (zh) * | 2020-06-05 | 2023-06-16 | 中国有色金属长沙勘察设计研究院有限公司 | 一种基于Socket的高效自定义数据传输方法 |
CN111817886B (zh) * | 2020-06-29 | 2023-12-26 | 新华三信息安全技术有限公司 | 一种获取管理对象数据的方法及设备 |
CN114048063B (zh) * | 2021-09-28 | 2024-06-07 | 北京控制工程研究所 | 一种火星车驶离过程中切机或复位故障处理的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164026A (zh) * | 2011-05-20 | 2011-08-24 | 哈尔滨工业大学深圳研究生院 | 基于深空通信环境下的喷泉码编译方法 |
CN102209072A (zh) * | 2011-05-20 | 2011-10-05 | 哈尔滨工业大学深圳研究生院 | 深空文件传输方法 |
-
2013
- 2013-01-03 CN CN201310000576.3A patent/CN103078707B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164026A (zh) * | 2011-05-20 | 2011-08-24 | 哈尔滨工业大学深圳研究生院 | 基于深空通信环境下的喷泉码编译方法 |
CN102209072A (zh) * | 2011-05-20 | 2011-10-05 | 哈尔滨工业大学深圳研究生院 | 深空文件传输方法 |
Non-Patent Citations (1)
Title |
---|
一种基于喷泉码和并行路径的深空通信无反馈协议;刘珩等;《重庆邮电大学学报(自然科学版)》;20121031;第24卷(第5期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103078707A (zh) | 2013-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103078707B (zh) | 一种深空通信中的文件传输方法 | |
CN104243096B (zh) | 一种基于喷泉码的深空多文件传输方法 | |
US8386901B2 (en) | Method, device and software application for transmitting data packets in a communication system | |
CN102273118B (zh) | 数据重传的方法、装置及系统 | |
US20150117468A1 (en) | Apparatus and method for transmitting data | |
EP1708400B1 (en) | Loss tolerant transmission control protocol | |
CN104301077A (zh) | 一种混合重传的方法 | |
CN1973500A (zh) | 用于传送数据的方法和系统以及用于发射数据的站 | |
CN1422032A (zh) | 一种混合自动重传方法 | |
CN105471549A (zh) | 基于a-mpdu子帧位置信息控制的块确认系统及方法 | |
CN103338090A (zh) | 业务数据传输方法、设备及系统 | |
CN103607264B (zh) | 基于3g网络的带内数据传输方法 | |
CN108933642B (zh) | 一种基于码块分组的下行重传方法、基站及终端 | |
CN106817192A (zh) | 一种错误估计的方法、基站及终端 | |
CN104618007B (zh) | 一种同步卫星tcp协议分段连接优化方法 | |
EP3241115B1 (en) | Method and system for on-demand file repair | |
CN105100100A (zh) | 适用于分布式网络的udp传输方法和系统 | |
CN102315923B (zh) | 一种3g卫星通信系统无线链路控制方法 | |
CN102104463A (zh) | 数据报文请求重传方法及装置 | |
CN104092707A (zh) | 基于分块校验与确认的卫星网络tcp协议性能增强方法 | |
WO2000060798A1 (fr) | Terminal de communication, station de base et procede de radiocommunication | |
CN102377544A (zh) | 一种通信系统中的重传方法 | |
CN105119695A (zh) | 一种基于快速否定应答的空间文件传输方法 | |
CN104144044A (zh) | 一种多设备透明harq的处理方法 | |
WO2014194493A1 (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 |
Granted publication date: 20150610 Termination date: 20160103 |
|
EXPY | Termination of patent right or utility model |