CN109714130B - 一种基于喷泉码的文件传输方法 - Google Patents
一种基于喷泉码的文件传输方法 Download PDFInfo
- 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
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)中发送的文件信息包括文件名、文件大小及文件校验信息。
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)
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)
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 | 北京理工大学 | 一种基于喷泉码的单次反馈重传方法 |
-
2018
- 2018-11-28 CN CN201811436842.6A patent/CN109714130B/zh active Active
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 |