传输数据处理方法及装置制造方法及图纸

技术编号:32966885 阅读:7 留言:0更新日期:2022-04-09 11:24
本发明专利技术公开了一种传输数据处理方法及装置。其中,该方法包括:通过用户态驱动网卡接收发送端发送的传输控制协议TCP报文,其中,TCP报文包括握手报文或者数据报文;通过处理器对TCP报文进行处理,其中,用户态驱动网卡在接收到TCP报文后,将TCP报文发送给处理器;通过处理器在协议栈中对TCP报文的目标字段直接进行拷贝,根据拷贝的目标字段将TCP报文发送给接收端,其中,处理器包括协议栈,协议栈存储TCP报文的目标字段。本发明专利技术解决了相关技术中的传输控制协议TCP数据,在通过TCP代理传输时,效率低的技术问题。率低的技术问题。率低的技术问题。

【技术实现步骤摘要】
传输数据处理方法及装置


[0001]本专利技术涉及数据传输领域,具体而言,涉及一种传输数据处理方法及装置。

技术介绍

[0002]众所周知,当前大多数应用层协议都是基于TCP协议(Transmission Control Protocol,传输控制协议)的,如HTTP(Hyper Text Transfer Protocol,超文本传输协议)、FTP(File Transfer Protocol,文本传输协议)、POP3(Post Office Protocol

Version3,邮局协议版本3)、SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)、IMAP(Internet Message Access Protocol,因特网消息访问协议,别名交互邮件访问协议)等等,TCP代理有着广泛的应用,尤其是在网络设备中,如防火墙设备,WAF(Web Application Firewall,Web应用防护系统,别名Web应用防火墙)设备等,需要通过TCP代理获取TCP payload(TCP有效载荷)数据,以实现对报文的检查,流量监控,防病毒等功能。
[0003]下面对常见的TCP代理应用场景做简要介绍:
[0004]常见TCP代理应用场景一:图2是现有技术中的TCP简单代理流程的示意图,如图2所示,网络设备通过对TCP连接做简单代理,解析TCP之上承载的应用层协议报文,获取报文内容,并做应用安全检查:如URL过滤,防病毒,IPS,关键字过滤,电子邮件过滤,文件过滤等,实现对流量的监控。该场景下,网络设备通常只能查看报文内容,无法对TCP连接承载的数据做过多修改,仅根据需要修改TCP连接的若干字段,之后直接转发该条连接的报文。
[0005]常见TCP代理应用场景二:图3是现有技术中的TCP全代理流程的示意图,如图3所示,网络设备对TCP连接做全代理,打破客户端与服务端的原始TCP连接,实现对复杂应用的审计,如基于TCP全代理的SSL解密功能,可以实现对加密流量的审计。由于打破了原始TCP连接,客户端和服务端之间不再直接通信,往往会因TCP连接不是透明的而引发各种连接问题,比如:应用识别出来某个协议不用代理后,如果没有TCP透明代理,那么无法退出代理模式,也就无法实现应用层筛选;另外,TCP代理普遍都存在性能问题,TCP代理的介入后,往往会造成报文转发速率的降低。
[0006]与本申请相关的现有技术有:常见的TCP代理解决方案是基于内核态驱动网卡收发包,和基于内核态TCP/IP协议栈,代理设备与客户端(发起TCP连接的一侧)和服务端(被动接受TCP连接的一侧),分别建立TCP连接,之后获取客户端发送的请求数据,在通过应用层检查之后,再由另一侧的TCP连接发送给服务端。由于涉及到报文在内核态和用户态之间的拷贝,以及一系列的系统调用,TCP代理性能往往受到制约。
[0007]与本申请相关的现有技术中为了实现用户态TCP代理,常见的解决方案是基于用户态网卡收发包驱动,和用户态的TCP/IP协议栈,但在用户态下如何实现TCP透明代理,并保证TCP代理的稳定性和高性能,目前业界存在一些方案,但解决问题的角度相对比较单一,具体如下:
[0008]图4是现有技术中的现有用户态TCP全代理的示意图,与本申请相关的现有技术方案如图4所示,从图4可以看出目前现有的技术方案存在的主要问题如有:(1).基于用户态
TCP/IP协议栈,虽然比基于内核态TCP/IP协议栈转发效率更高,但是代理设备与客户端和服务端分别进行TCP握手,这增加了报文交互次数;(2).通常两侧的TCP连接是互相独立的,分别由用户态的src socket(源套接字)和dst socket(目的套接字)来维护,这就导致两侧的TCP连接信息有区别,如两侧的TCP header、TCP option并不完全一致,并不是完全透明的TCP代理;(3).当进行TCP数据交互时,若两侧的网络速率不匹配,或是代理设备在处理应用层业务耗时较长时,很容易造成报文堆积在中间代理设备上,消耗系统资源(如pak资源,即包资源,内存资源),上述包资源通常可理解为设备专门用于接收网络报文的一种内存资源。
[0009]针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

[0010]本专利技术实施例提供了一种传输数据处理方法及装置,以至少解决相关技术中的传输控制协议TCP数据,在通过TCP代理传输时,效率低的技术问题。
[0011]根据本专利技术实施例的一个方面,提供了传输数据处理方法,包括:通过用户态驱动网卡接收发送端发送的传输控制协议TCP报文,其中,所述TCP报文包括握手报文或者数据报文;通过处理器对所述TCP报文进行处理,其中,所述用户态驱动网卡在接收到所述TCP报文后,将所述TCP报文发送给所述处理器;通过所述处理器在协议栈中对所述TCP报文的目标字段直接进行拷贝,根据拷贝的所述目标字段将所述TCP报文发送给接收端,其中,所述处理器包括所述协议栈,所述协议栈存储所述TCP报文的目标字段。
[0012]可选的,所述处理器的数量为多个,通过所述用户态驱动网卡接收发送端发送的传输控制协议TCP报文之后,所述方法还包括:通过所述用户态驱动网卡,根据所述TCP报文的五元组哈希值,将所述TCP报文分发到对应的收发队列;将所述收发队列按照预设分发方式,分发给所述多个处理器,对所述收发队列的TCP报文进行并发处理。
[0013]可选的,所述TCP报文为握手报文的情况下,通过所述处理器在协议栈中对所述TCP报文的目标字段直接进行拷贝,根据拷贝的所述目标字段将所述TCP发送给接收端包括:通过所述处理器在协议栈中对所述握手报文的目标字段直接进行拷贝,其中,所述目标字段包括标头header或选项option,所述握手报文为SYN报文,或ACK报文;根据拷贝的所述目标字段将所述握手报文发送给接收端。
[0014]可选的,根据拷贝的所述目标字段将所述握手报文发送给接收端之后,所述方法还包括:在客户端与服务端之间的TCP握手完成的情况下,创建第一TCP连接,以及第二TCP连接,其中,所述第一TCP连接为与所述客户端之间的TCP连接,所述第二TCP连接为与所述服务端之间的TCP连接;并将所述第一TCP连接和所述第二TCP连接的状态设置为已创建状态,其中,在所述已创建状态所述第一TCP连接和所述第二TCP连接能够对数据进行传输;其中,所述发送端为客户端或服务端,所述接收端为服务端或客户端,在所述发送端为客户端的情况下,所述接收端为服务端,在所述发送端为服务端的情况下,所述接收端为客户端。
[0015]可选的,通过所述处理器在协议栈中对所述TCP报文的目标字段直接进行拷贝,根据拷贝的所述目标字段将所述TCP报文发送给接收端之后,还包括:根据所述处理器的可用处理资源对接收窗口的大小实时调整,其中,所述接收窗口用于为所述用户态驱动网卡接收所述发送端的所述TCP报文,所述接收窗口越大,接收所述数据报文本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种传输数据处理方法,其特征在于,包括:通过用户态驱动网卡接收发送端发送的传输控制协议TCP报文,其中,所述TCP报文包括握手报文或者数据报文;通过处理器对所述TCP报文进行处理,其中,所述用户态驱动网卡在接收到所述TCP报文后,将所述TCP报文发送给所述处理器;通过所述处理器在协议栈中对所述TCP报文的目标字段直接进行拷贝,根据拷贝的所述目标字段将所述TCP报文发送给接收端,其中,所述处理器包括所述协议栈,所述协议栈存储所述TCP报文的目标字段。2.根据权利要求1所述的方法,其特征在于,所述处理器的数量为多个,通过所述用户态驱动网卡接收发送端发送的传输控制协议TCP报文之后,所述方法还包括:通过所述用户态驱动网卡,根据所述TCP报文的五元组哈希值,将所述TCP报文分发到对应的收发队列;将所述收发队列按照预设分发方式,分发给所述多个处理器,对所述收发队列的TCP报文进行并发处理。3.根据权利要求1所述的方法,其特征在于,所述TCP报文为握手报文的情况下,通过所述处理器在协议栈中对所述TCP报文的目标字段直接进行拷贝,根据拷贝的所述目标字段将所述TCP发送给接收端包括:通过所述处理器在协议栈中对所述握手报文的目标字段直接进行拷贝,其中,所述目标字段包括标头header或选项option,所述握手报文为SYN报文,或ACK报文;根据拷贝的所述目标字段将所述握手报文发送给接收端。4.根据权利要求3所述的方法,其特征在于,根据拷贝的所述目标字段将所述握手报文发送给接收端之后,所述方法还包括:在客户端与服务端之间的TCP握手完成的情况下,创建第一TCP连接,以及第二TCP连接,其中,所述第一TCP连接为与所述客户端之间的TCP连接,所述第二TCP连接为与所述服务端之间的TCP连接;并将所述第一TCP连接和所述第二TCP连接的状态设置为已创建状态,其中,在所述已创建状态所述第一TCP连接和所述第二TCP连接能够对数据进行传输;其中,所述发送端为客户端或服务端,所述接收端为服务端或客户端,在所述发送端为客户端的情况下,所述接收端为服务端,在所述发送...

【专利技术属性】
技术研发人员:沈亚琪李家顺缪冬宇
申请(专利权)人:山石网科通信技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1