CN111654546A - 一种基于qr码的数据传输方法及装置 - Google Patents
一种基于qr码的数据传输方法及装置 Download PDFInfo
- Publication number
- CN111654546A CN111654546A CN202010500901.2A CN202010500901A CN111654546A CN 111654546 A CN111654546 A CN 111654546A CN 202010500901 A CN202010500901 A CN 202010500901A CN 111654546 A CN111654546 A CN 111654546A
- Authority
- CN
- China
- Prior art keywords
- data
- code
- message
- data packet
- transmitted
- 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 135
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000004044 response Effects 0.000 claims abstract description 49
- 238000012545 processing Methods 0.000 claims abstract description 34
- 230000007246 mechanism Effects 0.000 claims abstract description 32
- 238000012790 confirmation Methods 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 8
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 238000002360 preparation method Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
-
- 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 Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种基于QR码的数据传输方法,包括以下步骤:在物理隔离的请求端和接收端内预设报文解析协议和解析程序;在请求端将要传输的数据构建成报文并编码成QR码;在请求端和接收端之间通过握手建立数据传输通道;设置第一显示设备显示编码后的QR码,接收端通过第一条码扫描设备识别该QR码,解析该QR码包含的内容并还原成所需格式的数据,解析成功后在第二显示设备上显示应答QR码,请求端通过第二条码扫描设备识别应答QR码,识别成功后请求端显示下一帧编码后的QR码;设定有防止数据丢失导致传输失败的数据包超时处理机制;设定有防止数据重复传输的数据包重复发送处理机制;当所有要传输的数据传输完成后,通过握手断开数据传输通道。
Description
技术领域
本发明涉及一种基于QR码的数据传输方法及装置,属于数据传输技术领域。
背景技术
在内外网物理隔离的不同网络之间,要进行数据传输时,需要用U盘、光盘等存储介质进行数据拷贝,操作上比较复杂,使用不便。
申请号为“201310706629.3”的发明专利提出了一种通过二维码在内外网隔离的设备中进行大数据传输的方法,但是这种方法还存在以下问题:
数据分包存储在二维码内进行传输,无法得知传输是否成功,在传输过程中可能丢失部分数据包,导致传输的数据不完整;
并且,在扫描二维码进行传输的过程中可能存在重复扫描同一个二维码的问题,导致数据重复传输,最后接收到的数据拼接后出现错误。
发明内容
为了解决上述现有技术中存在的问题,本发明提供一种基于QR码的数据传输方法及装置,通过设计基于使用QR码作为数据传输介质载体的传输协议,在内网与外网部署基于QR码数据传输协议的解析程序,将记载有相关数据的QR码显示在电脑屏幕上,结合条码识读解码设备进行QR码识读与解码,并通过解析程序还原出数据,可以在内网与外网之间,通过QR码进行数据同步与相关业务的数据交互。
本发明的技术方案如下:
技术方案一:
一种基于QR码的数据传输方法,包括以下步骤:
建立传输准备,在网络物理隔离的请求端和接收端内预设报文解析协议和解析程序;
生成请求数据,在请求端将要传输的数据根据预设的报文解析协议构建成报文,并将报文编码成QR码;
建立传输通道,在请求端和接收端之间,通过确认握手协议建立数据传输通道;
传输数据,设置第一显示设备,显示编码后的QR码,通过与接收端通信连接的第一条码扫描设备识别在所述第一显示设备上显示的QR码,解析并获取所述QR码所包含的内容,并根据预设的解析协议对该QR码内存储的报文信息进行解析还原成所需格式的数据,解析成功后接收端在第二显示设备上显示一表示接收成功的应答QR码,通过与请求端通信连接的第二条码扫描设备识别在所述第二显示设备上显示的应答QR码,识别成功后请求端在所述第一显示设备上显示下一帧编码后的QR码,重复执行上述传输数据的过程;
在所述传输数据时,还设定有用于防止数据丢失导致传输失败的数据包超时处理机制;
在所述传输数据时,还设定有用于防止数据重复传输的数据包重复发送处理机制;
中断数据传输,当所有要传输的数据传输完成后,通过握手断开数据传输通道,结束数据传输。
进一步的,在将要传输的数据根据解析协议构建成报文时,预设定有数据包的大小限值,当传输的数据超过所述大小限值时,将数据进行按顺序进行分块,划分成数据大小不超过所述大小限值的数据包;各所述数据包按照确定的报文格式编码成报文,报文包括报文头和报文体,报文头内存储有数据包的文件序号,报文体内存储有传输的数据内容;各所述数据包按文件序号存入发送队列中。
进一步的,所述数据包超时处理机制具体包括以下步骤:
在请求端上设定一定时器,定时器上设置有超时时间;
当请求端显示一编码后的QR码时,定时器开始计时,若定时器计时结束时,请求端还未识别到接收端上的应答QR码,则认为当前请求端发送的数据包在传输过程中丢失,重发该数据包;
设置重发数据包的最大次数,当重复数据包的次数超过最大次数时,认为数据传输通道出现了异常,中断本次数据传输。
进一步的,所述数据包重复发送处理机制具体包括以下步骤:
当接收端接收到新的报文时,将新收到的报文中的数据包的文件序号和已接收到的数据包的文件序号进行对比,如果出现重复的收数据包的文件序号,则将该新的数据包删除,否则保存该新的数据包;
保存数据包后,接收端生成应答QR码,所述应答QR码内包含表示已接收到该文件序号的确认报文,请求端在扫描成功该应答QR码后,将对应文件序号的数据包从发送队列中移除。
技术方案二
一种基于QR码的数据传输装置,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:
建立传输准备,在网络物理隔离的请求端和接收端内预设报文解析协议和解析程序;
生成请求数据,在请求端将要传输的数据根据预设的报文解析协议构建成报文,并将报文编码成QR码;
建立传输通道,在请求端和接收端之间,通过确认握手协议建立数据传输通道;
传输数据,设置第一显示设备,显示编码后的QR码,通过与接收端通信连接的第一条码扫描设备识别在所述第一显示设备上显示的QR码,解析并获取所述QR码所包含的内容,并根据预设的解析协议对该QR码内存储的报文信息进行解析还原成所需格式的数据,解析成功后接收端在第二显示设备上显示一表示接收成功的应答QR码,通过与请求端通信连接的第二条码扫描设备识别在所述第二显示设备上显示的应答QR码,识别成功后请求端在所述第一显示设备上显示下一帧编码后的QR码,重复执行上述传输数据的过程;
在所述传输数据时,还设定有用于防止数据丢失导致传输失败的数据包超时处理机制;
在所述传输数据时,还设定有用于防止数据重复传输的数据包重复发送处理机制;
中断数据传输,当所有要传输的数据传输完成后,通过握手断开数据传输通道,结束数据传输。
进一步的,在将要传输的数据根据解析协议构建成报文时,预设定有数据包的大小限值,当传输的数据超过所述大小限值时,将数据进行按顺序进行分块,划分成数据大小不超过所述大小限值的数据包;各所述数据包按照确定的报文格式编码成报文,报文包括报文头和报文体,报文头内存储有数据包的文件序号,报文体内存储有传输的数据内容;各所述数据包按文件序号存入发送队列中。
进一步的,所述数据包超时处理机制具体包括以下步骤:
在请求端上设定一定时器,定时器上设置有超时时间;
当请求端显示一编码后的QR码时,定时器开始计时,若定时器计时结束时,请求端还未识别到接收端上的应答QR码,则认为当前请求端发送的数据包在传输过程中丢失,重发该数据包;
设置重发数据包的最大次数,当重复数据包的次数超过最大次数时,认为数据传输通道出现了异常,中断本次数据传输。
进一步的,所述数据包重复发送处理机制具体包括以下步骤:
当接收端接收到新的报文时,将新收到的报文中的数据包的文件序号和已接收到的数据包的文件序号进行对比,如果出现重复的收数据包的文件序号,则将该新的数据包删除,否则保存该新的数据包;
保存数据包后,接收端生成应答QR码,所述应答QR码内包含表示已接收到该文件序号的确认报文,请求端在扫描成功该应答QR码后,将对应文件序号的数据包从发送队列中移除。
本发明具有如下有益效果:
1、本发明一种基于QR码的数据传输方法,在请求端和接收端之间建立了数据传输通道,预先定义了数据传输的方法以及反馈方式,使得数据交互的过程变得简练;在数据传输结束时,通过握手中断数据传输通道,保证数据彻底结束后才中断传输过程,防止数据丢失;
2、本发明一种基于QR码的数据传输方法,设定了数据包超时处理机制,通过定时器设定一个数据包传输的时间,在对应时间内没有收到对方发出的应答码,则重新发送数据包,保证数据包在传输过程中不会丢失;
3、本发明一种基于QR码的数据传输方法,设定有数据包重复发送处理机制,通过遍历收到的数据包的文件序号,并与新接收的数据包的文件序号进行对比,保证新收到的数据包是之前没有接收到过的,在接收一新的数据包时,还反馈该数据包的文件序号给请求端,请求端在发送队列中删除该文件序号的数据包,确保之后不会再重复发送已传输成功的数据包。
附图说明
图1为本发明实施例中基于QR码的数据传输方法的流程图;
图2为本实施例中报文的结构图;
图3为通过三次握手建立数据传输通道的流程图;
图4为通过四次握手中断数据连接的流程图。
具体实施方式
下面结合附图和具体实施例来对本发明进行详细的说明。
实施例一
参见图1,一种基于QR码的数据传输方法,包括以下步骤:
确定QR码的格式,在本实施例中,QR码是计算机实时生成的清晰QR图片,可以排除污染等因素,因此QR码的纠错级别设置成最低;由于传递的数据是二进制流,简单起见,QR码统一使用八个比特的字节模式进行编码,对QR码的版本不做限制;在内外网隔离的请求端和接收端内预设报文解析协议(报文解析协议的报文结构参见图2)和解析程序。
请求数据,在请求端将要传输的数据根据预设的解析协议构建成报文,并将报文编码成QR码,一个报文只对应一个QR码;报文首先包括建立连接的报文、应答报文和断开连接的报文等,这些用于请求和反馈报文只有头部信息,报文体的长度为0;仅存储有传输数据的报文的报文体中包含data数据。
参见图3,在请求端和接收端之间,通过三次握手建立数据传输通道,数据传输通道式在双方之间根据沟通好的版本/标准/协议,定义好开始发送时间,以及接收后的反馈方式,基于协议和数据包格式,可以直接进行数据传输和反馈;握手的具体流程如下:第一次握手,请求端发起请求1,数据字段内容参见以下表格内容:
字段名称 | 字段值 |
SYN标识位 | 1 |
文件序号 | 1 |
32位序列号 | 1 |
校验和 | 整个数据包的校验和 |
第二次握手,接收端收到请求,返回对这个请求的应答,数据字段内容参见以下表格内容:
第三次握手,请求端收到接受方放回的应答,放回应答,数据字段内容参见以下表格内容:
字段名称 | 字段值 |
ACK标识位 | 1 |
文件序号 | 1 |
32位序列号 | 2(自身的序列号+1) |
32位确认号 | 2(对方发过来的序列号+1) |
校验和 | 整个数据包的校验和 |
传输数据,请求端在请求端一侧的显示设备上显示编码后的QR码,接收端通过设置在接收端一侧的条码扫描设备识别在所述请求端一侧的显示设备上显示的QR码,获取所述QR码的内容,并根据预设的解析协议对该QR码内存储的报文信息进行解析还原成所需格式的数据,解析成功后接收端在接收端一侧的显示设备上显示一表示接收成功的应答QR码,请求端通过设置在请求端一侧的条码扫描设备识别在所述接收端一侧的显示设备上显示的应答QR码,识别成功后请求端在请求端一侧的显示设备上显示下一编码后的QR码,重复上述传输数据的过程。
在所述传输数据时,还设定有用于防止数据丢失导致传输失败的数据包超时处理机制。
在所述传输数据时,还设定有用于防止数据重复传输的数据包重复发送处理机制。
参见图4,中断数据传输,当所有要传输的数据传输完成后,通过握手断开数据传输通道,结束数据传输;中断连接的握手过程如下:第一次握手,请求端发起请求1,数据字段内容参见以下表格内容:
字段名称 | 字段值 |
FIN标识位 | 1 |
文件序号 | 当前文件序号 |
32位序列号 | 自身的序列号+1 |
校验和 | 整个数据包的校验和 |
第二次握手,接收端发回应答,数据字段内容参见以下表格内容:
第三次握手,接收端发起请求,数据字段内容参见以下表格内容:
字段名称 | 字段值 |
FIN标识位 | 1 |
文件序号 | 当前文件序号 |
32位序列号 | 自身的序列号+1 |
校验和 | 整个数据包的校验和 |
第四次握手,请求端发回应答,数据字段内容参见以下表格内容:
字段名称 | 字段值 |
ACK标识位 | 1 |
文件序号 | 当前文件序号 |
32位序列号 | 自身的序列号+1 |
32位确认号 | 对方的序列号+1 |
校验和 | 整个数据包的校验和 |
在本实施例中,在请求端和接收端之间建立了数据传输通道,预先定义了数据传输的方法以及反馈方式,使得数据交互的过程变得简练;在数据传输结束时,通过握手中断数据传输通道,保证数据彻底结束后才中断传输过程,防止数据丢失。
实施例二
进一步的,在本实施例中,根据协议的约定,每个数据包最大为2K字节,当传输的数据超过2K字节时,要将数据按顺序分块,划分成大小不超过2K字节的数据包;一个报文由报文头和报文体组成,报文体是可选的。在预设的报文解析协议中,除了包含了要传输的数据的数据包有报文体,其他类型的报文只有报文头。该协议只是一个底层的协议,其中报文体的内容由用户自定义,不在本协议涉及的范围内。比如,使用该协议传递文件,则可以在报文体的开始处添加一些头部信息,记录文件的类型、文件名和文件大小等相关的信息;或者只使用该协议传递一些消息,则报文体可以采用TLV等格式记录消息等。在实施例中,报文体的内容是文本文件的内容,不含其他的数据,即每个文本文件的内容都看作是一块数据。报文的头部中16位文件序号需要记录下各个文件的序号,一个文本文件对应一个文件序号;由于建立连接时,文件序号被设置成1,文本文件对应的文件序号要从2开始计数,每个文件的文件序号都是唯一的。报文头中的32位报文总长度设置成文件的大小,16位的当前报文长度是每个数据包的大小,则每个数据包包含的数据长度为当前报文长度减去报文头的长度,每个文本文件都进行分块,这样每个文件都会对应到一个或多个数据包,同一个文件的数据包的文件序号和32位报文总长度都保持一致。各所述数据包按文件序号存入发送队列中,发送队列存储在QR码生成程序的内存里面,等待生成QR码。传输数据时,将发送队列中的数据包逐个出队,出队后的数据包通过QR编码库生成图像在屏幕中显示,如果对方成功扫描出图像,则对方也在屏幕上显示出一个QR码作为应答,请求方扫描到应答的QR码后将开始显示显示下一张图像,直到队列中的所有数据包都出队。接收方接受到请求方发送过来的数据包时,通过数据包头部中的16位文件序列号、32位序列号、32位报文总长度和16位当前报文长度等信息将数据包还原成文本文件。由于请求法是按照严格的报文顺序发送报文,在接收方一端如果发现有一张报文长时间未接收到(根据请求方的超时处理流程,这个时间设置为25秒),则认为传输失败,断开传输连接,等待下一次的数据传输。
进一步的,所述数据包超时处理机制具体包括以下步骤:
数据包传输采用一个请求对应一个确认的形式。每当请求端发送出一个数据包后,如果接收端收到该数据包,则会返回一个确认已接受到该数据包的报文给请求端,请求端收到该确认报文之后则确认该数据包已被接收端成功接收。在请求端上设定一定时器,定时器上设置有超时时间,本例中设置每张QR码图片最多只显示5秒,如果在5秒内,请求端没有收到该报文,则认为该数据包在传输的过程中已丢失,则重发该数据包,并等待对方的应答,这里设置重发次数最多不超过5次,否则认为连接出现了异常,则终止该传输连接,数据传输失败。
接收端在传输过程中可能会出现收到重复的数据包。本例中还提出了数据包重复发送处理机制的具体步骤,具体如下:
每当接收端收到数据包之后,将新收到的数据包中的报文序列和已接收到数据包的报文序列作比较,如果确认重复收到了报文,即新的数据包的报文序列在已接收到的数据包的报文序列中,将该新数据包丢掉,否则保存该新数据包。最后向请求端发送确认报文,表示已成功接受到该报文,这里的确认报文对应的QR码图像的显示时间要保持固定的5秒;请求端收到确认的报文后,将对应的数据包从发送队列中移除,不再发送。
在本实施例中,设定了数据包超时处理机制;通过定时器设定一个数据包传输的时间,在对应时间内没有收到对方发出的应答码,则重新发送数据包,保证数据包在传输过程中不会丢失;还设定有数据包重复发送处理机制,通过遍历收到的数据包的文件序号,并与新接收的数据包的文件序号进行对比,保证新收到的数据包是之前没有接收到过的,在接收一新的数据包时,还反馈该数据包的文件序号给请求端,请求端在发送队列中删除该文件序号的数据包,确保之后不会再重复发送已传输成功的数据包。
实施例三
参见图1,一种基于QR码的数据传输装置,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:
确定QR码的格式,在本实施例中,QR码是计算机实时生成的清晰QR图片,可以排除污染等因素,因此QR码的纠错级别设置成最低;由于传递的数据是二进制流,简单起见,QR码统一使用八个比特的字节模式进行编码,对QR码的版本不做限制;在内外网隔离的请求端和接收端内预设报文解析协议(报文解析协议的报文结构参见图2)和解析程序。
请求数据,在请求端将要传输的数据根据预设的解析协议构建成报文,并将报文编码成QR码,一个报文只对应一个QR码;报文首先包括建立连接的报文、应答报文和断开连接的报文等,这些用于请求和反馈报文只有头部信息,报文体的长度为0;仅存储有传输数据的报文的报文体中包含data数据。
参见图3,在请求端和接收端之间,通过三次握手建立数据传输通道,数据传输通道式在双方之间根据沟通好的版本/标准/协议,定义好开始发送时间,以及接收后的反馈方式,基于协议和数据包格式,可以直接进行数据传输和反馈;握手的具体流程如下:第一次握手,请求端发起请求1,数据字段内容参见以下表格内容:
字段名称 | 字段值 |
SYN标识位 | 1 |
文件序号 | 1 |
32位序列号 | 1 |
校验和 | 整个数据包的校验和 |
第二次握手,接收端收到请求,返回对这个请求的应答,数据字段内容参见以下表格内容:
第三次握手,请求端收到接受方放回的应答,放回应答,数据字段内容参见以下表格内容:
字段名称 | 字段值 |
ACK标识位 | 1 |
文件序号 | 1 |
32位序列号 | 2(自身的序列号+1) |
32位确认号 | 2(对方发过来的序列号+1) |
校验和 | 整个数据包的校验和 |
传输数据,请求端在请求端一侧的显示设备上显示编码后的QR码,接收端通过设置在接收端一侧的条码扫描设备识别在所述请求端一侧的显示设备上显示的QR码,获取所述QR码的内容,并根据预设的解析协议对该QR码内存储的报文信息进行解析还原成所需格式的数据,解析成功后接收端在接收端一侧的显示设备上显示一表示接收成功的应答QR码,请求端通过设置在请求端一侧的条码扫描设备识别在所述接收端一侧的显示设备上显示的应答QR码,识别成功后请求端在请求端一侧的显示设备上显示下一编码后的QR码,重复上述传输数据的过程。
在所述传输数据时,还设定有用于防止数据丢失导致传输失败的数据包超时处理机制。
在所述传输数据时,还设定有用于防止数据重复传输的数据包重复发送处理机制。
参见图4,中断数据传输,当所有要传输的数据传输完成后,通过握手断开数据传输通道,结束数据传输;中断连接的握手过程如下:第一次握手,请求端发起请求1,数据字段内容参见以下表格内容:
字段名称 | 字段值 |
FIN标识位 | 1 |
文件序号 | 当前文件序号 |
32位序列号 | 自身的序列号+1 |
校验和 | 整个数据包的校验和 |
第二次握手,接收端发回应答,数据字段内容参见以下表格内容:
字段名称 | 字段值 |
ACK标识位 | 1 |
文件序号 | 当前文件序号 |
32位序列号 | 自身的序列号+1 |
32确认号 | 对方的序列号+1 |
校验和 | 整个数据包的校验和 |
第三次握手,接收端发起请求,数据字段内容参见以下表格内容:
第四次握手,请求端发回应答,数据字段内容参见以下表格内容:
字段名称 | 字段值 |
ACK标识位 | 1 |
文件序号 | 当前文件序号 |
32位序列号 | 自身的序列号+1 |
32位确认号 | 对方的序列号+1 |
校验和 | 整个数据包的校验和 |
实施例二
进一步的,在本实施例中,根据协议的约定,每个数据包最大为2K字节,当传输的数据超过2K字节时,要将数据按顺序分块,划分成大小不超过2K字节的数据包;一个报文由报文头和报文体组成,报文体是可选的。在预设的报文解析协议中,除了包含了要传输的数据的数据包有报文体,其他类型的报文只有报文头。该协议只是一个底层的协议,其中报文体的内容由用户自定义,不在本协议涉及的范围内。比如,使用该协议传递文件,则可以在报文体的开始处添加一些头部信息,记录文件的类型、文件名和文件大小等相关的信息;或者只使用该协议传递一些消息,则报文体可以采用TLV等格式记录消息等。在实施例中,报文体的内容是文本文件的内容,不含其他的数据,即每个文本文件的内容都看作是一块数据。报文的头部中16位文件序号需要记录下各个文件的序号,一个文本文件对应一个文件序号;由于建立连接时,文件序号被设置成1,文本文件对应的文件序号要从2开始计数,每个文件的文件序号都是唯一的。报文头中的32位报文总长度设置成文件的大小,16位的当前报文长度是每个数据包的大小,则每个数据包包含的数据长度为当前报文长度减去报文头的长度,每个文本文件都进行分块,这样每个文件都会对应到一个或多个数据包,同一个文件的数据包的文件序号和32位报文总长度都保持一致。各所述数据包按文件序号存入发送队列中,发送队列存储在QR码生成程序的内存里面,等待生成QR码。传输数据时,将发送队列中的数据包逐个出队,出队后的数据包通过QR编码库生成图像在屏幕中显示,如果对方成功扫描出图像,则对方也在屏幕上显示出一个QR码作为应答,请求方扫描到应答的QR码后将开始显示显示下一张图像,直到队列中的所有数据包都出队。接收方接受到请求方发送过来的数据包时,通过数据包头部中的16位文件序列号、32位序列号、32位报文总长度和16位当前报文长度等信息将数据包还原成文本文件。由于请求法是按照严格的报文顺序发送报文,在接收方一端如果发现有一张报文长时间未接收到(根据请求方的超时处理流程,这个时间设置为25秒),则认为传输失败,断开传输连接,等待下一次的数据传输。
进一步的,所述数据包超时处理机制具体包括以下步骤:
数据包传输采用一个请求对应一个确认的形式。每当请求端发送出一个数据包后,如果接收端收到该数据包,则会返回一个确认已接受到该数据包的报文给请求端,请求端收到该确认报文之后则确认该数据包已被接收端成功接收。在请求端上设定一定时器,定时器上设置有超时时间,本例中设置每张QR码图片最多只显示5秒,如果在5秒内,请求端没有收到该报文,则认为该数据包在传输的过程中已丢失,则重发该数据包,并等待对方的应答,这里设置重发次数最多不超过5次,否则认为连接出现了异常,则终止该传输连接,数据传输失败。
接收端在传输过程中可能会出现收到重复的数据包。本例中还提出了数据包重复发送处理机制的具体步骤,具体如下:
每当接收端收到数据包之后,将新收到的数据包中的报文序列和已接收到数据包的报文序列作比较,如果确认重复收到了报文,即新的数据包的报文序列在已接收到的数据包的报文序列中,将该新数据包丢掉,否则保存该新数据包。最后向请求端发送确认报文,表示已成功接受到该报文,这里的确认报文对应的QR码图像的显示时间要保持固定的5秒;请求端收到确认的报文后,将对应的数据包从发送队列中移除,不再发送。
在本实施例中,设定了数据包超时处理机制;通过定时器设定一个数据包传输的时间,在对应时间内没有收到对方发出的应答码,则重新发送数据包,保证数据包在传输过程中不会丢失;还设定有数据包重复发送处理机制,通过遍历收到的数据包的文件序号,并与新接收的数据包的文件序号进行对比,保证新收到的数据包是之前没有接收到过的,在接收一新的数据包时,还反馈该数据包的文件序号给请求端,请求端在发送队列中删除该文件序号的数据包,确保之后不会再重复发送已传输成功的数据包。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种基于QR码的数据传输方法,其特征在于,包括以下步骤:
建立传输准备,在网络物理隔离的请求端和接收端内预设报文解析协议和解析程序;
生成请求数据,在请求端将要传输的数据根据预设的报文解析协议构建成报文,并将报文编码成QR码;
建立传输通道,在请求端和接收端之间,通过确认握手协议建立数据传输通道;
传输数据,设置第一显示设备,显示编码后的QR码,通过与接收端通信连接的第一条码扫描设备识别在所述第一显示设备上显示的QR码,解析并获取所述QR码所包含的内容,并根据预设的解析协议对该QR码内存储的报文信息进行解析还原成所需格式的数据,解析成功后接收端在第二显示设备上显示一表示接收成功的应答QR码,通过与请求端通信连接的第二条码扫描设备识别在所述第二显示设备上显示的应答QR码,识别成功后请求端在所述第一显示设备上显示下一帧编码后的QR码,重复执行上述传输数据的过程;
在所述传输数据时,还设定有用于防止数据丢失导致传输失败的数据包超时处理机制;
在所述传输数据时,还设定有用于防止数据重复传输的数据包重复发送处理机制;
中断数据传输,当所有要传输的数据传输完成后,通过握手断开数据传输通道,结束数据传输。
2.根据权利要求1所述的一种基于QR码的数据传输方法,其特征在于:在将要传输的数据根据解析协议构建成报文时,预设定有数据包的大小限值,当传输的数据超过所述大小限值时,将数据进行按顺序进行分块,划分成数据大小不超过所述大小限值的数据包;各所述数据包按照确定的报文格式编码成报文,报文包括报文头和报文体,报文头内存储有数据包的文件序号,报文体内存储有传输的数据内容;各所述数据包按文件序号存入发送队列中。
3.根据权利要求2所述的一种基于QR码的数据传输方法,其特征在于,所述数据包超时处理机制具体包括以下步骤:
在请求端上设定一定时器,定时器上设置有超时时间;
当请求端显示一编码后的QR码时,定时器开始计时,若定时器计时结束时,请求端还未识别到接收端上的应答QR码,则认为当前请求端发送的数据包在传输过程中丢失,重发该数据包;
设置重发数据包的最大次数,当重复数据包的次数超过最大次数时,认为数据传输通道出现了异常,中断本次数据传输。
4.根据权利要求2所述的一种基于QR码的数据传输方法,其特征在于,所述数据包重复发送处理机制具体包括以下步骤:
当接收端接收到新的报文时,将新收到的报文中的数据包的文件序号和已接收到的数据包的文件序号进行对比,如果出现重复的收数据包的文件序号,则将该新的数据包删除,否则保存该新的数据包;
保存数据包后,接收端生成应答QR码,所述应答QR码内包含表示已接收到该文件序号的确认报文,请求端在扫描成功该应答QR码后,将对应文件序号的数据包从发送队列中移除。
5.一种基于QR码的数据传输装置,其特征在于,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:
建立传输准备,在网络物理隔离的请求端和接收端内预设报文解析协议和解析程序;
生成请求数据,在请求端将要传输的数据根据预设的报文解析协议构建成报文,并将报文编码成QR码;
建立传输通道,在请求端和接收端之间,通过确认握手协议建立数据传输通道;
传输数据,设置第一显示设备,显示编码后的QR码,通过与接收端通信连接的第一条码扫描设备识别在所述第一显示设备上显示的QR码,解析并获取所述QR码所包含的内容,并根据预设的解析协议对该QR码内存储的报文信息进行解析还原成所需格式的数据,解析成功后接收端在第二显示设备上显示一表示接收成功的应答QR码,通过与请求端通信连接的第二条码扫描设备识别在所述第二显示设备上显示的应答QR码,识别成功后请求端在所述第一显示设备上显示下一帧编码后的QR码,重复执行上述传输数据的过程;
在所述传输数据时,还设定有用于防止数据丢失导致传输失败的数据包超时处理机制;
在所述传输数据时,还设定有用于防止数据重复传输的数据包重复发送处理机制;
中断数据传输,当所有要传输的数据传输完成后,通过握手断开数据传输通道,结束数据传输。
6.根据权利要求5所述的一种基于QR码的数据传输装置,其特征在于:在将要传输的数据根据解析协议构建成报文时,预设定有数据包的大小限值,当传输的数据超过所述大小限值时,将数据进行按顺序进行分块,划分成数据大小不超过所述大小限值的数据包;各所述数据包按照确定的报文格式编码成报文,报文包括报文头和报文体,报文头内存储有数据包的文件序号,报文体内存储有传输的数据内容;各所述数据包按文件序号存入发送队列中。
7.根据权利要求6所述的一种基于QR码的数据传输装置,其特征在于,所述数据包超时处理机制具体包括以下步骤:
在请求端上设定一定时器,定时器上设置有超时时间;
当请求端显示一编码后的QR码时,定时器开始计时,若定时器计时结束时,请求端还未识别到接收端上的应答QR码,则认为当前请求端发送的数据包在传输过程中丢失,重发该数据包;
设置重发数据包的最大次数,当重复数据包的次数超过最大次数时,认为数据传输通道出现了异常,中断本次数据传输。
8.根据权利要求6所述的一种基于QR码的数据传输装置,其特征在于,所述数据包重复发送处理机制具体包括以下步骤:
当接收端接收到新的报文时,将新收到的报文中的数据包的文件序号和已接收到的数据包的文件序号进行对比,如果出现重复的收数据包的文件序号,则将该新的数据包删除,否则保存该新的数据包;
保存数据包后,接收端生成应答QR码,所述应答QR码内包含表示已接收到该文件序号的确认报文,请求端在扫描成功该应答QR码后,将对应文件序号的数据包从发送队列中移除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010500901.2A CN111654546A (zh) | 2020-06-04 | 2020-06-04 | 一种基于qr码的数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010500901.2A CN111654546A (zh) | 2020-06-04 | 2020-06-04 | 一种基于qr码的数据传输方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111654546A true CN111654546A (zh) | 2020-09-11 |
Family
ID=72349039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010500901.2A Pending CN111654546A (zh) | 2020-06-04 | 2020-06-04 | 一种基于qr码的数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111654546A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112532349A (zh) * | 2020-11-24 | 2021-03-19 | 广州技象科技有限公司 | 基于解码异常的数据处理方法及装置 |
CN113794728A (zh) * | 2021-09-16 | 2021-12-14 | 国网北京市电力公司 | 数据传输方法、装置、计算机可读介质及处理器 |
CN114186648A (zh) * | 2021-12-01 | 2022-03-15 | 北京天兵科技有限公司 | 一种非接触式无网络数据交换方法及其***和设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103036904A (zh) * | 2012-12-27 | 2013-04-10 | 东方通信股份有限公司 | 一种在通信网络中使用udp协议进行数据可靠传输的方法 |
US9600701B1 (en) * | 2015-12-30 | 2017-03-21 | Dropbox, Inc. | Inter-device data transfer based on barcodes |
CN108055116A (zh) * | 2017-10-25 | 2018-05-18 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 二维码双工通信方法 |
CN109274642A (zh) * | 2018-08-14 | 2019-01-25 | 广州卓腾科技有限公司 | 网络间数据通信方法及相关装置、***、设备和存储介质 |
CN110995697A (zh) * | 2019-11-29 | 2020-04-10 | 济南慧天云海信息技术有限公司 | 一种大数据传输方法及*** |
-
2020
- 2020-06-04 CN CN202010500901.2A patent/CN111654546A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103036904A (zh) * | 2012-12-27 | 2013-04-10 | 东方通信股份有限公司 | 一种在通信网络中使用udp协议进行数据可靠传输的方法 |
US9600701B1 (en) * | 2015-12-30 | 2017-03-21 | Dropbox, Inc. | Inter-device data transfer based on barcodes |
CN108055116A (zh) * | 2017-10-25 | 2018-05-18 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 二维码双工通信方法 |
CN109274642A (zh) * | 2018-08-14 | 2019-01-25 | 广州卓腾科技有限公司 | 网络间数据通信方法及相关装置、***、设备和存储介质 |
CN110995697A (zh) * | 2019-11-29 | 2020-04-10 | 济南慧天云海信息技术有限公司 | 一种大数据传输方法及*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112532349A (zh) * | 2020-11-24 | 2021-03-19 | 广州技象科技有限公司 | 基于解码异常的数据处理方法及装置 |
CN112532349B (zh) * | 2020-11-24 | 2022-02-18 | 广州技象科技有限公司 | 基于解码异常的数据处理方法及装置 |
CN113794728A (zh) * | 2021-09-16 | 2021-12-14 | 国网北京市电力公司 | 数据传输方法、装置、计算机可读介质及处理器 |
CN114186648A (zh) * | 2021-12-01 | 2022-03-15 | 北京天兵科技有限公司 | 一种非接触式无网络数据交换方法及其***和设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111654546A (zh) | 一种基于qr码的数据传输方法及装置 | |
JP4198910B2 (ja) | 並列チャネルエンコーダパケット伝送システム中でサブパケットを送信する方法および受信する方法 | |
JP5721301B2 (ja) | 通信システムにおける非同期増分冗長受信のための方法および装置 | |
US20050216472A1 (en) | Efficient multicast/broadcast distribution of formatted data | |
CN102687448A (zh) | 网络中可靠实时数据流传输的高效应用层自动重复请求重发的方法 | |
JP2002124992A (ja) | マルチキャストによるデータファイル配信方法 | |
KR20040023568A (ko) | 패킷 기반 통신 시스템을 위한 순방향 에러 보정 시스템및 방법 | |
CN101507318B (zh) | 移动通信***中使用的无线通信装置及方法 | |
WO2020143635A1 (zh) | 数据的重传方法、装置、存储介质及电子装置 | |
CN111147196A (zh) | 数据传输方法、数据发送设备及数据接收设备 | |
US7746953B1 (en) | Method and apparatus for asynchronous incremental redundancy transmission in a communication system | |
US7995517B2 (en) | System and method for transmitting units of messages in a mobile communication system | |
TWI380621B (en) | Method and apparatus for transmitting data, and a communication system | |
JP2003008642A (ja) | マルチキャスト通信方法およびシステム | |
JP4217534B2 (ja) | パケット送信装置、パケット受信装置、方法及びプログラム | |
JP2006304138A (ja) | 選択再送型通信装置 | |
CN115038115A (zh) | 数据传输方法、装置、电子设备、存储介质和产品 | |
CN113573252A (zh) | 数据传输方法、***、芯片、电子设备及存储介质 | |
WO2008052483A1 (fr) | Procédé et appareil de compression de données et système de rétroaction de demande automatique de répétition | |
JPH10242946A (ja) | データフレーム伝送方法 | |
CN116896567B (zh) | 网络层协议传输数据方法和装置 | |
KR20050034477A (ko) | 이동 통신 시스템에서의 가변 길이 프레임 구성 장치 및그 방법 | |
CN114186648A (zh) | 一种非接触式无网络数据交换方法及其***和设备及存储介质 | |
JPS59167155A (ja) | 一斉通信における再送方式 | |
JPH1013655A (ja) | 通信システム |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200911 |
|
RJ01 | Rejection of invention patent application after publication |