具体实施方式
在一个实施例中,如图1所示,一种路由方法,该方法的运行可依赖于计算机程序,该计算机程序可运行于基于冯诺依曼体系的计算机系统之上。
如图2和图3所示,图2和图3分别展示了可运行上述路由方法的路由系统的应用场景实例。
在图2展示的网络拓扑结构中,加速节点10与路由计算节点20和路由分发节点30连接,路由计算节点20可与一个或一个以上的路由分发节点30连接,业务节点40可与部分或全部加速节点10连接。加速节点10基于具有路由功能的网络设备或具有路由功能的计算机系统,业务节点40可以是应用服务器或存储服务器,可对业务数据进行相应的处理。
在图3中,调度节点50实现了路由计算节点20和路由分发节点30的全部功能,可视为路由计算节点20和路由分发节点30构成的子系统。也就是说,路由计算节点20和路由分发节点30可基于同一服务器实体或同一服务器集群实体。
在本实施例中,该方法包括:
步骤S102,路由计算节点接收加速节点上传的其与其他加速节点或业务节点之间的网络质量参数,根据所述网络质量参数生成路由信息。
如图2所示,路由计算节点可定时向与其连接的所有加速节点发送网络质量参数探测指令,某个加速节点接收到该网络质量参数探测指令后,即可向所有加速节点以及业务节点发起ping指令(加速节点之间会互相发送ping指令,业务节点只会接收到加速节点发送的ping指令),并根据ping指令得到该加速节点与其他加速节点之间的以及与业务节点之间的网络质量参数,例如延时和丢包率等参数,然后将其上传路由计算节点。
图2所示的路由系统中的路由加速节点可接收所有加速节点各自上传的其与其他加速节点之间以及与业务节点之间的网络质量参数,并根据该网络质量参数生成路由信息。在本实施例中,路由计算节点可每隔10分钟向与其连接的所有加速节点发送网络质量参数探测指令,即路由计算节点可每隔10分钟根据探测到的网络质量参数重新计算路由信息。
在本实施例中,路由计算节点根据网络质量参数生成路由信息的步骤包括:
在加速节点中选取起始节点,在业务节点中遍历选取目标节点,根据网络质量参数在加速节点中选取连接起始节点和目标节点的中间跳节点,并生成由起始节点经由中间跳节点转发至所述目标节点的路由信息。
在本实施例中,可遍历加速节点,将每个遍历到的加速节点作为起始节点,同时遍历业务节点,将每个遍历到的业务节点作为目标节点,则每个起始节点到每个目标节点之间的链路的条数即为起始节点的个数与目标节点的个数的乘积。
如表1所示,表1展示了根据网络质量参数在加速节点中选取了起始节点和目标节点之间的中间跳节点后生成的与起始节点和目标节点对应的路由信息。
表1
起始节点 |
目标节点 |
路由信息 |
S1 |
D1 |
S1-S2-S3-D1 |
S1 |
D2 |
S1-S3-S4-D2 |
S1 |
D3 |
S1-S2-S4-D3 |
S2 |
D1 |
S2-S1-D1 |
…… |
…… |
…… |
S4 |
D3 |
S4-D3 |
需要说明的是,表1仅用于展示路由信息中包含的起始节点与目标节点之间中间跳节点的节点信息以及由起始节点通过中间跳节点转发业务数据至目标节点的转发顺序信息,实际产品中并不需要与表1完全相同的数据表或映射表。
例如,如表1所示,路由信息S1-S2-S3-D1中,S1即为起始节点的节点标识、D1即为目标节点的节点标识、S2和S3即为根据网络质量参数选取的在S1和D1之间转发业务数据的中间跳节点的节点标识。需要说明的是,起始节点、目标节点和中间跳节点的节点标识可以是单一的网络地址,也可以是对应多个网络地址的标识信息。在一个实施例中,节点标识可以是C段IP地址,例如,192.168.1.x,即表示192.168.1.0至192.168.1.255之间的所有IP地址。在另一个实施例中,节点标识可以是字符串标识,而预设的地址服务器上可存储该字符串标识对应的网络地址的集合,可通过该地址服务器查询节点标识对应的网络地址的集合。
如图4所示,若路由系统中预先设置有M个加速节点,而业务节点有N个,则需要生成M×N条由起始节点到目标节点的路由信息。也就是说,可生成每个起始节点到每个目标节点的路由信息。
在其他实施例中,也可在加速节点中选取部分加速节点作为起始节点。也就是说,预先设置的加速节点中,可设置部分加速节点在拓扑结构上直接与业务节点或用户终端直接连接,接收其上传的业务数据,而设置另一部分加速节点在拓扑结构上仅与加速节点连接作为中间跳节点。需要说明的是,若选取的起始节点的个数为O,而业务节点的个数为P,则仍然需要生成O×P条由起始节点到目标节点的路由信息。
在本实施例中,如前所述,网络质量参数可包括延时和/或丢包率。根据网络质量参数生成路由信息的步骤还包括:获取加速节点对应的额定负载信息和/或带宽信息;根据加速节点与其他加速节点或业务节点之间的延时和/或丢包率以及加速节点对应的额定负载信息和/或带宽信息生成路由信息。
加速节点的额定负载信息和带宽信息可在设置该加速节点时写入配置文件或配置服务器中,路由计算节点可通过读取配置文件或访问配置服务器进行获取。也就是说,可以探测到的加速节点与其他加速节点或业务节点之间的延时和丢包率以及加速节点本身的额定负载信息和带宽信息作为参考向量在加速节点中选取中间跳节点。
在本实施例中,可通过将网络质量参数与阈值比对从而对加速节点进行过滤的方式和通过对网络质量参数进行加权比较的方式选取中间跳节点。
例如,若如果发现加速节点A到到加速节点B之间的丢包率或者延时超过阈值,则加速节点B不会出现在加速节点A到目标节点的链路中(即加速节点B被过滤掉);若两个加速节点之间的丢包率或者延时低于阈值,则根据不同等级赋予两个加速节点之间的链路不同的加权值,丢包率越低,延时越小,则赋予的加权值越大,在选取加速节点A到加速节点C之间的链路时,可选取A到B,A到C以及A到B再到C三条链路中加权值最大的一条路径即可。同理,对机器负载以及带宽指标也可以按照以上丢包率和延时同样处理,最终得到加速节点之间总的加权值,然后根据加权值选取中间跳节点。
步骤S104,路由分发节点由路由计算节点拉取路由信息,并将其分发给相应的加速节点。
在本实施例中,在图2对应的应用场景中,路由分发节点可定时从路由计算节点拉取路由信息,并执行:
获取拉取的路由信息中包含的起始节点、目标节点和中间跳节点的节点标识;根据拉取的路由信息在中间跳节点的节点标识中选取与起始节点和中间跳节点对应的下一跳节点的节点标识;将起始节点、目标节点和下一跳节点的节点标识分发给相应的起始节点和中间跳节点。
如前述表1中,路由信息S1-S2-S3-D1中,S1即为起始节点的节点标识,D1即为目标节点的节点标识,S2和S3即为中间跳节点的节点标识。路由分发节点需要将路由信息分发给起始节点S1和中间跳节点S2和S3。对于起始节点S1,路由分发节点可在路由信息S1-S2-S3-D1中获取到其对应的下一跳节点为中间跳节点S2,如图5所示,即可将S1、D1和S2发送给起始节点S1;对于中间跳节点S2,路由分发节点可在路由信息S1-S2-S3-D1中获取到其对应的下一跳节点为中间跳节点S3,如图5所示,路由分发节点即可将S1、D1和S3发送给中间跳节点S2;对于中间跳节点S3,路由分发节点可在路由信息S1-S2-S3-D1中获取到其对应的下一跳节点为空(即下一跳业务数据的转发不会通过加速节点转发),如图5所示,路由分发节点即可将S1、D1发送给中间跳节点S3。
在其他实施例中,路由分发节点也可将完整的路由信息分发给该路由信息经过的每个加速节点之上,加速节点可根据完整的路由信息自行查询下一跳节点。
进一步的,起始节点、目标节点和中间跳节点的节点标识分别各自对应至少一个节点地址。
路由分发节点将所述起始节点、目标节点和下一跳节点的节点标识分发给相应的所述起始节点和中间跳节点的步骤包括:
路由分发节点获取起始节点和中间跳节点的节点标识分别各自对应的节点地址;将起始节点、目标节点和下一跳节点的节点标识下发至起始节点和中间跳节点的节点标识分别各自对应的节点地址。
如前所述,作为起始节点和中间跳节点的每个加速节点可各自对应多个网络地址。例如,一个IP段的网络地址,该IP段的网络地址对应一个加速中心机房,该加速中心机房可整体视为一个加速节点,该加速中心机房中设置有多台服务器用于转发,每台服务器可具有相应的IP地址。
路由分发节点在向加速节点下发路由信息时,可获取接收路由信息的加速节点的节点标识对应的多个IP地址,并将路由信息下发至该多个IP地址。例如,若某个加速中心机房中由多台服务器,且该多台服务器占用了192.168.3.0至192.168.3.255之间的IP网段,则可将路由信息下发至192.168.3.0至192.168.3.255之间所有服务器。使得在该加速中心机房中的某台服务器出现故障时,其他服务器仍然能够根据该路由信息执行转发业务数据的任务,从而提高了可靠性,提升了抗灾害能力。
步骤S106,加速节点接收业务数据,获取业务数据对应的业务节点和作为起始节点的加速节点,查找与该起始节点和业务节点对应的路由信息,根据查找到的路由信息将业务数据逐跳转发至业务节点。
业务数据即为最终交由业务节点并由业务节点进行处理的数据。在本实施例中,业务数据可以是业务节点或终端设备生成,并由业务节点或终端设备发送给加速节点,接收到业务节点或终端设备上传的业务数据的加速节点即为起始节点,转发该业务数据的加速节点即为中间跳节点,该业务数据最终抵达的且最终处理该业务数据的业务节点即为目标节点。
例如,在一个网络游戏应用或社交网络应用对应的应用场景中,用户需要通过管辖各个地理区域的业务服务器交互数据,则A辖区的作为业务节点的网络游戏服务器或社交网络应用服务器向加速节点发送业务数据,经加速节点逐跳转发后抵达B辖区的作为业务节点的网络游戏服务器或社交网络应用服务器。
再例如,在一个网络硬盘应用对应的应用场景中,用户可通过终端设备直接向加速节点上传需要网络存储的业务数据,该业务数据经加速节点逐跳转发后抵达作为业务节点的网络硬盘服务器,该网络硬盘服务器即可将该业务数据存储。
在本实施例中,加速节点接收到业务数据(该加速节点可以是起始节点也可以是中间跳节点,该业务数据可以是业务节点或终端设备上传的业务数据,也可以是上一跳加速节点转发的业务数据)的数据报文之后,可通过提取该数据报文中的源地址和目标地址获取对应的业务节点和作为起始节点的加速节点。如前例中,可将通过在地址服务器中查询该源地址对应的节点标识获取起始节点,查询该目标地址对应的节点标识获取对应的目标节点。
加速节点获取到业务数据对应的起始节点和目标节点后,即可在接收到的路由分发节点下发的路由信息中查找相应的路由信息。如前例中,如果业务数据对应的起始节点为S1,目标节点为D3,则查找到的相应的路由信息即为链路S1-S2-S4-D3。
而若该加速节点为S1,则其可根据路由信息将业务数据转发至S2;若该加速节点为S2,则其可根据路由信息将业务数据转发至S4;若该加速节点为S4,则其可根据路由信息将业务数据转发至D3。
在本实施例中,如前所述,路由分发节点下发的路由信息为起始节点、目标节点和与接收该路由信息的加速节点对应的下一跳节点的节点标识。则加速节点由业务数据提取到起始节点和作为目标节点业务节点之后,可查找与该起始节点和目标节点对应的下一跳节点,并将业务数据转发给该下一跳节点。
如前例中,对于路由信息S1-S3-S4-D2,路由分发节点下发给加速节点S3的路由信息包括起始节点的节点标识S1,目标节点的节点标识D2,和与加速节点S3对应的下一跳节点的节点标识S4。则加速节点S3接收到S1转发的业务数据后,可根据业务数据获取到起始节点为起始节点的节点标识S1,目标节点的节点标识D2,并根据S1和D2查询得到相应的下一跳节点的节点标识为S4,即可将该业务数据发送给加速节点S4。
进一步的,若下一跳节点未查找到,则将业务数据转发到相应的业务节点。如前例中,对于路由信息S1-S3-S4-D2,路由分发节点下发给加速节点S4的路由信息包括起始节点的节点标识S1,目标节点的节点标识D2,而与加速节点S4对应的下一跳节点的节点标识为空(或NULL等表示空的标识)。则加速节点S4接收到S3转发的业务数据后,可根据业务数据获取到起始节点为起始节点的节点标识S1,目标节点的节点标识D2,但查找到的相应的下一跳节点的节点标识为空(或NULL等表示空的标识),则直接将业务数据转发至目标节点D2。
进一步的,加速节点将业务数据转发至查找到的下一跳节点的步骤还包括:
获取下一跳节点的节点标识,获取节点标识对应的节点地址,在节点地址中选取可连接的节点地址发送业务数据。
如前所述,作为下一跳节点的加速节点可具有多个网络地址。加速节点在向其他加速节点或业务节点转发业务数据时,可根据其对应的节点标识查询其对应的多个网络地址,并筛选出可连接的网络地址(如前所述,由于作为加速节点的加速中心机房中的某些服务器可能由于故障而宕机,因此在向该加速节点发送业务数据时,可通过发送探测包或连接请求包在该加速中心机房的多个网络地址中筛选出没有宕机的服务器的网络地址),使得在加速中心机房中的某些服务器宕机之后,仍然能够完成业务数据的转发任务,从而提高了可靠性,提升了抗灾害能力。
在本实施例中,可在筛选出的网络地址中选取一个网络地址。在其它实施例中,也可对筛选出的网络地址进行群发。
进一步的,加速节点查找与该起始节点和业务节点对应的路由信息的步骤还包括:
若未查找到与业务节点对应的路由信息,则将业务数据丢弃或根据传输层或网络层协议选取下一跳节点。
本实施例所述的路由系统为建立于传输层和网络层之上的处于应用层的路由系统,用于在应用层对数据传输进行加速。若加速节点接收到的数据报文并不是由起始节点发起或是最终转发到业务节点,则该数据报文可能是加速节点和加速节点之间或加速节点和业务节点直接的通信协议的控制信息的数据报文,也可能是网络中其他设备发送的数据报文。对于此类业务数据可将其丢弃,或者根据传输层或网络层协议对获取其对应的下一跳节点的网络地址,然后将其转发。
进一步的,加速节点将业务数据丢弃或根据传输层或网络层协议选取下一跳节点的步骤之后还可包括:
加速节点获取业务节点的节点标识,将其通过路由分发节点上传至路由计算节点。
路由计算节点获取与上传的节点标识对应的业务节点,将其作为目标节点,获取与其对应的网络质量参数,执行根据网络质量参数在加速节点中选取连接起始节点和目标节点的中间跳节点的步骤。
例如,在图2所示的应用场景中,路由系统中包含D1、D2、D3三个业务节点,如果随着业务量的增长,新增了业务节点D4,则D1、D2和D3通过加速节点发送给业务节点D4的业务数据在被加速节点接收时,提取的目标节点D4在路由分发节点下发的路由信息中并没有对应的链路。此时,接收该业务数据的加速节点可根据传输层或网络层协议选择下一跳节点进行转发,并将业务节点D4的节点标识上传给路由分发节点,路由分发节点再将该节点标识上传至路由计算节点(在图3对应的应用场景中即为加速节点将节点标识D4上传给调度节点)。
路由计算节点接收到节点标识D4后,即可向所有加速节点发送网络质量参数探测指令,通知加速节点向D4节点发起ping指令,从而获取与D4节点对应的网络质量参数,并根据该网络质量参数选取起始节点到目标节点D4的路由信息。在路由计算节点定时更新路由信息的实施例中,还可先将节点标识D4缓存,在周期性更新路由信息时,再加入该节点标识D4,将其作为目标节点,从而生成相应的路由信息。
在一个实施例中,加速节点将业务数据转发至查找到的下一跳节点的步骤还包括:为业务数据附加控制信息。
将业务数据转发到业务节点的步骤之前还包括:
移除业务数据附加的控制信息。
也就是说,加速节点在向加速节点转发业务数据时,可为业务数据附加用于记录日志、统计数量或与应用协议有关的控制信息,加速节点在获取到的路由信息中下一跳节点为空时(即将业务数据发送给业务节点之前),可将该附加的控制信息移除。从而可利用现有的路由系统对业务数据的传输进行控制和统计。
在一个实施例中,加速节点还可向路由分发节点持续上传探测包(例如用于检测连接状态的心跳包)。
路由分发节点持续接收加速节点上传的探测包,获取上传超时的加速节点对应的异常节点标识,将其上传至路由计算节点。
路由计算节点查找与该异常节点标识对应的路由信息,并根据网络质量参数更新该查找到的路由信息。
也就是说,加速节点可通过向路由分发节点持续上传心跳包来通知路由分发节点其连接状态,若某个加速节点的心跳包中断或发送超时,则路由分发节点判定该加速节点为异常状态,其节点标识即为异常节点标识,且该加速节点转发业务数据的功能已丧失,则可将该异常节点标识上传至路由计算节点。
路由计算节点可获取查找到的路由信息中包含的起始节点和目标节点,根据网络质量参数在加速节点中选取连接起始节点和目标节点的中间跳节点,并生成由起始节点经由中间跳节点转发至目标节点的路由信息。
如前例中,若异常节点标识为S3,则链路中包含S3的链路如表1所示,包括S1-S2-S3-D1、S1-S3-S4-D2等(即异常节点标识对应路由信息中起始节点或中间跳节点的路由信息)。则相应的,S1至D1、S1至D2等链路的路由信息需要重新计算,重新计算的方式即为,根据网络质量参数在S1和D1之间重新选取中间跳节点生成起始节点为S1、目标节点为D1的路由信息;根据网络质量参数在S1和D2之间重新选取中间跳节点生成起始节点为S1、目标节点为D2的路由信息。
在一个实施例中,路由分发节点还可根据上传的探测包获取与加速节点对应的运行状态信息,获取运行状态信息异常的加速节点的节点标识,将其上传至路由计算节点。
例如,加速节点可在心跳包中附加其自身的实时负载信息和/或可用带宽信息等运行状态信息,若是,实时负载信息大于阈值或可用带宽信息小于阈值,则该加速节点的运行状态信息出现异常,该加速节点的节点标识为异常节点标识,即该加速节点上的业务数据的转发量较大,需要对路由系统中的加速节点的负载进行均衡。此时,路由分发节点即可将该异常节点标识上传至路由计算服务器,路由计算服务器即可获取与该异常节点标识对应的路由信息,并根据网络质量参数更新该路由信息。更新的方式与前述的上传探测包超时的异常节点标识对应的更新路由信息的方式相同,在此不再赘述。
需要说明的是,对于图3对应的应用场景,调度节点40可视为图2对应的应用场景中路由计算节点20和路由分发节点30组成的子系统,图2中路由计算节点20运行的方法和路由分发节点39运行的方法均可基于图3中调度节点40运行,即图3对应的应用场景中,调度节点40同时扮演了路由计算节点20和路由分发节点30的角色,实现了二者的全部功能。
需要进一步说明的是,在路由计算节点20与一个或一个一上的路由分发节点30组成的子系统对应的应用场景中(例如图2),路由分发节点30可对应不同的应用协议,每个路由分发节点30可根据其对应的应用协议的不同而选择性地由所述路由计算节点20拉取路由信息,并根据应用协议的对路由信息进行相应的调整,相比采用单一的调度节点40的应用场景,可适应多种应用协议,即可针对多个不同的应用的业务数据选择合适的路由信息来选择下一跳节点,使得适应性更佳。
在一个实施例中,如图2所示,一种路由系统,包括加速节点10、路由计算节点20、路由分发节点30和业务节点40,其中:
路由计算节点20用于接收加速节点上传的其与其他加速节点或业务节点之间的网络质量参数,根据网络质量参数生成路由信息。
路由分发节点30用于由路由计算节点拉取路由信息,并将其分发给相应的加速节点。
加速节点10用于接收业务数据,获取业务数据对应的业务节点和作为起始节点的加速节点,查找与该起始节点和业务节点对应的路由信息,根据查找到的路由信息将业务数据逐跳转发至业务节点。
在本实施例中,路由计算节点20还用于在加速节点中选取起始节点,在业务节点中遍历选取目标节点,根据网络质量参数在加速节点中选取连接起始节点和目标节点的中间跳节点,并生成由起始节点经由中间跳节点转发至目标节点的路由信息。
在本实施例中,路由分发节点30还用于获取拉取的路由信息中包含的起始节点、目标节点和中间跳节点的节点标识;根据路由信息在中间跳节点的节点标识中选取与起始节点和中间跳节点对应的下一跳节点的节点标识;将起始节点、目标节点和下一跳节点的节点标识分发给相应的起始节点和中间跳节点。
在本实施例中,起始节点、目标节点和中间跳节点的节点标识分别各自对应至少一个节点地址。
路由分发节点30还用于获取起始节点和中间跳节点的节点标识分别各自对应的节点地址;将起始节点、目标节点和下一跳节点的节点标识下发至起始节点和中间跳节点的节点标识分别各自对应的节点地址。
在本实施例中,加速节点10还用于查找与起始节点和作为目标节点的业务节点对应的下一跳节点。
加速节点10还用于将业务数据转发至查找到的下一跳节点,若下一跳节点未查找到,则将业务数据转发至业务节点。
在本实施例中,加速节点10还用于获取下一跳节点的节点标识,获取节点标识对应的节点地址,在节点地址中选取可连接的节点地址发送业务数据。
在本实施例中,加速节点10还用于在未查找到与业务节点对应的路由信息时,将业务数据丢弃或根据传输层或网络层协议选取下一跳节点。
在本实施例中,加速节点10还用于获取未查找到与相应的路由信息的业务节点的节点标识,将其通过路由分发节点上传至路由计算节点;
路由计算节点20还用于获取与上传的节点标识对应的业务节点,将其作为目标节点,获取与其对应的网络质量参数,根据网络质量参数在加速节点中选取连接起始节点和目标节点的中间跳节点。
在本实施例中,加速节点10还用于在将业务数据转发至查找到的下一跳节点之前为业务数据附加控制信息。
加速节点10还用于在将业务数据转发至业务节点之前移除业务数据附加的控制信息。
在一个实施例中,加速节点10还用于向路由分发节点持续上传探测包;
路由分发节点还用于持续接收加速节点上传的探测包,获取上传超时的加速节点对应的异常节点标识,将其上传至路由计算节点;
路由计算节点还用于查找与异常节点标识对应的路由信息,并根据网络质量参数更新查找到的路由信息。
在一个实施例中,加速节点10还用于向路由分发节点持续上传探测包;
路由分发节点30还用于持续接收加速节点上传的探测包,根据上传的探测包获取与加速节点对应的运行状态信息,获取运行状态信息异常的加速节点的节点标识,将其上传至路由计算节点。
路由计算节点20还用于查找异常节点标识对应的路由信息,并根据网络质量参数更新查找到的路由信息。
在一个实施例中,路由计算节点20还用于获取查找到的路由信息中包含的起始节点和目标节点,根据网络质量参数在加速节点中选取连接起始节点和目标节点的中间跳节点,并生成由起始节点经由中间跳节点转发至目标节点的路由信息。
在另一个实施例中,如图3所示,调度节点50实现前述路由计算节点20和路由分发节点30的全部功能,即调度节点50为前述路由计算节点20和路由分发节点30构成的子系统。
在一个实施例中,如图6所示,一种分发路由信息的方法,该方法可基于计算机程序,可运行于基于冯诺依曼体系的计算机系统上,如图2和图3所示,该计算机系统可以是图2中路由计算节点20和路由分发节点30构成的子系统,也可以是图3中的实现前述路由计算节点20和路由分发节点30全部功能的调度节点50。
该方法包括:
步骤S202,接收加速节点上传的其与其他加速节点或业务节点之间的网络质量参数。
步骤S204,根据网络质量参数生成路由信息:在加速节点中选取起始节点,在业务节点中遍历选取目标节点,根据网络质量参数在加速节点中选取连接起始节点和目标节点的中间跳节点,并生成由起始节点经由中间跳节点转发至目标节点的路由信息。
步骤S206,将路由信息分发给起始节点和中间跳节点。
在本实施例中,将路由信息分发给起始节点和中间跳节点的步骤包括:
获取路由信息,获取其包含的起始节点、目标节点和中间跳节点的节点标识;根据路由信息在中间跳节点的节点标识中选取与起始节点和中间跳节点对应的下一跳节点的节点标识;将起始节点、目标节点和下一跳节点的节点标识分发给相应的起始节点和中间跳节点。
在本实施例中,起始节点、目标节点和中间跳节点的节点标识分别各自对应至少一个节点地址;
将起始节点、目标节点和下一跳节点的节点标识分发给相应的起始节点和中间跳节点的步骤包括:
获取起始节点和中间跳节点的节点标识分别各自对应的节点地址;将起始节点、目标节点和下一跳节点的节点标识下发至起始节点和中间跳节点的节点标识分别各自对应的节点地址。
在本实施例中,网络质量参数包括延时和/或丢包率。
根据网络质量参数生成路由信息的步骤还包括:
获取加速节点对应的额定负载信息和/或带宽信息;根据加速节点与其他加速节点或业务节点之间的延时和/或丢包率以及加速节点对应的额定负载信息和/或带宽信息生成路由信息。
在一个实施例中,还可持续接收加速节点上传的探测包,获取上传超时的加速节点对应的异常节点标识,并查找其对应的路由信息,根据网络质量参数更新查找到的路由信息。
在一个实施例中,还可持续接收加速节点上传的探测包,根据上传的探测包获取与加速节点对应的运行状态信息,获取运行状态信息异常的加速节点对应的异常节点标识,并查找其对应的路由信息,根据网络质量参数更新查找到的路由信息。
在一个实施例中,根据网络质量参数更新查找到的路由信息的步骤包括:
获取查找到的路由信息中包含的起始节点和目标节点,根据网络质量参数在加速节点中选取连接起始节点和目标节点的中间跳节点,并生成由起始节点经由中间跳节点转发至目标节点的路由信息。
在本实施例中,还可接收上传的目标网络地址,获取与目标网络地址对应的网络节点,获取路由信息包含的起始节点,选取网络节点为目标节点,执行根据网络质量参数在加速节点中选取连接起始节点和目标节点的中间跳节点的步骤。
在一个实施例中,如图7所示,一种分发路由信息的装置,包括网络质量参数接收模块102、路由信息计算模块104以及路由信息分发模块106,其中:
网络质量参数接收模块102,用于接收加速节点上传的其与其他加速节点或业务节点之间的网络质量参数。
路由信息计算模块104,用于根据网络质量参数生成路由信息:在加速节点中选取起始节点,在业务节点中遍历选取目标节点,根据网络质量参数在加速节点中选取连接起始节点和目标节点的中间跳节点,并生成由起始节点经由中间跳节点转发至目标节点的路由信息。
路由信息分发模块106,用于将路由信息分发给起始节点和中间跳节点。
在本实施例中,路由信息分发模块106还用于获取路由信息,获取其包含的起始节点、目标节点和中间跳节点的节点标识;根据路由信息在中间跳节点的节点标识中选取与起始节点和中间跳节点对应的下一跳节点的节点标识;将起始节点、目标节点和下一跳节点的节点标识分发给相应的起始节点和中间跳节点。
在本实施例中,起始节点、目标节点和中间跳节点的节点标识分别各自对应至少一个节点地址;
在本实施例中,路由信息分发模块106还用于获取起始节点和中间跳节点的节点标识分别各自对应的节点地址;将起始节点、目标节点和下一跳节点的节点标识下发至起始节点和中间跳节点的节点标识分别各自对应的节点地址。
在本实施例中,网络质量参数包括延时和/或丢包率;
在本实施例中,路由信息计算模块104还用于获取加速节点对应的额定负载信息和/或带宽信息;根据加速节点与其他加速节点或业务节点之间的延时和/或丢包率以及加速节点对应的额定负载信息和/或带宽信息生成路由信息。
在一个实施例中,如图7所示,分发路由信息的装置还包括第一异常节点探测模块108,用于持续接收加速节点上传的探测包,获取上传超时的加速节点对应的异常节点标识。
路由计算模块102还用于查找异常节点标识对应的路由信息,根据网络质量参数更新查找到的路由信息。
在一个实施例中,如图7所示,分发路由信息的装置还包括第二异常节点探测模块110,用于持续接收加速节点上传的探测包,根据上传的探测包获取与加速节点对应的运行状态信息,获取运行状态信息异常的加速节点对应的异常节点标识。
在一个实施例中,路由计算模块102还用于获取查找到的路由信息中包含的起始节点和目标节点,根据网络质量参数在加速节点中选取连接起始节点和目标节点的中间跳节点,并生成由起始节点经由中间跳节点转发至目标节点的路由信息。
在一个实施例中,如图7所示,分发路由信息的装置还包括业务节点添加模块112,用于接收上传的目标网络地址,获取与目标网络地址对应的网络节点。
路由信息计算模块102还用于获取路由信息包含的起始节点,选取网络节点为目标节点,根据网络质量参数在加速节点中选取连接起始节点和目标节点的中间跳节点。
上述路由方法和系统以及分发路由信息的方法及系统中,可先由各个加速节点各自采集与其他加速节点或业务节点的网络质量参数,再由路由计算节点根据网络质量参数生成全局的到业务节点数据传输速度最快的路由信息,然后由路由分发节点将其发送给相应的加速节点,加速节点即可根据该生成的全局的路由信息选择下一跳节点来转发接收到的业务数据。与传统技术相比,根据采集的网络质量参数生成的路由信息比传统技术中固定的路由信息更加适应多变的网络环境,可在某条链路出现故障或加速节点负载较大时,生成到业务节点数据传输速度更快的路由信息,从而提高了数据传输速度。
在一个实施例中,如图8所示,提供了一种可运行前述分发路由信息的方法的服务器结构示意图,该服务器结构可应用于图2中的路由计算节点20、路由分发节点30之上或图3中的调度节点50之上。该服务器500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序542或数据544的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(如前述的网络质量参数接收模块102、路由信息计算模块104即可为图2中的路由计算节点20的存储介质中的程序模块,路由信息分发模块106即可为图2中的路由分发节点30的存储介质中的程序模块,或者前述的网络质量参数接收模块102、路由信息计算模块104和路由信息分发模块106均为图3中调度节点50的存储介质中的程序模块),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器522可以设置为与存储介质530通信,在服务器500上执行存储介质530中的一系列指令操作。服务器500还可以包括一个或一个以上电源526,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口558,和/或,一个或一个以上操作系统541,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM,FreeBSDTM等等。上述图1所示实施例中所述的由服务器所执行的步骤可以基于该图8所示的服务器结构。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。