[发明专利]一种离散事件网络模拟环境的时钟同步方法有效
申请号: | 201210051468.4 | 申请日: | 2012-03-01 |
公开(公告)号: | CN102662428A | 公开(公告)日: | 2012-09-12 |
发明(设计)人: | 林思明;王景飞;程学旗;张冬;周洲仪;李金明;王元卓 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F1/12 | 分类号: | G06F1/12;G06F9/52 |
代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 离散 事件 网络 模拟 环境 时钟 同步 方法 | ||
技术领域
本发明涉及网络模拟和仿真技术领域,具体地说,本发明涉及一种离散事件网络模拟环境的时钟同步方法。
背景技术
在网络迅速膨胀的今天,网络研究人员一方面要不断思考新的网络协议和算法,为网络发展做前瞻性的基础研究;另一方面也要研究如何利用和整合现有网络资源,使网络达到最高效能,这两者都需要对新的网络方案进行验证和分析。传统的实验方法成本很高,重新配置或共享资源很难,运用起来不够灵活,试验床的规模很难做到很大,不能实现网络中的多种通信流量和拓扑的融合,给网络研究带来极大的局限性。
而网络模拟技术提供了一种方便、高效的验证和分析方法。基于网络模拟技术,研究人员可以根据需要设计网络模型,用相对较少的时间和费用了解不同条件下网络的特性,获取网络丰富有效的数据。离散事件模拟是几种常用的网络模拟模型之一,该模型下仅在事件发生时进行状态的修改,由事件发生的时间量确定模拟时钟的推进。NS(Network Simulator)、OPNET、NSME等软件是现有的应用较为广泛的离散事件网络模拟器,其模拟处理过程的速率不直接对应着实际时间,而是通过统一时钟控制和分组包头对应的时间戳字段标志来完成的。相对于其它模拟手段,离散事件网络模拟器具有明显的速度和效率优势,并且具有较强的扩展性,然而,由于使用离散事件进行时间驱动,导致仿真时间与实际时间不一致,在某些情形下模拟环境下的测试结果会与真实环境下的结果相背离。例如,当一个真实软件向网络模拟器中的某一服务器请求建立TCP连接时,如果离散事件模拟器的时钟推进很慢(需处理的事件较多的情况下),导致网络模拟器中的服务器在应答该TCP连接前该真实软件的TCP连接因超时而连接失败。但是在真实软件判定连接失败的同时,实际上网络模拟器时钟可能只推进了很少一部分,并未到达真实软件发生超时的时刻。显然,这种情形下,模拟环境下的测试结果是失真的。
因此,当前迫切需要一种离散事件网络模拟环境的时钟同步方法,以避免模拟环境因与真实环境时间不一致而造成失真。
发明内容
本发明的目的是提供一种离散事件网络模拟环境的时钟同步方法,以避免模拟环境与真实环境因时间不一致而造成失真。
为实现上述发明目的,本发明提供了一种离散事件网络模拟环境的时钟同步方法,包括下列步骤:
1)某一离散事件发生时,确定离散事件发生时间所对应的虚拟时钟滴答计数值,并将其作为目标计数值发送给内核态程序;所述虚拟时钟滴答计数值用于控制所有接入离散事件网络模拟器的真实软件的定时器的运行;
2)内核态程序以1为步长逐步累加虚拟时钟滴答计数值直至达到所述目标计数值;其中每次虚拟时钟滴答计数值加1时,对于接入离散事件网络模拟器的真实软件,(操作系统内核)判断所述真实软件的定时器是否超时,如果超时则触发相应的定时器事件。
其中,所述步骤1)包括下列子步骤:
11)网络模拟器时钟发生跳跃后,向用户态监听程序发送更新虚拟时钟滴答的请求,该请求中携带网络模拟器当前的时钟信息;
12)用户态监听程序在收到更新虚拟时钟滴答的请求后,解析所要更新的虚拟时钟滴答计数值;
13)向内核态程序发送更新虚拟时钟滴答请求,该请求中携带所解析的要更新的虚拟时钟滴答计数值。
其中,所述步骤11)中,网络模拟器到用户态程序的命令传输采用网络套接字、内存共享或者proc文件系统的方式实现。
其中,所述步骤13)中,用户态程序到内核态程序的命令传输Netlink原始套接字、内存共享或者proc文件系统的方式实现。
其中,所述步骤2)包括下列子步骤:
21)内核态程序收到更新虚拟时钟滴答请求后,更新当前虚拟时钟滴答值为所述目标计数值,启动虚拟时钟滴答补齐程序;
22)虚拟时钟滴答补齐程序逐个补齐更新前和更新后的两个虚拟时钟滴答计数值之间的所有虚拟时钟滴答,并为每一个补齐的虚拟时钟滴答处理定时器事件。
其中,所述虚拟时钟滴答的创建过程包括下列步骤:
101)在Linux内核中创建记录虚拟时钟滴答的整型变量,用以模拟系统内核中的真实时钟滴答;
102)设置虚拟时钟滴答变量的标识,使得系统能够识别独立于真实时钟滴答的虚拟时钟滴答;
103)设置能够对虚拟时钟滴答变量进行修改的系统调用模块。
其中,所述的离散事件网络模拟环境的时钟同步方法还包括:对调用内核的进程进行标记以区分该进程对应的真实软件是否运行于所述离散事件网络模拟器中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210051468.4/2.html,转载请声明来源钻瓜专利网。