CN108243196B - Netfilter架构下引入TCP协议栈的方法及系统、中间设备、介质 - Google Patents
Netfilter架构下引入TCP协议栈的方法及系统、中间设备、介质 Download PDFInfo
- Publication number
- CN108243196B CN108243196B CN201810060382.5A CN201810060382A CN108243196B CN 108243196 B CN108243196 B CN 108243196B CN 201810060382 A CN201810060382 A CN 201810060382A CN 108243196 B CN108243196 B CN 108243196B
- Authority
- CN
- China
- Prior art keywords
- connection
- tcp protocol
- protocol stack
- tcp
- intermediate device
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种Netfilter架构下引入TCP协议栈的方法及系统、中间设备、介质,其中,方法包括:利用第一连接追踪记录中间设备与发送端之间的连接状态;利用与所述第一连接追踪相关联的第一TCP协议控制块描述并记录所述中间设备与所述发送端之间数据交互的TCP协议连接属性;利用与所述第一连接追踪相关联的第二连接追踪记录所述中间设备与接收端之间的连接状态;利用与所述第二连接追踪相关联的第二TCP协议控制块描述并记录所述中间设备与所述接收端之间数据交互的TCP协议连接属性。本发明可以利用TCP协议栈的各种特定机制,保证数据报文通过中间设备在发送端与接收端之间可靠传输。
Description
技术领域
本发明涉及计算机安全通信技术领域,尤其涉及在Netfilter(网络过滤器)架构下利用TCP协议通信的方法,具体来说就是一种Netfilter架构下引入TCP协议栈的方法及系统、中间设备、介质。
背景技术
Netfilter是Linux2.4.x之后新一代的Linux防火墙机制,是linux内核的一个子系统,包含连接追踪(CT)、数据包过滤、网络地址转换、透明代理、包速限制、数据包修改等功能模块。此外,Netfilter采用模块化设计,具有良好的可扩充性,Netfilter架构中设置5个检测点(HOOK),即5个钩子函数,用户可以在不同的检测点注册检测处理函数,实现网络安全功能。由于Netfilter架构的上述特性,因此中间检测设备(例如,WEB应用防火墙、安全网关等)优先选择使用Netfilter架构。
其中,Netfilter架构的报文处理流程为:数据报进入系统时,首先经过第一个HOOK函数NF_IP_PRE_ROUTING进行处理;然后就进入路由选择,判断该数据报(数据报文)是需要转发还是发给本机内核;若该数据报是发往本机,则该数据经过HOOK函数NF_IP_LOCAL_IN处理以后传递给本机上层协议栈;若该数据报需要被转发,则它被HOOK函数NF_IP_FORWARD处理,然后经过最后一个HOOK函数NF_IP_POST_ROUTING处理以后,发送到网络上。本机数据报经过HOOK函数NF_IP_LOCAL_OUT处理后,进行路由选择处理,然后经过HOOK函数NF_IP_POST_ROUTING处理后发送出去。
中间检测设备需要将客户端与服务器之间的交互报文(数据报文)转发给对端,使用上述转发流程,但是上述转发流程缺少TCP协议栈功能,因此中间检测设备的有些功能实现受限。比如:一些报文触发返回缓存页面动作,当页面比较大时,会分成若干报文进行传输,在网络传输时,某一报文丢失了,由于Netfilter架构不具有TCP协议栈的重传机制,不能保证对方可靠接收。再比如对于https数据流,解密是以一条https记录为单元,一条https记录可能由若干个连续的报文组成,由于报文到达中间检测设备顺序不一致或者存在报文段重复,由于Netfilter架构不具有TCP协议栈的报文重新排序和重组机制,交给https模块时解密失败,导致中间检测设备不能正常检测https数据流。
为此,本领域技术人员亟需研发一种在Netfilter架构下引入TCP层协议栈的方法,从而让中间检测设备拥有TCP协议栈的安全通信功能。
发明内容
有鉴于此,本发明要解决的技术问题在于提供一种Netfilter架构下引入TCP协议栈的方法及系统、中间设备、介质,解决了Netfilter架构下不具有TCP协议栈,从而导致现有中间检测设备部分功能受限的问题。
为了解决上述技术问题,本发明的具体实施方式提供一种Netfilter架构下引入TCP协议栈的方法,包括:利用第一连接追踪记录中间设备与发送端之间的连接状态;利用与所述第一连接追踪相关联的第一TCP协议控制块描述并记录所述中间设备与所述发送端之间数据交互的TCP协议连接属性;利用与所述第一连接追踪相关联的第二连接追踪记录所述中间设备与接收端之间的连接状态;利用与所述第二连接追踪相关联的第二TCP协议控制块描述并记录所述中间设备与所述接收端之间数据交互的TCP协议连接属性。
本发明的具体实施方式还提供一种包含计算机执行指令的计算机存储介质,所述计算机执行指令经由数据处理设备处理时,该数据处理设备执行Netfilter架构下引入TCP协议栈的方法。
本发明的具体实施方式还提供一种Netfilter架构下引入TCP协议栈的中间设备,包括:第一连接追踪,用于记录中间设备与发送端之间的连接状态;第一TCP协议控制块,与所述第一连接追踪相关联,用于描述并记录所述中间设备与所述发送端之间数据交互的TCP协议连接属性;第二连接追踪,与所述第一连接追踪相关联,用于记录所述中间设备与接收端之间的连接状态;第二TCP协议控制块,与所述第二连接追踪相关联,用于描述并记录所述中间设备与所述接收端之间数据交互的TCP协议连接属性。
本发明的具体实施方式还提供一种Netfilter架构下引入TCP协议栈的系统,包括:中间设备、分别与所述中间设备连接的发送端和接收端。其中,所述发送端用于向所述中间设备发送请求报文;所述中间设备用于对所述请求报文进行TCP特性处理,并将处理报文发送至所述接收端;所述接收端用于从所述中间设备接收所述处理报文。
根据本发明的上述具体实施方式可知,Netfilter架构下引入TCP协议栈的方法及系统、中间设备、介质至少具有以下有益效果:Netfilter架构引入TCP协议栈后,TCP协议栈的数据重传与确认机制能够保证中间检测设备向服务器或者客户端可靠地传送数据包;Netfilter架构引入TCP协议栈后,TCP协议栈的传输报文序号调整与确认机制,能够保证一条https记录有序接收,TCP协议栈中含有接收缓存区,能够缓存上层未取走的数据报文,解决了https模块解密不成功的问题;采用双连接追踪与双TCP协议控制块(PCB)的方式引入TCP协议栈,可以相对独立地处理客户端和对服务器的数据报文,避免中间检测设备维护各种状态引起的混乱。
应了解的是,上述一般描述及以下具体实施方式仅为示例性及阐释性的,其并不能限制本发明所欲主张的范围。
附图说明
下面的所附附图是本发明的说明书的一部分,其绘示了本发明的示例实施例,所附附图与说明书的描述一起用来说明本发明的原理。
图1为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的方法的实施例一的流程图。
图2为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的方法的实施例二的流程图。
图3为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的方法的实施例三的流程图。
图4为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的方法的实施例四的流程图。
图5为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的方法的实施例五的流程图。
图6为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的应用示例一的时序图。
图7为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的应用示例二的时序图。
图8为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的应用示例三的时序图。
图9为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的中间设备的实施例一的结构示意图。
图10为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的中间设备的实施例二的结构示意图。
图11为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的系统的组成示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面将以附图及详细叙述清楚说明本发明所揭示内容的精神,任何所属技术领域技术人员在了解本发明内容的实施例后,当可由本发明内容所教示的技术,加以改变及修饰,其并不脱离本发明内容的精神与范围。
本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。另外,在附图及实施方式中所使用相同或类似标号的元件/构件是用来代表相同或类似部分。
关于本文中所使用的“第一”、“第二”、…等,并非特别指称次序或顺位的意思,也非用以限定本发明,其仅为了区别以相同技术用语描述的元件或操作。
关于本文中所使用的方向用语,例如:上、下、左、右、前或后等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本创作。
关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。
关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。
关于本文中的“多个”包括“两个”及“两个以上”;关于本文中的“多组”包括“两组”及“两组以上”。
关于本文中所使用的用语“大致”、“约”等,用以修饰任何可以微变化的数量或误差,但这些微变化或误差并不会改变其本质。一般而言,此类用语所修饰的微变化或误差的范围在部分实施例中可为20%,在部分实施例中可为10%,在部分实施例中可为5%或是其他数值。本领域技术人员应当了解,前述提及的数值可依实际需求而调整,并不以此为限。
某些用以描述本申请的用词将于下或在此说明书的别处讨论,以提供本领域技术人员在有关本申请的描述上额外的引导。
图1为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的方法的实施例一的流程图,如图1所示,利用第一连接追踪(CT)记录中间设备与发送端之间的连接状态,利用第一TCP协议控制块(PCB)描述中间设备与发送端之间数据交互的TCP协议连接属性;利用第二连接追踪(CT)记录中间设备与接收端之间的连接状态,利用第二TCP协议控制块(PCB)描述中间设备与接收端之间数据交互的TCP协议连接属性。
该附图所示的具体实施方式中,Netfilter架构下引入TCP协议栈的方法包括:
步骤101:利用第一连接追踪记录中间设备与发送端之间的连接状态。本发明的实施例中,中间设备可以为WEB应用防火墙、入侵检测系统、入侵防御系统、安全网关中的至少一种。所述发送端可以为客户端等。
步骤102:利用与所述第一连接追踪相关联的第一TCP协议控制块描述并记录所述中间设备与所述发送端之间数据交互的TCP协议连接属性。本发明的实施例中,通过连接追踪扩展方式保存第一连接追踪与第一TCP协议控制块之间的关联关系。所述中间设备通过所述第一TCP协议控制块向所述发送端发送数据报文,并通过所述第一TCP协议控制块从所述发送端接收数据报文。
步骤103:利用与所述第一连接追踪相关联的第二连接追踪记录所述中间设备与接收端之间的连接状态。本发明的实施例中,接收端可以为服务器。通过连接追踪之间的关联关系,通过第一连接追踪可以找到第二连接追踪,通过第二连接追踪也可以找到第一连接追踪。
步骤104:利用与所述第二连接追踪相关联的第二TCP协议控制块描述并记录所述中间设备与所述接收端之间数据交互的TCP协议连接属性。本发明的实施例中,通过连接追踪扩展方式保存第二连接追踪与第二TCP协议控制块之间的关联关系。所述中间设备通过所述第二TCP协议控制块向所述接收端发送数据报文,并通过所述第二TCP协议控制块从所述接收端接收数据报文。
参见图1,采用双连接追踪与双TCP协议控制块(PCB)的方式引入TCP协议栈,可以相对独立地处理客户端和对服务器的数据报文,避免中间设备维护各种状态引起的混乱。
图2为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的方法的实施例二的流程图,如图2所示,利用第一连接追踪记录中间设备与发送端之间的连接状态之前,利用来自发送端的握手数据报文创建第一连接追踪。
该附图所示的具体实施方式中,步骤101之前,该方法还包括:
步骤100:利用来自所述发送端的握手数据报文创建所述第一连接追踪。本发明的实施例中,发送端的握手数据报文可以为SYN报文(首部同步位SYN=1的TCP报文)。
参见图2,中间设备根据发送端的握手数据报文创建第一连接追踪,从而为第一连接追踪记录中间设备与发送端之间的连接状态打下基础,Netfilter架构引入TCP协议栈后,TCP协议栈的数据重传与确认机制能够保证中间设备向接收端或者发送端可靠地传送数据报文。
图3为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的方法的实施例三的流程图,如图3所示,利用与第一连接追踪相关联的第一TCP协议控制块描述并记录中间设备与发送端之间数据交互的TCP协议连接属性之前,根据到达协议栈钩子函数的握手数据报文创建第一TCP协议控制块。
该附图所示的具体实施方式中,步骤102之前,该方法还包括:
步骤101-1:根据到达协议栈钩子函数(HOOK函数)的所述握手数据报文创建所述第一TCP协议控制块。本发明的实施例中,通过连接追踪扩展方式保存第一连接追踪与第一TCP协议控制块之间的关联关系。
参见图3,第一连接追踪和第一TCP协议控制块,负责中间设备与发送端之间的数据报文收发,避免中间设备维护各种状态引起的混乱。
图4为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的方法的实施例四的流程图,如图4所示,利用与第一连接追踪相关联的第二连接追踪记录中间设备与接收端之间的连接状态之前,利用中间设备的规则和握手数据报文创建第二连接追踪。
该附图所示的具体实施方式中,步骤103之前,该方法还包括:
步骤102-1:利用所述中间设备的规则和所述握手数据报文创建所述第二连接追踪。本发明的实施例中,所述发送端的数据报文的五元组信息与所述第一连接追踪相匹配;所述接收端的数据报文的五元组信息与所述第二连接追踪相匹配。
参见图4,第一连接追踪与第二连接追踪相关联,通过它们之间的关联关系,通过第一连接追踪可以找到第二连接追踪,通过第二连接追踪也可以找到第一连接追踪。采用双连接追踪与双TCP协议控制块的方式引入TCP协议栈,可以相对独立地处理客户端和对服务器的数据报文,避免中间检测设备维护各种状态引起的混乱。
图5为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的方法的实施例五的流程图,如图5所示,利用来自所述发送端的握手数据报文创建所述第一连接追踪之前,在Netfilter架构中注册协议栈处理函数。
该附图所示的具体实施方式中,步骤100之前,该方法还包括:
步骤099:在Netfilter架构中注册协议栈处理函数。本发明的实施例中,在Netfilter架构中注册TCP协议栈处理函数。
参见图5,Netfilter架构引入TCP协议栈后,TCP协议栈的数据重传与确认机制能够保证中间检测设备向服务器或者客户端可靠地传送数据包;并且,TCP协议栈的传输报文序号调整与确认机制,能够保证一条https记录有序接收,TCP协议栈中含有接收缓存区,能够缓存上层未取走的数据报文,解决了https模块解密不成功的问题。
本发明的具体实施方式提供一种包含计算机执行指令的计算机存储介质,所述计算机执行指令经由数据处理设备处理时,该数据处理设备执行Netfilter架构下引入TCP协议栈的方法。方法具体包括以下步骤:
步骤101:利用第一连接追踪记录中间设备与发送端之间的连接状态。
步骤102:利用与所述第一连接追踪相关联的第一TCP协议控制块描述并记录所述中间设备与所述发送端之间数据交互的TCP协议连接属性。
步骤103:利用与所述第一连接追踪相关联的第二连接追踪记录所述中间设备与接收端之间的连接状态。
步骤104:利用与所述第二连接追踪相关联的第二TCP协议控制块描述并记录所述中间设备与所述接收端之间数据交互的TCP协议连接属性。
本发明的具体实施方式还提供一种包含计算机执行指令的计算机存储介质,所述计算机执行指令经由数据处理设备处理时,该数据处理设备执行Netfilter架构下引入TCP协议栈的方法。方法具体包括以下步骤:
步骤100:利用来自所述发送端的握手数据报文创建所述第一连接追踪。
步骤101:利用第一连接追踪记录中间设备与发送端之间的连接状态。
步骤102:利用与所述第一连接追踪相关联的第一TCP协议控制块描述并记录所述中间设备与所述发送端之间数据交互的TCP协议连接属性。
步骤103:利用与所述第一连接追踪相关联的第二连接追踪记录所述中间设备与接收端之间的连接状态。
步骤104:利用与所述第二连接追踪相关联的第二TCP协议控制块描述并记录所述中间设备与所述接收端之间数据交互的TCP协议连接属性。
本发明的具体实施方式还提供一种包含计算机执行指令的计算机存储介质,所述计算机执行指令经由数据处理设备处理时,该数据处理设备执行Netfilter架构下引入TCP协议栈的方法。方法具体包括以下步骤:
步骤100:利用来自所述发送端的握手数据报文创建所述第一连接追踪。
步骤101:利用第一连接追踪记录中间设备与发送端之间的连接状态。
步骤101-1:根据到达协议栈钩子函数(HOOK函数)的所述握手数据报文创建所述第一TCP协议控制块。
步骤102:利用与所述第一连接追踪相关联的第一TCP协议控制块描述并记录所述中间设备与所述发送端之间数据交互的TCP协议连接属性。
步骤103:利用与所述第一连接追踪相关联的第二连接追踪记录所述中间设备与接收端之间的连接状态。
步骤104:利用与所述第二连接追踪相关联的第二TCP协议控制块描述并记录所述中间设备与所述接收端之间数据交互的TCP协议连接属性。
本发明的具体实施方式还提供一种包含计算机执行指令的计算机存储介质,所述计算机执行指令经由数据处理设备处理时,该数据处理设备执行Netfilter架构下引入TCP协议栈的方法。方法具体包括以下步骤:
步骤100:利用来自所述发送端的握手数据报文创建所述第一连接追踪。
步骤101:利用第一连接追踪记录中间设备与发送端之间的连接状态。
步骤101-1:根据到达协议栈钩子函数(HOOK函数)的所述握手数据报文创建所述第一TCP协议控制块。
步骤102:利用与所述第一连接追踪相关联的第一TCP协议控制块描述并记录所述中间设备与所述发送端之间数据交互的TCP协议连接属性。
步骤102-1:利用所述中间设备的规则和所述握手数据报文创建所述第二连接追踪。
步骤103:利用与所述第一连接追踪相关联的第二连接追踪记录所述中间设备与接收端之间的连接状态。
步骤104:利用与所述第二连接追踪相关联的第二TCP协议控制块描述并记录所述中间设备与所述接收端之间数据交互的TCP协议连接属性。
本发明的具体实施方式还提供一种包含计算机执行指令的计算机存储介质,所述计算机执行指令经由数据处理设备处理时,该数据处理设备执行Netfilter架构下引入TCP协议栈的方法。方法具体包括以下步骤:
步骤099:在Netfilter架构中注册协议栈处理函数。
步骤100:利用来自所述发送端的握手数据报文创建所述第一连接追踪。
步骤101:利用第一连接追踪记录中间设备与发送端之间的连接状态。
步骤102:利用与所述第一连接追踪相关联的第一TCP协议控制块描述并记录所述中间设备与所述发送端之间数据交互的TCP协议连接属性。
步骤103:利用与所述第一连接追踪相关联的第二连接追踪记录所述中间设备与接收端之间的连接状态。
步骤104:利用与所述第二连接追踪相关联的第二TCP协议控制块描述并记录所述中间设备与所述接收端之间数据交互的TCP协议连接属性。
图6为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的应用示例一的时序图,如图6所示,中间检测设备10从客户端20接收到SYN报文(首部同步位SYN=1的TCP报文)后,创建第一、第二连接追踪(CT),并创建第一、第二TCP协议控制块(PCB),同时创建第一、第二连接追踪的关联关系;然后中间检测设备10通过第一PCB向客户端20回复SYN+ACK确认报文;中间检测设备10再通过第一PCB从客户端20接收ACK确认报文,更新第一PCB的状态,第一PCB完成三次握手,中间检测设备10与客户端20建立TCP连接。中间检测设备10通过第一PCB向客户端20回复SYN+ACK确认报文之后,中间检测设备10通过第二PCB向服务器30发送SYN报文,并通过第二PCB从服务器30接收SYN+ACK处理报文,更新第二PCB的状态,再通过第二PCB向服务器30回复ACK确认报文,完成三次握手。
图7为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的应用示例二的时序图,如图7所示,中间检测设备10利用图6所示的方式与客户端20、服务器30建立TCP连接之后,中间检测设备10通过第一PCB从客户端20接收到TCP请求报文,中间检测设备10对TCP请求报文进行TCP特性处理(数据包序号调整、确认、数据重传等)、检测过程处理,中间检测设备10再通过第二PCB向服务器30发送处理报文,完成TCP报文的传输。
图8为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的应用示例三的时序图,如图8所示,中间检测设备10通过第一PCB从客户端20接收到FIN报文后,关闭读通道,更新第一PCB的状态;然后中间检测设备10通过第一PCB向客户端20回复ACK确认报文;中间检测设备10再通过第二PCB向服务器30发送FIN报文,告诉服务器30不再向其发送数据报文,更新第二PCB的状态;如果服务器30仍有数据报文发送,中间检测设备10通过第二PCB接收,交由上层处理完成后通过第一PCB发送给客户端20;如果服务器30没有数据报文发送,则向中间检测设备10发送FIN+ACK确认报文,第二PCB收到FIN+ACK确认报文后,更新状态,此后,第二PCB不再接收数据报文;中间检测设备10通过第二PCB向服务器30发送ACK确认报文,等待2个最大报文生存时间(MSL)后,完成4次握手,释放中间检测设备10与服务器30之间的TCP连接;中间检测设备10通过第一PCB向客户端20发送FIN+ACK确认报文,通知客户端20中间检测设备10不再发送数据报文;第一PCB从客户端20接收到ACK确认报文后,第一PCB完成4次握手,释放中间检测设备10与客户端20之间的TCP连接。
图9为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的中间设备的实施例一的结构示意图,如图9所示,中间设备包括第一连接追踪1、第一TCP协议控制块2、第二连接追踪3和第二TCP协议控制块4。
该附图所示的具体实施方式中,Netfilter架构下引入TCP协议栈的中间设备包括:第一连接追踪1、第一TCP协议控制块2、第二连接追踪3和第二TCP协议控制块4。其中,第一连接追踪1用于记录中间设备与发送端之间的连接状态;第一TCP协议控制块2与所述第一连接追踪1相关联,第一TCP协议控制块2用于描述并记录所述中间设备与所述发送端之间数据交互的TCP协议连接属性;第二连接追踪3与所述第一连接追踪1相关联,第二连接追踪3用于记录所述中间设备与接收端之间的连接状态;第二TCP协议控制块4与所述第二连接追踪3相关联,第二TCP协议控制块4用于描述并记录所述中间设备与所述接收端之间数据交互的TCP协议连接属性。
参见图9,中间设备利用第一TCP协议控制块2从发送端接收数据报文,数据报文匹配第一连接追踪1,中间设备对数据报文进行TCP特性处理(报文序号调整、确认、数据重传等);利用第一连接追踪1与第二连接追踪3之间的关联关系,以及第二连接追踪3与第二TCP协议控制块4之间的关联关系,利用第二TCP协议控制块4将处理后的数据报文输送至接收端。Netfilter架构引入TCP协议栈后,TCP协议栈的数据重传与确认机制能够保证收发端与中间设备之间可靠地传送数据报文,同时,TCP协议栈的传输报文序号调整与确认机制,能够保证一条https记录有序接收,TCP协议栈中含有接收缓存区,能够缓存中间设备进行TCP特性处理时上层未取走的数据报文,解决了https模块解密不成功的问题。
图10为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的中间设备的实施例二的结构示意图,如图10所示,中间设备还包括创建模块5,其中,创建模块5用于创建第一连接追踪1、第一TCP协议控制块2、第二连接追踪3和第二TCP协议控制块4。
该附图所示的具体实施方式中,Netfilter架构下引入TCP协议栈的中间设备还包括创建模块5。其中,创建模块5用于利用来自所述发送端的握手数据报文创建所述第一连接追踪1。本发明的实施例中,所述创建模块5还用于根据到达协议栈钩子函数的所述握手数据报文创建所述第一TCP协议控制块2;所述创建模块5还用于利用所述中间设备的规则和所述握手数据报文创建所述第二连接追踪3。
参见图10,采用双连接追踪与双TCP协议控制块的方式引入TCP协议栈,可以相对独立地处理发送端与接收端之间的数据报文,避免中间设备维护各种数据报文状态引起的混乱。
图11为本发明具体实施方式提供的一种Netfilter架构下引入TCP协议栈的系统的组成示意图,如图11所示,该系统包括:中间设备10、分别与所述中间设备10连接的发送端20和接收端30。其中,所述发送端20用于向所述中间设备10发送请求报文;所述中间设备10用于对所述请求报文进行TCP特性处理,并将处理报文发送至所述接收端30;所述接收端30用于从所述中间设备10接收所述处理报文。
本发明提供一种Netfilter架构下引入TCP协议栈的方法及系统、中间设备、介质至少具有以下有益效果:Netfilter架构中引入TCP协议栈后,TCP协议栈的数据重传与确认机制能够保证中间检测设备向服务器或者客户端可靠地传送数据报文;同时,TCP协议栈的传输报文序号调整与确认机制,能够保证每一条https记录有序接收,TCP协议栈中含有接收缓存区,能够缓存上层未取走的数据报文,解决了https模块解密不成功的问题;采用双连接追踪(CT)与双TCP协议控制块(PCB)的方式引入TCP协议栈,可以相对独立地处理客户端和对服务器的数据报文,避免中间检测设备维护各种数据报文状态引起的混乱。
上述的本发明实施例可在各种硬件、软件编码或两者组合中进行实施。例如,本发明的实施例也可为在数据信号处理器(Digital Signal Processor,DSP)中执行上述方法的程序代码。本发明也可涉及计算机处理器、数字信号处理器、微处理器或现场可编程门阵列(Field Programmable Gate Array,FPGA)执行的多种功能。可根据本发明配置上述处理器执行特定任务,其通过执行定义了本发明揭示的特定方法的机器可读软件代码或固件代码来完成。可将软件代码或固件代码发展为不同的程序语言与不同的格式或形式。也可为不同的目标平台编译软件代码。然而,根据本发明执行任务的软件代码与其他类型配置代码的不同代码样式、类型与语言不脱离本发明的精神与范围。
以上所述仅为本发明示意性的具体实施方式,在不脱离本发明的构思和原则的前提下,任何本领域的技术人员所做出的等同变化与修改,均应属于本发明保护的范围。
Claims (15)
1.一种Netfilter架构下引入TCP协议栈的方法,其特征在于,该方法包括:
利用第一连接追踪记录中间设备与发送端之间的连接状态;
利用与所述第一连接追踪相关联的第一TCP协议控制块描述并记录所述中间设备与所述发送端之间数据交互的TCP协议连接属性;
利用与所述第一连接追踪相关联的第二连接追踪记录所述中间设备与接收端之间的连接状态;以及
利用与所述第二连接追踪相关联的第二TCP协议控制块描述并记录所述中间设备与所述接收端之间数据交互的TCP协议连接属性。
2.如权利要求1所述的Netfilter架构下引入TCP协议栈的方法,其特征在于,利用第一连接追踪记录中间设备与发送端之间的连接状态的步骤之前,该方法还包括:
利用来自所述发送端的握手数据报文创建所述第一连接追踪。
3.如权利要求2所述的Netfilter架构下引入TCP协议栈的方法,其特征在于,利用与所述第一连接追踪相关联的第一TCP协议控制块描述并记录所述中间设备与所述发送端之间数据交互的TCP协议连接属性的步骤之前,该方法还包括:
根据到达协议栈钩子函数的所述握手数据报文创建所述第一TCP协议控制块。
4.如权利要求3所述的Netfilter架构下引入TCP协议栈的方法,其特征在于,利用与所述第一连接追踪相关联的第二连接追踪记录所述中间设备与接收端之间的连接状态的步骤之前,该方法还包括:
利用所述中间设备的规则和所述握手数据报文创建所述第二连接追踪。
5.如权利要求4所述的Netfilter架构下引入TCP协议栈的方法,其特征在于,所述发送端的数据报文的五元组信息与所述第一连接追踪相匹配;所述接收端的数据报文的五元组信息与所述第二连接追踪相匹配。
6.如权利要求2所述的Netfilter架构下引入TCP协议栈的方法,其特征在于,利用来自所述发送端的握手数据报文创建所述第一连接追踪的步骤之前,该方法还包括:
在Netfilter架构中注册协议栈处理函数。
7.如权利要求1所述的Netfilter架构下引入TCP协议栈的方法,其特征在于,所述中间设备为WEB应用防火墙、入侵检测系统、入侵防御系统、安全网关中的至少一种。
8.如权利要求1所述的Netfilter架构下引入TCP协议栈的方法,其特征在于,所述发送端为客户端;所述接收端为服务器。
9.如权利要求1所述的Netfilter架构下引入TCP协议栈的方法,其特征在于,所述中间设备通过所述第一TCP协议控制块向所述发送端发送数据报文,并通过所述第一TCP协议控制块从所述发送端接收数据报文;所述中间设备通过所述第二TCP协议控制块向所述接收端发送数据报文,并通过所述第二TCP协议控制块从所述接收端接收数据报文。
10.一种包含计算机执行指令的计算机存储介质,所述计算机执行指令经由数据处理设备处理时,该数据处理设备执行如权利要求1~9任一所述的Netfilter架构下引入TCP协议栈的方法。
11.一种Netfilter架构下引入TCP协议栈的中间设备,其特征在于,该中间设备包括:
第一连接追踪,用于记录中间设备与发送端之间的连接状态;
第一TCP协议控制块,与所述第一连接追踪相关联,用于描述并记录所述中间设备与所述发送端之间数据交互的TCP协议连接属性;
第二连接追踪,与所述第一连接追踪相关联,用于记录所述中间设备与接收端之间的连接状态;以及
第二TCP协议控制块,与所述第二连接追踪相关联,用于描述并记录所述中间设备与所述接收端之间数据交互的TCP协议连接属性。
12.如权利要求11所述的Netfilter架构下引入TCP协议栈的中间设备,其特征在于,该中间设备还包括:
创建模块,用于利用来自所述发送端的握手数据报文创建所述第一连接追踪。
13.如权利要求12所述的Netfilter架构下引入TCP协议栈的中间设备,其特征在于,所述创建模块还用于根据到达协议栈钩子函数的所述握手数据报文创建所述第一TCP协议控制块。
14.如权利要求12所述的Netfilter架构下引入TCP协议栈的中间设备,其特征在于,所述创建模块还用于利用所述中间设备的规则和所述握手数据报文创建所述第二连接追踪。
15.一种Netfilter架构下引入TCP协议栈的系统,其特征在于,该系统包括:如权利要求11~14任一所述的中间设备、分别与所述中间设备连接的发送端和接收端,其中,
所述发送端用于向所述中间设备发送请求报文;
所述中间设备用于对所述请求报文进行TCP特性处理,并将处理报文发送至所述接收端;以及
所述接收端用于从所述中间设备接收所述处理报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810060382.5A CN108243196B (zh) | 2018-01-22 | 2018-01-22 | Netfilter架构下引入TCP协议栈的方法及系统、中间设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810060382.5A CN108243196B (zh) | 2018-01-22 | 2018-01-22 | Netfilter架构下引入TCP协议栈的方法及系统、中间设备、介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108243196A CN108243196A (zh) | 2018-07-03 |
CN108243196B true CN108243196B (zh) | 2020-09-25 |
Family
ID=62699537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810060382.5A Active CN108243196B (zh) | 2018-01-22 | 2018-01-22 | Netfilter架构下引入TCP协议栈的方法及系统、中间设备、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108243196B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114285771B (zh) * | 2021-12-30 | 2024-02-06 | 阿里巴巴(中国)有限公司 | 一种tcp连接的连接状态追踪方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013163852A1 (zh) * | 2012-05-03 | 2013-11-07 | 烽火通信科技股份有限公司 | 家庭网关及分析用户上网行为和监控网络质量的方法 |
CN105450782A (zh) * | 2016-01-15 | 2016-03-30 | 网宿科技股份有限公司 | 一种无丢包零停机重启网络服务的方法和系统 |
CN105897665A (zh) * | 2015-01-26 | 2016-08-24 | 中兴通讯股份有限公司 | 一种卫星网络环境下实现tcp传输的方法及相应的网关 |
CN107465666A (zh) * | 2017-07-12 | 2017-12-12 | 北京潘达互娱科技有限公司 | 一种客户端ip获取方法与装置 |
-
2018
- 2018-01-22 CN CN201810060382.5A patent/CN108243196B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013163852A1 (zh) * | 2012-05-03 | 2013-11-07 | 烽火通信科技股份有限公司 | 家庭网关及分析用户上网行为和监控网络质量的方法 |
CN105897665A (zh) * | 2015-01-26 | 2016-08-24 | 中兴通讯股份有限公司 | 一种卫星网络环境下实现tcp传输的方法及相应的网关 |
CN105450782A (zh) * | 2016-01-15 | 2016-03-30 | 网宿科技股份有限公司 | 一种无丢包零停机重启网络服务的方法和系统 |
CN107465666A (zh) * | 2017-07-12 | 2017-12-12 | 北京潘达互娱科技有限公司 | 一种客户端ip获取方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108243196A (zh) | 2018-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108881008B (zh) | 一种数据传输的方法、装置和系统 | |
CN104025525B (zh) | 用于发送分组的方法和设备以及交换机装置 | |
US20070025374A1 (en) | TCP normalization engine | |
CA2548476C (en) | Preventing network data injection attacks using duplicate-ack and reassembly gap approaches | |
US9967193B2 (en) | Method and system for increasing data flow transmission | |
US20060221946A1 (en) | Connection establishment on a tcp offload engine | |
CN106470136B (zh) | 平台测试方法以及平台测试系统 | |
US20040001433A1 (en) | Interactive control of network devices | |
CN110365658B (zh) | 一种反射攻击防护与流量清洗方法、装置、设备及介质 | |
EP3135016B1 (en) | Managing sequence values with added headers in computing devices | |
JP2013243694A (ja) | 少なくとも1つのtcpデータセグメントストリームをインラインコンテンツ解析にサブミットするための方法及びデバイス、その方法を実施するための1つ又は複数の命令シーケンスを保持するコンピュータ可読媒体、並びにコンピュータプログラム製品 | |
US11689564B2 (en) | Method and apparatus for processing data in cleaning device | |
US8825804B2 (en) | Method and system for avoiding an unintentional time-out for communications in a client-proxy-server environment | |
US7114181B2 (en) | Preventing network data injection attacks | |
CN106961487B (zh) | 虚拟机热迁移过程中的数据流自适应调整系统及调整方法 | |
CN104104608B (zh) | 接收报文的方法及装置 | |
CN108234087A (zh) | 数据传输方法及发送端 | |
US7697441B2 (en) | Computer system with black hole management | |
CN108243196B (zh) | Netfilter架构下引入TCP协议栈的方法及系统、中间设备、介质 | |
CN113852445B (zh) | 一种提高数据传输可靠性的方法、系统、设备和存储介质 | |
US20220046118A1 (en) | Transparent Proxy Conversion of Transmission Control Protocol (TCP) Fast Open Connection | |
CN111314447B (zh) | 代理服务器及其处理访问请求的方法 | |
US11470502B2 (en) | Congestion notification by data packet from intermediate node | |
KR100756183B1 (ko) | 페이크 응답 계층을 구비하는 네트워크 전송 장치와 이를이용한 티씨피 패킷 송수신 방법 | |
EP3432500A1 (en) | Point-to-point transmitting method based on the use of an erasure coding scheme and a tcp/ip protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |