CN104954101A - 基于同步ack的多终端数据同步方法 - Google Patents

基于同步ack的多终端数据同步方法 Download PDF

Info

Publication number
CN104954101A
CN104954101A CN201510442329.8A CN201510442329A CN104954101A CN 104954101 A CN104954101 A CN 104954101A CN 201510442329 A CN201510442329 A CN 201510442329A CN 104954101 A CN104954101 A CN 104954101A
Authority
CN
China
Prior art keywords
data
terminal
eack
ack
service end
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.)
Granted
Application number
CN201510442329.8A
Other languages
English (en)
Other versions
CN104954101B (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.)
Xiangyang Yunlian Intelligent Technology Co.,Ltd.
Original Assignee
Hubei University of Arts and Science
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 Hubei University of Arts and Science filed Critical Hubei University of Arts and Science
Priority to CN201510442329.8A priority Critical patent/CN104954101B/zh
Publication of CN104954101A publication Critical patent/CN104954101A/zh
Application granted granted Critical
Publication of CN104954101B publication Critical patent/CN104954101B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种基于同步ACK的多终端数据同步方法,在服务端和各终端分别维持各自最新的传输控制字符序号,首先启动服务端并读入传输控制字符序号的最新值,分别启动各终端读入各自传输控制字符序号的最新值;当某终端有新增的数据时,将数据发往服务端,服务端将该数据存储并更新服务端传输控制字符序号,广播下发给各个终端;任一终端收到服务端下发的数据后,解析获取下发数据的传输控制字符序号,判断是否等于本地传输控制字符序号值加1,是则将该数据更新至本地并更新本地传输控制字符序号值,否则丢弃该数据,将包括本地传输控制字符序号值的同步请求上传给服务端,从服务端获取相应数据后更新本地数据并更新本地传输控制字符序号值。<b/>

Description

