一种用于网络数据传输的中间交换设备及网络通信系统的制作方法_3

文档序号:9352796阅读:来源:国知局
在中间交换设备中,数据包被传送至交换模块52中的识别截获模块621。
[0061]S23:由识别截获模块621判断数据包的字段是否符合流表53中的压缩/解压规贝1J,当其判断为“否”时,继续步骤S24 ;当其判断为“是”时,继续步骤S25。其中,解压规则为预先设置的即默认对目的端口为端口标记即PORT的UDP数据包进行解压,压缩规则为被动模式下的所述中间交换设备通过识别接收的数据包被动地确定并下发至流表53的规则。
[0062]例如,根据流表53中的解压规则,识别截获模块621可以对满足目的端口为PORT的UDP数据包做出将该UDP数据包交付给虚拟网卡TUN/TAP (未示出)的动作。
[0063]S24:识别截获模块621将无需加速的数据包转发出中间交换设备。
[0064]S25:识别截获模块621将需要加速的数据包传送至加速模块51中的处理模块612。
[0065]S26:处理模块612判断数据包是否使用UDP协议,当其判断为“是”时,继续步骤S27al ;当其判断为“否”时,继续步骤S27b。
[0066]例如,在由客户端向服务端通信的过程中,服务端中间交换设备的处理模块对UDP数据包进行加速,即在S26中判断为“是”,而继续步骤S27al。
[0067]S27al:处理模块612对收到的数据包进行去除UDP头、解压负载以还原TCP报文的处理。
[0068]例如,无论是否发生NAT,经步骤S27al均可得到如图7或图8中所示的压缩的内容的TCP报文;在发生NAT与非NAT的情况下,经步骤S27al还可分别得到如图7与图8中所示的IP头和UDP头。
[0069]S27a2:处理模块612根据TCP报文判断该数据包是否为数据流的首个数据包,当其判断为“是”时,继续步骤S27a3 ;当其判断为“否”时,继续步骤S27a5。其中,可根据该TCP报文中的SYN字段的内容以确定该数据包是否为数据流中的首个数据包。
[0070]S27a3:根据在步骤S27al中被解压数据包的源地址、UDP头的源端口、TCP头的源端口生成流编号,并在加速模块51的地址端口表613中储存该流编号与该源地址、该UDP头的源端口、该TCP头的源端口的对应关系;其中,上述生成的流编号是唯一的,即每一个流编号对应唯一的一组源地址、UDP头的源端口与TCP头的源端口。由此,可应对在发生NAT后,由于不同客户端的地址可能被转换为相同的地址而造成的同一源地址对应多个源端口的情况。
[0071]例如,在发生NAT后的UDP数据包如图8所示,则在步骤S27a3中根据Gw_ip、Gw_port、Client_port生成一个唯一的编号FlowID,并将该FlowID储存在地址端口表613中。
[0072]S27a4:加速模块51中的规则下发模块611将与被解压数据包的源地址、目的地址、源端口、目的端口相对应的压缩规则下发至流表53 ;其中,所述压缩规则将被用于处理随后将返回至与本中间交换设备通信的其它设备的对应的数据流。
[0073]例如,理论上,相比于上述步骤S13的示例中的压缩规则,在本步骤S27a4中:在非NAT的情况下,对应的压缩规则应该为对源地址、目的地址、源端口、目的端口分别为Server_ip、Cl ient_ip、Server_port、Cl ient_port 的 TCP 数据包进行压缩处理;在发生 NAT的情况下,对应的压缩规则应该为对源地址、目的地址、源端口、目的端口分别为SerVer_ip、Gw_ip、Server_port、Client_port 的 TCP 数据包进行压缩处理。
[0074]然而,在发生NAT的情况下,由于TCP数据包不包括UDP头中的端口信息(例如Gw_port),存在上述的源地址与TCP的源端口不对应的问题。因此,实际上,在本步骤S27a4中下发的压缩规则应为:在非NAT的情况下,对源地址、目的地址、源端口、目的端口分别为Server_ip、Client_ip、Server_port、FlowID 的 TCP 数据包进行压缩处理;在 NAT 的情况下,对源地址、目的地址、源端口、目的端口分别为Server_ip、Gw_ip、Server_port、FlowID的TCP数据包进行压缩处理。
[0075]S27a5:处理模块612将TCP报文的源端口标记为在步骤S26c中生成的流编号并添加IP头以生成新的TCP数据包。
[0076]例如,在发生NAT的情况下,经步骤S27a5可得到与如图9所示的TCP数据包;在非NAT的情况下,经步骤S27a5可得到与如图10所示的TCP数据包。
[0077]S28:处理模块612将生成的TCP数据包传送给交换模块52中的转发模块622。
[0078]S29:转发模块622根据流表53中的规则将该TCP数据包转发出中间交换设备。
[0079]由此,完成如图1所示的从客户端的El到服务端的E2网络数据通信。
[0080]相似地,在从服务端主机到客户端主机的通信过程中,与服务端相连的中间交换设备开启被动模式以加速由服务端主机发出的数据流。由于添加了流编号,服务端主机可获知该流编号,则服务端主机可将包括该流编号的TCP数据包传输至所述与服务端相连的中间交换设备;与服务端相连的中间交换设备具有例如上文步骤S27a4中所下发的压缩规贝1J。参考图3,在所述与服务端相连的中间交换设备执行完步骤S26后,其判断为“否”,并继续下列步骤:
[0081]S27b:处理模块612对数据包压缩TCP报文、添加UDP头特定端口、添加IP头以生成新数据包;
[0082]例如,在未发生NAT的情况下,所述中间交换设备压缩来自服务端的且其源地址、目的地址、源端口、目的端口分别为 Server_ip、Client_ip、Server_port、FlowID 的 TCP 数据包,并根据FlowID从地址端口表613中查找出Client_ip、PORT、Client_port以作为目的地址、UDP头的目的端口、TCP头的目的端口以将所述TCP数据包封装成UDP数据包;在发生NAT的情况下,所述中间交换设备压缩来自服务端的且其源地址、目的地址、源端口、目的端口分别为 Server_ip、Gw_ip、Server_port、FlowID 的 TCP 数据包,并根据 FlowID 从地址端口表613中查找出Cw_ip、Gw_port、Client_port以作为目的地址、UDP头的目的端口、TCP头的目的端口以将所述TCP数据包封装成UDP数据包。
[0083]S28:处理模块612将数据包传送给交换模块52中的转发模块622 ;
[0084]S29:转发模块622根据流表53将数据包转发出所述中间交换设备。
[0085]由所述与服务端相连的中间交换设备转发的数据包经广域网被传输至与客户端相连的中间交换设备,所述与客户端相连的中间交换设备开启主动模式以加速来自与所述服务端相连的中间交换设备的数据流。参考图3,在所述与客户端相连的中间交换设备执行完步骤S16后,其判断为“是”,而继续下列步骤:
[0086]S17b:处理模块612对数据包去除UDP头、解压负载以还原TCP报文、添加IP头以生成新的TCP数据包;
[0087]S18:处理模块612将该TCP数据包传送给交换模块52中的转发模块622 ;
[0088]S19:转发模块622根据流表53中的规则将该TCP数据包转发出中间交换设备。
[0089]由此,完成如图1所示的从服务
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1