首页 / 专利库 / 专利权 / 申请人 / 对数据流量进行控制的方法及装置

对数据流量进行控制的方法及装置

阅读:495发布:2023-03-01

专利汇可以提供对数据流量进行控制的方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 实施方式提供了一种对数据流量进行控制的方法及装置,通过获取需要进行控制的数据流中,客户端回应给 服务器 端的接收应答数据包,对所述接收应答数据包中的窗口大小字段进行 修改 ,并伪造和发送接收应答数据包到所述的服务器端,使所述的服务器端按照设定的流量要求,也就是按照修改后的窗口大小字段所 指定 的数据长度来传送数据,从而达到了对数据流量进行精确控制的目的。,下面是对数据流量进行控制的方法及装置专利的具体信息内容。

1.一种对数据流量进行控制的方法,其特征在于:
获取需要进行控制的数据流中客户端回应给服务器端的接收应答数据包;
修改所述接收应答数据包中的窗口大小字段,并伪造接收应答数据包;
将伪造的接收应答数据包发送到所述服务器端。
2.如权利要求1所述的对数据流量进行控制的方法,其特征在于,所述获 取需要进行控制的数据流中客户端回应给服务器端的接收应答数据包,具体包 括:
捕获监控网络上的一个数据包;
判断所述的数据包是否为需要进行控制的数据流中的数据包;
若是,则进一步判断所述的数据包是否为客户端回应给服务器端的接收应 答数据包,反之,则再捕获监控网络上的另一个数据包;
若所述的数据包是客户端回应给服务器端的接收应答数据包,则获取所述 的数据包;反之,则再捕获监控网络上的另一个数据包。
3.如权利要求2所述的对数据流量进行控制的方法,其特征在于,所述判 断所述的数据包是否为客户端回应给服务器端的接收应答数据包,具体包括:
根据TCP协议中的标记字段来进行判断,若标记字段为0×10,则所述的数 据包是客户端回应给服务器端的接收应答数据包;反之,则不是。
4.如权利要求1所述的对数据流量进行控制的方法,其特征在于,所述修 改所述数据包中的窗口大小字段,进一步包括:
修改后的窗口大小字段的值根据实际需要设定。
5.如权利要求1所述的对数据流量进行控制的方法,其特征在于,所述伪 造接收应答数据包,进一步包括:
按照TCP协议数据包的要求重新计算伪造的接收应答数据包的校验和,将 所述校验和填入该伪造的接收应答数据包中。
6.如权利要求1所述的对数据流量进行控制的方法,其特征在于,在伪造 接收应答数据包的过程中,对于TCP协议不进行验证的字段,使其与获取的接 收应答数据包中的相应字段保持一致,或按照需要对其进行修改。
7.如权利要求1所述的对数据流量进行控制的方法,其特征在于,在所述 将伪造的接收应答数据包发送到所述服务器端之后,还包括:
所述服务器端按照伪造的接收应答数据包中窗口大小字段的值进行数据 的传送。
8.一种对数据流量进行控制的装置,其特征在于,包括:
数据包获取单元,用于获取需要进行控制的数据流中客户端回应给服务器 端的接收应答数据包;
数据包干扰单元,用于修改所述数据包获取单元所获取的接受应答数据包 中的窗口大小字段,并伪造接收应答数据包;
数据包发送单元,用于将所述数据包干扰单元伪造的接收应答数据包发送 到所述服务器端。
9.如权利要求8所述的对数据流量进行控制的装置,其特征在于,所述的 数据包获取单元中包括:
捕获模,用于捕获监控网络上的一个数据包;
判断模块,用于判断所述捕获模块所捕获的数据包是否为需要进行控制的 数据流中,客户端回应给服务器端的接收应答数据包;
若判断所述捕获的数据包是需要进行控制的数据流中,客户端回应给服务 器端的接收应答数据包,则获取所述的数据包;反之,则由所述捕获模块再捕 获监控网络上的另一个数据包。
10.如权利要求8所述的对数据流量进行控制的装置,其特征在于,所述 的数据包干扰单元中包括:
字段修改模块,用于修改所述数据包获取单元所获取的接受应答数据包中 的窗口大小字段;修改后的窗口大小字段的值为所需要的,服务器端发往客户 端的数据长度;
数据包伪造模块,用于在所述字段修改模块修改所述窗口大小字段之后, 伪造接收应答数据包。

说明书全文

技术领域

发明涉及网络通信领域,尤其涉及一种对数据流量进行控制的方法及装 置。

背景技术

随着网络规模的扩大以及网络应用的不断深入,网络节点之间传输数据的 流量越来越大,而P2P(Peer to Peer,点对点)软件的广泛应用也导致了网 络带宽被大量的占用,严重影响了正常业务的开展。因此运营商、企业用户以 及其他一些有特殊需求行业的用户就希望能够对特定应用的数据流量进行控 制,特别是希望能够利用某种旁路设备对指定数据流的流量进行精确的控制。
目前在数据传输应用中,基本上都是基于TCP(Transmission Control Protocol,传输控制协议)协议的数据传输模式。TCP提供了一种面向连接的、 可靠的字节流传输服务,接收数据的客户端与提供数据的服务器端在彼此交换 数据前必须先建立一个TCP连接,当客户端收到服务器端使用TCP发送的数据 后,客户端就会发送一个确认响应报文。这里的TCP数据是被封装在一个IP数 据包中的,如图1所示为TCP数据在IP数据包中的封装示意图,图中:TCP报 文段是由TCP首部和TCP数据部分组成的,而对传输流量进行控制的关键就在 于控制TCP数据部分的长度。
其中TCP首部的数据格式如图2所示,TCP首部的长度通常是20个字节, 其中有6个标志比特位,它们中的多个可以同时被设置为1。这6个标志比特位 中:ACK用于确认序号有效;RST用于复位,重建连接;SYN用于发起一个连 接;而PSH表明接收方应该尽快将这个报文段传输给应用层。TCP协议采用的 流量控制由声明的窗口大小来提供,即window size字段,这里的窗口大小是一 个16比特的字段,它的值为字节数,这个值也正是接收端所期望接收的字节数。
在TCP协议层次上,做为旁路设备对数据流量进行干扰限速的常用方法一 般是通过发送带有RST或者SYN ACK标志的干扰包来切断所要干扰的数据流, 从而达到控制数据流程传输速度的目的。以发送带有RST标志的干扰包为例, 由于TCP首部中的RST是用于复位的,也就是当一个连接出现错误时,TCP就 会发出一个复位数据包,用来异常终止一个连接,所以旁路监控设备就可以通 过伪造并发送该RST数据包来中断所要进行干扰的数据流量,这里的RST干扰 包可以是伪造成由客户端发往服务器端的数据包,也可以是伪造成由服务器端 发送给客户端的数据包。上述方案能够通过发送少量的干扰包达到限速的目 的,但是RST干扰包完全切断了服务器端与客户端之间的连接,使得数据传输 无法继续进行下去,且无法恢复。
另外一种方案是通过发送伪造的SYN ACK包来中断TCP连接,进行干扰。 在TCP连接建立的初始阶段,客户端向服务器端发送一个SYN包,用来发起连 接请求;服务器端收到SYN包后,再发回SYN ACK包应答该连接请求;而后 客户端再确认该SYN ACK应答,这样连接就建立起来了,这个过程被称为三次 握手。旁路设备就是通过伪造三次握手中的SYN ACK包,来干扰服务器端正常 响应客户端的连接建立请求,从而阻断连接的建立,这里的SYN ACK干扰包是 伪造成服务器端发送给客户端。上述方案也和第一种方案一样,虽然能够通过 发送少量的干扰包达到限速的目的,但是却完全切断了服务器端与客户端之间 的连接,使得数据传输无法继续进行下去,且无法恢复。
综上所述,在实现本发明过程中,发明人发现现有技术中至少存在如下问 题:现有的技术方案完全中断了服务器端与客户端之间的连接建立过程,使得 数据传输无法继续进行下去,且无法恢复。

发明内容

