CN109714130B - 一种基于喷泉码的文件传输方法 - Google Patents

一种基于喷泉码的文件传输方法 Download PDF

Info

Publication number
CN109714130B
CN109714130B CN201811436842.6A CN201811436842A CN109714130B CN 109714130 B CN109714130 B CN 109714130B CN 201811436842 A CN201811436842 A CN 201811436842A CN 109714130 B CN109714130 B CN 109714130B
Authority
CN
China
Prior art keywords
file
block
sequence
state
server
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
CN201811436842.6A
Other languages
English (en)
Other versions
CN109714130A (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.)
Nantong Research Institute for Advanced Communication Technologies Co Ltd
Original Assignee
Nantong University
Nantong Research Institute for Advanced Communication Technologies 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 Nantong University, Nantong Research Institute for Advanced Communication Technologies Co Ltd filed Critical Nantong University
Priority to CN201811436842.6A priority Critical patent/CN109714130B/zh
Publication of CN109714130A publication Critical patent/CN109714130A/zh
Application granted granted Critical
Publication of CN109714130B publication Critical patent/CN109714130B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于喷泉码的文件传输方法,在服务端与客户端之间建立基于UDP组播协议的传输通道,用喷泉码编解码来避免在无线环境下的大量数据包重传,在一对多的数据传输过程中,服务端将待发文件按固定大小分块并进行喷泉码编码,通过卫星链路发送给多个客户端,客户端接收后进行解码,若解码失败,记录块序号,并在所有文件块解码完成后,将块序号及卫星链路质量状况填入补块请求帧,发送给服务端;若所有文件块解码成功,将文件块缓存在磁盘中,继续等待接收下一块,所有文件块接收完成后将缓存的临时文件还原成原始文件。这样可以在有限的卫星宽带资源上避免多次的一对一传输相同数据所引发的带宽重复利用问题,间接实现更多的数据传输。

Description

一种基于喷泉码的文件传输方法
技术领域
本发明涉及文件传输,特别涉及一种基于喷泉码的文件传输方法。
背景技术
在海域互联网***为代表的卫星数据交换***中应用了基于喷泉码的空间网络传输方法,传统的卫星通信网络中,为了保证传输的可靠性,通常仰赖发送端以及接收端持续性的双向沟通,即接收端每接收到一个封包,都会给发送端一个反馈,成功则反馈ACK,失败则丢掉毁坏的封包,并传送请求让发送端再次发送该封包。然而,基于反馈重传的卫星通信网络,在实际应用中不太理想,一个是在面对卫星链路这种传输距离很长的时候,由于长距离会导致发送方等待反馈确认信息时的空闲时间太长,从而大大影响性能;另一方面是单一删除信道模型不适用于数据从一个发送者同时发送给多个接收者的情况。在这种情况下,从发送者到多个接收者的删除信道的删除概率可能不同。当接收者数量多时,不太可能估计每个信道的删除概率和丢包情况。因此采用基于喷泉码的空间网络传输方法,通过前向冗余编码实现可靠性传输,反向信道只需传输少量反馈信息,极大降低对反向带宽的需求。
发明内容
本发明要解决的技术问题是提供一种实现更多的数据传输的基于喷泉码的文件传输方法。
为了解决上述技术问题,本发明的技术方案为:一种基于喷泉码的文件传输方法,包括以下步骤:
步骤(1):在服务端,从文件列表或数据库中获取待传输文件路径,读取文件大小L,根据小包长度l,计算文件的块数B及包数P;同时定义一个文件块发送序列,初始化状态为未发送状态,用于标记每个文件块的发送状态;
步骤(2):服务端发送文件信息帧,向客户端通知待发送文件的信息;
步骤(3):在线客户端收到信息帧后,检测本地磁盘是否存在相同文件,若存在,则不进行处理;若不存在,则在本地磁盘建立相应缓存文件,同时创建一个补块序列,用于存储未收到的块序号或译码失败的块序号,进入等待接收状态;
步骤(4):服务端获取文件块发送序列中第一个状态为未发送状态的序号,将文件中该块对应的内容读入内存,进行喷泉码编码,按照协议帧格式封装成多条数据帧,将编码后的数据帧按顺序向外发送;发送完毕后,再发送3次文件块结束帧,并更新文件块发送序列相对应的块状态为已发送状态;
步骤(5):服务端查询文件块发送序列,若所有标志均为已发送状态,表示所有文件块发送完毕,则连续发送三条轮次结束帧,并将轮号N加1,等待各个客户端反馈的补块请求,若N大于3,则自动结束发送;
步骤(6):客户端接收文件块结束帧或收到当前块最后一帧后,对接收的数据进行译码,并将此块的丢包情况存入长度为M的丢包序列;如果译码成功,则将此块数据写入磁盘缓存;若译码失败,则将该块序号填入补块序列;
步骤(7):当客户端接收到轮次结束帧后,先查询补块序列是否有记录,若有记录则将最近的M个数据块的平均丢包率以及补块序列中的内容封装成补块请求帧,然后发给服务端;若补块序列没有记录,则表示所有数据块均接收成功,将缓存文件还原成正式文件并存储在磁盘中;
步骤(8):服务端收到补块请求后,将补块请求帧中的块序号解析出来,更新文件块发送序列中相应的标志为未发送状态,表示此块需要重发,并根据反馈的丢包率重新计算编码冗余β,进入步骤(4)。
进一步的,所述步骤(1)至步骤(8)中的通信方式采用UDP组播协议进行数据通信。
进一步的,所述步骤(1)中的最后一块文件的包数按实际剩余的包数计算。
进一步的,所述步骤(1)至步骤(8)中的未发送状态标记为0,所述步骤(1)至步骤(8)中的发送状态标记为1。
进一步的,所述步骤(2)中的服务端发送文件信息帧采用连续三帧发送。
进一步的,所述步骤(2)中发送的文件信息包括文件名、文件大小及文件校验信息。
采用上述技术方案,可以在有限的卫星宽带资源上避免多次的一对一传输相同数据所引发的带宽重复利用问题,间接实现更多的数据传输。
附图说明
图1为服务端数据处理流程图;
图2为接收端数据处理流程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明。在此需要说明的是,对于这些实施方式的说明用于帮助理解本发明,但并不构成对本发明的限定。此外,下面所描述的本发明各个实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。
参阅图1和图2,本具体实施方式披露了一种基于喷泉码的文件传输方法,其包括服务端和接收端的数据处理流程;
参看图1,服务端数据处理流程如下:
步骤(1):首先从文件列表或数据库中获取待传输文件路径,读取文件大小L,并根据小包长度l,计算文件的块数B及包数P,最后一块按实际剩余的包数计算;同时定义一个文件块发送序列,初始化状态为0(0:未发送,1:已发送),用于标记每个文件块的发送状态。
步骤(2):发送文件信息帧(连续三帧),向客户端通知待发送文件的信息,包括文件名、文件大小及文件校验。
步骤(3):获取文件块发送序列中第一个状态为0的序号,将文件中该块对应的内容读入内存,进行喷泉码编码,按照协议帧格式封装成多条数据帧,将编码后的数据帧按顺序向外发送。发送完毕后,再发送3次文件块结束帧,并更新文件块发送序列相对应的块状态为1。
步骤(4):查询文件块发送序列,若所有标志均为1,表示所有文件块发送完毕,则连续发送三条轮次结束帧,并将轮号N加1,然后等待各个客户端反馈的补块请求,若N大于3,则自动结束发送。
步骤(5):若收到补块请求,将补块请求帧中的块序号解析出来,更新文件块发送序列中相应的标志为0,表示此块需要重发,并根据反馈的丢包率重新计算编码冗余β,进入步骤(3)。
参阅图2,,客户端数据处理流程如下:
步骤(1):客户端接收到信息帧后,检测本地磁盘是否存在相同文件,若存在,则不进行处理;若不存在,则在本地磁盘建立相应缓存文件,同时创建一个补块序列,用于存储未收到的块序号或译码失败的块序号,然后进入等待接收状态。
步骤(2):客户端接收到文件块结束帧或收到当前块最后一帧后,对接收的数据进行译码,并将此块的丢包情况存入长度为M的丢包序列。如果译码成功,则将此块数据写入磁盘缓存;若译码失败,则将该块序号填入补块序列。
步骤(3):当客户端接收到轮次结束帧后,首先查询补块序列是否有记录,若有记录则将最近的M个数据块的平均丢包率以及补块序列中的内容封装成补块请求帧,然后发给服务端;若补块序列没有记录,则表示所有数据块均接收成功,将缓存文件还原成正式文件并存储在磁盘中。
采用上述方法后,可以在有限的卫星宽带资源上避免多次的一对一传输相同数据所引发的带宽重复利用问题,间接实现更多的数据传输。
以上结合附图对本发明的实施方式作了详细说明,但本发明不限于所描述的实施方式。对于本领域的技术人员而言,在不脱离本发明原理和精神的情况下,对这些实施方式进行多种变化、修改、替换和变型,仍落入本发明的保护范围内。

Claims (6)

1.一种基于喷泉码的文件传输方法,其特征在于,包括以下步骤:
步骤(1):在服务端,从文件列表或数据库中获取待传输文件路径,读取文件大小L,根据小包长度l,计算文件的块数B及包数P;同时定义一个文件块发送序列,初始化状态为未发送状态,用于标记每个文件块的发送状态;
步骤(2):服务端发送文件信息帧,向客户端通知待发送文件的信息;
步骤(3):在线客户端收到信息帧后,检测本地磁盘是否存在相同文件,若存在,则不进行处理;若不存在,则在本地磁盘建立相应缓存文件,同时创建一个补块序列,用于存储未收到的块序号或译码失败的块序号,进入等待接收状态;
步骤(4):服务端获取文件块发送序列中第一个状态为未发送状态的序号,将文件中该块对应的内容读入内存,进行喷泉码编码,按照协议帧格式封装成多条数据帧,将编码后的数据帧按顺序向外发送;发送完毕后,再发送3次文件块结束帧,并更新文件块发送序列相对应的块状态为已发送状态;
步骤(5):服务端查询文件块发送序列,若所有标志均为已发送状态,表示所有文件块发送完毕,则连续发送三条轮次结束帧,并将轮号N加1,等待各个客户端反馈的补块请求,若N大于3,则自动结束发送;
步骤(6):客户端接收文件块结束帧或收到当前块最后一帧后,对接收的数据进行译码,并将此块的丢包情况存入长度为M的丢包序列;如果译码成功,则将此块数据写入磁盘缓存;若译码失败,则将该块序号填入补块序列;
步骤(7):当客户端接收到轮次结束帧后,先查询补块序列是否有记录,若有记录则将最近的M个数据块的平均丢包率以及补块序列中的内容封装成补块请求帧,然后发给服务端;若补块序列没有记录,则表示所有数据块均接收成功,将缓存文件还原成正式文件并存储在磁盘中;
步骤(8):服务端收到补块请求后,将补块请求帧中的块序号解析出来,更新文件块发送序列中相应的标志为未发送状态,表示此块需要重发,并根据反馈的丢包率重新计算编码冗余β,进入步骤(4)。
2.根据权利要求书1所述的一种基于喷泉码的文件传输方法,其特征在于,所述步骤(2)、(4)、(5)和(7)中的通信方式采用UDP组播协议进行数据通信。
3.根据权利要求书1所述的一种基于喷泉码的文件传输方法,其特征在于,所述步骤(1)中的最后一块文件的包数按实际剩余的包数计算。
4.根据权利要求书1所述的一种基于喷泉码的文件传输方法,其特征在于,所述步骤(1)、(4)、(5)和(8)中的未发送状态标记为0,所述步骤(1)至步骤(8)中的发送状态标记为1。
5.根据权利要求书1所述的一种基于喷泉码的文件传输方法,其特征在于,所述步骤(2)中的服务端发送文件信息帧采用连续三帧发送。
6.根据权利要求书1所述的一种基于喷泉码的文件传输方法,其特征在于,所述步骤(2)中发送的文件信息包括文件名、文件大小及文件校验信息。
CN201811436842.6A 2018-11-28 2018-11-28 一种基于喷泉码的文件传输方法 Active CN109714130B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811436842.6A CN109714130B (zh) 2018-11-28 2018-11-28 一种基于喷泉码的文件传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811436842.6A CN109714130B (zh) 2018-11-28 2018-11-28 一种基于喷泉码的文件传输方法

Publications (2)

Publication Number Publication Date
CN109714130A CN109714130A (zh) 2019-05-03
CN109714130B true CN109714130B (zh) 2020-05-15

Family

ID=66254545

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811436842.6A Active CN109714130B (zh) 2018-11-28 2018-11-28 一种基于喷泉码的文件传输方法

Country Status (1)

Country Link
CN (1) CN109714130B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110493302A (zh) * 2019-07-01 2019-11-22 联想(北京)有限公司 一种文件传输方法、设备及计算机可读存储介质
CN110856144B (zh) * 2019-10-22 2021-09-07 西安交通大学 一种移动边缘计算网络中基于lt码的雾化缓存方法
CN112803982A (zh) * 2021-02-03 2021-05-14 南通先进通信技术研究院有限公司 一种基于cdn缓存技术的卫星组播分发***及其工作方法
CN112583472B (zh) * 2020-12-28 2023-05-19 四川安迪科技实业有限公司 批量升级卫星设备的组播文件发送、接收、传输方法及装置
CN113098661B (zh) * 2021-03-26 2022-08-30 哈尔滨工业大学 一种基于喷泉码的卫星信道下的文件传输方法
CN113518111B (zh) * 2021-05-07 2022-12-09 西安交通大学 一种喷泉码驱动的多路侧单元协同的缓存方法
CN117834082A (zh) * 2022-09-29 2024-04-05 华为终端有限公司 一种传输方法、***及相关装置
CN116389178B (zh) * 2023-04-07 2023-11-03 国家气象信息中心(中国气象局气象数据中心) 一种数据文件udp组播丢失帧级补调方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10129928B2 (en) * 2012-12-14 2018-11-13 Huawei Technologies Co., Ltd. System and method for UE fountain relay based network
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 北京理工大学 一种基于喷泉码的单次反馈重传方法

Also Published As

Publication number Publication date
CN109714130A (zh) 2019-05-03

Similar Documents

Publication Publication Date Title
CN109714130B (zh) 一种基于喷泉码的文件传输方法
JP4357535B2 (ja) 欠落部分の識別および再送信
US11063709B2 (en) Segment retransmission method and apparatus
AU765553B2 (en) An apparatus and method for transmitting and receiving data according to radio link protocol in a mobile communications system
JP4703310B2 (ja) 通信方法および通信システム
US8386901B2 (en) Method, device and software application for transmitting data packets in a communication system
EP2437421B1 (en) Method, device and communication system for retransmitting based on forward error correction
US20030023915A1 (en) Forward error correction system and method for packet based communication systems
US20020080802A1 (en) Method for multimedia communication over packet channels
JP5215413B2 (ja) 再送プロトコルのためのステータス報告
CN115396077A (zh) 一种数据传输方法及装置
CN103580773A (zh) 数据帧的传输方法及装置
US8687530B2 (en) Stateful scheduling with network coding for roadside-to-vehicle communication
JP4232978B2 (ja) Arqシステムにおける送信制御方法
KR102524306B1 (ko) 통신 방법, 네트워크 장치 및 단말
CN103338090A (zh) 业务数据传输方法、设备及***
JP6487562B2 (ja) オンデマンドファイル修復のための方法及びシステム
US8321754B2 (en) Method for transmitting multimedia data in ad hoc communication networks
WO2022042379A1 (zh) 数据处理方法、基站、终端及存储介质
CN108769000B (zh) 一种用于深空环境的高效流媒体传输方法
CN109982264B (zh) 一种车联网的数据发送方法及相关装置
JP4217534B2 (ja) パケット送信装置、パケット受信装置、方法及びプログラム
CN111464880A (zh) 一种基于IPv4和IPv9混合网络的数字电影拷贝传输***
KR100981541B1 (ko) 이동통신시스템에서 패킷 수신 결과 보고방법
CN109005011B (zh) 一种用于水声网络的数据传输方法、***及可读存储介质

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210519

Address after: 226000 11 / F, building 4, 58 Chongchuan Road, Chongchuan District, Nantong City, Jiangsu Province

Patentee after: NANTONG RESEARCH INSTITUTE FOR ADVANCED COMMUNICATION TECHNOLOGIES Co.,Ltd.

Address before: 226000 11 / F, building 4, 58 Chongchuan Road, Chongchuan District, Nantong City, Jiangsu Province

Patentee before: NANTONG RESEARCH INSTITUTE FOR ADVANCED COMMUNICATION TECHNOLOGIES Co.,Ltd.

Patentee before: NANTONG University