基于同步ACK的多终端数据同步方法
技术领域
本发明涉及到计算机工程技术应用领域,更具体地,是针对一种基于同步ACK校正的数据同步方法。
背景技术
随着云计算的不断发展,分布式系统的思想也慢慢开始深入到各个系统中,分布式系统包括分布式操作系统,分布式程序设计语言及编译解释系统、分布式文件系统和分布式数据库系统等。分布式系统最大的特点就是进程之间的高并发处理以及保证数据的可靠性和可用性。高并发需要进行数据之间的实时同步,可靠性需要多服务器数据备份,这样当某个服务器数据出现问题后能进行恢复,这就带来了服务器之间数据存储同步的问题,这也是分布式系统中得巨大挑战。
现有的分布式服务器之间的存储分布式已经比较成熟了,主要包括分布式文件系统,分布式键值系统,分布式表格系统及分布式数据库,这些分布式存储系统通过一定的分布式协议进行服务端之间的数据同步,其策略基本上是通过一致性哈希算法,在指定服务器之间进行数据备份及同步。
但是在一些特殊情况下,终端数据库需要与服务器之间进行数据同步,这样确保终端在断网情况下能够依赖本地数据继续运行。且需要尽量与服务端的数据一致,这就需要系统在重新联网后同步获取服务端产生的所有新数据。
虽然服务器之间的数据同步方案相对比较成熟了,基本上是通过节点同步合并、I/O容错及分布式协议恢复,但是对于终端数据同步方案却还不是很成熟。因为多终端之间无法像服务器一样直接进行通信同步,而需要统一通过服务器进行同步,这样就给服务器带来了巨大压力。如果通过数据库同步的话,其基本原理是通过传输目的数据库的历史操作日志进行原数据库与目的数据库之间的信息同步的。这需要保证两个数据库表格属性的完全一致性。
怎样实现多个终端与服务端之间的数据同步方案,在保证数据同步完全可靠的情况下提高数据同步的效率,保证终端之间数据的实时更新,是当前尚未解决的技术问题。
发明内容
本发明解决的技术问题在于:实现多终端情况下的服务端数据同步,保证终端在联网状态下能获取最新数据,并在断网重连后同步最新的数据。
本发明进一步解决的问题在于:在保证数据可靠的基础上,大幅度提高数据同步的效率。
本发明的技术方案提供一种基于同步ACK的多终端数据同步方法,在服务端和各终端分别维持各自最新的传输控制字符序号,将服务端的传输控制字符序号记为ACK,将服务端的传输控制字符序号记为EACK,所述传输控制字符序号根据数据的序列号取值;设有N个终端,分别记为终端1、终端2、...、终端N,同步实现方式如下,
首先,启动服务端,进行初始化,包括读入传输控制字符序号ACK的最新值;分别启动终端1、终端2、...、终端N,各终端分别初始化,包括读入各自传输控制字符序号EACK1、EACK2、...、EACKN的最新值;
当某终端I有新增的数据时,将数据发往服务端,服务端将该数据做持久化存储,并更新服务端ACK值,ACK=ACK+1;服务端将接收到的数据,添加最新的ACK值后广播下发给各个终端1、终端2、...、终端N;
任一终端J收到服务端下发的数据后,解析获取下发数据的ACK值,将收到的ACK值与本地EACKJ值进行比较,判断是否ACK 等于本地EACKJ值加1,
是则,终端J将该数据更新至本地,并更新EACKJ值, EACKJ=EACKJ +1,
否则,终端J丢弃该数据,将包括本地EACKJ值的同步请求上传给服务端;服务端在接收到终端J的同步请求后,对同步请求进行解析,获取需要同步的EACKJ值,并从持久化存储的数据中获取传输控制字符序号取值为EACKJ+1至ACK的所有数据,然后发送给终端J,终端J接收到数据后更新本地数据, 并更新EACKJ值, EACKJ=EACKJ +1。
而且,服务端在同一时刻最多只接收一个终端上传数据的请求,在服务端设置一个先入先出的队列,各请求按时间顺序被加入队列的末端,服务端从该队列的首端依次取出请求进行处理。
本发明是通过维护终端与服务端的一致性ACK值来实现多终端与服务器之间的数据完全同步,且保证数据传输的可靠高效性。与现有技术相比,本发明的优点在于:
(1)    本发明只需要维护ACK值,实现简单,计算效率高;
(2)    本发明每次数据同步只需要发送有效数据,极大提高同步的效率,节省了通信带宽,并挺高了系统的鲁棒性;
(3)    通过维护ACK值可以实现数据的完全同步。
附图说明
图1是本发明实施例的系统应用示意图。
图2是本发明实施例的基本流程图。
具体实施方式   
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施案例,并参照附图,对本发明进一步详细说明。
本发明采用的技术方案是:在服务端和客户端(即终端)各维持各自最新的ACK值(终端的可称作EACK,以和服务端ACK做区分),传输控制字符序号ACK取值可采用数据的序列号(即数据次序),称为传输控制字符序号。即将服务端的传输控制字符序号记为ACK,将服务端的传输控制字符序号记为EACK。
参见图2,本发明实施例的流程包括以下步骤:
首先,启动各个终端和服务端,分别读入当前的ACK值进行初始化,终端的初始化结果作为本地的EACK值存储;
当任一终端上传数据到服务端后,服务端更新ACK值,可采用简单的自增加,即ACK=ACK+1。服务端将该条上传的数据与更新的ACK值做持久化存储,并将此条数据与更新的ACK值一起进行广播;
各终端接收到广播的数据后,分别执行的处理为:解析获取ACK值,与本地EACK值进行比较,如果接收到的ACK等于更新后EACK的值(即EACK+1),则按此条数据进行更新本地数据,并更新EACK值(即EACK+1),否则丢弃数据并将本地EACK值发给服务端请求数据同步,服务端将EACK至接收到的ACK之间的所有数据信息作为同步数据传输给终端,终端更新本地数据,并更新EACK值(即接收到的ACK)。完成终端与服务器的数据同步。
具体实施时,在终端更新本地数据后,终端可判断是否继续实施数据同步,是则服务端继续与终端保持数据同步策略,接收终端的数据上传并广播,否则服务端结束与该终端的数据同步。
具体实施时,设同步系统中有N个终端,终端1、终端2、...、终端N,相应可设计流程为:
(1)    启动服务端,进行初始化,包括读入传输控制字符序号ACK的最新值;
(2)    分别启动终端1、终端2、...、终端N,各终端分别初始化,包括读入各自传输控制字符序号EACK1、EACK2、...、EACKN的最新值;
(3)    当某终端I(I的取值范围为1,2,...,N)有新增数据时,将数据发往服务端,服务端将数据做持久化存储,并更新服务端ACK值,即ACK=ACK+1;
(4)    服务端将接收到的数据,添加最新的ACK值后广播下发给各个终端1、终端2、...、终端N;
(5)    任一终端J(J=1,2,...,N)收到服务端下发的数据后,解析获取下发数据的ACK值,将收到的ACK值与本地EACKJ值进行比较;
(6)    如果ACK =更新后的EACKJ值(即本地EACKJ值+1),则终端J将该数据更新至本地,进入步骤(9),否则终端J丢弃该数据,进入步骤(7);
(7)    终端J将包括本地EACKJ值的同步请求上传给服务端,进行数据同步请求;
(8)    服务端在接收到终端J的同步请求后,对同步请求进行解析,获取需要同步的EACKJ值,并从持久化存储的数据中获取EACKJ至ACK之间的所有数据(即EACKJ+1至ACK的数据),然后可打包发送给终端J,终端J接收到数据后更新本地数据,即根据新得到的EACKJ+1至ACK的数据,实现数据同步;
(9)    更新EACKJ值,即EACKJ=EACKJ +1。
具体实施时,根据需要可以连续进行步骤(3)到步骤(9)从而保证终端1、终端2、...、终端N之间的数据完全同步。
参见图1,根据以上流程,实际工作步骤举例如下:
(1)    开启服务端,从服务端的持久化文件中读取服务端当前最新数据,根据文件内容初始化服务端ACK值,设此时ACK=y,开启数据发送、接收服务,等待接收终端数据;
(2)    开启终端1、终端2、...、终端N,各终端从各自持久化文件中读取当前最新数据,并初始化各终端EACK1、EACK2、...、EACKN值,开启各自数据接收、发送服务,等待向服务端发送数据;例如EACK1=y、EACK2=y、EACK3=y-k、...、EACKN
(3)    终端1上传数据(包括信息MSG)至服务端;
(4)    服务端接收到终端1发送上来的数据(包括信息MSG)后,ACK++,将数据(包括信息MSG,同时附带ACK=y+1)进行广播,将该信息下发到所有开启并运行正常的终端;终端1本身可以不重复更新,只更新本地EACK=y+1,终端2、...、终端N接收到服务端的广播数据后,判断ACK是否等于相应终端EACK加1,是则进行数据更新,并更新本地EACK值等于ACK,若否则,则丢弃数据,发起同步请求以请求数据更新同步,以达到各个终端站点数据的实时同步。例如终端3之前与服务端的连接中断一段时间后才恢复与服务端的连接,导致与服务端数据不同步,此时EACK3=y-k,终端3接收到最新ACK后,检测到这个ACK值与当前的EACK3值不一致,EACK3=ACK-1-k,表明该终端之前丢失了k条记录,请求数据同步。服务端接收到终端3的同步请求消息后,读取同步请求中的EACK3字段,将EACK3之后的所有数据(k+1条)打包发送终端3。终端3更新接收到的k+1条数据,并更新本地EACK值等于ACK。
具体实施时,各终端保持与服务端的连接,各自在随机时间向服务端发送上传数据的请求,服务端在同一时刻最多只接收一个终端的请求,为了处理避免多终端请求造成重叠,可以设置各请求按时间顺序被加入服务端设置的一个先入先出(FIFO,First-In-First-Out)的队列的末端。服务端从该队列的首端依次取出请求,向对应的终端发出允许上传数据的指令,该终端收到指令后向服务端上传数据,这样各终端都能和服务端保持同步且避免多终端同步冲突。在队列中的请求处理完成后,服务端继续等待各终端发送数据或数据同步请求。
        可见,本发明采用同步ACK机制实现数据的完全同步,解决数据同步的可靠性及高效性。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其它的任何未违背本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (2)

