买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:海看网络科技(山东)股份有限公司
摘要:本发明的一种基于原始套接字和用户态微栈线程的压力测试方法及装置,属于计算机网络技术领域,方法包括步骤:获取目标压力测试服务端的压力测试参数;构建用户态的微栈线程框架,为每个连接发起请求;设置微栈线程发起连接和响应逻辑节点,生成指定数量的测试节点;根据压测参数向各个测试节点发送压力测试请求,对目标压力测试服务端的各个测试节点进行压力测试;采集各个测试节点的压力测试结果,确定目标压力测试服务端的压力测试结果。本发明不仅采用原始套接字发起连接,极大的节省了压力测试的金钱成本和时间成本;而且通过用户态微栈线程高效利用测试机器的系统资源,降低了压力测试的成本,简化了高性能压力测试的操作步骤。
主权项:1.一种基于原始套接字和用户态微栈线程的压力测试方法,其特征在于,包括如下步骤:步骤S1,获取目标压力测试服务端的压力测试参数,所述压力测试参数包括目标压力测试服务端地址、目标端口号、启动测试节点数量和随机IP范围;步骤S2,构建用户态的微栈线程框架,为每个连接发起请求,所述微栈线程为用户态微栈线程;步骤S3,设置微栈线程发起连接和响应逻辑节点,生成指定数量的测试节点;步骤S4,根据压测参数向各个测试节点发送压力测试请求,对目标压力测试服务端的各个测试节点进行压力测试;步骤S5,采集各个测试节点的压力测试结果,确定目标压力测试服务端的压力测试结果;所述步骤S3,包括如下步骤:步骤S31,构建原始套接字并发起连接,使用socket函数创建原始套接字;步骤S32,定义原始套接字发送函数,接收原始套接字句柄和要发送的数据;步骤S33,定义心跳发送函数,向套接字句柄发送心跳数据,并使用yield函数让出时间片,当时间片回归检查是否已经等待超过60秒,如果不是,继续让出时间片,如果是,重复发送心跳数据包,最后归还CPU占用;步骤S34,发起连接和响应逻辑节点,生成指定数量的测试节点;所述步骤S32,包括如下步骤:向系统申请内存缓冲区,并将要发送的数据按照IP头和TCP头的大小为偏移量赋值到内存缓冲区指定位置;构建原始套接字的IP头与TCP头,分别指向内存缓冲区并计算校验和,所述IP头与TCP头的结构体分别为iphdr和tcphdr,所述IP头的字段saddr为随机的源地址IP;构建伪头部,进行TCP校验和计算,并将校验值填入TCP头的check字段处,所述伪头部的源地址为IP头随机的源地址IP,所述伪头部的结构体为pseudo_header;使用C语言的库函数send_to发送内存缓冲区数据;所述步骤S34,包括如下步骤:创建原始套接字句柄并向目标服务发起连接;构建注册数据包,并将注册数据包发送至目标压力测试服务端;利用微栈线程构建心跳发送节点并运行,生成测试节点;在测试节点构建无限循环以监听原始套接字句柄等待服务端消息,使用yeild函数让出CPU占用,等到下次恢复运行检查是否等到服务端数据,如果等到服务端数据,解析服务端数据并将测试节点IP地址和端口及目标压力测试服务端的IP地址和端口返回给服务端,否则再次让出CPU占用。
全文数据:
权利要求:
百度查询: 海看网络科技(山东)股份有限公司 基于原始套接字和用户态微栈线程的压力测试方法及装置
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。