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

文档序号:9527702阅读:来源:国知局
,也先将SYN数据包的源 IP地址换成对应链路的IP地址。
[0132] 即当该客户端与该服务器之间有多条链路时,则分别将该SYN数据包通过各条链 路发送给该服务器,该客户端通过各条链路与该服务器进行第一次握手。在本发明,以该客 户端与该服务器端之间的链路包括第一链路和第二链路为例,对本发明进行详细描述。
[0133] 该服务器在接收到通过第一链路发送的SYN数据包后,如果允许通过第一链路与 该客户端建立连接,则确认该SYN数据包,同时自己也发送一个SYN数据包,即向该客户端 发送SYN+ACK数据包,序列号为srvidl,该序列号由该服务器对该第一链路随机生成,确认 号为cliid+1。
[0134] 同理,该服务器在接收到通过第二链路发送的SYN数据包后,如果允许通过第二 链路与客户端建立连接,则确认该SYN数据包,同时自己也发送一个SYN数据包,即向该客 户端发送SYN+ACK数据包,序列号为Srvid2,该序列号由该服务器对该第二链路随机生成, 确认号为cliid+1。
[0135] 该第二收发模块20接收该服务器分别通过至少两条链路返回的SYN+ACK数据 包,通过各链路返回的SYN+ACK数据包的序列号不同,确认号相同。通过各个链路返回的 SYN+ACK数据包有先后顺序,该第一确定模块30将最快返回的SYN+ACK数据包发送给该客 户端,该服务器与该客户端进行第二次握手;并将该最快返回的SYN+ACK数据包对应的链 路确定为初步目标链路,如在一实施例中,最快返回的SYN+ACK数据包对应的链路为第一 链路,则将第一链路确定为初步目标链路。
[0136] 该第二收发模块20还记录各个链路对应的序列号等信息,如表一所示。
[0137] 如图3所示,该第二收发模块20只将从该服务器中最快返回的SYN+ACK数据包发 送给该客户端,从该服务器中返回的其它SYN+ACK数据包不发送给该客户端,但是会记录 其他SYN+ACK数据包所在链路的信息。如该服务器从第二链路返回的SYN+ACK数据包比从 第一链路返回的SYN+ACK数据包时间慢,则不会将第二链路返回的SYN+ACK数据包发送给 该客户端,而只是记录该第二链路的信息。
[0138] 该客户端在接收该服务器端返回的SYN+ACK数据包后,需要向该服务器发送ACK 数据包(确认包),进行第三次握手。当该客户端接收的SYN+ACK数据包是从第一链路返 回,则该ACK数据包的序列号为cliid+Ι,确认号为srvid+Ι,即该ACK数据包的序列号为 SYN+ACK数据包的确认号,该ACK数据包的确认号为SYN+ACK数据包的序列号加1。
[0139] 如图4所示,该第三收发模块40将接收的ACK数据包通过该初步目标链路发送给 该服务器,即通过第一链路发送给该服务器。
[0140] 在前面三个步骤完成三次握手后,该客户端可向该服务器发送业务数据包。
[0141] 该第三收发模块40接收该客户端发送的业务数据包,该业务数据包的序列号为 cliid+1,确认号为srvid+l〇
[0142] 该第二确定模块50识别该业务数据包对应的应用类型,具体的,对该业务数据包 进行分析,得到统一资源定位符URL,根据该URL确定业务数据包对应的应用类型。
[0143] 业务数据包对应的应用类型包括web游戏应用、web视频应用、web即时通讯应用 等等。
[0144] 不同应用类型的数据包的传输要求不同,比如,对于P2P类应用、下载工具类应 用、网盘类应用,占带宽大,但是由于是在后台运行,客户体验不敏感,因此,可将这类应用 引流到传输质量较差的链路;对于游戏类应用、炒股类应用、主流网站应用等用户体验比较 敏感的应用,希望引流到传输质量好的链路。
[0145] 该第二确定模块50可根据业务数据包对应的应用类型先确定一个默认传输链 路,然后从该默认传输链路和初步目标链路中,选择一个作为最终目标链路;再通过第四收 发模块60将该业务数据包通过该最终目标链路发送给该服务器,如最终目标链路为第一 链路,则将业务数据包通过该第一链路发送给该服务器。
[0146] 进一步的,如图11所示,该第二确定模块50包括:
[0147] 第一确定单元51,用于根据该预设的应用类型与链路的映射关系,确定该业务数 据包对应的默认传输链路;
[0148] 第二确定单元52,用于当判断该业务数据包对应的默认传输链路与初步目标链路 相同时,将所述初步目标链路确定为最终目标链路。
[0149] 预先设置应用类型与链路的映射关系,如将应用类型为web视频应用对应的链路 设置为第一链路,将应用类型为web游戏应用对应的链路设置为第二链路。
[0150] 该第一确定单元51根据该业务数据包的应用类型遍历该应用类型与链路的映射 关系,查找到对应的链路,将该查找到的链路确定为该业务数据包对应的默认传输链路,如 在一实施例中,该业务数据包的应用类型为web视频应用,在应用类型与链路的映射关系 中,查找到web视频应用对应的链路为第一链路,则确定该业务数据包对应的默认传输链 路为第一链路。在另一实施例中,该业务数据包的应用类型为web游戏应用,在应用类型与 链路的映射关系中,查找到web游戏应用对应的链路为第二链路,则确定该业务数据包对 应的默认传输链路为第二链路。
[0151] 该第二确定单元52在默认传输链路与初步目标链路相同时,将该初步目标链路 确定为最终目标链路。
[0152] 第四收发模块60将该业务数据包通过该最终目标链路发送给服务器,该业务数 据包中的序列号和确认号都不需要修改,即,该发送给该服务器的业务数据包的序列号为 cliid+1,确认号为srvid+l〇
[0153] 如在一实施例中,默认传输链路为第一链路,初步目标链路为第一链路,该第四收 发模块60将业务数据包通过第一链路发送给该服务器,如图6所示。
[0154] 进一步的,该第二确定模块包括:第三确定单元,用于根据所述预设的应用类型与 链路的映射关系,确定所述业务数据包对应的默认传输链路;第四确定单元,用于在当判断 出该业务数据包对应的默认传输链路与初步目标链路不相同时,将该默认传输链路确定为 最终目标链路;
[0155] 所述装置还包括:第一生成模块、第五收发模块、第二生成模块,
[0156] 所述第一生成模块,用于当判断出所述业务数据包对应的默认传输链路与所述初 步目标链路不相同时,生成一个ACK数据包;
[0157] 第五收发模块,用于将该生成的ACK数据包通过最终目标链路发送给服务器;
[0158] 第二生成模块,用于根据该最终目标链路的序列号,修改该业务数据包的确认号, 生成新业务数据包;
[0159]该第四收发模块,还用于将该新业务数据包通过最终目标链路发送给服务器。
[0160] 该第三确定单元与第一确定单元的功能结构相同,在此不再赘述。在默认传输链 路与初步目标链路不相同时,该第四确定单元将该默认传输链路确定为最终目标链路,BP 需要通过该默认传输链路将从该客户端接收的业务数据包发送给该服务器。由于之前未通 过该默认传输链路建立该客户端与该服务器的第三次握手,因此,该第一生成模块需要生 成一个ACK数据包。在一实施例中,该默认传输链路为第二链路,该初步目标链路为第一链 路;该ACK数据包的序列号为cliid+1,即为该客户端与该服务器通过该默认传输链路进行 第一握手时生成的序列号加1,该ACK数据包的确认号为Srvid2+1,即为该服务器与该客户 端通过该默认传输链路进行第二次握手时生成的序列号加1。
[0161] 该第一生成模块还生成一个RST数据包,并将该RST数据包通过初步目标链路发 送给该服务器,以切断初步目标链路上的连接。该RST数据包的序列号为cliid+Ι,即为该 客户端与该服务器通过该初步目标链路进行第一握手时生成的序列号加1,该RST数据包 的确认号为srvidl+Ι,即为该服务器与该客户端通过该初步目标链路进行第二握手时生成 的序列号加1。
[0162] 该第四收发模块将该ACK数据包通过该最终目标链路发送给该服务器,实现该客 户端与该服务器在最终目标链路上的第三次握手。在一实施例中,将该生成的ACK数据包 通过第二链路发送给该服务器,如图7所示。
[0163] 该第二生成模块修改业务数据包的确认号,以生成新业务数据包,新业务数据包 的确认号A可通过以下公式计算得到,A=srvid2+X-srvidl,其中X是业务数据包中的确 认号,Srvid2是最终目标链路的序列号,S卩服务器与客户端通过最终目标链路进行第二次 握手时产生的序列号,srvidl是初步目标链路的序列号,S卩服务器与客户端通过初步目标 链路进行第二次握手时产生的序列号。
[0164] 当该第三收发模块接收的业务数据包中的确认号X为srvidl+Ι时,该第二生成模 块生成的新业务数据包的确认号A为Srvid2+1。
[0165] 在一实施例中,该最终目标链路为第二链路,则该第四收发模块将该新业务数据 包通过第二链路发送给该服务器,如图8所示。
[0166] 进一步的,该装置还包括第六收发模块、第三生成模块、第七收发模块或者所述装 置还包括第八收发模块,其中:
[0
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1