CN105072057B - 一种用于网络数据传输的中间交换设备及其方法和系统 - Google Patents

一种用于网络数据传输的中间交换设备及其方法和系统 Download PDF

Info

Publication number
CN105072057B
CN105072057B CN201510400138.5A CN201510400138A CN105072057B CN 105072057 B CN105072057 B CN 105072057B CN 201510400138 A CN201510400138 A CN 201510400138A CN 105072057 B CN105072057 B CN 105072057B
Authority
CN
China
Prior art keywords
data packet
switching equipment
packet
intermediate switching
rule
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510400138.5A
Other languages
English (en)
Other versions
CN105072057A (zh
Inventor
宋磊
张骏
张广兴
谢高岗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201510400138.5A priority Critical patent/CN105072057B/zh
Publication of CN105072057A publication Critical patent/CN105072057A/zh
Application granted granted Critical
Publication of CN105072057B publication Critical patent/CN105072057B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种用于网络数据传输的中间交换设备,其特征在于包括:内核空间中,用于储存用以转发属于特定用户和/或应用的TCP和/或UDP数据包的规则的流表;以及内核空间中,包括用于转发符合所述规则的数据包以进行加速并且将不符合所述规则的数据包转发出所述中间交换设备的识别截获模块,及用于转发经加速的符合所述规则的数据包的转发模块;以及用于压缩TCP数据包的报文并添加端口标记以封装成UDP数据包,和/或解压UDP数据包以还原TCP数据包的处理模块。

Description

一种用于网络数据传输的中间交换设备及其方法和系统
技术领域
本发明涉及计算机网络数据传输,特别涉及计算机网络数据传输的网络流量加速设备。
背景技术
在当前网络环境下,网络流量呈井喷式增长,由此导致现有网络链路无法满足其对于网络带宽、时延等方面的需求;并且巨大的网络流量也会导致丢包率的增加,由高丢包率引发的重新传输又会进一步增加网络链路上的流量,而这种影响是循环递进的。在上述的环境下进行的TCP数据传输,其传输效率低、耗费时间长、并且会增加用户开销,因此急需一种能够在现有的广域网环境下,加速数据传输的技术。
为解决上述问题,在一部分现有技术中采用了UDP封装TCP的方法:即将一个TCP连接转化为TCP-UDP、UDP-UDP、UDP-TCP的三个连接,并且在进行UDP封装时对数据流量进行压缩、缓存、去冗余等技术以优化上行下行的网络数据传输。例如,在专利公开号为CN102820915B的中国专利中,提出了“改善TCP传输性能的卫星链路系统及其使用方法”,通过在卫星链路中引入可使TCP与UDP协议相互转化的代理服务器,而在代理服务器之间建立可靠的UDP协议传输;由此,在保证原协议不被修改的情况下,利用UDP协议的高效快速的特点以进行透明的加速过程。
然而,上述现有技术通常使用传统的三层交换机制,因此无法对特定数据流进行识别而只能做出统一动作,并且通常不会考虑在转发处理时识别不同类型的数据包;其表现为对所有经过代理网关的数据流量进行无差别的加速处理,由此而无法做到针对不同的用户和/或应用实施差异化的加速服务,例如,无法优先对优先级较高的用户和/或网速对用户体验影响较大的应用(如流媒体)进行加速。
此外,在上述现有技术中,位于收发两端的代理网关通常需先进行参数协商,并会因此消耗一段交互时间。
为解决无法针对用户的不同需求进行不同网络应用的加速的问题,在现有技术中采用了提取上层协议中相应字段以识别不同的应用的方法。例如,在专利公开号为CN102904959A的中国专利中,提出了一种通过提取http协议报头并对与加速策略相匹配的数据进行加速的方法。
然而,上述现有技术使用了网关作为加速设备,因此仅可对与网关相连的用户的应用进行加速,而无法针对优先级不同的用户进行加速。
此外,在上述现有技术中,提取上层协议的字段相比于提取网络层和传输层协议的字段会花费更长的处理时间,并会因此降低网络传输的速率。
另外,在上述现有技术中,位于收发两端的网关同样需要先进行参数协商,并会因此消耗一段交互时间。
发明内容
针对网络数据传输的现有技术中普遍存在的无法对特定用户和/或应用进行加速的问题,本发明提出了一种基于中间交换设备的TCP定向加速方法和系统。本发明的方法对传出中间交换设备的特定用户和/或应用的TCP数据进行压缩并使用特定端口进行UDP封装,对传入中间交换设备的特定用户和/或应用的UDP数据进行解压并还原TCP数据,由此达到针对优先级较高的用户或者网速对用户体验影响较大的应用进行加速的目的。
本发明所提供了一种用于数据传输的中间交换设备,包括:
流表,其用于储存用以转发属于特定用户和/或应用的TCP和/或UDP数据包的规则;
识别截获模块,其用于转发符合所述规则的数据包以进行加速并且将不符合所述规则的数据包转发出所述中间交换设备;以及
转发模块,其用于转发经加速的符合所述规则的数据包;以及
处理模块,其用于所述加速,以压缩TCP数据包的报文并添加端口标记以封装成UDP数据包,和/或解压UDP数据包以还原TCP数据包;
其中,所述流表、所述识别截获模块与所述转发模块位于所述中间交换设备的内核空间。
对比于采用了利用UDP封装TCP的方法的现有技术,本发明使用结合SDN技术中Openflow标准的四层转发机制,以识别数据包中表示源地址、目的地址、源端口、目的端口、及协议的字段。由此,用于网络数据加速的中间交换设备可识别数据包的相应字段,并根据这些字段针对特定用户和/或应用进行加速。
此外,本发明部署在通信双方的主机之间的中间交换设备在将包含TCP报文的数据包封装成包含UDP报文的数据包时将目的端口标记成特定端口。由此,与客户端相连接的中间交换设备可主动开启加速功能,而与服务端相连接的中间交换设备可被动感知,并可因此节省交互时间以及网络数据流量、提高网络数据的传输效率。
对比于采用了提取上层协议中相应字段以识别不同的应用的现有技术,本发明使用了中间交换设备代替网关以作为加速设备。由此,本发明的中间交换设备可对经由该中间交换设备的不同用户的数据进行识别,并优先对优先级较高的用户进行加速。
此外,本发明提取了相较于提取上层协议的字段花费较少处理时间的网络层和传输层协议的字段。由此,提高了网络传输的速率。
另外,本发明无需使收发两端的加速设备预先进行参数协商,并因此节省了交互时间。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1是基于本发明的中间交换设备的网络通信系统的示意图;
图2是根据本发明的一个实施例的中间交换设备的示意图;
图3是基于本发明的图2的实施例的中间交换设备的定向加速方法的主动模式的流程图;
图4是基于图2的实施例的定向加速方法的被动模式的流程图;
图5是根据本发明的另一个实施例的中间交换设备的模块的示意图;
图6是从客户端发出的TCP数据包的报文的示意图;
图7是从客户端中间交换设备发出的UDP数据包的报文的示意图;
图8是发生网络地址转换(NAT)后的由服务端中间交换设备接收到来自客户端中间交换设备的UDP数据包的报文的示意图;
图9是由服务端中间交换设备解压后得到的TCP数据包在发生网络地址转换(NAT)后的报文的示意图;
图10是由服务端中间交换设备解压后得到的TCP数据包在未发生网络地址转换(NAT)时的报文的示意图;
具体实施方式
下面结合附图和具体实施方式对本发明作详细说明。
图1示出了基于本发明的中间交换设备的网络通信系统的示意图。如图1所示,在所述系统中,包括通过广域网相互通信的至少一个客户端主机C1,至少一个服务端主机C2,以及其他用于广域网通信的必要设备。在图1的系统中,还包括至少两个本发明的中间交换设备E1与E2,其分别同客户端主机C1与服务端主机C2相连接,分别位于客户端主机C1与广域网之间和广域网与服务端主机C2之间。所述中间交换设备E1与E2可以部署在客户端主机与服务端主机之间的任意位置,也可以在现有的用于广域网通信的必要设备上实现,例如,接入点、网关、有线路由、无线路由等;其中,优选地,将所述中间交换设备部署在接近所述客户端主机和所述服务端主机的位置上。
图1系统的工作流程可以简单描述为:在由C1向C2传输网络数据的过程中,首先,C1向E1发送TCP数据包;然后,E1压缩该TCP数据包并用UDP协议进行封装(后面将通过本发明的实施例对其作出进一步的说明);随后,处理后的UDP数据包及其他数据包经广域网被传送至E2,并由E2解压经E1压缩及封装后的所述UDP数据包以还原所述TCP数据包(后面将通过本发明的实施例对其作出进一步的说明);最后,C2收到由E2传出的TCP数据包及其他数据包。相对地,在由C2向C1传输网络数据的过程中,由E2压缩来自C2的TCP数据包并用UDP协议进行封装,由E1解压从广域网收到的经E2压缩及封装后的所述UDP数据包以还原所述TCP数据包,并由E1将数据包转发给C1
图2示出了根据本发明的一个实施例的中间交换设备。如图2,所述中间交换设备,包括:流表53,其被用于储存用以转发属于特定用户和/或应用的TCP或UDP数据包的规则;交换模块52,其包含用于根据所述流表中的规则以转发符合及不符合所述规则的数据包的识别截获模块621,及用于转发经处理的符合所述流表中的规则的数据包的转发模块622;加速模块51,其包含用于将TCP数据包压缩并封装成UDP数据包,或解压UDP数据包以还原TCP数据包的处理模块612,用于储存包含特定源地址、目的地址、源端口中的一项或多项的地址端口表613,以及用于储存所述对TCP数据包进行加速的规则并将其下发至所述流表53的规则下发模块611。所述流表53与所述交换模块52被布置在所述中间交换设备的内核空间中;所述加速模块51被布置在所述中间交换设备的用户空间中。
根据本发明的一个实施例,图2中的中间交换设备可对经过该中间交换设备的数据包实施定向加速,其在部署于客户端与服务端时可分别开启主动模式与被动模式,以分别主动地加速属于特定用户和/或应用的数据包与被动地感知需加速的数据包。在发送数据包时,与客户端相连的中间交换设备可开启主动模式对包含有特定源地址、目的地址、源端口、及目的端口中的一项或多项的TCP数据包进行加速,以下将结合图3描述图2中的中间交换设备,其作为与客户端相连的中间交换设备主动地向与服务端相连的中间交换设备传输数据包的工作过程。
下面假设,在从客户端主机到服务端主机的通信过程中,与客户端相连的中间交换设备开启主动模式以加速来自特定用户的特定应用的数据流。例如,所述与客户端相连的中间交换设备需要对源地址、目的地址、源端口、目的端口分别为Client_ip、Server_ip、Client_port、Server_port的TCP数据包进行加速。相对应地,在由服务端主机返回至客户端主机的通信工程中,与客户端相连的中间交换设备可开启主动模式以加速返回至相同用户的相同应用的数据流。
下面参考图2和图3,对由与客户端相连的中间交换设备对传输至与服务端相连的数据包的定向加速的过程进行描述,该过程包括:
S11:中间交换设备收到数据包。
例如,与客户端主机相连的中间交换设备可收到如图6所示的TCP数据包,该数据包由客户端主机发往服务端主机,其报文包括包含源地址Client_ip与目的地址Server_ip的IP头,和包含源端口Client_port及目的端口Server_port的TCP头,和有效载荷。
S12:在中间交换设备中,数据包被传送至交换模块52中的识别截获模块621。
S13:由识别截获模块621判断数据包的字段是否符合流表53中的压缩/解压规则,当其判断为“否”时,继续步骤S14;当其判断为“是”时,继续步骤S15。其中,压缩规则为对特定用户和/或特定应用的数据流进行压缩的规则,解压规则为与所述压缩规则相对应的规则。
例如,客户端中间交换设备可下发由用户定义的压缩规则至流表53。根据流表53中的压缩规则,识别截获模块621可以对满足源地址、目的地址、源端口、目的端口分别为Client_ip、Server_ip、Client_port、Server_port的TCP数据包做出将该TCP数据包交付给虚拟网卡TUN/TAP(未示出)的动作。
S14:识别截获模块621将无需加速的数据包转发出中间交换设备。
例如,识别截获模块621可将无需加速的数据包交于物理网卡以转发出中间交换设备。
S15:识别截获模块621将需要加速的数据包传送至加速模块51中的处理模块612。
例如,源地址、目的地址、源端口、目的端口分别为Client_ip、Server_ip、Client_port、Server_port的TCP数据包经由虚拟网卡TUN/TAP(未示出)被传送至处理模块612。
S16:处理模块612判断数据包是否使用UDP协议,当其判断为“是”时,继续步骤S17a;当其判断为“否”时,继续步骤S17b。
例如,在由客户端向服务端通信的过程中,客户端中间交换设备的处理模块对TCP数据包进行加速,即在S16中判断为“否”,而继续步骤S17b。
S17b:处理模块612对收到的数据包进行压缩TCP报文、添加UDP头的特定端口、添加IP头的处理,以生成新的数据包;其中,添加特定的端口可有助于接收数据包的中间交换设备识别出经本中间交换设备压缩后的UDP数据包。在客户端中间交换设备中,可使用特定端口以标记UDP数据包的源端口与目的端口。
例如,图7示出了由处理模块612处理收到的TCP数据包后生成的新的UDP数据包。如图7所示,示于图6中的原数据包的TCP报文(即,包括TCP头与有效载荷的部分)经压缩后成为新数据包的负载;特定的源端口PORT与目的端口PORT被添加作新数据包的UDP头,其中PORT为由中间交换设备定义的端口标记;数据包的IP头被重新添加以封装数据包。
S18:处理模块612将UDP数据包传送给交换模块52中的转发模块622。
例如,所述数据包可经由虚拟网卡TUN/TAP(未示出)被传送至转发模块622。
S19:转发模块622根据流表53中的规则将该UDP数据包转发出中间交换设备。
在客户端主机向客户端中间交换设备传输数据包,并且该客户端中间交换设备对其中来自特定用户和/或特定应用的数据流进行加速后,服务端中间交换设备可开启被动模式以接收来自客户端中间交换设备的数据流。在接收数据包时,中间交换设备可开启被动模式以感知接收到的数据包类型并还原经发送端中间交换设备加速的TCP数据包。以下将结合图2和图4,对作为服务端中间交换设备被动地感知并且加速来自服务端中间交换设备的需加速的数据包的工作过程进行描述。
参考图4,由与服务端相连的中间交换设备接收并处理来自与客户端相连的数据包的定向加速的过程,包括:
S21:中间交换设备收到数据包。
例如,在经由广域网传输数据包的过程中,可存在发生网络地址转换(NetworkAddress Translation,NAT)与未发生网络地址转换(非NAT)的情况。数据包在经过NAT设备后,其源地址与源端口将发生改变。在前文所述的网络通信系统中,在发生NAT的情况下,与服务端主机相连的中间交换设备可收到来自上述与客户端主机相连的中间交换设备的数据包,如图8所示,该UDP数据包的报文中的源地址与源端口由Client_ip与Client_port改变为Gw_ip与Gw_port;在非NAT的情况下,与服务端主机相连的中间交换设备可收到如图7所示的UDP数据包。
S22:在中间交换设备中,数据包被传送至交换模块52中的识别截获模块621。
S23:由识别截获模块621判断数据包的字段是否符合流表53中的压缩/解压规则,当其判断为“否”时,继续步骤S24;当其判断为“是”时,继续步骤S25。其中,解压规则为预先设置的即默认对目的端口为端口标记即PORT的UDP数据包进行解压,压缩规则为被动模式下的所述中间交换设备通过识别接收的数据包被动地确定并下发至流表53的规则。
例如,根据流表53中的解压规则,识别截获模块621可以对满足目的端口为PORT的UDP数据包做出将该UDP数据包交付给虚拟网卡TUN/TAP(未示出)的动作。
S24:识别截获模块621将无需加速的数据包转发出中间交换设备。
S25:识别截获模块621将需要加速的数据包传送至加速模块51中的处理模块612。
S26:处理模块612判断数据包是否使用UDP协议,当其判断为“是”时,继续步骤S27a1;当其判断为“否”时,继续步骤S27b。
例如,在由客户端向服务端通信的过程中,服务端中间交换设备的处理模块对UDP数据包进行加速,即在S26中判断为“是”,而继续步骤S27a1。
S27a1:处理模块612对收到的数据包进行去除UDP头、解压负载以还原TCP报文的处理。
例如,无论是否发生NAT,经步骤S27a1均可得到如图7或图8中所示的压缩的内容的TCP报文;在发生NAT与非NAT的情况下,经步骤S27a1还可分别得到如图7与图8中所示的IP头和UDP头。
S27a2:处理模块612根据TCP报文判断该数据包是否为数据流的首个数据包,当其判断为“是”时,继续步骤S27a3;当其判断为“否”时,继续步骤S27a5。其中,可根据该TCP报文中的SYN字段的内容以确定该数据包是否为数据流中的首个数据包。
S27a3:根据在步骤S27a1中被解压数据包的源地址、UDP头的源端口、TCP头的源端口生成流编号,并在加速模块51的地址端口表613中储存该流编号与该源地址、该UDP头的源端口、该TCP头的源端口的对应关系;其中,上述生成的流编号是唯一的,即每一个流编号对应唯一的一组源地址、UDP头的源端口与TCP头的源端口。由此,可应对在发生NAT后,由于不同客户端的地址可能被转换为相同的地址而造成的同一源地址对应多个源端口的情况。
例如,在发生NAT后的UDP数据包如图8所示,则在步骤S27a3中根据Gw_ip、Gw_port、Client_port生成一个唯一的编号FlowID,并将该FlowID储存在地址端口表613中。
S27a4:加速模块51中的规则下发模块611将与被解压数据包的源地址、目的地址、源端口、目的端口相对应的压缩规则下发至流表53;其中,所述压缩规则将被用于处理随后将返回至与本中间交换设备通信的其它设备的对应的数据流。
例如,理论上,相比于上述步骤S13的示例中的压缩规则,在本步骤S27a4中:在非NAT的情况下,对应的压缩规则应该为对源地址、目的地址、源端口、目的端口分别为Server_ip、Client_ip、Server_port、Client_port的TCP数据包进行压缩处理;在发生NAT的情况下,对应的压缩规则应该为对源地址、目的地址、源端口、目的端口分别为Server_ip、Gw_ip、Server_port、Client_port的TCP数据包进行压缩处理。
然而,在发生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数据包进行压缩处理。
S27a5:处理模块612将TCP报文的源端口标记为在步骤S26c中生成的流编号并添加IP头以生成新的TCP数据包。
例如,在发生NAT的情况下,经步骤S27a5可得到与如图9所示的TCP数据包;在非NAT的情况下,经步骤S27a5可得到与如图10所示的TCP数据包。
S28:处理模块612将生成的TCP数据包传送给交换模块52中的转发模块622。
S29:转发模块622根据流表53中的规则将该TCP数据包转发出中间交换设备。
由此,完成如图1所示的从客户端的E1到服务端的E2网络数据通信。
相似地,在从服务端主机到客户端主机的通信过程中,与服务端相连的中间交换设备开启被动模式以加速由服务端主机发出的数据流。由于添加了流编号,服务端主机可获知该流编号,则服务端主机可将包括该流编号的TCP数据包传输至所述与服务端相连的中间交换设备;与服务端相连的中间交换设备具有例如上文步骤S27a4中所下发的压缩规则。参考图3,在所述与服务端相连的中间交换设备执行完步骤S26后,其判断为“否”,并继续下列步骤:
S27b:处理模块612对数据包压缩TCP报文、添加UDP头特定端口、添加IP头以生成新数据包;
例如,在未发生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数据包。
S28:处理模块612将数据包传送给交换模块52中的转发模块622;
S29:转发模块622根据流表53将数据包转发出所述中间交换设备。
由所述与服务端相连的中间交换设备转发的数据包经广域网被传输至与客户端相连的中间交换设备,所述与客户端相连的中间交换设备开启主动模式以加速来自与所述服务端相连的中间交换设备的数据流。参考图3,在所述与客户端相连的中间交换设备执行完步骤S16后,其判断为“是”,而继续下列步骤:
S17b:处理模块612对数据包去除UDP头、解压负载以还原TCP报文、添加IP头以生成新的TCP数据包;
S18:处理模块612将该TCP数据包传送给交换模块52中的转发模块622;
S19:转发模块622根据流表53中的规则将该TCP数据包转发出中间交换设备。
由此,完成如图1所示的从服务端的E2到客户端的E1的网络数据通信。
在上述实施例中,示出了根据本发明的中间交换设备可串行处理经过该中间交换设备的数据流,即处理模块612可依序对数据流中需要被解压或被压缩的数据包进行处理。这是因为,在一些数据传输过程中,中间交换设备的硬件无法支持或不必使用并行加速的方法,由此以节省系统资源、保证系统的稳定运行。
图5示出了根据本发明的另一个实施例的中间交换设备。区别于图2所述中间交换设备,如图5所示的实施例中的中间交换设备将用于加速处理的处理模块分成了用于压缩TCP数据包并将其封装为UDP数据包的压缩处理模块512b,以及用于解压UDP数据包以还原TCP数据包的解压处理模块512a。此种结构使得该实施例的中间交换设备可并行处理需要发送的数据包及接收到的数据包,由此可同时对数据流中分别需要被解压和被压缩的不同数据包进行处理。这是因为,在一些数据传输过程中,中间交换设备需要同时接收及发送数据包。在中间交换设备中,相较于接收数据包所花费的时间,加速进程(压缩处理或解压处理)会花费更长的处理时间。为加快处理过程,本发明的中间交换设备通过采用并行加速的方法,可以减少已接收的数据包的等待处理的时间。
示于图3与图4中的主动模式与被动模式的方法,其同样适用于图5的中间交换设备,即所述中间交换设备可同时开启主动模式与被动模式以同时压缩与解压属于特定用户和/或应用的TCP数据包与UDP数据包,并因此加快所述中间交换设备处理数据包的速度。例如,图5的中间交换设备的主动模式,其区别于图3可将步骤S13分成S13a与S13b以分别根据流表判断数据包的字段是否符合解压规则与压缩规则。当在S13a中判断为“是”时,继续S15、S17a及随后的步骤;当判断为“否”时,继续S13b。当在S13b中判断为“是”时,继续S15、S17b及随后的步骤;当判断为“否”时,继续S14。又例如,图5的中间交换设备的被动模式,其区别于图4可将步骤S23分成S23a与S23b以分别根据流表判断数据包的字段是否符合解压规则与压缩规则。当在S23a中判断为“是”时,继续S25、S27a1及随后的步骤;当判断为“否”时,继续S23b。当在S23b中判断为“是”时,继续S25、S27b及随后的步骤;当判断为“否”时,继续S24。
由此,可并行地完成如图1所示的在服务端的E2与客户端的E1之间进行的网络数据通信,并通过中间交换设备E1和/或E2并行地处理需要发送的数据包及接收到的数据包以节省处理时间。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。例如,本发明并非将交换模块与加速模块分别限制于内核空间与用户空间中,其还可以是将交换模块与加速模块同时设置于内核空间中。又例如,本发明的处理模块,其并非仅限于对数据流的首个数据包进行相应的处理(诸如,确定对TCP数据包进行加速的规则,或者生成流编号),其还可以对其他数据包(例如,数据流的每个数据包)进行所述处理,并因此无需设置规则下发模块;例如,根据每个数据包确定相应的规则,不储存所述规则而直接将其转发至流表。因此,尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (11)

1.一种用于网络数据传输的中间交换设备,包括:
流表,其用于储存用以转发属于特定用户和/或应用的TCP数据包的规则,和/或用以转发具有设置的标记的UDP数据包的规则;
处理模块,其用于压缩TCP数据包的报文以封装成具有设置的标记的UDP数据包,和/或解压UDP数据包以还原TCP数据包;
识别截获模块,其用于根据所述流表将满足所述规则的TCP数据包或UDP数据包传送给所述处理模块;以及
转发模块,其用于将所述处理模块处理后的数据包转发出去;
其中,所述流表、所述识别截获模块与所述转发模块位于所述中间交换设备的内核空间。
2.根据权利要求1所述的中间交换设备,其中,所述流表储存有用于对包含特定源地址、目的地址、源端口、目的端口中的一项或多项的TCP数据包进行加速的规则,以及用于对目的端口为所述设置的标记的UDP数据包以进行加速的规则。
3.根据权利要求2所述的中间交换设备,其中,所述处理模块还用于根据UDP数据流中的数据包的源地址、UDP头的源端口、TCP头的源端口以生成流编号,并且用流编号标记生成的TCP数据包的源端口。
4.根据权利要求3所述的中间交换设备,其中,所述处理模块还用于根据所述数据包确定对目的端口为所述流编号及包含特定源地址、目的地址、源端口中的一项或多项的TCP数据包进行加速的规则。
5.根据权利要求4所述的中间交换设备,还包括:
地址端口表,其用于储存所述流编号及包含特定源地址、目的地址、源端口中的一项或多项。
6.根据权利要求5所述的中间交换设备,其中,所述处理模块还用于根据所述流编号从所述地址端口表中查找出作为目的地址、UDP头的目的端口、TCP头的目的端口的字段以将所述TCP数据包封装成UDP数据包。
7.根据权利要求6所述的中间交换设备,还包括:
规则下发模块,其用于储存所述对TCP数据包进行加速的规则并将其下发至所述流表。
8.根据权利要求1-7中任意一项所述的中间交换设备,所述处理模块包括用于压缩TCP数据包并将其封装为UDP数据包的压缩处理模块,以及用于解压UDP数据包以还原TCP数据包的解压处理模块,所述压缩处理模块和解压处理模块并行工作。
9.一种基于权利要求1-8之一的所述中间交换设备的网络数据传输的方法,包括:
1)接收数据包;
2)所述识别截获模块根据所述流表的规则,将满足所述规则的TCP数据包或者UDP数据包转发至所述处理模块;
3)所述处理模块对所述数据包中的TCP数据包进行压缩封装成具有所述设置的标记的UDP数据包,和/或对所述数据包中的UDP数据包进行解压以还原TCP数据包;
4)转发模块转发经所述处理模块加速的符合所述规则的数据包。
10.根据权利要求9所述的方法,其中,步骤3)还可以包括如下步骤:
31)根据UDP数据流中的数据包的源地址、UDP头的源端口、TCP头的源端口以生成流编号;
32)根据所述UDP数据包确定对目的端口为所述流编号及包含特定源地址、目的地址、源端口中的一项或多项的TCP数据包进行加速的规则,并将所述规则下发至所述流表;
33)用流编号标记生成的TCP数据包的源端口。
11.一种网络通信系统,包括:
一个或多个客户端主机;
一个或多个服务端主机,其中所述一个或多个客户端主机通过互联网与所述一个或多个服务端主机通信;以及
一个或多个根据权利要求1-8之一的所述中间交换设备,其被部署在所述一个或多个客户端主机与所述一个或多个服务端主机之间的任意位置。
CN201510400138.5A 2015-07-09 2015-07-09 一种用于网络数据传输的中间交换设备及其方法和系统 Active CN105072057B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510400138.5A CN105072057B (zh) 2015-07-09 2015-07-09 一种用于网络数据传输的中间交换设备及其方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510400138.5A CN105072057B (zh) 2015-07-09 2015-07-09 一种用于网络数据传输的中间交换设备及其方法和系统

