一种高性能的ssl代理装置及其方法_2

文档序号:8415567阅读:来源:国知局
服务器的读写数据操作后返回epoll等待单元。
[0038]一种高性能的SSL代理方法,其作为WEB服务软件应用于服务器。其包括如下步骤:
[0039]用户端连接步骤,接收用户访问并同用户端进行协商,建立用户端SSL连接。
[0040]后台处理步骤,接收用户的资源操作请求并同后台资源服务器进行协商,建立后台资源服务器连接,并根据用户的资源操作请求,进行用户端和后台资源服务器的读写数据操作。
[0041]所述用户端连接步骤和所述后台处理步骤分别位于同一进程的两个线程中。
[0042]所述后台处理步骤中建立和后台资源服务器连接为建立和后台资源服务器SSL连接。
[0043]所述用户端连接步骤和所述后台处理步骤分别采用各自的epoll模型。
[0044]所述印oil模型可以为阻塞的印oil结构或者非阻塞的印oil结构。
[0045]所述用户端连接步骤包括:初始化步骤,进行epoll初始化;套接字返回步骤,在用户访问触发epoll事件时,返回用户套接字;SSL协商步骤,和用户端进行SSL协商,建立SSL连接;线程处理步骤一,将用户的套接字和SSL结构体添加到线程处理块结构体数组中并初始化线程处理块结构体数组中的相关值;监听队列加入步骤一,将用户的套接字加入线程中的印oil事件监听队列。
[0046]所述后台处理步骤包括:epoll等待步骤,在接收到用户的资源操作请求后,线程等待事件的触发;SSL连接步骤,根据与后台资源服务器建立连接的状态值与后台资源服务器协商,建立SSL连接;线程处理步骤二,将与后台资源服务器连接的套接字和SSL结构体加入线程处理块结构体数组中并初始化线程处理块结构体数组中的相关值;监听队列加入步骤二,将后台资源服务器的套接字加入线程中的epoll事件监听队列。
[0047]所述后台处理步骤还包括:操作处理步骤,线程的印oil事件触发后根据用户的资源操作请求,进行用户端和后台资源服务器的读写数据操作。
[0048]所述操作处理步骤完成用户端和后台资源服务器的读写数据操作后返回epoll等待步骤。
[0049]本发明充分利用了 SSL加密卡具有多个加解密处理核心的特点,将与用户端建立SSL连接和与后台资源服务器建立SSL连接并进行用户端和后台资源服务器的数据读写操作放入两个进程或者同一进程的两个线程中。这样大大提高了进行数据的处理性能,并使其能够在高压力工作时更加稳定。
【附图说明】
[0050]图1是现有的WEB服务软件的功能结构图;
[0051]图2是SSL加密卡的结构示意图;
[0052]图3是本发明WEB服务软件的功能结构图;
[0053]图4是本发明高性能的SSL代理装置的结构图;
[0054]图5是本发明高性能的SSL代理方法的流程图。
【具体实施方式】
[0055]以下结合附图对本发明进行详细描述。
[0056]本发明充分利用SSL加密卡的特性,在现有技术的基础上,通过添加线程处理,使新建用户端SSL连接和新建后台资源服务器SSL连接异步化,并针对所述两个SSL连接采用双重印oil模型分别进行处理,大大提高了处理性能。
[0057]参看图3和图4,一种高性能的SSL代理装置,其作为WEB服务软件应用于服务器。服务器的基本硬件架构包括CPU、内存、输入输入设备、非易失性存储器(例如硬盘)以及其他硬件。从逻辑上来看,所述高性能的SSL代理装置包括:
[0058]用户端连接模块,用于接收用户访问并同用户端进行协商,建立用户端SSL连接。
[0059]后台处理模块,用于接收用户的资源操作请求并同后台资源服务器进行协商,建立后台资源服务器连接。并根据用户的资源操作请求,进行用户端和后台资源服务器的读写数据操作。
[0060]所述用户端连接模块和所述后台处理模块分别位于同一进程的两个线程中。
[0061]在本实施例中,由于与后台资源服务器连接也需要SSL保护,所以所述后台处理模块建立和后台资源服务器连接为建立和后台资源服务器SSL连接。
[0062]在本实施例中,SSL代理装置还可以包括初始化装置,用于初始化SSL环境以及套接字。
[0063]在本实施例中,SSL代理装置还可以还包括印oil模型建立装置,利用fork()函数创建至少一个进程,并将listen监听套接字加入所述进程的epoll事件监听队列。
[0064]在本实施例中,所述用户端连接模块和所述后台处理模块分别采用各自的epo 11模型。
[0065]所述印oil模型可以为阻塞的印oil结构或者非阻塞的印oil结构。
[0066]所述用户端连接模块包括:初始化单元,用于进行印oil初始化。套接字返回单元,用于在用户访问触发epoll事件时,返回用户套接字。SSL协商单元,用于和用户端进行SSL协商,建立SSL连接。线程处理单元一,用于将用户的套接字和SSL结构体添加到线程处理块结构体数组中并初始化线程处理块结构体数组中的相关值。监听队列加入单元一,将用户的套接字加入线程中的epoll事件监听队列。
[0067]所述后台处理模块包括:epoll等待单元,用于在接收到用户的资源操作请求后,线程等待事件的触发。SSL连接单元,用于根据与后台资源服务器建立连接的状态值与后台资源服务器协商,建立SSL连接。线程处理单元二,用于将与后台资源服务器连接的套接字和SSL结构体加入线程处理块结构体数组中并初始化线程处理块结构体数组中的相关值。监听队列加入单元二,将后台资源服务器的套接字加入线程中的epoll事件监听队列。
[0068]所述后台处理模块还可以包括:操作处理单元,用于线程的epoll事件触发后根据用户的资源操作请求,进行用户端和后台资源服务器的读写数据操作。
[0069]所述操作处理单元完成用户端和后台资源服务器的读写数据操作后返回epoll等待单元。
[0070]本发明还进一步提供一种高性能的SSL代理方法,其作为WEB服务软件应用于服务器。其包括如下步骤:
[0071]用户端连接步骤,接收用户访问并同用户端进行协商,建立用户端SSL连接。
[0072]后台处理步骤,接收用户的资源操作请求并同后台资源服务器进行协商,建立后台资源服务器连接,并根据用户的资源操作请求,进行用户端和后台资源服务器的读写数据操作。
[0073]所述用户端连接步骤和所述后台处理步骤分别位于同一进程的两个线程中。
[0074]所述后台处理步骤中建立和后台资源服务器连接为建立和后台资源服务器SSL连接。
[0075]所述用户端连接步骤和所述后台处理步骤分别采用各自的印oil模型。
[0076]所述印oil模型可以为阻塞的印oil结构或者非阻塞的印oil结构。
[0077]所述用户端连接步骤包括:初始化步骤,进行epoll初始化;套接字返回步骤,在用户访问触发epoll事件时,返回用户套接字;SSL协商步骤,和用户端进行SSL协商,建立SSL连接;线程处理步骤一,将用户的套接字和SSL结构体添加到线程处理块结构体数组中并初始化线程处理块结构体数组中的相关值;监听队列加入步骤一,将用户的套接字加入线程中的印oil事件监听队列。
[0078]所述后台处理步骤包括:epoll等待步骤,在接收到用户的资源操作请求后,线程等待事件的触发;SSL连接步骤,根据与后台资源服务器建立连接的状态值与后台资源服务器协商,建立SSL连接;线程处理步骤二,将与后台资源服务器连接的套接字和SSL结构体加入线程处理块结构体数组中并初始化线程处理块结构体数组中的相关值;监听队列加入步骤二,将后台资源服务器的套接字加入线程中的epoll
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1