CN101902440A - 一种阻断tcp连接的方法和装置 - Google Patents

一种阻断tcp连接的方法和装置 Download PDF

Info

Publication number
CN101902440A
CN101902440A CN 200910085031 CN200910085031A CN101902440A CN 101902440 A CN101902440 A CN 101902440A CN 200910085031 CN200910085031 CN 200910085031 CN 200910085031 A CN200910085031 A CN 200910085031A CN 101902440 A CN101902440 A CN 101902440A
Authority
CN
Grant status
Application
Patent type
Prior art keywords
tcp
packet
connection
client
number
Prior art date
Application number
CN 200910085031
Other languages
English (en)
Other versions
CN101902440B (zh )
Inventor
刘辉
姚熙
李新鹏
Original Assignee
北京启明星辰信息技术股份有限公司;北京启明星辰信息安全技术有限公司
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

Links

Abstract

本发明提供了一种阻断TCP连接的方法和装置;方法包括:保存各TCP连接的连接信息;所述TCP连接的连接信息包括该TCP连接的:客户端信息、服务端信息、请求方向TCP等待序列号和应答方向TCP等待序列号;抓取TCP包,找到该TCP包所属TCP连接的连接信息,根据所抓取的TCP包更新该连接信息中的请求方向TCP等待序列号和应答方向TCP等待序列号;如果所抓取的TCP包为需要阻断的TCP包,则根据更新后的、该TCP包所属TCP连接的连接信息生成RST包,并发送给该TCP连接的客户端和服务端。本发明可以进行准确而持续的阻断,从而能在大流量环境下的高效阻断非法TCP连接。

Description

一种阻断TCP连接的方法和装置

技术领域

[0001 ] 本发明涉及网络安全保护,具体涉及一种阻断TCP连接的方法和装置。 背景技术

[0002] 网络上存在着大量非法的TCP (Transmission Control Protocol,传输控制协议) 连接,例如一些存在攻击包的连接,或者一些非授权的访问。对于旁路设备而言,阻断这些 非法TCP连接是一个非常重要的功能。发送RST包(TCP的reset包)是公认的最有效的 阻断TCP连接的方法。RST包发挥作用必须要保证该RST包的序列号必须跟目标主机协议 栈等待的序列号相等,否则目标主机的协议栈会忽略掉该RST包。

[0003] 现在主要旁路网络安全设备很多都存在RST包随意赋值的情况;少数计算精确 的,也存在着大流量情况下生成的新序列号过期导致无法阻断的问题。

发明内容

[0004] 本发明要解决的技术问题是提供一种阻断TCP连接的方法和装置,可以进行准确 而持续的阻断,从而能在大流量环境下的高效阻断非法TCP连接。

[0005] 为了解决上述问题,本发明提供了一种阻断TCP连接的方法,包括:

[0006] 保存各TCP连接的连接信息;所述TCP连接的连接信息包括该TCP连接的:客户端 信息、服务端信息、请求方向TCP等待序列号和应答方向TCP等待序列号;

[0007] 抓取TCP包,找到该TCP包所属TCP连接的连接信息,根据所抓取的TCP包更新该 连接信息中的请求方向TCP等待序列号和应答方向TCP等待序列号;

[0008] 如果所抓取的TCP包为需要阻断的TCP包,则根据更新后的、该TCP包所属TCP连 接的连接信息生成RST包,并发送给该TCP连接的客户端和服务端。

[0009] 进一步地,所述客户端信息包括客户端IP地址、客户端的端口号、客户端MAC地 址;服务端信息包括服务端IP地址、服务端的端口号,服务端MAC地址;

[0010] 所述抓取TCP包,找到该TCP包所属TCP连接的连接信息的步骤具体包括:

[0011] 捕获以太网帧;解析以太网帧得到IP包,从以太头中获得目的MAC地址和源MAC 地址;

[0012] 解析IP包得到TCP包,从IP头中获得源IP地址和目的IP地址;

[0013] 解析TCP包,从TCP头中获得源端口号和目的端口号;

[0014] 根据解析出的源IP地址、目的IP地址、源端口号、目的端口号,源MAC地址和目的 MAC地址找到该请求包所属TCP连接的连接信息。

[0015] 进一步地,根据所抓取的TCP包更新请求方向TCP等待序列号和应答方向TCP等 待序列号是指:

[0016] 如果解析得到的源IP地址为客户端IP地址,而所述目的IP地址为服务端IP地 址,则所抓取的TCP包为请求包;反之则所抓取的TCP包为应答包;

[0017] 如果TCP包为请求包,则用TCP头中的SEQ字段加上TCP包的负载的长度得到新的请求方向TCP等待序列号;将该TCP包的确认号作为应答方向等待序列号,或不改变应答 方向等待序列号;

[0018] 如果TCP包为应答包,则用TCP头中的SEQ字段加上TCP包的负载的长度得到新 的应答方向TCP等待序列号;将该TCP包的确认号作为请求方向等待序列号,或不改变请求 方向等待序列号。

[0019] 进一步地,生成RST包,并发送给TCP连接的客户端和服务端具体是指:

[0020] 生成第一和第二两个RST包;

[0021] 将第一 RST包的源MAC地址填写为客户端MAC地址,目的MAC地址填写为服务端 MAC地址,源IP地址填写为客户端IP地址,目的IP地址填写为服务端IP地址,源端口号填 写为客户端端口号,目的端口号填写为服务端端口号,序列号填写为请求方向的等待序列 号,确认号填写为应答方向的等待序列号,将第一 RST包发送给TCP连接的服务端;

[0022] 将第二 RST包的源MAC地址填写为服务端MAC地址,目的MAC地址填写为客户端 MAC地址,源IP地址填写为服务端IP地址,目的IP地址填写为客户端IP地址,源端口号填 写为服务端端口号,目的端口号填写为客户端端口号,序列号填写为应答方向的等待序列 号,确认号填写为请求方向的等待序列号,将第二 RST包发送给TCP连接的客户端。

[0023] 进一步地,所述的方法还包括:

[0024] 为每个TCP连接设置一对应的计时器,每次抓取到该TCP连接的TCP包时复位并 启动该计时器;当一计时器所计时间超过一预设的时间阈值时,删除该计时器对应的TCP 连接的连接信息。

[0025] 本发明还提供了一种阻断TCP连接的装置,包括:

[0026] 存储单元,用于保存各TCP连接的连接信息;所述TCP连接的连接信息包括该TCP 连接的:客户端信息、服务端信息、请求方向TCP等待序列号和应答方向TCP等待序列号;

[0027] 抓取单元,用于抓取TCP包,并在所述存储单元中找到该TCP包所属TCP连接的连 接信息;

[0028] 更新单元,用于根据所抓取的TCP包更新所找到的连接信息中的请求方向TCP等 待序列号和应答方向TCP等待序列号;

[0029] 判断单元,用于判断所抓取的TCP包是否为需要阻断的TCP包,如果是则发送阻断 指令;

[0030] 阻断单元,用于当收到所述阻断指令时,根据更新单元更新后的所述连接信息生 成RST包,并发送给该TCP连接的客户端和服务端。

[0031] 进一步地,所述存储单元所保存的连接信息中,所述客户端信息包括客户端IP地 址、客户端的端口号、客户端MAC地址;所述服务端信息包括服务端IP地址、服务端的端口 号,服务端MAC地址;

[0032] 所述抓取单元具体包括:

[0033] 帧解析模块,用于捕获以太网帧,以及解析以太网帧得到IP包,从以太头中获得 目的MAC地址和源MAC地址;

[0034] IP包解析模块,用于解析所述IP包得到TCP包,从IP头中获得源IP地址和目的 IP地址;

[0035] TCP包解析模块,用于解析所述TCP包,从TCP头中获得源端口号和目的端口号;[0036] 查找模块,用于根据解析出的源IP地址、目的IP地址、源端口号、目的端口号,源 MAC地址和目的MAC地址在所述存储单元中找到该请求包所属TCP连接的连接信息。

[0037] 进一步地,所述更新单元根据所抓取的TCP包更新请求方向TCP等待序列号和应 答方向TCP等待序列号是指:

[0038] 所述更新单元判断是否解析得到的源IP地址为客户端IP地址,而所述目的IP地 址为服务端IP地址,如果是则所抓取的TCP包为请求包;否则所抓取的TCP包为应答包;如 果TCP包为请求包,则用TCP头中的SEQ字段加上TCP包的负载的长度得到新的请求方向 TCP等待序列号;将该TCP包的确认号作为应答方向等待序列号,或不改变应答方向等待序 列号;如果TCP包为应答包,则用TCP头中的SEQ字段加上TCP包的负载的长度得到新的应 答方向TCP等待序列号;将该TCP包的确认号作为请求方向等待序列号,或不改变请求方向 等待序列号。

[0039] 进一步地,所述阻断单元生成RST包,并发送给TCP连接的客户端和服务端具体是 指:

[0040] 所述阻断单元生成第一、第二两个RST包;将第一 RST包的源MAC地址填写为客户 端MAC地址,目的MAC地址填写为服务端MAC地址,源IP地址填写为客户端IP地址,目的 IP地址填写为服务端IP地址,源端口号填写为客户端端口号,目的端口号填写为服务端端 口号,序列号填写为请求方向的等待序列号,确认号填写为应答方向的等待序列号,发送给 TCP连接的服务端;将第二 RST包的源MAC地址填写为服务端MAC地址,目的MAC地址填写 为客户端MAC地址,源IP地址填写为服务端IP地址,目的IP地址填写为客户端IP地址, 源端口号填写为服务端端口号,目的端口号填写为客户端端口号,序列号填写为应答方向 的等待序列号,确认号填写为请求方向的等待序列号,发送给TCP连接的客户端。

[0041] 进一步地,所述的装置还包括:

[0042] 对应于每个TCP连接的计时器;

[0043] 控制单元,用于每当所述抓取单元抓取到TCP包时,复位并启动该TCP包所属TCP 连接对应的计时器;当一计时器所计时间超过一预设的时间阈值时,删除所述存储单元中 该计时器所对应的TCP连接的连接信息。

[0044] 本发明的技术方案可以持续根据新TCP包触发发送阻断包,在大流量情况下不会 由于RST包无效而导致阻断失败,既保证了在连接仍未阻断时继续进行阻断,又避免了在 连接终止后仍然发送垃圾阻断包。

附图说明

[0045] 图1为标准TCP/IP协议中的以太报头结构;

[0046] 图2为标准TCP/IP协议中的IP报头结构;

[0047] 图3为标准TCP/IP协议中的TCP报头结构;

[0048] 图4为实施例一中阻断TCP连接的方法的例子的流程示意图;

[0049] 图5为实施例二中阻断TCP连接的装置的示意框图。

具体实施方式

[0050] 下面将结合附图及实施例对本发明的技术方案进行更详细的说明。[0051] 实施例一,一种阻断TCP连接的方法,包括:

[0052] 保存各TCP连接的连接信息;所述TCP连接的连接信息包括该TCP连接的:客户端 信息、服务端信息、请求方向TCP等待序列号和应答方向TCP等待序列号;

[0053] 抓取TCP包,找到该TCP包所属TCP连接的连接信息,根据所抓取的TCP包更新该 连接信息中的请求方向TCP等待序列号和应答方向TCP等待序列号;

[0054] 如果所抓取的TCP包为需要阻断的TCP包,则根据更新后的、该TCP包所属TCP连 接的连接信息生成RST包,并发送给该TCP连接的客户端和服务端。

[0055] 可见,发送RST包后,如果需要阻断的TCP连接中还出现新的交互的TCP包时,按 照上述方法将会再次按照该TCP最新的连接信息生成RST包,并发送给该TCP连接的客户 端和服务端。这在大流量情况下非常有用,因为此时当计算RST包的序列号的时候,服务端 和客户端可能已经交互了更多数据,使得计算好的序列号落后于所需的序列号,从而使RST 包无效。而由于上述方法可以继续根据新TCP包触发发送阻断包,既保证了在连接仍未阻 断时继续进行阻断,又避免了在连接终止后仍然发送垃圾阻断包。

[0056] 本实施例中,所述阻断TCP连接的方法可应用在旁路网络设备上。

[0057] 本实施例中,所述客户端信息包括客户端IP地址、客户端的端口号、客户端MAC地 址;服务端信息包括服务端IP地址、服务端的端口号,服务端MAC地址。实际应用时,可以 还包括其它能用于指示TCP连接中客户端/服务端的信息。

[0058] 本实施例中,所述TCP连接的所述连接信息可以但不限于为一(客户端IP、服务端 IP、客户端端口、服务的端口,客户端MAC、服务端MAC、请求方向TCP等待序列号、应答方向 TCP等待序列号)的八元组的形式。其中最后两项的TCP等待序列号根据所抓取的该TCP 连接的TCP包不断更新。

[0059] 本实施例中,可以根据现有的方式判断是否需要阻断某个TCP包,也就是阻断该 TCP包所属TCP连接;比如按照预定的阻断策略进行判断等;当有多个TCP连接需要阻断 时,可以并行阻断:当抓取到属于要阻断的TCP连接的TCP包时,就按照该TCP包所属TCP 连接的连接信息生成RST包,并发送给相应的客户端和服务端。

[0060] 本实施例中,所述抓取TCP包,找到该TCP包所属TCP连接的连接信息的步骤具体 包括:

[0061] 捕获以太网帧;如图1所示,解析以太网帧得到IP包,从以太头中获得目的MAC地 址和源MAC地址;

[0062] 解析IP包得到TCP包,如图2所示,从IP头中获得源(IP)地址和目的(IP)地 址;

[0063] 解析TCP包,如图3所示,从TCP头中获得源端口号和目的端口号。

[0064] 根据解析出的源IP地址、目的IP地址、源端口号、目的端口号,源MAC地址和目的 MAC地址找到该请求包所属TCP连接的连接信息。

[0065] 可以通过监听各TCP连接建立时的握手协议来获知各TCP连接中客户端和服务端 的IP地址,并在一 TCP连接建立时创建该TCP连接的连接信息;当抓取到TCP包后,根据解 析出的IP地址来判断TCP包的方向;如果所述源IP地址为客户端IP地址,而所述目的IP 地址为服务端IP地址,则TCP包的方向是从客户端发往服务端的,为请求包;反之则是从服 务端发往客户端的,为应答包。本实施例中,所述RST包是TCP标志位只设置RST的包。

8[0066] 采用了本实施例的方法后,抓取网络包后的流程如图4所示,包括:

[0067] 抓取网络包;解析网络包;如果得到的不是TCP包,则继续抓取网络包;否则根据 该TCP包更新其所属TCP连接的八元组;

[0068] 判断该TCP包是否需要被阻断,如果是则根据八元组构造RST包发送,否则继续抓 取网络包。

[0069] 本实施例中,根据TCP包更新请求方向TCP等待序列号和应答方向TCP等待序列 号是指:

[0070] 对于本方向的等待序列号,可以通过当前包序列号(TCP头的SEQ字段,表示当前 包的序号)加当前包长度(TCP包的负载的长度,即应用层数据长度,单位是字节)的方法 计算;对于反方向的等待序列号,可以通过使用ACK号(TCP头中的确认号)来赋值。当然, 也可以不计算反方向的等待序列号,而是通过反方向的TCP包来计算。

[0071] 具体来说就是:

[0072] 如果TCP包为请求包,则用TCP头中的SEQ字段加上TCP包的负载的长度得到新 的请求方向TCP等待序列号;将该TCP包的ACK号作为应答方向等待序列号,或不改变应答 方向等待序列号;

[0073] 如果TCP包为应答包,则用TCP头中的SEQ字段加上TCP包的负载的长度得到新 的应答方向TCP等待序列号;将该TCP包的ACK号作为请求方向等待序列号,或不改变请求 方向等待序列号。

[0074] 本实施例中,生成RST包,并发送给TCP连接的客户端和服务端具体可以是指:

[0075] 对服务端,生成一个模拟客户端发送的RST包,即该包的源MAC地址等于客户端 MAC地址,目的MAC地址等于服务端MAC地址,源IP地址等于客户端IP地址,目的IP地址 等于服务端IP地址,源端口号等于客户端端口号,目的端口号等于服务端端口号,序列号 等于请求方向的等待序列号,ACK号等于应答方向的等待序列号,将该RST包发送给TCP连 接的服务端。

[0076] 对客户端,则正好相反,生成一个模拟服务端发送的RST包,即该包的源MAC地址 等于服务端MAC地址,目的MAC地址等于客户端MAC地址,源IP地址等于服务端IP地址, 目的IP地址等于客户端IP地址,源端口号等于服务端端口号,目的端口号等于客户端端口 号,序列号等于应答方向的等待序列号,ACK号等于请求方向的等待序列号,将该RST包发 送给TCP连接的客户端。

[0077] 如果生成的RST包的序列号是基于客户端和服务器交互的最后一个包,则对常用 的操作系统(包括LINUX,WINDOWS等),必然会阻断成功。

[0078] 本实施例中,所述方法还可以包括:

[0079] 当满足停止条件时,删除相应TCP连接的连接信息。

[0080] 在一种实施方式中,可以是为每个TCP连接设置一对应的计时器,每次抓取到该 TCP连接的TCP包时复位并启动该计时器;当一计时器所计时间超过一时间阈值时,删除该 计时器对应的TCP连接的连接信息;

[0081] 在另一种实施方式中,可以是设置一个最大维护的TCP连接的个数,对TCP连接的 连接信息计数,如果个数大于所设置的最大个数,则进行删除;可以是删除计时器所计时间 最长的TCP连接的连接信息,也可以是为各TCP连接设置优先级,按照优先级删除最低级别

9的TCP连接的连接信息,还可以是删除最早建立的TCP连接的连接信息。

[0082] 下面用一个具体的例子进一步加以说明。

[0083] 采用旁路部署方式,监测目标是对一台telnet服务器的访问。当telnet中输入 su时,需要阻断该连接。

[0084] 假设telnet主机的IP地址是192. 168. 0. 1,服务端口号是23 ;客户端主机的IP 地址是192. 168. 0.2,端口号是2000 ;当前请求方向等待序列号为10000,应答方向序列号 为 20000。

[0085] 抓取到TCP连接上的请求包的源MAC地址是00 : Oc : 29 : 00 : 00 : 01,目的MAC地址是 00 : Oc : 29 : 00 : 00 : 00。这里的源MAC地址不一定是服务器和客户端本身的MAC地址,而是最 后一跳的网络设备的MAC的地址,在本文中相应视为服务端/客户端的MAC地址。

[0086] 按如下步骤阻断:

[0087] (1)将(客户端IP、服务端IP、客户端端口、服务的端口,客户端MAC、服务端 MAC、请求方向TCP等待序列号、应答方向TCP等待序列号)八元组赋值为(192. 168. 0. 2, 192.168.0.1,2000,23,00:0c:29:00:00:01,00:0c:29:00:00:00,10000,20000)。

[0088] 当用户通过发送telnet请求执行su操作时,根据请求包中解析出的客户端IP、服 务端IP、客户端端口、服务的端口,客户端MAC和服务端MAC找到该请求包所属TCP连接的 八元组。

[0089] 假设该请求包的TCP负载的长度为4,则将所找到的八元组中请求方向等待序 列号更新为10004,不更新应答方向等待序列号,此时的八元组更新为(192. 168.0.2, 192.168.0.1,2000,23,00:0c:29:00:00:01,00:0c:29:00:00:00,10004,20000)。

[0090] (2)生成并发送RST包。生成两个RST包。从以太层开始构造。

[0091] 第一个RST包是发向服务器的,该包的源MAC地址是00:0c:29:00:00:01,目 的MAC地址是00:0c:29:00:00:00,源端口号是2000,目的端口号是23,源IP地址是 192. 168. 0. 2,目的 IP 地址是 192. 168. 0. 1,TCP 序列号是 10004,TCP ACK 号是 20000,TCP 标志是4,即只设置RST位。

[0092] 第二个RST包是发向客户端的,该包的源MAC地址是00:0c:29:00:00:00,目 的MAC地址是00:0c:29:00:00:01,源端口号是23,目的端口号是2000,源IP地址是 192. 168. 0. 1,目的 IP 地址是 192. 168. 0. 2,TCP 序列号是 20000,TCP ACK 号是 10004,TCP

标志是4,即只设置RST位。

[0093] (3)如果服务器和客户端在su操作之后没有进行新的数据通信,则说明阻断成 功。

[0094] 如果客户端执行了新的操作,或者服务器有数据响应,则可能导致计算的序列 号过期,例如在此期间,服务器响应了总共300字节TCP负载的包,客户端也发送了总 共30字节的TCP负载的包,则需要更新八元组为(192. 168.0.2,192. 168.0. 1,2000,23, 00:Oc:29:00:00:01,00:Oc:29:00:00:00,10034,20300)。

[0095] 在发现有该连接仍然有包存在的情况下,根据最新的TCP包更新八元组,然后计 算发送RST包。

[0096] 第一个RST包是发向服务器的,该包的源MAC地址是00:0c:29:00:00:01,目 的MAC地址是00:0c:29:00:00:00,源端口号是2000,目的端口号是23,源IP地址是192. 168. 0. 2,目的 IP 地址是 192. 168. 0. 1,TCP 序列号是 10034,TCP ACK 号是 20300,TCP

标志是4,即只设置RST位。

[0097] 第二个RST包是发向客户端的,该包的源MAC地址是00:0c:29:00:00:00,目 的MAC地址是00:0c:29:00:00:01,源端口号是23,目的端口号是2000,源IP地址是 192. 168. 0. 1,目的 IP 地址是 192. 168. 0. 2,TCP 序列号是 20300,TCP ACK 号是 10034,TCP

标志是4,即只设置RST位。

[0098] 之后继续监测该会话,如果有新包来临,则继续根据最新的TCP包更新八元组后, 生成RST包并发送;如果半小时内没有新包来临,则结束对该包的监测。

[0099] 实施例二,一种阻断TCP连接的装置,如图5所示,包括:

[0100] 存储单元,用于保存各TCP连接的连接信息;所述TCP连接的连接信息包括该TCP 连接的:客户端信息、服务端信息、请求方向TCP等待序列号和应答方向TCP等待序列号;

[0101] 抓取单元,用于抓取TCP包,并在所述存储单元中找到该TCP包所属TCP连接的连 接信息;

[0102] 更新单元,用于根据所抓取的TCP包更新所找到的连接信息中的请求方向TCP等 待序列号和应答方向TCP等待序列号;

[0103] 判断单元,用于判断所抓取的TCP包是否为需要阻断的TCP包,如果是则发送阻断 指令;

[0104] 阻断单元,用于当收到所述阻断指令时,根据更新单元更新后的所述连接信息生 成RST包,并发送给该TCP连接的客户端和服务端。

[0105] 本实施例中,所述存储单元所保存的连接信息中,所述客户端信息包括客户端IP 地址、客户端的端口号、客户端MAC地址;所述服务端信息包括服务端IP地址、服务端的端 口号,服务端MAC地址;

[0106] 本实施例中,所述抓取单元具体包括:

[0107] 帧解析模块,用于捕获以太网帧,以及解析以太网帧得到IP包,从以太头中获得 目的MAC地址和源MAC地址;

[0108] IP包解析模块,用于解析所述IP包得到TCP包,从IP头中获得源IP地址和目的 IP地址;

[0109] TCP包解析模块,用于解析所述TCP包,从TCP头中获得源端口号和目的端口号;

[0110] 查找模块,用于根据解析出的源IP地址、目的IP地址、源端口号、目的端口号,源 MAC地址和目的MAC地址在所述存储单元中找到该请求包所属TCP连接的连接信息。

[0111] 本实施例中,所述更新单元根据所抓取的TCP包更新请求方向TCP等待序列号和 应答方向TCP等待序列号是指:

[0112] 所述更新单元判断是否解析得到的源IP地址为客户端IP地址,而所述目的IP地 址为服务端IP地址,如果是则所抓取的TCP包为请求包;否则所抓取的TCP包为应答包;如 果TCP包为请求包,则用TCP头中的SEQ字段加上TCP包的负载的长度得到新的请求方向 TCP等待序列号;将该TCP包的确认号作为应答方向等待序列号,或不改变应答方向等待序 列号;如果TCP包为应答包,则用TCP头中的SEQ字段加上TCP包的负载的长度得到新的应 答方向TCP等待序列号;将该TCP包的确认号作为请求方向等待序列号,或不改变请求方向 等待序列号。

11[0113] 本实施例中,所述阻断单元生成RST包,并发送给TCP连接的客户端和服务端具体 是指:

[0114] 所述阻断单元生成第一、第二两个RST包;将第一 RST包的源MAC地址填写为客户 端MAC地址,目的MAC地址填写为服务端MAC地址,源IP地址填写为客户端IP地址,目的 IP地址填写为服务端IP地址,源端口号填写为客户端端口号,目的端口号填写为服务端端 口号,序列号填写为请求方向的等待序列号,确认号填写为应答方向的等待序列号,发送给 TCP连接的服务端;将第二 RST包的源MAC地址填写为服务端MAC地址,目的MAC地址填写 为客户端MAC地址,源IP地址填写为服务端IP地址,目的IP地址填写为客户端IP地址, 源端口号填写为服务端端口号,目的端口号填写为客户端端口号,序列号填写为应答方向 的等待序列号,确认号填写为请求方向的等待序列号,发送给TCP连接的客户端。

[0115] 本实施例的一种实施方式中,所述阻断TCP连接的装置还包括:

[0116] 对应于每个TCP连接的计时器;

[0117] 控制单元,用于每当所述抓取单元抓取到TCP包时,复位并启动该TCP包所属TCP 连接对应的计时器;当一计时器所计时间超过一预设的时间阈值时,删除所述存储单元中 该计时器所对应的TCP连接的连接信息。

[0118] 本实施例的另一种实施方式可以和实施例一中相对应,所述阻断TCP连接的装置 还包括一计数器,用于对所维护的TCP连接的个数进行计数,控制单元当计数器的值大于 所设置的最大个数时删除TCP连接的连接信息。

[0119] 其它实施细节可以与实施例一中相同。

[0120] 当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变 形都应属于本发明的权利要求的保护范围。

Claims (10)

  1. 一种阻断TCP连接的方法,包括:保存各TCP连接的连接信息;所述TCP连接的连接信息包括该TCP连接的:客户端信息、服务端信息、请求方向TCP等待序列号和应答方向TCP等待序列号;抓取TCP包,找到该TCP包所属TCP连接的连接信息,根据所抓取的TCP包更新该连接信息中的请求方向TCP等待序列号和应答方向TCP等待序列号;如果所抓取的TCP包为需要阻断的TCP包,则根据更新后的、该TCP包所属TCP连接的连接信息生成RST包,并发送给该TCP连接的客户端和服务端。
  2. 2.如权利要求1所述的方法,其特征在于:所述客户端信息包括客户端IP地址、客户端的端口号、客户端MAC地址;服务端信息包 括服务端IP地址、服务端的端口号,服务端MAC地址;所述抓取TCP包,找到该TCP包所属TCP连接的连接信息的步骤具体包括: 捕获以太网帧;解析以太网帧得到IP包,从以太头中获得目的MAC地址和源MAC地址; 解析IP包得到TCP包,从IP头中获得源IP地址和目的IP地址; 解析TCP包,从TCP头中获得源端口号和目的端口号;根据解析出的源IP地址、目的IP地址、源端口号、目的端口号,源MAC地址和目的MAC 地址找到该请求包所属TCP连接的连接信息。
  3. 3.如权利要求2所述的方法,其特征在于,根据所抓取的TCP包更新请求方向TCP等待 序列号和应答方向TCP等待序列号是指:如果解析得到的源IP地址为客户端IP地址,而所述目的IP地址为服务端IP地址,则 所抓取的TCP包为请求包;反之则所抓取的TCP包为应答包;如果TCP包为请求包,则用TCP头中的SEQ字段加上TCP包的负载的长度得到新的请 求方向TCP等待序列号;将该TCP包的确认号作为应答方向等待序列号,或不改变应答方向 等待序列号;如果TCP包为应答包,则用TCP头中的SEQ字段加上TCP包的负载的长度得到新的应 答方向TCP等待序列号;将该TCP包的确认号作为请求方向等待序列号,或不改变请求方向 等待序列号。
  4. 4.如权利要求2或3所述的方法,其特征在于,生成RST包,并发送给TCP连接的客户 端和服务端具体是指:生成第一和第二两个RST包;将第一 RST包的源MAC地址填写为客户端MAC地址,目的MAC地址填写为服务端MAC 地址,源IP地址填写为客户端IP地址,目的IP地址填写为服务端IP地址,源端口号填写 为客户端端口号,目的端口号填写为服务端端口号,序列号填写为请求方向的等待序列号, 确认号填写为应答方向的等待序列号,将第一 RST包发送给TCP连接的服务端;将第二 RST包的源MAC地址填写为服务端MAC地址,目的MAC地址填写为客户端MAC 地址,源IP地址填写为服务端IP地址,目的IP地址填写为客户端IP地址,源端口号填写 为服务端端口号,目的端口号填写为客户端端口号,序列号填写为应答方向的等待序列号, 确认号填写为请求方向的等待序列号,将第二 RST包发送给TCP连接的客户端。
  5. 5.如权利要求1到3中任一项所述的方法,其特征在于,还包括:为每个TCP连接设置一对应的计时器,每次抓取到该TCP连接的TCP包时复位并启动2该计时器;当一计时器所计时间超过一预设的时间阈值时,删除该计时器对应的TCP连接 的连接信息。
  6. 6. 一种阻断TCP连接的装置,其特征在于,包括:存储单元,用于保存各TCP连接的连接信息;所述TCP连接的连接信息包括该TCP连接 的:客户端信息、服务端信息、请求方向TCP等待序列号和应答方向TCP等待序列号;抓取单元,用于抓取TCP包,并在所述存储单元中找到该TCP包所属TCP连接的连接信息;更新单元,用于根据所抓取的TCP包更新所找到的连接信息中的请求方向TCP等待序 列号和应答方向TCP等待序列号;判断单元,用于判断所抓取的TCP包是否为需要阻断的TCP包,如果是则发送阻断指令;阻断单元,用于当收到所述阻断指令时,根据更新单元更新后的所述连接信息生成RST 包,并发送给该TCP连接的客户端和服务端。
  7. 7.如权利要求6所述的装置,其特征在于:所述存储单元所保存的连接信息中,所述客户端信息包括客户端IP地址、客户端的端 口号、客户端MAC地址;所述服务端信息包括服务端IP地址、服务端的端口号,服务端MAC 地址;所述抓取单元具体包括:帧解析模块,用于捕获以太网帧,以及解析以太网帧得到IP包,从以太头中获得目的 MAC地址和源MAC地址;IP包解析模块,用于解析所述IP包得到TCP包,从IP头中获得源IP地址和目的IP地址;TCP包解析模块,用于解析所述TCP包,从TCP头中获得源端口号和目的端口号; 查找模块,用于根据解析出的源IP地址、目的IP地址、源端口号、目的端口号,源MAC 地址和目的MAC地址在所述存储单元中找到该请求包所属TCP连接的连接信息。
  8. 8.如权利要求7所述的装置,其特征在于,所述更新单元根据所抓取的TCP包更新请求 方向TCP等待序列号和应答方向TCP等待序列号是指:所述更新单元判断是否解析得到的源IP地址为客户端IP地址,而所述目的IP地址为 服务端IP地址,如果是则所抓取的TCP包为请求包;否则所抓取的TCP包为应答包;如果 TCP包为请求包,则用TCP头中的SEQ字段加上TCP包的负载的长度得到新的请求方向TCP 等待序列号;将该TCP包的确认号作为应答方向等待序列号,或不改变应答方向等待序列 号;如果TCP包为应答包,则用TCP头中的SEQ字段加上TCP包的负载的长度得到新的应答 方向TCP等待序列号;将该TCP包的确认号作为请求方向等待序列号,或不改变请求方向等 待序列号。
  9. 9.如权利要求7或8所述的装置,其特征在于,所述阻断单元生成RST包,并发送给TCP 连接的客户端和服务端具体是指:所述阻断单元生成第一、第二两个RST包;将第一 RST包的源MAC地址填写为客户端 MAC地址,目的MAC地址填写为服务端MAC地址,源IP地址填写为客户端IP地址,目的IP 地址填写为服务端IP地址,源端口号填写为客户端端口号,目的端口号填写为服务端端口号,序列号填写为请求方向的等待序列号,确认号填写为应答方向的等待序列号,发送给 TCP连接的服务端;将第二 RST包的源MAC地址填写为服务端MAC地址,目的MAC地址填写 为客户端MAC地址,源IP地址填写为服务端IP地址,目的IP地址填写为客户端IP地址, 源端口号填写为服务端端口号,目的端口号填写为客户端端口号,序列号填写为应答方向 的等待序列号,确认号填写为请求方向的等待序列号,发送给TCP连接的客户端。
  10. 10.如权利要求6到8中任一项所述的装置,其特征在于,还包括: 对应于每个TCP连接的计时器;控制单元,用于每当所述抓取单元抓取到TCP包时,复位并启动该TCP包所属TCP连接 对应的计时器;当一计时器所计时间超过一预设的时间阈值时,删除所述存储单元中该计 时器所对应的TCP连接的连接信息。
CN 200910085031 2009-05-27 2009-05-27 一种阻断tcp连接的方法和装置 CN101902440B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910085031 CN101902440B (zh) 2009-05-27 2009-05-27 一种阻断tcp连接的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910085031 CN101902440B (zh) 2009-05-27 2009-05-27 一种阻断tcp连接的方法和装置

Publications (2)

Publication Number Publication Date
CN101902440A true true CN101902440A (zh) 2010-12-01
CN101902440B CN101902440B (zh) 2013-11-06

Family

ID=43227647

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910085031 CN101902440B (zh) 2009-05-27 2009-05-27 一种阻断tcp连接的方法和装置

Country Status (1)

Country Link
CN (1) CN101902440B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102098289A (zh) * 2010-12-17 2011-06-15 天津曙光计算机产业有限公司 一种基于fpga的网络安全连接封堵处理方法
CN105939325A (zh) * 2016-01-12 2016-09-14 杭州迪普科技有限公司 Tcp旁路阻断的方法及装置
CN106487817A (zh) * 2016-12-28 2017-03-08 北京奇艺世纪科技有限公司 一种tcp连接的关闭方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009077024A (ja) 2007-09-19 2009-04-09 Panasonic Corp Tcpパケット通信装置およびその関連技術
CN101436956B (zh) 2007-11-12 2011-05-11 北京启明星辰信息技术股份有限公司 一种数据库操作响应时间测算方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102098289A (zh) * 2010-12-17 2011-06-15 天津曙光计算机产业有限公司 一种基于fpga的网络安全连接封堵处理方法
CN102098289B (zh) 2010-12-17 2014-08-27 曙光信息产业股份有限公司 一种基于fpga的网络安全连接封堵处理方法
CN105939325A (zh) * 2016-01-12 2016-09-14 杭州迪普科技有限公司 Tcp旁路阻断的方法及装置
CN106487817A (zh) * 2016-12-28 2017-03-08 北京奇艺世纪科技有限公司 一种tcp连接的关闭方法及装置

Also Published As

Publication number Publication date Type
CN101902440B (zh) 2013-11-06 grant

Similar Documents

Publication Publication Date Title
Stewart Stream control transmission protocol
Abd et al. LS-SCTP: a bandwidth aggregation technique for stream control transmission protocol
Touch et al. The TCP authentication option
US7502860B1 (en) Method and apparatus for client-side flow control in a transport protocol
US20050058131A1 (en) Wavefront detection and disambiguation of acknowledgments
US20100183024A1 (en) Simplified rdma over ethernet and fibre channel
US7630305B2 (en) TCP selective acknowledgements for communicating delivered and missed data packets
US20020054570A1 (en) Data communication system, data communication method, and recording medium with data communication program recorded thereon
US20030172342A1 (en) System and method for identifying upper layer protocol message boundaries
US20040213278A1 (en) System, method, and computer program product for in-place, lightweight Ack promotion in a cable modem environment
US7304959B1 (en) Utility based filtering mechanism for PMTU probing
US20040246974A1 (en) Storing and accessing TCP connection information
US7406087B1 (en) Systems and methods for accelerating TCP/IP data stream processing
US20030140149A1 (en) Communication protocol for use in controlling communications in a monitoring service system
US20050135248A1 (en) Methods and applications for avoiding slow-start restart in transmission control protocol network communications
US20040015721A1 (en) Denial of service defense by proxy
US7596802B2 (en) Method and system for providing connection handling
US20020141448A1 (en) Packet transfer apparatus and method
US20110202679A1 (en) Classification and Verification of Static File Transfer Protocols
US20070064737A1 (en) Receive coalescing and automatic acknowledge in network interface controller
US20080298376A1 (en) Network communication with path mtu size discovery
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
WO2006064047A1 (en) Method, system and article for improved network performance by avoiding data corruption
US20030133464A1 (en) Customer-based service system including a cascaded pipeline with self-monitoring relays
US20060034286A1 (en) High performance TCP for systems with infrequent ACK

Legal Events

Date Code Title Description
C06 Publication
C10 Request of examination as to substance
C14 Granted