发明内容
本发明所要解决的技术问题在于,提供一种数据传输控制方案,能够有效地降低星型网络结构下中心端父节点的资源消耗,提高通道的整体传输效率,以解决传统通道传输技术在星型网络结构下频繁打包发送碎小数据导致系统资源过度消耗而引起的通道整体传输效率低下问题。
有鉴于此,本发明提供了一种数据传输控制装置,包括:轮询模块,设置在网络的子节点处,按预定时间和/或时间间隔向所述网络的父节点发送拉取数据包的轮询请求;响应模块,设置在所述父节点处,接收到所述轮询请求后,根据所述父节点处的数据下发情况,确定是否向所述子节点下发数据包,并在判断结果为是时,向所述子节点发送数据包。在该技术方案中,按预定的时间间隔向父节点发送轮询请求,根据系统的实际情况确定父节点处能够下发的数据,当父节点处所需传输数据过多时,可以增大子节点的轮询间隔,可以有效地防止父节点处的系统资源过度消耗。
在上述技术方案中,优选地,所述响应模块将所述父节点处的待下发数据包的大小和/或条数,以及预设的大小阈值和/或条数阈值进行比较,判断是否向所述子节点下发数据包,并在判断结果为是时,确定所下发的数据包的大小和/或条数。在该技术方案中,通过对打包条数和大小阈值的控制,合理地限定每个节点每次拉取数据的大小数量,可以防止某个节点一次性拉取过多的数据,而增加中心端父节点处的数据传输压力。
在上述技术方案中,优选地,所述的数据传输控制装置还包括:时间设置模块,根据所述父节点的数据下发情况,设置所述预定时间和/或时间间隔。在该技术方案中,可以根据中心端父节点的负荷情况,自主地设置子节点发起网络连接请求的频率,比如当系统资源较为宽松时,可以缩短时间间隔,即提高了网络连接请求发起的频率,可以更好地保证数据传输的实时性;当系统资源较为紧张时,可以增大时间间隔,以防止系统资源的过度消耗。
在上述技术方案中,优选地,所述轮询模块还在发送所述轮询请求异常,和/或在所述子节点处接收不到下发的数据包时,释放所占用的资源。在该技术方案中,轮询模块可以自动释放所占用的系统资源,可以防止因系统资源的闲置而产生的浪费,使系统资源得到更充分的利用,提高数据传输的效率。
在上述技术方案中,优选地,所述响应模块向所述子节点发出响应数据,所述响应数据包括下发的数据包,或无数据包下发的通知。在该技术方案中,保证了数据包能够顺利下发到子节点,以及及时通知子节点无数据下发的情况。
本发明还提供了一种数据传输控制方法,包括:步骤202,在网络的子节点处,按预定时间和/或时间间隔向所述网络的父节点发送拉取数据包的轮询请求;步骤204,在所述父节点处,接收到所述轮询请求后,根据所述父节点处的数据下发情况,确定是否向所述子节点下发数据包,并在判断结果为是时,向所述子节点发送数据包。在该技术方案中,按预定的时间间隔向父节点发送轮询请求,根据中心端父节点的实际情况确定父节点处能够下发的数据,当父节点处所需传输数据过多时,可以增大子节点的轮询间隔,可以有效地防止父节点处的系统资源过度消耗。
在上述技术方案中,优选地,所述步骤204具体包括:将所述父节点处的待下发数据包的大小和/或条数,以及预设的大小阈值和/或条数阈值进行比较,判断是否向所述子节点下发数据包,并在判断结果为是时,确定所下发的数据包的大小和/或条数。在该技术方案中,通过对打包条数和大小阈值的控制,合理地限定每个节点每次拉取数据的大小数量,可以防止某个节点一次性拉取过多的数据,而增加中心端父节点处的数据传输压力。
在上述技术方案中,优选地,所述的数据传输控制方法还包括:根据所述父节点的数据下发情况,设置所述预定时间和/或时间间隔。在该技术方案中,可以根据中心端父节点的负荷情况,自主地设置子节点发起网络连接请求的频率,比如当系统资源较为宽松时,可以缩短时间间隔,即提高了网络连接请求发起的频率,可以更好地保证数据传输的实时性;当系统资源较为紧张时,可以增大时间间隔,以防止系统资源的过度消耗。
在上述技术方案中,优选地,所述的数据传输控制方法还包括:在所述子节点处,发送所述轮询请求异常,和/或接收不到下发的数据包时,释放等待接收下发的数据包的操作所占用的资源。在该技术方案中,轮询模块可以释放所占用的系统资源,可以防止因系统资源的闲置而产生的浪费,使系统资源得到更充分的利用,提高数据传输的效率。
在上述技术方案中,优选地,所述步骤204具体包括:在所述父节点处,向所述子节点发出响应数据,所述响应数据包括下发的数据包,或无数据包下发的通知。在该技术方案中,保证了数据包能够顺利下发到子节点,以及及时通知子节点无数据下发的情况。
通过上述技术方案,可以实现一种数据传输控制装置和一种数据传输控制方法,能够有效地降低星型网络结构下中心端父节点的资源消耗,提高通道的整体传输效率,以解决传统通道传输技术在星型网络结构下频繁打包发送碎小数据导致系统资源过度消耗而引起的通道整体传输效率低下问题。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
图1是根据本发明的一个实施例的数据传输控制装置的框图。
如图1所示,本发明提供了一种数据传输控制装置100,包括:轮询模块102,设置在网络的子节点处,按预定时间和/或时间间隔向所述网络的父节点发送拉取数据包的轮询请求;响应模块104,设置在所述父节点处,接收到所述轮询请求后,根据所述父节点处的数据下发情况,确定是否向所述子节点下发数据包,并在判断结果为是时,向所述子节点发送数据包。在该技术方案中,按预定的时间间隔向父节点发送轮询请求,根据中心端父节点的实际情况确定父节点处能够下发的数据,当父节点处所需传输数据过多时,可以增大子节点的轮询间隔,可以有效地防止父节点处的系统资源过度消耗。
在上述技术方案中,所述响应模块104将所述父节点处的待下发数据包的大小和/或条数,以及预设的大小阈值和/或条数阈值进行比较,判断是否向所述子节点下发数据包,并在判断结果为是时,确定所下发的数据包的大小和/或条数。在该技术方案中,通过对打包条数和大小阈值的控制,合理地限定每个节点每次拉取数据的大小数量,可以防止某个节点一次性拉取过多的数据,而增加中心端父节点处的数据传输压力。
在上述技术方案中,所述的数据传输控制装置还包括:时间设置模块106,根据所述父节点的数据下发情况,设置所述预定时间和/或时间间隔。在该技术方案中,可以根据中心端父节点的负荷情况,自主地设置子节点发起网络连接请求的频率,比如当系统资源较为宽松时,可以缩短时间间隔,即提高了网络连接请求发起的频率,可以更好地保证数据传输的实时性;当系统资源较为紧张时,可以增大时间间隔,以防止系统资源的过度消耗。
在上述技术方案中,所述轮询模块102还在发送所述轮询请求异常,和/或在所述子节点处接收不到下发的数据包时,释放所占用的资源。在该技术方案中,轮询模块102可以自动释放所占用的系统资源,可以防止因系统资源的闲置而产生的浪费,使系统资源得到更充分的利用,提高数据传输的效率。
在上述技术方案中,所述响应模块104向所述子节点发出响应数据,所述响应数据包括下发的数据包,或无数据包下发的通知。在该技术方案中,保证了数据包能够顺利下发到子节点,以及及时通知子节点无数据下发的情况。
图2是根据本发明的一个实施例的数据传输控制方法的流程图。
如图2所示,本发明还提供了一种数据传输控制方法,包括:步骤202,在网络的子节点处,按预定时间和/或时间间隔向所述网络的父节点发送拉取数据包的轮询请求;步骤204,在所述父节点处,接收到所述轮询请求后,根据所述父节点处的数据下发情况,确定是否向所述子节点下发数据包,并在判断结果为是时,向所述子节点发送数据包。在该技术方案中,按预定的时间间隔向父节点发送轮询请求,根据中心端父节点的实际情况确定父节点处能够下发的数据,当父节点处所需传输数据过多时,可以增大子节点的轮询间隔,可以有效地防止父节点处的系统资源过度消耗。
在上述技术方案中,所述步骤204具体包括:将所述父节点处的待下发数据包的大小和/或条数,以及预设的大小阈值和/或条数阈值进行比较,判断是否向所述子节点下发数据包,并在判断结果为是时,确定所下发的数据包的大小和/或条数。在该技术方案中,通过对打包条数和大小阈值的控制,合理地限定每个节点每次拉取数据的大小数量,可以防止某个节点一次性拉取过多的数据,而增加中心端父节点处的数据传输压力。
在上述技术方案中,所述的数据传输控制方法还包括:根据所述父节点的数据下发情况,设置所述预定时间和/或时间间隔。在该技术方案中,可以根据中心端父节点的负荷情况,自主地设置子节点发起网络连接请求的频率,比如当系统资源较为宽松时,可以缩短时间间隔,即提高了网络连接请求发起的频率,可以更好地保证数据传输的实时性;当系统资源较为紧张时,可以增大时间间隔,以防止系统资源的过度消耗。
在上述技术方案中,所述的数据传输控制方法还包括:在所述子节点处,发送所述轮询请求异常,和/或接收不到下发的数据包时,释放等待接收下发的数据包的操作所占用的资源。在该技术方案中,轮询模块可以释放所占用的系统资源,可以防止因系统资源的闲置而产生的浪费,使系统资源得到更充分的利用,提高数据传输的效率。
在上述技术方案中,所述步骤204具体包括:在所述父节点处,向所述子节点发出响应数据,所述响应数据包括下发的数据包,或无数据包下发的通知。在该技术方案中,保证了数据包能够顺利下发到子节点,以及及时通知子节点无数据下发的情况。
图3是根据本发明的一个实施例的数据传输控制方法的原理图。
如图3所示,本实施例中的数据传输控制方法实现了可延时打包传输技术,对数据传输进行了可延时控制,这是由下端各个子节点A、B、Z等的接收轮询器302、304和306(相当于前述的轮询模块)实现的:以子节点A为例,当上一个轮询等待周期结束时,接收轮询器302就会主动向中心端父节点发起轮询信号,中心端父节点的接收响应器308(相当于前述的接收响应模块)收到轮询信号后,会根据设定的打包条数阀值和打包大小阀值,通过控制信号,从远程队列(待传输数据)查询、打包并下发消息;当上一个轮询等待周期还未结束时,下端子节点A是不会通过轮询信号向中心端父节点发起任何网络连接请求(即轮询请求)的,所以就不会消耗任何中心端父节点的应用系统的系统资源。
接收轮询器是通过操作系统的Timer机制来实现的,其数据处理流程如图4所示:
步骤402,对请求传输的数据进行组织;
步骤404,进行网络通讯,向接收响应器发出轮询信号,进行网络连接请求以请求数据传输;
步骤406,判断是否发生通讯异常,并在发生异常时休眠接收轮询器,当接收轮询器进入休眠状态时,会释放所占用的操作系统CPU时间片段及网络带宽资源,只有当Timer定时器唤醒它时,才会继续向中心端发起网络连接请求,未发生异常则进入下一步;
步骤408,判断接收响应器是否有数据下发,如果有数据下发,进入下一步,如果没有数据下发,则休眠接收轮询器;
步骤410,对接收响应器下发的数据进行分析,以确定如何进行数据传输,并生成应答数据,发送至中心端父节点。
通过调整下端子节点接收轮询器的轮询间隔,就可以做到可控制的延时传输。应用系统可根据中心端父节点的当前负荷有的放矢地调整这个轮询间隔,当系统的CPU、内存、带宽等资源吃紧时,可适当增大轮询间隔,反之,可适当减小轮询间隔以提高实时性。
下面以汽车行业实际业务流程中传输的数据为例进行说明,其中,通讯格式定义为:轮询信号由报文头和属性内容组成,应答数据流一般由报文头、属性内容和业务内容(下发的数据包)组成,其中报文头的统一格式为:命令编号属性内容长度业务内容长度版本号。具体如下:
综上所述,可以实现一种数据传输控制装置和一种数据传输控制方法,实现的可延时打包传输技术的关键性能与传统传输方式比较如下:
吞吐量比较(单位MB/S):
消息大小 |
16k |
32k |
64k |
128k |
256k |
512k |
1m |
2m |
吞吐量 |
0.4 |
1 |
1.8 |
3.9 |
7.5 |
14 |
25 |
44 |
注:上表是在每次下发1000条消息,且条数阈值为100条、大小阈值为250M的情况下测得的数据。
传输耗时比较:
传输耗时比较一,64K网速下:
消息大小 |
44M |
80M |
118M |
平均耗时 |
22分6秒 |
46分13秒 |
1小时12分38秒 |
传输耗时比较二,256K网速下:
消息大小 |
44M |
80M |
118M |
平均耗时 |
14分12秒 |
28分18秒 |
35分43秒 |
综上所述,通过本发明实施例中的技术方案,可以有效降低星型网络结构下中心端父节点的资源消耗,大幅提高了通道的整体传输效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。