CN111147187A - 基于短编号嵌入的容错同步方法 - Google Patents
基于短编号嵌入的容错同步方法 Download PDFInfo
- Publication number
- CN111147187A CN111147187A CN202010008578.7A CN202010008578A CN111147187A CN 111147187 A CN111147187 A CN 111147187A CN 202010008578 A CN202010008578 A CN 202010008578A CN 111147187 A CN111147187 A CN 111147187A
- Authority
- CN
- China
- Prior art keywords
- short
- communication terminal
- fault
- sequence number
- embedding
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明公开一种基于短编号嵌入的容错同步方法,应用于通信领域,针对现有的容错同步机制,在UDP通信方式时,难以避免报文出错、丢失或乱序的问题;本发明初始化过程中,通信端A对信道的错误状况进行估计,计算原序号被编码后的容错范围K,选择随机数种子seed,并将K与seed告知通信端B;通信端A记录一个短编号变量x,初始化为0;通信端A每次调用伪随机函数后,通过x=(x+1)MOD K更新短编号;通信端A将原序号编码为短编号后发送给通信端B;通信端B基于收到的短编号恢复长序号y1;通信端B根据恢复的长序号重复调用伪随机函数(y1‑y0)次,使得通信端B的伪随机函数调用次数与通信端A相同。
Description
技术领域
本发明属于通信领域,特别涉及一种容错同步技术。
背景技术
在数字孪生、并行仿真、加密编码等众多领域中,存在着容错同步问题。典型的用途是用于两个伪随机生成器函数的状态同步。比如,在游戏设计中,为了提高逻辑判断的实时性,保证游戏的流畅性,需要将逻辑计算放在客户端。考虑到玩家之间逻辑同步的要求与对玩家监督的必要性,则需要服务器与客户端同步伪随机逻辑计算,对其产生的随机结果进行验证。同步逻辑计算的结果要求在两边实现相同算法,并保证其计算的随机序列一致,即客户端需将第n次使用函数计算的值传给服务器,服务器也必须用第n次计算的值来验证。在并行仿真中,仿真系统由多个仿真代理组成,每个仿真代理基于伪随机生成器函数控制仿真行为,多个仿真代理之间需要保持伪随机生成器函数的状态同步。由于仿真代理之间通过报文通信来进行同步,报文出错或丢失,可能导致的同步失败会影响仿真结果。因而,需要高效的容错同步机制。
伪随机生成器函数的典型工作过程是,通过将种子作为输入变量,并重复更新函数的内部状态,得到一系列输出。在假定通信是可靠的情况下,比如基于TCP可靠传输协议,则多个代理之间可以保持同步。然而,当采用了UDP通信方式时,报文出错、丢失或乱序难以避免,因而,需要有效的长序列同步机制。
发明内容
为解决上述技术问题,本发明提出一种基于短编号嵌入的容错同步方法,通过将长序号编码成短编号以及简单的函数计算恢复长编码,可以极大地减少两通信端的计算成本。
本发明采用的技术方案为:一种基于短编号嵌入的容错同步方法,包括:
S1、通信端A对信道的错误状况进行估计,计算原序号被编码后的容错范围K,选择随机数种子seed,并将K与seed告知通信端B;
S2、通信端A记录一个短编号变量x,初始化为0;
通信端B定义一个长序号变量y,称为参考长序号,初始化为0,且通信端B还定义变量y0,用于记录伪随机函数已调用次数,初始化为0;
S3、通信端A每次调用伪随机函数后,通过x=(x+1)MOD K更新短编号;
S4、通信端A将原序号编码为短编号后发送给通信端B;
S5、通信端B基于收到的短编号恢复长序号。
步骤S4还包括通信端A将原序号编码为短编号后加入CRC校验。
步骤S5还包括对接收到的短编号进行CRC校验,若校验结果为报文出错则丢弃报文;否则根据接收到的短编号恢复长序号。
所述容错范围K计算式为:
K=4d+1
其中,d表示乱序范围,通常根据信道状况预先设置。
所述步骤S5通过下式恢复长序号:
其中,sgn()为符号函数,y为参考长序号。
所述y初始化为0。
步骤S5还包括根据当前恢复的长序号,通信端B重复调用伪随机函数(y1-y0)次;
其中,y0表示通信端B根据上一次恢复的长序号重复调用伪随机函数的次数。
所述y0初始化为0。
步骤S5还包括:通信端B根据当前恢复的长序号重复调用完(y1-y0)次伪随机函数后,根据下式更新参考长序号:
y=max(y1,y)。
本发明的有益效果:本发明为在通信端B验证通信端A产生的伪随机数,不需要直接同步伪随机函数调用次数,即长序号;通过将长序号编码成短编号以及简单的函数计算恢复长编码,可以极大地减少两通信端的计算成本;在需要不断进行实施验证的系统,如游戏中,运用本发明不但可以有效地进行伪随机函数容错同步,还可以减少服务器负荷,降低运行维护成本。
附图说明
图1基于短编号嵌入的容错同步机制原理说明图;
图2乱序对编号影响的示意图。
具体实施方式
为便于本领域技术人员理解本发明的技术内容,下面结合附图对本发明内容进一步阐释。
为了克服现有技术中伪随机生成器函数同步机制依赖可靠传输的缺点,本发明提出了一种基于短编号嵌入的容错同步方法,如图1所示,该方法基于的通信系统由通信端A与通信端B组成,二者之间通过有线或无线信道,采用报文方式通信。信道可能是不可靠的,报文出错情形,包括报文出错、丢失、乱序等情形。所述方法包括以下步骤:
步骤1:通信端A、通信端B同时初始化伪随机函数。为了计算出相同的随机数,通信端A与通信端B需应用相同的伪随机函数并知晓相同的种子以及函数调用次数,因此应在初始化阶段首先同步除伪随机函数调用次数x0外的所有条件。
在初始化过程中,通信端A首先对信道的错误状况如乱序范围与丢包概率进行估计。如图2所示,落在中央横轴上的竖点代表未被打乱顺序的序号序列。对伪随机函数调用次数x0=t来说,乱序范围为(t-d,t+d),即在从A向B发送嵌入短编号x的报文时,该序号被打乱顺序后处在序号序列中的位置在t-d到t+d之间。同理可得t+1的乱序范围。之后,通信端A通过K=4d+1计算原序号被编码后的短编号范围K,并与通信端B同步伪随机函数种子及短编号范围K值。同时,将通信端A编码后的短编号值x初始化为0,通信端B用于与通信端A发送的序号进行比较的参考长序号值y初始化为0。
步骤2:通信端A将长序号编码为短编号并发送信息。通过对短编号范围K取模,伪随机函数的调用次数x0可以被编码为短编号x=x0 MOD K(初始值为0),其中MOD为取模操作。为减少存储和计算开销,通信端A无需保存x0值,只需要一个短编号变量x。每调用一次伪随机函数后都通过x=(x+1)MOD K更新短编号,以方便后续发送。由于发送嵌入了短编号的报文可能出现错误,需要再加入校验如CRC(循环冗余校验)以提高通信正确率。因此,通信端A将嵌入了短编号的报文加入校验后发送给通信端B。
以报文序号(x0):[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]为例,设报文个数n=20,乱序范围d=3,短编号范围K=4d+1=13,通信端A编码后的短编号(x)为[0,1,2,3,4,5,6,7,8,9,10,11,12,0,1,2,3,4,5,6,7,8,9,10,11,12,0,1,2,3]。
在通信过程中,设丢包概率p=0.3,按乱序范围d=3进行仿真处理后,通信端B可能接收到的序号(x)为:[0,-1,-1,3,4,5,6,9,-1,7,10,-1,12,-1,1,-1,-1,4,6,5,9,10,7,8,0,11,12,2,3,1]。在序列中,-1代表丢包;本应该在第八位的7被打乱顺序后移至第10位,即原来9应在的位置,实际上在d=3的范围中进行了位置+2的乱序。
步骤3:通信端B基于收到的短编号恢复长序号。收到报文后,通信端B首先基于短编号x计算校验,若发现报文出错,则丢弃报文;若未出错,则根据公式
将报文中嵌入的短编号x恢复成长序号y1。
以接收到序号(x):[0,-1,-1,3,4,5,6,9,-1,7,10,-1,12,-1,1,-1,-1,4,6,5,9,10,7,8,0,11,12,2,3,1]为例,通过公式运算,恢复后的长序号(y1)为:[0,-1,-1,3,4,5,6,9,-1,7,10,-1,12,-1,14,-1,-1,17,19,18,22,23,20,21,26,24,25,28,29,27]。
上述计算中,以接收到的原始报文中第一个有下划线的短编号5为例,由于|5-19MOD13|<13/2,则y1=f(x,y)=x+y-yMODK=5+19-19MOD13=18;以接收到的原始报文中第二个有下划线的短编号0为例,由于|0-23MOD13|>13/2,则对其进行y1=f(x,y)=x+y-yMODK-sgn(x-yMODK)×K=0+23-23MOD13-sgn(0-23MOD13)×13=26。根据恢复后的长序号y1通信端B重复调用伪随机函数(y1-y0)次,使得函数调用次数与通信端A相同,更新y0=y1,即同步两端的伪随机函数。为简化运算,根据上一次接收到的长序号y1调用过函数后,通信端B将通过y=max(y1,y)更新参考长序号y,以用于下次运算。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (9)
1.一种基于短编号嵌入的容错同步方法,其特征在于,包括:
S1、通信端A对信道的错误状况进行估计,计算原序号被编码后的容错范围K,选择随机数种子seed,并将K与seed告知通信端B;
S2、通信端A记录一个短编号变量x,初始化为0;
S3、通信端A每次调用伪随机函数后,通过x=(x+1)MOD K更新短编号;
S4、通信端A将原序号编码为短编号后发送给通信端B;
S5、通信端B基于收到的短编号恢复长序号。
2.根据权利要求1所述的一种基于短编号嵌入的容错同步方法,其特征在于,步骤S4还包括通信端A将原序号编码为短编号后加入CRC校验。
3.根据权利要求2所述的一种基于短编号嵌入的容错同步方法,其特征在于,步骤S5还包括对接收到的短编号进行CRC校验,若校验结果为报文出错则丢弃报文;否则根据接收到的短编号恢复长序号。
4.根据权利要求1或3所述的一种基于短编号嵌入的容错同步方法,其特征在于,所述容错范围K计算式为:
K=4d+1
其中,d表示乱序范围。
6.根据权利要求5所述的一种基于短编号嵌入的容错同步方法,其特征在于,所述y初始化为0。
7.根据权利要求6所述的一种基于短编号嵌入的容错同步方法,其特征在于,步骤S5还包括根据当前恢复的长序号,通信端B重复调用伪随机函数(y1-y0)次;
其中,y0表示通信端B根据上一次恢复的长序号重复调用伪随机函数的次数。
8.根据权利要求7所述的一种基于短编号嵌入的容错同步方法,其特征在于,所述y0初始化为0。
9.根据权利要求8所述的一种基于短编号嵌入的容错同步方法,其特征在于,步骤S5还包括:通信端B根据当前恢复的长序号重复调用完(y1-y0)次伪随机函数后,根据下式更新参考长序号:
y=max(y1,y)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010008578.7A CN111147187A (zh) | 2020-01-06 | 2020-01-06 | 基于短编号嵌入的容错同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010008578.7A CN111147187A (zh) | 2020-01-06 | 2020-01-06 | 基于短编号嵌入的容错同步方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111147187A true CN111147187A (zh) | 2020-05-12 |
Family
ID=70523624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010008578.7A Pending CN111147187A (zh) | 2020-01-06 | 2020-01-06 | 基于短编号嵌入的容错同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111147187A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020120838A1 (en) * | 2000-12-29 | 2002-08-29 | Barbir Abdulkader | Data encryption using stateless confusion generators |
CN103457704A (zh) * | 2013-09-17 | 2013-12-18 | 桂林电子科技大学 | 一种度分布随机数序列的同步重现控制方法及系统 |
CN103701562A (zh) * | 2013-12-10 | 2014-04-02 | 桂林电子科技大学 | 自由空间光通信系统中的差错控制协议 |
CN109481935A (zh) * | 2018-12-17 | 2019-03-19 | 网易(杭州)网络有限公司 | 游戏数据处理方法及装置 |
-
2020
- 2020-01-06 CN CN202010008578.7A patent/CN111147187A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020120838A1 (en) * | 2000-12-29 | 2002-08-29 | Barbir Abdulkader | Data encryption using stateless confusion generators |
CN103457704A (zh) * | 2013-09-17 | 2013-12-18 | 桂林电子科技大学 | 一种度分布随机数序列的同步重现控制方法及系统 |
CN103701562A (zh) * | 2013-12-10 | 2014-04-02 | 桂林电子科技大学 | 自由空间光通信系统中的差错控制协议 |
CN109481935A (zh) * | 2018-12-17 | 2019-03-19 | 网易(杭州)网络有限公司 | 游戏数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100312729B1 (ko) | 에이알큐 시스템용 에러검출방법 | |
KR100673515B1 (ko) | 암호화 응용들을 위한 매개변수 동기의 온라인 복원 방법 | |
EP1424799B1 (en) | System and method for detecting lost messages transmitted between modules in a communication device | |
EP1755248B1 (en) | Indication of lost segments across layer boundaries | |
US8671332B2 (en) | Systems and methods for a rateless round robin protocol for adaptive error control | |
US7849376B2 (en) | Data acknowledgement | |
EP2159919B1 (en) | Method and device for information block coding and synchronization detecting | |
US6609226B1 (en) | Networking device and method for making cyclic redundancy check (CRC) immune to scrambler error duplication | |
EP3665782B1 (en) | Forward error correction with outer multi-level code and inner contrast code | |
CN107592185B (zh) | 一种适用于网络编码传输控制协议的前向重传方法 | |
CN106162374B (zh) | 一种低复杂度的帧内编码帧鲁棒传输方法及系统 | |
CN102239658B (zh) | 按需差错控制 | |
Aho et al. | Bounds on the size and transmission rate of communications protocols | |
CN102299784B (zh) | 数据传输方法和设备 | |
US10256944B1 (en) | Controlling false packet acceptance | |
EP0494035A2 (en) | Data packet format in HDLC protocol with retransmission of frames having an error | |
US7103822B2 (en) | Method and apparatus for computing ‘N-bit at a time’ CRC's of data frames of lengths not multiple of N | |
CN111147187A (zh) | 基于短编号嵌入的容错同步方法 | |
Metzner et al. | Efficient selective repeat ARQ strategies for very noisy and fluctuating channels | |
WO2015099266A1 (ko) | 분산 lt 부호의 차수 분포 최적화 방법 | |
CN106211801A (zh) | 数据处理方法及装置 | |
JP2005323171A (ja) | 送信装置、誤り訂正装置、ネットワーク接続装置およびパケット中継方法 | |
CN110958078B (zh) | 一种面向高损链路的低时延流码分组传输方法 | |
Malak et al. | ARQ with cumulative feedback to compensate for burst errors | |
KR20240022449A (ko) | 오류 용인 순방향 오류 정정 순서 세트 메시지 디코더 |
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: 20200512 |
|
RJ01 | Rejection of invention patent application after publication |