一种tcp服务装置及方法

文档序号:7721573阅读:142来源:国知局
专利名称:一种tcp服务装置及方法
技术领域
本发明涉及TCP (Transmission Control Protocol,传输控制协议)服务技术,具 体涉及一种TCP服务装置及方法。
背景技术
TCP是一种面向连接的、可靠的、基于字节流的运输层通信协议,在简化的计算机 网络0SI(0pen System Interconnect,开放式系统互联)模型中,它完成第四层即传输层所 指定的功能,UDP(User Datagram Protocol,用户数据报协议)是同一层内另一个重要的传 输协议。 在因特网协议族中,TCP层是位于IP层之上、应用层之下的中间层。不同主机的 应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提 供不可靠的包交换。TCP建立连接之后,通信双方都同时可以进行数据的传输,其次,他是全 双工的;在保证可靠性上,采用超时重传和捎带确认机制。 通常,TCP服务器按处理方式分类,可以划分为重复性服务器和并发服务器。重复 性服务器每次只处理一个客户请求,实现简单但效率较低;并发服务器可同时处理多个客 户请求,高效但实现复杂。 在现有技术中提供一种TCP服务算法,该算法通过预先派生子进程,父进程向子 进程传递套接口描述字的方式实现TCP服务。 在实现本发明的过程中,发明人发现上述方案至少存在以下不足 1.父进程接收到连接请求后产生套接口,通过sendmsg/recvmsg进行套接口传
递,处理效率较低; 2.当子进程已有任务分配,全部为"繁忙"的状态下,不能进行新任务的分配,在类 似web服务器的使用场合,有连接而连接上无交互(即连接空闲)的情况下,该方案无法处理。

发明内容
本发明实施例提供一种TCP服务装置及方法,以提高TCP服务处理的效率,并实现 对TCP服务的有效管理。 为此,本发明实施例提供如下技术方案 —种TCP服务装置,包括接收单元、管理进程单元和至少一个工作进程单元;
所述接收单元,用于接收客户端发起的连接请求,并将所述连接请求放入内核队 列中; 所述管理进程单元,用于检查所述内核队列,并在检查到所述内核队列中有未处 理的连接请求后,为所述工作进程单元分配处理所述连接请求的任务,并在收到所述工作 进程单元完成所述任务后发送的通知后,更新所述工作进程单元的连接数;
所述工作进程单元,用于处理所述管理进程单元分配的任务,并在完成所述任务后向所述管理进程单元发送通知。
优选地,所述管理进程单元包括 队列检查子单元,用于检查所述内核队列; 进程确定子单元,用于在所述队列检查子单元检查到所述内核队列中有未处理的 连接请求后,扫描所述工作进程的状态,确定处理所述连接请求的工作进程单元;
任务分配子单元,用于为确定的工作进程单元分配处理所述连接请求的任务;
通知接收子单元,用于接收所述工作进程单元完成所述任务后发送的通知。
优选地,所述进程确定子单元包括 扫描子单元,用于在所述队列检查子单元检查到所述内核队列中有未处理的连接 请求后,扫描所述工作进程的状态; 选择子单元,用于在所述扫描子单元扫描到有空闲的工作进程单元后,从所述空 闲的工作进程单元中选择工作进程单元处理所述连接请求;并且在所述扫描子单元扫描 到没有空闲的工作进程单元,并且当前工作进程单元的个数大于或等于预设的最大进程数 时,选择当前负荷最小的工作进程单元处理所述连接请求; 建立子单元,用于在所述扫描子单元扫描到没有空闲的工作进程单元,并且当前 工作进程单元的个数小于预设的最大进程数时,建立新的工作进程单元处理所述连接请 求。 优选地,所述管理进程单元还包括 进程维护子单元,用于在任务分配子单元为所述工作进程单元分配任务后,将所 述工作进程单元的连接数加1 ;在所述通知接收子单元收到所述通知后,将所述工作进程 单元的连接数减1,并检查所述工作进程单元当前的连接数,如果当前的连接数为0,则将 所述工作进程单元置为空闲状态。 优选地,所述进程维护子单元,还用于捕获工作进程单元异常退出事件,并在捕获 该事件后更新所述工作进程单元的连接数。 优选地,所述进程维护子单元,还用于扫描所有工作进程单元,并在空闲的工作进 程单元的个数大于预设的最小进程数时,清除多余的工作进程单元。
—种TCP服务方法,包括 接收客户端发起的连接请求,并将所述连接请求放入内核队列中; 管理进程检查所述内核队列,并在检查到所述内核队列中有未处理的连接请求
后,为工作进程分配处理所述连接请求的任务; 工作进程处理所述任务,并在完成所述任务后向管理进程发送通知。 优选地,所述为工作进程分配处理所述连接请求的任务包括 扫描所述工作进程的状态,根据扫描结果确定处理所述连接请求的工作进程; 向所述工作进程发送处理所述连接请求的指令。 优选地,所述根据扫描结果确定处理所述连接请求的工作进程包括 如果有空闲的工作进程,则从所述空闲的工作进程中选择一个工作进程处理所述
连接请求; 如果没有空闲的工作进程,并且当前工作进程的个数小于预设的最大进程数时, 建立新的工作进程处理所述连接请求;
如果没有空闲的工作进程,并且当前工作进程的个数大于或等于预设的最大进程
数时,选择当前负荷最小的工作进程处理所述连接请求。 优选地,所述方法还包括 所述管理进程为工作进程分配处理所述连接请求的任务后,将所述工作进程的连 接数加1 ;在收到所述工作进程的通知后,将所述工作进程的连接数减l,并检查所述工作 进程当前的连接数,如果当前的连接数为0,则将所述工作进程单元置为空闲状态。
优选地,所述方法还包括 所述管理进程捕获工作进程异常退出事件,并在捕获该事件后更新所述工作进程 的连接数。 优选地,所述方法还包括 扫描所有工作进程,并在空闲的工作进程的个数大于预设的最小进程数时,清除 多余的工作进程。 —种计算机可读存储介质,包括计算机程序代码,该计算机程序代码由一个计算 机单元执行,使得该计算机单元 接收客户端发起的连接请求,并将所述连接请求放入内核队列中; 管理进程检查所述内核队列,并在检查到所述内核队列中有未处理的连接请求
后,为工作进程分配处理所述连接请求的任务; 工作进程处理所述任务,并在完成所述任务后向管理进程发送通知。 本发明实施例提供的TCP服务装置及方法,采用"半同步/半异步"的工作模式,预
先派生工作进程,由管理进程捕获客户端连接请求事件,再分发给工作进程进行接收操作。
管理进程和工作进程内部采用事件驱动模式。将本发明实施例TCP服务装置及方法应用在
复杂的并行系统中,即可以简化处理程序,又能保证程序执行的效率,并实现对TCP服务的
有效管理。


图1是本发明实施例TCP服务装置的一种结构示意图; 图2是本发明实施例TCP服务装置中管理进程单元的一种结构示意图; 图3是本发明实施例TCP服务方法的流程图; 图4是本发明实施例中事件驱动进程池模型示意图。
具体实施例方式
为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施 方式对本发明实施例作进一步的详细说明。 本发明实施例TCP服务装置及方法,采用"半同步/半异步"的工作模式,预先派 生工作进程,由管理进程捕获客户端连接请求事件,再分发给工作进程进行接收操作。管理 进程和工作进程内部采用事件驱动模式。 图1是本发明实施例TCP服务装置的一种结构示意图。
在该实施例中,所述TCP服务装置包括 接收单元100、管理进程单元111和至少一个工作进程单元,为了描述方便,图中示出了两个工作进程单元,即工作进程单元121和工作进程单元122。其中 所述接收单元100,用于接收客户端发起的连接请求,并将所述连接请求放入内核
队列中; 所述管理进程单元lll,用于检查所述内核队列,并在检查到所述内核队列中有未 处理的连接请求后,为所述工作进程单元分配处理所述连接请求的任务,并在收到所述工 作进程单元完成所述任务后发送的通知后,更新所述工作进程单元的连接数;
所述工作进程单元121、122,用于处理所述管理进程单元111分配的任务,并在完 成所述任务后向所述管理进程单元111发送通知。 本发明实施例TCP服务装置,将同步和异步1/0模型集成在一起,系统层响应连接 请求、任务分配、提供管理类服务等异步1/0操作,应用层进行简单的同步1/0操作,即复杂 的处理由框架完成,应用层只需关注处理逻辑即可。管理进程单元捕获客户端连接请求事 件,再分发给工作进程单元进行接收操作。管理进程单元和工作进程单元内部采用事件驱 动模式。由事件触发进行处理,简化了实现的复杂度,提高了 TCP服务的可靠性。
本发明实施例TCP服务装置,可以支持多路复用,可同时向多个客户端提供服务。
在本发明实施例中,所述管理进程单元111的一种优选结构如图2所示,包括
队列检查子单元201,用于检查所述内核队列; 进程确定子单元202,用于在所述队列检查子单元131检查到所述内核队列中 有未处理的连接请求后,扫描所述工作进程的状态,确定处理所述连接请求的工作进程单 元; 任务分配子单元203,用于为确定的工作进程单元分配处理所述连接请求的任 务; 通知接收子单元204,用于接收所述工作进程单元完成所述任务后发送的通知。
为了对所述工作进程单元进行有效地管理,在本发明实施例中,所述管理进程单 元111还可进一步包括 进程维护子单元205,用于在任务分配子单元203为所述工作进程单元分配任务 后,将所述工作进程单元的连接数加1 ;在所述通知接收子单元204收到所述通知后,将所 述工作进程单元的连接数减l,并检查所述工作进程单元当前的连接数,如果当前的连接数 为O,则将所述工作进程单元置为空闲状态。 当然,本发明实施例中所述管理进程单元111还可以有其他结构方式,比如,队列
检查子单元201、进程确定子单元202和任务分配子单元203可以集成为一个模块,本发明
实施例对此不做限定。 所述进程确定子单元202包括 扫描子单元221,用于在所述队列检查子单元检查到所述内核队列中有未处理的 连接请求后,扫描所述工作进程的状态; 选择子单元222,用于在所述扫描子单元221扫描到有空闲的工作进程单元后,从 所述空闲的工作进程单元中选择工作进程单元处理所述连接请求;并且在所述扫描子单元 221扫描到没有空闲的工作进程单元,并且当前工作进程单元的个数大于或等于预设的最 大进程数时,选择当前负荷最小的工作进程单元处理所述连接请求; 建立子单元223,用于在所述扫描子单元221扫描到没有空闲的工作进程单元,并
7且当前工作进程单元的个数小于预设的最大进程数时,建立新的工作进程单元处理所述连 接请求。 需要说明的是,在本发明实施例中,所述进程维护子单元205还用于扫描所有工 作进程单元,并在空闲的工作进程单元的个数大于预设的最小进程数时,清除多余的工作 进程单元。比如,可以通过开关方式,将多余的工作进程单元断开。所述多余的工作进程单 元可以是比预定的最小的进程数多出的空闲工作进程单元,也可以是所有空闲工作进程单 元。 所述进程维护子单元205对所有工作进程单元的扫描可以定时进行,在所述TCP 服务装置初始化时,可以设定定时时间。 为了更好地对所述工作进程单元进行维护,所述进程维护子单元205还用于捕获 工作进程单元异常退出事件,并在捕获该事件后更新所述工作进程单元的连接数。
在具体实现中,管理进程可以通过心跳连接捕获工作进程单元异常退出事件。
管理进程通过指令管道分配任务给某个工作进程后,在登记区登记该工作进程的 连接数为正在处理的任务数(即该工作进程的当前连接数)+l,工作进程处理完任务后, 通过报告管道向管理进程报告,管理进程在登记区中更新该工作进程的连接数为正在处
理的任务数(即该工作进程的当前连接数)-i,连接数为0则置为空闲。 另外,报告管道可以在管理进程与工作进程之间建立一条心跳连接,管理进程扫 描指令管道上数据到达,当工作进程异常退出后,心跳连接断开,管理进程在该管道上的扫 描会失败,此时即可确定心跳连接中断,由此管理进程判断工作进程已异常退出,将该工作 进程的连接数清零。另外,此时,管理进程可以重新创建一个工作进程,即异常重启功能。当 然,此时管理进程也可以不立即创建新的工作进程,检测到内核队列中有新的连接需要处 理时,如果需要再创建。 需要说明的是,所述预设的最小进程数和最大进程数可根据所述TCP服务装置的 处理能力及应用环境来设定,比如,最小进程数为8,最大进程数为20。 本发明实施例TCP服务装置,采用基于事件的多路复用技术,以有限的工作进程, 支持多用户并发访问;而且,由一个管理进程单元和多个工作进程单元协同工作,可以使服 务处理更为有序。 相应地,本发明实施例还提供一种TCP服务方法,如图3所示,是该方法的流程图, 包括以下步骤 步骤301 ,接收客户端发起的连接请求,并将所述连接请求放入内核队列中。
步骤302,管理进程检查所述内核队列,并在检查到所述内核队列中有未处理的连 接请求后,为工作进程分配处理所述连接请求的任务。 具体地,可以由管理进程扫描各工作进程的状态,根据扫描结果确定处理所述连 接请求的工作进程。然后,向所述工作进程发送处理所述连接请求的指令。
在确定处理所述连接请求的工作进程时,可以依照以下原则 如果有空闲的工作进程,则从所述空闲的工作进程中选择一个工作进程处理所述 连接请求; 如果没有空闲的工作进程,并且当前工作进程的个数小于预设的最大进程数时, 建立新的工作进程处理所述连接请求;
如果没有空闲的工作进程,并且当前工作进程的个数大于或等于预设的最大进程 数时,选择当前负荷最小的工作进程处理所述连接请求。 当然,本发明实施例并不仅限于上述原则,比如,可以设定工作进程的最大连接 数,在分配任务时,如果有多个任务,可以优先选择一个工作进程完成这些任务,在该工作 进程的连接数达到设定的最大连接数后,再创建新的工作进程进行任务分配。
步骤303,工作进程处理所述任务,并在完成所述任务后向管理进程发送通知。
为了更好地对多工作进程进行有效地管理,在本发明实施例中,还可进一步包括 以下步骤管理进程对工作进程进行维护,具体地所述管理进程为工作进程分配处理所 述连接请求的任务后,将所述工作进程的连接数加1 ;在收到所述工作进程的通知后,将所 述工作进程的连接数减1,并检查所述工作进程当前的连接数,如果当前的连接数为0,则 将所述工作进程单元置为空闲状态。 为了防止工作进程异常退出的情况对工作进程的状态造成影响,所述管理进程还 可以进一步捕获工作进程异常退出事件,并在捕获该事件后更新所述工作进程的连接数, 即将所述工作进程的连接数减1。 为了减少多余的工作进程,在本发明实施例中,所述管理进程还可以定时扫描所 有工作进程,并在空闲的工作进程的个数大于预设的最小进程数时,清除多余的工作进程。 所述多余的工作进程可以是比预定的最小的进程数多出的空闲工作进程,也可以是所有空 闲工作进程。 本发明实施例TCP服务方法,采用半同步/半异步的处理模式,引用事件驱动模 式,将连接请求、数据到达、工作任务分配、工作进程状态报告、内部管理端口事件、工作进 程定时状态扫描等动作在内部均转化为"内部事件",由事件触发进行处理,简化程序复杂 度,提高可靠性;通过设置最小进程数、最大进程数,提供繁忙时增加工作进程,空闲时释放 工作进程的功能,根据当前的负载实现工作进程的动态调整;工作进程支持多路复用,一个 工作进程同时可向多个客户端提供服务。 如图4所示,是本发明实施例中事件驱动进程池模型示意图。 在服务启动时可以进行如下初始化过程 1.读取配置数据,其中包含的主要参数a) Socket端口号port或UNIX网络域(AF_UNIX); b)最小启动工作进程数minproc ; c)最大工作进程数maxproc ; d)工作进程最大空闲时间timeidle ; e)工作进程扫描时间sca皿nit。 2.根据配置绑定指定的AF_UNX或SOCKET ; 3.根据"最小进程数",创建工作进程do_fork(),并在管理进程、工作进程之间建 立一组管道(指令管道和报告管道),为工作进程指派指令管道处理事件,为管理进程指派 报告管道上的处理事件; 4.为管理进程指派针对绑定的端口处理事件; 5.增加管理专用通道(AF_UNX); 6.根据sca皿nit指定值,增加定时事件处理机制;
9
7.进入守护模式(可用参数控制),进入事件循环; 下面参照图4所示的事件驱动进程池模型,进一步详细说明本发明实施例TCP服 务方法的处理过程。
(1)客户端发起连接请求,服务端将该连接放入其内核队列中;
(2)管理进程检测到该事件,执行相应的处理机制; (3)管理进程扫描工作进程的状态,找到合适的工作进程,向工作进程对应的指令 管道发送一个指令,如所有进程都忙且当前工作进程数小于定义的最大进程数,则创建一 个新的工作进程并向该工作进程发送一个指令; (4)工作进程检测到指令管道上的read事件,进行acc印t()操作,从内核队列中
取走该连接,以后对该连接进行全程管理; (5)客户端组织数据进行send发送请求; (6)工作进程检测到链路上有一 read事件,进行相应的read操作,读取请求数 据; (7)工作进程按约定的处理逻辑对进行逻辑处理proc ; (8)工作进程处理结束,组织应答数据,发送给客户端; (9)客户端在链路上调用recv()读取应答; (10)客户端发起关闭连接的指令close (); (11)工作进程检测到链路上的关闭事件,关闭该socket ; (12)工作进程通过"报告管道"通知管理进程"本工作进程连接数减少一个";
(13)管理进程收到连接数减少的消息,将该工作进程对应的连接数减少,如连接 数为O,则将该工作进程置为空闲状态; (14)管理进程定时扫描所有工作进程的状态,如空闲的进程数大于已定义的最小 的进程数,则对多余的工作进程进行清理。 图4中仅示出了为一个客户端提供连接服务的情况,本发明实施例的TCP服务方 法还可以同时为多个客户端提供连接服务。 为此,针对多个客户端的连接请求,服务端可以将这些连接请求依序放入其内核 队列中。 假设已知的条件或内设的变量如下 最小工作进程数MINPR0C,最大工作进程数MAXPROC ; 工作进程状态包括空闲(PR0C_FREE)、处理中(PR0C_BUSY)、未使用(PR0C_ NOUSE)。 在管理进程检测到这些连接事件后,将对应的任务按以下原则分配到工作进程
1、如果有"空闲"的工作进程,则找到第一个状态为"空闲"的工作进程,让其处理 本次任务,并将该工作进程的状态置为PROC—BUSY,连接数置为1 ; 2、如果没有"空闲"的工作进程,即所有工作进程状态为PR0C—BUSY,且当前工作 进程数小于最大工作进程数MAXPR0C,则找到第一个状态为"PR0C_N0USE"的工作进程(序 号PR0C_ID1),即创建新的工作进程,并将本次任务分配给该工作进程,并将该工作进程的 状态置为PR0C—BUSY,连接数置为1 ; 3、如果没有"空闲"的工作进程,即所有工作进程状态为PR0C—BUSY,且当前工作进程数已达到最大工作进程数MAXPR0C,则从现有工作进程中选择最小负荷的工作进程,即连 接数最小的工作进程PR0C_ID2,并将本次任务分配给该工作进程,将其连接数加1 。
可见,本发明实施例中将进程池明确分为一个管理进程与多个工作进程协同工 作,可以使服务处理更为有序;管理进程与工作进程采用半同步/半异步模型,框架层处理 了大部分复杂的异步处理,应用层只需关注于逻辑处理即可,可以有效地提升性能,提高系 统可靠性。 本发明实施例TCP服务方法,整体采用事件驱动机制完成多路复用,在实现时,可 以封装操作系统的多路复用层的操作,充分发挥系统性能同时,增加了该方法的可移植性。 而且,由于采用基于事件的多路复用技术,本框架能以有限的工作进程,支持大用户并发。
本发明实施例TCP服务方法还具有很好的扩展性,在通讯协议已经约定的情况 下,开发者只需编写不同的逻辑处理即可,无须关心框架本身的实现,大大降低了 TCP服务 器开发的难度。 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以 通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中, 所述的存储介质,如R0M/RAM、磁碟、光盘等。 所述程序可以采用UNIX/C语言或者UNIX/C++语言来实现,所述UNIX系统包括各 类Linux系统。 以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式
对本发明进行 了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同时,对于本领域的 一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所 述,本说明书内容不应理解为对本发明的限制。
权利要求
一种TCP服务装置,其特征在于,包括接收单元、管理进程单元和至少一个工作进程单元;所述接收单元,用于接收客户端发起的连接请求,并将所述连接请求放入内核队列中;所述管理进程单元,用于检查所述内核队列,并在检查到所述内核队列中有未处理的连接请求后,为所述工作进程单元分配处理所述连接请求的任务,并在收到所述工作进程单元完成所述任务后发送的通知后,更新所述工作进程单元的连接数;所述工作进程单元,用于处理所述管理进程单元分配的任务,并在完成所述任务后向所述管理进程单元发送通知。
2. 根据权利要求1所述的装置,其特征在于,所述管理进程单元包括 队列检查子单元,用于检查所述内核队列;进程确定子单元,用于在所述队列检查子单元检查到所述内核队列中有未处理的连接 请求后,扫描所述工作进程的状态,确定处理所述连接请求的工作进程单元;任务分配子单元,用于为确定的工作进程单元分配处理所述连接请求的任务; 通知接收子单元,用于接收所述工作进程单元完成所述任务后发送的通知。
3. 根据权利要求2所述的装置,其特征在于,所述进程确定子单元包括 扫描子单元,用于在所述队列检查子单元检查到所述内核队列中有未处理的连接请求后,扫描所述工作进程的状态;选择子单元,用于在所述扫描子单元扫描到有空闲的工作进程单元后,从所述空闲的 工作进程单元中选择工作进程单元处理所述连接请求;并且在所述扫描子单元扫描到没有空闲的工作进程单元,并且当前工作进程单元的个数大于或等于预设的最大进程数时,选 择当前负荷最小的工作进程单元处理所述连接请求;建立子单元,用于在所述扫描子单元扫描到没有空闲的工作进程单元,并且当前工作 进程单元的个数小于预设的最大进程数时,建立新的工作进程单元处理所述连接请求。
4. 根据权利要求2所述的装置,其特征在于,所述管理进程单元还包括 进程维护子单元,用于在任务分配子单元为所述工作进程单元分配任务后,将所述工作进程单元的连接数加1 ;在所述通知接收子单元收到所述通知后,将所述工作进程单元 的连接数减1,并检查所述工作进程单元当前的连接数,如果当前的连接数为0,则将所述 工作进程单元置为空闲状态。
5. 根据权利要求4所述的装置,其特征在于,所述进程维护子单元,还用于捕获工作进程单元异常退出事件,并在捕获该事件后更 新所述工作进程单元的连接数。
6. 根据权利要求4或5所述的装置,其特征在于,所述进程维护子单元,还用于扫描所有工作进程单元,并在空闲的工作进程单元的个 数大于预设的最小进程数时,清除多余的工作进程单元。
7. —种TCP服务方法,其特征在于,包括接收客户端发起的连接请求,并将所述连接请求放入内核队列中; 管理进程检查所述内核队列,并在检查到所述内核队列中有未处理的连接请求后,为 工作进程分配处理所述连接请求的任务;工作进程处理所述任务,并在完成所述任务后向管理进程发送通知。
8. 根据权利要求7所述的方法,其特征在于,所述为工作进程分配处理所述连接请求 的任务包括扫描所述工作进程的状态,根据扫描结果确定处理所述连接请求的工作进程; 向所述工作进程发送处理所述连接请求的指令。
9. 根据权利要求8所述的方法,其特征在于,所述根据扫描结果确定处理所述连接请 求的工作进程包括如果有空闲的工作进程,则从所述空闲的工作进程中选择一个工作进程处理所述连接 请求;如果没有空闲的工作进程,并且当前工作进程的个数小于预设的最大进程数时,建立 新的工作进程处理所述连接请求;如果没有空闲的工作进程,并且当前工作进程的个数大于或等于预设的最大进程数 时,选择当前负荷最小的工作进程处理所述连接请求。
10. 根据权利要求7所述的方法,其特征在于,所述方法还包括所述管理进程为工作进程分配处理所述连接请求的任务后,将所述工作进程的连接数 加1 ;在收到所述工作进程的通知后,将所述工作进程的连接数减l,并检查所述工作进程 当前的连接数,如果当前的连接数为0,则将所述工作进程单元置为空闲状态。
11. 根据权利要求7所述的方法,其特征在于,所述方法还包括所述管理进程捕获工作进程异常退出事件,并在捕获该事件后更新所述工作进程的连 接数。
12. 根据权利要求7至11任一项所述的方法,其特征在于,所述方法还包括 扫描所有工作进程,并在空闲的工作进程的个数大于预设的最小进程数时,清除多余的工作进程。
13. —种计算机可读存储介质,其特征在于,包括计算机程序代码,该计算机程序代码 由一个计算机单元执行,使得该计算机单元接收客户端发起的连接请求,并将所述连接请求放入内核队列中; 管理进程检查所述内核队列,并在检查到所述内核队列中有未处理的连接请求后,为 工作进程分配处理所述连接请求的任务;工作进程处理所述任务,并在完成所述任务后向管理进程发送通知。
全文摘要
本发明涉及TCP服务技术领域,公开了一种TCP服务装置及方法。所述装置包括包括接收单元、管理进程单元和至少一个工作进程单元;所述接收单元,用于接收客户端发起的连接请求,并将所述连接请求放入内核队列中;所述管理进程单元,用于检查所述内核队列,并在检查到所述内核队列中有未处理的连接请求后,为所述工作进程单元分配处理所述连接请求的任务,并在收到所述工作进程单元完成所述任务后发送的通知后,更新所述工作进程单元的连接数;所述工作进程单元,用于处理所述管理进程单元分配的任务,并在完成所述任务后向所述管理进程单元发送通知。利用本发明,可以提高TCP服务处理的效率,并实现对TCP服务的有效管理。
文档编号H04L29/08GK101702735SQ20091024600
公开日2010年5月5日 申请日期2009年11月24日 优先权日2009年11月24日
发明者林建军, 田欢春 申请人:恒生电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1