本发明实施方式提供了一种对数据流量进行控制的方法及装置,能够在不 中断服务器端与客户端之间正常连接的情况下,使TCP连接按照监控方设定的 流量要求来传送数据,从而达到对数据流量进行精确控制的目的。
本发明实施方式是通过以下技术方案实现的:
一种对数据流量进行控制的方法,包括:
获取需要进行控制的数据流中客户端回应给服务器端的接收应答数据包;
修改所述接收应答数据包中的窗口大小字段,并伪造接收应答数据包;
将伪造的接收应答数据包发送到所述服务器端。
本发明实施方式还提供了一种对数据流量进行控制的装置,包括:
数据包获取单元,用于获取需要进行控制的数据流中,客户端回应给服务 器端的接收应答数据包;
数据包干扰单元,用于修改所述数据包获取单元所获取的接受应答数据包 中的窗口大小字段,并伪造接收应答数据包;
数据包发送单元,用于将所述数据包干扰单元伪造的接收应答数据包发送 到所述服务器端。
由上述所提供的技术方案可以看出,通过获取需要进行控制的数据流中, 客户端回应给服务器端的接收应答数据包,对所述数据包中的窗口大小字段进 行修改,并伪造和发送接收应答数据包到所述的服务器端,使所述的服务器端 按照设定的流量要求,也就是按照修改后的窗口大小字段所指定的数据长度来 传送数据,从而达到了对数据流量进行精确控制的目的。
附图说明
图1为TCP数据在IP数据包中的封装示意图;
图2为TCP数据首部的数据格式示意图;
图3为本发明实施方式所述方法的流程示意图;
图4为本发明实施方式所述装置的结构示意图;
图5为本发明具体实施例1流量控制装置的部署结构示意图;
图6为本发明具体实施例1服务器端与客户端进行交互的时序流程图
图7为本发明具体实施例1的处理流程示意图。

具体实施方式

