CN114048162A - 一种基于Xmodem协议的流文件传输方法 - Google Patents
一种基于Xmodem协议的流文件传输方法 Download PDFInfo
- Publication number
- CN114048162A CN114048162A CN202111335615.6A CN202111335615A CN114048162A CN 114048162 A CN114048162 A CN 114048162A CN 202111335615 A CN202111335615 A CN 202111335615A CN 114048162 A CN114048162 A CN 114048162A
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- sending
- file
- serial port
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004891 communication Methods 0.000 claims abstract description 6
- 238000004806 packaging method and process Methods 0.000 claims abstract description 4
- 230000002441 reversible effect Effects 0.000 claims description 11
- 238000012546 transfer Methods 0.000 claims description 6
- 230000003213 activating effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Communication Control (AREA)
Abstract
本发明涉及Xmodem协议技术领域,公开了一种基于Xmodem协议的流文件传输方法,包括以下步骤:发送方发送给接收方一个信号,建立串口连接;获取错误包数、包序号和缓冲区的字节数量判断最后的包数据;获取应答数据,发送结束标识;发送方将应答数据编译成16进制文件,同时加密,建立一个线程,持续发送数据包;接收方开启接收线程,根据文件路径判断数据包是否接受完成,导入CRC对数据包进行校验,重新获取包序号并进行判断,当包序号正确时接收数据包;送方数据传输完毕,关闭发送数据线程,接收方接受信号,同步关闭通讯串口,将数据包打包整合,通过秘钥解码成原文件,流文件传输完毕。
Description
技术领域
本发明涉及Xmodem协议技术领域,具体地说,是一种基于Xmodem协议的流文件传输方法,用于解决Xmodem协议中发送端发送数据过快,导致接收端处理不过来的问题,方便加入延时处理。
背景技术
随着互联网技术的不断发展,对于网络需求的不断增强,Xmodem是一种在串口通信中广泛使用的异步文件传输协议,在Xmodem协议中对于发送方仅仅支持校验和的传输方式,接收方应首先发送NAK信号来发起传输,如果发送方没有数据发送过来,需要超时等待3秒之后再发起NAK信号来进行数据传输。对于数据传输正确,接收方需要发送ACK信号来进行确认,如果数据传输有误,则发送NAK信号,发送方在接收到NAK信号之后需要重新发起该次数据传输,如果数据已近传输完成,发送方需要发送EOT信号,来结束数据传输。因此在Xmodem协议中发送端发送数据过快,导致接收端处理不过来。
所以本发明提供了一种方法,能够解决Xmodem协议中发送端发送数据过快,导致接收端处理不过来的问题,方便加入延时处理。
发明内容
本发明的目的在于提供一种基于Xmodem协议的流文件传输方法,用于解决Xmodem协议中发送端发送数据过快,导致接收端处理不过来的问题,方便加入延时处理。
本发明通过下述技术方案实现:一种基于Xmodem协议的流文件传输方法,包括以下步骤:
步骤S1.配置128字节的形式传输数据、最大错误包数阈值、输入流和输出流;
步骤S2.发送方根据配置的数据发送给接收方一个信号,发送串口数据并建立串口连接;
步骤S3.根据发送的串口数据获取错误包数、包序号和缓冲区的字节数量判断最后的包数据是否小于128字节,如果是,配置补齐格式,如果否,进入步骤S4;
步骤S4.根据组包、控制字符、包序号和包序号的反码获取应答数据,判断应答数据是否跳出循环,如果是,发送下一包数据,如果否,记录错误包数加一次并继续重发包数据,发送结束标识;
步骤S5.发送方将应答数据编译成16进制文件,同时对16进制文件进行可逆加密,建立一个线程,持续以128字节大小打包发送数据包;
步骤S6.接收方开启接收线程,持续接受数据包,根据文件路径判断数据包是否接受完成,如果是,进入步骤S7,如果否,导入CRC对数据包进行校验,重新获取包序号并进行判断,当包序号正确时接收数据包,并进入步骤S7;
步骤S7.发送方数据传输完毕,关闭发送数据线程,给发送方发送一个结束信号和一个校验秘钥并主动关闭串口,接收方接受信号,同步关闭通讯串口,将数据包打包整合,通过秘钥解码成原文件,流文件传输完毕。
在本技术方案中,发送模式自适应,无需配置模式;接收模式三种模式都可以配置,如果配置为自适应,则'C'和NAK每隔3s交替发送,最大帧长配置为1024,当帧长是非1024时按着128格式走;开始发送函数前需要配置帧长,默认配置帧长是128,但是可以调节。
为了更好地实现本发明,进一步地,步骤S1包括:
根据所述输入流读取串口数据;
根据所述输出流发送串口数据。
为了更好地实现本发明,进一步地,步骤S2中的信号包括确认信号和可用串口端口信号。
为了更好地实现本发明,进一步地,步骤S3中对缓冲区的操作包括:
初始化缓冲区,读取缓冲区的文件后将文件初始化。
为了更好地实现本发明,进一步地,步骤S4包括:
在发送数据前,配置包数据传输的最大次数。
为了更好地实现本发明,进一步地,步骤S4还包括:
记录包序号的自增数量,判断所有应答数据是否发送完成,如果是,发送结束标识,如果否,继续发送。
为了更好地实现本发明,进一步地,步骤S5中的可逆加密包括:
将应答数据转换成16进制字符串,在后两位加入随机字符,使用Decode For Num的可逆方法建立线程。
为了更好地实现本发明,进一步地,步骤S6包括:
发送字符C,激活CRC的校验方式;
获取应答数据,当判断到应答数据开始标识后标获取包序号,判断包序号和包序号的反码是否正确。
为了更好地实现本发明,进一步地,步骤S7的校验秘钥包括16进制文件进行可逆加密的密钥。
本发明与现有技术相比,具有以下优点及有益效果:
(1)传统Xmodem协议是每个数据包都校验,本发明通过对文件进行预编译,而且串口通讯保证了传输过程安全,不需要每次都校验,只需要整个文件传完再校验,效率更高更有安全性。
(2)本发明能够解决Xmodem协议中发送端发送数据过快,导致接收端处理不过来的问题,方便加入延时处理。
附图说明
本发明结合下面附图和实施例做进一步说明,本发明所有构思创新应视为所公开内容和本发明保护范围。
图1为本发明公开的一种基于Xmodem协议的流文件传输方法的流程图。
具体实施方式
实施例1:
本实施例的一种基于Xmodem协议的流文件传输方法,如图1所示,发送方给接收方一个信号(包括确认信号和可用串口端口号等信息),接收方确认并返回信号,建立串口连接,发送方将发送资源编译成16进制文件,同时对16进制文件进行可逆加密,建立一个线程,持续以128字节大小打包发送,接收方开启接收线程,持续接受数据包,通过CRC方式校验,再基于Xmodem协议进行传输,如果有数据包校验失败,流程结束,返回给发送方关闭信号,关闭串口,如果没有异常,发送方数据传输完毕,关闭发送数据线程,给发送方发一个结束信号和一个校验秘钥,这个校验秘钥是上面那个加密方法的秘钥),主动关闭串口,接收方接受信号,同步关闭通讯串口,将数据包打包整合,然后通过秘钥解码成原文件,传输完毕。本实施例通过Xmodem协议在send方法中开启了一个子线程来处理数据发送逻辑,方便加入延时处理。
实施例2:
本实施例在实施例1的基础上做进一步优化,设置private InputStreaminputStream用于设定输入流,设置private OutputStream outputStream,用于设置输出流。
本实施例的其他部分与实施例1相同,故不再赘述。
实施例3:
本实施例在实施例1的基础上做进一步优化,对于发送方仅仅支持校验和的传输方式,接收方应首先发送串口端口信号来发起传输,如果发送方没有数据发送过来,需要超时等待3秒之后再发起串口端口信号来进行数据传输。对于数据传输正确,接收方需要发送确认信号来进行确认,如果数据传输有误,则发送串口端口信号,发送方在接收到串口端口信号之后需要重新发起该次数据传输,如果数据已近传输完成,发送方需要发送结束信号,来结束数据传输。
本实施例的其他部分与实施例1相同,故不再赘述。
实施例4:
本实施例在实施例1的基础上做进一步优化,在本实施例中,首先读取到缓冲区的字节数量,初始化缓冲区,在读取文件初始化内容,读取数据包最后一包的字节,如果字节少于128字节,可以选用OXFF的格式进行补齐。
本实施例的其他部分与实施例1相同,故不再赘述。
实施例5:
本实施例在实施例1的基础上做进一步优化,本实施例可以配置同一包数据最多发送10次。
本实施例的其他部分与实施例1相同,故不再赘述。
实施例6:
本实施例在实施例1的基础上做进一步优化,在本实施例中记录包序号的自增数量,判断所有应答数据是否发送完成,发送应答数据后,因为包序号会进行自增,所以将此事的数据写入本地文件夹(blocknumber++)中,再将数据包数归零,如果出错就发送重传标识。
本实施例的其他部分与实施例1相同,故不再赘述。
实施例7:
本实施例在实施例1的基础上做进一步优化,在本实施例中后两位加入随机字符整除的后得到的数可能大于被除数,余数不可能大于被除数,返回拼接后的字符,转成大写。
本实施例的其他部分与实施例1相同,故不再赘述。
实施例8:
本实施例在实施例1的基础上做进一步优化,在本实施例中,发送字符C,激活CRC的校验方式,当接收方要求发送方以CRC校验方式发送数据时,以'C'来请求,发送方对此做出应答,当发送方仅仅支持校验和方式时,则接收方要发送NAK来请求,要求以校验和方式来发送数据,如果仅仅支持CRC校验方式,则只能发送'C'来请求,如果两者都支持的话,优先发送'C'来请求。
本实施例的其他部分与实施例1相同,故不再赘述。
实施例9:
本实施例在实施例1的基础上做进一步优化,在本实施例中,解密16进制字符串,此方法只适合后面两位有随机字符的,所以本实施例中的校验秘密钥选择16进制文件进行可逆加密的密钥,将字符串内容转化为16进制数据编码,这个逆过程是Decode,strEncode需要转化的原始字符串,转换的过程是直接把字符转换成Unicode字符,比如数字"3"-->0033,汉字"我"-->U+6211,函数decode的过程是encode的逆过程。
本实施例的其他部分与实施例1相同,故不再赘述。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化,均落入本发明的保护范围之内。
Claims (9)
1.一种基于Xmodem协议的流文件传输方法,其特征在于,包括以下步骤:
步骤S1.配置128字节的形式传输数据、最大错误包数阈值、输入流和输出流;
步骤S2.发送方根据配置的数据发送给接收方一个信号,发送串口数据并建立串口连接;
步骤S3.根据发送的串口数据获取错误包数、包序号和缓冲区的字节数量判断最后的包数据是否小于128字节,如果是,配置补齐格式,如果否,进入步骤S4;
步骤S4.根据组包、控制字符、包序号和包序号的反码获取应答数据,判断应答数据是否跳出循环,如果是,发送下一包数据,如果否,记录错误包数加一次并继续重发包数据,发送结束标识;
步骤S5.发送方将应答数据编译成16进制文件,同时对16进制文件进行可逆加密,建立一个线程,持续以128字节大小打包发送数据包;
步骤S6.接收方开启接收线程,持续接受数据包,根据文件路径判断数据包是否接受完成,如果是,进入步骤S7,如果否,导入CRC对数据包进行校验,重新获取包序号并进行判断,当包序号正确时接收数据包,并进入步骤S7;
步骤S7.发送方数据传输完毕,关闭发送数据线程,给发送方发送一个结束信号和一个校验秘钥并主动关闭串口,接收方接受信号,同步关闭通讯串口,将数据包打包整合,通过秘钥解码成原文件,流文件传输完毕。
2.根据权利要求1所述的一种基于Xmodem协议的流文件传输方法,其特征在于,所述步骤S1包括:
根据所述输入流读取串口数据;
根据所述输出流发送串口数据。
3.根据权利要求1所述的一种基于Xmodem协议的流文件传输方法,其特征在于,所述步骤S2中的信号包括确认信号和可用串口端口信号。
4.根据权利要求1所述的一种基于Xmodem协议的流文件传输方法,其特征在于,所述步骤S3中对缓冲区的操作包括:
初始化缓冲区,读取缓冲区的文件后将文件初始化。
5.根据权利要求1所述的一种基于Xmodem协议的流文件传输方法,其特征在于,所述步骤S4包括:
在发送数据前,配置包数据传输的最大次数。
6.根据权利要求1所述的一种基于Xmodem协议的流文件传输方法,其特征在于,所述步骤S4还包括:
记录包序号的自增数量,判断所有应答数据是否发送完成,如果是,发送结束标识,如果否,继续发送。
7.根据权利要求1所述的一种基于Xmodem协议的流文件传输方法,其特征在于,所述步骤S5中的可逆加密包括:
将应答数据转换成16进制字符串,在后两位加入随机字符,使用Decode For Num的可逆方法建立线程。
8.根据权利要求1所述的一种基于Xmodem协议的流文件传输方法,其特征在于,所述步骤S6包括:
发送字符C,激活CRC的校验方式;
获取应答数据,当判断到应答数据开始标识后标获取包序号,判断包序号和包序号的反码是否正确。
9.根据权利要求1所述的一种基于Xmodem协议的流文件传输方法,其特征在于,所述步骤S7的校验秘钥包括16进制文件进行可逆加密的密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111335615.6A CN114048162A (zh) | 2021-11-11 | 2021-11-11 | 一种基于Xmodem协议的流文件传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111335615.6A CN114048162A (zh) | 2021-11-11 | 2021-11-11 | 一种基于Xmodem协议的流文件传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114048162A true CN114048162A (zh) | 2022-02-15 |
Family
ID=80208492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111335615.6A Pending CN114048162A (zh) | 2021-11-11 | 2021-11-11 | 一种基于Xmodem协议的流文件传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114048162A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277679A (zh) * | 2022-07-29 | 2022-11-01 | 山石网科通信技术股份有限公司 | 文件同步方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112910856A (zh) * | 2021-01-18 | 2021-06-04 | 南京理工大学 | 基于串口通信的通信协议的设计方法 |
-
2021
- 2021-11-11 CN CN202111335615.6A patent/CN114048162A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112910856A (zh) * | 2021-01-18 | 2021-06-04 | 南京理工大学 | 基于串口通信的通信协议的设计方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277679A (zh) * | 2022-07-29 | 2022-11-01 | 山石网科通信技术股份有限公司 | 文件同步方法和系统 |
CN115277679B (zh) * | 2022-07-29 | 2024-04-12 | 山石网科通信技术股份有限公司 | 文件同步方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2341903C2 (ru) | Изменяемые длины пакета для передач с высокой скоростью передачи пакетных данных | |
JP4198910B2 (ja) | 並列チャネルエンコーダパケット伝送システム中でサブパケットを送信する方法および受信する方法 | |
RU2549518C2 (ru) | Устройство для передачи блока протокольных данных уровня управления доступом к среде "mac pdu" с расширенным заголовком фрагментации и объединения и соответствующий способ | |
US9924558B2 (en) | Digital radio communication | |
JP2002135233A (ja) | 通信システムにおける非同期増分冗長受信のための方法および装置 | |
RU2456751C2 (ru) | Способ повторной передачи данных и устройство беспроводной связи | |
KR100689451B1 (ko) | 이동통신 시스템에서 패킷 송/수신 장치 및 방법 | |
CN103607264A (zh) | 基于3g网络的带内数据传输方法 | |
WO2014012386A1 (zh) | 数据传输方法、系统及设备,终端获取数据的方法及终端 | |
JP3054613B2 (ja) | パケット通信システム | |
CN114048162A (zh) | 一种基于Xmodem协议的流文件传输方法 | |
JP2004535136A (ja) | データパケットを送信する方法 | |
JPH0419731B2 (zh) | ||
KR100624618B1 (ko) | 제어 패이로드데이터유닛을 이용한 데이터와 제어정보의병렬 송수신 방법 | |
CN107645700A (zh) | 一种基于ussd协议的移动通信数据传输方法 | |
CN101656603A (zh) | 采用重传和编码协商实现数据传输的方法、装置及系统 | |
JP3433180B2 (ja) | 送信装置及び通信システム | |
GB2300540A (en) | Digital communications link interface | |
US20050144260A1 (en) | Method for setting up point-to-point protocol (PPP) connection between mobile communication terminal and base station | |
WO2015077960A1 (zh) | 一种数据报文的传输方法和设备 | |
WO2012155703A1 (zh) | 基于hdlc协议的链路参数自协商方法、终端及系统 | |
CN106685595A (zh) | 基于Sub‑GHz小无线射频的设备的绑定通信方法 | |
JPH10242946A (ja) | データフレーム伝送方法 | |
CN114040389B (zh) | 一种适用于物联网应用场景的高速安全传输方法 | |
US9295085B2 (en) | Communication system and method of data transmission for a medium access control layer |
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 |