本发明涉及数据传输领域,特别是涉及一种数据传输方法、装置、设备及存储介质。
背景技术:
在lorawan中,终端的工作模式分为三种:classa、classb和classc。在classa模式中,终端发送完上行数据后,会间隔rxdelay秒打开rx1接收窗口,如果在rx1接收窗口接收到了下行数据,rx2窗口不会再打开。如果在rx1窗口未接收到下行数据,一般会在1s后打开rx2接收窗口。因为rx2窗口使用固定的扩频因子和频率,如果所有设备的下行都选用rx2窗口,势必会导致网络的包碰撞率上升,从而降低了下行数据包的成功率。
现有的方案是ns同时给rx1和rx2窗口下发相同的指令,如果终端在rx1窗口接收到了下行指令,rx2窗口就不会打开,终端不会接收到重复的数据。如果终端在rx1窗口没有接收到数据,会在1s后开启rx2接收窗口。ns通过同时给rx1和rx2这两个窗口下发相同的指令,保证终端至少在一个窗口能接收到下行指令。这种方式的缺点是基站发送了很多无用的数据包,降低了基站的吞吐率。
技术实现要素:
本发明的一个目的在于提供一种数据传输方案,以解决上述问题。
根据本发明的第一个方面,提供了一种数据传输方法,包括:在选定下行基站向节点发送针对上行报文的下行报文前,基于下行基站与网络服务器间的链路传输延迟和网络服务器针对上行报文的处理延迟,选择节点的接收窗口;针对选择的接收窗口发送下行报文。
可选地,选择节点的接收窗口的步骤包括:基于下行基站与网络服务器间的链路传输延迟和网络服务器针对上行报文的处理延迟,判断节点能够接收到下行报文的接收窗口;根据判断结果,选择接收窗口。
可选地,根据判断结果选择接收窗口的步骤包括:在判定节点的第一接收窗口能够接收到下行报文的情况下,选择第一接收窗口,其中,第一接收窗口为节点发送完上行报文后第一次开启的接收窗口;在判定第一接收窗口无法接收到下行报文,且节点的第二接收窗口能够接收到下行报文的情况下,选择第二接收窗口,其中,第二接收窗口为节点发送完上行报文后第二次开启的接收窗口。
可选地,在tp+2×delta≤rxdelay的情况下,判定第一接收窗口能够接收到上行报文,或者在tp+2×delta≤rxdelay-t1的情况下,判定第一接收窗口能够接收到上行报文,在tp+2×delta<rxdelay+t2的情况下,判定第二接收窗口能够接收到上行报文,或者在tp+2×delta<rxdelay+t2-t1的情况下,判定第二接收窗口能够接收到上行报文,其中,tp为处理延迟,delta为链路传输延迟,rxdelay为节点发送完上行报文后开启第一接收窗口的延迟时间,t1为网络延时抖动因子,t2为节点在第一接收窗口结束后开启第二接收窗口的延迟时间,第一接收窗口为节点发送完上行报文后第一次开启的接收窗口,第二接收窗口为节点发送完上行报文后第二次开启的接收窗口。
可选地,该方法还包括:在判定节点没有能够接收到下行报文的接收窗口的情况下,不发送下行报文。
可选地,处理延迟等于网络服务器接收到上行报文到准备通过下行基站向节点发送下行报文之间的时长。
可选地,链路传输延迟是对之前预定时间内确定的下行基站与网络服务器之间的一个或多个链路传输耗时进行统计得到的。
可选地,链路传输延迟是基于滑动平均算法对最近一次确定的下行基站与网络服务器之间的链路传输耗时进行处理得到的。
可选地,该方法还包括:响应于向下行基站发送下行报文,记录第一时间;响应于接收到下行基站针对下行报文的响应消息,记录第二时间;将第二时间与第一时间的差值的二分之一,确定为下行基站与网络服务器之间的链路传输耗时。
可选地,该方法还包括:对预定时间内确定的下行基站与网络服务器之间的一个或多个链路传输耗时进行统计,以得到下行基站与网络服务器之间的链路传输延迟。
根据本发明的第二个方面,还提供了一种数据传输方法,包括:在选定下行基站向节点发送针对上行报文的下行报文前,选择节点的接收窗口;针对选择的接收窗口发送下行报文。
根据本发明的第三个方面,还提供了一种数据传输方法,包括:响应于接收到网络服务器发送的下行报文,判断下行报文的接收时间是否大于下行报文中的发送时间;在判定接收时间大于发送时间的情况下,向网络服务器发出通知,并且/或者在判定接收时间小于或等于发送时间的情况下,在发送时间发送下行报文。
根据本发明的第四个方面,还提供了一种数据传输方法,包括:向下行基站发送针对第一接收窗口的下行报文;响应于接收到下行基站发送的通知,向下行基站发送针对第二接收窗口的下行报文,其中,通知是基站在接收到下行报文的接收时间大于该下行报文中的发送时间的情况下发出的,第一接收窗口为节点发送完上行报文后第一次开启的接收窗口,第二接收窗口为节点发送完上行报文后第二次开启的接收窗口。
可选地,向下行基站发送针对第二接收窗口的下行报文的步骤包括:判断节点能否在第二接收窗口接收到下行报文;在判定节点能够在第二接收窗口接收到下行报文的情况下,向下行基站发送针对第二接收窗口的下行报文。
根据本发明的第五个方面,还提供了一种数据传输装置,包括:接收窗口选择模块,用于在选定下行基站向节点发送针对上行报文的下行报文前,基于下行基站与网络服务器间的链路传输延迟和网络服务器针对上行报文的处理延迟,选择节点的接收窗口;发送模块,用于针对选择的接收窗口发送下行报文。
根据本发明的第六个方面,还提供了一种数据传输装置,包括:接收窗口选择模块,用于在选定下行基站向节点发送针对上行报文的下行报文前,选择节点的接收窗口;发送模块,用于针对选择的接收窗口发送下行报文。
根据本发明的第七个方面,还提供了一种数据传输装置,包括:判断模块,用于响应于接收到网络服务器发送的下行报文,判断下行报文的接收时间是否大于下行报文中的发送时间;发送模块,用于在判定接收时间大于发送时间的情况下,向网络服务器发出通知,并且/或者在判定接收时间小于或等于发送时间的情况下,在发送时间发送下行报文。
根据本发明的第八个方面,还提供了一种数据传输装置,包括:第一发送模块,用于向下行基站发送针对第一接收窗口的下行报文;第二发送模块,用于响应于接收到下行基站发送的通知,向下行基站发送针对第二接收窗口的下行报文,其中,通知是基站在接收到下行报文的接收时间大于该下行报文中的发送时间的情况下发出的,第一接收窗口为节点发送完上行报文后第一次开启的接收窗口,第二接收窗口为节点发送完上行报文后第二次开启的接收窗口。
根据本发明的第九个方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如本发明第一个方面至第四个方面中任一个方面述及的方法。
根据本发明的第十个方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如本发明第一个方面至第四个方面中任一个方面述及的方法。
本发明能够自适应地为工作在classa模式的节点的下行数据选择合适的接收窗口,从而最大化下行数据包的成功率。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了节点在classa模式下发送上行数据、ns处理上行数据包以及发送下行指令的时序图。
图2示出了根据本发明一实施例的数据传输方法的示意性流程图。
图3示出了根据本发明另一实施例的数据传输方法的示意性流程图。
图4示出了根据本发明另一实施例的数据传输方法的示意性流程图。
图5示出了根据本发明另一实施例的数据传输方法的示意性流程图。
图6示出了根据本发明另一实施例的数据传输装置的结构的示意性方框图。
图7示出了根据本发明另一实施例的数据传输装置的结构的示意性方框图。
图8示出了根据本发明另一实施例的数据传输装置的结构的示意性方框图。
图9示出了根据本发明一实施例的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
【术语解释】
lora:一种基于扩频技术的低功耗远距离无线传输方案。
lorawan:lora联盟推出的一个基于开源的mac层协议的低功耗广域网(lowpowerwideareanetwork,lpwan)标准。这一技术可以为电池供电的无线设备提供一个低功耗、可扩展的长距离无线网络。
ns:networkserver,网络服务器,是物联网解决方案中的核心部分-核心网。
基站:也即网关,将节点(也即终端)的无线网络信号通过回传网络,透传到ns的设备。
下行基站:用于向节点发送下行报文的基站,由ns指定。
rx1:终端上行数据后开启的第一个接收窗口,也即本发明述及的第一接收窗口。
rx2:终端上行数据后开启的第二个接收窗口,也即本发明述及的第二接收窗口。
rxdelay:终端发送完上行数据包后,开启rx1窗口的延迟时间。
rxpk:上行报文,即基站上传给ns的数据报文。
txpk:下行报文,即ns下行给基站的数据报文。
【方案概述】
在现有的方案中,对于工作在classa模式中的节点,ns在向其发送下行数据包时,会无差别地针对rx1和rx2下发相同的指令,使得基站发送了很多无用的数据包,降低了基站的吞吐率。
有鉴于此,本发明提出,在选定下行基站向节点发送针对上行报文的下行报文前,可以选择节点的接收窗口。例如,可以根据基站与网络服务器间的链路传输延迟和网络服务器针对上行报文的处理延迟,判断节点的哪个接收窗口能够接收到下行报文。在rx1和rx2均能够接收到下行报文时,可以优选rx1,针对rx1发送下行报文。在rx1可能会错过,但rx2能够接收到下行报文时,选择rx2,针对rx2发送下行报文。由此,可以保证下行报文只会发送一次,同时可以避免rx2的大量使用,提高下行数据包的成功率,并可以降低下行数据包的碰撞率。
本发明还提出,网络服务器在发送下行报文时,可以默认发送针对rx1的下行报文。基站在接收到下行报文后,可以判断下行报文的接收时间是否大于下行报文中的发送时间,在判定接收时间小于或等于发送时间的情况下,可以在发送时间发送下行报文,在判定接收时间大于发送时间的情况下,可以向网络服务器发出通知。网络服务器在接收到通知后,如果发现该通知是下行基站针对rx1的下行报文发出的,可以向下行基站发送针对rx2的下行报文,如果发现该通知是下行基站针对rx2的下行报文发出的,则丢弃。如此,也可以保证基站只会发送一次下行报文,同时可以避免rx2的大量使用,提高下行数据包的成功率,并可以降低下行数据包的碰撞率。
下面就本发明涉及的各方面做进一步说明。
图1示出了节点在classa模式下发送上行数据、ns处理上行数据包以及发送下行指令的时序图。根据时序图可以对rx1窗口或者rx2窗口的选择依据进行分析。
1、节点在t(ref1)时刻开始发送上行数据,无线数据帧经过时延t1到达基站,基站开始接收数据包。
2、节点在t(ref2)时刻发送完上行数据包,并从t(ref2)时刻开始计时。
3、基站在t(ref2)+t1时刻接收完整个上行数据包,并记录下当前时刻为tmst1。
4、基站接收完数据包后,将上行数据包组装成rxpk,发送给ns。rxpk经链路传输延迟t2到达ns。
5、ns接收到上行数据包后,回复基站一个ack响应,然后开始处理上行数据包。
6、上行数据包处理完成之后,如果有下行指令,ns组装下行的txpk,在txpk中指定基站需要发送下行数据包给节点的时刻tmst2。然后把txpk发送给基站。
7、假定基站在t(ref3)时刻接收到txpk,回复ns一个ack响应,然后在tmst2时刻将下行数据包发送给终端。为了数据包正常发送,要求t(ref3)<tmst2。
8、节点从t(ref2)时刻开始计时,延迟rxdelay后开启rx1窗口,如果期间未接收到下行数据,1s后开启rx2接收窗口。假定节点开启窗口的时间为t(ref4),那么在开启rx1接收窗口时,t(ref4)=t(ref2)+rxdelay,在开启rx2接收窗口时,t(ref4)=t(ref2)+rxdelay+1。
9、假定节点需要在rx1窗口接收到下行数据,为了保证基站发送的数据报文能够被节点接收到,tmst2=t(ref4)-t1。因此可以得到tmst2=tmst1-2*t1+rxdelay。
10、由于无线帧以光速传输,t1可以忽略不计。比如假定基站与节点之间的距离是5公里,那么t1只有16.6ns,而窗口的开启误差在+/-20ms,因此可以忽略。最终tmst2=tsmt1+rxdelay。
11、最终可以分析出:t(ref3)-tmst1<tmst2-tmst1=rxdelay。而t(ref3)-tmst1=2*t2+t3,即2*t2+t3<rxdelay。
通过以上分析可以得到如下结论:rx1和rx2的选择依据,只与基站和ns间的链路传输耗时以及ns的处理耗时有关,与下行信号的扩频因子、数据包长度等因素无关。
【数据传输方法】
图2是示出了根据本发明一实施例的数据传输方法的示意性流程图。其中,图2所示的方法可以由网络服务器(ns)执行。
参见图2,在步骤s210,在选定下行基站向节点发送针对上行报文的下行报文前,基于下行基站与网络服务器间的链路传输延迟和网络服务器针对上行报文的处理延迟,选择节点的接收窗口。
本发明述及的节点主要是指工作在classa模式的节点。网络服务器在接收到节点通过一个或多个基站发送的上行报文后,可以基于特定的处理逻辑(如上行报文的排重处理逻辑)对上行报文进行处理,并在需要向节点发送下行报文时,选择用于向节点发送下行报文的基站(即下行基站)。关于下行基站的选取逻辑,不在本发明的考虑范围内,不再赘述。
在网络服务器选定下行基站向节点发送针对上行报文的下行报文前,可以根据下行基站与网络服务器间的链路传输延迟和网络服务器针对上行报文的处理延迟,选择节点的接收窗口。
在本发明中,处理延迟可以表征网络服务器针对上行报文的处理耗时,例如,处理延迟可以等于网络服务器接收到上行报文到准备通过下行基站向节点发送下行报文之间的时长。
链路传输延迟可以表征基站和ns间的链路传输耗时。可选地,可以将最近一次确定的下行基站与网络服务器之间的链路传输耗时(也即图1中的t2)作为链路传输延迟。另外,链路传输延迟也可以是对之前预定时间内确定的下行基站与网络服务器之间的一个或多个链路传输耗时进行统计得到的。例如,可以是通过平均、加权平均、tp99、tp999等方法确定的。
作为示例,链路传输延迟可以是基于滑动平均算法对最近一次确定的下行基站与网络服务器之间的链路传输耗时进行处理得到的。计算公式如下:delta′(t)=alpha*delta+(1-alpha)*delta′(t-1),其中alpha是系数,取值范围0~1,delta是最近一次确定的基站与网络服务器之间的链路传输耗时,delta′(t)是当前计算得到的链路传输耗时的预测值,delta′(t-1)是上一次计算得到的链路传输耗时的预测值。
可以根据下行基站与网络服务器间的链路传输延迟和网络服务器针对上行报文的处理延迟,判断节点能够接收到上行报文的接收窗口,然后根据判断结果,选择接收窗口。例如,在判定节点的第一接收窗口(rx1)能够接收到下行报文的情况下,可以选择第一接收窗口。在判定第一接收窗口无法接收到下行报文,且节点的第二接收窗口(rx2)能够接收到下行报文的情况下,可以选择第二接收窗口。换言之,可以在判定第一接收窗口可用的情况下,优选第一接收窗口,在第一接收窗口可能无法接收到下行报文的情况下,再选择第二接收窗口。由此,可以保证下行数据只会发送一次。同时避免了大量使用第二接收窗口,降低了下行数据包的碰撞率。
如上文结合图1进行分析得到的结论可知,可以在tp+2×delta≤rxdelay的情况下,判定第一接收窗口能够接收到上行报文,在tp+2×delta>rxdelay的情况下,判定第一接收窗口不能接收到上行报文。也可以在tp+2×delta<rxdelay+t2的情况下,判定第二接收窗口能够接收到上行报文,在tp+2×delta≥rxdelay+t2的情况下,判定第二接收窗口不能接收到上行报文。其中,tp为处理延迟,delta为链路传输延迟,rxdelay为节点发送完上行报文后开启第一接收窗口的延迟时间,t2为节点在第一接收窗口结束后开启第二接收窗口的延迟时间,一般情况下t2为1s。
需要说明的是,对于本发明述及的各种用于判断接收窗口(rx1、rx2)能否接收到下行报文的判断公式,在判断公式为等式时接收窗口能否接收到下行报文的判定,可以根据实际情况设定,在判断公式的等式情形成立时,可以判定接收窗口能够接收到下行报文,也可以判定接收窗口不能接收到下行报文,对此本发明不做严格限定。
另外,在判断节点能够接收到下行报文的接收窗口时,也可以将网络抖动等因素考虑在内。例如,可以在tp+2×delta≤rxdelay-t1的情况下,判定第一接收窗口能够接收到上行报文,在tp+2×delta>rxdelay-t1的情况下,判定第一接收窗口不能接收到上行报文。其中,t1是抖动因子,可以设置成常数,也可以根据网络延时抖动情况设置。再例如,也可以在tp+2×delta<rxdelay+t2-t1的情况下,判定第二接收窗口能够接收到上行报文,在tp+2×delta≥rxdelay+t2-t1的情况下,判定第二接收窗口不能接收到上行报文。
在步骤s220,针对选择的接收窗口发送下行报文。
由此,本发明可以实时地根据网络运行环境,自适应地为需要向classa模式的节点发送的下行数据选择合适的接收窗口,从而最大化下行数据包的成功率。
进一步地,在向下行基站发送下行报文后,可以记录当前时间(为了便于区分,可以称为“第一时间”)。下行基站在接收到下行报文后,会向网络服务器发送一个响应消息,以通知网络服务器其已经成功接收到下行报文。响应于接收到下行基站针对所述下行报文的响应消息,可以记录此时的时间(为了便于区分,可以称为“第二时间”)。根据上文结合图1的描述可知,第二时间与第一时间的差值的二分之一,即为本次下行基站与述网络服务器之间的链路传输耗时。
在得到本次下行基站与网络服务器之间的链路传输耗时后,可以将该链路传输耗时作为基站与网络服务器之间的链路传输延迟,也可以基于滑动平均算法来对链路传输耗时进行处理,以得到基站与网络服务器之间的链路传输延迟。本次得到的链路传输延迟可以用于在下次选择节点的接收窗口时使用。
图3是示出了根据本发明一实施例的数据传输方法的示意性流程图。其中,图3所示的方法可以由网络服务器(ns)执行。
参见图3,在步骤s311,接收到基站发送的上行报文。
在步骤s312,记录当前时间t_start。
当前时间t_start用于作为后续计算网络服务器的处理延时的开始时间。节点发送的上行报文可以被一个或多个基站接收到,并通过这一个或多个基站上传到网络服务器。因此,针对节点发送的同一上行报文,网络服务器可以接收到来自多个基站的多个重复上行报文。如果不考虑接收到来自不同基站的重复上行报文的时间差,可以响应于首次接收到基站发送的上行报文,记录当前时间。如果对时间精度要求较高,每次接收到基站发送的上行报文时,都可以记录一次时间,并在选定下行基站后,将接收到选定的下行基站发送的上行报文对应的时间作为当前时间t_start。
在步骤s313,回复ack响应。这里主要是向发送上行报文的基站回复ack确认消息。
在步骤s314,处理上行报文。这里主要是从多个重复上行报文中选择一个上行报文进行处理,关于上行报文的具体处理逻辑,本发明不做限定,此处不再赘述。
在步骤s315,判断是否需要发送下行报文。这里可以根据步骤s314的处理结果,进行判断。例如,在存在下行指令或者上行报文需要发送ack响应的情况下,可以判定需要发送下行报文。
在不需要发送下行报文的情况下,本次处理流程结束。在需要发送下行报文的情况下,在步骤s316,选择下行基站。这里主要是选择用于向节点发送下行报文的基站。关于下行基站的选取逻辑,本发明不做限定,此处不再赘述。
在步骤s317,获取链路传输延迟delta。这里主要是获取所选定的下行基站的链路传输延迟。其中,链路传输延迟delta可以是预先计算好的。
在步骤s318,记录当前时间t_end。
当前时间t_end用于作为计算网络服务器的处理延时的结束时间。(t_end-t_start)即为网络服务器的处理延时。
在步骤s319,选择接收窗口。
这里可以根据网络服务器的处理延时(t_end-t_start)和下行基站的链路传输延迟delta,判断节点能够接收到下行报文的接收窗口。具体的判断方式可以参见上文相关描述,此处不再赘述。
在步骤s320,组装下行报文。关于下行报文的组装逻辑不再赘述。
在步骤s321,记录当前时间t_send,并发送下行报文。
在步骤s322,接收到来自下行基站的响应,并记录当前时间t_recv。
在步骤s323,计算本次链路传输耗时。本次下行基站的链路传输耗时可以记为:
在步骤s324,获取基站在预定时间内的所有链路传输耗时,并进行统计处理,以得到基站的链路传输延时。关于统计处理的实现过程,可以参见上文描述,此处不再赘述。
在步骤s325,保存计算结果。所保存的链路传输延迟可以在下次该基站作为下行基站的情况下选择节点的接收窗口时使用。
图4示出了根据本发明另一实施例的数据传输方法的示意性流程图。其中,图4所示的方法可以由基站执行。
参见图4,在步骤s410,响应于接收到网络服务器发送的下行报文,判断下行报文的接收时间是否大于下行报文中的发送时间。
在步骤s420,在判定接收时间大于发送时间的情况下,向网络服务器发出通知,并且/或者在判定接收时间小于或等于发送时间的情况下,在发送时间发送下行报文。
本发明述及的节点主要是指工作在classa模式的节点。网络服务器在接收到节点通过一个或多个基站发送的上行报文后,可以基于特定的处理逻辑(如上行报文的排重处理逻辑)对上行报文进行处理,并在需要向节点发送下行报文时,选择用于向节点发送下行报文的基站(即下行基站)。关于下行基站的选取逻辑,不在本发明的考虑范围内,不再赘述。
在本实施例中,网络服务器在发送下行报文时,可以默认发送针对第一接收窗口的下行报文,所发送的下行报文中包括需要下行基站发送该下行报文的时间(即本发明述及的发送时间)。其中,针对第一接收窗口的下行报文中的发送时间可以是网络服务器根据节点发送完上行数据包后开启rx1窗口的延迟时间设定的,针对第二接收窗口的下行报文中的发送时间可以是网络服务器根据节点发送完上行数据包后开启rx2窗口的延迟时间设定的。
响应于接收到网络服务器发送的下行报文后,基站可以判断接收到下行报文时的时间(即本发明述及的接收时间)是否大于该下行报文中的发送时间。在接收时间大于发送时间的情况下,表明该下行报文无法被节点正常接收,可以向网络服务器发出通知。在接收时间小于或等于发送时间的情况下,表明该下行报文可以被节点正常接收,此时可以依据发送时间发送下行报文,如可以在发送时间发送下行报文。
图5示出了根据本发明另一实施例的数据传输方法的示意性流程图。其中,图5所示的方法可以由网络服务器执行。
参见图5,在步骤s510,向下行基站发送针对第一接收窗口的下行报文。
本发明述及的节点主要是指工作在classa模式的节点。网络服务器在接收到节点通过一个或多个基站发送的上行报文后,可以基于特定的处理逻辑(如上行报文的排重处理逻辑)对上行报文进行处理,并在需要向节点发送下行报文时,选择用于向节点发送下行报文的基站(即下行基站)。关于下行基站的选取逻辑,不在本发明的考虑范围内,不再赘述。
在本实施例中,网络服务器在发送下行报文时,可以默认发送针对第一接收窗口的下行报文。
在步骤s520,响应于接收到下行基站发送的通知,向下行基站发送针对第二接收窗口的下行报文。
下行基站在接收到网络服务器发送的下行报文后,可以执行图4所示的方法来判断是向网络服务器发送通知,还是发送下行报文。可选地,在接收到下行基站发送的通知后,可以判断该通知对应的下行报文是针对rx1的,还是针对rx2的。如果该通知对应的下行报文是针对rx1的,网络服务器可以向下行基站发送针对rx2的下行报文。如果该通知对应的下行报文是针对rx2的,网络服务器可以丢弃,即不再发送下行报文。
作为示例,响应于接收到通知,网络服务器还可以判断节点能否在第二接收窗口接收到下行报文。例如,网络服务器可以根据下行基站的链路传输延迟和网络服务器的处理延迟进行判断。其中,此处述及的处理延迟是指从接收到上行报文到准备发送针对第二接收窗口的下行报文之间的耗时。具体的判断公式可以参见上文相关描述,此处不再赘述。
由此,也可以保证基站只会发送一次下行报文,同时可以避免rx2的大量使用,提高下行数据包的成功率,并可以降低下行数据包的碰撞率。
【数据传输装置】
图6至图8示出了根据本发明在不同实施例的数据传输装置的结构的示意性方框图。其中,数据传输装置的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图6至图8中各个附图所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
下行数据传输装置可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文描述,这里不再赘述。
参见图6,数据传输装置700包括接收窗口选择模块710和发送模块720。其中,数据传输装置700可以设置在网络服务器端。
接收窗口选择模块710用于在选定下行基站向节点发送针对上行报文的下行报文前,选择节点的接收窗口。例如,接收窗口选择模块710可以基于下行基站与网络服务器间的链路传输延迟和网络服务器针对上行报文的处理延迟,选择节点的接收窗口。
作为本发明的一个示例,接收窗口选择模块710可以包括判断模块和选择子模块。判断模块可以基于下行基站与网络服务器间的链路传输延迟和网络服务器针对上行报文的处理延迟,判断节点能够接收到下行报文的接收窗口。选择子模块可以根据判断结果,选择接收窗口。例如,选择子模块可以在判断模块判定节点的第一接收窗口能够接收到下行报文的情况下,选择第一接收窗口。在判断模块判定第一接收窗口无法接收到下行报文,且节点的第二接收窗口能够接收到下行报文的情况下,选择子模块可以选择第二接收窗口。关于具体的判断依据,可以参见上文相关描述,此处不再赘述。
发送模块720用于针对选择的接收窗口发送下行报文。可选地,在判定节点没有能够接收到下行报文的接收窗口的情况下,发送模块720不发送下行报文。
作为本发明的一个示例,数据传输装置700还可以包括第一记录模块、第二记录模块以及计算模块。第一记录模块用于响应于向下行基站发送下行报文,记录第一时间。第二记录模块用于响应于接收到下行基站针对下行报文的响应消息,记录第二时间。计算模块用于将第二时间与第一时间的差值的二分之一,确定为下行基站与网络服务器之间的链路传输耗时。
作为本发明的一个示例,数据传输装置700还可以包括统计模块,用于对预定时间内确定的下行基站与网络服务器之间的一个或多个链路传输耗时进行统计,以得到下行基站与网络服务器之间的链路传输延迟。
参见图7,数据传输装置800包括判断模块810和发送模块820。其中,数据传输装置800可以设置在基站端。
在本实施例中,网络服务器在需要向节点发送下行报文时,可以默认针对第一接收窗口发送下行报文。判断模块810可以用于响应于接收到网络服务器发送的下行报文,判断所述下行报文的接收时间是否大于所述下行报文中的发送时间。模块820可以用于在判断模块810判定接收时间大于发送时间的情况下,向网络服务器发出通知。并且/或者模块820也可以用于在判断模块810判定接收时间小于或等于发送时间的情况下,根据发送时间发送下行报文,如可以在发送时间发送下行报文。
参见图8,数据传输装置900包括第一发送模块910和第二发送模块920。其中,数据传输装置900可以设置在网络服务器端。
在本实施例中,在需要向节点发送下行报文时,可以首先由第一发送模块910向下行基站发送针对第一接收窗口的下行报文。第二发送模块920可以用于响应于接收到下行基站发送的通知,向下行基站发送针对第二接收窗口的下行报文,其中,通知是基站在接收到下行报文的接收时间大于该下行报文中的发送时间的情况下发出的。
作为示例,在接收到下行基站发送的通知后,数据传输装置900可以判断该通知对应的下行报文是针对rx1的,还是针对rx2的。如果该通知对应的下行报文是针对rx1的,数据传输装置900可以向下行基站发送针对rx2的下行报文。如果该通知对应的下行报文是针对rx2的,数据传输装置900可以丢弃,即不再发送下行报文。
作为示例,响应于接收到通知,数据传输装置900还可以判断节点能否在第二接收窗口接收到下行报文。例如,数据传输装置900可以根据下行基站的链路传输延迟和网络服务器的处理延迟进行判断。其中,此处述及的处理延迟是指从接收到上行报文到准备发送针对第二接收窗口的下行报文之间的耗时。具体的判断公式可以参见上文相关描述,此处不再赘述。
由此,也可以保证基站只会发送一次下行报文,同时可以避免rx2的大量使用,提高下行数据包的成功率,并可以降低下行数据包的碰撞率。
【计算设备】
图9示出了根据本发明一实施例可用于实现上述数据传输方法的计算设备的结构示意图。
参见图9,计算设备1000包括存储器1010和处理器1020。
处理器1020可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1020可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(gpu)、数字信号处理器(dsp)等等。在一些实施例中,处理器1020可以使用定制的电路实现,例如特定用途集成电路(asic,applicationspecificintegratedcircuit)或者现场可编程逻辑门阵列(fpga,fieldprogrammablegatearrays)。
存储器1010可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器1020或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1010可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、minsd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器1010上存储有可执行代码,当可执行代码被处理器1020处理时,可以使处理器1020执行上文述及的数据传输方法。
上文中已经参考附图详细描述了根据本公开的数据传输方法、装置及计算设备。
此外,根据本公开的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本公开的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本公开还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本公开的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。