欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种数据传输装置及方法独创技术38549字

一种数据传输装置及方法

2023-03-19 01:55:27

一种数据传输装置及方法

  本发明是申请号为201911020063.2,申请日为2019年10月24日,申请类型为发明,申请名称为一种基于虚拟主机的数据转发装置的分案申请。

  技术领域

  本发明属于通信技术领域,尤其涉及一种基于虚拟主机的数据转发装置。

  背景技术

  现有的只支持单一网络接口的通信模式无法满足高带宽、高数据量的需求。相比于传统网络中TCP协议利用单个网络路径进行数据传输的方式,并行多路传输技术能够利用多个网络路径的同时传输数据,是提升数据传输速率、降低数据传输延迟波动的有效手段。并行多路传输是利用主机的多网络接口实现数据的并行传输。随着接入设备成本的降低、网络接入技术(如ADSL、LAN、WIFI、GRPS、3G、LTE等)的多样化,利用通信终端的多网络接口实现数据在多路径上的并行传输、提高网络效率成为现阶段的研究热点。并行多路传输支持多条路径同时传输数据,因而具有高容错性、高可靠性、高吞吐量和高安全性的特点。其优势决定了其在应急通信、多方会议等方面的关阔应用前景。

  当前,在应用层、传输层和网络层均有实现数据并行传输的技术。传输层因其维护更多的包括丢包率、时延、吞吐量的端到端路径信息,同时传输层独立于应用层和网络层,能够进行整个连接的流量控制和单个路径的拥塞控制解耦合,从而具有明显的优势。现在的TCP和UDP的连接只支持一条传输路径,无法满足并行多路传输的要求。因此针对传输层提出了MPTCP协议。MPTCP作为一种TCP的扩展,是由IEFT在2013年发布的。MPTCP技术允许在一个连接期间内通过多个子流传输数据,进而提高数据传输的可用带宽。MPTCP技术在无线网环境中已经得到了很好的应用。例如使用WiFi接口和移动网络以增加数据吞吐量,并解决应用层的垂直切换问题。

  MPTCP协议需要进行部署后方可实现其设计功能。MPTCP协议的部署包括三个必不可少的需求:1、服务器系统提供商必须实现MPTCP并且将其安装到服务器中。2、至少一个客户端必须具有多宿主性能,即服务器系统允许终端用户通过不同的因特网接口连接至因特网。3、其他服务器系统也需要逐渐兼容MPTCP。由于MPTCP协议需要客户端和服务器系统分别提供支持,使得其难以进行部署。

  例如,公开号为CN108075987A的专利文献公开了一种多路径数据传输方法及设备,多路径代理客户端和多路径代理网关之间通过第一网际互联协议IP地址建立至少两个多路径数据子流,并进行多路径数据子流数据传输。所述多路径代理网关与所述多路径代理客户端待访问的应用服务器之间,依据多路径代理客户端和多路径代理网关之间建立至少两个多路径数据子流的第一IP地址,建立TCP链接并进行TCP数据传输。通过多路径代理客户端和多路径代理网关的代理,实现基于多路径代理客户端的IP地址信息进行MPTCP多路径数据传输。该发明采用代理服务器的形式为不支持MPTCP协议的通信主机间提供多路径连接服务,而且为了提高安全性和实现对终端流量的统计和控制,多路径代理服务器基于多路径代理客户端的IP地址信息与多路径代理客户端待访问的应用服务器建立TCP连接,但MPTCP位于应用层之下,IP层之上,取代了原来的TCP层,因此MPTCP需要内核支持;而且MPTCP在会话期间会改变传输路径和终端,难以保证传输安全,容易被入侵。因此,本发明旨在提供一种数据转发装置,其能够在不需要客户端或服务器端程序作任何修改的情况下对于多客户端场景实现多路传输,并通过重复利用代理服务器带宽的方式优化网络传输性能。

  此外,一方面由于对本领域技术人员的理解存在差异;另一方面由于发明人做出本发明时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本发明不具备这些现有技术的特征,相反本发明已经具备现有技术的所有特征,而且申请人保留在背景技术中增加相关现有技术之权利。

  发明内容

  如本文所用的词语“模块”描述任一种硬件、软件或软硬件组合,其能够执行与“模块”相关联的功能。

  针对现有技术之不足,本发明提供一种基于虚拟主机的数据转发装置,至少包括:客户端,能够通过接入网络的方式对服务器系统进行访问;服务器系统,能够按照建立多通信连接的方式与所述客户端进行数据传输;所述数据转发装置还包括能够与所述客户端建立能够传输用户数据包的数据通路的第一多路径数据传输器以及能够与所述服务器系统建立能够传输用户数据包的数据通路的第二多路径数据传输器,在数据经由所述第一多路径数据传输器转发至所述第二多路径数据传输器的情况下,所述第一多路径数据传输器能够生成具有至少一个第一虚拟集线器的第一虚拟服务器空间,所述第二多路径数据传输器能够生成具有至少一个第二虚拟集线器的第二虚拟服务器空间,需由所述第一多路径数据传输器转发的数据能够按照经所述第一虚拟集线器转化为特定类型的数据帧的方式传输至所述第一虚拟服务器空间,其中,所述第一虚拟服务器空间能够按照抓包的方式获取所述数据帧,使得该数据帧所包含的用户数据包在进入第一虚拟服务器空间的相应协议栈时能够被阻止;所述数据帧在经由第一多路径数据传输器与第二多路径数据传输器之间的静态多路径连接由所述第一虚拟服务器空间传输至所述第二虚拟服务器空间的情况下,所述第二虚拟集线器能够将所述数据帧还原为与所述第一虚拟集线器相匹配的所述特定类型。应用TCP连接的分割后,第一多路径数据传输器1可以通过预先对客户端3的连接请求进行应答的方式快速建立与客户端3的连接。第二多路径数据传输器2则可以通过预先下载数据的形式将数据进行缓存,相比于服务器系统4直接向客户端3发送的方式而言,这种方式可以最大化利用第一多路径数据传输器1和第二多路径数据传输器2之间的带宽,提升传输性能。同时,第一多路径数据传输器与第二多路径数据传输器之间通信时不须考虑保持用户数据原样传输,故可以进行多种进一步优化,例如可以将数据加密以提高安全性;将数据压缩以进一步提高传输效率;使用带纠错的编码传输数据以提高传输可靠性、稳定性。第二多路径数据传输器和/或第二多路径数据传输器亦可对经常被请求的数据进行缓存,以便快速对客户端进行服务。

  根据一种优选实施方式,所述第一多路径数据传输器和所述第二多路径数据传输器能够基于其各自的通信模块建立彼此间的静态多路径数据连接,其中,每条静态多路径数据连接能够自行选择所用的数据传输协议,并且在静态多路径数据连接建立之后,所述第一多路径数据传输器和所述第二多路径数据传输器能够通过该静态多路径数据连接彼此通信。

  根据一种优选实施方式,数据经由所述第一多路径数据传输器转发至所述第二多路径数据传输器至少包括如下步骤:所述第一多路径数据传输器在与所述客户端建立数据连接时生成至少一个所述第一虚拟服务器空间;在所述客户端经由所述第一多路径数据传输器向远端发送数据包的情况下,所述第一多路径数据传输器能够将所述数据包转发至所述第一虚拟集线器,使得转发到所述第一虚拟服务器空间上的数据均为特定类型的数据帧。

  根据一种优选实施方式,数据经由所述第一多路径数据传输器转发至所述第二多路径数据传输器还包括如下步骤:所述第一虚拟服务器空间按照抓包的方式获取所述数据帧;在所述第一虚拟服务器空间处理并转发所述数据帧内包含的用户数据包的情况下,所述第一虚拟服务器空间配置为能够阻止该数据帧所包含的用户数据包进入第一虚拟服务器空间的相应协议栈;由所述第一虚拟服务器空间指示第一多路径数据传输器将所述用户数据包通过所述静态多路径数据连接发送至第二多路径数据传输器。

  根据一种优选实施方式,所述第二多路径数据传输器配置为:能够基于所述静态多路径数据连接从所述第一多路径数据传输器接收数据,其中,所述第二虚拟服务器空间配置为对收到的数据进行恢复以得到用户数据包;恢复得到的用户数据包能够经由所述第二多路径数据传输器的第二虚拟集线器封装为特定类型的数据帧,并由所述第二虚拟服务器空间指示所述第二多路径数据传输器将该特定类型的数据帧转发至所述服务器系统。

  根据一种优选实施方式,第一虚拟服务器空间按照抓包的方式获取所述数据帧至少包括如下步骤:包含各个应用所能处理的数据、包含来自多个用户数据的数据包从所述第一多路径数据传输器外到达通信模块;通信模块将TCP数据包转发给第一虚拟服务器空间外的第三虚拟集线器,第三虚拟集线器将所述TCP数据包转发给第一虚拟服务器空间内的第一虚拟集线器;第一多路径数据传输器在所述第一虚拟集线器上获取所述TCP数据包,其中,所述TCP数据包在进入内核协议栈之前能够被所述第一多路径数据传输器丢弃。

  根据一种优选实施方式,所述第一多路径数据传输器和所述第二多路径数据传输器均至少包括数据包截取模块、用户连接管理器和分流策略管理器,其中:所述数据包截取模块配置为原始套接字以获取来自多个用户/服务器的数据包,根据数据包包头对用户进行识别;所述用户连接管理器配置为缓存来自数据包截取模块的数据并对数据进行发送;所述分流策略管理器配置为对每个用户使用多路传输连接的方式进行管理。

  本发明还提供一种数据转发方法,至少包括如下步骤:配置能够通过接入网络的方式对服务器系统进行访问的客户端;配置能够按照建立通信连接的方式与所述客户端进行数据传输的服务器系统;配置能够与所述客户端建立能够传输用户数据包的数据通路的第一多路径数据传输器;配置能够与所述服务器系统建立能够传输用户数据包的数据通路的第二多路径数据传输器,在数据经由所述第一多路径数据传输器转发至所述第二多路径数据传输器的情况下,所述第一多路径数据传输器能够生成具有至少一个第一虚拟集线器的第一虚拟服务器空间,所述第二多路径数据传输器能够生成具有至少一个第二虚拟集线器的第二虚拟服务器空间,其中:需由所述第一多路径数据传输器转发的数据配置为按照经所述第一虚拟集线器转化为特定类型的数据帧的方式传输至所述第一虚拟服务器空间,其中,所述第一虚拟服务器空间配置为按照抓包的方式获取所述数据帧,使得该数据帧所包含的用户数据包在进入第一虚拟服务器空间的相应协议栈时能够被阻止;在所述数据帧经由第一多路径数据时传输器与第二多路径数据传输器之间的静态多路径连接由所述第一虚拟服务器空间传输至所述第二虚拟服务器空间的情况下,所述第二虚拟集线器配置为将所述数据帧还原为与所述第一虚拟集线器相匹配的所述特定类型。

  根据一种优选实施方式,所述数据转发方法还包括如下步骤:所述第一多路径数据传输器和所述第二多路径数据传输器配置为能够基于其各自的通信模块建立彼此间的静态多路径数据连接,其中,每条静态多路径数据连接能够自行选择所用的数据传输协议,并且在静态多路径数据连接建立之后,所述第一多路径数据传输器所述和第二多路径数据传输器通过该静态多路径数据连接彼此通信;客户端的数据配置为能够经由第一多路径数据传输器进行第一级转发,并且第二多路径数据传输器配置为从所述第一多路径数据传输器接收数据以实现的数据的第二级转发,其中,所述第一级转发至少包括如下步骤:所述第一多路径数据传输器在与所述客户端建立数据连接时生成至少一个所述第一虚拟服务器空间,在所述客户端经由所述第一多路径数据传输器向远端发送数据包的情况下,所述第一多路径数据传输器能够将所述数据包转发至所述第一虚拟集线器,使得转发到所述第一虚拟服务器空间上的数据均为特定类型的数据帧;所述第一虚拟服务器空间按照抓包的方式获取所述数据帧,在所述第一虚拟服务器空间处理并转发所述数据帧内包含的用户数据包的情况下,所述第一虚拟服务器空间配置为能够阻止该数据帧所包含的用户数据包进入第一虚拟服务器空间的相应协议栈;由所述第一虚拟服务器空间指示第一多路径数据传输器将所述用户数据包通过所述静态多路径数据连接发送至第二多路径数据传输器。

  根据一种优选实施方式,所述第二级转发至少包括如下步骤:基于所述静态多路径数据连接从所述第一多路径数据传输器接收数据,其中,所述第二虚拟服务器空间配置为对收到的数据进行恢复以得到用户数据包;恢复得到的用户数据包能够经由所述第二多路径数据传输器的第二虚拟集线器封装为特定类型的数据帧,并由所述第二虚拟服务器空间指示所述第二多路径数据传输器将该特定类型的数据帧转发至所述服务器系统。

  本发明的有益技术效果:应用TCP连接的分割后,第一多路径数据传输器可以通过预先对客户端的连接请求进行应答的方式快速建立与客户端的连接。第二多路径数据传输器则可以通过预先下载数据的形式将数据进行缓存,相比于服务器系统直接向客户端发送的方式而言,这种方式可以最大化利用第一多路径数据传输器和第二多路径数据传输器之间的带宽,提升传输性能。同时,第一多路径数据传输器与第二多路径数据传输器之间通信时不须考虑保持用户数据原样传输,故可以进行多种进一步优化。

  附图说明

  图1是本发明优选的数据转发装置的模块化连接结构示意图;

  图2是本发明优选的数据转发装置的工作原理示意图;

  图3是本发明优选的数据抓包截取过程的示意图;和

  图4是本发明优选的数据发送过程的示意图。

  附图标记列表

  1:第一多路径数据传输器2:第二多路径数据传输器3:客户端

  4:服务器系统5:数据包截取模块6:用户连接管理器

  7:分流策略管理器8:调度算法9:上下文数据源

  10:原始套接字 11:原始套接字接口 12:内核协议栈

  13:用户空间 14:内核 15:第一虚拟服务器空间

  16:第二虚拟服务器空间 17:第一虚拟集线器 18:第二虚拟集线器

  19:第三虚拟集线器 20:通信模块

  具体实施方式

  下面结合附图进行详细说明。

  实施例1

  如图1所示,本发明提供一种数据转发装置,至少包括第一多路径数据传输器1和第二多路径数据传输器2。第一多路径数据传输器1配置为能够与若干个客户端3建立能够传输用户数据包的数据通路。第二多路径数据传输器2能够与若干个服务器系统4建立能够传输用户数据包的数据通路。第一多路径数据传输器1与第二多路径数据传输器2之间能够建立多路传输连接。能够传输用户数据包的数据通路是指客户端3与第一多路径数据传输器1之间可以基于TCP协议以利用单个网络路径进行数据传输。多路传输连接是指在第一多路径数据传输器1与第二多路径数据传输器2间的不同网络通路上建立的多个数据传输连接,其中单个连接所使用的传输协议类型无限制,也不必与其他连接相同。客户端3的数据包能够依次经第一多路径数据传输器1和第二多路径数据传输器2传输至服务器系统4。或者服务器系统4的数据包能够依次经第二多路径数据传输器2和第一多路径数据传输器1传输至客户端3。通过将第二多路径数据传输器2部署于服务器系统4上,能够在不修改服务器系统程序的情况下为该服务器系统增加多路传输功能。通过设置第一多路径数据传输器1和第二多路径数据传输器2至少能够达到如下技术效果:本发明通过设置第一多路径数据传输器1和第二多路径数据传输器2能够将服务器系统4与客户端3之间的TCP连接分割成三段。即客户端3与第一多路径数据传输器1之间的连接、第一多路径数据传输器1与第二多路径数据传输器2之间的连接、第二多路径数据传输器2与服务器系统4之间的连接。相比于服务器系统4与客户端3直接通过TCP连接通信的方式,TCP连接的分割使得客户端的请求数据会被第一多路径数据传输器1处理并发往第二多路径数据传输器2。第二多路径数据传输器2会处理第一多路径数据传输器1发来的数据并恢复出用户的原始数据,将之发往服务器系统4。服务器系统4向用户发送数据时则按照相反的流程执行。应用TCP连接的分割后,第一多路径数据传输器1可以通过预先对客户端3的连接请求进行应答的方式快速建立与客户端3的连接。第二多路径数据传输器2则可以通过预先下载数据的形式将数据进行缓存,相比于服务器系统4直接向客户端3发送的方式而言,这种方式可以最大化利用第一多路径数据传输器1和第二多路径数据传输器2之间的带宽,提升传输性能。同时,第一多路径数据传输器与第二多路径数据传输器之间通信时不须考虑保持用户数据原样传输,故可以进行多种进一步优化,例如可以将数据加密以提高安全性;将数据压缩以进一步提高传输效率;使用带纠错的编码传输数据以提高传输可靠性、稳定性。第二多路径数据传输器和/或第二多路径数据传输器亦可对经常被请求的数据进行缓存,以便快速对客户端进行服务。此外,本发明的第一多路径数据传输器1需要部署客户端与服务器间本来的ip转发通路上才能正常工作。第二多路径数据传输器2可以不部署在客户端与服务器间本来的ip转发通路上也能正常工作。

  优选的,将第一多路径数据传输器1和第二多路径数据传输器2分别部署在不同的位置以使其分别与不同功能的客户端3和服务器系统4进行配套使用,能够实现不同的使用功能。例如,将第一多路径数据传输器1部署于车载或机载Wi-Fi控制器等在公共场所使用的为客户端提供网络服务的设备上时,第一多路径数据传输器1能够对多个客户端提供基于多路传输的网络访问功能。将第二多路径数据传输器2部署在CDN提供商的骨干网络中时,第二多路径数据传输器2能够基于多路传输连接提高客户端访问该CDN所包含的数据的效率。将第二多路径数据传输器2部署于特定内网中的情况下,能够取得类似VPN的效果,即在外部设备访问该内网中的数据时,可以获得多路传输提供的传输效率增益。优选的,数据转发装置能够包括若干个第一多路径数据传输器1和若干个第二多路径数据传输器2。通过部署若干个第一多路径数据传输器1和若干个第二多路径数据传输器2能够形成骨干网络,进而针对客户端3和服务器系统所在位置的不同选取最近的第一多路径数据传输器1和/或第二多路径数据传输器2进行服务以提供数据转发装置的性能。例如,在实际应用中,可以将第一多路径数据传输器1部署于贴近用户的各个网络边界节点,如高铁或其他公共场所提供的Wi-Fi控制器上。第一多路径数据传输器1的部署位置的部署策略是:若部署者拥有多条访问网络的路径,而同时使用多条路径提供网络服务可以获得比用户直接访问网络更高的性能或更低的费率,则可以进行部署,其中,多条访问网络的路径指拥有多个网络服务商(ISP)提供的服务。而第二多路径数据传输器2则可以部署于各大云服务提供商,各大CDN处。第二多路径数据传输器2的部署策略是:应当尽量靠近实际的服务器位置。部署多个第一多路径数据传输器1的目的是使得用户数据在以传统路由方式传输时一定会经过第一多路径数据传输器1,从而可以被截获。部署多个第二多路径数据传输器2的目的是性能的调优,即可以通过第二多路径数据传输器2的位置选择使得用户与第一多路径数据传输器1、第一多路径数据传输器1与第二多路径数据传输器2、第二多路径数据传输器2与服务器之间的延迟之和最小。在进行如上所述的部署后,假设用户在不同公共场所分别使用了服务器位于地址A和地址B的两种网络应用,则由于部署了多个第一多路径数据传输器1,用户可以在不同的场所都享受多路数据传输服务;而由于部署了多个第二多路径数据传输器2,用户可以在使用服务器位于地址A的网络应用时选取部署在地址A的第二多路径数据传输器2,在使用服务器位于地址B的网络应用时选取部署在地址B的第二多路径数据传输器2,从而使用户使用两种不同应用时都获得最高的性能。即若只在地址A部署,则访问地址B的服务器时会产生地址A到地址B的传输延时,反之亦然。

  优选的,客户端3和服务器系统4能够是位于应用层之上的具体软件进程。例如,客户端3能够是安装在手机上的例如是QQ软件、微信软件、购物商城软件所分别对应的进程。进而将第一多路径数据传输器部署于网络用户持有的例如是手机的设备上时,本发明的数据转发装置能够利用手机上的多个蜂窝网络设备、Wi-Fi网络设备同时进行通信,进而提高网络用户的上网质量。

  优选的,如图2所示,为了便于理解,将本发明的数据转发装置的工作原理进行详细论述。例如,原始套接字10用于截获用户发往服务器的数据或者服务器发往用户的数据。原始套接字10与内核协议栈12之间的关系为:原始套接字10是内核协议栈12向用户空间开放的数据包截取接口,通过调用该接口可以实现数据包截取功能。原始套接字10与数据包截取模块5之间的关系为数据包截取模块5调用原始套接字接口11获取来自多个用户/服务器的数据包,根据数据包包头对用户进行识别。用户连接管理器6用于缓存来自数据包截取模块5的数据、对数据进行发送。分流策略管理器7用于对每个用户使用多路传输连接的方式进行管理,如该用户使用多路传输连接时的优先度、该用户的数据在多路传输连接中的各个连接上的分配方式等。上下文数据源9提供可扩展的各种调度算法8可用的数据,数据来源可以是内核,也可以是用户空间。调度算法8通过读取每个用户连接的分流策略以及上下文数据源9提供的数据决定用户连接管理器6应当将用户数据发往的传输连接。优选的,原始套接字、原始套接字接口11和内核协议栈均位于内核14中。数据包截取模块、用户连接管理器、分流策略管理器和调度算法均位于用户空间13中。

  实施例2

  本实施例是对实施例1的进一步改进,重复的内容不再赘述。

  本发明还提供一种数据转发方法,至少包括如下步骤:

  S1:第一多路径数据传输器1生成具有至少一个第一虚拟集线器的至少一个第一虚拟服务器空间,第二多路径数据传输器2生成具有至少一个第二虚拟集线器的至少一个第二虚拟服务器空间。

  具体的,本发明的数据转发装置在运行时会创建虚拟主机,并在其中运行,对于实体主机上的配置改动仅限于将用户数据发送至数据转发装置所在的虚拟主机及将来自数据转发装置的数据发送给用户,最小化了可能的数据转发装置配置冲突。同时在虚拟主机中运行时,具有潜在风险的数据转发装置配置改动将不会在实体主机上进行,降低了潜在的安全风险。

  优选的,第一虚拟服务器空间和第二虚拟服务器空间是指:例如在网关等设备上单纯利用软件生成的协议栈和属于该协议栈的网络设备之集合;对其他通信对象而言,第一虚拟服务器空间和第二虚拟服务器空间具备独立的网卡、存储器和处理器。

  S2:第一多路径数据传输器1和第二多路径数据传输器2能够基于其各自的通信模块建立彼此间的静态多路径数据连接,其中,每条静态多路径数据连接能够自行选择所用的数据传输协议,在静态多路径数据连接建立之后,第一多路径数据传输器1和第二多路径数据传输器2仅能通过该静态多路径数据连接彼此通信。

  具体的,静态多路径数据连接是指第一多路径数据传输器1与第二多路径数据传输器2在按照握手方式建立连接之后,第一多路径数据传输器1仅与第二多路径数据传输器2进行通信,并且第二多路径数据传输器2也仅与第一多路径数据传输器1进行通信。即每条静态多路径数据连接仅由一对第一多路径数据传输器1和第二多路径数据传输器2构成。静态多路径数据连接能够根据实际情况进行动态变化,即静态多路径数据连接并不需要完全是预先建立好的,其能够在后续的过程中,根据实际情况进行例如是重启/增加/删除部分静态多路径数据连接等操作。

  S3:客户端3的数据经由第一多路径数据传输器1进行第一级转发。具体包括如下步骤:

  S30:客户端3与第一多路径数据传输器1建立数据连接,其中,在该第一多路径数据传输器1上生成有至少一个第一虚拟服务器空间。

  S31:在客户端3经由第一多路径数据传输器1向远端发送数据包的情况下,第一多路径数据传输器1能够将该数据包转发至第一虚拟服务器空间的内核所支持的第一虚拟集线器,使得转发到该第一虚拟服务器空间上的数据均为特定类型的数据帧。

  具体的,数据包可以是TCP/IP协议数据包。第一虚拟集线器可以是虚拟以太网卡。特定类型的数据帧可以是以太网帧。第一多路径数据传输器1在转发数据包到内核所支持的虚拟网卡时,由内核自动完成协议转换,而无需额外模块,提高了兼容性,且大幅度减少了编程工作难度;这就意味着,第一虚拟服务器空间始终得到相同格式的数据,而不需要对各种协议进行识别并应对各类复杂数据格式;同时,不属于该客户端的数据包仍然由该第一多路径数据传输器1按既定方式处理,例如该第一多路径数据传输器1仍然可以具备例如是发送结算用控制信息等其他功能。因此本发明的数据转发装置部署方便,不会干预第一多路径数据传输器1的既有功能。

  优选的,在客户端3经由第一多路径数据传输器1向远端发送数据包时,数据包能够进行分类。即数据包分类是指在数据包发送给第一虚拟服务器空间之前,由第一多路径数据传输器1或者其上部署的防火墙将收到的数据包进行分类。分类的依据至少包括是否为TCP/IP协议数据包或者客户端3是否与第一多路径数据传输器之间连接,即发送数据包的客户端3是否由该第一多路径数据传输器直接服务。进而在以太网帧包含的TCP/IP协议数据包进入TCP/IP协议栈之前由第一虚拟服务器空间将TCP/IP协议数据包丢弃,使得第一虚拟服务器空间的TCP/IP协议栈不对该以太网帧包含的TCP/IP协议数据包做出响应。通过代替TCP/IP协议栈处理数据,由第一虚拟服务器空间转发上述数据,进而能够避免引发冲突。

  优选的,以太网帧是指在以太网链路上的数据包。以太网帧的起始部分由前导码和帧开始符组成。起始部分后面紧跟一个以太网报头,以MAC地址说明目的地址和源地址。以太网帧的中部是该帧负载的包含其他协议报头的数据包。以太网帧的结尾部分是一个32位冗余校验码,用以检验数据传输是否出现损坏。

  优选的,TCP/IP协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP协议栈就是一个类似数据结构中的栈的模型,它有很多层,每层承担着不同的功能,有不同的协议。可以把协议栈理解为一个四层的模型:应用层、传输层、网络层、链路层。应用层中有一些面向用户的与应用相关的协议,涉及到对数据的一些分析和处理,使得用户信息和数据流之间得到转换;传输层是负责执行数据流和数据段之间的转换,是数据信息的管理层面;网络层涉及到与其他主机的联系,对数据封装并找到合适的路径把信息发出去或者接收进来;链路层中主要是一系列为了实现相应功能的接口,是协议栈的最底层。用户信息会从应用层开始,往下逐步被包装,当传到另一个主机的时候,再从下到上一步步打开包装,最终解析还原为用户信息。在上述过程中,协议栈中的各项协议确保了传输过程的实现以及数据的安全。

  S32:由第一虚拟服务器空间以抓包方式获取数据帧,并且由第一虚拟服务器空间处理并转发该数据帧内包含的用户数据包,同时阻止该数据帧所包含的用户数据包进入第一虚拟服务器空间的相应协议栈,其中,由第一虚拟服务器空间指示第一多路径数据传输器将从数据帧内获得的用户数据包通过静态多路径数据连接发送至第二多路径数据传输器。

  具体的,如图3所示,用户数据的抓包截取过程包括如下步骤:S100:包含各个应用所能处理的数据、包含来自多个用户数据的数据包从代理服务器外到达通信模块20。S110:第一多路径数据传输器1或第二多路径数据传输器2通过在通信模块20上部署Linux防火墙规则、策略路由规则将TCP数据包转发给第三虚拟集线器19,其他非TCP数据包则不受影响,按照既定方式被内核协议栈12处理。S120:第三虚拟集线器19自动将数据转发给第一虚拟服务器空间15内的第一虚拟集线器17或者转发给第二虚拟服务器空间16的第二虚拟集线器18。S130:第一多路径数据传输器1或第二多路径数据传输器2在第一虚拟集线器17或第二虚拟集线器18上获取数据包。S140:配置Linux防火墙规则以使得数据包在被第一多路径数据传输器1或第二多路径数据传输器2读取后、进入内核协议栈之前将之丢弃。抓包是指复制而非转移数据包。故进行抓包后数据转发装置获得的是数据包的副本,原数据包必须被丢弃,否则仍然会进入内核协议栈。

  优选的,如图4所示,数据发送的过程为:S200:第一多路径数据传输器1或第二多路径数据传输器2在第一虚拟集线器或第二虚拟集线器上发送数据包。S210:数据包将会被自动转发至第一虚拟服务器空间或第二虚拟服务器空间外的第三虚拟集线器19上。S220:第一多路径数据传输器1或第二多路径数据传输器2通过配置第一虚拟服务器空间或第二虚拟服务器空间所处主机上的路由规则将数据转发至通信模块20,并由通信模块20将之发出。优选的,第一虚拟服务器空间或第二虚拟服务器空间所处主机可以是实体机,也可以是虚拟机,故上述通信模块仅指第一多路径数据传输器1或第二多路径数据传输器2将其看作通信模块,实际上该通信模块也可以是虚拟的。

  优选的,在截取数据时,通过使用策略路由将TCP数据发送至数据转发装置所在的第一虚拟服务器空间15,并合理配置第一虚拟服务器空间使其中的内核协议栈12丢弃所有输入数据;同时在第一虚拟服务器空间中的第一虚拟集线器上抓包以达到截取数据的目的。具体的,内核协议栈12属于第一多路径数据传输器1的内核协议栈,第一虚拟服务器空间中有与第一多路径数据传输器1在代码层面完全相同的内核协议栈,因此,第一多路径数据传输器1和第一虚拟服务器空间中的内核协议栈12属于两个不同的副本。在发送数据时,数据转发装置在第二虚拟集线器上发包,通过合理配置路由将数据发送至通信模块上并传输给用户。通过这样的配置方式,使得本发明的数据转发装置能在不对程序进行修改的情况下兼容各种制式的通信模块。

  优选的,第一虚拟服务器空间以抓包方式获取数据帧可以理解为:例如在数据链路层上嗅探经过该第一虚拟服务器空间的网卡的所有数据包;换而言之,该第一虚拟服务器空间复制并保存数据链路层上的经过该第一虚拟服务器空间的网卡的所有数据包。阻止数据帧所包含的用户数据包进入第一虚拟服务器空间的相应协议栈是为了避免同一数据被相应协议栈做二次错误处理。

  S4:第二多路径数据传输器2从第一多路径数据传输器1接收数据以实现的数据的第二级转发。具体包括如下步骤:

  S40:第二多路径数据传输器2基于静态多路径数据连接从第一多路径数据传输器1接收数据,其中,由第二多路径数据传输器2生成的第二虚拟服务器空间配置为对收到的数据进行恢复以得到用户数据包。

  S41:由在第二多路径数据传输器2上的第二虚拟服务器空间将恢复的用户数据包经由第二多路径数据传输器的内核所支持的第二虚拟集线器封装为特定类型的数据帧,并由第二虚拟服务器空间指示该第二多路径数据传输器将该特定类型的数据帧转发至服务器系统4。

  实施例3

  优选的,本发明还提供一种数据分流模型,至少由连接顺序调度算法、数据顺序调度算法和传输路径调度算法共同限定。连接顺序调度算法是用于对每个用户连接的数据发送顺序进行调度的算法。数据顺序调度算法是用于对同一个连接中数据发送顺序进行调度的算法。传输路径调度算法是用于将数据分流至某一/某些传输路径上的算法。具体的,在实际应用中,连接顺序调度算法在系统需要服务多个用户时常被应用,可以使用使每个用户轮流发送数据的策略保证用户间的公平性,或可以对于某用户使用“当该用户有数据需要发送时,让所有其他用户等待”的策略,以保证某些特权用户的数据传输质量等。例如,针对连接#1、连接#2和连接#3,每一连接均对应至少一个用户。进而通过每一个连接便能够实现不同用户的不同数据的传输。连接顺序调度算法可以配置为连接#1、连接#2和连接#3依次执行的方式实现数据的传输。同时,连接顺序调度算法也可以配置为优先执行连接#3以满足使用该连接的特权用户。数据顺序调度算法在改变用户数据的发送顺序可以获得性能提升时常被应用,如可以将在某个传输连接上发送后许久未到达对端的数据在其他连接上再次发送,此时需要改变发送数据的顺序以使得需要再次发送的数据最先发送。传输路径调度则是提升用户数据在多路传输连接上传输的效率的重要途径,如可以通过获取每个传输连接上的传输性能、负载等历史数据,选取传输性能较高、负载较低的路径进行发送。

  需要注意的是,上述具体实施例是示例性的,本领域技术人员可以在本发明公开内容的启发下想出各种解决方案,而这些解决方案也都属于本发明的公开范围并落入本发明的保护范围之内。本领域技术人员应该明白,本发明说明书及其附图均为说明性而并非构成对权利要求的限制。本发明的保护范围由权利要求及其等同物限定。

《一种数据传输装置及方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)