发明内容
基于此,有必要提供一种能提高加速网络的扩展性的网络加速传输方法。
一种网络加速传输方法,包括:
代理服务器获取所述中间数据包,并提取所述中间数据包的源地址;
所述代理服务器获取代理地址映射对,根据所述代理地址映射对获取所述中间数据包的源地址对应的映射地址;
所述代理服务器将所述中间数据包的源地址经过地址转换成所述映射地址,并转发所述中间数据包。
在其中一个实施例中,所述方法还包括:
代理客户端通过地址转换接收源数据包;
所述代理客户端通过地址转换生成中间数据包并发送至代理服务器,所述中间数据包的源地址和目标地址与所述源数据包的源地址和目标地址相同;
在其中一个实施例中,所述代理客户端将所述中间数据包发送至所述代理服务器的步骤之前还包括:
所述代理客户端判断所述源数据包是否为连接请求包,若是,则根据所述连接请求包生成传输特征码,并获取与代理服务器的连接,将传输特征码发送给代理服务器。
在其中一个实施例中,所述代理客户端将所述传输特征码发送给所述代理服务器的步骤之后还包括:
所述代理服务器接收所述传输特征码并缓存;
所述代理服务器向所述代理客户端发送传输确认消息;
所述代理客户端在接收所述传输确认消息之后将所述连接请求包转发至所述代理服务器。
在其中一个实施例中,所述代理服务器获取所述中间数据包,并提取所述中间数据包的源地址的步骤之后还包括:
所述代理服务器从缓存中获取所述传输特征码;
所述代理服务器判断所述中间数据包是否与所述传输特征码匹配,若是,则根据所述传输特征码提取映射地址,根据所述中间数据包的源地址和所述映射地址生成代理地址映射对。
此外,还有必要提供一种能提高加速网络的扩展性的网络加速传输装置。
一种网络加速传输装置,包括代理服务器和代理客户端,所述代理服务器包括:
中间数据包接收模块,用于获取所述中间数据包,并提取所述中间数据包的源地址;
映射地址获取模块,用于获取代理地址映射对,根据所述代理地址映射对获取所述中间数据包的源地址对应的映射地址;
地址转换模块,用于将所述中间数据包的源地址经过地址转换成所述映射地址,并转发所述中间数据包。
在其中一个实施例中,所述代理客户端还包括:
源数据包接收模块,用于通过地址转换接收源数据包;
源数据包转发模块,用于通过地址转换生成中间数据包并发送至代理服务器,所述中间数据包的源地址和目标地址与所述源数据包的源地址和目标地址相同。
在其中一个实施例中,所述源数据包接收模块还用于判断所述源数据包是否为连接请求包;
所述代理客户端还包括:
特征码生成模块,用于在所述源数据包为连接请求包时,根据所述连接请求包生成传输特征码;
特征码发送模块,用于获取与所述代理服务器的连接,并将所述传输特征码发送给所述代理服务器。
在其中一个实施例中,所述代理服务器还包括特征码接收模块,用于接收所述传输特征码并缓存,并向所述代理客户端发送传输确认消息;
所述源数据包转发模块还用于在接收所述传输确认消息之后将所述连接请求包转发至所述代理服务器。
在其中一个实施例中,所述代理服务器还包括特征码获取模块,用于从缓存中获取所述传输特征码;
所述代理服务器还包括映射对生成模块,用于判断所述中间数据包是否与所述传输特征码匹配,若是,则根据所述传输特征码提取映射地址,根据所述中间数据包的源地址和所述映射地址生成代理地址映射对。
上述网络加速传输方法及装置中,代理服务器在接收到中间数据包后,通过获取代理地址映射对来获取中间数据包的源网络地址对应的映射地址,并将中间数据包的地址转换成映射地址后转发,使得代理服务器转发后的数据包的网络四元组地址不会因为代理服务器和代理客户端之间的NAT(NetworkAddress Translation,网络地址转换)设备而发生改变,使得代理服务器与NAT设备不具备耦合关系,从而提高了加速网络的扩展性。
具体实施方式
在一个实施例中,如图1所示,一种网络加速传输方法,包括:
步骤S102,代理服务器获取中间数据包,并提取中间数据包的源地址。
如图2所示,在一个加速网络中,终端节点A和终端节点B中间的加速设备为代理客户端C和代理服务器S,终端节点A和终端节点B各自连接代理客户端C和代理服务器S。终端节点A向终端节点B发送数据包,终端节点A发送的源数据包被代理客户端C截获,然后生成中间数据包并转发给代理服务器S,代理服务器再将该中间数据包发送给终端节点B。
在一个实施例中,代理客户端通过地址转换接收源数据包,代理客户端通过地址转换生成中间数据包并发送至代理服务器,中间数据包的源地址和目标地址与源数据包的源地址和目标地址相同。
在上例中,终端节点A发出的源数据包中的网络四元组(发出该数据包的源IP及端口、该数据包将要抵达的目标IP及端口)中的路径信息为:由终端节点A的网络地址(包括IP和端口)到终端节点B的网络地址。代理客户端只有对该数据包进行地址转换后才能接收源数据包,即将源数据包中将要抵达的目标IP及端口修改为代理客户端的IP和端口。
代理客户端接收源数据包之后再根据源数据包生成转发给代理服务器的中间数据包。生成方法为保持数据包的数据内容不变,通过地址转换,将生成的中间数据包的网络四元组中的源地址和目标地址设置为与源数据包相同。
也就是说,在上例中,代理客户端C转发给代理服务器S的中间数据包的路径信息仍为由终端节点A的网络地址(包括IP和端口)到终端节点B的网络地址。使得数据包在经过代理客户端代理加速之后,网络四元组的信息不变,使得代理客户端在网络中属于“透明”状态,不会影响到其他NAT设备,从而进一步提高扩展性。
步骤S104,代理服务器获取代理地址映射对,根据代理地址映射对获取中间数据包的源地址对应的映射地址。
代理地址映射对中包含了接收到的中间数据包的源地址与映射地址的对应关系。如图3所示,代理客户端和代理服务器之间可能存在NAT设备,当代理客户端将中间数据包发送给代理服务器时,中间数据包会经过NAT设备T,其网络四元组中的路径信息会被转换成由NAT设备T的网络地址发送至终端节点B。而代理服务器中的代理地址映射对中存储有NAT设备T的网络地址与终端节点A的网络地址的对应关系。代理服务器则根据该对应关系获取该中间数据包对应的映射地址。
步骤S106,代理服务器将中间数据包的源地址经过地址转换成映射地址,并转发中间数据包。
在上例中,代理服务器S在获取到映射地址(终端节点A的网络地址)后,将中间数据包的源地址(NAT设备T的网络地址)转换成该映射地址,然后将中间数据包转发至终端节点B,从而完成加速传输。
在一个实施例中,代理地址映射对在终端节点A向终端节点B发起连接时生成。
在本实施例中,代理客户端将中间数据包发送至代理服务器的步骤之前还包括:
代理客户端判断源数据包是否为连接请求包,若是,则根据连接请求包生成传输特征码,并获取与代理服务器的连接,将传输特征码发送给代理服务器。
终端节点A在向终端节点B发送数据之前,需要与终端节点B建立连接。终端节点A通过发送连接请求包向终端节点B发起连接请求。例如,若终端节点A发起TCP(Transmission Control Protocol,传输控制协议)连接,则连接请求包为TCP三次握手中第一握手的SYN包。
代理客户端在接收到连接请求包之后,并不立即将该连接请求包转发给代理服务器,而是先根据该连接请求包生成传输特征码。传输特征码用于标识该连接请求包。传输特征码中包含连接请求包的源地址和目标地址,在上例中,即终端节点A的地址和终端节点B的地址。可根据连接请求包的源地址和目标地址、TCP连接序号、TCP确认序号(代理客户端的标识)或TCP选项中的时间戳等信息生成连接特征码。
如图4所示,代理客户端可预先与代理服务器建立连接通道,如图4中的NUTN连接通道,用于传输通信信令以及连接特征码。代理客户端在将该连接特征码传输给代理服务器时,可获取该连接通道,然后通过该连接通道传输连接特征码。连接通道可以是长连接(即一直保持连接状态)也可以是无状态连接(即发送数据时建立连接,无数据发送时断开连接)。
在本实施例中,若代理客户端接收到的源数据包不为连接请求包,则执行前述的生成中间数据包并发送至代理服务器的步骤。源数据包不为连接请求包即表示源数据包对应的终端节点之间的连接已经建立。
在本实施例中,代理客户端将传输特征码发送给代理服务器的步骤之后还包括:
代理服务器接收传输特征码并缓存,代理服务器向代理客户端发送传输确认消息,代理客户端在接收到传输确认消息之后将连接请求包转发至代理服务器。
进一步的,代理服务器获取中间数据包,并提取中间数据包的源地址的步骤之后还包括:
代理服务器从缓存中获取传输特征码;代理服务器判断中间数据包是否与传输特征码匹配,若是,则根据传输特征码提取映射地址,根据中间数据包的源地址和映射地址生成代理地址映射对。
代理服务器每接收到中间数据包,则根据该中间数据包计算其传输特征码,然后判断该计算得到的传输特征码是否与缓存中的传输特征码匹配。若匹配,则表示该中间数据包为连接请求包,然后获取该中间数据包的源网络地址,提取缓存传输特征码中的映射地址。然后根据该源网络地址和映射地址生成代理地址映射对。
也就是说,在终端节点建立连接时,连接请求包在由代理客户端发送至代理服务器的过程中,不管是否经过了NAT设备,总是可以生成该连接请求包抵达代理服务器时的源网络地址与映射地址的对应关系,从而使得在该连接建立之后,可将通过该连接发送的中间数据包的源网络地址转换成映射地址,使得代理服务器与网络中的NAT设备不产生耦合关系,进一步提高了扩展性。
在一个实施例中,如图5所示,终端节点A和终端节点B经过代理客户端C与代理服务器S的代理进行完整的通信的过程如下:
终端节点A需要先与终端节点B建立连接。终端节点A向终端节点B发起连接请求包。终端节点A发出的连接请求包在抵达代理客户端C后,代理客户端C对连接请求包进行地址转换,使其四元组信息被修改为由终端节点A至代理客户端C,以便代理客户端C截获该连接请求包。然后代理客户端C判断得知该数据包为连接请求包,计算其连接特征码,并将其连接特征码通过图5中示出的NUTN连接通道发送给代理服务器S。
代理服务器S缓存连接特征码,然后通过NUTN连接通道返回确认信息给代理客户端C。
代理客户端C接收到确认信息之后,根据连接请求包经过地址转换生成中间数据包之后转发至终端节点B,转发的中间数据包经过地址转换后其网络四元组信息更改为由终端节点A至终端节点B,与终端节点A发出时的数据包的网络四元组信息相同。
代理服务器S在经过地址转换后(由终端节点A至终端节点B转换成由代理客户端C至代理服务器S)截获该中间数据包,并获取其对应的源网络地址,即中间数据包抵达代理服务器S且未经过代理服务器S的地址转换操作时对应的源网络地址。代理服务器S计算接收到的中间数据包的连接特征码,并与缓存的连接特征码进行匹配,判断该中间数据包为连接请求包,则接收到的中间数据包对应的源网络地址和根据连接特征码得到的终端节点A的地址建立代理地址映射对,然后经过源地址转换后将连接请求包发送给终端节点B,终端节点B接收到的数据包的网络四元组地址为由终端节点A至终端节点B。终端节点A和终端节点B之间的连接即由此建立。
在本实施例中,终端节点A与终端节点B建立连接后,终端节点A发出的连接请求包在抵达代理客户端C后,代理客户端C对连接请求包进行地址转换,使其四元组信息被修改为由终端节点A至代理客户端C。
代理客户端C判断得知该数据包不为连接请求包,则根据该数据包经过地址转换生成中间数据包之后转发至终端节点B,转发的中间数据包经过地址转换后其网络四元组信息更改为由终端节点A至终端节点B,与终端节点A发出时的数据包的网络四元组信息相同。
代理服务器S在经过地址转换后截获该中间数据包,并获取其对应的源网络地址,即中间数据包抵达代理服务器S且未经过代理服务器S的地址转换操作时对应的源网络地址。
代理服务器S在缓存的代理地址映射对中查找与该中间数据包的源网络地址对应的映射地址,即终端节点A的地址,然后将中间数据包经过地址转换后转发至终端节点B。转发后的数据包的源网络地址被地址转换成了映射地址,即终端节点A的地址。终端节点B接收到该数据包后,其源网络地址和目标网络地址分别为终端节点A的地址和终端节点B的地址,对终端节点B而言无法察觉该数据包经过了哪些网络设备,使得加速过程不依赖于网络环境,从而实现了透明的网络加速。
在一个实施例中,如图6所示,一种网络加速传输装置,包括:代理服务器100和代理客户端200。
代理服务器100包括:中间数据包接收模块102、映射地址获取模块104以及地址转换模块106,其中:
中间数据包接收模块102,用于代理服务器获取中间数据包,并提取中间数据包的源地址。
如图2所示,在一个加速网络中,终端节点A和终端节点B中间的加速设备为代理客户端C和代理服务器S,终端节点A和终端节点B各自连接代理客户端C和代理服务器S。终端节点A向终端节点B发送数据包,终端节点A发送的源数据包被代理客户端C截获,然后生成中间数据包并转发给代理服务器S,代理服务器再将该中间数据包发送给终端节点B。
在一个实施例中,代理客户端200还包括:源数据包接收模块202以及源数据包转发模块204,其中:
源数据包接收模块202,用于通过地址转换接收源数据包;
源数据包转发模块204,用于通过地址转换生成中间数据包并发送至代理服务器,中间数据包的源地址和目标地址与源数据包的源地址和目标地址相同
在上例中,终端节点A发出的源数据包中的网络四元组(发出该数据包的源IP及端口、该数据包将要抵达的目标IP及端口)中的路径信息为:由终端节点A的网络地址(包括IP和端口)到终端节点B的网络地址。源数据包接收模块202只有对该数据包进行地址转换后才能接收源数据包,即将源数据包中将要抵达的目标IP及端口修改为代理客户端的IP和端口。
源数据包接收模块202接收源数据包之后,源数据包转发模块204再根据源数据包生成转发给代理服务器100的中间数据包。生成方法为保持数据包的数据内容不变,通过地址转换,将生成的中间数据包的网络四元组中的源地址和目标地址设置为与源数据包相同。
也就是说,在上例中,代理客户端C转发给代理服务器S的中间数据包的路径信息仍为由终端节点A的网络地址(包括IP和端口)到终端节点B的网络地址。使得数据包在经过代理客户端代理加速之后,网络四元组的信息不变,使得代理客户端在网络中属于“透明”状态,不会影响到其他NAT设备,从而进一步提高扩展性。
映射地址获取模块104,用于获取代理地址映射对,根据代理地址映射对获取中间数据包的源地址对应的映射地址。
代理地址映射对中包含了接收到的中间数据包的源地址与映射地址的对应关系。如图3所示,代理客户端C和代理服务器S之间存在NAT设备,当代理客户端200的源数据包转发模块204将中间数据包发送给代理服务器时,中间数据包会经过NAT设备T,其网络四元组中的路径信息会被转换成由NAT设备T的网络地址发送至终端节点B。而代理服务器100中的代理地址映射对中存储有NAT设备T的网络地址与终端节点A的网络地址的对应关系。代理服务器则根据该对应关系获取该中间数据包对应的映射地址。
地址转换模块106,用于将中间数据包的源地址经过地址转换成映射地址,并转发中间数据包。
在上例中,代理服务器S在获取到映射地址(终端节点A的网络地址)后,将中间数据包的源地址(NAT设备T的网络地址)转换成该映射地址,然后将中间数据包转发至终端节点B,从而完成加速传输。
在一个实施例中,代理地址映射对在终端节点A向终端节点B发起连接时生成。
在本实施例中,源数据包接收模块202还用于判断源数据包是否为连接请求包;
代理客户端200还包括:
特征码生成模块206,用于在源数据包为连接请求包时,根据连接请求包生成传输特征码。
特征码发送模块208,用于获取与代理服务器的连接,并将传输特征码发送给代理服务器。
终端节点A在向终端节点B发送数据之前,需要与终端节点B建立连接。终端节点A通过发送连接请求包向终端节点B发起连接请求。例如,若终端节点A发起TCP(Transmission Control Protocol,传输控制协议)连接,则连接请求包为TCP三次握手中第一握手的SYN包。
代理客户端200的源数据包接收模块202在接收到连接请求包之后,并不立即将该连接请求包转发给代理服务器,而是先根据该连接请求包生成传输特征码。传输特征码用于标识该连接请求包。传输特征码中包含连接请求包的源地址和目标地址,在上例中,即终端节点A的地址和终端节点B的地址。可根据连接请求包的源地址和目标地址、TCP连接序号、TCP确认序号(代理客户端的标识)或TCP选项中的时间戳等信息生成连接特征码。
如图4所示,代理客户端C可预先与代理服务器S建立连接通道,如图4中的NUTN连接通道,用于传输通信信令以及连接特征码。代理客户端200的特征码发送模块208在将该连接特征码传输给代理服务器时,可将获取该连接通道,然后通过该连接通道传输连接特征码。连接通道可以是长连接(即一直保持连接状态)也可以是无状态连接(即发送数据时建立连接,无数据发送时断开连接)。
在本实施例中,若代理客户端200的源数据包接收模块202接收到的源数据包不为连接请求包,则用于执行前述的生成中间数据包并发送至代理服务器。源数据包不为连接请求包即表示源数据包对应的终端节点之间的连接已经建立。
在本实施例中,代理服务器100还包括特征码接收模块108,用于接收传输特征码并缓存,并向代理客户端发送传输确认消息;
源数据包转发模块204还用于在接收传输确认消息之后将连接请求包转发至代理服务器100。
进一步的,代理服务器还包括特征码获取模块110,用于从缓存中获取传输特征码。
代理服务器还包括映射对生成模块112,用于判断中间数据包是否与传输特征码匹配,若是,则根据传输特征码提取映射地址,根据中间数据包的源地址和映射地址生成代理地址映射对。
代理服务器100的中间数据包接收模块102每接收到中间数据包,则映射对生成模块112用于根据该中间数据包计算其传输特征码,然后判断该计算得到的传输特征码是否与缓存中的传输特征码匹配。若匹配,则表示该中间数据包为连接请求包,然后获取该中间数据包的源网络地址,提取缓存传输特征码中的映射地址,并根据该源网络地址和映射地址生成代理地址映射对。
也就是说,在终端节点建立连接时,连接请求包在由代理客户端发送至代理服务器的过程中,不管是否经过了NAT设备,总是可以生成该连接请求包抵达代理服务器时的源网络地址与映射地址的对应关系。从而使得在该连接建立之后,可将通过该连接发送的中间数据包的源网络地址转换成映射地址。使得代理服务器与网络中的NAT设备不产生耦合关系,进一步提高了扩展性。
需要说明的是,代理服务器和代理客户端的功能既可以结合在同一设备中,并将该设备成对设置于需要网络加速的终端节点之间,也可以是独立的两种设备,分别设置于需要加速网络的两端。
上述网络加速传输方法及装置中,代理服务器在接收到中间数据包后,通过获取代理地址映射对来获取中间数据包的源网络地址对应的映射地址,并将中间数据包的地址转换成映射地址后转发,使得代理服务器转发后的数据包的网络四元组地址不会因为代理服务器和代理客户端之间的NAT设备而发生改变,使得代理服务器与NAT设备不具备耦合关系,从而提高了加速网络的扩展性。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。