CN113014528A - 报文处理方法、处理单元及虚拟专用网络服务器 - Google Patents
报文处理方法、处理单元及虚拟专用网络服务器 Download PDFInfo
- Publication number
- CN113014528A CN113014528A CN201911315330.9A CN201911315330A CN113014528A CN 113014528 A CN113014528 A CN 113014528A CN 201911315330 A CN201911315330 A CN 201911315330A CN 113014528 A CN113014528 A CN 113014528A
- Authority
- CN
- China
- Prior art keywords
- message
- processing
- messages
- preset
- thread
- 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.)
- Granted
Links
Images
Classifications
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6255—Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0245—Filtering by information in the payload
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及网络通信技术领域,公开了一种报文处理方法、处理单元及虚拟专用网络服务器。本发明应用于虚拟专用网络服务器,服务器包括收包线程,多个处理线程和发包线程,方法包括:收包线程接收报文,并以预设顺序依次向多个处理线程分发报文;多个处理线程在接收到报文后,对接收的报文进行并行处理;发包线程以预设顺序依次从多个处理线程中获取处理后的报文,从而在保证了报文传输顺序的基础上,提高了报文传输的效率。
Description
技术领域
本发明实施例涉及网络通信技术领域,特别涉及一种报文处理方法、处理单元及虚拟专用网络服务器。
背景技术
随着网络的迅速发展,越来越多的政企机构开始借助公用网络来处理工作事物。为保证政企机构内部数据的安全性,虚拟专用网络(VPN)技术成为用户设备从外网访问内部数据的实现方式,VPN技术在公用网络上建立专用网络,用户在需要调用政企机构内部数据时,向公用网络上建立的专用网络的VPN服务器发送请求以实现远程访问。
VPN服务器在接收到用户请求时,需要将用户发送的请求数据包进行一定的处理后转发至政企机构的内部网络,且在从政企机构的内部网络获得内部数据时,也需经过VPN服务器进行一定处理后返回用户终端。在用户发送的请求数据包数量较多或政企机构返回的内部数据的数据包较多时,VPN服务器需要对接收到的多个数据包进行排队,处理线程依次对各个数据包进行处理,直至所有的数据包均处理完成,将处理后的数据包进行转发,从而实现将接收到的数据包处理并传输。
发明人发现相关技术中至少存在如下问题:由于在对每个VPN数据包进行转发时其余数据包均处于等待状态,若需处理的数据包数量较多,则处理较多的数据包所花费的时间较长,从而导致数据在传输过程中延时较高,用户无法及时获取所需的数据,影响用户体验。
发明内容
本发明实施方式的目的在于提供一种报文处理方法、处理单元及虚拟专用网络服务器,在保证了报文传输顺序的基础上,提高了报文传输的效率。
为解决上述技术问题,本发明的实施例提供了一种报文处理方法,应用于虚拟专用网络服务器,服务器包括收包线程,多个处理线程和发包线程,方法包括:收包线程接收报文,并以预设顺序依次向多个处理线程分发报文;多个处理线程在接收到报文后,对接收的报文进行并行处理;发包线程以预设顺序依次从多个处理线程中获取处理后的报文。
本发明的实施例还提供了一种报文处理单元,包括:接收模块,分发模块,多个处理模块,获取模块;接收模块用于接收报文;分发模块用于以预设顺序依次向多个处理模块分发报文;多个处理模块用于在接收到报文后,对接收的报文进行并行处理;获取模块用于以预设顺序依次从多个处理模块中获取处理后的报文。
本发明的实施例还提供了一种虚拟专用网络服务器,包括:多个上述报文处理单元。
本发明的实施例还提供了一种虚拟专用网络服务器,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述报文处理方法。
本发明的实施例还提供了一种存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述报文处理方法。
本发明实施方式相对于现有技术而言,在虚拟专用网络的服务器包括收包线程,多个处理线程,以及发包线程。服务器中的收包线程接收报文,并以预设顺序依次向多个处理线程分发报文;在处理线程将接收到的报文处理之后,再由发包线程以同样的预设顺序依次从多个处理线程中获取处理后的报文,保证了处理后的报文的顺序与收包线程接收的报文顺序一致,避免出现报文乱序的问题。另外,多个处理线程在接收到报文时,多个处理线程可以对接收的报文进行并行处理,提高了报文的处理效率,缩短了报文的处理时间,提高了报文传输的效率。
另外,以预设顺序依次向多个处理线程分发报文,包括:收包线程以预设顺序依次向多个处理线程分别对应的预设第一报文队列分发报文;多个处理线程在接收到报文后,对接收的报文进行并行处理,包括:多个处理线程分别从对应的预设第一报文队列中获取报文并进行并行处理,将处理后的报文分别存储于对应的预设第二报文队列;发包线程以预设顺序依次从多个处理线程中获取处理后的报文,包括:发包线程以预设顺序依次从多个处理线程分别对应的预设第二报文队列中获取处理后的报文。通过在收包线程和处理线程之间建立第一报文队列,利用第一报文队列对分发给处理线程的报文进行保存,可以提高收包线程将报文分发至处理线程的分发效率,且第一报文队列中的报文以分发的顺序进行排序,不会造成报文的乱序。同理,在发包线程与处理线程之间建立第二报文队列用于暂时存储处理线程处理后的报文,避免处理后的报文占用处理线程,提高处理线程的处理效率。
另外,在收包线程以预设顺序依次向多个处理线程分别对应的预设第一报文队列分发报文之前,还包括:确定待分发的预设第一报文队列中的报文数量未达到预设第一报文队列存储的最大数量。在预设第一报文队列中的报文数量达到存储的最大数量时可以将待分发的报文丢弃,并将接收到的新的报文继续向这一预设第一报文队列中分发,直至所分发的报文可以被该预设第一报文队列所接收;或者在达到存储的最大数量时收包线程还可以多次向待分发的预设第一报文队列发送入队请求,直至待分发的报文可以被该预设第一报文队列所接收。
另外,在发包线程以预设顺序依次从多个处理线程分别对应的预设第二报文队列中获取处理后的报文之后,还包括:将处理后的报文占用的内存空间的地址添加至预设队列;收包线程再次接收报文之后,在预设队列中获取用于存储报文的内存空间的地址。这样做使收包线程在接收报文时优先从预设队列中获取内存空间保存所接收的报文,从而减少了收包线程在每次接收报文时均需申请内存空间的操作,提高收包线程效率。
另外,预设第一报文队列和预设第二报文队列均为无锁队列。利用无锁队列相较于使用加锁的队列,无需进行加锁和解锁的操作,提高了报文的传递效率。
另外,在发包线程以预设顺序依次从多个处理线程中获取处理后的报文之后,还包括:判断处理后的报文是否为异常报文;在处理后的报文不是异常报文时,将处理后的报文转发;在处理后的报文为异常报文时,将处理后的报文丢弃。这样做可以将处理异常的报文剔除,避免对未处理的报文进行转发。
另外,将收包线程,多个处理线程和发包线程作为一组工作线程进行绑定,并将工作线程与用户通道进行绑定;在收包线程接收报文之前,还包括:确定报文对应的用户通道,并根据确定的用户通道确定与用户通道绑定的工作线程;收包线程接收报文替换为:与报文对应的用户通道进行绑定的工作线程中的收包线程接收报文。这样做保证了单个用户的流量只会被单组工作线程处理,从而保证了用户流量在多组工作线程中不会出现乱序的问题。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施例中的报文处理方法的流程图;
图2是根据本发明第一实施例中的收包线程,多个处理线程与发包线程之间报文传输示意图;
图3是根据本发明第二实施例中的报文处理方法的流程图;
图4是根据本发明第二实施例中的用户连接绑定工作线程组示意图;
图5是根据本发明第三实施例中的报文处理单元的结构示意图;
图6是根据本发明第四实施例中的虚拟专用网络服务器的结构示意图;
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本发明的第一实施例涉及一种报文处理方法,应用于虚拟专用网络服务器,服务器包括收包线程,多个处理线程和发包线程,方法包括:收包线程接收报文,并以预设顺序依次向多个处理线程分发报文;多个处理线程在接收到报文后,对接收的报文进行并行处理;发包线程以预设顺序依次从多个处理线程中获取处理后的报文。从而在保证了报文传输顺序的基础上,提高了报文传输的效率。下面对本实施例的报文处理方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
具体流程如图1所示,第一实施例涉及一种报文处理方法,包括:
步骤101,收包线程接收报文,并以预设顺序依次向多个处理线程分发报文。
收包线程接收内核态协议栈转发的报文,收包线程接收的报文可能是内网发送的报文,也可能是外网发送的报文,在此对报文的流向不做限制。收包线程在接收到报文之后以预设顺序依次向多个处理线程分发报文,例如,预设顺序为处理线程1,处理线程2,收报线程在接收到报文之后,将第一个报文分发至处理线程1,将第二个报文分发至处理线程2,然后将第三个报文再次分发至处理线程1,将第四个报文再次分发至处理线程2,以此类推。上述以处理线程数量为两个进行说明,在实际应用中处理线程的数量根据需求设定,分发报文的方式同样以预设顺序进行分发,为避免重复不再举例说明。
另外,可以在收包线程和处理线程之间建立第一报文队列,如图2中,在收包线程与处理线程1之间建立队列0,在收包线程与处理线程2之间建立队列1,队列0与队列1用于暂时存储收包线程分发的报文。在收包线程接收到报文之后,以预设顺序向多个处理线程分别对应的预设第一报文队列分发报文,以图2所示建立的第一报文队列为例,在收包线程接收到报文之后,将第一个报文分发至处理线程1对应的队列0,将第二个报文分发至处理线程2对应的队列1,将第三个报文再次分发至处理线程1对应的队列0,将第四个报文分发至处理线程2对应的队列1,以此类推。上述以处理线程数量为两个进行说明,在实际应用中处理线程的数量根据需求设定,建立的第一报文队列的数量与处理线程数量相同,在此对处理线程的数量及第一报文队列建立的数量不做限制。
另外,在收包线程以预设顺序依次向多个处理线程分别对应的预设第一报文队列分发报文之前,判断待分发的预设第一报文队列中的报文数量是否达到预设第一报文队列存储的最大数量。例如,收包线程与处理线程1之间建立的队列0存储的报文的最大数量为6,在收包线程向处理线程1对应的队列0分发报文之前,需根据队列0当前的报文数量,判断其内的报文数量是否达到限定的最大数量,若达到最大数量6,则队列0无法对新的报文进行存储。在待分发的预设第一报文队列中的报文数量未达到限定的最大数量,则可以向该第一报文队列分发报文;在待分发的预设第一报文队列中的报文数量达到限定的最大数量,待分发的报文入队失败,收包线程可以将此时待分发的报文丢弃,并重新接收新的报文进行分发,所分发的报文队列为上述入队失败的预设第一报文队列,从而保证收包线程将报文分发至处理线程是以预设顺序的。下面举例说明收包线程对报文进行丢弃和重新接收新的报文的过程:假设收包线程欲将第五个报文分发至第一处理线程对应的队列0,且检测到队列0中的报文数量已达到存储的最大数量,此时收包线程将第五个报文丢弃,并继续接收第六个报文,将接收的第六个报文同样分发至队列0,若队列0内的报文数量仍保持在存储的最大数量,则继续将第六个报文丢弃并重新接收第七个报文,直至队列0内报文数量小于存储的最大数量,将当前分发的报文分发至队列0,在分发给队列0的报文入队成功之后,将下一个报文分发至处理线程2对应的队列1。另外,在检测到待分发的预设第一报文队列中的报文数量达到限定的最大数量时,还可以选择不将报文丢弃也不将该报文分发,收包线程需等待直至待分发的预设第一报文队列中的报文数量小于限定的最大数量时,将报文分发至待分发的预设第一报文队列,同样可以保证收包线程分发至处理线程的报文是有序的。
在实际应用中,收包线程在接收报文的同时还可以在接收的报文上标记队列id,用于指示报文应分发的队列,以便日后对报文的分发顺序进行检验,避免收包线程分发过程出现错误导致报文乱序。
步骤102,多个处理线程在接收到报文后,对接收的报文进行并行处理。
具体地说,在处理线程接收到由外网传输至内网的报文时,对报文进行解密解封装处理;在处理线程接收到由内网传输至外网的报文时,对报文进行加密封装处理。
步骤103,发包线程以预设顺序依次从多个处理线程中获取处理后的报文。
具体地说,发包线程按照与收包线程分发的同样的预设顺序,依次从多个处理线程中获取处理线程处理后的报文,例如,收包线程分发的预设顺序为处理线程1,处理线程2,发包线程在从处理线程获取处理后的报文时,第一次从处理线程1获取报文,第二次从处理线程2获取报文,第三次从处理线程1获取报文,第四次从处理线程2获取报文,以此类推,在获取一个完整数据包的报文之后,将所获取的处理后的报文转发至内核态协议栈,并通过内核态协议栈转发,从而保证处理后的报文的顺序与收包线程分发的顺序是相同的,确保了报文是有序的。
另外,还可以在处理线程与发包线程之间建立第二报文队列,如图2中,在处理线程1与发包线程之间建立队列0,在处理线程2与发包线程之间建立队列1,所建立的队列0和队列1用于暂时存储处理后的报文。在处理线程1对报文处理之后,将处理后的报文入队至队列0,同理在处理线程2对报文处理之后,将处理后的报文入队至队列1,在将处理后的报文放入队列中时,若第二报文队列中的处理后的报文的数量达到最大数量,处理线程需要等待第二报文队列中的处理后的报文的数量小于最大数量之后,再将处理后的报文入队第二报文队列。发包线程在以预设顺序依次从多个处理线程中获取处理后的报文时,具体从多个处理线程对应的第二报文队列中获取处理后的报文,以图2所建立的第二报文队列为例,发包线程第一次从处理线程1对应的队列0获取处理后的报文,第二次从处理线程2对应的队列1获取处理后的报文,第三次从处理线程1对应的队列0中获取处理后的报文,第四次从处理线程2对应的队列1获取处理后的报文,以此类推,直至获取一个完整数据包的报文之后,将所获取的处理后的报文转发至内核态协议栈。
另外,在发包线程以预设顺序依次从多个处理线程中获取处理后的报文之后,还可以判断处理后的报文是否为异常报文;在处理后的报文不是异常报文时,将处理后的报文转发;在处理后的报文为异常报文时,将处理后的报文丢弃。在报文为由外网传输至内网传输的报文时,异常报文可能是未进行解密解封装处理的报文,而在报文为由内网传输至外网传输的报文时,异常报文可能是未进行加密封装处理的报文。这样做可以将处理异常的报文剔除,避免对未处理的报文进行转发。
本发明实施方式相对于现有技术而言,在虚拟专用网络的服务器包括收包线程,多个处理线程,以及发包线程。服务器中的收包线程接收报文,并以预设顺序依次向多个处理线程分发报文;在处理线程将接收到的报文处理之后,再由发包线程以同样的预设顺序依次从多个处理线程中获取处理后的报文,保证了处理后的报文的顺序与收包线程接收的报文顺序一致,避免出现报文乱序的问题。另外,多个处理线程在接收到报文时,多个处理线程可以对接收的报文进行并行处理,提高了报文的处理效率,缩短了报文的处理时间,提高了报文传输的效率。
本发明的第二实施例涉及一种报文处理方法。在本发明第二实施例中还包括:在发包线程以预设顺序依次从多个处理线程分别对应的预设第二报文队列中获取处理后的报文之后,将处理后的报文占用的内存空间添加至预设队列;收包线程再次接收报文之后,在预设队列中获取用于存储报文的内存空间。
具体流程如图3所示,第二实施例涉及一种报文处理方法,包括:
步骤301,收包线程接收报文,并以预设顺序依次向多个处理线程分发报文。
步骤302,多个处理线程在接收到报文后,对接收的报文进行并行处理。
步骤303,发包线程以预设顺序依次从多个处理线程中获取处理后的报文。
步骤301至303分别与第一实施例中步骤101至103一一对应,在此不再赘述。
步骤304,将处理后的报文占用的内存空间的地址添加至预设队列。
步骤305,收包线程再次接收报文之后,在预设队列中获取用于存储报文的内存空间的地址。
具体地说,在报文被收包线程接收时,收包线程为这一接收的报文分配一个内存空间用于存储报文,这一内存空间与存储的报文共同入队至第一报文队列,并进入处理线程对报文进行处理,在报文处理之后,同样利用这一内存空间进行存储,并入队对应的第二报文队列,直至处理后的报文通过发包线程获取并转发之后,这一内存空间方处于闲置状态,可为其他报文提供存储空间。在处理后的报文通过发包线程转发之后,将该报文对应的待回收内存空间添加至预设队列,预设队列的建立如图2所示的回收队列,预设队列(回收队列)建立在发包线程与收包线程之间,预设队列中存储上述待回收内存空间的地址和大小组成的数据结构体,实现预设队列中内存空间的添加,在收包线程再次接收报文之后,优先在预设队列中获取数据结构体,根据获取的数据结构体调用相应的内存空间的地址和大小,并将接受的报文存储至内存空间。若预设队列中并不存在内存空间,则申请新的内存空间存储报文。这样做可以减少收包线程申请内存操作,提高收包线程的接收报文的效率。
在实际应用中,可以将上述说明中的收包线程,多个处理线程以及发包线程作为一组工作线程进行绑定,再将多组工作线程对外提供服务,其中,同一用户的流量均被一组工作线程接收,不会存在同一用户的流量被多组工作线程接收的请况。如图4所示,工作线程组0用于处理用户A和用户B的流量,若接收到用户A或用户B的报文,则通过工作线程组0对报文进行处理并转发;同理工作线程组1可以接收用户C和用户D的流量,通过工作线程组1对用户C和用户D的报文进行处理并转发,从而提高多用户虚拟专用网络(VPN)流量的并行处理能力,提高系统处理带宽,且用户A和用户B的流量只会被工作线程组0所接收,而不会被工作线程组1所接收,保证了用户流量在多组工作线程中不会出现乱序的问题。另外,上述说明中的第一报文队列、第二报文队列以及预设队列(回收队列)均可以为无锁队列,通过独立无锁队列进行报文传递,可以进一步提高工作线程组内的报文传递效率。
在本实施例中,在发包线程以预设顺序依次从多个处理线程分别对应的预设第二报文队列中获取处理后的报文之后,将处理后的报文占用的内存空间添加至预设队列;收包线程再次接收报文之后,在预设队列中获取用于存储报文的内存空间,从而减少收包线程申请内存操作,提高收包线程的接收报文的效率。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第三实施例涉及一种报文处理单元,如图5所示,包括:接收模块51,分发模块52,多个处理模块53,获取模块54;接收模块51用于接收报文;分发模块52用于以预设顺序依次向多个处理模块53分发报文;多个处理模块53用于在接收到报文后,对接收的报文进行并行处理;获取模块54用于以预设顺序依次从多个处理模块53中获取处理后的报文。
不难发现,本实施例为与第一实施例相对应的系统实施例,本实施例可与第一实施例互相配合实施。第一实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例中。
另外还包括,多个第一存储模块和多个第二存储模块;分发模块52用于以预设顺序依次向所述多个处理模块分别对应的第一存储模块分发报文;多个处理模块53用于分别从对应的第一存储模块中获取报文并进行并行处理,将处理后的报文分别存储于对应的第二存储模块;获取模块54用于以预设顺序依次从多个处理模块分别对应的第二存储模块中获取处理后的报文。
另外,分发模块52具体用于在判定待分发的第一存储模块中的报文数量未达到存储的最大数量之后,以预设顺序依次向所述多个处理模块分别对应的第一存储模块分发报文。
另外,还包括,第三存储模块;第三存储模块用于在处理后的报文被转发之后,存储处理后的报文占用的内存空间,并在接收到申请请求时,为分发模块52提供内存空间用于存储报文。
另外,获取模块54还用于判断处理后的报文是否为异常报文;在处理后的报文不是异常报文时,将处理后的报文转发;在处理后的报文为异常报文时,将处理后的报文丢弃。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本发明第四实施例涉及一种虚拟专用网络服务器,包括多个上述报文处理单元。
本发明第五实施例涉及一种虚拟专用网络服务器,如图6所示,包括至少一个处理器601;以及,与至少一个处理器601通信连接的存储器602;其中,存储器602存储有可被至少一个处理器601执行的指令,指令被至少一个处理器601执行,以使至少一个处理器601能够执行上述报文处理方法。
其中,存储器602和处理器601采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器601和存储器602的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器601。
处理器601负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器602可以被用于存储处理器601在执行操作时所使用的数据。
本发明第六实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (11)
1.一种报文处理方法,其特征在于,应用于虚拟专用网络服务器,所述服务器包括收包线程,多个处理线程和发包线程,所述方法包括:
所述收包线程接收报文,并以预设顺序依次向所述多个处理线程分发报文;
所述多个处理线程在接收到报文后,对所述接收的报文进行并行处理;
所述发包线程以所述预设顺序依次从所述多个处理线程中获取处理后的报文。
2.根据权利要求1所述的报文处理方法,其特征在于,所述以预设顺序依次向所述多个处理线程分发报文,包括:
所述收包线程以预设顺序依次向所述多个处理线程分别对应的预设第一报文队列分发报文;
所述多个处理线程在接收到报文后,对所述接收的报文进行并行处理,包括:
所述多个处理线程分别从对应的预设第一报文队列中获取报文并进行并行处理,将处理后的报文分别存储于对应的预设第二报文队列;
所述发包线程以所述预设顺序依次从所述多个处理线程中获取处理后的报文,包括:
所述发包线程以所述预设顺序依次从所述多个处理线程分别对应的预设第二报文队列中获取处理后的报文。
3.根据权利要求2所述的报文处理方法,其特征在于,在所述收包线程以预设顺序依次向所述多个处理线程分别对应的预设第一报文队列分发报文之前,还包括:
确定待分发的预设第一报文队列中的报文数量未达到所述预设第一报文队列存储的最大数量。
4.根据权利要求2所述的报文处理方法,其特征在于,在所述发包线程以所述预设顺序依次从所述多个处理线程分别对应的预设第二报文队列中获取处理后的报文之后,还包括:
将所述处理后的报文占用的内存空间的地址添加至预设队列;
所述收包线程再次接收报文之后,在所述预设队列中获取用于存储所述报文的内存空间的地址。
5.根据权利要求2至4中任一项所述的报文处理方法,其特征在于,所述预设第一报文队列和所述预设第二报文队列均为无锁队列。
6.根据权利要求1所述的报文处理方法,其特征在于,在所述发包线程以所述预设顺序依次从所述多个处理线程中获取处理后的报文之后,还包括:
判断所述处理后的报文是否为异常报文;
在所述处理后的报文不是异常报文时,将所述处理后的报文转发;
在所述处理后的报文为异常报文时,将所述处理后的报文丢弃。
7.根据权利要求1所述的报文处理方法,其特征在于,包括:
将所述收包线程,多个处理线程和发包线程作为一组工作线程进行绑定,并将所述工作线程与用户通道进行绑定;
在所述收包线程接收报文之前,还包括:
确定报文对应的用户通道,并根据所述确定的用户通道确定与所述用户通道绑定的工作线程;
所述收包线程接收报文,替换为:
与所述报文对应的用户通道进行绑定的工作线程中的收包线程接收所述报文。
8.一种报文处理单元,其特征在于,包括:接收模块,分发模块,多个处理模块,获取模块;
所述接收模块用于接收报文;
所述分发模块用于以预设顺序依次向多个处理模块分发报文;
所述多个处理模块用于在接收到报文后,对接收的报文进行并行处理;
所述获取模块用于以所述预设顺序依次从所述多个处理模块中获取处理后的报文。
9.一种虚拟专用网络服务器,其特征在于,包括:多个如权利要求8所述的报文处理单元。
10.一种虚拟专用网络服务器,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一所述的报文处理方法。
11.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的报文处理方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911315330.9A CN113014528B (zh) | 2019-12-19 | 2019-12-19 | 报文处理方法、处理单元及虚拟专用网络服务器 |
PCT/CN2020/074953 WO2021120374A1 (zh) | 2019-12-19 | 2020-02-12 | 报文处理方法、处理单元及虚拟专用网络服务器 |
EP20829297.9A EP3860062A4 (en) | 2019-12-19 | 2020-02-12 | DATA PROCESSING METHOD, PROCESSING UNIT AND VPN SERVER |
US17/153,814 US20210306302A1 (en) | 2019-12-19 | 2021-01-20 | Datagram processing method, processing unit and vpn server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911315330.9A CN113014528B (zh) | 2019-12-19 | 2019-12-19 | 报文处理方法、处理单元及虚拟专用网络服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113014528A true CN113014528A (zh) | 2021-06-22 |
CN113014528B CN113014528B (zh) | 2022-12-09 |
Family
ID=74859164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911315330.9A Active CN113014528B (zh) | 2019-12-19 | 2019-12-19 | 报文处理方法、处理单元及虚拟专用网络服务器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210306302A1 (zh) |
EP (1) | EP3860062A4 (zh) |
CN (1) | CN113014528B (zh) |
WO (1) | WO2021120374A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114189462A (zh) * | 2021-12-08 | 2022-03-15 | 北京天融信网络安全技术有限公司 | 一种流量采集方法、装置、电子设备及存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641614A (zh) * | 2021-07-07 | 2021-11-12 | 北京智芯微电子科技有限公司 | 基于spi的单通道多业务并行处理方法及芯片 |
CN113676421B (zh) * | 2021-10-25 | 2022-01-28 | 之江实验室 | 一种基于PCIe的多端口网络报文收发方法 |
CN114338830B (zh) * | 2022-01-05 | 2024-02-27 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、计算机可读存储介质及计算机设备 |
CN114448573B (zh) * | 2022-03-02 | 2024-02-23 | 新华三半导体技术有限公司 | 一种报文处理方法及装置 |
CN114900805A (zh) * | 2022-05-07 | 2022-08-12 | 武汉星辰北斗科技有限公司 | 一种高并发北斗三号短报文收发方法、系统和装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842781A (zh) * | 2003-07-25 | 2006-10-04 | 拉莎微电子有限公司 | 高级处理器 |
CN102075427A (zh) * | 2011-01-18 | 2011-05-25 | 中兴通讯股份有限公司 | 基于安全联盟的IPSec报文处理方法及装置 |
WO2011120467A2 (zh) * | 2011-05-09 | 2011-10-06 | 华为技术有限公司 | 报文保序处理方法、保序协处理器和网络设备 |
CN102780625A (zh) * | 2012-07-30 | 2012-11-14 | 成都卫士通信息产业股份有限公司 | 一种实现ipsec vpn加解密处理的方法及装置 |
CN102789394A (zh) * | 2011-05-19 | 2012-11-21 | 阿里巴巴集团控股有限公司 | 一种并行处理消息的方法、装置、节点及服务器集群 |
WO2016131299A1 (zh) * | 2015-07-13 | 2016-08-25 | 中兴通讯股份有限公司 | 一种设备内部处理器网口收包方法及装置 |
CN106899516A (zh) * | 2017-02-28 | 2017-06-27 | 华为技术有限公司 | 一种队列清空方法以及相关设备 |
US20190109791A1 (en) * | 2014-12-22 | 2019-04-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Adaptive load balancing in packet processing |
CN109688069A (zh) * | 2018-12-29 | 2019-04-26 | 杭州迪普科技股份有限公司 | 一种处理网络流量的方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3231571B2 (ja) * | 1994-12-20 | 2001-11-26 | 日本電気株式会社 | 順序付きマルチスレッド実行方法とその実行装置 |
US7415540B2 (en) * | 2002-12-31 | 2008-08-19 | Intel Corporation | Scheduling processing threads |
US8170042B2 (en) * | 2007-11-27 | 2012-05-01 | Cisco Technology, Inc. | Transmit-side scaler and method for processing outgoing information packets using thread-based queues |
CN103336684B (zh) * | 2013-07-18 | 2016-08-10 | 上海寰创通信科技股份有限公司 | 一种并发处理ap消息的ac及其处理方法 |
CN108647104B (zh) * | 2018-05-15 | 2022-05-31 | 北京五八信息技术有限公司 | 请求处理方法、服务器及计算机可读存储介质 |
-
2019
- 2019-12-19 CN CN201911315330.9A patent/CN113014528B/zh active Active
-
2020
- 2020-02-12 WO PCT/CN2020/074953 patent/WO2021120374A1/zh unknown
- 2020-02-12 EP EP20829297.9A patent/EP3860062A4/en not_active Withdrawn
-
2021
- 2021-01-20 US US17/153,814 patent/US20210306302A1/en not_active Abandoned
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842781A (zh) * | 2003-07-25 | 2006-10-04 | 拉莎微电子有限公司 | 高级处理器 |
CN102075427A (zh) * | 2011-01-18 | 2011-05-25 | 中兴通讯股份有限公司 | 基于安全联盟的IPSec报文处理方法及装置 |
WO2011120467A2 (zh) * | 2011-05-09 | 2011-10-06 | 华为技术有限公司 | 报文保序处理方法、保序协处理器和网络设备 |
CN102789394A (zh) * | 2011-05-19 | 2012-11-21 | 阿里巴巴集团控股有限公司 | 一种并行处理消息的方法、装置、节点及服务器集群 |
CN102780625A (zh) * | 2012-07-30 | 2012-11-14 | 成都卫士通信息产业股份有限公司 | 一种实现ipsec vpn加解密处理的方法及装置 |
US20190109791A1 (en) * | 2014-12-22 | 2019-04-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Adaptive load balancing in packet processing |
WO2016131299A1 (zh) * | 2015-07-13 | 2016-08-25 | 中兴通讯股份有限公司 | 一种设备内部处理器网口收包方法及装置 |
CN106899516A (zh) * | 2017-02-28 | 2017-06-27 | 华为技术有限公司 | 一种队列清空方法以及相关设备 |
CN109688069A (zh) * | 2018-12-29 | 2019-04-26 | 杭州迪普科技股份有限公司 | 一种处理网络流量的方法、装置、设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114189462A (zh) * | 2021-12-08 | 2022-03-15 | 北京天融信网络安全技术有限公司 | 一种流量采集方法、装置、电子设备及存储介质 |
CN114189462B (zh) * | 2021-12-08 | 2024-01-23 | 北京天融信网络安全技术有限公司 | 一种流量采集方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20210306302A1 (en) | 2021-09-30 |
WO2021120374A1 (zh) | 2021-06-24 |
EP3860062A1 (en) | 2021-08-04 |
CN113014528B (zh) | 2022-12-09 |
EP3860062A4 (en) | 2021-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113014528B (zh) | 报文处理方法、处理单元及虚拟专用网络服务器 | |
CN108289065B (zh) | 数据处理方法、装置和系统 | |
EP3499949B1 (en) | Method, device and system for processing control signalling | |
US20190312938A1 (en) | Data Transmission Method And Apparatus | |
US8953631B2 (en) | Interruption, at least in part, of frame transmission | |
CN110808948B (zh) | 远程过程调用方法、装置及系统 | |
US8539089B2 (en) | System and method for vertical perimeter protection | |
US10536321B2 (en) | Message attack defense method and apparatus | |
EP3726787A1 (en) | Data stream sending method, device and system | |
CN111211933B (zh) | 一种确定传输链路的质量的方法及装置 | |
EP3589043A1 (en) | Data transmission method, terminal device and network device | |
CN104022961A (zh) | 一种数据传输方法、装置及系统 | |
US20230101531A1 (en) | Uplink medium access control token scheduling for multiple-carrier packet data transmission | |
CN111404986A (zh) | 数据传输处理方法、设备和存储介质 | |
WO2012094901A1 (zh) | 超长短信发送/接收方法、装置及系统 | |
CN113141390B (zh) | Netconf通道管理方法及装置 | |
CN109462591B (zh) | 一种数据传输方法、接收方法、装置及系统 | |
CN114765874A (zh) | 一种上行信道处理方法及装置 | |
CN113904976A (zh) | 基于rdma用于有损网络的多路径数据传输方法和装置 | |
CN109257227B (zh) | 数据传输中的偶联管理方法、装置及系统 | |
CN110536476B (zh) | Drb建立方法、装置、系统、辅节点及主节点 | |
CN113301104B (zh) | 数据处理系统及方法 | |
CN110868306B (zh) | 信息处理方法、装置、终端设备、服务器及存储介质 | |
EP4243383A1 (en) | Message transmission method and system, and network device and storage medium | |
CN107211405B (zh) | 一种数据传输方法及装置 |
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 |