CN105245568A - 一种文件传输方法 - Google Patents
一种文件传输方法 Download PDFInfo
- Publication number
- CN105245568A CN105245568A CN201510542442.3A CN201510542442A CN105245568A CN 105245568 A CN105245568 A CN 105245568A CN 201510542442 A CN201510542442 A CN 201510542442A CN 105245568 A CN105245568 A CN 105245568A
- Authority
- CN
- China
- Prior art keywords
- message
- transmitting terminal
- data block
- receiving
- sent
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明提供了一种文件传输方法,一种文件传输方法,应用于无连接的传输协议,提供一发送端以及一接收端,并包括以下步骤:步骤S1,发送端向接收端发送一用以确认传输文件的请求报文;步骤S2,接收端于接收到请求报文后发送一回复报文至发送端;步骤S3,发送端于接收到回复报文后将待发送文件分割成预定大小的数据块;步骤S4,发送端逐块发送数据块,直至待发送文件发送完毕。本发明的有益效果在于,实现了在数据文件传输时具有更好的可靠性以及实现了数据传输的完整性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种文件传输方法。
背景技术
在P2P(peertopeer)的网络中,所有网络节点都是同等地位,没有服务端和客户端之分,一个节点即是服务端也是客户端,客户端通信之前,必须知晓接受端的公网IP和端口,客户端的P2P通信数据包必须能够穿透NAT(networkaddresstranslate)网络地址转换,而使用NAT穿透技术使用的协议更多采用的协议是基于UDP协议来实现,使用UDP协议能实现文件传输效率更高,但是UDP协议在传输文件的同时存在着可靠性差比如存在传输数据丢包,以及报文被篡改的问题,同时只能限于单个数据报文传输和数据重传机制较少的问题。
发明内容
针对现有技术中使用UDP协议传输文件存在的上述问题,现提供一种旨在实现提供更可靠的文件传输的使用UDP协议的一种文件传输方法。
具体技术方案如下:
一种文件传输方法,应用于无连接的传输协议,提供一发送端以及一接收端,并包括以下步骤:
步骤S1,所述发送端向所述接收端发送一用以确认传输文件的请求报文;
步骤S2,所述接收端于接收到所述请求报文后发送一回复报文至所述发送端;
步骤S3,所述发送端于接收到所述回复报文后将待发送文件分割成预定大小的数据块;
步骤S4,所述发送端逐块发送所述数据块,直至所述待发送文件发送完毕。
优选的,所述步骤S1执行之前,所述发送端对所述待发送文件进行初始化,并判断初始化是否成功,如成功则执行步骤S1,如不成功则退出。
优选的,所述步骤S2中,所述接收端于接收到所述发送端发送的请求报文后,判断所述请求报文中指示的所述待发送文件是否完整,如是则于所述回复报文中指示所述待发送文件已经完整,如否则于所述回复报文中指示所述待发送文件的断点。
优选的,所述步骤S3中,所述发送端接收到所述接收端发送的回复报文后,根据所述回复报文判断处于所述接收端的所述待发送文件是否完整,若是则退出。
优选的,所述步骤S4中,所述发送端根据所述回复报文中的所述断点,发送所述断点的位置对应的所述数据块至所述接收端。
优选的,所述步骤S3中,根据当前发送的所述数据块,构建一数发送链表;
所述步骤S4中,所述发送端通过所述发送链表将所述数据块发送至所述接收端。
优选的,所述步骤S4中,所述发送端发送一个所述数据块后,所述接收端判断接收到的所述数据块是否完整,如是则向所述发送端发送一接收确认报文,如否则向所述接收端发送一请求重发报文;和/或,所述步骤S4中,所述发送端于接收到所述接收确认报文后清空所述发送链表,准备发送下一所述数据块,和/或
所述发送端于接收到所述请求重发报文后重新发送当前数据块。
优选的,所述步骤S4中,所述接收端确认当前接收到的所述数据块完整后,判断所述待发送文件是否已接收完整,如果是则向所述发送端发送一接收完毕报文,如果否则向所述发送端发送一继续接收报文;和/或
所述步骤S4中,所述发送端接收到所述接收完毕报文后停止发送并退出,和/或
所述步骤S4中,所述发送端接收到所述继续接收报文后开始发送下一所述数据块。
优选的,所述步骤S4中,所述发送端将所述数据块的校验信息与所述发送链表一同发送至所述接收端,所述接收端根据所述校验信息校验所述数据块是否接收完整。
优选的,所述接收端确认当前接收到的所述数据块完整后重新计算所述断点,并于所述继续接收报文中指示所述断点。
上述技术方案具有如下优点或有益效果:
实现了在数据文件传输时具有更好的可靠性以及实现了数据传输的完整性。
附图说明
参考所附附图,以更加充分的描述本发明的实施例。然而,所附附图仅用于说明和阐述,并不构成对本发明范围的限制。
图1为本发明一种文件传输方法实施例的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
本发明技术方案包括一种文件传输方法。
如图1所示,一种文件传输方法实施例,应用于无连接的传输协议,提供一发送端以及一接收端,并包括以下步骤:
步骤S1,发送端向接收端发送一用以确认传输文件的请求报文;
步骤S2,接收端于接收到请求报文后发送一回复报文至发送端;
步骤S3,发送端于接收到回复报文后将待发送文件分割成预定大小的数据块;
步骤S4,发送端逐块发送数据块,直至待发送文件发送完毕。
上述方案中,发送端发送一用以确认传输文件的请求报文至接收端,接收端接收到请求报文后发送一回复报文至发送端,接收端于接收到发送端发送的请求报文后发送一回复报文至接收端,从而发送端与接收端建立连接,并根据回复报文将待发送文件分割成预定大小的数据块,发送端将数据块逐块发送至接收端直至发送文件完毕。
于上述方案基础上,进一步的,步骤S1执行之前,发送端对待发送文件进行初始化,并判断初始化是否成功,如成功则执行步骤S1,如不成功则退出。
于上述方案基础上,进一步的,步骤S2中,接收端于接收到发送端发送的请求报文后,判断请求报文中指示的待发送文件是否完整,如是则于回复报文中指示待发送文件已经完整,如否则于回复报文中指示待发送文件的断点。
于上述方案基础上,进一步的,步骤S3中,发送端接收到接收端发送的回复报文后,根据回复报文判断处于接收端的待发送文件是否完整,若是则退出。
于上述方案基础上,进一步的,步骤S4中,发送端根据回复报文中的断点,发送断点的位置对应的数据块至接收端。
于上述方案基础上,进一步的,接收端于发送完回复报文后进行记时,若计时时间超过一第二预设值时还未收到发送端发送的数据片报文,则接收端关闭接收任务。
于上述方案基础上,进一步的,根据当前发送的数据块,构建一发送链表;
步骤S4中,发送端通过发送链表将数据块发送至接收端。
于上述方案基础上,进一步的,步骤S4中,发送端发送一个数据块后,接收端判断接收到的数据块是否完整,如是则向发送端发送一接收确认报文,如否则向接收端发送一请求重发报文。
于上述方案基础上,进一步的,步骤S4中,发送端于接收到接收确认报文后清空发送链表,准备发送下一数据块,和/或发送端于接收到请求重发报文后重新发送当前数据块。
于上述方案基础上,进一步的,其特征在于步骤S4中,接收端确认当前接收到的数据块完整后,判断待发送文件是否已接收完整,如果是则向发送端发送一接收完毕报文,如果否则向发送端发送一继续接收报文。
于上述方案基础上,进一步的,步骤S4中,发送端接收到接收完毕报文后停止发送并退出,和/或
步骤S4中,发送端接收到继续接收报文后开始发送下一数据块。
于上述方案基础上,进一步的,步骤S4中,发送端将数据块的校验信息与发送链表一同发送至接收端,接收端根据校验信息校验数据块是否接收完整。
于上述方案基础上,进一步的,接收端确认当前接收到的数据块完整后重新计算断点,并于继续接收报文中指示断点。
作为一种优选的实施例,可通以下方式对报文头结构定义,
上述变量对应表示:
cmd:报文类型;
seq_num为数据片的序列号;
file_size为文件大小;
packet_size为文件片的大小;
file_name_chk_sum为文件名的循环校验码值;
data_chk_sum为数据片报文的循环检验码值值;
breakpoint_fla为断点标志,表示是否有断点值;
breakpoint_position为断点值;
integrity_chk为数据块是否接受完整。
作为一种优选的实施例,上述报文头可用于实现上述请求报文,回复报文,接收确认报文,请求重发报文,接收完毕报文,继续接收报文中任一一种或者几种或者全部。
作为一种优选的实施例,可通过以下方式对报文定义:
其中data为数据片报文
上述代码表示定义一带有上述报文头以及发送链表的报文。
上述技术方案具有如下优点或有益效果:
通过发送一确认传输文件的请求报文至接收端并且接收端于接收到请求报文后发送一回复报文至发送端,发送端和接收端建立连接,从而发送端将待发送文件分成预定大小的数据块并将所数据逐块发送至接收端,从而实现了在数据文件传输时具有更好的可靠性以及实现了数据传输的完整性。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
Claims (10)
1.一种文件传输方法,其特征在于,应用于无连接的传输协议,提供一发送端以及一接收端,并包括以下步骤:
步骤S1,所述发送端向所述接收端发送一用以确认传输文件的请求报文;
步骤S2,所述接收端于接收到所述请求报文后发送一回复报文至所述发送端;
步骤S3,所述发送端于接收到所述回复报文后将待发送文件分割成预定大小的数据块;
步骤S4,所述发送端逐块发送所述数据块,直至所述待发送文件发送完毕。
2.根据权利要求1所述文件传输方法,其特征在于,所述步骤S1执行之前,所述发送端对所述待发送文件进行初始化,并判断初始化是否成功,如成功则执行步骤S1,如不成功则退出。
3.根据权利要求1所述文件传输方法,其特征在于,所述步骤S2中,所述接收端于接收到所述发送端发送的请求报文后,判断所述请求报文中指示的所述待发送文件是否完整,如是则于所述回复报文中指示所述待发送文件已经完整,如否则于所述回复报文中指示所述待发送文件的断点。
4.根据权利要求1所述文件传输方法,其特征在于,所述步骤S3中,所述发送端接收到所述接收端发送的回复报文后,根据所述回复报文判断处于所述接收端的所述待发送文件是否完整,若是则退出。
5.根据权利要求3所述文件传输方法,其特征在于,所述步骤S4中,所述发送端根据所述回复报文中的所述断点,发送所述断点的位置对应的所述数据块至所述接收端。
6.根据权利要求1所述文件传输方法,其特征在于,所述步骤S3中,根据当前发送的所述数据块,构建一发送链表;
所述步骤S4中,所述发送端通过所述发送链表将所述数据块发送至所述接收端。
7.根据权利要求1所述文件传输方法,其特征在于,所述步骤S4中,所述发送端发送一个所述数据块后,所述接收端判断接收到的所述数据块是否完整,如是则向所述发送端发送一接收确认报文,如否则向所述接收端发送一请求重发报文;和/或
所述步骤S4中,所述发送端于接收到所述接收确认报文后清空所述发送链表,准备发送下一所述数据块,和/或
所述发送端于接收到所述请求重发报文后重新发送当前数据块。
8.根据权利要求1所述文件传输方法,其特征在于所述步骤S4中,所述接收端确认当前接收到的所述数据块完整后,判断所述待发送文件是否已接收完整,如果是则向所述发送端发送一接收完毕报文,如果否则向所述发送端发送一继续接收报文;和/或
所述步骤S4中,所述发送端接收到所述接收完毕报文后停止发送并退出,和/或
所述步骤S4中,所述发送端接收到所述继续接收报文后开始发送下一所述数据块。
9.根据权利要求8所述文件传输方法,其特征在于,所述步骤S4中,所述发送端将所述数据块的校验信息与所述发送链表一同发送至所述接收端,所述接收端根据所述校验信息校验所述数据块是否接收完整。
10.根据权利要求1所述文件传输方法,其特征在于,所述接收端确认当前接收到的所述数据块完整后重新计算所述断点,并于所述继续接收报文中指示所述断点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510542442.3A CN105245568A (zh) | 2015-08-28 | 2015-08-28 | 一种文件传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510542442.3A CN105245568A (zh) | 2015-08-28 | 2015-08-28 | 一种文件传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105245568A true CN105245568A (zh) | 2016-01-13 |
Family
ID=55043066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510542442.3A Pending CN105245568A (zh) | 2015-08-28 | 2015-08-28 | 一种文件传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105245568A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019128649A1 (zh) * | 2017-12-29 | 2019-07-04 | 华为技术有限公司 | 一种发送数据流的方法、设备和系统 |
CN110933159A (zh) * | 2019-11-27 | 2020-03-27 | 中电装备山东电子有限公司 | 一种支持断点续传的文件传输方法与系统 |
CN111145401A (zh) * | 2020-03-11 | 2020-05-12 | 杭州涂鸦信息技术有限公司 | 一种指纹数据传输系统及方法 |
CN112689022A (zh) * | 2020-12-31 | 2021-04-20 | 上海宏力达信息技术股份有限公司 | 一种数据自动续传方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150595A (zh) * | 2007-11-13 | 2008-03-26 | 腾讯科技(深圳)有限公司 | 一种实时文件传输方法、系统及装置 |
CN102710758A (zh) * | 2012-05-22 | 2012-10-03 | 苏州云博信息技术有限公司 | 一种基于单片机系统的数据流断点续传方法 |
CN102984815A (zh) * | 2012-12-07 | 2013-03-20 | 华为终端有限公司 | 分组数据连接的处理方法、终端设备、网络侧设备及系统 |
CN104539739A (zh) * | 2015-01-26 | 2015-04-22 | 浙江大学 | 一种文件上传的系统、方法及装置 |
CN104620664A (zh) * | 2012-07-02 | 2015-05-13 | 阿尔卡特朗讯 | 利用包括在上行链路数据分组中的隧道标识符和基站标识符的承载激活 |
-
2015
- 2015-08-28 CN CN201510542442.3A patent/CN105245568A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150595A (zh) * | 2007-11-13 | 2008-03-26 | 腾讯科技(深圳)有限公司 | 一种实时文件传输方法、系统及装置 |
CN102710758A (zh) * | 2012-05-22 | 2012-10-03 | 苏州云博信息技术有限公司 | 一种基于单片机系统的数据流断点续传方法 |
CN104620664A (zh) * | 2012-07-02 | 2015-05-13 | 阿尔卡特朗讯 | 利用包括在上行链路数据分组中的隧道标识符和基站标识符的承载激活 |
CN102984815A (zh) * | 2012-12-07 | 2013-03-20 | 华为终端有限公司 | 分组数据连接的处理方法、终端设备、网络侧设备及系统 |
CN104539739A (zh) * | 2015-01-26 | 2015-04-22 | 浙江大学 | 一种文件上传的系统、方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019128649A1 (zh) * | 2017-12-29 | 2019-07-04 | 华为技术有限公司 | 一种发送数据流的方法、设备和系统 |
US11252099B2 (en) | 2017-12-29 | 2022-02-15 | Huawei Technologies Co., Ltd. | Data stream sending method and system, and device |
CN110933159A (zh) * | 2019-11-27 | 2020-03-27 | 中电装备山东电子有限公司 | 一种支持断点续传的文件传输方法与系统 |
CN111145401A (zh) * | 2020-03-11 | 2020-05-12 | 杭州涂鸦信息技术有限公司 | 一种指纹数据传输系统及方法 |
CN112689022A (zh) * | 2020-12-31 | 2021-04-20 | 上海宏力达信息技术股份有限公司 | 一种数据自动续传方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106330414B (zh) | 一种报文传输方法及装置 | |
CN104539739B (zh) | 一种文件上传的系统、方法及装置 | |
KR100414850B1 (ko) | 패킷 네트워크에서 데이터 패킷을 재송신하는 방법 | |
KR20080094526A (ko) | 이동 통신 시스템에서의 통신 방법 | |
EP3079287A1 (en) | Polar code processing method and system, and wireless communications apparatus | |
US8976814B2 (en) | Method of transporting data from sending node to destination node | |
CN105245568A (zh) | 一种文件传输方法 | |
CN105657646A (zh) | 一种基于蓝牙4.0的设备间大数据通信方法 | |
WO2010077579A1 (en) | Packet fragmentation | |
CN106031072A (zh) | 一种harq帧数据结构以及在采用盲检的系统中使用harq进行传输与接收的方法 | |
CN104618007B (zh) | 一种同步卫星tcp协议分段连接优化方法 | |
CN102868609A (zh) | 一种最大传输单元协商方法及数据终端 | |
CN101369879B (zh) | 一种请求数据重传的方法及装置 | |
CN111769915B (zh) | 数据传输方法及相关设备 | |
CN108173920A (zh) | 基于lorawan的文件传输方法 | |
CN111031575B (zh) | 通信过程 | |
KR100998830B1 (ko) | 무선 네트워크에서의 유디피를 이용한 데이터 전송 시스템및 그 방법 | |
CN103825689B (zh) | 具有本地缓存的延迟确定性报文重传方法 | |
CN101827020B (zh) | 一种对已经建立的长连接不断开进行加速的方法及系统 | |
CN101567891B (zh) | 源地址验证方法、装置及系统 | |
CN102647465A (zh) | 应用于堆叠系统中的ftp数据传输方法和装置 | |
CN102201903A (zh) | 一种简单可靠的远程文件传输方法 | |
WO2022083371A1 (zh) | 一种数据传输方法和装置 | |
CN106209565B (zh) | 一种基于喷泉码的隧道可靠传输方法及装置 | |
CN105242908B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160113 |
|
RJ01 | Rejection of invention patent application after publication |