Publications (2)

Publication Number Publication Date
CN105072057A CN105072057A (zh) 2015-11-18
CN105072057B true CN105072057B (zh) 2019-02-01

Family

ID=54501343

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510400138.5A Active CN105072057B (zh) 2015-07-09 2015-07-09 一种用于网络数据传输的中间交换设备及其方法和系统

Country Status (1)

Country Link
CN (1) CN105072057B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105791315B (zh) * 2016-04-25 2019-05-14 网宿科技股份有限公司 一种udp协议加速方法和系统
CN108833548A (zh) * 2018-06-20 2018-11-16 中国联合网络通信集团有限公司 Sd-wan网络系统以及用于网络流量加速优化方法
CN111212088B (zh) * 2020-01-21 2022-05-17 福建星网智慧科技有限公司 一种加速服务器提速rtp报文转发方法以及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101867493A (zh) * 2010-06-11 2010-10-20 西安邮电学院 基于微波设备网管系统的以太网包快速转发的实现方法
CN102255972A (zh) * 2011-08-10 2011-11-23 北京邮电大学 6LoWPAN网络中面向HTTP协议的TCP首部压缩方法
CN102629944A (zh) * 2012-04-09 2012-08-08 华为技术有限公司 网络加速方法、装置及系统
CN102904959A (zh) * 2012-10-19 2013-01-30 李恺 网络加速方法和网关
CN103227802A (zh) * 2013-05-24 2013-07-31 江苏物联网研究发展中心 基于udp/tcp协议的多元数据传输方法
WO2013113171A1 (zh) * 2012-02-03 2013-08-08 华为技术有限公司 流识别的方法、设备和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050120128A1 (en) * 2003-12-02 2005-06-02 Wilife, Inc. Method and system of bandwidth management for streaming data

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101867493A (zh) * 2010-06-11 2010-10-20 西安邮电学院 基于微波设备网管系统的以太网包快速转发的实现方法
CN102255972A (zh) * 2011-08-10 2011-11-23 北京邮电大学 6LoWPAN网络中面向HTTP协议的TCP首部压缩方法
WO2013113171A1 (zh) * 2012-02-03 2013-08-08 华为技术有限公司 流识别的方法、设备和系统
CN102629944A (zh) * 2012-04-09 2012-08-08 华为技术有限公司 网络加速方法、装置及系统
CN102904959A (zh) * 2012-10-19 2013-01-30 李恺 网络加速方法和网关
CN103227802A (zh) * 2013-05-24 2013-07-31 江苏物联网研究发展中心 基于udp/tcp协议的多元数据传输方法

Also Published As

Publication number Publication date
CN105072057A (zh) 2015-11-18

Similar Documents

Publication Publication Date Title
US11671868B2 (en) Methods and apparatus for optimizing tunneled traffic
EP3162020B1 (en) System and method for optimizing tunneled traffic
JP5976277B2 (ja) 伝送制御方法
CN101217493B (zh) 一种tcp数据包的传输方法
EP3269110B1 (en) Method of communicating data packets within data communication systems
US10205660B2 (en) Apparatus and method for packet header compression
CN102882879A (zh) 一种适用于卫星信道的ip数据压缩传输方法
KR20060054662A (ko) 광대역 무선 통신 시스템에서 헤더 압축 장치 및 방법
CN105072057B (zh) 一种用于网络数据传输的中间交换设备及其方法和系统
WO2021008591A1 (zh) 数据传输方法、装置及系统
CN109565894A (zh) 用于通过多种无线电接入技术的多路径通信的设备
CN107172662A (zh) 一种通信方法及装置
CN102088460A (zh) 受限网络中流媒体数据的传输方法、设备和系统
CN105684381A (zh) 用于合法监听的装置和方法
US20140074912A1 (en) Communication apparatus, relay apparatus and communication method
US20100202286A1 (en) Method & apparatus for the efficient use of available communications network bandwidth
Jivorasetkul et al. Better network latency with end-to-end header compression in SDN architecture
US20090106436A1 (en) Methods and systems for offload processing
CN117579555A (zh) 数据传输方法、计算设备及系统
US20150124683A1 (en) Data compression in a communications network
EP3340545B1 (en) Methods and apparatus for optimizing tunneled traffic
CN114449051B (zh) 一种数据包的传输方法以及通信设备
CN114205185B (zh) 一种控制报文的代理方法及装置
CN109039928A (zh) 数据的传输方法、装置和无线保真路由器
US20190097951A1 (en) Reordering of data for parallel processing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant