CN105991755A - 业务报文分发方法及装置 - Google Patents

业务报文分发方法及装置 Download PDF

Info

Publication number
CN105991755A
CN105991755A CN201510264416.9A CN201510264416A CN105991755A CN 105991755 A CN105991755 A CN 105991755A CN 201510264416 A CN201510264416 A CN 201510264416A CN 105991755 A CN105991755 A CN 105991755A
Authority
CN
China
Prior art keywords
service message
socket
process group
message
user space
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
Application number
CN201510264416.9A
Other languages
English (en)
Other versions
CN105991755B (zh
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.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies 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 Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN201510264416.9A priority Critical patent/CN105991755B/zh
Publication of CN105991755A publication Critical patent/CN105991755A/zh
Application granted granted Critical
Publication of CN105991755B publication Critical patent/CN105991755B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Network services
    • H04L67/51Discovery 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;建立NetlinkSocket与进程组的绑定关系,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 (8)

1.一种业务报文分发方法,其特征在于,该方法包括:
通过内核态接收业务报文;
根据所述业务报文的报文特征确定发送所述业务报文的套接字Socket;
通过所述Socket将所述业务报文发送给对应的用户态进程。
2.如权利要求1所述的方法,其特征在于,所述通过内核态接收业务报文之前,还包括:
在用户态创建若干用户态进程;
为每一个用户态进程创建对应的进程组以及Socket;
建立所述每一个用户态进程的Socket与进程组的绑定关系;
所述根据所述业务报文的报文特征确定发送所述业务报文的Socket,包括:
根据所述业务报文的报文特征获取处理所述业务报文的进程组的进程组标识;
根据所述进程组标识查询所述Socket与进程组的绑定关系,确定发送所述业务报文的Socket。
3.如权利要求2所述的方法,其特征在于,所述根据所述业务报文的报文特征获取处理所述业务报文的进程组的进程组标识,包括:
获取所述业务报文的源IP地址;
获取已创建的进程组的数量;
根据所述源IP地址和所述进程组的数量计算处理所述业务报文的进程组的进程组标识。
4.如权利要求1至3任一所述的方法,其特征在于:
所述Socket为Netlink Socket。
5.一种业务报文分发装置,其特征在于,该装置包括:
接收单元,用于通过内核态接收业务报文;
确定单元,用于根据所述业务报文的报文特征确定发送所述业务报文的套接字Socket;
发送单元,用于通过所述Socket将所述业务报文发送给对应的用户态进程。
6.如权利要求5所述的装置,其特征在于,所述装置还包括:
创建单元,用于在所述接收单元通过内核态接收业务报文之前,在用户态创建若干用户态进程;为每一个用户态进程创建对应的进程组以及Socket;建立所述每一个用户态进程的Socket与进程组的绑定关系;
所述确定单元,包括:
标识获取模块,用于根据所述业务报文的报文特征获取处理所述业务报文的进程组的进程组标识;
Socket确定模块,用于根据所述进程组标识查询所述Socket与进程组的绑定关系,确定发送所述业务报文的Socket。
7.如权利要求6所述的装置,其特征在于:
所述标识获取模块,具体用于获取所述业务报文的源IP地址;获取已创建的进程组的数量;根据所述源IP地址和所述进程组的数量计算处理所述业务报文的进程组的进程组标识。
8.如权利要求5至7任一所述的装置,其特征在于:
所述Socket为Netlink Socket。
CN201510264416.9A 2015-05-21 2015-05-21 业务报文分发方法及装置 Active CN105991755B (zh)

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 true CN105991755A (zh) 2016-10-05
CN105991755B 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)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108880885A (zh) * 2018-06-19 2018-11-23 杭州迪普科技股份有限公司 一种报文处理方法及装置
CN110069346A (zh) * 2019-04-26 2019-07-30 杭州迪普科技股份有限公司 多进程间资源共享方法、装置、电子设备
CN111800401A (zh) * 2020-06-28 2020-10-20 腾讯科技(深圳)有限公司 业务报文的防护方法、装置、系统和计算机设备
CN111835613A (zh) * 2019-04-23 2020-10-27 厦门网宿有限公司 一种vpn服务器的数据传输方法及vpn服务器
CN115460470A (zh) * 2022-08-19 2022-12-09 武汉烽火技术服务有限公司 组播数据转发方法、装置、设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080209528A1 (en) * 2007-02-26 2008-08-28 Picup, Llc Network identity management system and method
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 西安电子科技大学 基于多核或众核嵌入式处理器的网络数据包处理方法
US20140108631A1 (en) * 2012-10-12 2014-04-17 Stephen Whitney Service location protocol based dynamic analytics network method and apparatus

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080209528A1 (en) * 2007-02-26 2008-08-28 Picup, Llc Network identity management system and method
CN101442547A (zh) * 2008-12-12 2009-05-27 华为技术有限公司 一种报文处理方法、系统及设备
CN101436989A (zh) * 2008-12-26 2009-05-20 福建星网锐捷网络有限公司 一种转发报文的方法及装置
CN102148757A (zh) * 2011-01-31 2011-08-10 中兴通讯股份有限公司 一种多核系统报文分发方法及装置
US20140108631A1 (en) * 2012-10-12 2014-04-17 Stephen Whitney Service location protocol based dynamic analytics network method and apparatus
CN103441952A (zh) * 2013-08-20 2013-12-11 西安电子科技大学 基于多核或众核嵌入式处理器的网络数据包处理方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108880885A (zh) * 2018-06-19 2018-11-23 杭州迪普科技股份有限公司 一种报文处理方法及装置
CN108880885B (zh) * 2018-06-19 2021-09-21 杭州迪普科技股份有限公司 一种报文处理方法及装置
CN111835613A (zh) * 2019-04-23 2020-10-27 厦门网宿有限公司 一种vpn服务器的数据传输方法及vpn服务器
CN110069346A (zh) * 2019-04-26 2019-07-30 杭州迪普科技股份有限公司 多进程间资源共享方法、装置、电子设备
CN110069346B (zh) * 2019-04-26 2021-07-23 杭州迪普科技股份有限公司 多进程间资源共享方法、装置、电子设备
CN111800401A (zh) * 2020-06-28 2020-10-20 腾讯科技(深圳)有限公司 业务报文的防护方法、装置、系统和计算机设备
CN115460470A (zh) * 2022-08-19 2022-12-09 武汉烽火技术服务有限公司 组播数据转发方法、装置、设备及可读存储介质
CN115460470B (zh) * 2022-08-19 2024-03-26 烽火通信科技股份有限公司 组播数据转发方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN105991755B (zh) 2019-03-15

Similar Documents

Publication Publication Date Title
EP3544246B1 (en) Multipath data transmission method and device
CN107872542B (zh) 一种数据传输的方法及网络设备
WO2021135471A1 (zh) 数据传输方法、装置、网卡及存储介质
CN102907049B (zh) 基于虚拟站接口发现和配置协议响应来指定优先级
CN105991755A (zh) 业务报文分发方法及装置
US8509239B2 (en) Method, apparatus and system for processing packets
JP6395867B2 (ja) OpenFlow通信方法及びシステム、制御部、並びにサービスゲートウェイ
CN110324227A (zh) 一种vpn服务器中的数据传输方法及vpn服务器
CN104954155B (zh) 具有多个业务板的网络设备以及多业务板分担方法
CN105491169A (zh) 一种数据代理方法与系统
CN107659930A (zh) 一种ap接入控制方法和装置
CN102369764A (zh) 一种实现最短连接路径的系统和实现最短连接路径的方法
CN104579973A (zh) 一种虚拟集群中的报文转发方法和装置
CN102546429A (zh) 基于dhcp监听的isatap隧道的认证方法和系统
CN102201996A (zh) 网络地址转换环境中报文转发的方法及设备
CN107786536B (zh) 一种tcp反向端口穿透方法及其系统
TWI735633B (zh) 資料傳輸的方法、設備、裝置及系統
US20120300776A1 (en) Method for creating virtual link, communication network element, and ethernet network system
CN105933235A (zh) 数据通信方法及装置
CN107409047A (zh) 加密会话的协调分组递送
Kruse et al. Datagram convergence layers for the delay-and disruption-tolerant networking (DTN) bundle protocol and licklider transmission protocol (LTP)
CN102594882A (zh) 一种基于DHCPv6监听的邻居发现代理方法和系统
CN104506437A (zh) 一种表项建立方法及装置
CN104184729A (zh) 一种报文处理方法和装置
CN100479457C (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

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.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant