CN107623643B - 一种数据包转发方法及装置 - Google Patents

一种数据包转发方法及装置 Download PDF

Info

Publication number
CN107623643B
CN107623643B CN201710867415.2A CN201710867415A CN107623643B CN 107623643 B CN107623643 B CN 107623643B CN 201710867415 A CN201710867415 A CN 201710867415A CN 107623643 B CN107623643 B CN 107623643B
Authority
CN
China
Prior art keywords
sub
bandwidth
data
data packet
packets
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.)
Active
Application number
CN201710867415.2A
Other languages
English (en)
Other versions
CN107623643A (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.)
Shenzhen Shenglu IoT Communication Technology Co Ltd
Original Assignee
Shenzhen Shenglu IoT Communication Technology Co 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 Shenzhen Shenglu IoT Communication Technology Co Ltd filed Critical Shenzhen Shenglu IoT Communication Technology Co Ltd
Priority to CN201710867415.2A priority Critical patent/CN107623643B/zh
Publication of CN107623643A publication Critical patent/CN107623643A/zh
Application granted granted Critical
Publication of CN107623643B publication Critical patent/CN107623643B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种数据包转发方法及装置,其方法包括读取数据包的数据量大小,并根据用户端的已占用带宽获取用户端传输信道的可用带宽;当确定所述数据包的数据量大于所述可用带宽时,根据所述可用带宽将所述数据包拆分为多个数据量相等的子数据包;根据所述子数据包的数据量动态分配所述可用带宽,并在预定时间内通过动态分配后的所述可用带宽转发所述多个子数据包;其中,所述子数据包的数据量不大于所述可用带宽。本发明通过将所述数据包拆分为多个子数据包,并根据子数据包的数量对可用带宽进行动态分配,这样可以在确保数据包顺利转发的前提下尽可能提高转发效率和网络资源的利用率,避免出现初始缓冲甚至卡死或者加载失败的情况。

Description

一种数据包转发方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据包转发方法及装置。
背景技术
网络视频等高带宽业务的出现,对现有网络的服务质量提出挑战,长时间的初始缓冲会挑战用户耐心和服务忠诚度,快速响应网络用户的业务请求成为迫切需要解决的问题。
现有的层次化服务质量(hierarchical qual ity of service,简称HQoS)技术提供“用户+业务”级的业务保证。然而,在现有技术下,当用户需要访问大图片、大网页、大视频或大文件等大数据时,经常会出现网络初始响应缓慢,需要长时间刷新页面或者长时间业务初始缓冲的情况,造成用户需要等待较长时间,甚至卡死或者加载失败的情况,严重影响了用户体验。并且现有技术中,通过预先为用户分配好网络带宽,然后通过预先分配好的网络带宽传输数据信息。不加以任何调节,这样使得网络带宽没有得到充分的利用,造成资源浪费,严重影响用户的使用体验。
发明内容
本发明所要解决的技术问题是针对上述现有技术的不足,提供一种数据包转发方法及装置。
第一方面,本发明提供了一种数据转发方法,所述方法包括:
读取数据包的数据量,并根据用户端的已占用带宽获取用户端传输信道的可用带宽;
当确定所述数据包的数据量大于所述可用带宽时,根据所述可用带宽将所述数据包拆分为N个数据量相等的子数据包,所述N为大于1的自然数;
根据所述子数据包的数据量动态分配所述可用带宽,并在预定时间内通过动态分配后的所述可用带宽转发所述多个子数据包;
其中,所述子数据包的数据量不大于所述可用带宽。
本发明的数据转发方法,根据用户端已占用的带宽获取可用带宽,在所述数据包的数据量大于所述可用带宽时将所述数据包拆分为多个数据量相等的子数据包,并根据所述子数据包的数据量动态分配所述可用带宽,最后根据动态分配后的所述可用带宽转发所述多个子数据包。通过将所述数据包拆分为多个子数据包,并根据子数据包的数量对可用带宽进行动态分配,这样可以在确保数据包顺利转发的前提下尽可能提高转发效率和网络资源的利用率,避免出现初始缓冲甚至卡死或者加载失败的情况。
进一步,所述方法还包括:当所述数据包的数据量小于或等于所述可用带宽,则通过所述可用带宽将所述数据包直接转发。
上述实施例中,当所述数据包的数据量小于或等于所述可用带宽,则无需将所述数据包进行拆分,即可顺利的将所述数据包通过所述可用带宽所在信道进行转发,实现数据包的流畅转发。
进一步,所述方法还包括:当根据所述可用带宽将所述数据包拆分为多个数据量相等的子数据包后,为所有所述子数据包生成标识信息,并将所述标识信息进行ID编号。
上述实施例中,通过为所述子数据包生成标识信息并将所述标识信息按序进行ID编号,可以在转发的过程中对所述子数据包进行识别,也方便接收端接收所述子数据包之后根据所述ID编号对所述子数据包进行解压后形成目标数据内容。
进一步,所述方法还包括:在对所述子数据转发之前,建立子数据包列表,并将所述子数据包对应的标识信息和ID编号一一对应关联存储在所述子数据包列表中,当所述子数据包通过所述可用带宽转发以后,从所述子数据包列表中删除所述子数据包对应的标识信息和ID编号。
上述实施例中,通过所述建立所述子数据包列表,可用便于在子数据包转发过程中对所述数据包进行管理和监控,降低所述子数据包在转发过程中的出错几率,有效保证所述子数据包转发的准确性和完整性,同时便于在根据所述子数据包的数量合理调整所述可用带宽的分配情况。
进一步,所述方法还包括,在转发所述子数据包之前,将所述子数据包进行本地缓存,并在所述子数据包转发以后,检测在预设时间内是否收到接收端的反馈信息,当确定在预设时间内没有收到接收端的反馈信息时,从本地缓存中读取所述数据包,并将其对应的所述标识信息和ID编号重新关联存入所述子数据包列表,并进行重新转发。
上述实施例中,通过检测在预设时间内是否收到接收端的反馈信息可以对所述子数据包的转发进程进行跟踪,并在所述子数据包转发出现异常时通过本地缓存的方式实现重新转发,同时利用所述子数据包列表来进行监控,确保所述子数据包转发成功。
第二方面,本发明提供了一种数据转发装置,所述装置包括:
获取单元,用于读取数据包的数据量,并根据用户端的已占用带宽获取用户端传输信道的可用带宽;拆分单元,用于根据所述可用带宽将所述数据包拆分为N个数据量相等的子数据包,所述子数据包的数据量不大于所述可用带宽,所述N为大于1的自然数;动态分配单元,用于根据所述子数据包的数据量动态分配所述可用带宽;转发单元,用于在预定时间内通过动态分配后的所述可用带宽依次转发多个所述子数据包。
本发明的数据转发装置,获取单元根据用户端已占用的带宽获取可用带宽,所述拆分单元在所述数据包的数据量大于所述可用带宽时将所述数据包拆分为多个数据量相等的子数据包,所述动态分配单元根据所述子数据包的数据量动态分配所述可用带宽,最后转发单元根据动态分配后的所述可用带宽转发所述多个子数据包。通过将所述数据包拆分为多个子数据包,并根据子数据包的数量对可用带宽进行动态分配,这样可以在确保数据包顺利转发的前提下尽可能提高转发效率和网络资源的利用率,避免出现初始缓冲甚至卡死或者加载失败的情况。
进一步,当所述获取单元获取所述数据包的数据量小于或等于所述可用带宽,则所述转发单元通过所述可用带宽将所述数据包直接转发。
上述实施例中,当所述数据包的数据量小于或等于所述可用带宽,则无需将所述数据包进行拆分,即可顺利的将所述数据包通过所述可用带宽所在信道进行转发,实现数据包的流畅转发。
进一步,所述装置还包括标识编码单元,用于当所述拆分单元根据所述可用带宽将所述数据包拆分为多个数据量相等的子数据包后,为所述子数据包生成标识信息,并将所述标识信息进行ID编号。
上述实施例中,通过标识编码单元为所述子数据包生成标识信息并将所述标识信息按序进行ID编号,可以在转发的过程中对所述子数据包进行识别,也方便接收端接收所述子数据包之后根据所述ID编号对所述子数据包进行解压后形成目标数据内容。
进一步,所述装置还包括数据列表单元,用于在对所述子数据转发之前,建立子数据包列表,并将所述子数据包对应的标识信息和ID编号一一对应关联存储在所述子数据包列表中,当所述转发单元将子数据包通过所述可用带宽转发以后,从所述子数据包列表中删除所述子数据包对应的标识信息和ID编号。
上述实施例中,通过所述建立所述子数据包列表,可用便于在子数据包转发过程中对所述数据包进行管理和监控,降低所述子数据包在转发过程中的出错几率,有效保证所述子数据包转发的准确性和完整性,同时便于在根据所述子数据包的数量合理调整所述可用带宽的分配情况。
进一步,所述装置还包括缓存单元和反馈跟踪单元,所述缓存单元用于在转发所述子数据包之前,将所述子数据包进行本地缓存,所述反馈跟踪单元用于在所述子数据包转发以后,检测在预设时间内是否收到接收端的反馈信息,当确定在预设时间内没有收到接收端的反馈信息时,从本地缓存中读取所述数据包,并将其对应的所述标识信息和ID编号重新关联存入所述子数据包列表,并由所述转发单元进行重新转发。
上述实施例中,通过反馈跟踪单元检测在预设时间内是否收到接收端的反馈信息可以对所述子数据包的转发进程进行跟踪,并在所述子数据包转发出现异常时通过缓存单元进行本地缓存,再由所述转发单元实现重新转发,同时利用所述子数据包列表来进行监控,确保所述子数据包转发成功。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
图1为本发明一实施例提供的数据转发方法流程示意图;
图2为本发明另一实施例提供的步骤S120方法流程示意图;
图3为本发明另一实施例提供的步骤S120方法流程示意图;
图4为本发明另一实施例提供的步骤S120方法流程示意图;
图5为本发明另一实施例提供的数据转发方法流程示意图;
图6为本发明另一实施例提供的步骤S140方法流程示意图;
图7为本发明另一实施例提供的数据转发系统流程示意图;
图8为本发明一实施例提供的数据转发装置结构示意图;
图9为本发明另一实施例提供的数据转发装置结构示意图;
图10为本发明一实施例提供的动态分配单元结构示意图;
图11为本发明另一实施例提供的数据转发装置结构示意图;
图12为本发明另一实施例提供的数据转发装置结构示意图;
图13为本发明另一实施例提供的数据转发装置结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、模块、技术之类的具体细节,以便透切理解本发明。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
如图1给出了本发明实施例提供的一种数据转发方法流程示意图。如图1所示方法的执行主体可以是服务器,该方法包括:
S110,读取所述数据包的数据量,并根据用户端的已占用带宽获取用户端传输信道的可用带宽;
本实施例中,接收到所述数据包之后,首先读取所述数据包的数据量大小,然后获取用户端已占用带宽,通过签约带宽和已占用带宽便可以计算出用户端传输信道的可用带宽,便于后续根据所述可用带宽对所述数据包进行拆分。
S120,当确定所述数据包的数据量大于所述可用带宽时,根据所述可用带宽将所述数据包拆分为N个数据量相等的子数据包,所述N为大于1的自然数。
当获取用户端传输信道的可用带宽后,首先将所述数据包的数据量与所示可用带宽进行比较,当确定所述数据包的数据量大于所述可用带宽时,表明所述可用带宽对于上述数据包的数据量来说偏小,会引起数据包传输的延时或阻塞,此时将所述数据包拆分为多个子数据包,便可以将所述数据包能够顺利的转发出去。
这里,之所以将所述数据包拆分为多个数据量相等的子数据包,是为了在后续对所述可用带宽进行动态分配调节时比较方便,由于所有所述子数据包的数据量相同,所以可用不用区分数据量不同的子数据包,这样对所述可用带宽进行动态分配调节可用参照统一的标准执行。
S130,根据所述子数据包的数据量动态分配所述可用带宽,并在预定时间内通过动态分配后的所述可用带宽转发所述多个子数据包,其中,所述子数据包的数据量不大于所述可用带宽。
根据所述子数据包的数据量动态分配所述可用带宽,可用使得将所述数据包拆分为多个子数据包之后,通过动态调节后的可用带宽将所述多个子数据包转发出去,这样可以提高数据的转发效率,同时降低数据在转发过程中出错的概率,缩短用户等待时间,提高了用户使用体验。
本发明的数据转发方法,根据用户端已占用的带宽获取可用带宽,在所述数据包的数据量大于或等于所述可用带宽时将所述数据包拆分为多个数据量相等的子数据包,并根据所述子数据包的数据量动态分配所述可用带宽,最后根据动态分配后的所述可用带宽转发所述多个子数据包。通过将所述数据包拆分为多个子数据包,并根据子数据包的数量对可用带宽进行动态分配,这样可以在确保数据包顺利转发的前提下尽可能提高转发效率和网络资源的利用率,避免出现初始缓冲甚至卡死或者加载失败的情况。
优选地,在上述实施例中,所述方法还包括:当确定所述数据包的数据量小于或等于所述可用带宽,则通过所述可用带宽将所述数据包直接转发。
上述实施例中,当所述数据包的数据量小于或等于所述可用带宽,则无需将所述数据包进行拆分,即可顺利的将所述数据包通过所述可用带宽所在信道进行转发,实现数据包的流畅转发。
优选地,在上述实施例中,所述方法还包括:当根据所述可用带宽将所述数据包拆分为多个数据量相等的子数据包后,为所有所述子数据包生成标识信息,并将所述标识信息进行ID编号。
上述实施例中,通过为所述子数据包生成标识信息并将所述标识信息按序进行ID编号,可以在转发的过程中对所述子数据包进行识别,也方便接收端接收所述子数据包之后根据所述ID编号对所述子数据包进行解压后形成目标数据内容。
优选地,如图2所示,在上述实施例中,上述步骤S120的实现方式可以具体为:所述根据所述子数据包的数据量动态分配所述可用带宽具体包括:
S210,将所述可用带宽与所述子数据包的数据量进行比较;
S220,当确定所述可用带宽大于或等于每个所述子数据包数据量的N(N>1)倍时,将所述可用带宽划分为N个子信道,并通过N个子信道并行转发所述数据包。
上述实施例中,在将所述数据包拆分费多个子数据包后,将所述子数据包与所述可用带宽进行比较,如果所述可用带宽大于或等于所述子数据包数据量的N(N>1)倍时,表面经过拆分之后,所述子数据包的数据量明显小于所述可用带宽,此时,如果直接按照所述可用带宽对所述子数据包进行转发,会造成信道资源的大量浪费,利用率较低,此时,通过将所述可用带宽划分为N个子信道,可用通过N个子信道并行发送所述子数据包,这样在保证所述子数据包能顺利转发的前提下,实现了信道带宽的充分利用,提高了网络资源的利用率。
优选地,如图3所示,在上述实施例中,所述步骤S120的实现方式还可以具体包括:
S310,将所述子信道的带宽与所述子数据包的数据量进行比较;
S320,当确定所述子信道的带宽与所述子数据包的数据量满足预设条件时,缩小所述子信道的带宽,且保持所述子数据包的数据量不大于所述子信道的带宽;
其中,所述预设条件为:所述子信道的带宽与所述子数据包的数据量之差与所述子信道的带宽的比值大于预设阈值。
当确定所述子信道的带宽与所述子数据包的数据量满足预设条件时,表明所述自信对的带宽对所述子数据包来说有富余,会有部分带宽没有利用,所以此时缩小所述子信道的带宽,一方面,不仅不会影响所述子数据包的转发,另一方面,还可以把缩小所述子信道时生成的剩余带宽作为转发子数据包或者其他数据信息的信道,这样可以对所述可用带宽进行充分利用,进一步提高网络资源的利用率。
当然,需要指出的是,这里的所述预设条件中,之所以要限定所述子信道的带宽与所述子数据包的数据量之差与所述子信道的带宽的比值大于预设阈值,一方面是为了保证在缩小所述子信道的带宽时,缩小后的所述子信道的带宽不能小于所述子数据包的数据量,另一方面,是为了在不影响所述子数据包的转发前提下,将所述子信道中富余的带宽整合,并可以通过生成的剩余宽带作为转发子数据包或者他用。
例如,当所述子信道的带宽为10M,所述子数据包的数据量为6M,那么转发所述子数据包的子信道中有4M带宽富余,此时可以缩小所述子信道的带宽,但是不能将所述子信道的带宽缩小至小于6M。比如,当所述预设阈值为0.25时,可以将所述子信道的带宽缩小至8M,这样就可以形成2M的剩余带宽,依次类推,多个子信道就可以形成更多的剩余带宽。实际中,所述子信道的带宽通常不宜与所述子数据包的数据量相等,一般要略大于所述子数据包的数据量,这样不会影响所述子数据包通过所述子信道进行转发。
优选地,如图4所示,在上述实施例中,所述步骤S120的实现方式还可以具体包括:
S410,缩小所述子信道的带宽的同时生成剩余带宽,将所述剩余带宽与所示子信道带宽进行比较;
S420,当确定所述剩余带宽大于所述子信道带宽时,将所述剩余带宽按照缩小后的所述子信道带宽重新进行划分,生成至少一个额外子信道;
这里,对所述子信道进行缩减带宽之后,会同时形成剩余带宽,此时,将所述剩余带宽与所示子信道带宽进行比较,如果所述剩余带宽大于所述子信道带宽时,则表明所述剩余带宽可以用来转发所述子数据包,所以将所述剩余带宽按照所述缩小后的子信道带宽重新进行划分,生成至少一个额外子信道,可以用来协助转发所述子数据包,这样可以加快所述子数据包的转发效率。
S430,将所述子数据包通过所述子信道和额外子信道并行发送。
通过所述子信道和额外子信道并行发送所述子数据包,可以使得所述子数据包的转发效率大大提高,所述可用带宽的利用率大大提高,实现了网络资源的充分合理利用。
例如,接着上述的例子来说,假定所述子信道的数量为10个,那么所述剩余带宽即为20M,而每个所述子信道的带宽为10M,那么所述剩余带宽就可以划分为2个额外子信道,这样10个子信道和2个额外子信道就可以并行发送子数据包,这样可以大大提高自数据包的转发效率。
优选地,如图5所示,作为本发明的一个实施例,该实施例中,所述根据所述子数据包的数据量动态分配所述可用带宽,并在预定时间内通过动态分配后的所述可用带宽转发所述多个子数据包之后,所述方法还包括:
S140,在所述预定时间内获取用户端的平均占用带宽,并根据所述平均占用带宽与所述已占用带宽反馈调节所述可用带宽和所述已占用带宽的分配。
上述步骤中,通过将所述所述平均占用带宽与所述已占用带宽反馈调节所述可用带宽和所述已占用带宽的分配,可用在保证用户端在先数据信息传输请求的基础上,尽可能提高子数据包的转发效率,同时也可以提高网络资源的利用率。
优选地,如图6所示,作为本发明的一个实施例,该实施例中,所述步骤S140的具体实现方式可以具体包括:
S510,在所述预定时间内获取用户端的平均占用带宽;
在预定时间内,用户端会根据在先的数据请求通过所述已占用带宽进行数据信息传输,并且所述数据请求对应占用的带宽是会变化的,这里通过在所述预定时间内获取用户端的平均占用带宽,是为了检测所述数据请求对应占用带宽的情况,即平均占用带宽。
S520,将所述平均占用带宽与所述已占用带宽进行比较;
S530,当确定所述平均占用带宽大于所述已占用带宽的持续时长大于预设时间阈值,则按照先释放所述额外子信道,再释放所述子信道的顺序释放信道,以增加所述已占用带宽,直到所述平均占用带宽不大于增加后的所述已占用带宽。
上述步骤中,将所述平均占用带宽与所述已占用带宽进行比较,可以判定所述已占用带宽是否能够满足用户端在先数据信息请求的需求,如果所述平均占用带宽大于所述已占用带宽的持续时长大于预设时间阈值,说明所述已占用带宽已经不够用了,此时,需要把之前没有充分利用的所述额外子信道先增加给已占用带宽,如果还不够,进一步把部分子信道也增加给已占用带宽,这样确保所述已占用带宽的那部分能够满足用户在先的数据信息传输请求,如果删除所述额外子信道之后,所述平均占用带宽不大于所述已占用带宽,则无需继续删除所述子信道。
例如,还是接着上述例子来说,假定所述已占用带宽为90M,所述平均占用带宽为120M,那么所述平均占用带宽大于所述已占用带宽,如果持续时长超过预设时间阈值,那么就可以先释放2个所述额外子信道,并用以增加所述已占用带宽,此时,所述已占用带宽增加到110M,与所述平均占用带宽为120M仍然相差10M,所以还需要再释放一个子信道来继续真假所述已占用带宽,使得所述已占用带宽达到所述平均占用带宽。
优选地,在上述实施例中,所述方法还包括:在对所述子数据转发之前,建立子数据包列表,并将所述子数据包对应的标识信息和ID编号一一对应关联存储在所述子数据包列表中,当所述子数据包通过所述可用带宽转发以后,从所述子数据包列表中删除所述子数据包对应的标识信息和ID编号。
上述实施例中,通过所述建立所述子数据包列表,可用便于在子数据包转发过程中对所述数据包进行管理和监控,降低所述子数据包在转发过程中的出错几率,有效保证所述子数据包转发的准确性和完整性,同时便于在根据所述子数据包的数量合理调整所述可用带宽的分配情况。
优选地,在上述实施例中,所述方法还包括:在转发所述子数据包之前,将所述子数据包进行本地缓存,并在所述子数据包转发以后,检测在预设时间内是否收到接收端的反馈信息,当确定在预设时间内没有收到接收端的反馈信息时,从本地缓存中读取所述数据包,并将其对应的所述标识信息和ID编号重新关联存入所述子数据包列表,并进行重新转发。
上述实施例中,通过检测在预设时间内是否收到接收端的反馈信息可以对所述子数据包的转发进程进行跟踪,并在所述子数据包转发出现异常时通过本地缓存的方式实现重新转发,同时利用所述子数据包列表来进行监控,确保所述子数据包转发成功。
上文结合图1至图6,详细描述了根据本发明实施例的数据转发方法,下面结合图7-13,详细描述根据本发明实施例的数据转发装置。
图7为本发明实施例提供的一种数据转发系统架构图。具体如图7所示,该系统架构至少包括:至少一个客户端、物联网络和服务器。
其中,物联网络包括物联网接入设备、物联网互联设备和物联网安全设备等。物联网接入设备包括有物联网远端接入接口和物联网本地接入接口,用于通过所述物联网远端接入接口和物联网本地接入接口建立外部终端与物联网服务子系统的连接。物联网互联设备包括有分别用于与物联网接入设备、物联网安全设备以及内部终端连接的物联网互联接口,用于通过所述物联网互联接口提供所述物联网接入设备以及所述物联网服务子系统的互联。
本申请文件将详细介绍服务器所执行的方法流程。该实施例中,服务器为即为数据转发装置。图8为本发明实施例提供的一种数据转发装置结构示意图。如图8所示,该装置包括:获取单元、拆分单元、动态分配单元和转发单元。
获取单元,用于读取数据包的数据量,并根据用户端的已占用带宽获取用户端传输信道的可用带宽;
本实施例中,接收到所述数据包之后,所述获取单元首先读取所述数据包的数据量,然后获取用户端已占用带宽,通过签约带宽和已占用带宽便可以计算出用户端传输信道的可用带宽,便于后续根据所述可用带宽对所述数据包进行拆分。
拆分单元,用于根据所述可用带宽将所述数据包拆分为N个数据量相等的子数据包,所述子数据包的数据量不大于所述可用带宽,所述N为大于1的自然数;
当获取用户端传输信道的可用带宽后,首先将所述数据包的数据量与所示可用带宽进行比较,当确定所述数据包的数据量大于所述可用带宽时,表明所述可用带宽对于上述数据包的数据量来说偏小,会引起数据包传输的延时或阻塞,此时将所述数据包拆分为多个子数据包,便可以将所述数据包能够顺利的转发出去。
这里,之所以将所述数据包拆分为多个数据量相等的子数据包,是为了在后续对所述可用带宽进行动态分配调节时比较方便,由于所有所述子数据包的数据量相同,所以可用不用区分数据量不同的子数据包,这样对所述可用带宽进行动态分配调节可用参照统一的标准执行。
动态分配单元,用于根据所述子数据包的数据量动态分配所述可用带宽;转发单元,用于在预定时间内通过动态分配后的所述可用带宽依次转发多个所述子数据包。
根据所述子数据包的数据量动态分配所述可用带宽,可用使得将所述数据包拆分为多个子数据包之后,通过动态调节后的可用带宽将所述多个子数据包转发出去,这样可以提高数据的转发效率,同时降低数据在转发过程中出错的概率,缩短用户等待时间,提高了用户使用体验。
本发明的数据转发装置,获取单元根据用户端已占用的带宽获取可用带宽,所述拆分单元在所述数据包的数据量大于所述可用带宽时将所述数据包拆分为多个数据量相等的子数据包,所述动态分配单元根据所述子数据包的数据量动态分配所述可用带宽,最后转发单元根据动态分配后的所述可用带宽转发所述多个子数据包。通过将所述数据包拆分为多个子数据包,并根据子数据包的数量对可用带宽进行动态分配,这样可以在确保数据包顺利转发的前提下尽可能提高转发效率和网络资源的利用率,避免出现初始缓冲甚至卡死或者加载失败的情况。
优选地,在上述实施例中,当所述获取单元获取所述数据包的数据量小于或等于所述可用带宽,则所述转发单元通过所述可用带宽将所述数据包直接转发。
上述实施例中,当所述数据包的数据量小于或等于所述可用带宽,则无需将所述数据包进行拆分,即可顺利的将所述数据包通过所述可用带宽所在信道进行转发,实现数据包的流畅转发。
优选地,如图9所示,在上述实施例中,所述装置还包括标识编码单元,用于当所述拆分单元根据所述可用带宽将所述数据包拆分为多个数据量相等的子数据包后,为所述子数据包生成标识信息,并将所述标识信息进行ID编号。
上述实施例中,通过标识编码单元为所述子数据包生成标识信息并将所述标识信息按序进行ID编号,可以在转发的过程中对所述子数据包进行识别,也方便接收端接收所述子数据包之后根据所述ID编号对所述子数据包进行解压后形成目标数据内容。
优选地,如图10所示,在上述实施例中,所述动态分配单元包括第一动态分配子单元,用于将所述可用带宽与所述子数据包的数据量进行比较,当确定所述可用带宽大于或等于每个所述子数据包数据量的N(N>1)倍时,将所述可用带宽划分为N个子信道,并由所述转发单元通过N个子信道并行转发所述数据包。
上述实施例中,在将所述数据包拆分费多个子数据包后,将所述子数据包与所述可用带宽进行比较,如果所述可用带宽大于或等于所述子数据包数据量的N(N>1)倍时,表面经过拆分之后,所述子数据包的数据量明显小于所述可用带宽,此时,如果直接按照所述可用带宽对所述子数据包进行转发,会造成信道资源的大量浪费,利用率较低,此时,通过将所述可用带宽划分为N个子信道,可用通过N个子信道并行发送所述子数据包,这样在保证所述子数据包能顺利转发的前提下,实现了信道带宽的充分利用,提高了网络资源的利用率。
优选地,如图10所示,在上述实施例中,所述动态分配单元还包括第二动态分配子单元,用于将所述子信道的带宽与所述子数据包的数据量进行比较;当确定所述子信道的带宽与所述子数据包的数据量满足预设条件时,缩小所述子信道的带宽,且保持所述子数据包的数据量不大于所述子信道的带宽,其中,所述预设条件为:所述子信道的带宽与所述子数据包的数据量之差与所述子信道的带宽的比值大于预设阈值。
当确定所述子信道的带宽与所述子数据包的数据量满足预设条件时,表明所述自信对的带宽对所述子数据包来说有富余,会有部分带宽没有利用,所以此时缩小所述子信道的带宽,不仅不会影响所述子数据包的转发,另一方面,还可以把缩小所述子信道时生成的剩余带宽作为转发子数据包或者其他数据信息的信道,这样可以对所述可用带宽进行充分利用,进一步提高网络资源的利用率。
当然,需要指出的是,这里的所述预设条件中,之所以要限定所述子信道的带宽与所述子数据包的数据量之差与所述子信道的带宽的比值大于预设阈,一方面是为了保证在缩小所述子信道的带宽时,缩小后的所述子信道的带宽不能小于所述子数据包的数据量,另一方面,是为了在不影响所述子数据包的转发前提下,将所述子信道中富余的带宽整合,并可以通过生成的剩余宽带作为转发子数据包或者他用。
优选地,如图10所示,在上述实施例中,所述动态分配单元还包括第三动态分配子单元,用于在所述第二动态分配子单元缩小所述子信道的带宽的同时生成剩余带宽,将所述剩余带宽与所示子信道带宽进行比较;当确定所述剩余带宽大于所述子信道带宽时,将所述剩余带宽按照缩小后的所述子信道带宽重新进行划分,生成至少一个额外子信道;并由所述转发单元将所述子数据包通过所述子信道和额外子信道并行发送。
这里,对所述子信道进行缩减带宽之后,会同时形成剩余带宽,此时,将所述剩余带宽与所示子信道带宽进行比较,如果所述剩余带宽大于所述子信道带宽时,则表明所述剩余带宽可以用来转发所述子数据包,所以将所述剩余带宽按照所述缩小后的子信道带宽重新进行划分,生成至少一个额外子信道,可以用来协助转发所述子数据包,这样可以加快所述子数据包的转发效率。
通过所述子信道和额外子信道并行发送所述子数据包,可以使得所述子数据包的转发效率大大提高,所述可用带宽的利用率大大提高,实现了网络资源的充分合理利用。
优选地,如图11所示,在上述实施例中,所述装置还包括反馈调节单元,用于在所述转发单元在预定时间内通过动态分配后的所述可用带宽依次转发多个所述子数据包后,在所述预定时间内,获取用户端的平均占用带宽,并将所述平均占用带宽与所述已占用带宽进行比较,当确定所述平均占用带宽大于所述已占用带宽的持续时长大于预设时间阈值,则按照先释放所述额外子信道,再释放所述子信道的顺序释放信道,以增加所述已占用带宽,直到所述平均占用带宽不大于增加后的所述已占用带宽。
在预定时间内,用户端会根据在先的数据请求通过所述已占用带宽进行数据信息传输,并且所述数据请求对应占用的带宽是会变化的,这里通过在所述预定时间内获取用户端的平均占用带宽,是为了检测所述数据请求对应占用带宽的情况,即平均占用带宽。
将所述平均占用带宽与所述已占用带宽进行比较,可以判定所述已占用带宽是否能够满足用户端在先数据信息请求的需求,如果所述平均占用带宽大于所述已占用带宽的持续时长大于预设时间阈值,说明所述已占用带宽已经不够用了,此时,需要把之前没有充分利用的所述额外子信道先增加给已占用带宽,如果还不够,进一步把部分子信道也增加给已占用带宽,这样确保所述已占用带宽的那部分能够满足用户在先的数据信息传输请求,如果删除所述额外子信道之后,所述平均占用带宽不大于所述已占用带宽,则无需继续删除所述子信道。
优选地,如图12所示,在上述实施例中,所述装置还包括数据列表单元,用于在对所述子数据转发之前,建立子数据包列表,并将所述子数据包对应的标识信息和ID编号一一对应关联存储在所述子数据包列表中,当所述转发单元将子数据包通过所述可用带宽转发以后,从所述子数据包列表中删除所述子数据包对应的标识信息和ID编号。
上述实施例中,通过所述建立所述子数据包列表,可用便于在子数据包转发过程中对所述数据包进行管理和监控,降低所述子数据包在转发过程中的出错几率,有效保证所述子数据包转发的准确性和完整性,同时便于在根据所述子数据包的数量合理调整所述可用带宽的分配情况。
优选地,如图13所示,在上述实施例中,所述装置还包括缓存单元和反馈跟踪单元,所述缓存单元用于在转发所述子数据包之前,将所述子数据包进行本地缓存,所述反馈跟踪单元用于在所述子数据包转发以后,检测在预设时间内是否收到接收端的反馈信息,当确定在预设时间内没有收到接收端的反馈信息时,从本地缓存中读取所述数据包,并将其对应的所述标识信息和ID编号重新关联存入所述子数据包列表,并由所述转发单元进行重新转发。
上述实施例中,通过反馈跟踪单元检测在预设时间内是否收到接收端的反馈信息可以对所述子数据包的转发进程进行跟踪,并在所述子数据包转发出现异常时通过缓存单元进行本地缓存,再由所述转发单元实现重新转发,同时利用所述子数据包列表来进行监控,确保所述子数据包转发成功。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (2)

1.一种数据包转发方法,其特征在于,所述方法包括:读取数据包的数据量,并根据用户端的已占用带宽获取用户端传输信道的可用带宽;
当确定所述数据包的数据量大于所述可用带宽时,根据所述可用带宽将所述数据包拆分为N个数据量相等的子数据包,所述N为大于1的自然数;
根据所述子数据包的数据量动态分配所述可用带宽,并在预定时间内通过动态分配后的所述可用带宽转发多个所述子数据包;
其中,所述子数据包的数据量不大于所述可用带宽;
所述根据所述子数据包的数据量动态分配所述可用带宽具体包括:将所述可用带宽与每个所述子数据包的数据量进行比较,当确定所述可用带宽大于或等于每个所述子数据包数据量的N倍时,将所述可用带宽划分为N个子信道,并通过N个子信道并行转发所述子数据包,所述N为大于1的自然数;
当根据所述可用带宽将所述数据包拆分为N个数据量相等的子数据包后,为所有所述子数据包生成标识信息,并将所述标识信息进行ID编号;
在对所述子数据包转发之前,建立子数据包列表,并将所述子数据包对应的标识信息和ID编号一一对应关联存储在所述子数据包列表中,当所述子数据包通过所述可用带宽转发以后,从所述子数据包列表中删除所述子数据包对应的标识信息和ID编号;
所述根据所述子数据包的数据量动态分配所述可用带宽还具体包括:缩小子信道带宽的同时生成剩余带宽,将所述剩余带宽与所述子信道带宽进行比较;
当确定所述剩余带宽大于所述子信道带宽时,将所述剩余带宽按照缩小后的所述子信道带宽重新进行划分,生成至少一个额外子信道;将所述子数据包通过所述子信道和额外子信道并行发送;
所述根据所述子数据包的数据量动态分配所述可用带宽,并在预定时间内通过动态分配后的所述可用带宽转发多个子数据包之后,还包括:
在所述预定时间内获取用户端的平均占用带宽,并将所述平均占用带宽与所述已占用带宽进行比较,当确定所述平均占用带宽大于所述已占用带宽的持续时长大于预设时间阈值,则按照先释放所述额外子信道,再释放所述子信道的顺序释放信道,直到所述平均占用带宽不大于增加后的所述已占用带宽;
所述根据所述子数据包的数据量动态分配所述可用带宽还具体包括:将所述子信道带宽与所述子数据包的数据量进行比较;
当确定所述子信道带宽与所述子数据包的数据量满足预设条件时,缩小所述子信道带宽,且保持所述子数据包的数据量不大于所述子信道带宽;其中,所述预设条件为:所述子信道带宽与所述子数据包的数据量之差与所述子信道带宽的比值大于预设阈值。
2.一种数据包转发装置,其特征在于,包括:
获取单元,用于读取数据包的数据量,并根据用户端的已占用带宽获取用户端传输信道的可用带宽;
拆分单元,用于根据所述可用带宽将所述数据包拆分为N个数据量相等的子数据包,所述子数据包的数据量不大于所述可用带宽,所述N为大于1的自然数;
动态分配单元,用于根据所述子数据包的数据量动态分配所述可用带宽;
转发单元,用于在预定时间内通过动态分配后的所述可用带宽转发多个所述子数据包;
所述动态分配单元包括第一动态分配子单元,用于将所述可用带宽与每个所述子数据包的数据量进行比较,当确定所述可用带宽大于或等于每个所述子数据包数据量的N倍时,将所述可用带宽划分为N个子信道,并由所述转发单元通过N个子信道并行转发所述子数据包,所述N为大于1的自然数;
所述装置还包括标识编码单元,用于当所述拆分单元根据所述可用带宽将所述数据包拆分为N个数据量相等的子数据包后,为所述子数据包生成标识信息,并将所述标识信息进行ID编号;
所述装置还包括数据列表单元,用于在对所述子数据包转发之前,建立子数据包列表,并将所述子数据包对应的标识信息和ID编号一一对应关联存储在所述子数据包列表中,当所述转发单元将子数据包通过所述可用带宽转发以后,从所述子数据包列表中删除所述子数据包对应的标识信息和ID编号;
所述动态分配单元还包括第二动态分配子单元,用于将子信道带宽与所述子数据包的数据量进行比较;
当确定所述子信道带宽与所述子数据包的数据量满足预设条件时,缩小子信道带宽,且保持所述子数据包的数据量不大于所述子信道带宽,其中,所述预设条件为:所述子信道带宽与所述子数据包的数据量之差与所述子信道带宽的比值大于预设阈值;
所述动态分配单元还包括第三动态分配子单元,用于在所述第二动态分配子单元逐步缩小所述子信道带宽的同时生成剩余带宽,将所述剩余带宽与所述子信道带宽进行比较;
当确定所述剩余带宽大于所述子信道带宽时,将所述剩余带宽按照缩小后的所述子信道带宽重新进行划分,生成至少一个额外子信道;并由所述转发单元将所述子数据包通过所述子信道和额外子信道并行发送;
所述装置还包括反馈调节单元,用于在所述转发单元在预定时间内通过动态分配后的所述可用带宽转发多个所述子数据包后,在所述预定时间内,获取用户端的平均占用带宽,并将所述平均占用带宽与所述已占用带宽进行比较,当确定所述平均占用带宽大于所述已占用带宽的持续时长大于预设时间阈值,则按照先释放所述额外子信道,再释放所述子信道的顺序释放信道,以增加所述已占用带宽,直到所述平均占用带宽不大于增加后的所述已占用带宽。
CN201710867415.2A 2017-09-22 2017-09-22 一种数据包转发方法及装置 Active CN107623643B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710867415.2A CN107623643B (zh) 2017-09-22 2017-09-22 一种数据包转发方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710867415.2A CN107623643B (zh) 2017-09-22 2017-09-22 一种数据包转发方法及装置

