[发明专利]一种通用IP协议栈事件通知系统及方法在审
| 申请号: | 201310248652.2 | 申请日: | 2013-06-21 |
| 公开(公告)号: | CN103347012A | 公开(公告)日: | 2013-10-09 |
| 发明(设计)人: | 付华楷;刘程;丁毅 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
| 主分类号: | H04L29/06 | 分类号: | H04L29/06 |
| 代理公司: | 北京捷诚信通专利事务所(普通合伙) 11221 | 代理人: | 魏殿绅;庞炳良 |
| 地址: | 430074 湖北省武*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 通用 ip 协议 事件 通知 系统 方法 | ||
技术领域
本发明涉及IP协议栈事件通知机制,具体来讲是一种通用IP协议栈事件通知系统及方法。
背景技术
套接字(简称socket)是通讯实现的基石,现有的操作系统上都实现了套接字这种通讯接口。系统开发时可以很方便的借助这种机制,来实现系统间的发送信息和接收信息。用户如果直接使用套接字的accept或recv等函数,当没有读、写事件到来时,accept或recv等函数会一直等待,直到有事件到来,这样就有可能造成线程的长时间阻塞,影响系统效率。
为了解决这个问题,VxWorks嵌入式操作系统使用了一种select事件通知机制。采用select机制对用户感兴趣的socket I/O状态进行监视,设定一个超时时间,在超时时间到来之前,如果有socket读、写事件到来,select返回一个正值,此时用户可以调用socket的读、写函数进行有效的信息发送和接收;如果超过了设定时间还没有socket事件到来,select返回超时值,程序继续向下执行,这样就可以有效地避免在没有socket读、写事件到来的情况下,造成线程长时间阻塞,提高系统执行的效率。
在监视少量的socket读、写事件时,select的执行效率很高,CPU占用率低;但是当监视的socket数量达到1000或者以上时,select的执行效率会明显下降,CPU占用率会达到90%以上,甚至更高,这与select的实现机制有关。select将需要监视的socket描述符存放在一个线性数组中,用户采用select机制来查询数组中的socket I/O状态时,需要对数组中的所有socket描述符进行遍历,而这个遍历的过程是线性的,由于select的遍历范围会随着socket数量的增大,遍历所占用的CPU时间也将增大,因此在大容量的通信设备中select方法会遇到瓶颈。在需要监视的socket数量达到1000甚至更高,而有读、写事件到来的socket数量却很少的条件下,select对被监视的全部socket的I/O状态进行线性遍历的工作机制,将造成系统工作效率地大幅度下降。
因此,基于VxWorks嵌入式操作系统的大型通信设备,由于大量采用socket进行通信,利用select事件通知机制已经无法满足低系统开销、高实时性的要求。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种通用IP协议栈事件通知系统及方法,提升系统工作效率,满足系统低开销、高实时性的要求。
为达到以上目的,本发明提供一种通用IP协议栈事件通知系统,包括:事件关注队列,用于存储关注的所有socket描述符和socket事件;事件就绪队列,用于存储有读或写事件到来的socket描述符和socket事件;事件关注体,用于存储socket事件关注队列和socket事件就绪队列;事件添加回调函数,用于将IP协议栈通知的socket描述符和socket事件,添加到socket事件就绪队列;就绪事件查询函数,用于遍历socket事件就绪队列,将就绪的socket事件返回给用户。
本发明还提供一种通用IP协议栈事件通知方法,包括如下步骤:S1.用户创建事件关注体;S2.判断用户查询的socket事件,若是已关注的socket事件,进入S3;S3.为已关注的socket事件添加一个事件添加回调函数,当某个关注的socket有socket事件到来,且该socket事件是用户关注的,通过事件添加回调函数将该socket事件和socket描述符添加到事件就绪队列;S4.用户调用就绪事件查询函数,将事件就绪队列中的socket描述符和socket事件返回给用户;S5.若用户继续查询socket事件,则返回S2;否则进入S6;S6.关闭事件关注体,并释放相关资源。
在上述技术方案的基础上,所述步骤S2中,若是用户关注新的socket事件,则将该socket事件和socket描述符添加到事件关注队列。
在上述技术方案的基础上,所述步骤S2中,若是用户取消对某个已关注socket事件的关注,该socket事件和socket描述符从事件关注队列移除。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310248652.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种可信网络连接方法和系统
- 下一篇:信息推送方法及其装置





