一种卫星网络的数据包转发方法及装置转让专利

申请号 : CN201610834447.8

文献号 : CN106357476B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李宁邓中亮朱润涛韩可

申请人 : 北京邮电大学

摘要 :

本发明实施例提供了一种卫星网络的数据包转发方法及装置。其中,该方法包括:在当前网络节点接收到待转发数据包的转发请求时,发送第一数据包至当前网络节点的所有相邻网络节点;在第一数据包到达第一相邻网络节点时,获取具有数据的前向探测包,其中,该数据包括:当前网络节点至第一相邻网络节点的当前传播时延、当前网络节点至第一相邻网络节点的当前输出缓冲队列时延及第一相邻网络节点的当前经纬度;根据当前传播时延、当前输出缓冲队列时延及当前经纬度,确定第一相邻网络节点转发待转发数据包的比例,以使第一相邻网络节点按比例转发待转发数据包。通过本方案可以实现实时和准确地反映动态网络的路由信息,提高网络整体吞吐量。

权利要求 :

1.一种卫星网络的数据包转发方法,其特征在于,所述卫星网络的数据包转发方法包括:在当前网络节点接收到待转发数据包的转发请求时,发送第一数据包至所述当前网络节点的所有相邻网络节点,其中,所述第一数据包为预设内存大小的数据包;

在所述第一数据包到达第一相邻网络节点时,获取具有数据的前向探测包,其中,所述第一相邻网络节点为所述当前网络节点的任一相邻网络节点,所述数据至少包括:所述当前网络节点至所述第一相邻网络节点的当前传播时延、所述当前网络节点至所述第一相邻网络节点的当前输出缓冲队列时延及所述第一相邻网络节点的当前经纬度;

根据所述当前传播时延、所述当前输出缓冲队列时延及所述当前经纬度,确定所述第一相邻网络节点转发所述待转发数据包的比例,以使所述第一相邻网络节点按所述比例转发所述待转发数据包。

2.根据权利要求1所述的卫星网络的数据包转发方法,其特征在于,所述发送第一数据包至所述当前网络节点的所有相邻网络节点之前,所述卫星网络的数据包转发方法还包括:获取满足第一预设条件的第一链路的传播时延、满足第二预设条件的所述第一链路的输出缓冲队列时延及满足第三预设条件的所述第一链路的经纬度,其中,所述第一链路为所有链路中的任一链路,所述第一预设条件为卫星网络中所有链路的传播时延相等,所述第二预设条件为所述卫星网络中所有链路的输出缓冲队列时延相等,所述第三预设条件为所述卫星网络中所有网络节点的经纬度相等;

根据所述传播时延、所述输出缓冲队列时延及所述经纬度,确定所有链路中的每条链路的所述第一数据包的预设内存大小。

3.根据权利要求1所述的卫星网络的数据包转发方法,其特征在于,所述确定所述第一相邻网络节点转发所述待转发数据包的比例之后,所述卫星网络的数据包转发方法还包括:存储所述当前传播时延、所述当前输出缓冲队列时延、所述当前经纬度及所述当前网络节点的标识符至所述第一相邻网络节点的数据库表中;

在所述第一相邻网络节点为目的节点时,存储所述前向探测包中的数据至后向探测包,并清除所述前向探测包的数据,以使所述目的节点根据所述目的节点的数据库表中存储的所述标识符、向所述当前网络节点发送所述后向探测包,由所述当前网络节点按所述后向探测包中的数据、计算并转发具有所述比例的数据包。

4.根据权利要求1或3所述的卫星网络的数据包转发方法,其特征在于,所述当前网络节点为所述卫星网络的源节点或中间节点,其中,所述中间节点为所述卫星网络中除所述源节点及目的节点以外的所有可转发所述待转发数据包的网络节点。

5.根据权利要求3所述的卫星网络的数据包转发方法,其特征在于,所述的卫星网络的数据包转发方法还包括:根据所述目的节点的数据库表中存储的所述标识符,确定转发节点及转发链路;

根据所述目的节点的数据库表中存储的所有链路的传播时延、所有链路的输出缓冲队列时延、所有节点的经纬度,通过链路信息确定公式,确定所有链路的链路信息;

根据所有链路中任一链路的链路信息占所有链路的链路信息之和的比例,确定所述任一链路传输所述待转发数据包的概率。

6.根据权利要求1所述的卫星网络的数据包转发方法,其特征在于,所述在所述第一数据包到达第一相邻网络节点时,获取前向探测包,包括:判断所述第一相邻网络节点是否已存在所述前向探测包;

如果是,清除所述前向探测包;

如果否,获取所述当前探测包。

7.根据权利要求1所述的卫星网络的数据包转发方法,其特征在于,所述根据所述当前传播时延、所述当前输出缓冲队列时延及所述当前经纬度,确定所述第一相邻网络节点转发所述待转发数据包的比例,包括:根据所述当前传播时延、所述当前输出缓冲队列时延、所述当前经纬度及预设值,通过链路信息确定公式,确定所述当前网络节点至所述第一相邻网络节点的链路信息;

根据所述链路信息,确定所述链路信息占卫星网路中所有链路的总链路信息的第一比例;

