基于应用类型的数据引流方法、装置及系统的制作方法_3

文档序号:9527702阅读:来源:国知局
施例,接收客户端的SYN数据包,并将该接收的SYN数据包分别通过至 少两条链路发送给服务器;接收该服务器分别通过至少两条链路返回的SYN+ACK数据包; 并将最快返回的SYN+ACK数据包发送给该客户端,将该最快返回的SYN+ACK数据包对应的 链路确定为初步目标链路;接收该客户端发送的ACK数据包,并将该接收的ACK数据包通过 该初步目标链路发送给该服务器;接收该客户端发送的业务数据包,并识别该业务数据包 对应的应用类型;根据该业务数据包对应的应用类型和该初步目标链路,确定最终目标链 路,将该业务数据包通过该确定的最终目标链路发送给该服务器;即在该客户端与该服务 器的第二次握手中,先确定该客户端与该服务器的初步目标链路,然后再根据该客户端发 送的业务数据包的应用类型和初步目标链路确定最终目标,将该业务数据包通过该确定的 最终目标链路发送给该服务器,实现对业务数据包的引流,可更加灵活的对业务数据包进 行引流,提高引流效率和网络资源利用率。
[0096] 参照图5,图5为本发明基于应用类型的数据引流方法中的根据该业务数据包对 应的应用类型和该初步目标链路,确定最终目标链路,将该业务数据包通过该确定的最终 目标链路发送给服务器的细化流程示意图,详述如下:
[0097]S51、根据该预设的应用类型与链路的映射关系,确定该业务数据包对应的默认传 输链路。
[0098] 预先设置应用类型与链路的映射关系,如将应用类型为web视频应用对应的链路 设置为第一链路,将应用类型为web游戏应用对应的链路设置为第二链路。
[0099] 根据该业务数据包的应用类型遍历该应用类型与链路的映射关系,查找到对应的 链路,将该查找到的链路确定为该业务数据包对应的默认传输链路,如在一实施例中,该业 务数据包的应用类型为web视频应用,在应用类型与链路的映射关系中,查找到web视频应 用对应的链路为第一链路,则确定该业务数据包对应的默认传输链路为第一链路。在另一 实施例中,该业务数据包的应用类型为web游戏应用,在应用类型与链路的映射关系中,查 找到web游戏应用对应的链路为第二链路,则确定该业务数据包对应的默认传输链路为第 二链路。
[0100]S52、当判断出该业务数据包对应的默认传输链路与该初步目标链路相同时,将该 初步目标链路确定为最终目标链路,并将该业务数据包通过该最终目标链路发送给该服务 器。
[0101] 在默认传输链路与初步目标链路相同时,将该初步目标链路确定为最终目标链 路,并将该业务数据包通过该最终目标链路发送给服务器,该业务数据包中的序列号和确 认号都不需要修改,即,该发送给该服务器的业务数据包的序列号为cliid+l,确认号为 srvid+l〇
[0102] 如在一实施例中,默认传输链路为第一链路,初步目标链路为第一链路,则将业务 数据包通过第一链路发送给该服务器,如图6所示。
[0103]S53、当判断出所述业务数据包对应的默认传输链路与所述初步目标链路不相同 时,将该默认传输链路确定为最终目标链路,并生成一个ACK数据包;然后执行步骤S54。
[0104] 在默认传输链路与初步目标链路不相同时,将该默认传输链路确定为最终目标链 路,即需要通过该默认传输链路将从该客户端接收的业务数据包发送给该服务器,由于之 前未通过该默认传输链路建立该客户端与该服务器的第三次握手,因此,在该步骤中,需要 生成一个ACK数据包。在一实施例中,该默认传输链路为第二链路,该初步目标链路为第一 链路;该ACK数据包的序列号为cliid+Ι,即为该客户端与该服务器通过该默认传输链路进 行第一握手时生成的序列号加1,该ACK数据包的确认号为Srvid2+1,即为该服务器与该客 户端通过该默认传输链路进行第二次握手时生成的序列号加1。
[0105] 在该步骤中,还生成一个RST数据包,并将该RST数据包通过初步目标链路发送给 该服务器,以切断初步目标链路上的连接。该RST数据包的序列号为cliid+Ι,即为该客户 端与该服务器通过该初步目标链路进行第一握手时生成的序列号加1,该RST数据包的确 认号为srvidl+Ι,即为该服务器与该客户端通过该初步目标链路进行第二握手时生成的序 列号加1。
[0106] S54、将该生成的ACK数据包通过该最终目标链路发送给该服务器,然后执行步骤 S55〇
[0107] 将该ACK数据包通过该最终目标链路发送给该服务器,实现该客户端与该服务器 在最终目标链路上的第三次握手。在一实施例中,将该生成的ACK数据包通过第二链路发 送给该服务器,如图7所示。
[0108] S55、根据该最终目标链路的序列号,修改该业务数据包的确认号,生成新业务数 据包,然后执行步骤S56。
[0109] 在该步骤中,修改业务数据包的确认号,以生成新业务数据包,新业务数据包的确 认号A可通过以下公式计算得到,A=srvid2+X-srvidl,其中X是业务数据包中的确认号, Srvid2是最终目标链路的序列号,S卩服务器与客户端通过最终目标链路进行第二次握手时 产生的序列号,srvidl是初步目标链路的序列号,S卩服务器与客户端通过初步目标链路进 行第二次握手时产生的序列号。
[0110] 当接收的业务数据包中的确认号X为srvidl+l时,该生成的新业务数据包的确认 号A为srvid2+l。
[0111] S56、将该新业务数据包通过该最终目标链路发送给该服务器。
[0112] 在一实施例中,该最终目标链路为第二链路,则在该步骤中,将该新业务数据包通 过第二链路发送给该服务器,如图8所示。
[0113] 参照图9,图9为本发明基于应用类型的数据引流方法的第二实施例。
[0114] 基于上述基于应用类型的数据引流方法的第一实施例,在步骤S50之后,该方法 还包括:
[0115]S60、接收该服务器通过该最终目标链路返回的应答数据包。
[0116] 该服务器在接收到该客户端通过该最终目标链路发送的业务数据包后,生成回 包,即应答数据包,该应答数据包的序列号为X,确认号为cliid+datalen。
[0117] S70、在该最终目标链路与该初步目标链路不相同时,根据该最终目标链路的序列 号、初步目标链路的序列号,修改该应答数据包的序列号,生成新应答数据包;将该新应答 数据包发送给该客户端。
[0118] 在该步骤中,修改应答数据包的序列号,以生成新应答数据包,该新应答数据包的 序列号S可通过以下公式计算得到,S=srvidl+x-srvid2,其中,X表示应答数据包中的序 列号,Srvid2是最终目标链路的序列号,即该服务器与该客户端通过该最终目标链路进行 第二次握手时产生的序列号,srvidl是初步目标链路的序列号,即该服务器与该客户端通 过初步目标链路进行第二次握手时产生的序列号。
[0119] 将该新应答数据包发送给客户端。
[0120] S80、在该最终目标链路与该初步目标链路相同时,将该应答数据包发送给该客户 端。
[0121] 在该步骤中,直接将该应答数据包发送给该客户端,而不需要修改该应答数据包 中的序列号和确认号。
[0122] 参照图10,图10为本发明基于应用类型的数据引流装置的第一实施例的结构示 意图,该装置连接在客户端与服务器之间,该装置包括:
[0123] 第一收发模块10,用于接收客户端发送的SYN数据包,并将该接收的SYN数据包分 别通过至少两条链路发送给服务器;
[0124] 第二收发模块20,用于接收该服务器分别通过至少两条链路返回的SYN+ACK数据 包;并将最快返回的SYN+ACK数据包发送给该客户端;
[0125] 第一确定模块30,用于将该最快返回的SYN+ACK数据包对应的链路确定为初步目 标链路;
[0126] 第三收发模块40,用于接收客户端发送的ACK数据包,并将该接收的ACK数据包通 过该初步目标链路发送给该服务器;及接收该客户端发送业务数据包,并识别该业务数据 包对应的应用类型;
[0127] 第二确定模块50,用于根据该业务数据包对应的应用类型和该初步目标链路,确 定最终目标链路;
[0128] 第四收发模块60,用于将该业务数据包通过确定的最终目标链路发送给该服务 器。
[0129] 该SYN数据包是客户端待发送给服务器的,用于请求与服务器建立连接,该SYN数 据包的序列号是客户端随机产生的一个数,标记为cliid,该SYN数据包的确认号为0。
[0130] 该第一收发模块10将该SYN数据包分别通过至少两条链路发送给服务器,在一实 施例,如图2所示,将该SYN数据包分别通过第一链路和第二链路发送给该服务器;在另一 实施例,将该SYN数据包分别通过第一链路、第二链路和第三链路发送给该服务器。
[0131] 在一实施例中,该第一收发模块10在将SYN数据包通过第一链路发送给该服务器 时,先将该SYN数据包的源IP地址换成第一链路的IP地址,然后再该SYN数据包通过第一 链路发送给该服务器;在将SYN数据包通过第二链路发送给该服务器时,先将该SYN数据包 的源IP地址换成第二链路的IP地址,然后再将该SYN数据包通过第二链路发送给该服务 器;在将SYN数据包通过第三链路、第四链路等发送给该服务器时
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1