1.一种基于同步ACK的多终端数据同步方法,其特征在于:在服务端和各终端分别维持各自最新的传输控制字符序号,将服务端的传输控制字符序号记为ACK,将服务端的传输控制字符序号记为EACK,所述传输控制字符序号根据数据的序列号取值;设有N个终端,分别记为终端1、终端2、...、终端N,同步实现方式如下,
首先,启动服务端,进行初始化,包括读入传输控制字符序号ACK的最新值;分别启动终端1、终端2、...、终端N,各终端分别初始化,包括读入各自传输控制字符序号EACK1、EACK2、...、EACKN的最新值;
当某终端I有新增的数据时,将数据发往服务端,服务端将该数据做持久化存储,并更新服务端ACK值,ACK=ACK+1;服务端将接收到的数据,添加最新的ACK值后广播下发给各个终端1、终端2、...、终端N;
任一终端J收到服务端下发的数据后,解析获取下发数据的ACK值,将收到的ACK值与本地EACKJ值进行比较,判断是否ACK 等于本地EACKJ值加1,
是则,终端J将该数据更新至本地,并更新EACKJ值, EACKJ=EACKJ +1,
否则,终端J丢弃该数据,将包括本地EACKJ值的同步请求上传给服务端;服务端在接收到终端J的同步请求后,对同步请求进行解析,获取需要同步的EACKJ值,并从持久化存储的数据中获取传输控制字符序号取值为EACKJ+1至ACK的所有数据,然后发送给终端J,终端J接收到数据后更新本地数据, 并更新EACKJ值, EACKJ=EACKJ +1。
2.根据权利要求1所述基于同步ACK的多终端数据同步方法,其特征在于:服务端在同一时刻最多只接收一个终端上传数据的请求,在服务端设置一个先入先出的队列,各请求按时间顺序被加入队列的末端,服务端从该队列的首端依次取出请求进行处理。
CN201510442329.8A 2015-07-24 2015-07-24 基于同步ack的多终端数据同步方法 Active CN104954101B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510442329.8A CN104954101B (zh) 2015-07-24 2015-07-24 基于同步ack的多终端数据同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510442329.8A CN104954101B (zh) 2015-07-24 2015-07-24 基于同步ack的多终端数据同步方法

