买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:南京中科上元科技有限公司
摘要:本发明公开了一种基于嵌入式平台服务端的并发处理方法,包括,调用Linux系统APIsocket创建套接字、APIbind绑定服务端口号、APIaccept接收请求、APIfork创建子进程处理所述请求;在fork中的子进程中运行重定向处理程序,同时运行若干个fork子进程,实现并发处理;所述fork中的子进程运行完成定向处理程序后,释放子进程,完成一次完整的请求处理流程。本发明预置子服务进程,避免程序运行状态下频繁的内存拷贝、进程申请、释放等操作;代码逻辑简单,不存在线程管理、事件调用等额外的代码,能够兼容原始服务,扩展的子服务和原始服务并存,并且相互独立,即使扩展服务故障,原始服务还能正常运行。
主权项:1.一种提升嵌入式平台Socket服务端稳定性和并发处理能力的方法,其特征在于:包括,调用Linux系统APIsocket创建套接字、APIbind绑定服务端口号、APIaccept接收请求、APIfork创建子进程处理所述请求;在fork中的子进程中运行重定向处理程序,同时运行若干个fork子进程,实现并发处理;所述fork中的子进程运行完成定向处理程序后,释放子进程,完成一次完整的请求处理流程;具体的,步骤如下:(1)增加一个虚拟网卡驱动程序,虚拟网卡ed0;(2)在程序启动时,预置若干子进程,每个子进程都对应一个侦听端口,网卡使用ed0,原始服务还绑定3990端口,网卡使用eth1;(3)设置端口映射模块,利用Netfliter的HooK机制捕获客户端访问请求报文,根据客户端的MAC地址计算扩展服务端口;(4)使用步骤(3)中计算的扩展服务端口替换原始的3990端口号,根据TCPUDP的协议要求修改端口后,计算TCP或者UDP的头部校验值;(5)将步骤(4)中的skb-dev的值由eth1替换成ed0接口,所述Skb在Linux内核代码中代表一个数据包,skb-dev表示所述数据包来自哪个网卡,不替换则应用程序就无法接收到数据包,所述skb重新提交到系统协议栈中,绑定ed0的预置子服务进程接收到所述请求;(6)步骤(5)后预置服务进程就能从ed0上收到客户端的请求报文,业务子程序按照业务处理逻辑响应请求,并将业务逻辑处理模块产生的响应报文通过ed0发送出去;(7)端口映射模块捕获到发送给客户端的响应报文后,将报文中扩展的端口号还原成3990,还原操作方法与步骤(4)相同,只是将映射的扩展服务端口还原成3990,然后调用eth1的发送接口将报文发送给客户端。
全文数据:
权利要求:
百度查询: 南京中科上元科技有限公司 一种提升嵌入式平台Socket服务端稳定性和并发处理能力的方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。