CN105991755B - 业务报文分发方法及装置 - Google Patents
业务报文分发方法及装置 Download PDFInfo
- Publication number
- CN105991755B CN105991755B CN201510264416.9A CN201510264416A CN105991755B CN 105991755 B CN105991755 B CN 105991755B CN 201510264416 A CN201510264416 A CN 201510264416A CN 105991755 B CN105991755 B CN 105991755B
- Authority
- CN
- China
- Prior art keywords
- service message
- socket
- process group
- user space
- message
- 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
Classifications
-
- 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/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种业务报文分发方法及装置,该方法包括:通过内核态接收业务报文;根据所述业务报文的报文特征确定发送所述业务报文的套接字Socket;通过所述Socket将所述业务报文发送给对应的用户态进程。本申请通过在内核态中直接将业务报文分发到对应的用户态进程中进行处理,提高了网络设备的业务处理效率。
Description
技术领域
本申请涉及网络通信技术领域,尤其涉及业务报文分发方法及装置。
背景技术
目前,有越来越多的网络设备采用多CPU(Central Processing Unit,中央处理器)多进程的方式提高网络设备的业务处理能力。网络设备通过Socket(套接字)在操作系统的用户态接收其它网络设备发送的业务报文,当多个进程同时监听同一个端口时,由于端口冲突导致操作系统无法获知哪个进程的Socket获取了该业务报文,进而无法确定业务报文在哪个进程中处理。
现有技术方案中,采用一个主进程对应多个子进程的方式,由主进程负责接收业务报文,然后根据预设的分发算法将该业务报文分发给各个子进程处理,子进程处理完后再将需要发送的报文通过主进程发送出去。该处理方式增加了主进程与子进程之间的通信数据量,且所有的报文都通过主进程收发存在瓶颈,影响网络设备的工作效率。
发明内容
有鉴于此,本申请提供了一种业务报文分发方法,该方法包括:
通过内核态接收业务报文;
根据所述业务报文的报文特征确定发送所述业务报文的套接字Socket;
通过所述Socket将所述业务报文发送给对应的用户态进程。
本申请还提供了一种业务报文分发装置,该装置包括:
接收单元,用于通过内核态接收业务报文;
确定单元,用于根据所述业务报文的报文特征确定发送所述业务报文的套接字Socket;
发送单元,用于通过所述Socket将所述业务报文发送给对应的用户态进程。
本申请在内核态接收业务报文,并根据该业务报文的报文特征确定发送该业务报文的Socket,通过该Socket将业务报文发送给与该Socket绑定的用户态进程。可见,本申请在内核态中直接实现了对业务报文的分发,每个业务报文直接送入对应的用户态进程中处理,提高了网络设备的业务处理效率。
附图说明
图1是本申请一种实施例中业务报文分发方法的处理流程图;
图2是本申请一种实施例中IKE协商系统示意图;
图3是本申请一种实施例中用户态与内核态之间业务报文分发示意图;
图4是本申请一种实施例中业务报文分发装置的基础硬件示意图;
图5是本申请一种实施例中业务报文分发装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案及优点更加清楚明白,以下参照附图对本申请所述方案作进一步地详细说明。
目前,有越来越多的网络设备采用多CPU多进程的方式提高网络设备的业务处理能力。网络设备通过Socket在操作系统的用户态接收其它网络设备发送的业务报文,以UDP(User Datagram Protocol,用户数据包协议)协议传输的业务报文为例,网络设备在操作系统的用户态通过UDP Socket接收业务报文,当多个用户态进程的UDP Socket同时监听同一目的端口时,由于目的端口冲突导致操作系统无法获知哪个用户态进程的UDP Socket获取了该业务报文,因此,无法确定业务报文在哪个用户态进程中处理。
现有技术方案中,采用一个主进程对应多个子进程的方式,由主进程负责接收业务报文,然后根据预设的分发算法将该业务报文分发给各个子进程处理,子进程处理完后再将需要发送的报文通过主进程发送出去。该处理方式增加了主进程与子进程之间的通信数据量,且所有的业务报文都通过主进程收发存在瓶颈,影响网络设备的工作效率。
针对上述问题,本申请实施例提出一种业务报文分发方法,该方法在内核态接收业务报文,并根据该业务报文的报文特征确定发送该业务报文的Socket,通过该Socket将业务报文发送给与该Socket绑定的用户态进程。
参见图1,为本申请业务报文分发方法的一个实施例流程图,该实施例对业务报文分发的处理过程进行描述。
步骤110,通过内核态接收业务报文。
网络设备在接收业务报文之前,首先根据实际的业务需求在用户态创建若干用户态进程,为每一个用户态进程创建对应的进程组,例如,进程1对应进程组1,进程2对应进程组2,以此类推。同时,为每一个用户态进程创建对应的Socket,例如,进程1对应Socket1,进程2对应Socket2,以此类推。上述为进程创建的Socket为用户态与内核态之间的通信接口,例如:Linux系统中的Netlink Socket就是一种用户态与内核态之间双向传输数据的通信接口。建立每一个用户态进程的Socket与进程组的绑定关系,例如,进程1的Socket1与进程组1绑定,进程2的Socket2与进程组2绑定,以此类推。
网络设备接收业务报文后,通过协议栈送到内核态,执行后续步骤。
步骤120,根据所述业务报文的报文特征确定发送所述业务报文的套接字Socket。
内核态接收业务报文后,获取业务报文的报文特征,例如,该业务报文的源IP地址,再获取已创建的进程组的数量,通过业务报文的源IP地址对进程组的数量进行取模,根据取模结果确定处理该业务报文的进程组的进程组标识。根据获得的进程组标识查询步骤110中建立的Socket与进程组的绑定关系,找到发送该业务报文的Socket。
步骤130,通过所述Socket将所述业务报文发送给对应的用户态进程。
现以IKE(Internet Key Exchange Protocol,因特网密钥交换协议)协商为例,详细介绍业务报文分发的处理过程。
参见图2为本申请IKE协商系统示意图。假设某企业员工分别通过远程主机PC1~PCn访问企业内部服务器,在企业入口处有一台网关GW,用户主机首先与该企业网关建立IKE协商,以实现通过专用的VPN(Virtual Private Network,虚拟专用网)通道访问内部服务器,保证业务安全。
参见图3,假设,GW内有3个CPU,在每一个CPU内为IKE协商创建一个用户态进程,分别为进程1、进程2以及进程3;为每一个用户态进程创建对应的进程组,分别为进程组1、进程组2以及进程组3;并为每一个用户态进程创建对应的Netlink Socket,分别为Socket1、Socket2以及Socket3;建立Netlink Socket与进程组的绑定关系,Socket1与进程组1绑定,Socket2与进程组2绑定,Socket3与进程组3绑定。
假设,GW接收到PC1发送的IKE协商报文,该报文首先到达GW的内核态,在内核态中对该IKE协商报文进行分组,具体过程为:首先,获取PC1的IP地址(假设为1.1.1.1),通过该IP地址除以创建的进程组数量3,计算得到的余数为1,则找到进程组1,通过与进程组1绑定的Socket1将PC1发送的IKE协商报文发送给进程1处理。
同理,假设PC2的IP地址为1.1.1.2,则计算的余数为2,通过与进程组2绑定的Socket2将PC2发送的IKE协商报文发送给进程2处理,以此类推,将所有用户发送的IKE协商报文分发到不同的用户态进程中处理。
与前述业务报文分发方法的实施例相对应,本申请还提供业务报文分发装置的实施例。
本申请业务报文分发装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的CPU运行存储器中对应的计算机程序指令形成的。从硬件层面而言,如图4所示,为本申请业务报文分发装置所在设备的一种硬件结构图,除了图4所示的CPU、存储器之外,实施例中装置所在的设备通常还可以包括其他硬件。
请参考图5,为本申请一个实施例中的业务报文分发装置的结构示意图。该业务报文分发装置包括接收单元501、确定单元502以及发送单元503,其中:
接收单元501,用于通过内核态接收业务报文;
确定单元502,用于根据所述业务报文的报文特征确定发送所述业务报文的套接字Socket;
发送单元503,用于通过所述Socket将所述业务报文发送给对应的用户态进程。
进一步地,所述业务报文分发装置还包括:
创建单元,用于在所述接收单元501通过内核态接收业务报文之前,在用户态创建若干用户态进程;为每一个用户态进程创建对应的进程组以及Socket;建立所述每一个用户态进程的Socket与进程组的绑定关系;
所述确定单元502,包括:
标识获取模块,用于根据所述业务报文的报文特征获取处理所述业务报文的进程组的进程组标识;
Socket确定模块,用于根据所述进程组标识查询所述Socket与进程组的绑定关系,确定发送所述业务报文的Socket。
进一步地,
所述标识获取模块,具体用于获取所述业务报文的源IP地址;获取已创建的进程组的数量;根据所述源IP地址和所述进程组的数量计算处理所述业务报文的进程组的进程组标识。
进一步地,
所述Socket为Netlink Socket。
上述图5示出的业务报文分发装置的实施例,其具体实现过程可参见前述方法实施例的说明,在此不再赘述。
从以上方法和装置的实施例中可以看出,本申请在内核态接收业务报文,并根据该业务报文的报文特征确定发送该业务报文的Socket,通过该Socket将业务报文发送给与该Socket绑定的用户态进程。可见,本申请在内核态中直接实现了对业务报文的分发,每个业务报文直接送入对应的用户态进程中处理,提高了网络设备的业务处理效率。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (6)
1.一种业务报文分发方法,其特征在于,该方法包括:
在用户态创建若干用户态进程;
为每一个用户态进程创建对应的进程组以及Socket;
建立所述每一个用户态进程的Socket与进程组的绑定关系;
通过内核态接收业务报文;
根据所述业务报文的报文特征获取处理所述业务报文的进程组的进程组标识,根据所述进程组标识查询所述Socket与进程组的绑定关系,确定发送所述业务报文的套接字Socket;
通过所述Socket将所述业务报文发送给对应的用户态进程。
2.如权利要求1所述的方法,其特征在于,所述根据所述业务报文的报文特征获取处理所述业务报文的进程组的进程组标识,包括:
获取所述业务报文的源IP地址;
获取已创建的进程组的数量;
根据所述源IP地址和所述进程组的数量计算处理所述业务报文的进程组的进程组标识。
3.如权利要求1至2任一所述的方法,其特征在于:
所述Socket为Netlink Socket。
4.一种业务报文分发装置,其特征在于,该装置包括:
接收单元,用于通过内核态接收业务报文;
创建单元,用于在所述接收单元通过内核态接收业务报文之前,在用户态创建若干用户态进程;为每一个用户态进程创建对应的进程组以及Socket;建立所述每一个用户态进程的Socket与进程组的绑定关系;
确定单元,用于根据所述业务报文的报文特征确定发送所述业务报文的套接字Socket,所述确定单元,包括:标识获取模块,用于根据所述业务报文的报文特征获取处理所述业务报文的进程组的进程组标识;Socket确定模块,用于根据所述进程组标识查询所述Socket与进程组的绑定关系,确定发送所述业务报文的Socket;
发送单元,用于通过所述Socket将所述业务报文发送给对应的用户态进程。
5.如权利要求4所述的装置,其特征在于:
所述标识获取模块,具体用于获取所述业务报文的源IP地址;获取已创建的进程组的数量;根据所述源IP地址和所述进程组的数量计算处理所述业务报文的进程组的进程组标识。
6.如权利要求4至5任一所述的装置,其特征在于:
所述Socket为Netlink Socket。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510264416.9A CN105991755B (zh) | 2015-05-21 | 2015-05-21 | 业务报文分发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510264416.9A CN105991755B (zh) | 2015-05-21 | 2015-05-21 | 业务报文分发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105991755A CN105991755A (zh) | 2016-10-05 |
CN105991755B true CN105991755B (zh) | 2019-03-15 |
Family
ID=57040409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510264416.9A Active CN105991755B (zh) | 2015-05-21 | 2015-05-21 | 业务报文分发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105991755B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108880885B (zh) * | 2018-06-19 | 2021-09-21 | 杭州迪普科技股份有限公司 | 一种报文处理方法及装置 |
CN111835613B (zh) * | 2019-04-23 | 2022-07-08 | 厦门网宿有限公司 | 一种vpn服务器的数据传输方法及vpn服务器 |
CN110069346B (zh) * | 2019-04-26 | 2021-07-23 | 杭州迪普科技股份有限公司 | 多进程间资源共享方法、装置、电子设备 |
CN111800401B (zh) * | 2020-06-28 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 业务报文的防护方法、装置、系统和计算机设备 |
CN115460470B (zh) * | 2022-08-19 | 2024-03-26 | 烽火通信科技股份有限公司 | 组播数据转发方法、装置、设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436989A (zh) * | 2008-12-26 | 2009-05-20 | 福建星网锐捷网络有限公司 | 一种转发报文的方法及装置 |
CN101442547A (zh) * | 2008-12-12 | 2009-05-27 | 华为技术有限公司 | 一种报文处理方法、系统及设备 |
CN102148757A (zh) * | 2011-01-31 | 2011-08-10 | 中兴通讯股份有限公司 | 一种多核系统报文分发方法及装置 |
CN103441952A (zh) * | 2013-08-20 | 2013-12-11 | 西安电子科技大学 | 基于多核或众核嵌入式处理器的网络数据包处理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8190884B2 (en) * | 2007-02-26 | 2012-05-29 | Picup, Llc | Network identity management system and method |
US20140108631A1 (en) * | 2012-10-12 | 2014-04-17 | Stephen Whitney | Service location protocol based dynamic analytics network method and apparatus |
-
2015
- 2015-05-21 CN CN201510264416.9A patent/CN105991755B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101442547A (zh) * | 2008-12-12 | 2009-05-27 | 华为技术有限公司 | 一种报文处理方法、系统及设备 |
CN101436989A (zh) * | 2008-12-26 | 2009-05-20 | 福建星网锐捷网络有限公司 | 一种转发报文的方法及装置 |
CN102148757A (zh) * | 2011-01-31 | 2011-08-10 | 中兴通讯股份有限公司 | 一种多核系统报文分发方法及装置 |
CN103441952A (zh) * | 2013-08-20 | 2013-12-11 | 西安电子科技大学 | 基于多核或众核嵌入式处理器的网络数据包处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105991755A (zh) | 2016-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105991755B (zh) | 业务报文分发方法及装置 | |
CN107872542B (zh) | 一种数据传输的方法及网络设备 | |
US9467326B2 (en) | Rate limiting mechanism based on device load/capacity or traffic content | |
US9460289B2 (en) | Securing a virtual environment | |
JP2018139448A5 (zh) | ||
JP6395867B2 (ja) | OpenFlow通信方法及びシステム、制御部、並びにサービスゲートウェイ | |
US9948568B2 (en) | Packet size control using maximum transmission units for facilitating packet transmission | |
US9917926B2 (en) | Communication method and communication system | |
CN110474922B (zh) | 一种通信方法、pc系统及接入控制路由器 | |
CN110784489B (zh) | 安全通信系统及其方法 | |
CN107659930A (zh) | 一种ap接入控制方法和装置 | |
US9015438B2 (en) | System and method for achieving enhanced performance with multiple networking central processing unit (CPU) cores | |
CN112968919A (zh) | 一种数据处理方法、装置、设备和存储介质 | |
CN114666186A (zh) | Ssl vpn资源访问方法及装置 | |
CN104506437B (zh) | 一种表项建立方法及装置 | |
CN105991442B (zh) | 报文转发方法及装置 | |
TWI735633B (zh) | 資料傳輸的方法、設備、裝置及系統 | |
CN107409047A (zh) | 加密会话的协调分组递送 | |
CN104184729A (zh) | 一种报文处理方法和装置 | |
Chen et al. | FogROS2-SGC: A ROS2 Cloud Robotics Platform for Secure Global Connectivity | |
CN100479457C (zh) | 一种实现虚拟私有网络中数据传输的方法 | |
CN107547621A (zh) | 一种报文转发方法及装置 | |
CN107547680A (zh) | 一种数据处理方法及装置 | |
KR101971995B1 (ko) | 보안을 위한 보안 소켓 계층 복호화 방법 | |
CN112994928B (zh) | 一种虚拟机的管理方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building Applicant after: Hangzhou Dipu Polytron Technologies Inc Address before: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building Applicant before: Hangzhou Dipu Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |