一种数据包处理方法及系统技术方案

技术编号:19549398 阅读:78 留言:0更新日期:2018-11-24 21:35
本发明专利技术提供了一种数据包处理方法及系统,应用于万维网Web服务器,Web服务器用于处理网络层、传输层和应用层的请求数据包。该方法包括预先构建Web应用服务器底层的数据平面开发工作集DPDK,调用DPDK提供的接口函数来接收客户端发送的请求数据包,确定请求数据包的请求类型。并基于请求数据包的请求类型对请求数据包进行处理,得到响应数据包,调用DPDK提供的发送函数发送响应数据包。本发明专利技术基于DPDK对数据包进行处理,加快了数据包的处理速度和极大增加了Web服务器的并发量。

A Data Packet Processing Method and System

The invention provides a data packet processing method and system, which is applied to the Web server of the World Wide Web, and the Web server is used to process the request data packets of the network layer, the transmission layer and the application layer. This method includes pre-constructing DPDK, calling the interface function provided by DPDK to receive the request packet sent by the client, and determining the request type of the request packet. Based on the request type of the request packet, the request packet is processed, and the response packet is obtained. The sending function provided by DPDK is invoked to send the response packet. The invention processes data packets based on DPDK, speeds up the processing speed of data packets and greatly increases the amount of concurrency of Web servers.

