CN102857333B - 对来自传感器网络的数据包进行同步的装置和方法 - Google Patents

对来自传感器网络的数据包进行同步的装置和方法 Download PDF

Info

Publication number
CN102857333B
CN102857333B CN201110190236.2A CN201110190236A CN102857333B CN 102857333 B CN102857333 B CN 102857333B CN 201110190236 A CN201110190236 A CN 201110190236A CN 102857333 B CN102857333 B CN 102857333B
Authority
CN
China
Prior art keywords
packet
time
output
timestamp
probability density
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.)
Expired - Fee Related
Application number
CN201110190236.2A
Other languages
English (en)
Other versions
CN102857333A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to CN201110190236.2A priority Critical patent/CN102857333B/zh
Publication of CN102857333A publication Critical patent/CN102857333A/zh
Application granted granted Critical
Publication of CN102857333B publication Critical patent/CN102857333B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种对来自传感器网络的数据包进行同步的装置和方法。该装置包括:输入单元,其被配置为从至少两个传感器接收带有时间戳的数据包;输出时间确定单元,其被配置为将每个数据包的时间戳指示的时间与时延的和确定为数据包的最早输出时间,该时延取决于希望的数据包到达率;以及输出单元,其被配置为在存在最早输出时间早于当前时间的未输出数据包的情况下,按照时间戳指示的时间从早到晚的顺序输出这些未输出数据包。输出时间确定单元根据数据包的时间戳指示的时间与输入单元接收到数据包的时间之间的时间差的概率密度函数,按照希望的数据包到达率确定时延。

Description

对来自传感器网络的数据包进行同步的装置和方法
技术领域
本发明涉及数据同步,具体涉及对来自传感器网络的数据包进行同步的装置和方法。
背景技术
在传感器网络中,经常出现以下数据处理要求:接收端从多个传感器接收数据包,其中,数据包的每个具有同步因子,同步因子通常为指示该数据包的产生时间的时间戳;以及按照同步因子对数据包进行同步,即,根据同步因子顺序地输出这些数据包。
图1示出上述情形的一个示例,其中,传感器1和传感器2各自独立地向服务器(接收端)发送数据包,接收端按照数据包的时间戳指示的时间对接收到的数据包进行排序,也就是这里所说的同步。由于网络延迟等原因,后发送的数据包可能早于先发送的数据包到达接收端,并且有的数据包甚至可能丢失。
顺便指出,在这里及以下说明的情形中,假设传感器1和传感器2具有一致的时钟,也就是说,来自不同传感器的数据包中的时间戳指示的时间均参照同一时间轴。对于不同传感器的时钟不一致的情况,可以通过现有的时钟同步方法使其时钟变得一致。
对于图1所示的情形,由于同步的对象是动态流数据,因此对于同步完成的判断存在这样的问题:在当前时间点,哪些数据包已经完全同步了?完全同步是指所有发送方在这个时间段内发送的数据包都已经到达并完成同步。
因此,同步问题涉及以下两个问题:
(1)判断当前时间缓存中哪些数据已经同步完成(可以被输出);
(2)对局部数据进行动态同步,即实时排序。
关于对数据同步完成的判断,通常的方法是:假设k个发送方分别发送n1、n2、...、nk个数据包,当接收方接收到n1+n2+...+nk个数据包后即认为同步完成。然而在动态环境下,由于发送方的数据包是以流的形式发出的,因此接收方无法获知发送方有多少数据包需要处理。
关于对数据包进行动态排序的问题,传统的同步方法是划定时间窗口,将对动态数据的排序转换为对多组静态数据分别进行的排序。该方法的一个缺点是时间窗口的选择难以确定,因为窗口和窗口之间可能存在不同步,例如,由于传输延迟,包含在后一窗口中的数据包的产生时间(时间戳指示时间)可能早于包含在前一窗口中的数据包的产生时间。另外,该方法实现动态数据同步的时间、空间效率较低。
发明内容
本发明的目的在于提供一种对来自传感器网络的数据包进行同步的装置和方法,以至少部分地解决现有技术中存在的问题。
根据本发明的一个实施例,提供一种用于对来自传感器网络的数据包进行同步的装置,包括:输入单元,其被配置为从至少两个传感器接收带有时间戳的数据包;输出时间确定单元,其被配置为将每个数据包的时间戳指示的时间与时延的和确定为数据包的最早输出时间,该时延取决于希望的数据包到达率;以及输出单元,其被配置为在存在最早输出时间早于当前时间的未输出数据包的情况下,按照时间戳指示的时间从早到晚的顺序输出这些未输出数据包。输出时间确定单元根据数据包的时间戳指示的时间与输入单元接收到数据包的时间之间的时间差的概率密度函数,按照希望的数据包到达率确定时延。
根据本发明的另一个实施例,提供一种对来自传感器网络的数据包进行同步的方法,包括步骤:从至少两个传感器接收带有时间戳的数据包;将每个数据包的时间戳指示的时间与时延的和确定为数据包的最早输出时间,该时延取决于希望的数据包到达率;确定是否存在最早输出时间早于当前时间的未输出数据包;如果存在最早输出时间早于当前时间的未输出数据包,则按照时间戳指示的时间从早到晚的顺序输出这些未输出数据包。其中,根据数据包的时间戳指示的时间与接收到数据包的时间之间的时间差的概率密度函数,按照希望的数据包到达率确定时延。
附图说明
参照以下结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。为了避免因不必要的细节而模糊了本发明,在附图中仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其它细节。
图1示出接收端从多个传感器接收数据包的一个示例;
图2是示出根据本发明实施例的同步装置100的配置的示意图;
图3示出通过根据本发明实施例的同步装置对来自两个传感器的数据包进行同步的示例;
图4是示出数据包的时间戳指示的时间与接收到数据包的时间之间的时间差的概率密度函数示例的曲线图;
图5是示出根据本发明另一个实施例的同步装置200的配置的示意图;
图6是示出根据本发明又一个实施例的同步装置300的配置的示意图;
图7示出同步装置300中的同步缓存350所使用的两级哈希表(hash)的示例及其与数据缓存340中的数据包位置的对应关系;
图8示出同步装置300中的同步缓存350利用两级hash存储数据包的示意图;
图9是示出根据本发明实施例的数据同步方法的流程图;
图10是示出根据本发明的另一个实施例的数据同步方法的流程图;
图11是示出根据本发明的又一个实施例的数据同步方法的流程图;
图12是示出其中实现本发明的装置和方法的计算机的示例性结构的框图。
具体实施方式
下面参照附图说明本发明的实施例。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。
图2是示出根据本发明实施例的同步装置100的配置的示意图。同步装置100包括输入单元110、输出时间确定单元120、输出单元130和数据缓存140。
输入单元110从至少两个传感器接收带有时间戳的数据包。接收到的数据包被存储在数据缓存140中。数据包中包含的数据内容例如是由传感器生成的感测数据,而时间戳指示该数据包的产生时间(也就是发送方发送该数据包的时间)。
当对时间戳指示时间在某一范围内的数据包进行同步时,理想的状态是在所有发送方在该时间段内发送的数据包都已经到达同步装置的情况下才进行同步(输出),也就是完全同步。然而,一方面由于数据包传输延迟的不确定性,另一方面由于方无法获知有多少来自发送方的数据包需要同步,因此难以在同步时确定数据包的实际到达率。
根据本发明实施例的同步装置100的输出时间确定单元120根据希望的数据包到达率确定时延,将每个数据包的时间戳指示的时间与所确定的时延相加以得到该数据包的最早输出时间。
输出单元130在数据缓存140中存在最早输出时间早于当前时间的未输出数据包的情况下,按照时间戳指示的时间从早到晚的顺序输出这些未输出数据包。
输出单元130可以在每输入一个输入数据包后检查是否有满足输出条件的数据包,也可以按预定的时间间隔进行输出操作,或者可以在未输出数据包的数量达到预定阈值时执行输出操作。
下面结合图3的示例说明同步装置100进行的同步处理。在图3所示的示例中,同步装置从两个传感器依次接收到数据包<2,v21>、<1,v11>、<3,v12>、<7,v14>、<4,v22>、<6,v23>和<8,v24>。在数据包的表示<t,vij>中,t表示时间戳,vij表示数据内容,i表示传感器的序号,j表示该数据包在该传感器发送的数据流中的序号。例如,<2,v21>表示时间戳为2的来自传感器2的第1个数据包。为了说明的简单,本示例中的时间戳值为整数,并且未注明单位,而实际的时间戳值可以具有任意的数据精度和单位(例如,毫秒)。
输出时间确定单元120根据希望的数据到达率确定时延,例如,输出时间确定单元120可以取某一尝试值作为时延的初始值,使用该时延对数据包进行同步,并确定实际的数据包到达率。通过比较实际数据包达到率与希望的数据包到达率,对时延进行调整,直至得到希望的数据到达率。
在图3的例子中,在要进行同步的当前时刻(时间轴上的坐标11),时间戳值小于等于5的数据包满足输出条件,而在接收到的数据包中满足该条件的为<2,v21>、<1,v11>、<3,v12>和<4,v22>。因此,输出单元130按照时间戳由早到晚的顺序输出数据包<1,v11>、<2,v21>、<3,v12>和<4,v22>,从而完成对这些数据包的同步。
由于在进行本次同步时传感器1的数据包<5,V13>还未到达同步装置,因此在本次同步时,在满足条件的时间段内从发送方发送的数据包并未全部到达同步装置,本次同步的实际数据到达率为80%。
当希望达到更高的数据到达率时,输出时间确定单元120可以增大时延,例如,可以将时延确定为7。仍以图3所示的情形为例,当时延为7时,时间戳值小于等于4的数据包满足输出条件。因此输出单元130按照时间戳由早到晚的顺序输出数据包<1,v11>、<2,v21>、<3,v12>和<4,v22>,从而完成对这些数据包的同步。由于在同步时满足输出条件的数据包已全部到达同步装置,因此本次同步的数据到达率为100%。
根据本发明的一个实施例,同步装置100的输出时间确定单元120根据数据包传输延迟的概率密度函数,按照希望的数据包到达率确定时延。数据包的传输延迟是指该数据包的时间戳指示时间(即发送方发送该数据包的时间)与输入单元110接收到该数据包的时间之间的时间差。可能的传输延迟分布包括正态分布、二项式分布、泊松分布等。根据一个具体实施例,传输延迟的概率函数具有下式所表示的正态分布:
f ( x ) = 1 &sigma; 2 &pi; e - ( x - &mu; ) 2 2 &sigma; 2         等式1
其中μ为传输延迟的均值,σ2为传输延迟的方差。在时刻t=0从发送方发送出的数据包在当前时刻t=c已到达同步单元的概率为显然,在传输延迟满足同一概率密度分布的情况下,在时刻t=0之前从发送方发送的数据包在当前时刻t=c已到达同步装置的概率大于p。
图4示出概率密度函数曲线的示例。在当前时刻(例如t=6,即图中的竖线所指示的时刻)数据已到达的概率为竖线左侧的函数曲线下面积。
输出时间确定单元120可以按照用户预先设置的数据到达率,根据概率密度函数确定与该概率相对应的时延,并将每个数据包的时间戳指示的时间与时延的和确定为该数据包的最早输出时间。当输出单元130对最早输出时间早于当前时间的数据包进行输出时,在相应的时间范围内从发送方发送的数据包已到达同步装置100的概率应在该预先设置的数据到达率以上。
可以使用所同步的全部数据包的传输延迟来确定概率密度函数,但是这需要保存同步数据包的历史数据。根据本发明的一个实施例,输出时间确定单元120根据样本数据预先确定概率密度函数。另外,可以在同步过程中根据实际同步的数据包的传输延迟对概率密度函数的参数进行调整。
图5示出根据本发明的另一个实施例的同步装置200的配置示例。同步装置200包括输入单元210、输出时间确定单元220、输出单元230、数据缓存240和更新单元250。其中,输入单元210、输出时间确定单元220、输出单元230和数据缓存240与参照图2说明的输入单元110、输出时间确定单元120、输出单元130和数据缓存140的功能类似,在此不再详细说明。更新单元250被配置为如果同步过程中对于数据包到达的预测的失误率高于预定阈值,则根据所同步的数据包的传输延迟来更新概率密度函数。对数据包到达的预测失误的情况对应于数据包的实际传输延迟大于输出时间确定单元220根据概率密度函数确定的时延的情形。
应指出,由于实际的数据包到达率与希望的数据包到达率可能存在偏差,因此这里所说的预测失误率的预定阈值不一定与前面所说的希望的数据包到达率精确地对应。例如,当希望的数据包到达率为80%(对应于预测失误率20%)时,可以将预测失误率的阈值设为30%。在这种情况下,例如当实际的数据包到达率为75%(对应于预测失误率25%)时,可以认为该偏差(5%)在可接受的范围内;而当实际的数据包到达率小于70%(预测失误率大于30%)时,才需要对概率密度函数进行更新。
仍以图3所示的情形为例,在输出时间确定单元220确定时延为6的情况下,在当前时刻(t=11),时间戳为1至5的数据包均满足输出条件。由于此时时间戳为5的数据包<5,V13>尚未到达同步装置200,在本次同步(下面将其称为“第一次同步”)中输出单元230只输出<1,v11>、<2,v21>、<3,v12>和<4,v22>。由于在未接收到数据包<5,V13>的情况下同步装置200不能得知数据包<5,V13>是否存在,因此在第一次同步时同步装置200不能确定实际的数据到达率。然而,如果数据<5,V13>在下一次或后续的同步输出前到达同步装置200,则输出时间确定单元220可以确定数据包<5,V13>的最早发送时间t=11早于第一次同步的时间,因此可以确定该数据包为第一次同步过程中预测失误的数据包,并且可以确定第一次同步过程的预测失误率(20%)。如果预测失误率超过预定阈值,更新单元250可以根据所同步的数据包的实际传输延迟来调整概率密度函数的参数。例如,更新单元250可以在考虑到被预测失误的数据包的实际传输延迟的情况下重新计算概率密度函数中的方差和均值等参数,从而更新概率密度函数。输出时间确定单元220根据经更新的概率密度函数确定时延以及每个数据包的最早输出时间。
图6是示出根据本发明的又一个实施例的同步装置300的配置的示意图。同步装置300包括输入单元310、输出时间确定单元320、输出单元330、数据缓存340和同步缓存350。其中,输入单元310、输出时间确定单元320、输出单元330和数据缓存340与参照图2说明的输入单元110、输出时间确定单元120、输出单元130和数据缓存140的功能类似,在此不再详细说明。同步缓存350被配置为使用两级hash来存储要同步的数据包。其中,一级hash对应于所存储的数据包的时间戳的值的起始值,二级hash对应于所存储的数据包的时间戳的值的偏移量。同步缓存350中的单元位置对应于数据包的时间戳,同步缓存350存储的内容是指向数据缓存340的指针,数据包的实际内容存储在数据缓存340中。
图7示出同步装置300中的同步缓存350所使用的两级hash及其与数据缓存340的存储位置的对应关系的示例。在图7中,数据缓存340的各单元中标记的数字表示其存储的数据包的时间戳,数据缓存340中,一级hash351的各单元中标记的数字表示其存储的数据包的时间戳的起始值,二级hash 352的各单元中标记的数字表示其存储的数据包的时间戳的偏移量。例如:时间戳为2的数据包对应于一级hash中的0、二级hash中的2的位置,而时间戳为11的数据包对应于一级hash中的10、二级hash中的1的位置。
另外,当两个数据包的时间戳相同时,可以在数据缓存340中将两个数据包链接起来。例如,如图7所示,数据缓存340中的第1和第4个(从0算起)单元存储的数据包的时间戳都是2,所以在同步到数据缓存340的第1个单元时,同步缓存350的地址2中的指针指向数据缓存340中的第1个单元。当同步到数据缓存340的第4个单元时,同步缓存350中的地址2已被占用,这时可以查找该地址2所指向的数据缓存340中的单元,并确定数据缓存340中以该单元开头的链表中的最后一个单元(在该例子中,链表中的最后一个单元即数据缓存340中的第1个单元本身),并将这最后一个单元的链接指向冲突的数据(在该例子中为数据缓存340的第4个单元)。这样,将发生地址冲突的数据包用一个链表连接在一起,并且在输出时将链表中的全部数据包一同输出。
图8示出同步缓存350利用两级hash存储数据包的示例。同步缓存350的一级缓存351的每个单元i×n(0≤i≤(m-1))对应于其所容纳的数据包的时间戳的起始值,其中i为一级缓存单元本身的地址,每个一级缓存单元中存储的是一个相应的二级缓存的地址。每个二级缓存包括单元0至(n-1),分别对应于其存储的数据包的时间戳的偏移量,每个二级缓存单元中存储的是指向数据缓存340中的相应数据的指针。
一级缓存的单元数量为m,每个二级缓存的单元数量为n,两次hash函数分别是:
一次hash:        等式2
二次hash:k2=t%n           等式3
其中,t为数据包的时间戳,k1、k2分别是所同步的数据包在一级hash 351和二级hash 352中的位置,表示下取整运算,%表示取余数运算。
通过这种方法,避免了同步过程中的排序操作,直接以两次数组定位操作来实现实时同步。
另外,二级同步缓存只有当用到时才申请,当同步缓存不足时,可以不改变当前使用的二级同步缓存,只需扩大一级同步缓存的大小并增加新的二级同步缓存即可。此外,当部分结果同步完成时,可以回收并重复使用这些结果占用的二级同步缓存。
下面说明对同步缓存350的重复使用的示例。假设一级hash 351的大小为m,一级hash 351中的每个单元对应于二级hash 352中的n个单元,因此两级同步缓存共能用于存储m×n个数据包。
在动态同步过程中,一级hash 351采用环形结构,同步缓存350维护一个当前同步输出起始位置s,s所对应的同步时间为ts,两次hash函数改进为:
一次hash:      等式4
二次hash:k2=(t-ts+s)%n       等式5
输出起始值s的初始值为0,而ts的初始值为系统启动时的时间。在每一次输出同步结果后,将s值更新为最后一个输出单元的下一个位置,而将ts更新为该s位置所对应的时间戳。
例如,对于m=2、n=10的情况,初始时s为0,假设ts为100。经过一段时间的运行,当二级hash中位置0-14的数据包被全部同步输出之后,s被更新为15,相应的ts为115。如果新输入数据包为<126,v>,根据等式4,k1=0、k2=6。因此,已输出数据包的同步缓存被回收并重复利用。
此外,如果新接收到的数据包的时间戳t<ts,则表示该数据包为上次或更早的同步过程中未被成功同步的数据包,也就是说该数据包是在先前的输出过程中数据包到达预测失误的数据包。
另一方面,如果接收到的数据包的时间戳t≥(ts+m×n),则代表同步溢出,这时要扩大同步缓存350的容量:更新并将一级hash的大小调整为新的m。
下面参照图9的流程图说明根据本发明的一个实施例的数据同步方法的过程。
在步骤S110,从至少两个传感器接收带有时间戳的数据包;
在步骤S120,将每个数据包的时间戳指示的时间与时延的和确定为该数据包的最早输出时间,该时延取决于希望的数据包到达率;
在步骤S130,确定是否存在最早输出时间早于当前时间的未输出数据包;
如果S130的确定结果为是,则在步骤S140按照时间戳指示的时间从早到晚的顺序输出这些未输出数据包。
图10是示出根据本发明的另一个实施例的数据同步方法的流程图。
在步骤S210,从至少两个传感器接收带有时间戳的数据包;
在步骤S220,根据概率密度函数和希望的数据包到达率确定时延;
在步骤S230,将数据包的时间戳指示的时间与时延的和确定为数据包的最早输出时间;
在步骤S240,确定是否存在最早输出时间早于当前时间的未输出数据包,当确定结果为是时,前往步骤S250,当确定结果为否时,过程返回到步骤S210;
在步骤S250,确定是否存在最早输出时间早于上次输出时间的未输出数据包,最早输出时间早于上次输出时间的数据包为上次或更早的输出过程中未被输出的数据包,也就是在先前的同步过程中数据包到达预测失败的数据包;
当步骤S250的确定结果为否时,前往步骤S260;
在步骤S260,按照时间戳所指示的时间从早到晚的顺序输出这些未输出数据包;
当步骤S250的确定结果为是时,前往步骤S270;
在步骤S270,计算数据包到达预测失误率;
在步骤S280,确定步骤S270中计算的数据包到达预测失误率是否大于预定阈值;
当步骤S280的确定结果为否时,前往步骤S260;
当步骤S280的确定结果为是时,前往步骤S290;
在步骤S290,更新确定时延所使用的概率密度函数,过程返回步骤S220,并在步骤S220使用经更新的概率密度函数确定时延。
图11是示出根据本发明的又一个实施例的数据同步方法的流程图。
在步骤S310,从至少两个传感器接收带有时间戳的数据包;
在步骤S320,利用两级哈希表存储接收到的数据包,其中,一级哈希表对应于所存储的数据包的时间戳的值的起始值,二级哈希表对应于所存储的数据包的时间戳的值的偏移量;
在步骤S330,将每个数据包的时间戳指示的时间与时延的和确定为数据包的最早输出时间,该时延取决于希望的数据包到达率;
在步骤S340,确定是否存在最早输出时间早于当前时间的未输出数据包;
当步骤S340的确定结果为否时,返回到步骤S310;
当步骤S340的确定结果为是时,前往步骤S350;
在步骤S350,按照数据包在哈希表中的顺序输出满足输出条件的未输出数据包,并回收哈希表中这些数据包所占用的空间。
利用根据本发明实施例的用于对来自传感器网络的数据包进行同步的装置和方法,能够实现以一定的预测完成度输出经同步的数据包,从而在实时输出的同时保证同步完成度。
根据本发明的实施例,通过维护数据包传输延迟的概率密度分布函数,能够利用该函数以一定的完成度输出同步后的数据,并且可以在同步过程中调整该函数的参数,使其更符合实际情况,从而更好地保证同步完成度。
另外,根据本发明的实施例,通过采用两级hash以线性复杂度将从多个传感器接收的数据包中的每个映射到相应的同步位置,能够对数量为n的数据包实现O(n)的时间复杂度的即时同步,从而提高了输出的实时性。
所属技术领域的技术人员知道,本发明可以体现为装置、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者软件部分与硬件部分的组合。此外,本发明还可以采取体现在任何有形的表达介质中的计算机程序产品的形式,该介质中包含计算机可用的程序码。
可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质,计算机可读存储介质例如可以是,但不限于,电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或传播介质、或前述各项的任何适当的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或前述各项的任何适当的组合。在本文语境中,计算机可读存储介质可以是任何含有或存储供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的有形介质。
用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言-诸如”C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算机上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络-包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。
图12是示出其中实现本发明的设备和方法的计算机的示例性结构的框图。
在图12中,中央处理单元(CPU)1201根据只读存储器(ROM)1202中存储的程序或从存储部分1208加载到随机存取存储器(RAM)1203的程序执行各种处理。在RAM 1203中,也根据需要存储当CPU 1201执行各种处理等等时所需的数据。
CPU 1201、ROM 1202和RAM 1203经由总线1204彼此连接。输入/输出接口1205也连接到总线1204。
下述部件连接到输入/输出接口1205:输入部分1206,包括键盘、鼠标等等;输出部分1207,包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等等,和扬声器等等;存储部分1208,包括硬盘等等;和通信部分1209,包括网络接口卡比如LAN卡、调制解调器等等。通信部分1209经由网络比如因特网执行通信处理。
根据需要,驱动器1210也连接到输入/输出接口1205。可拆卸介质1211比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器1210上,使得从中读出的计算机程序根据需要被安装到存储部分1208中。
在通过软件实现上述步骤和处理的情况下,从网络比如因特网或存储介质比如可拆卸介质1211安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图12所示的其中存储有程序、与方法相分离地分发以向用户提供程序的可拆卸介质1211。可拆卸介质1211的例子包含磁盘、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD))和半导体存储器。或者,存储介质可以是ROM 1202、存储部分1208中包含的硬盘等等,其中存有程序,并且与包含它们的方法一起被分发给用户。
权利要求中的对应结构、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要把本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。

Claims (8)

1.一种用于对来自传感器网络的数据包进行同步的装置,包括:
输入单元,其被配置为从至少两个传感器接收带有时间戳的数据包;
输出时间确定单元,其被配置为将每个所述数据包的所述时间戳指示的时间与时延的和确定为所述数据包的最早输出时间,所述时延取决于希望的数据包到达率;以及
输出单元,其被配置为在存在最早输出时间早于当前时间的未输出数据包的情况下,按照时间戳所指示的时间从早到晚的顺序输出所述未输出数据包,
其中,所述输出时间确定单元根据数据包的时间戳指示的时间与所述输入单元接收到所述数据包的时间之间的时间差的概率密度函数,按照希望的数据包到达率确定所述时延。
2.根据权利要求1所述的装置,其中,所述输出时间确定单元根据样本数据预先确定所述概率密度函数。
3.根据权利要求1所述的装置,还包括更新单元,其被配置为如果同步过程中对于数据包到达的预测的失误率高于预定阈值,则根据所同步的数据包的所述时间差来更新所述概率密度函数。
4.根据前述任一权利要求所述的装置,还包括同步缓存,所述同步缓存利用两级哈希表来存储所述数据包,其中,一级哈希表对应于所存储的数据包的时间戳的值的起始值,二级哈希表对应于所存储的数据包的时间戳的值的偏移量。
5.一种对来自传感器网络的数据包进行同步的方法,包括步骤:
从至少两个传感器接收带有时间戳的数据包;
将每个所述数据包的所述时间戳指示的时间与时延的和确定为所述数据包的最早输出时间,所述时延取决于希望的数据包到达率;
确定是否存在最早输出时间早于当前时间的未输出数据包;
如果存在最早输出时间早于当前时间的未输出数据包,则按照时间戳指示的时间从早到晚的顺序输出所述未输出数据包,
其中,根据数据包的时间戳指示的时间与接收到所述数据包的时间之间的时间差的概率密度函数,按照希望的数据包到达率确定所述时延。
6.根据权利要求5所述的方法,其中,根据样本数据预先确定所述概率密度函数。
7.根据权利要求5所述的方法,还包括步骤:
如果同步过程中对于数据包到达的预测失误率高于预定阈值,则根据所同步的数据包的所述时间差来更新所述概率密度函数。
8.根据权利要求5-7中任一项所述的方法,其中,利用两级哈希表来存储所述数据包,其中,一级哈希表对应于所存储的数据包的时间戳的值的起始值,二级哈希表对应于所存储的数据包的时间戳的值的偏移量。
CN201110190236.2A 2011-06-28 2011-06-28 对来自传感器网络的数据包进行同步的装置和方法 Expired - Fee Related CN102857333B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110190236.2A CN102857333B (zh) 2011-06-28 2011-06-28 对来自传感器网络的数据包进行同步的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110190236.2A CN102857333B (zh) 2011-06-28 2011-06-28 对来自传感器网络的数据包进行同步的装置和方法

