CN101663867B - 在维持端点到端点认证的同时压缩数据分组 - Google Patents

在维持端点到端点认证的同时压缩数据分组 Download PDF

Info

Publication number
CN101663867B
CN101663867B CN2008800131941A CN200880013194A CN101663867B CN 101663867 B CN101663867 B CN 101663867B CN 2008800131941 A CN2008800131941 A CN 2008800131941A CN 200880013194 A CN200880013194 A CN 200880013194A CN 101663867 B CN101663867 B CN 101663867B
Authority
CN
China
Prior art keywords
packet
head
grouping
data
payload
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
CN2008800131941A
Other languages
English (en)
Other versions
CN101663867A (zh
Inventor
S·科尔维尔
J·平克顿
D·博尔多
M·斯捷平
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN101663867A publication Critical patent/CN101663867A/zh
Application granted granted Critical
Publication of CN101663867B publication Critical patent/CN101663867B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/38Flow control; Congestion control by adapting coding or compression rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

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

Abstract

聚集端点之间的单个通信会话的连续数据分组以进行压缩,并且至少净荷被经由单个可压缩缓冲区来集体地压缩。可以压缩也可以不压缩的原始头部和压缩净荷从发送分组压缩设备传送到接收分组压缩设备,后者对压缩净荷执行解压并且如果头部在发送端已经被压缩则也要解压头部。在接收分组压缩设备处,可以通过将头部与相对应的净荷进行匹配来重构包含头部和净荷的原始连续数据分组。将重构的数据分组注入回该单个通信会话中,并且在重构数据分组中存在原始头部,从而可以维持端点到端点认证协议。

Description

在维持端点到端点认证的同时压缩数据分组
背景
计算机一般通过网络交换数据分组来进行通信。网络具有可用于将数据分组从一个端点传输到另一个端点的有限带宽量。可用带宽限制了计算机交换数据分组的速度。数据分组传送速度不足导致低效率。对于非商业用户,传送速度不足可导致挫折感。在商业环境中,缓慢的传送可妨碍生产力与盈利性。
企业通常具有不间断的端到端连接,诸如在两个或多个物理位置之间。例如可以有总部和若干分公司。为了增加数据分组的吞吐率,每个端点可使用逻辑上定位在发送设备与和接收设备之间的加速器设备。该加速器设备是网络透明设备,因为接收寻址到下游设备的数据分组,并且加速器设备可使分组无改变地传递过去或者可收集分组来进行压缩并以压缩状态传输。
加速器设备可对数据分组的净荷应用压缩以增加吞吐率并改进用户体验。然而,加速器设备通过丢弃原始头部而终止了传入分组的传输层流,并且担当传送净荷的代理服务。
尽管加速器设备可提供所需要的压缩,但传输层流的终止提出了问题。作为一个特定示例,端点到端点认证协议,诸如因特网协议安全(IPSec)和服务器消息块(SMB)签名不再可能。
概述
各实施例允许压缩端点之间的单个通信会话的连续数据分组,同时保存该通信会话的原始头部以便可以维持端点到端点认证协议。对连续数据分组的至少净荷的压缩经由至少一个可压缩缓冲区来发生,从而将连续数据分组的净荷作为一个组集体地而非单独地进行压缩。对应于发送和接收设备之间的第二单个通信会话的不同数据分组被传送到接收设备,以便传送压缩头部和第一单个通信会话的连续数据分组的原始头部。接收设备解压至少压缩净荷,并且随后通过将原始头部与原始净荷进行匹配来重构第一单个通信会话的原始连续数据分组。在接收设备处,随后将重构的连续数据分组插入到端点之间的第一单个通信会话中,以便将连续数据分组中的每一个从接收设备传送到原始连续数据分组去往的端点设备。
提供本概述以便以简化形式介绍在下面的详细描述中进一步描述的一些概念。本概述不是旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图描述
图1A示出数据分组压缩设备的各种实施例的示例环境。
图1B示出两个数据分组压缩设备通过网络进行通信的说明性实施例。
图2A示出至少集体地压缩端点之间的单个通信会话的连续数据分组集合的净荷的一组逻辑操作的示例。
图2B示出至少解压连续数据分组集合的净荷并且将这些连续数据分组重构成它们的原始形式的一组逻辑操作的示例。
图3A示出分析传入数据分组对于诸如在图2A的逻辑操作期间进行的压缩的适用性的一组逻辑操作的示例。
图3B示出确定诸如在图2A的逻辑操作期间对至少包含传入连续数据分组集合的净荷的至少一个可压缩缓冲区的压缩的启动的一组逻辑操作的示例。
图4A示出端点之间的单个通信会话的连续数据分组集合从以未压缩状态被收集到被压缩并被传输的进行过程。
图4B示出端点之间的单个通信会话的连续数据分组集合从以压缩状态被接收到被解压并以其原始形式被注入到该单个通信会话的传出流中的进行过程。
详细描述
各实施例允许压缩端点之间的单个通信会话的连续数据分组集合,并允许将经压缩的连续数据分组集合传输到接收设备。该压缩可包括仅压缩净荷或者压缩头部和净荷两者。经压缩的净荷和可以压缩也可以不压缩的原始头部被传送到接收设备,接收设备随后至少解压净荷并且重构原始的连续数据分组集合。可在压缩之前使用逻辑来选择适用于压缩的那些连续数据分组并最大化包含在至少一个可压缩缓冲区中的数据量。
图1A示出用于各说明性实施例的操作环境的一个示例。在该示例中,若干对等设备可存在于各位置处并且可通过网络106与其它位置处的各对等设备进行通信。为了说明,第一位置包括连接到诸如网络交换机等节点101的第一对等设备102和第三对等设备103,节点101接收从第一对等设备102和第三对等设备103发送的数据分组。节点101随后将去往其它位置的数据分组传送到第一分组压缩设备104。节点101还可接收来自第一分组压缩设备104的数据分组并且随后将它们定向到第一对等设备102或第三对等设备103。
第一分组压缩设备104可以是网络透明设备,因为来自第一对等设备102和来自第三对等设备103的分组不是寻址到第一分组压缩设备104,而是被传递给它以进一步通过网络106来传送。可以理解,可变数量的对等设备可存在于该位置处,并且如果仅存在第一对等设备102,则它可直接连接到第一分组压缩设备104。此外,第一分组压缩设备104的功能可集成到第一对等设备102中而不是作为如在此例中所示的独立设备。
同样为了说明,第二位置包括连接到节点109的第二对等设备110和第四对等设备111,节点109接收来自第二对等设备110和来自第四对等设备111的数据分组。节点109随后将去往其它位置的数据分组传送到第二分组压缩设备108。节点109还可接收来自第二分组压缩设备108的数据分组并且随后将它们定向到第二对等设备110或第四对等设备111。
与第一分组压缩设备104相似,第二分组压缩设备也可以是网络透明设备,因为来自第二对等设备110和来自第四对等设备111的分组不是寻址到第二分组压缩设备108,而是被传递给它以进一步通过网络106传送。可以理解,可变数量的对等设备可存在于该位置处,并且如果仅存在第二对等设备110,则它可直接连接到第二分组压缩设备108。此外,第二分组压缩设备108的功能可集成到第二对等设备110而不是作为如在此例中所示的独立设备。
当第一对等设备102发送寻址到第二对等设备110或者第四对等设备111的数据分组时,分组压缩设备104可将第一对等设备102所发送的连续数据分组集合作为至少一个单个可压缩缓冲区的单个数据集进行压缩。该压缩可包括对连续数据分组的净荷的压缩或者对这些连续数据分组的头部和净荷的压缩。头部和经压缩的净荷随后被传送到第二分组压缩设备108,在这里净荷和头部(如有必要)被解压。随后将头部与净荷匹配以重构从第一对等设备102发送的原始数据分组,并且第二分组压缩设备108随后将这些重构的原始数据分组注入到第一对等体102与第二对等体110或第四对等体111之间的通信会话中,以将该重构的原始数据分组传送到预期的目的地。
相同的动作可在相反的方向上发生,其中第二对等设备110发送数据分组到第一对等设备102或者第三对等设备103。第二分组压缩设备108至少压缩净荷,并且将原始头部和经压缩的净荷传送到第一分组压缩设备104。第一分组压缩设备104随后解压净荷和头部(如有必要),并且随后重构从第二对等设备110发送的原始分组。
为了说明,当第一对等设备102正在与第二对等设备110通信时,诸如通过网络106在它们之间创建传输层流来在这些端点之间建立第一通信会话113。当第一对等设备102尝试通过网络106发送数据到第二对等设备110时,连续字节流流过第一通信会话113,其中该字节流形成数据分组序列,每个数据分组具有头部和净荷。传输层流是由存在于该字节流的这些数据分组内的传输层头部来维持的。
还是为了说明,当分组压缩设备104正在接收第一通信会话113的分组以便通过网络106来传输它们时,分组压缩设备104可收集它们中的至少一些来进行压缩。经压缩的数据分组随后可通过第二通信会话115来传送,第二通信会话115是通过网络106在分组压缩设备104和分组压缩设备108之间建立的。该第二通信会话115可作为在分组压缩设备104与分组压缩设备108之间维持的传输层流来创建。
图1B示出第一分组压缩设备104和第二分组压缩设备108的一个说明性实现的示例。在该示例中,存在第一分组压缩设备104和第二分组压缩设备108,它们用于为在第一对等设备102和第二对等设备110之间发生的数据通信提供压缩服务。
第一分组压缩设备104的这一说明性实现包括形成处理系统的各种组件。在该示例中,第一分组压缩设备104的处理系统包括内核模式部分134和用户模式部分132。内核模式部分134经由第一网络接口卡(NIC)112发送和接收数据,该卡提供到第一对等设备102或者到某中介设备的物理连接,以便在第一对等设备102与第一分组压缩设备104之间交换数据分组。数据链路层114,诸如网络驱动程序接口规范层(NDIS)操作NIC 112以将分组通过桥120传递到数据链路层118,数据链路层118将分组向上传递至网络和传输层122。网络和传输层122可利用诸如用于网络层的因特网协议(IP)和用于相关联的传输层的传输控制协议(TCP)或用户数据报协议(UDP)等协议。数据链路、网络和传输层的其它示例也可应用于各实施例。
在这个特定示例中,第一分组压缩设备104在物理上位于第一对等设备102和网络106之间的数据路径中。因此,内核模式部分134经由第二NIC 116发送和接收数据,并且内核模式部分134包括将分组向上提供给网络和传输层122的相关联的数据链路层118。NIC 116通过诸如将第一对等设备102的局域网与第二对等设备110的局域网互连的广域网等网络106来交换分组。
聚集引擎124耦合到第一分组压缩设备104的数据链路层118,聚集引擎124将第一对等设备102所发送的分组收集到集合中,并且随后将该集合提供给用户模式部分132的至少一个单个可压缩缓冲区127。取决于第一分组压缩设备104的操作系统平台,该聚集引擎可以是驱动程序,诸如NDIS过滤驱动程序或者NDIS中间(IM)驱动程序。
这一说明性实现的聚集引擎124包括内核部分和用户模式部分。内核模式部分从端点之间的特定的传入通信会话收集连续数据分组并且将所收集的连续数据分组集合分离成包含与净荷分开的头部的分段。内核部分将这些分段传递给用户模式部分,后者管理至少将净荷加载到至少一个单个可压缩缓冲区127中作为要被压缩的单个数据集。在用户模式部分132处,包含要被压缩的分段的数据集随后可被从缓冲区127访问、压缩并传送到第二分组压缩设备108。
这一说明性实现的数据链路层118还可维持服务质量(QoS)标记,诸如用于标记第一分组压缩设备104与第二分组压缩设备108之间的流传出差分服务代码点(DSCP)值的DSCP标记136。对传出分组进行标记以保持被压缩的原始数据分组的预期服务质量在下面进一步讨论。
第一分组压缩设备104的这一说明性实现的用户模式部分132形成也包括各组件的处理系统。如所述的,聚集引擎124包括至少缓冲来自端点之间通过NIC 112的通信的给定传入流的净荷的用户模式部分。聚集引擎124的用户模式部分随后至少向压缩器引擎128提供净荷集合来作为至少一个单个可压缩缓冲区127的单个数据集。
压缩器引擎128从聚集引擎124至少接收净荷来作为至少一个单个可压缩缓冲区127的单个数据集,并且执行一个或多个压缩算法以将来自至少一个单个可压缩缓冲区127的至少净荷作为单个数据集进行压缩。通过将来自至少一个单个可压缩缓冲区的至少净荷作为单个数据集进行压缩,压缩器引擎128正在集体地而非单独地压缩净荷。通过增加被压缩的单个数据集的大小,可增加压缩比。
压缩器引擎128可利用存储设备130来维护先前看到的数据的词典和其它参考信息,它们可在执行各种压缩算法时使用。此外,压缩器引擎128可对至少一个单个可压缩缓冲区的净荷内容使用一种算法而对包含头部的不同单个可压缩缓冲区使用另一种算法。
可应用于包含头部的可压缩缓冲区的头部内容的压缩算法的示例包括各种差分算法和各种无状态压缩算法。差分算法的示例包括在请求评论(RFC)1144、2507、2508、2509、3095和4815中描述的那些算法,它们各自通过引用结合于此。无状态压缩算法的示例包括Lempel-Ziv-Welch(LZW)或霍夫曼(Huffman)编码。
可应用于包含净荷的可压缩缓冲区的内容的压缩算法的示例包括各种有状态差分算法和各种无状态压缩算法。有状态差分算法的示例包括如在分布式文件系统复制(DFSR)中使用的远程差分压缩(RDC)。无状态压缩算法的示例包括LZW和霍夫曼编码。
传输引擎126从压缩器引擎128接收压缩数据集。传输引擎126随后通过第一分组压缩设备104与第二分组压缩设备108之间的第二通信会话发送该数据集。传输引擎126可利用网络和传输层122来对该数据集进行分组化,并且通过第二通信会话经由数据链路层118和NIC 116将所得分组发送到第二分组压缩设备108。因而,压缩分组以集体压缩的形式通过网络106来隧道传输。
本示例所示的第一分组压缩设备104的各组件是与对来自第一对等设备102的传入数据分组进行收集、压缩和传送相关的那些组件。可以理解,第一分组压缩设备104和第二分组压缩设备108可以是互补设备,因为对于在一个方向传播的数据,第一分组压缩设备104可进行收集、分段、压缩和传送,而第二分组压缩设备108执行接收、解压、重构和注入回到第二对等设备110的流中的互补功能。对于反向流动的数据,第二分组压缩设备108可进行收集、分段、压缩和传送,而第一分组压缩设备104进行接收、解压、重构和注入回到第一对等设备102的流中。
因此,尽管第一分组压缩设备104被示为具有一组组件并且第二分组压缩设备108被示为具有一组不同和互补的组件,但可以理解,第一分组压缩设备104也可包含对于第二分组压缩设备108所示的组件而第二分组压缩设备108也可包含对于第一分组压缩设备104所示的组件。
对于第二分组压缩设备108所示的说明性实现还包括内核模式部分、与网络106接口的NIC 138和与第二对等设备110接口的NIC 146。第二分组压缩设备108包括数据链路层140和148、散布引擎139、桥150以及网络和传输层142。这一说明性实现的用户模式部分包括接收引擎144、解压器引擎152和存储设备154。
来自与第一分组压缩设备104的第二通信会话并且因此寻址到该第二分组压缩设备108的分组经由NIC 138从第一压缩设备接收,并被传递到网络和传输层142(例如TCP/IP),网络和传输层142随后通过提取分组净荷并以指定的顺序拼接净荷来将信息解分组化(depacketize)。网络和传输层142将该应用数据提供给接收引擎144。该信息是从第一分组压缩设备104的传输引擎126传送的压缩数据集,其中该压缩数据集包括来自第一对等设备102的原始分组的压缩或未压缩的头部和压缩净荷。接收引擎144将该数据集提供给解压器引擎152。
第二分组压缩设备108的解压器引擎152利用与第一分组压缩设备104的压缩器引擎128所使用的压缩算法互补的解压算法来解压该数据集。在进行解压时,解压器引擎152可依靠存储设备154的词典和其它参考信息,包括与第一分组压缩设备104的存储设备130的词典和其它参考信息互补的词典和其它参考信息。
解压器引擎152将包含原始数据分组的头部和解压净荷的分段提供给散布引擎139的用户模式部分所管理的缓冲区。散布引擎139最终将解压分组分发回端点之间的产生这些分组的通信会话中,以使该通信会话不被中断。散布引擎139的用户模式部分将解压头部、净荷和原始分组的任何其它部分提供给散布引擎的这一说明性实现的内核模式部分。散布引擎139将头部与解压净荷匹配以重构原始分组。散布引擎139随后经由桥150将重构的原始分组注入回到第二对等设备110的流中。
图1B的第一分组压缩设备104和第二分组压缩设备108是为了说明而示出的且不旨在是限制性的。例如,尽管第一分组压缩设备104和第二分组压缩设备108被示为独立的结构,但这些设备可改为合并到端点中。例如,第一分组压缩设备104可合并到第一对等设备102的结构中,从而消除了NIC 112的存在。
另外,第一分组压缩设备和第二分组压缩设备的实现包括一些内核模式组件和一些用户模式组件。可以理解,各种组件及其功能可在替换配置中实现。例如,所有组件及其功能可在内核模式内实现。
第一分组压缩设备104和第二分组压缩设备108的组件可由实现存储在诸如存储设备130或154等存储器中的程序设计的硬连线逻辑、固件、通用可编程处理器等等构成。图1B的设备,包括第一分组压缩设备104和第二分组压缩设备108以及第一对等设备102和第二对等设备110在内,可包括各种计算机可读介质。这些计算机可读介质包含用于操作设备和用于实现本文所述的各实施例的指令。计算机可读介质可以是可由计算机系统访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并可由计算机系统访问的任何其它介质。
通信介质一般在诸如载波或其它传输机制等已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传送介质。术语“已调制数据信号”指以将信息编码到信号中的方式来设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外和其它无线介质。任何上述各项的组合也应当包括在计算机可读介质的范围内。
图2A-3B示出数据分组的压缩或解压的操作流程。参考图1的压缩设备104、108作出对图2A-3B的下列描述。然而,应当理解,参考图2A-3B描述的流程不旨在限于由压缩设备104、108或者压缩设备104、108的任何特定组件或组件组来执行。另外,应当理解,尽管图2A-3B的操作流程指示特定的步骤顺序,但在其它实现中,这些操作可不同地排序,并可增加另外的操作和/或可省略一些操作。
图2A示出可由分组压缩设备的一个或多个实施例执行以便提供对传入数据分组的压缩的一组逻辑操作。在分析操作202处,逻辑操作从分组压缩设备开始,诸如从第一分组压缩设备104开始且特别是从聚集引擎124开始,分析来自本地对等体的传入分组对于压缩的适用性。在分析操作202处,还针对成功传送到目的地对等体的接收分组压缩设备,诸如第二分组压缩设备108所必需的信息来分析传入分组。
某些分组,诸如加密分组不适用于压缩,因为它们在不应用压缩的情况下传递到接收分组压缩设备才会有效。分析操作202可找出并传递这些不适用的分组。分析操作202的一个实现的附加细节在下面参考图3A讨论。
在这里,可收集正确传输所需的信息以及在适于压缩时压缩适用数据分组所需的信息。该信息可包括发送端口、发送地址、目的地端口和目的地地址的四元组,它标识该分组所属的传输层流。在这里还可获得用于确定是否要压缩和组织与其它分组的集体压缩所需的信息,包括每个分组内头部的位置、每个分组内净荷的位置、和也可能存在的任何尾部的位置。
在完成对传入分组的适用性分析后,在收集操作204处,将给定传输层流(例如TCP或UDP流)的适用分组与该流的也适用于压缩的其它分组一起收集到可压缩缓冲区127中。将这些适用的数据分组收集到一个集合中允许在至少一个单个可压缩缓冲区127内提供整个分组或者其被选择的分段(例如净荷)。这里,适用分组可分解成头部、净荷和尾部(如果存在),其中每个分段分别与该同一流的其它数据分组的相同分段类型一起缓冲。收集操作204的一个实现的附加细节在下面参考图3B讨论。
将分组收集到集合中以进行压缩可能需要受到限制,以最小化端点到端点连接的降级。例如,在等待填充至少一个单个可压缩缓冲区127时将分组传送延迟得太久可导致传输层超时。因而,在这里,作出关于该集合是否已经到达压缩应当开始的时刻的判断,以便将压缩比保持在所需水平而同时不降级端点到端点连接。根据一个实现的这一判断的细节也在下面参考图3B讨论。
一旦确定压缩应当开始,则将数据分组或分段的集合作为至少一个单个可压缩缓冲区127的内容传递给压缩器引擎128。在某些情况下,可将单个分组直接传递给压缩器引擎128以供立即压缩和传输到接收压缩设备,诸如在该单个分组旨在开始新的传输层流或者终止现有的传输层流的时候。
在将至少一个单个可压缩缓冲区127的内容传递到压缩器引擎128后,则在压缩操作206处压缩该至少一个单个可压缩缓冲区127的内容。该压缩是集体的,因为压缩算法对该至少一个单个可压缩缓冲区127的多个分组或多个分组的分段进行操作以产生压缩输出,而不是一次对单个分组或单个分组的分段进行操作。因为在压缩包含多个数据分组或来自多个数据分组的多个分段的至少一个单个可压缩缓冲区127的内容时对更多数据进行操作以产生压缩结果,所以压缩比更高。压缩数据集是由压缩器引擎128产生的。对于为不同的分段类型使用不同算法的实施例,已经压缩的每一分段类型各有一个压缩数据集。另选地,净荷的压缩数据集可与包含头部的数据集串接在一起,并且随后压缩该串接数据集。
在产生压缩数据集后,在传输操作208处,传输引擎126将该压缩数据集传送到接收压缩设备。这里,将该数据集引入网络和传输层122(例如TCP/IP),在此数据集被分组化并且经由与接收压缩设备的通信会话来传输。发送到接收压缩设备的这些分组是隧道分组,因为它们提供了传送底层压缩数据分组的隧道。压缩和传输的一个说明性实现的各阶段在下面参考图4A更详细地讨论。
从包含压缩数据集的第一分组压缩设备104发送的数据分组可具有QoS标记以确保这些分组以足够的优先级进行传输。这些传出分组的QoS标记可在从本地对等体接收到的原始分组的QoS的基础上进行选择。例如,如果传入分组具有特定QoS优先级,则QoS标记,诸如DSCP标记可存储在存储器中。发送到接收压缩设备的隧道分组用与原始分组相同的DSCP标记来标记,以进一步维持压缩设备对于端到端连接的透明性。作为替换,传出分组的QoS标记可基于除原始数据分组的QoS标记之外的某些准则来选择。
图2B示出可由压缩设备的一个或多个实施例执行以便解压传入数据分组的数据并从解压数据重构原始分组的一组逻辑操作。在接收操作210处,逻辑操作从接收压缩设备,诸如第二分组压缩设备108开始,接收发送压缩设备,诸如第一分组压缩设备104所发送的隧道分组。因为隧道分组寻址到接收设备,所以该分组被向上传递到协议层而不是传递到接收压缩设备的本地对等体。
网络和传输层142接收分组并在分组操作212处将它们解分组化,以揭示发送压缩设备先前产生和传送的压缩数据集。接收引擎144接收组成该数据集的压缩数据,对于分别压缩头部和净荷的实施例而言包括分开的头部数据集和净荷数据集。接收引擎144将它们传递给解压器引擎152。
在解压操作214处,解压器引擎152解压该数据集。使用与发送压缩设备已经执行的压缩互补的解压。压缩数据集可包括由压缩算法产生的并且标识所使用的压缩技术的头部,使得解压器引擎152可阅读来自压缩数据集的该头部以便随后使用适当的解压算法来解压。此外,在两个互补的压缩设备之间可以存在规定将使用的哪些压缩算法的更高级协定。随后将解压数据集传递到散布引擎139,在这里可重构分组。
在重构操作216处,散布引擎139通过匹配头部、净荷和任何尾部来重构原始数据分组。这里,散布引擎139通过参考解压数据集的元数据以基于分段的偏移和精确长度来定位头部和净荷,以将头部与其相对应的净荷进行匹配,其中头部的顺序与净荷的顺序相匹配。在适当时,散布引擎139还添加未传送的数据,诸如添加以太网头部和IPSec ESP尾部填充,它们中的每一个都是散布引擎139已经知道的信息。
一旦重构了原始数据分组,则在注入操作218处,散布引擎139将它们注入定向到在接收压缩引擎本地的对等设备的端到端流中。通过将它们注入到现有的端到端流中,对等体接收具有原始头部和净荷的原始分组,使得端到端的认证得到维持。解压接收到的分组和重构原始连续数据分组的一个说明性实现的各阶段在下面参考图4B更详细地讨论。
图3A示出可在各实施例中执行以便执行图2A的分析操作202的一组说明性逻辑操作。该示例的目标是确定哪些分组适用于压缩并且提取必要的信息以允许进行分组的高效压缩和传输,同时避免因传输层超时或其它有影响的延迟而引起的端点到端点连接降级。这些逻辑操作是为了说明而提供的,并且不旨在是限制性的,因为可以理解存在各种替换方案。
该示例的逻辑操作开始于类型操作302处,在此,聚集引擎124通过检查分组的数据链路头部来检测传入分组的网络层类型。一个选项可以是只有具有某些类型的网络层协议,例如因特网协议(IP)的分组才适用于压缩。在该情形中,查询操作304检测当前分组的类型是否适用,并且如果否,则在传递操作306处将该分组传递到接收压缩设备而不压缩。
在查询操作304检测到分组确实具有适用的网络层类型的情况下,则类型操作308通过检查网络层头部来检查分组的下一层协议,诸如传输层协议。查询操作310检测该下一层协议类型是否适用于压缩,并且如果否,则在传递操作306处将该分组传递给接收压缩设备而不压缩。另一个选项可以是只有具有在网络层之上的某些类型的协议的分组才适用于压缩。例如,查询操作310可检查TCP分组、UDP分组、因特网协议安全认证头部(IPSec AH)分组和/或因特网协议安全封装安全净荷(IPSec ESP)分组。为了说明,本讨论将按照适用的类型是TCP、IPSec AH还是IPSec ESP来进行,但可以理解其它类型也可以是适用的。
查询操作312通过确定用于IPSec AH或IPSec ESP的安全头部是否存在来检测分组是否为TCP、IPSec AH或IPSec ESP。当这个下一层协议是TCP时,则在提取操作314处聚集引擎124提取压缩和传输所需的信息,其中包括发送地址、发送端口、目的地地址和目的地端口的四元组。在此例中还提供其它信息,包括头部和净荷的位置,且基于分组为适用的TCP分组,还包括网络层头部的QoS标记。随后将分组提供给聚集引擎124进行收集,诸如通过将来自内核模式部分的分组传递给聚集引擎124的用户模式部分,其中在收集操作316处将分组输入到压缩器引擎128之前,可以将分组在至少一个单个可压缩缓冲区127中进行排队。下一个传入数据分组随后由图3A的逻辑操作处理。
当查询操作312检测到分组为IPSec AH时,则在类型操作318处,聚集引擎124查看安全头部(在IPSec AH的情况下为认证头部),以检查下一层协议的类型。查询操作320随后检测该下一层协议是否为TCP。如果不是TCP,则传递操作306传递该分组而不压缩。如果该分组为TCP,则提取操作314提取信息,并且收集操作316提供该分组以将其包含在至少一个单个可压缩缓冲区127中。
当查询操作312检测到分组为IPSec ESP时,则需要判断来检测该分组是加密分组还是认证分组。一个选项可以是不压缩加密分组但压缩认证分组。可执行下面的逻辑操作以便启发式地确定分组是加密的还是认证的。
在签名操作322处,聚集引擎124假设分组的ESP签名的特定大小。该大小可以根据发送该分组的对等设备的操作系统的版本和硬件而变化。例如,根据发送对等体的操作系统,ESP签名可以是12字节或者可以是16字节,或者是其它大小。在偏移操作324处,聚集引擎124随后基于签名大小相对于分组的末尾找到分组的偏移。查询操作326随后检测在该偏移位置处的协议号是否指示该分组为TCP。如果在查询操作326处聚集引擎124检测到对于第一假定的签名大小而言,在偏移位置处指定的协议不是TCP,则操作流程直接进行至签名操作336,在下面讨论。
在聚集引擎124已经确定该分组为TCP的情况下,则在步操作328处,聚集引擎124在分组中后退1字节,这是在ESP尾部中填充的长度。在确认操作330处,完成确认填充值的尝试,其中填充具有规则的模式:1、2等等。对于认证ESP数据分组,预期使用填充来使整个分组大小等于4字节对齐。填充的细节在RFC 2406中讨论,其通过引用结合与此。
查询操作332检测填充值的确认是成功还是失败。如果确认成功,则可以假定该分组是IPSec ESP认证分组,并且提取操作314随后提取信息而收集操作316提供该分组以将其包含在至少一个单个可压缩缓冲区127中。如果确认失败,则查询操作334基于替换的假定签名大小来检测该尝试是初始尝试还是第二次尝试。注意,仅为了说明,这些逻辑操作允许用两个假定的签名大小来尝试。可以理解,如果附加签名大小是可能的,则也可用相同的方式尝试这些附加签名大小。
如果这是第二次尝试,因此两个假定的签名大小均导致填充值的确认失败,则在该示例中传递操作306将传递该分组而不压缩。如果这只是初始尝试,因此还没有尝试替换的签名大小,则操作流程进行至签名操作336。在签名操作336处,聚集引擎假定替换的签名大小。随后,偏移操作338基于替换的假定签名大小相对于分组的末尾找到分组的偏移。查询操作340随后检测在该偏移位置处的协议号是否指示该分组为TCP。如果否,则在该示例中,传递操作306将传递该分组而不压缩,因为没有其它签名大小要进行尝试。如果偏移位置确实指定TCP,则操作流程进行至步操作328,在这里操作如上所述地进行。
可以想象,尽管不太可能,可能将ESP加密分组误认为是认证分组,甚至是在将协议类型匹配到TCP并且确认了填充值之后。为避免尝试压缩该ESP加密分组,可将它排队,同时还检查下几个分组,例如下3-4个分组以验证它们也是ESP认证分组而非ESP加密分组。一旦验证这些后续分组也是ESP认证的,则可将该被排队的分组连同后续分组一起传递到至少一个单个可压缩缓冲区127,因为这几乎肯定它也是ESP认证分组。
图3B示出由聚集引擎124执行的、如在图2A的收集操作204中将连续分组或者其净荷分段收集在至少一个单个可压缩缓冲区127中的逻辑操作的示例。在该示例中,目标可以是在该至少一个单个可压缩缓冲区127中收集尽可能多的数据分组或者其净荷分段,以使传递给压缩器引擎128的数据集尽可能大。附加目标可以是还要最小化对端点到端点流的负面影响,诸如超时、等待时间、和用户应用程序的响应性降低。这些逻辑操作也是为了说明的目的而提供的,并且不旨在是限制性的,因为可以理解还存在这些操作的各种替换方案。
逻辑操作开始于查询操作342,该操作检测当前分组是流的开始还是结束分组。例如,聚集引擎124可检查头部以查看SYN、FIN或者RST TCP标志是否被设置。如果是,则在压缩操作348处,将该分组添加到在至少一个单个可压缩缓冲区127中的当前集合,并且将该至少一个单个可压缩缓冲区127的内容立即发送到压缩器引擎128来进行压缩和发送,以避免在将数据分组传送到远程对等体时的任何更多的延迟。如前所述,将数据分组添加到至少一个单个可压缩缓冲区127可涉及将分组分离成各种分段,各分段类型被分开缓冲,以便可对不同的分段类型应用不同的压缩算法以更高效地压缩数据分组。在该分离过程期间,也可收集和缓冲指定头部和净荷的顺序和长度的元数据。
如果当前分组不是流的开始或结束分组,则查询操作345检测当前分组是否具有零长度的净荷。如果它确实具有零长度的净荷,诸如TCP ACK分组,则将该分组添加到至少一个单个可压缩缓冲区127中的当前集合中。在压缩操作348处,将该至少一个单个可压缩缓冲区127的内容立即发送到压缩器引擎128来进行压缩和发送,以避免在将它传送到远程对等体时的任何更多的延迟。如果当前分组不具有零长度的净荷,则操作流程进行至查询操作346。
查询操作346检测当前数据分组在该端点到端点流的已经接收到的分组序列中是否为乱序的。这可基于当前分组的TCP序列号相对于在队列中最后收集的分组的TCP序列号来检测。如果当前数据分组是乱序的,则在压缩操作354处提供在至少一个单个可压缩缓冲区127内的数据分组或其净荷分段的当前集合来进行压缩,而在收集操作356处则将当前数据分组添加到该至少一个单个可压缩缓冲区127的新实例以开始新的分组集合。这样做是避免将大量乱序的分组发送到接收分组压缩设备,而这种情况可过度地降级端点之间的通信会话。
如果当前数据分组不是乱序的,则查询操作350检测,对于在至少一个单个可压缩缓冲区127中的任何数据分组,超时阈值(诸如TCP超时)是否将要发生。这可通过存储反映最初收到至少一个单个可压缩缓冲区127中的每个数据分组的时间的时间戳并且随后通过将时间戳与当前时间进行比较来确定。如果超时阈值将要到达,则在压缩操作348处,可将当前数据分组添加到至少一个单个可压缩缓冲区127并且随后将该至少一个单个可压缩缓冲区127传递到压缩器引擎128来进行压缩。
如果超时阈值未到达,则查询操作352检测将当前数据分组或其净荷分段添加到至少一个单个可压缩缓冲区127中是否将超过要被压缩的数据集的预定义最大大小,例如64千字节。如果是,则在压缩操作354处,提供当前至少一个单个可压缩缓冲区127来进行压缩,而在收集操作356处,将当前数据分组添加到该至少一个单个可压缩缓冲区127的新实例以开始新的分组集合。
如果添加当前数据分组将不会超过至少一个单个可压缩缓冲区127的预定义最大大小,则在收集操作358处,将当前数据分组添加到该至少一个单个可压缩缓冲区127。操作流程随后进行至查询操作360。在完成收集操作356后操作流程也进行到查询操作360。查询操作360检测自从将该流的最后一个数据分组排队到至少一个单个可压缩缓冲区127中起是否已经超过延迟定时器阈值。延迟定时器阈值的一个示例是固定的3毫秒,而另一个示例是可根据两个压缩设备之间链路的往返时间(RTT)进行调整的动态值。可将最后一个数据分组的时间戳与当前时间比较。如果已经超过延迟定时器阈值,则在压缩操作362处将当前集合提供给压缩器引擎128。如果尚未超过延迟定时器,则聚集引擎124等待下一数据分组或者另一定时器事件,该事件会触发它以将收集的分组发送到压缩器引擎128。
如上所述,可应用许多变型。例如,如果TCP重试是无关紧要的,则可省略查询操作350。作为另一个示例,延迟定时器可基于进入队列的第一个数据分组或其净荷分段而不是最后一个,其中延迟定时器阈值设置为不同于TCP超时阈值的量。延迟定时器阈值可设置为大于或小于3毫秒示例的值。作为又一个示例,可将零净荷分组当作好像其具有净荷一样来处理,这样可以省略查询操作345。此外,可通过检测传入分组是否具有置位的PSH TCP标志来将单个可压缩缓冲区传递给压缩器引擎,这将帮助优化其中期望应用级确认的用户应用程序,但会降低其中不期望应用级确认的应用程序的压缩比。
图4A示出根据一个说明性实施例的、数据分组及其分段在通过压缩和传输阶段的过程中的各阶段。最初,从对等设备接收数据分组并且将适用于压缩的数据分组收集为连续数据分组的集合402。数据分组包括头部H1-HN及其相对应的净荷P1-PN。在该实施例中,对每个头部403和每个净荷405使用分开的压缩算法以最大化各自的压缩效率,因此对这个连续数据分组集合402的分组进行分段以形成头部集合404和净荷集合406。另外,可创建元数据408以指定头部和净荷各自的准确长度和顺序。净荷集合406存储在被输入到压缩算法以形成压缩净荷数据集410的至少一个单个可压缩缓冲区127中。
在该示例中,元数据408和头部集合404随后与压缩净荷数据集410串接在一起以形成串接集合411。此外,根据该实施例,随后使用诸如LZW等压缩技术来压缩串接集合411以形成压缩数据集412。可以理解,还存在压缩的替换方式,诸如通过对每一分段类型使用至少一个单个可压缩缓冲区127的分开实例来分开压缩这三个部分中的每一个,并且随后将结果串接起来以形成压缩数据集。还可以理解,可不压缩头部和/或元数据,以便可以传送串接集合411。
为了传送该实施例的压缩数据集412,其随后被分组化以形成隧道分组集合414。隧道分组集合414的隧道分组包括其自己的头部H11-HNN以及相对应的净荷P11-PNN。这些隧道分组随后通过网络106传送到接收压缩设备。可以理解,传送头部和压缩净荷的替换方式也是可能的,诸如对头部集合和压缩净荷集合创建分开的隧道分组。
图4B示出根据一个说明性实施例的、数据分组及其分段在通过接收、解压和重构阶段过程中的各阶段。最初,从发送压缩设备接收隧道分组集合414。随后解分组化隧道分组集合414的每个隧道分组以再现压缩数据集412。对于诸如其中串接集合411已经被压缩以产生压缩数据集412的这个实施例等实施例,压缩数据集412随后由解压器引擎152解压以产生头部集合404、元数据408和压缩净荷数据集410。压缩净荷数据集410随后作为至少一个单个可解压缓冲区提供给解压器引擎152,在这里它被解压以产生净荷集合406。
这些解压的头部集合404、净荷集合406和元数据408随后被提供给散布引擎139。散布引擎139随后按照元数据408中指定的长度和顺序将头部集合404中的每个头部与净荷集合406中的其相对应净荷进行匹配。散布引擎139还可添加任何附加数据,诸如以太网头部和IPSec ESP填充,它们未被传送但却是散布引擎139已经知道的,从而重构包括每个头部403和每个相对应的净荷405连续数据分组集合402。散布引擎139随后将连续数据分组集合402的各个数据分组注入到接收分组压缩设备本地的对等设备的端到端流中。
尽管上面已经以专用于结构特征和/或方法动作的语言描述了本主题,但要理解,在所附权利要求书中定义的主题不必受限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式而公开的。

Claims (20)

1.一种压缩数据分组传输的方法,包括:
将多个连续数据分组(402)聚集(204)到第一集合中,所述多个连续数据分组(402)在端点(102,110)之间的第一单个通信会话(113)的字节流中连续并且每一个都包含头部(403)和净荷(405);
将所述连续数据分组的第一集合(402)的净荷(405)编组(348)到一个缓冲区(127)中,所述头部不被包括在所述缓冲区中;
将所述缓冲区(127)的至少多个净荷(405)作为单个数据集进行压缩(206)以创建包括所述净荷但不包括所述头部的压缩数据集(410);
形成由元数据、被压缩净荷数据,和所述头部组成的第二数据集;
分组化所述第二数据集以形成数据分组的第二集合(414),所述数据分组的第二集合(414)具有与所述第一集合(402)的头部(403)不同的头部(415);以及
通过端点(104,108)之间的第二单个通信会话(115)传送(208)所述数据分组的第二集合(414)。
2.如权利要求1所述的方法,其特征在于,还包括:
对于所述第一集合的每个数据分组,将所述头部与所述净荷分离;以及
将所述头部与所述压缩数据集串接起来以产生串接集合并且压缩所述串接集合,使得所述数据分组的第二集合包含压缩头部集合和压缩净荷集合。
3.如权利要求1所述的方法,其特征在于,还包括从多个附加通信会话接收数据分组,并且其中将所述多个连续数据分组聚集到所述第一集合中包括标识接收到的来自端点之间的所述第一单个通信会话的数据分组,所述方法还包括标识接收到的来自端点之间不同于所述第一单个通信会话的单个通信会话的数据分组,并且将接收到的来自不同的单个通信会话的数据分组包含在不同于所述第一集合的集合中。
4.如权利要求3所述的方法,其特征在于,将所述连续数据分组集合的至少净荷编组到所述缓冲区中包括,确定是否要停止将净荷添加到所述缓冲区并且开始压缩所述缓冲区。
5.如权利要求4所述的方法,其特征在于,确定是否要停止添加净荷包括,检测是否到达至少一个阈值,所述至少一个阈值包括传输层超时、最大缓冲区大小、和从上一个净荷被添加到所述缓冲区时起的预定义延迟中的至少一个。
6.如权利要求1所述的方法,其特征在于,将所述多个连续数据分组聚集到所述第一集合中包括:
确定端点之间的所述第一单个通信会话的任何数据分组是否包含安全头部;
如果端点之间的所述第一单个通信会话的数据分组包含安全头部,则确定所述具有安全头部的数据分组是加密数据分组还是认证数据分组;
如果所述数据分组被确定为认证数据分组,则将所述数据分组包含在所述第一集合中,并且如果所述数据分组被确定为加密数据分组,则通过端点之间的所述第一单个通信会话转发所述数据分组而不压缩。
7.如权利要求6所述的方法,其特征在于,确定接收到的数据分组中的任一个是否包含安全头部包括,检测所述分组是否为IPSec ESP分组,并且当所述分组为IPSec ESP分组时,则通过尝试使用假定的IPSec ESP签名大小来确认所述分组以确定所述IPSec ESP分组是加密分组还是认证分组。
8.如权利要求1所述的方法,其特征在于,聚集到连续数据分组的所述第一集合中还包括,分析每一数据分组以检测所述分组是否为传输控制协议分组并且将是传输控制协议分组的数据分组包含在所述第一集合中。
9.如权利要求1所述的方法,其特征在于,还包括:
从所述第一单个通信会话的连续数据分组的头部中的至少一个获得优先级设置;以及
对所述数据分组的第二集合的头部中的至少一个指定所获得的优先级设置。
10.一种解压缩数据分组的方法,包括:
接收(210)端点(104,108)之间的第二通信会话(115)的多个数据分组(414),每个接收到的数据分组包含头部(415)和净荷(417);
解分组化(212)所述接收到的数据分组(414)以揭示在端点(102,110)之间的第一单个通信会话(113)的字节流中连续的连续数据分组集合(402)的头部(403),并揭示包含端点(102,110)之间的第一单个通信会话(113)的所述连续数据分组集合(402)的压缩净荷(410)的单个压缩数据集(411),所述压缩净荷被压缩时不带有头部,所述连续数据分组集合(402)的头部(403)不同于所述接收到的多个数据分组(414)的头部(415);
解压(214)所述压缩数据集(411)以揭示所述连续数据分组集合(402)的净荷(405);
通过将所述连续数据分组集合(402)的头部(403)与所述连续数据分组集合(402)的解压净荷(405)进行匹配来重构(216)所述连续数据分组集合(402);以及
将所述重构的连续数据分组集合(402)以预定义的顺序注入(218)所述第一单个通信会话(113)。
11.如权利要求10所述的方法,其特征在于,每一连续数据分组的头部是传输控制协议头部。
12.如权利要求10所述的方法,其特征在于,所述多个数据分组包括指定来自所述第一通信会话的头部和净荷的顺序排序的元数据,并且其中重构所述连续数据分组集合包括根据所述元数据来获得头部和净荷。
13.如权利要求10所述的方法,其特征在于,所述预定义的顺序与端点之间的所述第一单个通信会话的所述连续数据分组集合的顺序相匹配。
14.一种用于压缩数据分组的设备(104),包括:
至少一个网络连接器(112);
聚集引擎(124),所述聚集引擎接收去往经由至少一个网络连接器(112)的第一单个通信会话(113)的端点(110)的传入分组,确定所述传入分组是否适用于包含在要被压缩和传输的所述第一单个通信会话(113)的字节流中连续的连续数据分组的第一集合(402)中,并且向至少一个缓冲区(127)提供所述连续数据分组的第一集合(402)的至少净荷(405);
压缩引擎(128),将存储在缓冲区(127)的至少多个净荷(405)作为单个数据集进行压缩以形成压缩数据集(410),所述压缩数据不包括与净荷相关联的头部;以及
传输引擎(126),所述传输引擎将所述压缩数据集(410)和头部编组到第二数据集中,并且将所述第二数据集分组化到数据分组的第二集合(414)中,并且通过第二通信会话(115)将所述第二集合(414)传送到另一设备(108)。
15.如权利要求14所述的设备,其特征在于,还包括:
接收器引擎,所述接收器引擎通过所述第二通信会话经由至少一个网络连接从其它设备接收传入分组,并且解分组化所述传入分组以揭示所述传输层头部和所述压缩数据集;
解压引擎,所述解压引擎接收所述压缩数据集,并且解压所述压缩数据集以揭示所述连续数据分组的第一集合的净荷;以及
散布引擎,所述散布引擎取得头部和解压净荷,并且通过将头部与解压净荷进行匹配来重构所述连续数据分组的第一集合。
16.如权利要求15所述的设备,其特征在于,所述散布引擎将所述重构的连续数据分组的第一集合注入与所述端点的第二通信会话中。
17.如权利要求14所述的设备,其特征在于,所述聚集引擎通过下列动作将所述连续数据分组聚集到所述第一集合中,所述动作包括:
确定任何传入数据分组是否包含安全头部;
如果传入数据分组包含安全头部,则确定具有安全头部的所述传入数据分组是加密分组还是认证分组;以及
将认证数据分组包含在所述第一集合中,但传递加密数据分组而不压缩。
18.如权利要求17所述的设备,其特征在于,所述聚集引擎检测任何传入数据分组是否包含安全头部包括检测该分组是否为IPSec ESP分组,并且当该分组为IPSec ESP分组时,则所述聚集引擎通过尝试使用假定的IPSec ESP签名大小来确认该分组以确定所述IPSec ESP分组是加密分组还是认证分组。
19.如权利要求14所述的设备,其特征在于,所述聚集引擎通过分析每一数据分组以检测所述数据分组是否为传输控制协议分组并且包含是传输控制协议分组的数据分组,来将传入数据分组聚集到所述连续数据分组的第一集合中。
20.如权利要求14所述的设备,其特征在于,所述聚集引擎从所述第一通信会话的连续数据分组的头部获得优先级设置,并且其中所述传输引擎对所述数据分组的第二集合的头部指定所获得的优先级设置。
CN2008800131941A 2007-04-26 2008-03-25 在维持端点到端点认证的同时压缩数据分组 Active CN101663867B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/796,078 2007-04-26
US11/796,078 US8416788B2 (en) 2007-04-26 2007-04-26 Compression of data packets while maintaining endpoint-to-endpoint authentication
PCT/US2008/058138 WO2008134157A1 (en) 2007-04-26 2008-03-25 Compression of data packets while maintaining endpoint-to-endpoint authentication

Publications (2)

Publication Number Publication Date
CN101663867A CN101663867A (zh) 2010-03-03
CN101663867B true CN101663867B (zh) 2012-07-11

Family

ID=39886913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800131941A Active CN101663867B (zh) 2007-04-26 2008-03-25 在维持端点到端点认证的同时压缩数据分组

Country Status (6)

Country Link
US (1) US8416788B2 (zh)
EP (1) EP2145435B1 (zh)
JP (1) JP2010529704A (zh)
CN (1) CN101663867B (zh)
TW (1) TW200849900A (zh)
WO (1) WO2008134157A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104717153A (zh) * 2013-12-12 2015-06-17 国际商业机器公司 资源过载

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171238B1 (en) 2007-07-05 2012-05-01 Silver Peak Systems, Inc. Identification of data stored in memory
US8095774B1 (en) 2007-07-05 2012-01-10 Silver Peak Systems, Inc. Pre-fetching data into a memory
US8392684B2 (en) 2005-08-12 2013-03-05 Silver Peak Systems, Inc. Data encryption in a network memory architecture for providing data based on local accessibility
US8489562B1 (en) 2007-11-30 2013-07-16 Silver Peak Systems, Inc. Deferred data storage
US8929402B1 (en) 2005-09-29 2015-01-06 Silver Peak Systems, Inc. Systems and methods for compressing packet data by predicting subsequent data
US8811431B2 (en) 2008-11-20 2014-08-19 Silver Peak Systems, Inc. Systems and methods for compressing packet data
US8885632B2 (en) 2006-08-02 2014-11-11 Silver Peak Systems, Inc. Communications scheduler
US8755381B2 (en) 2006-08-02 2014-06-17 Silver Peak Systems, Inc. Data matching using flow based packet data storage
US8156241B1 (en) * 2007-05-17 2012-04-10 Netapp, Inc. System and method for compressing data transferred over a network for storage purposes
US8307115B1 (en) 2007-11-30 2012-11-06 Silver Peak Systems, Inc. Network memory mirroring
US10805840B2 (en) 2008-07-03 2020-10-13 Silver Peak Systems, Inc. Data transmission via a virtual wide area network overlay
US9717021B2 (en) 2008-07-03 2017-07-25 Silver Peak Systems, Inc. Virtual network overlay
US8743683B1 (en) 2008-07-03 2014-06-03 Silver Peak Systems, Inc. Quality of service using multiple flows
US10164861B2 (en) 2015-12-28 2018-12-25 Silver Peak Systems, Inc. Dynamic monitoring and visualization for network health characteristics
US9043276B2 (en) * 2008-10-03 2015-05-26 Microsoft Technology Licensing, Llc Packaging and bulk transfer of files and metadata for synchronization
US8160060B2 (en) * 2008-11-10 2012-04-17 Infosys Technologies Limited System and method for transferring data using variance based messaging
TWI413899B (zh) * 2009-07-27 2013-11-01 Univ Nat Sun Yat Sen 應用於循環記憶體之壓縮資料管理系統及方法
US9038073B2 (en) * 2009-08-13 2015-05-19 Qualcomm Incorporated Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts
US8762532B2 (en) * 2009-08-13 2014-06-24 Qualcomm Incorporated Apparatus and method for efficient memory allocation
US20110041128A1 (en) * 2009-08-13 2011-02-17 Mathias Kohlenz Apparatus and Method for Distributed Data Processing
US8788782B2 (en) * 2009-08-13 2014-07-22 Qualcomm Incorporated Apparatus and method for memory management and efficient data processing
US8745263B2 (en) * 2009-10-07 2014-06-03 International Business Machines Corporation System for high-speed low-latency inter-system communications via channel-to-channel adapters or similar devices
US8539224B2 (en) * 2009-11-05 2013-09-17 International Business Machines Corporation Obscuring form data through obfuscation
US8453040B2 (en) * 2009-11-05 2013-05-28 International Business Machines Corporation Obscuring information in messages using compression with site-specific prebuilt dictionary
US20110194490A1 (en) * 2010-02-10 2011-08-11 Xg Technology, Inc. Method for tcp ack containment in unidirectional flows with cross layer optimization in wireless networks
US8806190B1 (en) 2010-04-19 2014-08-12 Amaani Munshi Method of transmission of encrypted documents from an email application
US9203684B1 (en) * 2010-07-14 2015-12-01 Google Inc. Reduction of web page load time using HTTP header compression
US9130991B2 (en) * 2011-10-14 2015-09-08 Silver Peak Systems, Inc. Processing data packets in performance enhancing proxy (PEP) environment
US9626224B2 (en) 2011-11-03 2017-04-18 Silver Peak Systems, Inc. Optimizing available computing resources within a virtual environment
JP5845462B2 (ja) * 2011-11-07 2016-01-20 パナソニックIpマネジメント株式会社 通信システムおよびそれに用いる伝送ユニット
EP2592784B1 (en) * 2011-11-14 2013-09-18 Alcatel Lucent Apparatus, method and computer program for routing data packets
JP2013115704A (ja) * 2011-11-30 2013-06-10 Canon Inc 通信装置、その制御方法、および制御プログラム
US8762605B2 (en) * 2011-11-30 2014-06-24 Apple Inc. Adapter for electronic devices
US20140198789A1 (en) * 2013-01-11 2014-07-17 Lsi Corporation Low latency in-line data compression for packet transmission systems
CN103973645B (zh) * 2013-01-30 2017-11-24 华为技术有限公司 一种数据传输方法和相关装置
US9634963B2 (en) * 2013-04-16 2017-04-25 Tencent Technology (Shenzhen) Company Limited Method and system for handling message on instant messaging open platform
JP6205912B2 (ja) * 2013-07-05 2017-10-04 富士通株式会社 情報処理装置、配信方法および配信プログラム
US9553954B1 (en) * 2013-10-01 2017-01-24 Integrated Device Technology, Inc. Method and apparatus utilizing packet segment compression parameters for compression in a communication system
US9313300B2 (en) 2013-11-07 2016-04-12 Integrated Device Technology, Inc. Methods and apparatuses for a unified compression framework of baseband signals
US9948496B1 (en) 2014-07-30 2018-04-17 Silver Peak Systems, Inc. Determining a transit appliance for data traffic to a software service
US9875344B1 (en) 2014-09-05 2018-01-23 Silver Peak Systems, Inc. Dynamic monitoring and authorization of an optimization device
US20160088083A1 (en) * 2014-09-21 2016-03-24 Cisco Technology, Inc. Performance monitoring and troubleshooting in a storage area network environment
US9853873B2 (en) 2015-01-10 2017-12-26 Cisco Technology, Inc. Diagnosis and throughput measurement of fibre channel ports in a storage area network environment
US9900250B2 (en) 2015-03-26 2018-02-20 Cisco Technology, Inc. Scalable handling of BGP route information in VXLAN with EVPN control plane
US10222986B2 (en) 2015-05-15 2019-03-05 Cisco Technology, Inc. Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
US11588783B2 (en) 2015-06-10 2023-02-21 Cisco Technology, Inc. Techniques for implementing IPV6-based distributed storage space
US10778765B2 (en) 2015-07-15 2020-09-15 Cisco Technology, Inc. Bid/ask protocol in scale-out NVMe storage
US9892075B2 (en) 2015-12-10 2018-02-13 Cisco Technology, Inc. Policy driven storage in a microserver computing environment
US10140172B2 (en) 2016-05-18 2018-11-27 Cisco Technology, Inc. Network-aware storage repairs
US20170351639A1 (en) 2016-06-06 2017-12-07 Cisco Technology, Inc. Remote memory access using memory mapped addressing among multiple compute nodes
US10432484B2 (en) 2016-06-13 2019-10-01 Silver Peak Systems, Inc. Aggregating select network traffic statistics
US10664169B2 (en) 2016-06-24 2020-05-26 Cisco Technology, Inc. Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device
US9967056B1 (en) 2016-08-19 2018-05-08 Silver Peak Systems, Inc. Forward packet recovery with constrained overhead
US11563695B2 (en) 2016-08-29 2023-01-24 Cisco Technology, Inc. Queue protection using a shared global memory reserve
US10355944B2 (en) * 2016-10-31 2019-07-16 Riverbed Technology, Inc. Minimally invasive monitoring of path quality
US10545914B2 (en) 2017-01-17 2020-01-28 Cisco Technology, Inc. Distributed object storage
US11044202B2 (en) 2017-02-06 2021-06-22 Silver Peak Systems, Inc. Multi-level learning for predicting and classifying traffic flows from first packet data
US10257082B2 (en) 2017-02-06 2019-04-09 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows
US10892978B2 (en) 2017-02-06 2021-01-12 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows from first packet data
US10771394B2 (en) 2017-02-06 2020-09-08 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows on a first packet from DNS data
US10243823B1 (en) 2017-02-24 2019-03-26 Cisco Technology, Inc. Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks
US10713203B2 (en) 2017-02-28 2020-07-14 Cisco Technology, Inc. Dynamic partition of PCIe disk arrays based on software configuration / policy distribution
US10254991B2 (en) 2017-03-06 2019-04-09 Cisco Technology, Inc. Storage area network based extended I/O metrics computation for deep insight into application performance
US10303534B2 (en) 2017-07-20 2019-05-28 Cisco Technology, Inc. System and method for self-healing of application centric infrastructure fabric memory
US11212210B2 (en) 2017-09-21 2021-12-28 Silver Peak Systems, Inc. Selective route exporting using source type
US10404596B2 (en) 2017-10-03 2019-09-03 Cisco Technology, Inc. Dynamic route profile storage in a hardware trie routing table
US10942666B2 (en) 2017-10-13 2021-03-09 Cisco Technology, Inc. Using network device replication in distributed storage clusters
US10637721B2 (en) 2018-03-12 2020-04-28 Silver Peak Systems, Inc. Detecting path break conditions while minimizing network overhead
EP3541040B1 (en) * 2018-03-16 2022-04-13 Acklio Method and apparatus for processing message data
EP3644573B1 (en) * 2018-10-24 2021-04-21 Acklio Simple communication protocol for data transmission over constrained networks
US10511648B1 (en) * 2019-07-24 2019-12-17 Cybertoka Ltd Method and system for reconstructing media streams
DE102020113451A1 (de) 2020-05-18 2021-11-18 Bayerische Motoren Werke Aktiengesellschaft Sendeeinheit und Empfangseinheit zum Senden und Empfangen von Datenpaketen

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1503527A (zh) * 2002-11-22 2004-06-09 ض� 压缩安全协议保护的网际协议分组的方法、设备和系统

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481542A (en) * 1993-11-10 1996-01-02 Scientific-Atlanta, Inc. Interactive information services control system
US5602749A (en) * 1995-01-12 1997-02-11 Mtc Method of data compression and apparatus for its use in monitoring machinery
US5684962A (en) 1995-08-24 1997-11-04 Telco Systems, Inc. Context control block for computer communications
US6339787B1 (en) * 1995-11-30 2002-01-15 Stampede Technologies, Inc. Apparatus and method for increasing speed in a network file/object oriented server/client system
US6963570B1 (en) 1997-07-15 2005-11-08 Comsat Corporation Method and apparatus for adaptive loss-less compression of cell/packet headers
US7315544B2 (en) * 2000-01-21 2008-01-01 Bytemobile, Inc. Global sequence numbers in wireless communications systems and methods
US6523102B1 (en) * 2000-04-14 2003-02-18 Interactive Silicon, Inc. Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules
WO2002029991A1 (en) 2000-10-05 2002-04-11 Provisionpoint Communications, Llc Group packet encapsulation and compression system and method
US6618397B1 (en) * 2000-10-05 2003-09-09 Provisionpoint Communications, Llc. Group packet encapsulation and compression system and method
US6834297B1 (en) 2000-10-06 2004-12-21 Redline Networks, Inc. Web resource transfer acceleration system and method
EP1396103A2 (en) 2001-05-24 2004-03-10 Lycium Networks (B.V.I.) Ltd. Compression methods for packetized sonet/sdh payloads
DE10147979A1 (de) * 2001-09-28 2003-04-10 Siemens Ag Übertragungsverfahren und Netzübergangseinrichtung zur Echtzeitkommunikation zwischen paketorientierten Kommunikationsnetzen
US7209491B2 (en) 2002-06-28 2007-04-24 Nokia Corporation Method and system for transmitting data in a packet based communication network
JP3853765B2 (ja) 2002-11-08 2006-12-06 Necインフロンティア株式会社 パケット圧縮方式及びパケット復元方式並びにパケット圧縮方法及びパケット復元方法
JP4119992B2 (ja) * 2002-11-08 2008-07-16 株式会社 デジタルデザイン ネットワークにおけるデータ配信方法及びデータ配信システム
US7362780B2 (en) * 2002-12-11 2008-04-22 Nokia Corporation Avoiding compression of encrypted payload
US7126955B2 (en) 2003-01-29 2006-10-24 F5 Networks, Inc. Architecture for efficient utilization and optimum performance of a network
US20040199660A1 (en) 2003-02-14 2004-10-07 Nokia Corporation Method of multiplexing compressed and uncompressed internet protocol packets
US7590132B2 (en) 2003-02-25 2009-09-15 Cisco Technology, Inc. In-band negotiation in single transcompression scenarios related applications
GB2415335B (en) * 2004-06-15 2007-09-26 Toshiba Res Europ Ltd Wireless terminal dynamically programmable proxies
US7640363B2 (en) 2005-02-16 2009-12-29 Microsoft Corporation Applications for remote differential compression
US7876695B2 (en) 2006-03-07 2011-01-25 Telefonaktiebolaget Lm Ericsson (Publ) Communication station and method providing flexible compression of data packets

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1503527A (zh) * 2002-11-22 2004-06-09 ض� 压缩安全协议保护的网际协议分组的方法、设备和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104717153A (zh) * 2013-12-12 2015-06-17 国际商业机器公司 资源过载
CN104717153B (zh) * 2013-12-12 2018-12-25 国际商业机器公司 用于在网络中管理工作负荷的计算机实现方法和系统

Also Published As

Publication number Publication date
TW200849900A (en) 2008-12-16
CN101663867A (zh) 2010-03-03
WO2008134157A1 (en) 2008-11-06
EP2145435A1 (en) 2010-01-20
US8416788B2 (en) 2013-04-09
JP2010529704A (ja) 2010-08-26
EP2145435A4 (en) 2014-12-31
US20080267217A1 (en) 2008-10-30
EP2145435B1 (en) 2018-08-15

Similar Documents

Publication Publication Date Title
CN101663867B (zh) 在维持端点到端点认证的同时压缩数据分组
US20150334210A1 (en) Processing Data Packets in Performance Enhancing Proxy (PEP) Environment
CA2555428C (en) Encoding a tcp offload engine within fcp
US7027450B2 (en) Frame batching and compression for IP transmission
US8411677B1 (en) Method and system for processing layered networking protocol packets
US11108633B2 (en) Protocol selection in dependence upon conversion time
EP0559593A1 (fr) Procédé et dispositif de compression et décompression de données pour un système de transmission
US7308001B2 (en) Fibre channel frame batching for IP transmission
KR20170026541A (ko) 터널화된 트래픽의 최적화를 위한 방법 및 장치
JP2006005878A (ja) 通信システムの制御方法、通信制御装置、プログラム
EP1256062A1 (fr) Transport d'unites de protocole d'objet electronique portable par protocole pour peripheriques de micro-ordinateur
Telikepalli et al. Storage area network extension solutions and their performance assessment
US20220166832A1 (en) Device and Method for Romote Direct Memory Access
EP3637845B1 (fr) Procédé de communication basé sur un protocole de transmission par trames
CN110611644A (zh) 一种数据的传输方法和装置
CN104811265B (zh) 基带帧的封装方法及解封装方法
CN109951425B (zh) 基于fpga的tcp流状态完整性检测方法
US20140074912A1 (en) Communication apparatus, relay apparatus and communication method
US6963568B2 (en) Method for transmitting data packets, method for receiving data packets, data packet transmitter device, data packet receiver device and network including such devices
CN106789878A (zh) 一种面向大流量环境的文件还原系统以及方法
CN112017049B (zh) 一种证券行情转发系统和方法
US8811429B2 (en) Batching and compression for IP transmission
CN105657050A (zh) 低流量pos机通信系统及通信方法
CN111130720A (zh) 一种基于内存优化的重传机制

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150514

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150514

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.