Publications (2)

Publication Number Publication Date
CN107623643A CN107623643A (zh) 2018-01-23
CN107623643B true CN107623643B (zh) 2021-10-08

Family

ID=61090827

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710867415.2A Active CN107623643B (zh) 2017-09-22 2017-09-22 一种数据包转发方法及装置

Country Status (1)

Country Link
CN (1) CN107623643B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108288996A (zh) * 2018-04-18 2018-07-17 惠州学院 基于无人机拍摄视频高保真远程传送方法、装置、存储介质及电子设备
CN108712348A (zh) * 2018-05-18 2018-10-26 王逸人 流量控制方法、系统、设备及计算机可读存储介质
CN109547356B (zh) * 2018-11-26 2022-02-11 国网冀北电力有限公司唐山供电公司 一种电能计量的数据传输方法、系统、设备及计算机存储介质
CN110996353A (zh) * 2019-10-21 2020-04-10 珠海格力电器股份有限公司 一种无线频宽调整方法、装置、终端及存储介质
CN111565421B (zh) * 2020-04-13 2023-08-18 达闼机器人股份有限公司 确定信号带宽的方法、装置、存储介质及终端和网络设备
CN113467535B (zh) * 2021-02-23 2022-05-31 江苏未来智慧信息科技有限公司 针对火电的循环水泵的控制系统及其方法
CN115002048B (zh) * 2022-05-31 2023-09-12 珠海格力电器股份有限公司 一种数据传输方法、装置、电子设备及存储介质
CN115297062B (zh) * 2022-09-29 2023-01-24 深圳华锐分布式技术股份有限公司 应用层网络数据传输方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101754196A (zh) * 2008-12-11 2010-06-23 杭州华三通信技术有限公司 一种实现wapi认证的方法及系统
CN105553630A (zh) * 2014-10-30 2016-05-04 刘万洪 一种航空飞行参数的多路数据融合方法
CN106102167A (zh) * 2016-06-22 2016-11-09 武汉大学 实时按需数据广播调度自适应信道划分与分配系统及方法
CN106168940A (zh) * 2016-06-22 2016-11-30 中国科学院计算技术研究所 高密度片上网络的路网实现方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7433971B2 (en) * 2001-11-16 2008-10-07 Intel Corporation Interface and related methods for dynamic channelization in an ethernet architecture
CN102377782B (zh) * 2011-10-25 2014-08-20 成都飞机工业(集团)有限责任公司 用于航空遥测系统的多路径数据融合方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101754196A (zh) * 2008-12-11 2010-06-23 杭州华三通信技术有限公司 一种实现wapi认证的方法及系统
CN105553630A (zh) * 2014-10-30 2016-05-04 刘万洪 一种航空飞行参数的多路数据融合方法
CN106102167A (zh) * 2016-06-22 2016-11-09 武汉大学 实时按需数据广播调度自适应信道划分与分配系统及方法
CN106168940A (zh) * 2016-06-22 2016-11-30 中国科学院计算技术研究所 高密度片上网络的路网实现方法及装置