Publications (2)

Publication Number Publication Date
CN102857333A CN102857333A (zh) 2013-01-02
CN102857333B true CN102857333B (zh) 2015-06-17

Family

ID=47403545

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110190236.2A Expired - Fee Related CN102857333B (zh) 2011-06-28 2011-06-28 对来自传感器网络的数据包进行同步的装置和方法

Country Status (1)

Country Link
CN (1) CN102857333B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10139253B2 (en) 2014-04-30 2018-11-27 Google Llc Adjustment of interrupt timestamps of signals from a sensor based on an estimated sampling rate of the sensor
CN106716337B (zh) * 2016-07-01 2020-01-17 深圳市大疆创新科技有限公司 一种数据交互方法、数据记录仪和无人设备
CN111083309B (zh) * 2018-10-18 2022-04-01 北京魔门塔科技有限公司 一种多传感器数据的时间对齐方法及数据采集设备
WO2021000216A1 (zh) * 2019-07-01 2021-01-07 深圳市大疆创新科技有限公司 消息同步方法和装置、无人驾驶系统以及可移动平台
CN111791232B (zh) * 2020-06-03 2021-02-05 中南民族大学 一种基于时间硬同步的机器人底盘控制系统及方法
CN117082217A (zh) * 2023-10-17 2023-11-17 北京比格凯特科技有限公司 一种基于Jetson平台的智能视频监控系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1318947A (zh) * 2000-03-29 2001-10-24 德国汤姆森-布兰特有限公司 改变音频数据编码或视频数据编码输出延迟的方法和装置
CN1816156A (zh) * 2005-02-02 2006-08-09 乐金电子(惠州)有限公司 多媒体数据的同步播放方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1318947A (zh) * 2000-03-29 2001-10-24 德国汤姆森-布兰特有限公司 改变音频数据编码或视频数据编码输出延迟的方法和装置
CN1816156A (zh) * 2005-02-02 2006-08-09 乐金电子(惠州)有限公司 多媒体数据的同步播放方法