Publications (2)

Publication Number Publication Date
CN104954101A true CN104954101A (zh) 2015-09-30
CN104954101B CN104954101B (zh) 2018-06-01

Family

ID=54168486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510442329.8A Active CN104954101B (zh) 2015-07-24 2015-07-24 基于同步ack的多终端数据同步方法

Country Status (1)

Country Link
CN (1) CN104954101B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105554138A (zh) * 2015-12-24 2016-05-04 深圳市优户科技有限公司 分布式数据同步系统及方法
CN105610953A (zh) * 2015-12-31 2016-05-25 深圳市优户科技有限公司 一种分布式数据同步系统及方法
CN107071005A (zh) * 2017-03-24 2017-08-18 厦门中控生物识别信息技术有限公司 一种数据同步方法及系统
CN108475254A (zh) * 2016-12-16 2018-08-31 华为技术有限公司 对象复制方法、装置及对象存储设备
CN110611638A (zh) * 2018-06-14 2019-12-24 中国科学院沈阳计算技术研究所有限公司 一种多终端模型实时同步方法
WO2022078243A1 (zh) * 2020-10-16 2022-04-21 北京沃东天骏信息技术有限公司 信息同步方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1723278A (zh) * 2002-12-11 2006-01-18 高通股份有限公司 无线链路协议同步程序
CN101035129A (zh) * 2007-01-11 2007-09-12 上海交通大学 流量自适应的无线传感器网络信道接入控制方法
US20080037465A1 (en) * 2006-08-09 2008-02-14 Chiu Ngo System and method for wireless communication of uncompressed video having acknowledgement (ACK) frames
AU2007284378A1 (en) * 2006-08-18 2008-02-21 Interdigital Technology Corporation Sending and reducing uplink feedback signaling for transmission of MBMS data
US20090270497A1 (en) * 2008-04-24 2009-10-29 Pharmacyclics, Inc. Treatment of Non-Localized Inflammation with pan-HDAC Inhibitors
CN102124806A (zh) * 2008-08-19 2011-07-13 高通股份有限公司 用于sdma上行链路数据的帧交换的方法和装置
CN103780326A (zh) * 2014-01-17 2014-05-07 电子科技大学 一种多节点语音数据的传输方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1723278A (zh) * 2002-12-11 2006-01-18 高通股份有限公司 无线链路协议同步程序
US20080037465A1 (en) * 2006-08-09 2008-02-14 Chiu Ngo System and method for wireless communication of uncompressed video having acknowledgement (ACK) frames
AU2007284378A1 (en) * 2006-08-18 2008-02-21 Interdigital Technology Corporation Sending and reducing uplink feedback signaling for transmission of MBMS data
CN101035129A (zh) * 2007-01-11 2007-09-12 上海交通大学 流量自适应的无线传感器网络信道接入控制方法
US20090270497A1 (en) * 2008-04-24 2009-10-29 Pharmacyclics, Inc. Treatment of Non-Localized Inflammation with pan-HDAC Inhibitors
CN102124806A (zh) * 2008-08-19 2011-07-13 高通股份有限公司 用于sdma上行链路数据的帧交换的方法和装置
CN103780326A (zh) * 2014-01-17 2014-05-07 电子科技大学 一种多节点语音数据的传输方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105554138A (zh) * 2015-12-24 2016-05-04 深圳市优户科技有限公司 分布式数据同步系统及方法
CN105554138B (zh) * 2015-12-24 2019-07-19 深圳市优户科技有限公司 分布式数据同步系统及方法
CN105610953A (zh) * 2015-12-31 2016-05-25 深圳市优户科技有限公司 一种分布式数据同步系统及方法
CN105610953B (zh) * 2015-12-31 2019-07-23 深圳市优户科技有限公司 一种分布式数据同步系统及方法
CN108475254A (zh) * 2016-12-16 2018-08-31 华为技术有限公司 对象复制方法、装置及对象存储设备
CN107071005A (zh) * 2017-03-24 2017-08-18 厦门中控生物识别信息技术有限公司 一种数据同步方法及系统
CN110611638A (zh) * 2018-06-14 2019-12-24 中国科学院沈阳计算技术研究所有限公司 一种多终端模型实时同步方法
CN110611638B (zh) * 2018-06-14 2022-03-04 中国科学院沈阳计算技术研究所有限公司 一种多终端模型实时同步方法
WO2022078243A1 (zh) * 2020-10-16 2022-04-21 北京沃东天骏信息技术有限公司 信息同步方法及装置