本发明实施方式提供了一种对数据流量进行控制的方法及装置。由于在 TCP数据的传输过程中,客户端收到服务器端传送的数据后先将数据放入缓冲 区中,而后再由应用程序从其中读取数据;但是由于服务器端与客户端的设备 差异,就有可能造成数据发送与接收速度的差异,即有可能出现服务器端不停 地给客户端发送数据,而客户端还来不及从缓冲区中读出数据来,导致缓冲区 被填满,使得数据丢失。为了避免这种情况,TCP协议采用window size(窗口 大小)字段来控制收发双方的数据传送,具体来说就是当服务器端向客户端发 送数据后,服务器端等待客户端回应一个接收应答数据包(ACK应答包),该 ACK应答包中的window size字段就指出了客户端希望服务器端继续发送的数 据长度,而后服务器端就根据该数据长度继续传送数据,此时传送的数据长度 就只能小于该window size字段的值。另外,客户端也可以在正常发送ACK应 答包的基础上,继续发送ACK应答包,这里ACK应答包中的window size字段 就表明客户端现在可以接收的数据长度,这个过程就称为窗口更新。
本发明实施方式的技术方案就是通过获取需要进行控制的数据流中,客户 端回应给服务器端的接收应答数据包(ACK应答包),对所述ACK应答包中 的窗口大小字段进行修改,然后再伪造一个ACK应答包,并将其发送到服务器 端。服务器端接收到伪造的ACK应答包以后,误以为客户端进行了窗口更新操 作,从而按照设定的流量要求,也就是伪造的ACK应答包中的window size字 段所指定的数据长度来传送数据,实现了对数据流量进行精确控制的目的。
为更好的描述本发明实施方式,现结合附图对本发明的具体实施方式进行 说明,如图3所示为本发明实施方式所述方法的流程示意图,图中包括:
步骤11:获取接收应答数据包。获取需要进行控制的数据流中,客户端回 应给服务器端的接收应答数据包。具体来说,可以从所监控的网络上捕获一个 数据包,然后对所捕获的数据包进行判断,看它是否为需要进行控制的数据流 中客户端回应给服务器端的接收应答数据包。这里判断的顺序可以是先判断是 否为需要进行控制的数据流中的数据包,再判断这个数据包是否为接收应答数 据包;也可以先判断是否为接收应答数据包,再判断这个数据包是否为需要进 行控制的数据流中的。
判断所捕获的数据包是否为需要进行控制的数据流中的数据包,其方法可 以是根据所捕获的数据包的基本属性元素来进行判断,这里的基本属性元素指 的是数据包的五元组,即源IP地址、源端口号、目的IP地址、目的端口号和采 用的传输层协议类型。具体来说就是,将捕获数据包的五元组和需要进行控制 的数据流中的数据包的五元组进行比较,如果两者是相同的,则可以判断所捕 获的数据包是需要进行控制的数据流中的数据包,然后再进行后续的操作。
判断所捕获的数据包是否为客户端回应给服务器端的接收应答数据包,其 方法可以是根据TCP协议中的标记字段(flags)来进行判断,也就是从数据包 开始部分起的第48个字节来判断。若该标记字段为0×10,则所捕获的数据包是 客户端回应给服务器端的接收应答数据包,然后再进行后续的操作。
在经过以上的判断之后,若所捕获的数据包是需要进行控制的数据流中, 客户端回应给服务器端的接收应答数据包,则获取该数据包,并进行以下的操 作。
步骤12:修改数据包中的窗口大小字段。在上述步骤11的操作之后,就可 以对获取到的接收应答数据包进行修改,具体是修改接收应答数据包中的窗口 大小字段。这里修改后的窗口大小字段的值是服务器端发往客户端的所需要的 数据长度,具体是由数据流量监控方根据实际需要来设定,也就是说由监控方 根据实际的网络需求,对窗口大小字段来进行修改设定,可以使窗口大小字段 的值比前一个接收应答数据包的数据长度大,也可以比前一个接收应答数据包 的数据长度小。
步骤13:伪造接收应答数据包。在对接收应答数据包中的窗口大小字段进 行修改之后,就可以伪造成是由客户端回应给服务器端的接受应答数据包,在 伪造接收应答数据包的过程中,由于构造的接收应答数据包也属于TCP协议报 文,所以除了上述修改的窗口大小字段外,对于TCP协议不进行验证的字段, 可以按照需要对其进行修改,也可以使其与获取到的接收应答数据包中的相应 字段保持一致。
另外,在伪造接收应答数据包时,伪造的接收应答数据包的校验和要按照 TCP协议数据包的要求进行重新计算,并将重新计算后的校验和填入该伪造的 接收应答数据包中。
步骤14:发送伪造的接收应答数据包到服务器端。
在将伪造的接收应答数据包发送到服务器端之后,所述的服务器端就可以 按照伪造的接收应答数据包中窗口大小字段所设定的数据长度进行数据的传 送。
按照以上的操作步骤,就可以使服务器端按照设定的流量要求,也就是按 照伪造的接受应答数据包中窗口大小字段所指定的数据长度来传送数据,从而 实现了对数据流量进行精确控制的目的。
本发明实施方式还提供了一种对数据流量进行控制的装置,如图4所示为 所述装置的结构示意图,图中包括数据包获取单元、数据包干扰单元和数据包 发送单元。所述的数据包获取单元用于获取需要进行控制的数据流中,客户端 回应给服务器端的接收应答数据包,具体来说可以从所监控的网络上捕获一个 数据包,然后对所捕获的数据包进行判断,看它是否为需要进行控制的数据流 中客户端回应给服务器端的接收应答数据包。这里判断的顺序可以是先判断是 否为需要进行控制的数据流中的数据包,再判断这个数据包是否为接收应答数 据包;也可以先判断是否为接收应答数据包,再判断这个数据包是否为需要进 行控制的数据流中的,判断的方法如上方法流程步骤1 1中所述。
所述的数据包获取单元中可以包括捕获模和判断模块,这里所述的捕获 模块用于捕获监控网络上的一个数据包;所述的判断模块用于判断所述捕获模 块所捕获的数据包是否为需要进行控制的数据流中,客户端回应给服务器端的 接收应答数据包,判断的方法如上方法流程步骤11中所述。
若经过判断模块判断后,得知所捕获的数据包为需要进行控制的数据流 中,客户端回应给服务器端的接收应答数据包,则获取该数据包;反之,则由 所述捕获模块再捕获监控网络上的另一个数据包。
所述装置中的数据包干扰单元用于修改所述数据包获取单元所获取的接 受应答数据包中的窗口大小字段,并伪造接收应答数据包。具体来说就是修改 所获取到的接收应答数据包中的窗口大小字段,这里修改后的窗口大小字段的 值是所需要的,服务器端发往客户端的数据长度,具体是由数据流量监控方根 据实际需要来进行设定,也就是说由监控方根据实际的网络需求,对窗口大小 字段来进行修改设定,可以使窗口大小字段的值比前一个数据包的数据长度 大,也可以比前一个数据包的数据长度小。在对数据包中的窗口大小字段进行 了修改之后,再伪造客户端回应给服务器端的接受应答数据包。
这里,所述的数据包干扰单元中可以包括字段修改模块和数据包伪造模 块,所述的字段修改模块用于修改所述数据包获取单元所获取的接受应答数据 包中的窗口大小字段,修改后的窗口大小字段的值为所需要的,服务器端发往 客户端的数据长度;所述的数据包伪造模块用于在所述字段修改模块修改所述 窗口大小字段之后,伪造客户端回应给服务器端的接受应答数据包。
所述装置中的数据包发送单元用于将所述数据包干扰单元伪造的接收应 答数据包发送到所述服务器端。这里在将伪造的接收应答数据包发送到服务器 端之后,所述的服务器端就可以按照伪造的接收应答数据包中窗口大小字段所 设定的数据长度进行数据的传送。这样就可以使服务器端按照设定的流量要求 来传送数据,从而实现了对数据流量进行精确控制的目的。
为进一步描述本发明实施方式,现结合具体的实施例对其技术方案作进一 步说明:
实施例1:如图5所示为本实施例中流量控制装置的部署结构示意图,图中 包括:客户端、接入设备、流量控制装置和服务器端,其中客户端通过接入设 备和服务器端相连,由服务器端向客户端提供TCP数据流;流量控制装置作为 旁路设备监控网络中传输的TCP数据流。
本实施例中实现对数据流量进行控制时,服务器端与客户端进行交互的过 程如图6所示,首先服务器端按照正常的TCP数据流传输给客户端数据包,该 数据包的负载长度为1024字节;客户端在接收到该数据包后,会传回一个正常 回应的接受应答数据包(ACK应答包),该ACK应答包中的窗口大小(window size)字段限定的数据长度为65535字节;此时,流量控制装置作为旁路设备 截获了这个ACK应答包,并修改了其中窗口大小字段的值,将其改为10字节, 然后再伪造ACK应答包并发送到服务器端;服务器端在收到这个伪造的ACK应 答包后,就会按照其中修改后的窗口大小字段所设定的数据长度传送给客户端 数据,所传送数据包的负载长度正是10字节;客户端在收到数据包之后,再正 常传回一个ACK应答包。
下面对本实施例的具体处理流程进行详细说明,如图7所示为具体处理流 程的示意图,图中包括:
步骤21:首先,预先设定需要进行控制的数据流的五元组,包括源IP地址、 源端口号、目的IP地址、目的端口号,采用的协议为TCP协议。
步骤22:捕获监控网络上的一个数据包。
步骤23:提取出所捕获数据包的五元组。
步骤24:判断提取的五元组是否等于预先设定的需要进行控制的数据流的 五元组,如是,则执行步骤25;否则,返回执行步骤22。
步骤25:判断该数据包是否为ACK应答包,具体是根据TCP协议中的flags 字段,即从数据包开始部分起第48个字节来进行判断,若该flags字段为0×10, 则该数据包是ACK应答包,继续执行步骤26;否则,返回执行步骤22。
步骤26:复制该ACK应答包中的数据,修改其中的window size字段,这 里修改后window size字段的值是所需要的,服务器端发往客户端的数据长度, 具体是由数据流量监控方根据实际需要来进行设定,也就是说由监控方根据实 际的网络需求,对窗口大小字段来进行修改设定。可以使窗口大小字段的值比 前一个数据包的数据长度大,也可以比前一个数据包的数据长度小。
步骤27:伪造ACK应答包,并按照TCP协议数据包的要求重新计算该伪造 数据包的校验和,填入该伪造的ACK应答包中。
步骤28:发送步骤27中伪造的ACK应答包到服务器端,所述服务器端就可 以按照伪造的ACK应答包中窗口大小字段所设定的数据长度进行数据的传送。
按照以上的操作步骤,就可以使服务器端按照设定的流量要求,也就是伪 造的ACK应答包中的window size字段所指定的数据长度来传送数据,从而在 不破坏原有TCP连接的情况下,实现了对数据流量精确控制的目的。
实施例2:本实施例的结构部署和处理流程与实施例一类似。所不同的是: 在本实施例中,是使用其他的方法来检测所捕获的数据包是否是需要进行控制 的数据流中,客户端回应给服务器端的接收应答数据包。也就是先判断所捕获 的数据包是否是ACK包,而后再判断其是否和需要进行控制的数据流中的数据 包的五元组一样,从而获取到符合条件的数据包,再进行后续的操作。
本实施例2中的后续操作步骤与实施例1是类似的,通过本实施例的流程操 作,也同样可以使服务器端按照设定的流量要求来传送数据,从而在不破坏原 有TCP连接的情况下,实现对数据流量精确控制的目的。
综上所述,本发明实施方式可以在不中断服务器端与客户端之间正常连接 的情况下,使TCP连接按照监控方设定的流量要求来传送数据,从而达到了对 数据流量进行精确控制的目的。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局 限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内, 可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明 的保护范围应该以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