Also Published As

Publication number Publication date
CN102857333A (zh) 2013-01-02

Similar Documents

Publication Publication Date Title
CN102857333B (zh) 对来自传感器网络的数据包进行同步的装置和方法
EP4033374A1 (en) Method and device for synchronizing node data
CN103577407B (zh) 用于分布式数据库的查询方法及查询装置
CN108920698A (zh) 一种数据同步方法、装置、系统、介质及电子设备
US11341415B2 (en) Method and apparatus for compressing neural network
CN103530362B (zh) 一种用于多副本分布式系统的计算机数据读写方法
WO2013171481A2 (en) Mechanism for synchronising devices, system and method
US8255360B1 (en) Synchronization of database changes among multiple devices
US9569291B1 (en) Systems and methods for inter-process messaging
CN110232054A (zh) 日志传输系统及流式日志传输方法
CN104376127A (zh) 一种数据操作方法及装置
EP1517254A2 (en) Modelling and simulation method
CN104202253A (zh) 基于动态路由表的片上网络拥塞控制方法
CN110955665A (zh) 缓存查询方法、装置和电子设备
EP4145298A1 (en) Method and apparatus for snapshotting metadata
CN111597107B (zh) 信息输出方法、装置和电子设备
EP3160087B1 (en) Measuring frame loss
CN110609967B (zh) 一种榜单生成方法、装置及存储介质
US9870402B2 (en) Distributed storage device, storage node, data providing method, and medium
CN111597035B (zh) 基于多线程的仿真引擎时间推进方法及系统
CN103200237A (zh) 一种保持远程桌面同步的方法和装置
CN111400399B (zh) 区块链系统的账本同步方法、装置及硬件设备
CN115016823B (zh) 目标软件升级方法、装置、电子设备、介质和程序产品
CN106372267A (zh) 基于浏览器的页面加载方法及装置
CN114003525B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150617

Termination date: 20180628