Also Published As

Publication number Publication date
CN104954101B (zh) 2018-06-01

Similar Documents

Publication Publication Date Title
CN104954101A (zh) 基于同步ack的多终端数据同步方法
US20180123714A1 (en) Method, Device, and System for Sending and Receiving Code Block Data Stream
CN100461708C (zh) 告警同步方法
CN102769626B (zh) 一种会话信息同步方法、装置以及系统
CN110502364B (zh) 一种OpenStack平台下大数据沙箱集群的跨云备份恢复方法
CN104901983B (zh) 一种信息同步方法、装置及系统
CN104184756A (zh) 一种数据同步方法、装置及系统
CN110213359B (zh) 一种基于d2d的车联网组网数据推送系统和方法
CN102523118A (zh) 一种局域网内多套控制计算机构成的冗余控制系统与方法
CN104038548A (zh) 服务器系统
CN107888434B (zh) 网络设备配置同步方法和装置
CN111368005B (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
CN108616455A (zh) 一种单机堆叠系统的路由同步方法
CN116233148A (zh) 云边数据同步方法、系统、装置及计算机存储介质
CN110740195B (zh) 一种基于消息引擎的分布式系统数据同步方法及系统
CN100385407C (zh) 网络信息系统异地数据镜像方法
CN107179912B (zh) 一种分布式架构软件定义网络控制器的热升级方法
CN103581262B (zh) 一种主备数据同步方法、装置和系统
EP4135242A1 (en) Method and apparatus for switching between main and standby links, electronic device, router, and switch
CN110585724B (zh) 游戏客户端中的表格数据更新方法、装置
CN109005246B (zh) 一种数据的同步方法、装置及系统
CN103888283A (zh) 一种sctp通信方法及装置
CN116055314A (zh) 一种配置同步方法及装置
CN103117883A (zh) 一种分组设备运行状态同步方法
CN104468767A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240627

Address after: Room 308, 3rd Floor, Building 1, No. 9 Dengchu Road, High tech Development Zone, Xiangyang City, Hubei Province, 441000

Patentee after: Xiangyang Yunlian Intelligent Technology Co.,Ltd.

Country or region after: China

Address before: 441053 No. 296, Longzhong Road, Xiangyang City, Xiangfan City, Hubei Province

Patentee before: HUBEI University OF ARTS AND SCIENCE

Country or region before: China

TR01 Transfer of patent right