CN110602154A - Web服务器及其处理数据报文的方法 - Google Patents

Web服务器及其处理数据报文的方法 Download PDF

Info

Publication number
CN110602154A
CN110602154A CN201810609354.4A CN201810609354A CN110602154A CN 110602154 A CN110602154 A CN 110602154A CN 201810609354 A CN201810609354 A CN 201810609354A CN 110602154 A CN110602154 A CN 110602154A
Authority
CN
China
Prior art keywords
network protocol
web server
protocol stack
user mode
module
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.)
Pending
Application number
CN201810609354.4A
Other languages
English (en)
Inventor
程杜勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and Technology Co Ltd
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
Application filed by Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201810609354.4A priority Critical patent/CN110602154A/zh
Publication of CN110602154A publication Critical patent/CN110602154A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例提供一种WEB服务器处理数据报文的方法,所述方法包括:WEB服务器通过网卡驱动接收请求报文,并提供给WEB服务器的用户空间;用户空间通过用户态网络协议栈解析请求报文,以获取请求数据并提供给用户空间的WEB进程;用户空间通过WEB进程生成与请求数据对应的响应数据,并提供给用户空间的用户态网络协议栈;用户空间通过用户态网络协议栈将响应数据封装为响应报文,并发送至WEB服务器的网卡驱动。本发明还提供一种WEB服务器。本发明提供的WEB服务器及其处理数据报文的方法,能够提高WEB服务器的性能。

Description

WEB服务器及其处理数据报文的方法
技术领域
本发明涉及网络技术领域,特别涉及一种WEB服务器及其处理数据报文的方法。
背景技术
WEB服务器是互联网络中的应用非常广泛的服务器,现有的WEB服务器大多运行于Linux操作系统,而且是通过内核进行数据报文的收发。图1为现有WEB服务器处理数据报文的示意图。网卡将接收到的报文数据发送给内核空间的网络协议栈处理,然后内核通过上下文切换将处理后的报文数据拷贝到用户空间的WEB进程;用户空间的WEB进程处理完毕之后,又将数据报文拷贝到内核,经过内核空间的网络协议栈处理以后,再发送到网卡。
本专利申请的发明人,通过研究现有的数据报文处理过程发现,现有技术至少存在以下问题:通过内核的网络协议栈处理数据报文比较复杂及繁琐,整个过程需要将数据在内核和用户空间之间进行多次拷贝及切换,导致效率下降;其次,内核采用的是中断方式处理数据报文,当并发数据大的时候,容易出现软中断非常高,占用系统资源,将成为系统的性能瓶颈;最后,内核的网络协议栈为防止抢占资源,很多地方需要对进程控制块(Process Control Block,PCB)加锁,这样也影响数据报文的处理效率。
由此可见,上述原因均可能导致WEB服务器的性能下降。
发明内容
本申请的目的在于提供一种WEB服务器及其处理数据报文的方法,以提高WEB服务器的性能。
为实现上述目的,本申请一方面提供一种WEB服务器处理数据报文的方法,所述方法包括:WEB服务器通过网卡驱动接收请求报文,并提供给所述WEB服务器的用户空间;所述用户空间通过用户态网络协议栈解析所述请求报文,以获取请求数据并提供给所述用户空间的WEB进程;所述用户空间通过WEB进程生成与所述请求数据对应的响应数据,并提供给所述用户空间的用户态网络协议栈;所述用户空间通过用户态网络协议栈将所述响应数据封装为响应报文,并发送至所述WEB服务器的网卡驱动。
进一步的,所述用户空间包括多个用户态网络协议栈,所述多个用户态网络协议栈与所述多个CPU之间分别一一对应,且所述用户态网络协议栈仅通过对应的CPU处理数据报文。
进一步的,所述用户空间还包括多个WEB进程,所述多个用户态网络协议栈还与所述多个WEB进程之间分别一一对应,且所述用户态网络协议栈仅将所述数据报文发送给对应的所述WEB进程。
进一步的,所述WEB服务器通过网卡驱动接收请求报文,并提供给所述WEB服务器的用户空间的步骤具体包括:所述WEB服务器通过网卡驱动接收请求报文,并提供给所述用户空间的散列进程;所述散列进程以共享内存的方式将所述请求报文均匀散列至所述多个用户态网络协议栈。
进一步的,所述网卡驱动以轮询的方式接收所述请求报文。
为实现上述目的,本申请另一方面还提供一种WEB服务器,包括网卡驱动模块及用户空间模块,所述网卡驱动模块,用于接收请求报文,并提供给所述用户空间模块;所述用户空间模块包括用户态网络协议栈模块以及WEB模块,其中:所述用户态网络协议栈模块用于解析所述请求报文,以获取请求数据并提供给所述WEB模块;所述WEB模块生成与所述请求数据对应的响应数据,并提供给所述用户态网络协议栈模块;所述用户态网络协议栈模块将所述响应数据封装为响应报文,并发送至所述网卡驱动模块。
进一步的,所述WEB服务器包括多个CPU,所述用户空间模块包括多个用户态网络协议栈模块,所述多个用户态网络协议栈模块与所述多个CPU之间分别一一对应,且所述用户态网络协议栈模块仅通过对应的CPU处理数据报文。
进一步的,所述用户空间模块还包括多个WEB模块,所述多个用户态网络协议栈模块还与所述多个WEB模块之间分别一一对应,且所述用户态网络协议栈模块仅将所述数据报文发送给对应的所述WEB模块。
进一步的,所述用户空间模块还包括散列模块:用于接收所述网卡驱动模块提供的所述请求报文,并以共享内存的方式将所述请求报文均匀散列至所述用户态网络协议栈模块。
进一步的,所述网卡驱动模块以轮询的方式接收所述请求报文。
为实现上述目的,本申请另一方面还提供一种WEB服务器,所述WEB服务包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的方法。
由上可见,本发明通过将用户态网络协议栈设置在用户空间,将内核协议栈所要处理的所有数据报文交由用户态网络协议栈,比内核协议栈处理数据报文的方式效率更高当出现大流量并发数据时,由于无需像现有技术那样,不断的在内核态和用户态之间进行数据拷贝,此外,无需通过内核处理,也就无需由内核态向系统请求中断,必然不会导致WEB服务器大流量并发处理时,效率低下的情形。
进一步的,由于用户态协议栈设置运行在用户空间,可更方便的跟上层应用程序配合使用,在编译和调试时不涉及内核,比起调试编译和调试内核更简便。进一步的,用户态网络协议栈仅通过对应的CPU处理数据报文,该方式可以避免用户态网络协议栈之间互相抢占CPU资源,充分利用每个CPU处理数据报文,从而提高了数据报文处理效率。进一步的,由于用户态网络协议栈仅将数据报文提供给对应的WEB进程,或者接收对应的WEB进程提供的数据报文,使得每个WEB进程运行各自的用户态网络协议栈,实现用户态网络协议栈且相互独立,互不影响,避免了现有技术中WEB进程相互抢占网络协议栈资源而产生死锁的现象。进一步的,用户空间通过散列进程以共享内存的方式将请求报文均匀散列至用户态网络协议栈,相对于现有技术中需要将数据报文在内核和用户空间之间进行反复拷贝的方式而言,提高了处理效率,节省了处理时间。进一步的,网卡驱动可以通过轮询的方式接收请求报文,并提供给WEB服务器的用户空间。相对于现有的网卡驱动采用中断方式接收请求报文而言,不会出现因为并发数据大而出现处理中断的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有WEB服务器处理数据报文的示意图;
图2为本发明实施例的WEB服务器处理数据报文的方法流程图;
图3为本发明实施例的用户态网络协议栈解析请求报文的流程图;
图4为本发明WEB服务器实施例一的功能模块示意图;
图5为本发明WEB服务器实施例二的功能模块示意图;
图6为本发明WEB服务器结构示意图;
图7为本发明实施例中计算机终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2为本发明实施例的WEB服务器处理数据报文的方法流程图。
本发明实施例的WEB服务器可以使用超文本传输协议(Hyper Text TransferProtocol,HTTP)、安全超文本传输协议(Hypertext Transfer Protocol over SecureSocket Layer,HTTPS)、文件传输协议(File Transfer Protocol,FTP)与客户端的浏览器进行通信,本发明对此不作限定。
本发明实施例的WEB服务器可以包括多个CPU,且该服务器的用户空间可以包括多个用户态网络协议栈和多个WEB进程。用户态网络协议栈是指在用户空间运行的类似内核协议栈的代码,具有TCP/IP(Transmission Control Protocol/Internet Protocol)网络协议栈的功能,可以移植自开源的TCP/IP网络协议,比如FreeBSD网络协议等。用户态网络协议栈提供的应用程序编程接口(Application Programming Interface,API)遵循可移植操作系统接口(Portable Operating System Interface of UNIX,POSIX)标准,可以适用多种平台,所以其可移植性强,且兼容性好。WEB进程可以处理HTTP请求、HTTPS请求,以及FTP请求等,而且还可以向客户端发送与请求对应的响应。
在执行本发明实施例的WEB服务器处理数据报文的方法之前,需要首先对WEB服务器进行初始化。WEB服务器初始化包括加载网卡驱动、WEB进程初始化、和用户态网络协议栈初始化。网卡驱动用于通过网卡从客户端接收报文请求。WEB进程初始化主要用于创建套接字(Socket),使用Socket.Accept()、Socket.Begin Accept()等方法侦听客户端的连接以及接收客户端发送的请求数据。与用户态网络协议栈初始化相关的项目,主要分为系统相关项目和网络相关项目。初始化系统相关项目包括为用户网络协议栈预先分配内存,这样在执行后续步骤时,就不用再为用户态网络协议栈分配内存;其次,还包括初始化数据接收缓冲区、发送缓冲区,用于存放数据包;初始化系统相关项目还包括绑定用户网络协议栈对应的CPU和对应的WEB进程,设置CPU时钟,设置系统定时器、系统环境变量、Sysctl变量等。初始化网络相关项目包括设置要使用的接口、接口的物理地址、IP地址、子网掩码、网关等。
具体而言,本发明实施例的WEB服务器处理数据报文的方法,包括如下步骤:
S201,WEB服务器通过网卡驱动接收请求报文,并提供给WEB服务器的用户空间;
请求报文是客户端向WEB服务器发出,可以是HTTP请求、HTTPS请求,或者FTP请求。在一个实施例中,网卡驱动可以通过轮询的方式接收请求报文,并提供给WEB服务器的用户空间。相对于现有的网卡驱动采用中断方式接收请求报文而言,减少中断机制的时间开销。
S202,用户空间通过用户态网络协议栈解析请求报文,以获取请求数据并提供给用户空间的WEB进程;
例如,请求数据可以是HTTP请求数据、HTTPS请求数据,或者FTP请求数据。本步骤的具体过程请参阅图3及下文的具体描述,在此先不赘述。
S203,用户空间的WEB进程生成与请求数据对应的响应数据,并提供给用户空间的用户态网络协议栈;
在一个实施例中,用户态网络协议栈进行初始化时,就已经将用户态网络协议栈与CPU进行绑定使得多个用户态网络协议栈与多个CPU之间分别一一对应。此外,还将用户态网络协议栈与WEB进程进行绑定,使得多个用户态网络协议栈与多个WEB进程之间分别一一对应。因此,在本步骤中,用户态网络协议栈仅通过对应的CPU处理数据报文,该方式可以避免用户态网络协议栈之间互相抢占CPU资源,充分利用每个CPU处理数据报文,从而提高了数据报文处理效率。此外,由于用户态网络协议栈仅将数据报文提供给对应的WEB进程,或者接收对应的WEB进程提供的数据报文,使得每个WEB进程运行各自的用户态网络协议栈,实现用户态网络协议栈相互独立,互不影响,避免了现有技术中WEB进程相互抢占网络协议栈资源
S204,用户空间的用户态网络协议栈将响应数据封装为响应报文,并发送至WEB服务器的网卡驱动。例如,响应数据可以是HTTP响应数据、HTTPS响应数据,或者FTP响应数据。
图3为本发明实施例的用户态网络协议栈解析请求报文的流程图。
S301,二层网络协议解析请求报文,并将三层及三层以上报文内容提供给三层网络协议栈;
比如可以根据地址解析协议(Address Resolution Protocol,ARP),将MAC地址映射为IP地址,进而获取三层及三层以上报文内容。
S302,三层网络协议栈解析二层网络协议栈提供的报文内容,并将四层及四层以上报文内容提供给四层网络协议栈;
三层网络协议栈可以是IP协议栈或者Internet控制报文协议栈(InternetControl Message Protocol,ICMP)。本步骤主要是对报文内容进行IP校验、IP分片、IP组包、IP路由等操作。
S303,四层网络协议栈解析三层网络协议栈提供的报文内容,并将请求数据提供给事件监听层;
四层网络协议栈可以是传输控制协议栈(Transmission Control Protocol,TCP)或者用户数据报协议栈(User Datagram Protocol,UDP)。TCP协议栈主要实现TCP流程的状态机操作、数据包拆分、IP分片、流量拥塞控制、TCP校验等功能;UDP协议栈主要实现根据UDP协议数据包拆分和UDP校验等功能。
S304,事件监听层根据对应的事件句柄,把请求数据提供给WEB进程。
事件监听层是指位于四层网络协议栈与WEB进程之间的套接字(Socket),主要用于维护数据流表,从四层网络协议栈读取请求数据并提供给WEB进程。换而言之,WEB进程可以通过事件监听层监听多个事件,并通过不同事件的句柄获取不同的请求数据。
需要说明的是,步骤S204中用户空间的用户态网络协议栈将响应数据封装为响应报文,正好是图3所示步骤的逆向执行过程,在此不再赘述。
在另一实施例中,步骤S201可以包括如下步骤:
S211,WEB服务器通过网卡驱动接收请求报文,并提供给用户空间的散列进程;
S212,散列进程以共享内存的方式将请求报文均匀散列至多个用户态网络协议栈。
本实施例与图2所示的实施例的主要区别在于,本实施例可以通过散列进程接收请求报文,并通过散列进程发送请求报文至用户态网络协议栈;图2所示的实施例则是网卡驱动直接将请求报文发送至用户态网络协议栈。均匀散列可以是散列进程根据哈希(Hash)算法均匀将请求报文发送到用户态网络协议栈,并将相同IP地址和端口(Port)的请求报文发送至同一个用户态网络协议栈上。
此外,共享内存的方式可以是多个散列进程之间直接访问同一块内存区域,该内存区域实在WEB服务器初始化时,所预先分配的空间。用户空间通过散列进程以共享内存的方式将请求报文均匀散列至用户态网络协议栈,相对于现有技术中需要将数据报文在内核和用户空间之间进行反复拷贝的方式而言,提高了处理效率,节省了处理时间。
本发明通过将用户态网络协议栈设置在用户空间,将内核协议栈所要处理的所有数据报文交由用户态网络协议栈。由于用户态网络协议栈运行在用户空间,所以WEB服务器在处理数据报文时不用通过内核进行转换,不但节省了内核资源,而且比内核协议栈处理数据报文的方式效率更高,也不会出现当处理大流量的并发大数据时,导致WEB服务器出现无法有效处理的情形。此外,由于用户态协议栈设置运行在用户空间,可更方便的跟上层应用程序配合使用,在编译和调试时不涉及内核,比起调试编译和调试内核更简便。
图4为本发明WEB服务器实施例一的功能模块示意图。
如图4所示,本实施例的WEB服务器可以包括:网卡驱动模块及用户空间模块。网卡驱动模块用于接收请求报文,并提供给用户空间模块;用户空间模块包括用户态网络协议栈模块以及WEB模块,其中:用户态网络协议栈模块用于解析请求报文,以获取请求数据并提供给WEB模块;WEB模块生成与请求数据对应的响应数据,并提供给用户态网络协议栈模块;用户态网络协议栈模块将所述响应数据封装为响应报文,并发送至所述网卡驱动模块。
本实施例的WEB服务器可以用于执行图2所示方法实施例的方法,其实现原理和所要达到的技术效果类似,在此不再赘述。
本实施例的WEB服务器,其实现原理和所要达到的技术效果上文中已有论述,在此不再赘述。
图5为本发明WEB服务器实施例二的功能模块示意图。
与图4所示的实施例一不同的是,WEB服务器可以包括多个CPU(图中未示出),用户空间模块包括多个用户态网络协议栈模块,多个用户态网络协议栈模块与多个CPU之间分别一一对应,且用户态网络协议栈模块仅通过对应的CPU处理数据报文。用户空间模块还包括多个WEB模块,多个用户态网络协议栈模块还与多个WEB模块之间分别一一对应,且用户态网络协议栈模块仅将数据报文发送给对应的WEB模块。用户空间模块还包括散列模块用于接收网卡驱动模块提供的请求报文,并以共享内存的方式将请求报文均匀散列至用户态网络协议栈模块。网卡驱动模块以轮询的方式接收所述请求报文。
本实施例的WEB服务器可以用于执行图2所示方法实施例的方法,其实现原理和所要达到的技术效果类似,在此不再赘述。
本实施例的WEB服务器,其实现原理和所要达到的技术效果上文中已有论述,在此不再赘述。
图6为本发明WEB服务器结构示意图。所述WEB服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,可以实现上述的WEB服务器处理数据报文的方法。
图7为本发明实施例中计算机终端的结构示意图。在本申请中,上述实施例中的技术方案可以应用于如图7所示的计算机终端10上。计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。
具体地,在本申请中,上述的WEB服务器处理数据报文的方法可以作为计算机程序存储于上述的存储器104中,所述存储器104可以与处理器102耦合,那么当处理器102执行所述存储器104中的计算机程序时,便可以实现上述的WEB服务器处理数据报文的方法中的各个步骤。
存储器104可用于存储应用软件的软件程序以及模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
由上可见,本发明通过将用户态网络协议栈设置在用户空间,将内核协议栈所要处理的所有数据报文交由用户态网络协议栈,比内核协议栈处理数据报文的方式效率更高当出现大流量并发数据时,由于无需像现有技术那样,不断的在内核态和用户态之间进行数据拷贝,此外,无需通过内核处理,也就无需由内核态向系统请求中断,必然不会导致WEB服务器大流量并发处理时,效率低下的情形。
进一步的,由于用户态协议栈设置运行在用户空间,可更方便的跟上层应用程序配合使用,在编译和调试时不涉及内核,比起调试编译和调试内核更简便。进一步的,用户态网络协议栈仅通过对应的CPU处理数据报文,该方式可以避免用户态网络协议栈之间互相抢占CPU资源,充分利用每个CPU处理数据报文,从而提高了数据报文处理效率。进一步的,由于用户态网络协议栈仅将数据报文提供给对应的WEB进程,或者接收对应的WEB进程提供的数据报文,使得每个WEB进程运行各自的用户态网络协议栈,实现用户态网络协议栈且相互独立,互不影响,避免了现有技术中WEB进程相互抢占网络协议栈资源而产生死锁的现象。进一步的,用户空间通过散列进程以共享内存的方式将请求报文均匀散列至用户态网络协议栈,相对于现有技术中需要将数据报文在内核和用户空间之间进行反复拷贝的方式而言,提高了处理效率,节省了处理时间。进一步的,网卡驱动可以通过轮询的方式接收请求报文,并提供给WEB服务器的用户空间。相对于现有的网卡驱动采用中断方式接收请求报文而言,不会出现因为并发数据大而出现处理中断的问题。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种WEB服务器处理数据报文的方法,其特征在于,包括:
WEB服务器通过网卡驱动接收请求报文,并提供给所述WEB服务器的用户空间;
所述用户空间通过用户态网络协议栈解析所述请求报文,以获取请求数据并提供给所述用户空间的WEB进程;
所述用户空间通过WEB进程生成与所述请求数据对应的响应数据,并提供给所述用户空间的用户态网络协议栈;
所述用户空间通过用户态网络协议栈将所述响应数据封装为响应报文,并发送至所述WEB服务器的网卡驱动。
2.如权利要求1所述的方法,其特征在于,所述WEB服务器包括多个CPU,所述用户空间包括多个用户态网络协议栈,所述多个用户态网络协议栈与所述多个CPU之间分别一一对应,且所述用户态网络协议栈仅通过对应的CPU处理数据报文。
3.如权利要求2所述的方法,其特征在于,所述用户空间还包括多个WEB进程,所述多个用户态网络协议栈还与所述多个WEB进程之间分别一一对应,且所述用户态网络协议栈仅将所述数据报文发送给对应的所述WEB进程。
4.如权利要求2所述的方法,其特征在于,所述WEB服务器通过网卡驱动接收请求报文,并提供给所述WEB服务器的用户空间的步骤具体包括:
所述WEB服务器通过网卡驱动接收请求报文,并提供给所述用户空间的散列进程;
所述散列进程以共享内存的方式将所述请求报文均匀散列至所述多个用户态网络协议栈。
5.如权利要求1所述的方法,其特征在于,所述网卡驱动以轮询的方式接收所述请求报文。
6.一种WEB服务器,包括网卡驱动模块及用户空间模块,其特征在于:
所述网卡驱动模块,用于接收请求报文,并提供给所述用户空间模块;
所述用户空间模块包括用户态网络协议栈模块以及WEB模块,其中:
所述用户态网络协议栈模块用于解析所述请求报文,以获取请求数据并提供给所述WEB模块;
所述WEB模块生成与所述请求数据对应的响应数据,并提供给所述用户态网络协议栈模块;
所述用户态网络协议栈模块将所述响应数据封装为响应报文,并发送至所述网卡驱动模块。
7.如权利要求6所述的WEB服务器,其特征在于,所述WEB服务器包括多个CPU,所述用户空间模块包括多个用户态网络协议栈模块,所述多个用户态网络协议栈模块与所述多个CPU之间分别一一对应,且所述用户态网络协议栈模块仅通过对应的CPU处理数据报文。
8.如权利要求7所述的WEB服务器,其特征在于,所述用户空间模块还包括多个WEB模块,所述多个用户态网络协议栈模块还与所述多个WEB模块之间分别一一对应,且所述用户态网络协议栈模块仅将所述数据报文发送给对应的所述WEB模块。
9.如权利要求7所述的WEB服务器,其特征在于,所述用户空间模块还包括散列模块,用于接收所述网卡驱动模块提供的所述请求报文,并以共享内存的方式将所述请求报文均匀散列至所述多个用户态网络协议栈模块。
10.如权利要求6所述的WEB服务器,其特征在于,所述网卡驱动模块以轮询的方式接收所述请求报文。
11.一种WEB服务器,其特征在于,所述WEB服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至5中任一权利要求所述的方法。
CN201810609354.4A 2018-06-13 2018-06-13 Web服务器及其处理数据报文的方法 Pending CN110602154A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810609354.4A CN110602154A (zh) 2018-06-13 2018-06-13 Web服务器及其处理数据报文的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810609354.4A CN110602154A (zh) 2018-06-13 2018-06-13 Web服务器及其处理数据报文的方法

Publications (1)

Publication Number Publication Date
CN110602154A true CN110602154A (zh) 2019-12-20

Family

ID=68849100

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810609354.4A Pending CN110602154A (zh) 2018-06-13 2018-06-13 Web服务器及其处理数据报文的方法

Country Status (1)

Country Link
CN (1) CN110602154A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111800401A (zh) * 2020-06-28 2020-10-20 腾讯科技(深圳)有限公司 业务报文的防护方法、装置、系统和计算机设备
CN112422453A (zh) * 2020-12-09 2021-02-26 新华三信息技术有限公司 一种报文处理的方法、装置、介质及设备
CN113067849A (zh) * 2021-02-05 2021-07-02 湖南国科亿存信息科技有限公司 基于Glusterfs的网络通信优化方法及装置
WO2023046141A1 (zh) * 2021-09-27 2023-03-30 华为技术有限公司 一种数据库网络负载性能的加速框架、加速方法及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070204031A1 (en) * 2006-02-21 2007-08-30 Kent Alstad Storing and retrieving user context data
CN104796337A (zh) * 2015-04-10 2015-07-22 京信通信系统(广州)有限公司 一种转发报文的方法及装置
CN107070958A (zh) * 2017-06-19 2017-08-18 河海大学 一种海量数据高效传输方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070204031A1 (en) * 2006-02-21 2007-08-30 Kent Alstad Storing and retrieving user context data
CN104796337A (zh) * 2015-04-10 2015-07-22 京信通信系统(广州)有限公司 一种转发报文的方法及装置
CN107070958A (zh) * 2017-06-19 2017-08-18 河海大学 一种海量数据高效传输方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王静: "协议栈并行化技术的研究与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111800401A (zh) * 2020-06-28 2020-10-20 腾讯科技(深圳)有限公司 业务报文的防护方法、装置、系统和计算机设备
CN112422453A (zh) * 2020-12-09 2021-02-26 新华三信息技术有限公司 一种报文处理的方法、装置、介质及设备
CN112422453B (zh) * 2020-12-09 2022-05-24 新华三信息技术有限公司 一种报文处理的方法、装置、介质及设备
CN113067849A (zh) * 2021-02-05 2021-07-02 湖南国科亿存信息科技有限公司 基于Glusterfs的网络通信优化方法及装置
WO2023046141A1 (zh) * 2021-09-27 2023-03-30 华为技术有限公司 一种数据库网络负载性能的加速框架、加速方法及设备

Similar Documents

Publication Publication Date Title
Xiang et al. Reducing latency in virtual machines: Enabling tactile Internet for human-machine co-working
US11824962B2 (en) Methods and apparatus for sharing and arbitration of host stack information with user space communication stacks
CN110602154A (zh) Web服务器及其处理数据报文的方法
CN110313163B (zh) 分布式计算系统中的负载平衡
CN110602155A (zh) 代理服务器及其处理数据报文的方法
US7512128B2 (en) System and method for a multi-packet data link layer data transmission
US9100409B2 (en) Method and system for selecting a computing device for maintaining a client session in response to a request packet
US7406538B2 (en) Method and system for identifying a computing device in response to an information packet
JP6513627B2 (ja) アプリケーションレベルネットワークキューイング
CN108270813B (zh) 一种异构多协议栈方法、装置及系统
US20070067046A1 (en) Method and system for communicating an information packet through multiple networks
US20090316581A1 (en) Methods, Systems and Computer Program Products for Dynamic Selection and Switching of TCP Congestion Control Algorithms Over a TCP Connection
US20190042314A1 (en) Resource allocation
CN113891396B (zh) 数据包的处理方法、装置、计算机设备和存储介质
Kampmann et al. A portable implementation of the real-time publish-subscribe protocol for microcontrollers in distributed robotic applications
CN110602262A (zh) 路由器及其处理数据报文的方法
CN107995326B (zh) 一种容器网络的管理方法及装置
Mishra et al. REoN: A protocol for reliable software-defined FPGA partial reconfiguration over network
CN109155777B (zh) 用于处置sctp分组的方法和网络节点
Zeng et al. Middlenet: A high-performance, lightweight, unified nfv and middlebox framework
CN113419810A (zh) 数据交互方法、装置、电子设备及计算机存储介质
CN116016687B (zh) 一种基于dpdk的报文分流方法及系统
Luo et al. Research of TCP/IP protocol stack based on embedded system
CN117615009A (zh) 一种报文的代理转发方法、装置及设备
Melnyk Modeling of the messages search mechanism in the messaging process on the basis of TCP protocols

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191220