Also Published As

Publication number Publication date
CN107623643A (zh) 2018-01-23

Similar Documents

Publication Publication Date Title
CN107623643B (zh) 一种数据包转发方法及装置
KR102544991B1 (ko) 사용자 장비 및 미디어 스트리밍 네트워크 보조 노드
EP3591941A1 (en) Live video stream guiding method, ccl server and system
CN109600610B (zh) 一种数据编码方法、终端及计算机可读存储介质
US20090319681A1 (en) Dynamic Throttling Based on Network Conditions
US20230060066A1 (en) Data transmission method and apparatus, computer readable medium, and electronic device
US9722889B2 (en) Facilitating high quality network delivery of content over a network
WO2015120766A1 (zh) 一种视频优化系统及方法
CN109996094B (zh) 视频播放方法、装置及系统
US9553826B2 (en) Real-time sharing method, apparatus and system
CN111083536B (zh) 调节视频码率的方法和装置
CN110690988A (zh) 带宽控制方法、带宽控制平台、服务器及存储介质
CN108600728A (zh) 一种数据传输方法及终端、计算机存储介质
CN113687781A (zh) 一种热数据的上拉方法、装置、设备及介质
KR101779791B1 (ko) 읽기 속도에 기반한 정보 전송
CN112672155B (zh) 一种基于共享类型判别的桌面共享方法、装置及存储介质
CN106686635B (zh) 基于无线接入点的控制和配置协议的数据传输方法和装置
KR101017352B1 (ko) 무선 인터넷 환경에서의 스트리밍 콘텐츠 전송 방법
US20150106820A1 (en) Method and apparatus for providing allocating resources
KR102195516B1 (ko) 방송 서비스 제공 장치, 방송 서비스 수신 장치 및 이를 이용한 방송 서비스 송수신 시스템
CN110417902B (zh) 流式网络服务负载方法、相关设备及可读存储介质
US20120307635A1 (en) Wireless optimized content delivery network
US8165055B2 (en) Apparatus and method for transmitting and receiving time stamp to provide multicast service in communication system
JPWO2017018072A1 (ja) 配信レート選択装置、配信レート選択方法、及びプログラム
WO2016106557A1 (zh) 一种用于视频发送的方法与装置

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
GR01 Patent grant
GR01 Patent grant