CN112769638B - 一种基于dpdk技术的提高jain sip服务器性能的方法 - Google Patents
一种基于dpdk技术的提高jain sip服务器性能的方法 Download PDFInfo
- Publication number
- CN112769638B CN112769638B CN202011514485.8A CN202011514485A CN112769638B CN 112769638 B CN112769638 B CN 112769638B CN 202011514485 A CN202011514485 A CN 202011514485A CN 112769638 B CN112769638 B CN 112769638B
- Authority
- CN
- China
- Prior art keywords
- dpdk
- tcp
- jain
- protocol stack
- java
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
Landscapes
- Engineering & Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开一种基于DPDK技术的提高JAIN SIP服务器性能的方法,基于JNI技术编写JAIN SIP和DPDK TCP/IP协议栈间接口,提升JAIN SIP服务器性能。DPDK架构可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。DPDK平台搭载TCP/IP协议栈遵循DPDK编程模式,采用轮询模式,无中断和内核内存拷贝,消息能够很快处理。JAIN SIP通过JNI接口访问DPDK提供的服务,而JAIN SIP之上应用层无需任何变化。本发明提升了JAIN SIP服务器高并发下的处理性能,并保证业务服务可迭代的更新。
Description
技术领域
本发明涉及网络信息技术领域,尤其涉及一种基于DPDK技术的提高JAIN SIP服务器性能的方法。
背景技术
JAIN(Java APIs for Integrated Networks)是一组基于Java平台的综合网络API,由JAIN组织开发的一系列高级智能网Java类库,其中JAIN SIP是其对SIP提供支持的类库。JAIN SIP API是对SIP标准的完整定义,所以任何基于SIP的应用都可将JAIN SIP作为标准接口,在此基础上开发应用实例。如图1所示,JAIN SIP服务器中JAIN SIP使用JavaNet Socket,通过系统内核读写SIP报文,在高并发情况下,系统性能受限于频繁的IO中断、内核态和用户态间内存拷贝等。
发明内容
本发明的目的在于提供一种基于DPDK技术的提高JAIN SIP服务器性能的方法。
本发明采用的技术方案是:
一种基于DPDK技术的提高JAIN SIP服务器性能的方法,其包括以下步骤:
步骤1,封装java.dpdk包,并由java.dpdk包实现java.net包中除native以外的类和方法;
步骤2,使用javah命令生成java.dpdk包中native方法头文件,
步骤3,构建JAIN SIP和DPDK环境搭载TCP/IP协议栈交互;
步骤4,编译DPDK环境搭载的TCP/IP协议栈,获取接口静态库;
步骤5,将以上native方法和DPDK平台搭载TCP/IP协议栈接口静态库链接成dpdk.so动态库供JVM环境使用。
进一步地,作为一种较优实施方式,步骤2中native方法调用DPDK平台搭载TCP/IP协议栈接口。
进一步地,作为一种较优实施方式,JVM环境的JAIN SIP通过JNI接口访问DPDK提供的java.dpdk包服务。
进一步地,作为一种较优实施方式,步骤3中针对native方法中socket对应的方法通过调用DPDK环境搭载的TCP/IP协议栈对应的接口进行交互处理。
本发明采用以上技术方案, JAIN SIP中原来涉及到网络IO部分涉及到java.net包,所有使用java.net的操作需要替换为dpdk网络包java.dpdk。Java.dpdk中封装native方法访问DPDK环境搭载的TCP/IP协议栈。native方法以及DPDK环境搭载的TCP/IP协议栈接口生成动态库dpdk.so供java.dpdk在JVM环境使用。改造后JAIN SIP服务器运行于DPDK架构,无中断以及用户态和核心态间的内存拷贝,高效的处理SIP报文,提升服务器性能。
附图说明
以下结合附图和具体实施方式对本发明做进一步详细说明;
图1为现有技术中JAIN SIP服务器结构图;
图2为本发明基于DPDK技术的提高JAIN SIP服务器的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图对本申请实施例中的技术方案进行清楚、完整地描述。
近年来兴起的DPDK技术,通过环境抽象层的旁路OS运行环境、轮询模式的数据无中断收发、优化内存/缓冲区/队列管理、大页内存等多项技术,实现了SMP环境下的高性能数据包处理能力。DPDK本身没有TCP/IP协议栈,而搭载腾讯公司的F-Stack或DPDK ANS等TCP/IP协议栈后,则可通过该TCP/IP协议栈为Java应用开发JNI接口,从而提高Java应用服务的性能。
如图2所示,鉴于现有JAIN SIP服务器高并发情况下性能不佳问题,本发明提供一种基于DPDK技术的提高JAIN SIP服务器性能的方法, JAIN SIP服务器程序通过JNI访问DPDK TCP/IP协议栈接口提升服务器性能,其包括以下步骤:
步骤1,封装java.dpdk包,并由java.dpdk包实现java.net包中除native以外的类和方法;
步骤2,使用javah命令生成java.dpdk包中native方法头文件,
步骤3,构建JAIN SIP和DPDK环境搭载TCP/IP协议栈交互;主要包含以下native方法。
1) socketCreate是socket创建的native方法,调用DPDK环境搭载的TCP/IP协议栈xx_socket接口创建套接字。
2)socketConnect是socket连接的native方法,调用DPDK环境搭载的TCP/IP协议栈xx_connect接口。
3) socketBind是socket绑定的native方法,调用DPDK环境搭载的TCP/IP协议栈xx_bind接口将套接字绑定到指定的地址和端口上。
4) socketListen是socket监听的native方法,调用DPDK环境搭载的TCP/IP协议栈xx_listen接口完成监听操作。
5)socketAccept是socket的连接接收方法,调用DPDK环境搭载的TCP/IP协议栈xx_accept接口接收套接字连接。
6)socketRead是socket的数据读取方法,调用DPDK环境搭载的TCP/IP协议栈xx_read接口读取套接字环状接收队列中的数据。
7)socketWrite是socket的数据发送方法,调用DPDK环境搭载的TCP/IP协议栈xx_write接口,将要发送数据加入套接字环状发送队列中。
8)socketClose是socket的关闭方法,调用DPDK环境搭载的TCP/IP协议栈xx_close接口,关闭连接,释放资源。
9)socketShutdown是socket的关闭方法,调用DPDK环境搭载的TCP/IP协议栈xx_shutdown接口,禁止接收、禁止发送或禁止收发。
10)socketSetOption是socket的属性设置方法,调用DPDK环境搭载的TCP/IP协议栈xx_setsockopt接口,设置套接字相关属性值。
11)socketGetOption是socket的属性获取方法,调用DPDK环境搭载的TCP/IP协议栈xx_getsockopt接口,获取套接字相关属性值。
步骤4,编译DPDP环境搭载的TCP/IP协议栈,获取接口静态库;
步骤5,将以上native方法和DPDK平台搭载TCP/IP协议栈接口静态库链接成dpdk.so动态库供JVM环境使用。
进一步地,作为一种较优实施方式,步骤2中native方法调用DPDK平台搭载TCP/IP协议栈接口。
进一步地,作为一种较优实施方式,JVM环境的JAIN SIP通过JNI接口访问DPDK提供的java.dpdk包服务。
进一步地,作为一种较优实施方式,步骤3中针对native方法中socket对应的方法通过调用DPDK环境搭载的TCP/IP协议栈对应的接口进行交互处理。
本发明采用以上技术方案,基于JNI技术编写JAIN SIP和DPDK TCP/IP协议栈间接口,提升JAIN SIP服务器性能的方法,具有如下有益效果:1. DPDK架构可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。2. DPDK平台搭载TCP/IP协议栈遵循DPDK编程模式,采用轮询模式,无中断和内核内存拷贝,消息能够很快处理。3. JAIN SIP通过JNI接口访问DPDK提供的服务,而JAIN SIP之上应用层无需任何变化。4. 以上三点提升了JAIN SIP服务器高并发下的处理性能,并保证业务服务可迭代的更新。
显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
Claims (4)
1.一种基于DPDK技术的提高JAIN SIP服务器性能的方法,其特征在于:其包括以下步骤:
步骤1,封装java.dpdk包,并由java.dpdk包实现java.net包中除native以外的类和方法;
步骤2,使用javah命令生成java.dpdk包中native方法头文件,
步骤3,构建JAIN SIP和DPDK环境搭载TCP/IP协议栈交互;
步骤4,编译DPDK环境搭载的TCP/IP协议栈,获取接口静态库;
步骤5,将以上native方法和DPDK平台搭载TCP/IP协议栈接口静态库链接成dpdk.so动态库供JVM环境使用。
2.根据权利要求1所述的一种基于DPDK技术的提高JAIN SIP服务器性能的方法,其特征在于:步骤2中native方法调用DPDK平台搭载TCP/IP协议栈接口。
3.根据权利要求1所述的一种基于DPDK技术的提高JAIN SIP服务器性能的方法,其特征在于:JVM环境的JAIN SIP通过JNI接口访问DPDK提供的java.dpdk包服务。
4.根据权利要求1所述的一种基于DPDK技术的提高JAIN SIP服务器性能的方法,其特征在于:步骤3中针对native方法中socket对应的方法通过调用DPDK环境搭载的TCP/IP协议栈对应的接口进行交互处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011514485.8A CN112769638B (zh) | 2020-12-21 | 2020-12-21 | 一种基于dpdk技术的提高jain sip服务器性能的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011514485.8A CN112769638B (zh) | 2020-12-21 | 2020-12-21 | 一种基于dpdk技术的提高jain sip服务器性能的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112769638A CN112769638A (zh) | 2021-05-07 |
CN112769638B true CN112769638B (zh) | 2022-08-12 |
Family
ID=75695046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011514485.8A Active CN112769638B (zh) | 2020-12-21 | 2020-12-21 | 一种基于dpdk技术的提高jain sip服务器性能的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112769638B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8606901B2 (en) * | 2008-01-30 | 2013-12-10 | At&T Intellectual Property I, L. P. | Facilitating deployment of new application services in a next generation network |
CN110768994B (zh) * | 2019-10-30 | 2022-01-11 | 中电福富信息科技有限公司 | 一种基于dpdk技术的提高sip网关性能的方法 |
CN111526490B (zh) * | 2020-04-13 | 2021-10-19 | 南京中新赛克科技有限责任公司 | 一种基于ims网络的as业务实现系统 |
-
2020
- 2020-12-21 CN CN202011514485.8A patent/CN112769638B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112769638A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108494817B (zh) | 数据传输方法、相关装置及系统 | |
CN106533713B (zh) | 一种应用部署方法及设备 | |
US7818752B2 (en) | Interface for application components | |
CN112714018B (zh) | 基于网关的ElasticSearch搜索服务方法、系统、介质及终端 | |
CN106713469B (zh) | 用于分布式容器的动态加载方法、装置及系统 | |
CN113326155A (zh) | 一种信息处理方法、装置、系统和存储介质 | |
CN114466070A (zh) | 中间件系统、服务请求处理方法、电子设备及存储介质 | |
WO2021189257A1 (zh) | 恶意进程的检测方法、装置、电子设备及存储介质 | |
CN114124929A (zh) | 跨网络的数据处理方法和装置 | |
WO2023116438A1 (zh) | 一种数据访问方法、装置以及设备 | |
CN114024910A (zh) | 一种用于金融交易系统的极低延时可靠通讯系统及方法 | |
CN113626208B (zh) | 一种基于nio异步线程模型的服务器通信方法 | |
WO2017166166A1 (en) | System and method for providing runtime tracing for web-based client accessing transactional middleware platform using extension interface | |
WO2021238259A1 (zh) | 一种数据传输方法、装置、设备及计算机可读存储介质 | |
CN112769638B (zh) | 一种基于dpdk技术的提高jain sip服务器性能的方法 | |
CN114371935A (zh) | 网关处理方法、网关、设备及介质 | |
CN113329042B (zh) | 消息处理方法及系统、车联网系统、服务器、电子设备 | |
WO2024251107A1 (zh) | 容器编排与数据访问方法、电子设备及存储介质 | |
CN116361016B (zh) | 一种网络控制器消息处理方法、系统 | |
WO2021093671A1 (zh) | 任务处理方法、系统、装置、设备及计算机可读存储介质 | |
CN116980475A (zh) | 一种基于binlog与双环形缓冲区的数据推送系统 | |
CN112083914B (zh) | 实现对象模型嵌入式操作系统软总线的方法及系统 | |
CN115378993A (zh) | 支持命名空间感知的服务注册与发现的方法和系统 | |
CN112269941A (zh) | 业务实时推送方法、系统、电子设备及存储介质 | |
CN112165529A (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 |