确定所述第一比例为所述第一相邻网络节点转发所述待转发数据包的比例。

8.根据权利要求7所述的卫星网络的数据包转发方法,其特征在于,所述卫星网络的数据包转发方法还包括:在所述第一相邻网络节点拒绝转发所述待转发数据包时,计算并根据所述当前网络节点至第二相邻网络节点的链路信息,确定所述第二相邻网络节点转发所述待转发数据包的比例,其中,所述第二相邻网络节点为所述卫星网路中除所述第一相邻网络节点之外的所有相邻网络节点。

9.根据权利要求7所述的卫星网络的数据包转发方法,其特征在于,所述链路信息确定公式为:τsd=ατsd1+(1-α)τsd2,

其中,所述τsd为所述当前网络节点至所述第一相邻网络节点的链路信息,所述sd为所述当前网络节点到所述第一相邻网络节点的链路,所述α为所述预设值,所述τsd1为所述当前网络节点至所述第一相邻网络节点的时延信息,所述 所述λ为所述第一相邻网络节点的地理位置信息因子,所述pDelayCost为所述当前网络节点至所述第一相邻网络节点的传播时延,所述 所述r1为热点区域的区域中心的经度,所述r2为所述热点区域的区域中心的纬度,所述x为所述第一相邻网络节点的经度,所述y为所述第一相邻网络节点的纬度,所述τsd2为所述当前网络节点至所述第一相邻网络节点的带宽信息,所述 所述qDelayCost为所述当前网络节点至所述第一相邻网络节点的输出缓冲队列时延。

10.一种卫星网络的数据包转发装置,其特征在于,所述卫星网络的数据包转发装置包括:发送模块,用于在当前网络节点接收到待转发数据包的转发请求时,发送第一数据包至所述当前网络节点的所有相邻网络节点,其中,所述第一数据包为预设内存大小的数据包;

第一获取模块,用于在所述第一数据包到达第一相邻网络节点时,获取具有数据的前向探测包,其中,所述第一相邻网络节点为所述当前网络节点的任一相邻网络节点,所述数据至少包括:所述当前网络节点至第一相邻网络节点的当前传播时延、所述当前网络节点至所述第一相邻网络节点的当前输出缓冲队列时延及所述第一相邻网络节点的当前经纬度;

第一确定模块,用于根据所述当前传播时延、所述当前输出缓冲队列时延及所述当前经纬度,确定所述第一相邻网络节点转发所述待转发数据包的比例,以使所述第一相邻网络节点按所述比例转发所述待转发数据包。

说明书 :

一种卫星网络的数据包转发方法及装置

技术领域

[0001] 本发明涉及网络路由技术领域,特别是涉及一种卫星网络的数据包转发方法及装置。

背景技术

[0002] 随着通信卫星的星上处理技术的发展与通信卫星的星上存储能力的提升,卫星通信已经越来越成为全球信息化的重要组成部分。相比于地面通信网络,卫星通信网络具有覆盖面广、多址传输、基本不受地形地物限制、不依赖已有通信设施等优势。然而,卫星也存在网络高动态性和节点处理能力有限的特点,由此带来了网络流量分布不均的问题。而流量分布不均直接造成网络整体吞吐量的降低和业务流量时延过长的后果。
[0003] 随着卫星通信在全球通信网中起着越来越重要的作用,这一问题日益成为制约卫星通信发展的关键问题。在卫星通信中路由选择通常采用传统的狄克斯特拉Dijsktra路由算法,由于该算法路由选择依据过于单一,无法准确刻画卫星网络实时流量分布特征,使得流量数据过于集中在高纬度地区,形成局部链路拥塞;且由于该算法路由选择依据过于单一,导致流量过于集中在热点区域上方的卫星,使得其他链路长时间处于空闲状态,而增加了部分卫星链路的转发时延,从而导致降低了卫星网络整体吞吐量。

发明内容

[0004] 本发明实施例的目的在于提供一种卫星网络的数据包转发方法及装置,以实现实时和准确地反映动态网络的路由信息,提高网络整体吞吐量。具体技术方案如下:
[0005] 第一方面,本发明实施例提供了一种卫星网络的数据包转发方法,所述卫星网络的数据包转发方法包括:
[0006] 在当前网络节点接收到待转发数据包的转发请求时,发送第一数据包至所述当前网络节点的所有相邻网络节点,其中,所述第一数据包为预设内存大小的数据包;
[0007] 在所述第一数据包到达第一相邻网络节点时,获取具有数据的前向探测包,其中,所述第一相邻网络节点为所述当前网络节点的任一相邻网络节点,所述数据至少包括:所述当前网络节点至所述第一相邻网络节点的当前传播时延、所述当前网络节点至所述第一相邻网络节点的当前输出缓冲队列时延及所述第一相邻网络节点的当前经纬度;
[0008] 根据所述当前传播时延、所述当前输出缓冲队列时延及所述当前经纬度,确定所述第一相邻网络节点转发所述待转发数据包的比例,以使所述第一相邻网络节点按所述比例转发所述待转发数据包。
[0009] 可选的,所述发送第一数据包至所述当前网络节点的所有相邻网络节点之前,所述卫星网络的数据包转发方法还包括:
[0010] 获取满足第一预设条件的第一链路的传播时延、满足第二预设条件的所述第一链路的输出缓冲队列时延及满足第三预设条件的所述第一链路的经纬度,其中,所述第一链路为所有链路中的任一链路,所述第一预设条件为卫星网络中所有链路的传播时延相等,所述第二预设条件为所述卫星网络中所有链路的输出缓冲队列时延相等,所述第三预设条件为所述卫星网络中所有网络节点的经纬度相等;
[0011] 根据所述传播时延、所述输出缓冲队列时延及所述经纬度,确定所有链路中的每条链路的所述第一数据包的预设内存大小。
[0012] 可选的,所述确定所述第一相邻网络节点转发所述待转发数据包的比例之后,所述卫星网络的数据包转发方法还包括:
[0013] 存储所述当前传播时延、所述当前输出缓冲队列时延、所述当前经纬度及所述当前网络节点的标识符至所述第一相邻网络节点的数据库表中;
[0014] 在所述第一相邻网络节点为目的节点时,存储所述前向探测包中的数据至后向探测包,并清除所述前向探测包的数据,以使所述目的节点根据所述目的节点的数据库表中存储的所述标识符、向所述当前网络节点发送所述后向探测包,由所述当前网络节点按所述后向探测包中的数据、计算并转发具有所述比例的数据包。
[0015] 可选的,所述当前网络节点为所述卫星网络的源节点或中间节点,其中,所述中间节点为所述卫星网络中除所述源节点及所述目的节点以外的所有可转发所述待转发数据包的网络节点。
[0016] 可选的,所述的卫星网络的数据包转发方法还包括:
[0017] 根据所述目的节点的数据库表中存储的所述标识符,确定转发节点及转发链路;
[0018] 根据所述目的节点的数据库表中存储的所有链路的传播时延、所有链路的输出缓冲队列时延、所有节点的经纬度,通过链路信息确定公式,确定所有链路的链路信息;
[0019] 根据所有链路中任一链路的链路信息占所有链路的链路信息之和的比例,确定所述任一链路传输所述待转发数据包的概率。
[0020] 可选的,所述在所述第一数据包到达第一相邻网络节点时,获取前向探测包,包括:
[0021] 判断所述第一相邻网络节点是否已存在所述前向探测包;
[0022] 如果是,清除所述前向探测包;
[0023] 如果否,获取所述当前探测包。
[0024] 可选的,所述根据所述当前传播时延、所述当前输出缓冲队列时延及所述当前经纬度,确定所述第一相邻网络节点转发所述待转发数据包的比例,包括:
[0025] 根据所述当前传播时延、所述当前输出缓冲队列时延、所述当前经纬度及预设值,通过链路信息确定公式,确定所述当前网络节点至所述第一相邻网络节点的链路信息;
[0026] 根据所述链路信息,确定所述链路信息占卫星网路中所有链路的总链路信息的第一比例;
[0027] 确定所述第一比例为所述第一相邻网络节点转发所述待转发数据包的比例。
[0028] 可选的,所述卫星网络的数据包转发方法还包括:
[0029] 在所述第一相邻网络节点拒绝转发所述待转发数据包时,根据所述当前网络节点至第二相邻网络节点的链路信息,确定所述第二相邻网络节点转发所述待转发数据包的比例,其中,所述第二相邻网络节点为所述卫星网路中除所述第一相邻网络节点之外的所有相邻网络节点。
[0030] 可选的,所述链路信息确定公式为:
[0031] τsd=ατsd1+(1-α)τsd2,
[0032] 其中,所述τsd为所述当前网络节点至所述第一相邻网络节点的链路信息,所述sd为所述当前网络节点到所述第一相邻网络节点的链路,所述α为所述预设值,所述τsd1为所述当前网络节点至所述第一相邻网络节点的时延信息,所述所述λ为所述第一相邻网络节点的地理位置信息因子,所述pDelayCost为所述当前网络节点至所述第一相邻网络节点的传播时延,所述 所述r1为热点区
域的区域中心的经度,所述r2为所述热点区域的区域中心的纬度,所述x为所述第一相邻网络节点的经度,所述y为所述第一相邻网络节点的纬度,所述τsd2为所述当前网络节点至所述第一相邻网络节点的带宽信息,所述 所述qDelayCost为所
述当前网络节点至所述第一相邻网络节点的输出缓冲队列时延。
[0033] 第二方面,本发明实施例还提供了一种卫星网络的数据包转发装置,所述卫星网络的数据包转发装置包括:
[0034] 发送模块,用于在当前网络节点接收到待转发数据包的转发请求时,发送第一数据包至所述当前网络节点的所有相邻网络节点,其中,所述第一数据包为预设内存大小的数据包;
[0035] 第一获取模块,用于在所述第一数据包到达第一相邻网络节点时,获取具有数据的前向探测包,其中,所述第一相邻网络节点为所述当前网络节点的任一相邻网络节点,所述数据至少包括:所述当前网络节点至第一相邻网络节点的当前传播时延、所述当前网络节点至所述第一相邻网络节点的当前输出缓冲队列时延及所述第一相邻网络节点的当前经纬度;
[0036] 第一确定模块,用于根据所述当前传播时延、所述当前输出缓冲队列时延及所述当前经纬度,确定所述第一相邻网络节点转发所述待转发数据包的比例,以使所述第一相邻网络节点按所述比例转发所述待转发数据包。
[0037] 本发明实施例提供的卫星网络的数据包转发方法及装置,当前网络节点通过向相邻网络节点发送前向探测包,采集得到链路中实时传播时延、输出缓冲队列时延和网络节点的经纬度,并通过链路信息确定公式得到每一条链路的链路信息,并根据链路信息确定每一条链路传输数据包的比例,使得在网络拓扑结构频繁变换、网络节点间链路无法保持连通的情况下,为不同类型信息计算不同的链路信息,可以实时和准确地反映动态网络的路由信息及网络整体负载状态,提高网络整体吞吐量;同时在数据包转发的过程中,通过确定转发数据包的比例,有效的利用了卫星网络的所有网络节点资源,从而提高了卫星网络的整体利用率。

附图说明

[0038] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039] 图1为本发明实施例的卫星网络的数据包转发方法的一种流程示意图;
[0040] 图2为本发明实施例的卫星网络的数据包转发方法的另一种流程示意图;
[0041] 图3为本发明实施例的卫星网络的数据包转发方法的再一种流程示意图;
[0042] 图4为本发明实施例的卫星网络的数据包转发装置的一种结构示意图;
[0043] 图5为本发明实施例的卫星网络的数据包转发装置的另一种结构示意图;
[0044] 图6为本发明实施例的卫星网络的数据包转发装置的再一种结构示意图。

具体实施方式

[0045] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046] 为了提高卫星网络的整体吞吐量,本发明实施例提供了一种卫星网络的数据包转发方法及装置。
[0047] 下面首先对本发明实施例所提供的卫星网络的数据包转发方法进行介绍。
[0048] 需要说明的是,本发明实施例所提供的一种卫星网络的数据包转发方法的执行主体可以为卫星网络中的数据包转发控制器,也可以为卫星网络中的网络节点。
[0049] 如图1所示,本发明实施例所提供的一种卫星网络的数据包转发方法,可以包括如下步骤:
[0050] S101,在当前网络节点接收到待转发数据包的转发请求时,发送第一数据包至当前网络节点的所有相邻网络节点。
[0051] 其中,第一数据包为预设内存大小的数据包;当前网络节点可以为卫星网络的源节点,也可以为卫星网络中除源节点和目的节点以外的所有可转发待转发数据包的中间节点,这都是合理的。
[0052] 需要说明的是,第一数据包可以为数据包转发控制器或网络节点发送的预设内存大小的数据包,也可以是数据包转发控制器或网络节点根据待转发数据包的内存大小、按比例分配得到的数据包,这都是合理的。
[0053] 并且,可以理解的是,为了保证数据包转发的可靠性,避免时延已经很大的链路继续以较高的概率转发数据包,发送第一数据包以使后续步骤中探测链路的实际时延信息、实际带宽信息及相邻节点的实际经纬度。
[0054] S102,在第一数据包到达第一相邻网络节点时,获取具有数据的前向探测包。
[0055] 其中,第一相邻网络节点为当前网络节点的任一相邻网络节点,上述数据至少包括:当前网络节点至第一相邻网络节点的当前传播时延、当前网络节点至第一相邻网络节点的当前输出缓冲队列时延及第一相邻网络节点的当前经纬度。
[0056] 需要说明的是,为了实现卫星网络流量管理的负载均衡,针对不同流量类型的设定以及不同类型的不同网络节点需求,将刻画链路状态的信息分成两个部分,分别为时延信息和带宽信息;时延信息用于描述流量在卫星网络节点之间传输所用的时间,通过当前传播时延进行度量;带宽信息则通过输出缓冲队列时延进行度量。链路的时延越大,说明该链路越不适合作为传输链路;并且,由于全球人口分布的不均匀性和地区发展的不平衡性,会形成局部热点区域和非热点区域,为热点区域提供服务的卫星将承载更多的通信任务,因此,引入地理位置信息因子用于描述网络节点的地理位置,通过网络节点的经纬度进行度量。
[0057] 需要强调的是,在发送第一数据包至第一相邻网络节点之前,前向探测包中是没有数据的;在第一数据包发送至第一相邻网络节点的过程中,实时采集当前网络节点至第一相邻网络节点的当前传播时延及当前网络节点至第一相邻网络节点的当前输出缓冲队列时延,并存储至前向探测包中,并在第一数据包到达第一相邻网络节点时,采集第一相邻网络节点的经纬度,并存储至前向探测包中。
[0058] S103,根据当前传播时延、当前输出缓冲队列时延及当前经纬度,确定第一相邻网络节点转发待转发数据包的比例,以使第一相邻网络节点按该比例转发待转发数据包。
[0059] 其中,转发待转发数据包的比例可以是当前网络节点至第一相邻网络节点的链路信息占当前网络节点至所有相邻网络节点的链路信息之和的百分比,也可以是数据包转发控制器或者网络节点中预先设置的链路信息对应的转发比例。
[0060] 需要说明的是,根据当前传播时延、当前输出缓冲队列时延及当前经纬度,通过计算得到链路信息,根据链路信息的大小确定相邻网络节点作为下一跳节点,链路信息越大,该相邻网络节点作为下一跳节点转发待转发数据包的比例就越大。
[0061] 应用本发明实施例,当前网络节点通过向相邻网络节点发送前向探测包,采集得到链路中实时传播时延、输出缓冲队列时延和网络节点的经纬度,并通过链路信息确定公式得到每一条链路的链路信息,并根据链路信息确定每一条链路传输数据包的比例,使得在网络拓扑结构频繁变换、网络节点间链路无法保持连通的情况下,为不同类型信息计算不同的链路信息,可以实时和准确地反映动态网络的路由信息及网络整体负载状态,提高网络整体吞吐量;同时在数据包转发的过程中,通过确定转发数据包的比例,有效的利用了卫星网络的所有网络节点资源,从而提高了卫星网络的整体利用率。
[0062] 如图2所示,本发明实施例所提供的一种卫星网络的数据包转发方法,在发送第一数据包至当前网络节点的所有相邻网络节点之前,还可以包括如下步骤:
[0063] S201,获取满足第一预设条件的第一链路的传播时延、满足第二预设条件的第一链路的输出缓冲队列时延及满足第三预设条件的第一链路的经纬度。
[0064] 其中,第一链路为所有链路中的任一链路,第一预设条件为卫星网络中所有链路的传播时延相等,第二预设条件为卫星网络中所有链路的输出缓冲队列时延相等,第三预设条件为卫星网络中所有网络节点的经纬度相等。
[0065] 需要说明的是,在转发待转发数据包之前,为了保证采集的实时时延信息、带宽信息及经纬度为准确、可靠的,确保初次选择转发链路不受正反馈效应的影响,需对卫星网络的网络节点进行初始化设定,即设定所有链路的信息量均相等。
[0066] S202,根据传播时延、输出缓冲队列时延及经纬度,确定所有链路中的每条链路的第一数据包的预设内存大小。
[0067] 需要说明的是,由于所有的传播时延均相等,所有的输出缓冲队列时延均相等,所有的节点经纬度均相等,通过链路信息确定公式计算得到的所有链路信息也均相等,则所有链路中每条链路的第一数据包的预设内存大小也均相等。
[0068] 其中,第一数据包的预设内存大小,可以是数据包转发控制器或网络节点发送的内存大小相等的多个第一数据包,也可以是数据包转发控制器或网络节点根据待转发数据包的大小平均分配内存大小得到的多个第一数据包。
[0069] 应用本实施例,通过对卫星网络的网络节点进行初始化设定,即设定所有链路的信息量均相等,确保初次选择转发链路不受正反馈效应的影响。
[0070] 如图3所示,本发明实施例所提供的一种卫星网络的数据包转发方法,在确定第一相邻网络节点转发待转发数据包的比例之后,还可以包括如下步骤:
[0071] S104,存储当前传播时延、当前输出缓冲队列时延、当前经纬度及当前网络节点的标识符至第一相邻网络节点的数据库表中。
[0072] 其中,当前网络节点的标识符,可以是当前网络节点的IP(Internet Protocol,互联网协议)地址,也可以是当前网络节点的名称,还可以是数据包转发控制器或网络节点给当前网络节点分配的标识编号,这都是合理的。
[0073] 需要说明的是,在前向探测包到达目的节点时,需要反馈数据包转发的链路及转发比例至源节点,由于每个网络节点在向相邻网络节点发送前向探测包时,前向探测包的内容为空,只有在到达相邻网络节点时才会存储当前传播时延、当前输出缓冲队列时延及当前经纬度。因此,在前向探测包到达相邻网络节点时,将前向探测包存储的当前传播时延、当前输出缓冲队列时延及当前经纬度存储至数据库表中,并存储当前网络节点的标识符,便于链路信息的计算及转发网络节点的确定。
[0074] S105,在第一相邻网络节点为目的节点时,存储前向探测包中的数据至后向探测包,并清除前向探测包的数据,以使目的节点根据该目的节点的数据库表中存储的标识符、向当前网络节点发送后向探测包,由所述当前网络节点按所述后向探测包中的数据、计算并转发具有所述比例的数据包。
[0075] 需要说明的是,标识符所对应的当前网络节点根据得到的反向探测包中存储的当前传播时延、当前输出缓冲队列时延及当前经纬度,通过链路信息确定公式计算链路信息,从而确定转发待转发数据包的比例;该比例可以是后向探测包到达当前网络节点后、根据后向探测包中存储的数据计算得到,也可以是在发送后向探测包至当前网络节点之前计算得到。
[0076] 需要强调的是,后向探测包按前向探测包转发的链路路径直至回传至源节点。
[0077] 应用本实施例,在前向探测包到达目的节点时,根据标识符向所对应的当前网络节点发送反向探测包,并根据反向探测包中存储的当前传播时延、当前输出缓冲队列时延及当前经纬度,计算链路信息,从而确定转发待转发数据包的比例。
[0078] 可选的,在一种具体实现方式中,为了确定卫星网络中任一条链路转发待转发数据包的概率,本发明实施例的一种卫星网络的数据包转发方法还可以包括:
[0079] 首先,根据目的节点的数据库表中存储的标识符,确定转发节点及转发链路。
[0080] 需要说明的是,目的节点的数据库表中存储的标识符,对应着卫星网络中的各转发节点的IP地址和/或名称,并且根据转发节点的IP地址和/或名称,可以确定各转发节点相连形成的转发链路。
[0081] 其次,根据目的节点的数据库表中存储的所有链路的传播时延、所有链路的输出缓冲队列时延、所有节点的经纬度,通过链路信息确定公式,确定所有链路的链路信息。
[0082] 最后,根据所有链路中任一链路的链路信息占所有链路的链路信息之和的比例,确定任一链路传输待转发数据包的概率。
[0083] 需要说明的是,所有链路中任一链路的链路信息与所有链路的链路信息之和作商,将作商后得到的比例值确定为任一链路传输待转发数据包的概率。
[0084] 需要说明的是,目的节点的数据库表中存储了卫星网络中所有转发节点的标识符,根据标识符可以确定待转发数据包的转发链路,并且通过根据所有链路的传播时延、所有链路的输出缓冲队列时延及所有节点的经纬度,计算得到所有链路的链路信息,可确定每一条链路转发待转发数据包的概率,可通过该概率分配数据包比例。
[0085] 可选的,在一种具体实现方式中,为了避免出现前向探测包产生环路的情况,所述在第一数据包到达第一相邻网络节点时,获取前向探测包的步骤,可以包括:
[0086] 判断第一相邻网络节点是否已存在该前向探测包;如果是,清除该前向探测包;如果否,获取该当前探测包。
[0087] 需要说明的是,前向探测包每经过一个网络节点,需判断该网络节点是否已存在该前向探测包,如果已经存在该前向探测包,说明该前向探测包产生了环路,则需清除该前向探测包。
[0088] 可选的,在一种具体实现方式中,所述根据当前传播时延、当前输出缓冲队列时延及当前经纬度,确定第一相邻网络节点转发待转发数据包的比例,包括:
[0089] 首先,根据当前传播时延、当前输出缓冲队列时延、当前经纬度及预设值,通过链路信息确定公式,确定当前网络节点至第一相邻网络节点的链路信息;
[0090] 其次,根据链路信息,确定链路信息占卫星网路中所有链路的总链路信息的第一比例;
[0091] 最后,确定第一比例为第一相邻网络节点转发待转发数据包的比例。
[0092] 需要说明的是,为了方便确定相邻网络节点作为下一跳网络节点的转发数据包的比例,将采集得到的当前传播时延、当前输出缓冲队列时延及当前经纬度,通过计算得到链路信息,通过链路信息的大小决定相邻网络节点作为下一跳网络节点的比例。
[0093] 可选的,在一种具体实现方式中,为了在相邻网络节点拒绝转发待转发数据包时,选择次优的方案进行待转发数据包的转发,本发明实施例的一种卫星网络的数据包转发方法还可以包括:
[0094] 在第一相邻网络节点拒绝转发待转发数据包时,根据当前网络节点至第二相邻网络节点的链路信息,确定第二相邻网络节点转发待转发数据包的比例。
[0095] 其中,第二相邻网络节点为卫星网路中除第一相邻网络节点之外的所有相邻网络节点。
[0096] 需要说明的是,本实施例包括但不限于以下两种情况:第一种情况,已确定第一相邻网络节点转发待转发数据包的比例,但是在该第一相邻网络节点拒绝转发时,根据本发明的卫星网络的数据包转发方法重新确定除第一相邻网络节点以外的所有相邻网络节点的转发待转发数据包的比例;第二种情况,在确定第一相邻网络节点转发待转发数据包的比例之前,已确定该第一相邻网络节点拒绝转发待转发数据包,则根据本发明的卫星网络的数据包转发方法直接确定除第一相邻网络节点以外的所有相邻网络节点的转发待转发数据包的比例。
[0097] 可选的,在一种具体实现方式中,所述链路信息确定公式为:
[0098] τsd=ατsd1+(1-α)τsd2,
[0099] 其中,τsd为当前网络节点至第一相邻网络节点的链路信息,sd为当前网络节点到第一相邻网络节点的链路,α为预设值,τsd1为当前网络节点至第一相邻网络节点的时延信息, λ为第一相邻网络节点的地理位置信息因子,pDelayCost为当前网络节点至第一相邻网络节点的传播时延,
r1为热点区域的区域中心的经度,r2为热点区域的区域中心的纬度,x为第一相邻网络节点的经度,y为第一相邻网络节点的纬度,τsd2为当前网络节点至第一相邻网络节点的带宽信息, qDelayCost为当前网络节点至第一相邻网络节点的输出
缓冲队列时延。
[0100] 下面结合具体的应用实例,对本发明实施例所提供的卫星网络的数据包转发方法进行介绍。
[0101] 对卫星网络进行初始化设定,即预先设定卫星网络中所有链路的传播时延为100ms、所有链路的输出缓冲队列时延为150ms及所有网络节点的经纬度为(120,160),将该三个参数赋给所有链路及所有网络节点。由于所有链路的传播时延均相等、所有链路的输出缓冲队列时延均相等,且所有网络节点的经纬度均相等,则数据包转发控制器控制源节点向所有相邻网络节点发送内存大小相等的第一数据包,第一数据包的内存大小为20MB,假设源节点有三个相邻网络节点。
[0102] 在第一数据包到达源节点的所有相邻网络节点时,采集得到源节点至相邻网络节点A的传播时延为50ms、源节点至相邻网络节点A的输出缓冲队列时延为120ms、相邻网络节点A的经纬度为(100,90),采集得到源节点至相邻网络节点B的传播时延为80ms、源节点至相邻网络节点B的输出缓冲队列时延为100ms、相邻网络节点B的经纬度为(120,100),采集得到源节点至相邻网络节点C的传播时延为120ms、源节点至相邻网络节点C的输出缓冲队列时延为70ms、相邻网络节点C的经纬度为(100,100)。
[0103] 将上述所有参数带入以下链路信息确定公式:
[0104] τsd=ατsd1+(1-α)τsd2,
[0105] 其中,τsd为当前网络节点至第一相邻网络节点的链路信息,sd为当前网络节点到第一相邻网络节点的链路,α为预设值,τsd1为当前网络节点至第一相邻网络节点的时延信息, λ为第一相邻网络节点的地理位置信息因子,pDelayCost为当前网络节点至第一相邻网络节点的传播时延,
r1为热点区域的区域中心的经度,r2为热点区域的区域中心的纬度,x为第一相邻网络节点的经度,y为第一相邻网络节点的纬度,τsd2为当前网络节点至第一相邻网络节点的带宽信息, qDelayCost为当前网络节点至第一相邻网络节点的输出
缓冲队列时延。
[0106] 设定预设值α为0.7,假设热点区域的区域中心的经纬度为(100,85),计算得到源节点至相邻网络节点A的链路信息为2.951,源节点至相邻网络节点B的链路信息为2.199,源节点至相邻网络节点C的链路信息为2.548。待转发数据包的内存大小为50MB,则相邻网络节点A转发待转发数据包的比例为38.3%,即相邻网络节点A转发数据包的大小为19.17MB;相邻网络节点B转发待转发数据包的比例为28.6%,即相邻网络节点B转发数据包的大小为14.28MB;相邻网络节点C转发待转发数据包的比例为33.1%,即相邻网络节点C转发数据包的大小为16.55MB。
[0107] 按照以上方法依次对待转发数据包进行转发直至目的节点。
[0108] 与现有技术相比,本方案中,通过发送预设内存大小的第一数据包,保证数据包转发的可靠性,避免出现时延已经很大的链路继续以较高的概率转发数据包;并通过链路时延、带宽信息和网络节点的经纬度,为不同类型信息计算不同的链路信息,实现卫星网络流量管理的负载均衡,且实时和准确地反映动态网络的路由信息,提高网络整体吞吐量。
[0109] 相应于上述方法实施例,本发明实施例提供了一种卫星网络的数据包转发装置,如图4所述,所述装置可以包括:
[0110] 发送模块410,用于在当前网络节点接收到待转发数据包的转发请求时,发送第一数据包至所述当前网络节点的所有相邻网络节点,其中,所述第一数据包为预设内存大小的数据包;
[0111] 第一获取模块420,用于在所述第一数据包到达第一相邻网络节点时,获取具有数据的前向探测包,其中,所述第一相邻网络节点为所述当前网络节点的任一相邻网络节点,所述数据至少包括:所述当前网络节点至第一相邻网络节点的当前传播时延、所述当前网络节点至所述第一相邻网络节点的当前输出缓冲队列时延及所述第一相邻网络节点的当前经纬度;
[0112] 第一确定模块430,用于根据所述当前传播时延、所述当前输出缓冲队列时延及所述当前经纬度,确定所述第一相邻网络节点转发所述待转发数据包的比例,以使所述第一相邻网络节点按所述比例转发所述待转发数据包。
[0113] 应用本发明实施例,当前网络节点通过向相邻网络节点发送前向探测包,采集得到链路中实时传播时延、输出缓冲队列时延和网络节点的经纬度,并通过链路信息确定公式得到每一条链路的链路信息,并根据链路信息确定每一条链路传输数据包的比例,使得在网络拓扑结构频繁变换、网络节点间链路无法保持连通的情况下,为不同类型信息计算不同的链路信息,可以实时和准确地反映动态网络的路由信息及网络整体负载状态,提高网络整体吞吐量;同时在数据包转发的过程中,通过确定转发数据包的比例,有效的利用了卫星网络的所有网络节点资源,从而提高了卫星网络的整体利用率。
[0114] 更进一步的,在包含发送模块410、第一获取模块420、第一确定模块430的基础上,如图5所示,本发明实施例所提供的一种卫星网络的数据包转发装置还可以包括:
[0115] 第二获取模块440,用于获取满足第一预设条件的第一链路的传播时延、满足第二预设条件的所述第一链路的输出缓冲队列时延及满足第三预设条件的所述第一链路的经纬度,其中,所述第一链路为所有链路中的任一链路,所述第一预设条件为卫星网络中所有链路的传播时延相等,所述第二预设条件为所述卫星网络中所有链路的输出缓冲队列时延相等,所述第三预设条件为所述卫星网络中所有网络节点的经纬度相等;
[0116] 第二确定模块450,用于根据所述传播时延、所述输出缓冲队列时延及所述经纬度,确定所有链路中的每条链路的所述第一数据包的预设内存大小。
[0117] 应用本实施例,通过对卫星网络的网络节点进行初始化设定,即设定所有链路的信息量均相等,确保初次选择转发链路不受正反馈效应的影响。
[0118] 更进一步的,在包含发送模块410、第一获取模块420、第一确定模块430的基础上,如图6所示,本发明实施例所提供的一种卫星网络的数据包转发装置还可以包括:
[0119] 第一存储模块460,用于存储所述当前传播时延、所述当前输出缓冲队列时延、所述当前经纬度及所述当前网络节点的标识符至所述第一相邻网络节点的数据库表中;
[0120] 第二存储模块470,用于在所述第一相邻网络节点为目的节点时,存储所述前向探测包中的数据至后向探测包,并清除所述前向探测包的数据,以使所述目的节点根据所述目的节点的数据库表中存储的所述标识符、向所述当前网络节点发送所述后向探测包,由所述当前网络节点按所述后向探测包中的数据、计算并转发具有所述比例的数据包。
[0121] 应用本实施例,在前向探测包到达目的节点时,根据标识符向所对应的当前网络节点发送反向探测包,并根据反向探测包中存储的当前传播时延、当前输出缓冲队列时延及当前经纬度,计算链路信息,从而确定转发待转发数据包的比例。
[0122] 可选的,本发明实施例的一种卫星网络的数据包转发装置,所述当前网络节点为所述卫星网络的源节点或中间节点,其中,所述中间节点为所述卫星网络中除所述源节点及所述目的节点以外的所有可转发所述待转发数据包的网络节点。
[0123] 可选的,为了确定卫星网络中任一条链路转发待转发数据包的概率,本发明实施例的一种卫星网络的数据包转发装置还可以包括:
[0124] 第三确定模块,用于根据所述目的节点的数据库表中存储的所述标识符,确定转发节点及转发链路;
[0125] 第四确定模块,用于根据所述目的节点的数据库表中存储的所有链路的传播时延、所有链路的输出缓冲队列时延、所有节点的经纬度,通过链路信息确定公式,确定所有链路的链路信息;
[0126] 第五确定模块,用于根据所有链路中任一链路的链路信息占所有链路的链路信息之和的比例,确定所述任一链路传输所述待转发数据包的概率。
[0127] 可选的,所述第一获取模块420,可以包括:
[0128] 判断子模块,用于判断所述第一相邻网络节点是否已存在所述前向探测包;
[0129] 清除子模块,用于判断子模块的结果为是时,清除所述前向探测包;
[0130] 第一获取子模块,用于判断子模块的结果为否时,获取所述当前探测包。
[0131] 可选的,所述第一确定模块430,可以包括:
[0132] 第一确定子模块,用于根据所述当前传播时延、所述当前输出缓冲队列时延、所述当前经纬度及预设值,通过链路信息确定公式,确定所述当前网络节点至所述第一相邻网络节点的链路信息;
[0133] 第二确定子模块,用于根据所述链路信息,确定所述链路信息占卫星网路中所有链路的总链路信息的第一比例;
[0134] 第三确定子模块,用于确定所述第一比例为所述第一相邻网络节点转发所述待转发数据包的比例。
[0135] 可选的,为了在相邻网络节点拒绝转发待转发数据包时,选择次优的方案进行待转发数据包的转发,本发明实施例的一种卫星网络的数据包转发装置还可以包括:
[0136] 第六确定模块,用于在所述第一相邻网络节点拒绝转发所述待转发数据包时,根据所述当前网络节点至第二相邻网络节点的链路信息,确定所述第二相邻网络节点转发所述待转发数据包的比例,其中,所述第二相邻网络节点为所述卫星网路中除所述第一相邻网络节点之外的所有相邻网络节点。
[0137] 可选的,第一确定模块430,所述链路信息确定公式为:
[0138] τsd=ατsd1+(1-α)τsd2,
[0139] 其中,所述τsd为所述当前网络节点至所述第一相邻网络节点的链路信息,所述sd为所述当前网络节点到所述第一相邻网络节点的链路,所述α为所述预设值,所述τsd1为所述当前网络节点至所述第一相邻网络节点的时延信息,所述所述λ为所述第一相邻网络节点的地理位置信息因子,所述pDelayCost为所述当前网络节点至所述第一相邻网络节点的传播时延,所述 所述r1为热点区
域的区域中心的经度,所述r2为所述热点区域的区域中心的纬度,所述x为所述第一相邻网络节点的经度,所述y为所述第一相邻网络节点的纬度,所述τsd2为所述当前网络节点至所述第一相邻网络节点的带宽信息,所述 所述qDelayCost为所
述当前网络节点至所述第一相邻网络节点的输出缓冲队列时延。
[0140] 可以理解的是,本发明实施例的另一实施例中,文件切片上传装置可以同时包括:发送模块410、第一获取模块420、第一确定模块430、第二获取模块440、第二确定模块450、第一存储模块460、第二存储模块470、第三确定模块、第四确定模块、第五确定模块和第六确定模块。
[0141] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0142] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0143] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。