【技术实现步骤摘要】
一种数据包处理方法及系统
本专利技术涉及数据包处理
,具体涉及一种数据包处理方法及系统。
技术介绍
随着科学技术的发展,网络早已成为人们生活中不可切割的一部分,在网络技术最初发展的时候,由于使用范围小和使用人数少,所以对服务器并发量和响应时间的要求并不高。但随着互联网的高速发展,网络的使用范围急速扩大,用户以及服务的数量和种类也越来越多,所以对服务器的并发量和响应时间的要求也越来越高。全球广域网(WorldWildWeb)应用服务器是一种运行在物理服务器上的软件框架,基本功能是提供Web信息浏览服务,其主要支持超文本传输协议(HyperTextTransferProtocol,HTTP),响应客户端浏览器发出的HTTP请求。现有的大部分Web服务器虽然功能强大,但这些传统Web服务器大多都是应用在复杂业务场景中,而现有的Web服务器在处理一些需要极高并发量且业务逻辑简单的场景中会存在臃肿、并发量小和效率低下的问题。
技术实现思路
有鉴于此,本专利技术实施例提供一种数据包处理方法及系统,以解决现有Web服务器在处理极高并发且业务逻辑简单的场景存在的臃肿、并发量小和效率低下的问题。为实现上述目的,现提出的方案如下:本专利技术实施例第一方面提供了一种数据包处理方法,应用于万维网web服务器,所述web服务器用于处理网络层、传输层和应用层的请求数据包,所述方法包括:调用数据平面开发工作集DPDK提供的第一接口函数,所述DPDK为预先构建于web应用服务器底层的DPDK,所述第一接口函数为rte_eth_rx_burst函数;基于所述第一接口函数接收客户端发送的请求数据包;确定所述请求数据包的请求类型,并基于所述请求数据包的请求类型对所述请求数据包进行处理,得到响应数据包;调用所述DPDK提供的第二接口函数向所述客户端发送所述响应数据包,所述第二接口函数为rte_eth_tx_burst函数。可选的,所述确定所述请求数据包的请求类型,并基于所述请求数据包的请求类型对所述请求数据包进行处理,得到响应数据包,包括:基于协议头部类型字段确定所述请求数据包为链路层协议类型的ARP协议包;则生成反向地址转换协议RARP响应数据包。可选的,所述确定所述请求数据包的请求类型,并基于所述请求数据包的请求类型对所述请求数据包进行处理,得到响应数据包,包括:基于协议头部类型字段确定所述请求数据包为网络层协议类型的ICMP协议包;或者,基于协议头部类型字段确定所述请求数据包为Ipv6协议类型的ICMP协议包;基于所述ICMP协议包的类型字段和代码字段判断所述ICMP协议包是否为回显请求包;若是,则对所述ICMP请求数据包进行处理,将得到的回显应答包作为响应数据包。可选的,所述确定所述请求数据包的请求类型,并基于所述请求数据包的请求类型对所述请求数据包进行处理,得到响应数据包,包括:基于协议头部类型字段确定所述请求数据包为传输层协议类型的TCP协议包;根据所述TCP协议包的头部标志位字段确定所述TCP协议包的请求类型;若所述头部标志位字段为SYN,确定所述TCP协议包的请求类型为握手请求;生成标志位为SYN和ACK的响应数据包;若所述头部标志位字段为FIN,确定所述TCP协议包的请求类型为挥手请求;生成标志位为ACK的响应数据包;若所述头部标志位字段为ACK,确定所述TCP协议包的请求类型为发送数据请求;解析所述TCP协议包,获取HTTP协议数据包;在应用层解析所述HTTP协议数据包,得到HTTP请求;调用数据层中与所述HTTP请求相对应的数据,并封装,得到HTTP响应包;对所述HTTP响应包进行处理,生成包含所请求发送的数据的响应数据包,所述HTTP响应包中包括所请求发送的数据。可选的,所述确定所述请求数据包的请求类型,并基于所述请求数据包的请求类型对所述请求数据包进行处理,得到响应数据包,包括:根据所述请求数据包的IP头部协议类型字段确定所述请求数据包为采用Ipv4协议或Ipv6协议类型的TCP协议包;执行根据所述TCP协议包的头部标志位字段确定所述协议包的请求类型这一步骤。本专利技术实施例第二方面提供了一种数据包处理系统,应用于万维网web服务器,所述web服务器用于处理网络层、传输层和应用层的请求数据包,所述方法包括:调用模块,用于调用数据平面开发工作集DPDK提供的第一接口函数,以及,调用所述DPDK提供的第二接口函数发送响应数据包,所述DPDK为预先构建于web应用服务器底层的DPDK,所述第一接口函数为rte_eth_rx_burst函数,所述第二接口函数为rte_eth_tx_burst函数;接收模块,用于基于所述第一接口函数接收客户端发送的请求数据包;处理模块,用于确定所述请求数据包的请求类型,并基于所述请求数据包的请求类型对所述请求数据包进行处理,得到所述响应数据包。可选的,所述处理模块包括:设置于网络层的ARP处理模块,用于基于协议头部类型字段确定所述请求数据包为链路层协议类型的ARP协议包,则生成RARP响应数据包。可选的,所述处理模块包括:设置于网络层的ICMP处理模块,用于基于协议头部类型字段确定所述请求数据包为所述网络层协议类型的ICMP协议包,基于所述ICMP协议包的类型字段和代码字段判断所述ICMP协议包是否为回显请求包,若是,则对所述ICMP请求数据包进行处理,将得到的回显应答包作为响应数据包;和/或,设置于网络层的ICMPv6处理模块,用于处理Ipv6协议类型的ICMP协议包,基于所述ICMP协议包的类型字段和代码字段判断所述ICMP协议包是否为回显请求包,若是,则对所述ICMP请求数据包进行处理,将得到的回显应答包作为响应数据包。可选的,所述处理模块包括:设置于传输层的TCP处理模块,用于确定所述请求数据包为传输层协议类型的TCP协议包,根据所述TCP协议包的头部标志位字段确定所述TCP协议包的请求类型,若所述头部标志位字段为SYN,确定所述TCP协议包的请求类型为握手请求,生成标志位为SYN和ACK的响应数据包;若所述头部标志位字段为FIN,确定所述TCP协议包的请求类型为挥手请求,生成标志位为ACK的响应数据包;若所述头部标志位字段为ACK,确定所述TCP协议包的请求类型为发送数据请求,解析所述TCP协议包,获取HTTP协议数据包,将所述HTTP协议数据包发送至HTTP处理模块,以及对接收到的HTTP响应包进行处理,生成包含所请求发送的数据的响应数据包;设置于应用层的HTTP处理模块,用于解析所述HTTP协议数据包,得到HTTP请求,调用数据层中与所述HTTP请求相对应的数据,并封装,得到HTTP响应包,所述HTTP响应包中包括所请求发送的数据。可选的,所述处理模块还包括:设置于网络层的IPv4/IPv6处理模块,用于根据所述请求数据包的IP头部协议类型字段确定所述请求数据包为采用Ipv4协议或Ipv6协议类型的TCP协议包,并将所述TCP协议包发送至所述TCP处理模块。经由上述技术方案可知,本专利技术公开了一种数据处理方法及系统,通过预先构建Web应用服务器底层的数据平面开发工作集DPDK,调用DPDK提供的接口函数来接收客户端发送的请求数据包,确定请求数据包的请求类型,并基于请求数据包的请求本文档来自技高网...

【技术保护点】
1.一种数据包处理方法,其特征在于,应用于万维网web服务器,所述web服务器用于处理网络层、传输层和应用层的请求数据包,所述方法包括:调用数据平面开发工作集DPDK提供的第一接口函数,所述DPDK为预先构建于web应用服务器底层的DPDK,所述第一接口函数为rte_eth_rx_burst函数;基于所述第一接口函数接收客户端发送的请求数据包;确定所述请求数据包的请求类型,并基于所述请求数据包的请求类型对所述请求数据包进行处理,得到响应数据包;调用所述DPDK提供的第二接口函数向所述客户端发送所述响应数据包,所述第二接口函数为rte_eth_tx_burst函数。

【技术特征摘要】
1.一种数据包处理方法,其特征在于,应用于万维网web服务器,所述web服务器用于处理网络层、传输层和应用层的请求数据包,所述方法包括:调用数据平面开发工作集DPDK提供的第一接口函数,所述DPDK为预先构建于web应用服务器底层的DPDK,所述第一接口函数为rte_eth_rx_burst函数;基于所述第一接口函数接收客户端发送的请求数据包;确定所述请求数据包的请求类型,并基于所述请求数据包的请求类型对所述请求数据包进行处理,得到响应数据包;调用所述DPDK提供的第二接口函数向所述客户端发送所述响应数据包,所述第二接口函数为rte_eth_tx_burst函数。2.根据权利要求1所述的方法,其特征在于,所述确定所述请求数据包的请求类型,并基于所述请求数据包的请求类型对所述请求数据包进行处理,得到响应数据包,包括:基于协议头部类型字段确定所述请求数据包为链路层协议类型的ARP协议包;则生成反向地址转换协议RARP响应数据包。3.根据权利要求1所述的方法,其特征在于,所述确定所述请求数据包的请求类型,并基于所述请求数据包的请求类型对所述请求数据包进行处理,得到响应数据包,包括:基于协议头部类型字段确定所述请求数据包为网络层协议类型的ICMP协议包;或者,基于协议头部类型字段确定所述请求数据包为Ipv6协议类型的ICMP协议包;基于所述ICMP协议包的类型字段和代码字段判断所述ICMP协议包是否为回显请求包;若是,则对所述ICMP请求数据包进行处理,将得到的回显应答包作为响应数据包。4.根据权利要求1所述的方法,其特征在于,所述确定所述请求数据包的请求类型,并基于所述请求数据包的请求类型对所述请求数据包进行处理,得到响应数据包,包括:基于协议头部类型字段确定所述请求数据包为传输层协议类型的TCP协议包;根据所述TCP协议包的头部标志位字段确定所述TCP协议包的请求类型;若所述头部标志位字段为SYN,确定所述TCP协议包的请求类型为握手请求;生成标志位为SYN和ACK的响应数据包;若所述头部标志位字段为FIN,确定所述TCP协议包的请求类型为挥手请求;生成标志位为ACK的响应数据包;若所述头部标志位字段为ACK,确定所述TCP协议包的请求类型为发送数据请求;解析所述TCP协议包,获取HTTP协议数据包;在应用层解析所述HTTP协议数据包,得到HTTP请求;调用数据层中与所述HTTP请求相对应的数据,并封装,得到HTTP响应包;对所述HTTP响应包进行处理,生成包含所请求发送的数据的响应数据包,所述HTTP响应包中包括所请求发送的数据。5.根据权利要求4所述的方法,其特征在于,所述确定所述请求数据包的请求类型,并基于所述请求数据包的请求类型对所述请求数据包进行处理,得到响应数据包,包括:根据所述请求数据包的IP头部协议类型字段确定所述请求数据包为采用Ipv4协议或Ipv6协议类型的TCP协议包;执行根据所述TCP协议包的头部标志位字段确定所述协议包的请求类型这一步骤。...

【专利技术属性】
技术研发人员:张焕杰田野葛俊强朱格
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:安徽,34

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

1