捕获策略(共7篇)
捕获策略 篇1
1 概述
近年来, 网络安全形势日益严峻, 平均每20秒就发生一次入侵计算机网络的事件。网络攻击方与防御方存在着不对称的技术博弈问题[1], 攻击方只要在任何时间找到目标的一个漏洞就能攻破系统, 而防御方必须确保系统不存在任何可被攻击者利用的漏洞, 并拥有全天候的监控机制, 才能确保系统的安全。
为了解决这个问题, 蜜网项目组[2] (the Honeynet Project) 提出了诱骗的概念, 即在一个可控的网络环境中, 诱骗入侵者进行入侵, 在入侵者没有察觉的情况下对入侵行为进行捕获, 分析入侵者的意图, 并让入侵者一无所获, 从而避免损失。
2 相关工作
利用sebek在蜜网中实现数据捕获是蜜网项目组提出的一种关键的数据捕获方案, sebek是由蜜网项目组 (the Honeynet Project) 在2001年至2003年间开发的用于数据捕获的内核模块, 该模块常被用于蜜网中实现数据捕获功能, 也可以单独使用, 国内对其研究较少, 大多数是针对蜜网的研究, 如由北京大学诸葛建伟博士主持的狩猎女神项目组[3], 多年来一直专注于蜜网技术及其应用研究, 取得了很多成果, 但是针对sebek的特点、工作原理和实现机制研究较少。
本文详细分析了sebek的特点、工作原理和实现机制, 进而通过调试发现了源码中的缺陷并给出解决方法, 然后进行验证, 在此基础上, 实现了利用sebek在蜜网中进行数据捕获的解决方案并进行了测试。
3 sebek关键技术分析
sebek是运行在内核空间的一段代码, 它能记录系统用户存取的一些或者全部数据, 具体包括:记录加密会话中的击键, 恢复使用SCP拷贝的文件, 捕获远程系统被记录的口令, 恢复使用Burneye保护的二进制程序的口令等。
3.1 数据封包模块
sebek体系结构如图1所示, 客户端部署在蜜网体系结构的蜜罐中, 服务端部署在蜜网网关上, 数据捕获并且封装成数据包是在客户端实现的, 当外部入侵者通过internet连接入侵了装有sebek客户端的蜜罐A主机时, 蜜罐A主机中的sebek会在入侵者没有察觉的情况下捕获外部入侵行为, 然后把捕获的入侵数据封装成数据包通过局域网传给蜜网网关, 在蜜网网关中装有sebek的服务端程序, 它截获客户端发来的数据包并对外部入侵行为进行分析。
通过分析发现, sebek重定向了系统调用, 把原有的系统调用函数替换成自定义的函数, 这个新的函数再来调用原有的系统调用函数, 并把原有系统调用函数读取的数据记录下来, 然后在Write Packet函数中实现数据的封包, 图2为sebek数据包的包头结构[4], 关键字段的数据类型和功能如表1所示。
sebek数据包的包头部分除了上述结构以外还要再添加上IP/UDP头, 因为传输的过程中采用的是无连接的udp传输, 包头的后面跟的是捕获的入侵行为数据, 数据包的捕获的实现方法采用的是经典的hook技术, 它修改了系统的函数调用入口点, 把函数调用地址替换成自己的函数地址, 从而使系统执行自定义的函数, 完成数据捕获的功能。
3.2 数据包的传输
在捕获入侵行为数据后, 还要以隐蔽的方式把数据传输到服务器端以供分析使用, sebek没有采用套接字传输, 因为套接字传输是在应用层实现的, 很容易被外部入侵者察觉, 它采用的是协议驱动的形式实现传输的, 图3为windows网络架构图, 从下到上依次为网卡硬件、总线、NDIS (网络驱动接口标准) 、protocol drivers (协议驱动) 、Tdi clients (传输驱动接口客服端) 、Network application (网络应用层) 。
图3中NDIS[5]为1989年由Microsoft和3Com联合开发的网络驱动接口标准, 使得协议驱动程序可以以一种与设备无关的方式来跟网络适配器驱动程序进行通信, 极大地方便了网络驱动程序的编写, 遵从NDIS的网络适配器驱动程序称为NDIS minport driver, NDIS支持三种类型的网络驱动程序:
网卡驱动程序 (NIC drivers) :网卡驱动程序是网卡与上层驱动程序通信的接口, 它负责接收来自上层的数据包, 或将数据包发送到上层相应的驱动程序, 同时它还完成处理中断等工作。
中间驱动程序 (Intermediate protocol dirvers) :中间驱动程位于网卡驱动程序和协议驱动程序之间, 它向上提供小端口 (Miniport) 函数集, 向下提供协议 (protocol) 函数集, 因此对于上层驱动程序而言, 它是小端口驱动程序。对于底层的驱动程序, 它是协议驱动程序。
协议驱动程序 (Upper level protocol drivers) :协议驱动程序执行具体的网络协议, 如IPX/SPX、TCP/IP等。协议驱动程序为应用层客户程序提供服务, 接收来自网卡或中间驱动的信息。
sebek的数据传输采用的就是协议驱动的形式, 这种传输是在内核层实现的, 因而相对于socket传输而言, 隐蔽性和安全性更好。通过分析还可以发现, 在数据传输前, sebek要判断数据包的长度是否超过最大数据传输单元 (MTU) , 如果超过了就自动进行截断处理, 每一部分再加上包头, 分别进行传输, 所有的准备工作就绪后, 调用Ndis Send Packets函数实现数据包的发送。
3.3 服务端数据接收
当把数据包传到局域网中以后, 为了实现更好的隐蔽性, sebek采用一种机制使得同一蜜网体系中其它装有sebek蜜罐的主机不能检测到该数据包, 只有服务器端能检测到, 而且数据包的传输只能是单向的, 即只能从客服端传输到服务器端, 反之则不能传输, 实现这一机制的方法是sebek定义了一个通用的协议, 客户端和服务端的通信通道是单向的, 这个通道使用udp协议, 每个数据包除包含udp头以外还有一个sebek头部数据, 在sebek头中定义了一个Magic成员, 具体的数据包传输过程中的算法为:
while (蜜罐A的sebek数据包传输到蜜罐B时)
if (蜜罐B的Magic值=数据包中的Magic值)
蜜罐B主机丢弃该数据包
while (蜜罐A的sebek数据包传输到蜜网网关时)
if (数据包中端口号=网关预定义的端口号&&数据包中的Magic值=预定义的
Magic值)
蜜网网关接收数据包并处理
采用这种机制的好处是即使外部入侵者攻陷蜜网后, 企图利用攻陷的蜜罐主机来截获另一个蜜罐主机发送的数据包也不能实现, 并且由于除了端口号以外, 又引入了Magic成员, 提高了暴力检测的难度。
当蜜罐主机发送的数据包到达蜜网网关处时, 装有sebek服务端的蜜网网关可以直接从网卡捕获该数据包, 此外还可以从tcpdump日志文件中获取, 该日志文件是系统捕获的所有网络数据文件。
3.4 抗检测性
sebek一个重要的特点就是在外部入侵行为不知不觉的情况下捕获入侵行为, 如果外部入侵行为攻陷了蜜罐主机后发现了它的存在, 就会终止入侵行为从而使数据捕获不能继续, 所以抗检测性是它非常重要的功能, 为了实现这个功能, 采取了如下措施:
1) 采用了诸如Adore等基于LKM的rootkit的技术, 使自身更难于被发现。
2) 通过安装cleaner模块来隐藏sebek, 该模块把sebek从安装链表中删除, 删除以后蜜罐主机中不再显示安装有sebek, 并且不能删除, 提高了抗检测性。
4 调试
为了验证sebek的功能, 我们对其进行调试运行, sebek是运行在内核空间的一段代码, 最初是在linux上运行的, 后来被移植到windows等其它的操作系统中, 我们以在windows上运行的版本为例, 由于其是以驱动的形式存在的, 编译驱动有两种方式, 一种是通过集成开发环境诸如VC或visual studio和ddk配合来编译, 一种是直接通过ddk[6]来编译, 前者通过集成开发环境编译, 优点是便于修改和发现错误, 符合大多数习惯集成开发环境的人们, 缺点是需要一系列的配置。后者优点是不用安装集成开发环境且不需要配置, 可以直接编译, 缺点是脱离了集成环境后不便于调试。
这里采用的是直接使用ddk来编译的方式, ddk有windows2000 ddk, windows xp ddk和windows 2003 ddk, 这里我们采用的是windows xp ddk。此外为了加载编译好的驱动文件并显示该驱动程序在内核空间的行为, 还需要借助一些工具才能实现, 因为驱动程序和普通的程序区别就是它是在内核空间运行, 这里我们采用的工具是Kmd Manager[7]和Dbgview[8], Kmd Manager是一个免费的加载驱动程序的小工具, 而Dbgview能够捕获内核空间的行为并且可以把捕获的数据保存到一个日志文件中, 通过对该日志文件的分析, 我们可以清楚地查看到驱动程序在内核空间的运行情况。
4.1 实验过程
使用ddk编译sebek客户端程序, 会生成一个sebek.sys文件, 接下来, 为了加载该驱动文件并查看运行后该程序在内核空间的行为, 我们使用Kmd Manager来进行加载, 使用Dbgview捕获内核空间行为, 实验如图4所示和图5所示, 图4显示了被加载和运行的过程, 图5显示了加载后该驱动在内核空间的行为。
4.2 对蓝屏的解决方法
在对sebek客服端程序进行调试的过程中发现启动程序以后总是蓝屏, 经过调试发现问题在于抗检测模块Antidetection.c模块中Find Ps Module List函数的问题, 文献[9]中给出了一种方法, 但是并没有彻底解决问题, 客服端端程序仍不能运行, 本文在此基础上进一步完善, 消除了蓝屏现象, 具体算法为:
5 系统需求分析
要设计一个支持sebek进行数据捕获的应用系统, 通过该系统可以捕获蜜罐主机上的击键信息, 进而分析击键行为, 验证sebek的功能, 从而实现利用sebek在蜜网中进行数据捕获的解决方案。
其次, 由于sebek是在不断的完善过程中, 最新版本为se⁃bek 2, 以后还会进一步完善, 因此设计的系统要具有良好的可扩展性和可维护性, Sebek的实现包括客服端和服务端, 因此我们首先要搭建一个蜜网体系结构, 然后在该体系结构中部署sebek, 并测试sebek的功能。
基于以上分析, 提出一种采用基于vmware的虚拟蜜网的体系结构来部署sebek并进行测试的方案, 如图6所示, 利用vmware虚拟了三个系统, 利用虚拟的windows 2000系统作为攻击方, 虚拟的windows xp作为蜜罐主机, 虚拟的linux系统作为网管。
6 系统设计
sebek是蜜网体系结构中核心的数据采集模块, 因此我们把它部署在蜜网中来检测其功能, Honeynet Project (蜜网项目组) 提供了一些关于部署Gen III (第三代蜜网) 的一般性文件, 对任何想使用honeywall Roo和VMware构建虚拟蜜网的个人或组织提供了一个可参考的模板。
此外, 北京大学诸葛建伟[10]等人提出了基于第三代蜜网的VNet网络攻防实验环境构建, 本文实验参考了该方案, 实验是在一台三星笔记本电脑上完成的, 该设备只有一个网卡, 可以利用VMware再虚拟出另外两个网卡以供使用。虚拟环境搭建好以后, 首先要配置蜜网网关, 由于篇幅关系, 本文不再详述, 读者可以参考相关资料, 蜜网网关[11]配置好以后, 还要在蜜罐主机上安装sebek客服端程序代码, 由于蜜网网关上已经装有sebek服务器端的程序, 因此不需要再单独安装服务器端程序。
实验结果如图7和图8所示, 记录了sebek服务端捕获的蜜罐主机上的活动信息, 首先, 图7中上部红线框内捕获的数据含义为在IP地址为192.168.200.124的蜜罐主机上, 点击开始菜单, 在运行对话框里输入了cmd.exe命令, 并且记录该命令的版本号, 其次, 中间红线框内的数据含义为在同一IP地址蜜罐主机上向IP地址为192.168.200.2的主机发起了ping连接, 最后一个红线框内的数据含义为IP地址为192.168.200.2的主机向IP地址为192.168.200.124的蜜罐回复了连接信息, 表示两者之间的网络是联通的, 此外从捕获的数据中还可以看出蜜罐上每一个活动的时间信息。
图8中红线框内的数据含义为在测试了连通性以后, sebek服务端捕获了在蜜罐主机上通过dir命令搜索本地文件信息的记录, 具体为首先通过cmd.exe命令打开命令行窗口, 然后通过DIR命令扫描C盘文件信息, 具体扫描到的文件和文件夹分别为ASFRoot、Inetpub和ftpdir、Documents and Settings、Microsoft UAM、Program Files及WINNT, 同样服务端也捕获到了具体的时间信息。
由此可见, 通过部署sebek这一重要的数据捕获工具, 在蜜网网关上收集到了蜜罐主机上的入侵信息, 从而为数据分析提供了依据。
7 总结
本文在分析sebek特点、工作原理和实现机制的基础上, 设计并实现了利用sebek在蜜网中进行数据捕获的改进方案, 针对sebek客服端程序在windows系统上运行时暴露出的缺陷, 采取方法加以完善, 使其能更好的运行在windows系统上, 实验结果表明, 该方案能够有效的捕获蜜网中的入侵行为, 从而为在蜜网中进行数据分析提供了依据。
摘要:近年来, 网络安全问题日益严重, 针对网络攻击方与防御方存在着不对称的技术博弈问题, 提出一种利用sebek技术实现数据捕获的改进方案。该文首先详细分析了sebek的特点、工作原理和实现机制, 通过调试发现运行中的缺陷并给出解决方法, 然后进行验证, 对sebek在windows下的运行流畅性进一步优化, 在此基础上, 实现了利用sebek在蜜网中进行数据捕获的方案。实验结果表明, 该方案能够有效的捕获网络中的入侵行为, 实现了数据捕获功能, 为下一步的数据分析提供依据。
关键词:sebek,数据捕获,蜜罐,入侵检测,网络安全
参考文献
[1]诸葛建伟, 唐勇, 韩心慧, 等.蜜罐技术研究与应用进展[J].软件学报, 2013, 24 (4) :825-826.
[2]The Honeynet Project[EB/OL]. (2014-02-02) .http://www.hon-eynet.org.
[3]诸葛建伟.狩猎女神的前世今生[EB/OL]. (2014-02-02) .http://netsec.ccert.edu.cn/zhugejw/2011.
[4]lance.spitzner.Know Your Enemy:Sebek[EB/OL]. (2008-12-08) .http://www.honeynet.org/papers/sebek.
[5]网络驱动接口规范baodi_z.网络驱动程序接口规NDIS[EB/OL]. (2008-02-21) .http://blog.csdn.net/baodi_z/article/details/2110917.
[6]speedingboy.DDK开发介绍[EB/OL]. (2013-09-17) .http://blog.csdn.net/speedingboy/article/details/3035131.
[7]灰狐.Windows驱动学习笔记[EB/OL]. (2013-03-12) .http://wenku.baidu.com/view/fbcd721cfad6195f312ba63e.html.
[8]Bactq.关于Dbgview的使用[EB/OL]. (2007-03-28) .http://blog.sina.com.cn/s/blog_7359f2100100onth.html.
[9]East Coke.Sebek源码修正档[EB/OL]. (2011-05-31) .http://blog.csdn.net/eastcoke/article/details/6456012.
[10]诸葛建伟解决方案.网络攻防环境搭建[EB/OL]. (2012-06-24) .http://www.docin.com/html.
[11]吴智发, 张芳芳.第三代蜜网网关Roo介绍[EB/OL]. (2010-05-18) .http://wenku.baidu.com/view/76859cf3f90f76c661371a55.html.
捕获策略 篇2
现代并网运行的水平轴风力机,从转速控制角度可分为两种基本类型:定转速风力机和变转速风力机。与定转速风力机相比,变速风力机具有风能利用效率高,可以减小传动链的疲劳载荷等诸多优势[1]。因此,目前变速风力机得到迅速发展,并有逐渐取代恒速风力机的趋势,变速风力机的控制也已经成为风力发电领域的研究热点[2]。
提高效率和减小载荷是变速风力机控制的两个主要目标,本文以提高效率为主要目标。目前,风力机最大风能捕获的控制方法主要有最佳叶尖速比查表法[3,4]、爬山搜索法[5,6,7,8]、模糊控制和自适应控制法[9,10,11,12,13,14]等 。其中查表法要求有准确的风速信号,但风速难以准确测量;爬山搜索法需要对转速进行连续试探性的调节,容易产生转矩高频脉动,增加传动链的疲劳载荷;模糊控制和自适应控制方法,算法较为复杂,对控制器的设计要求较高。针对以上不足,本文根据系统的运动方程和风力机的转矩特性,提出了一种新的分段控制策略,并在Matlab/Simulink中建立了全系统的仿真模型,给出了不同风速下的仿真结果。
2 风力机的功率特性与转矩特性
根据风力机的空气动力学特性[5],其捕获的风功率为
式中:ρ为空气密度,kg/m3;R为风力机的叶轮半径,m;v为风速,m/s;λ为叶尖速比;β为桨距角;Cp(λ,β)为风能利用系数。
由式(1)可知,在风速给定的情况下,风力机捕获的风功率取决于风能利用系数Cp,而Cp是λ和β的函数[15]:
其中
在额定风速以下,为了最大限度地捕获风能,桨距角一般取恒定值0°。将式(4)代入式(1),可以得到功率及转矩与叶轮转速之间的关系:
式中:Cm为风力机的机械特性参数,Cm=Cp(λ,β)/λ3。
式(5)和式(6)分别从功率和转矩角度描述了风力机的机械特性,按照给定的参数:额定功率1.5MW,叶轮直径76.5m,叶轮转速9.6~19.3r/min,额定风速12.5m/s,齿轮箱变比104,叶轮转动惯量6.2e5kg·m2,发电机的转动惯量586.8kg·m2,低速轴的等效刚度8.4e7Nm/rad,低速轴的等效阻尼6.7e5Nm·s/rad,绘制该风力机机械特性曲线如图1所示。由图1可见,各风速下风力机捕获的风功率和气动转矩都是随转速的增大而先增大后减小。不同风速时,在不同转速处存在最大功率点,其中Pmax是各风速下最大功率点的连线,为了实现最大风能捕获,当风速变化时,必须实时调节发电机的转速。
3 系统模型的建立与简化
风电机组传动系统经过抽象以后,其二阶模型如图2所示。
图2中,Ta为气动转矩,ωr为风力机风轮转子的转动角速度,Jr为风轮转子的转动惯量,Tls是低速轴的反转矩,Kr为风轮转子外部阻尼,Bls为低速轴的等效刚度,Kls为低速轴的等效阻尼,Ths为高速轴的转矩,Jg为发电机的转动惯量,Kg为发电机转子外部阻尼,Tem为发电机的电磁转矩。
风轮转子受气动转矩Ta驱动,在反转矩Tls作用下产生转速ωr,其动态模型为
低速轴的反转矩Tls由轴转矩和摩擦产生:
Tls=Bls(θr-θls)+Kls(ωr-ωls) (8)
发电机受高速轴转矩Ths驱动,受到电磁转矩Tem反作用,其动态模型为
齿轮箱的变比为ng,则
把发电机的动态特性等效到低速轴上,由式(9)和式(10)可得:
假设低速轴是刚性的,则可以得到系统的简化模型:
式中:Jt为风力机等效转动惯量,Jt=Jr+n2gJg;Kt为风力机风轮转子等效转动阻尼,Kt=Kr+n2gKg;Tg为低速轴上的等效电磁转矩,Tg=ngTem。
不考虑发电机具体的电气过程,可视其为一阶滞后环节[12]:
Tem=T*em(1-e-τt) (13)
式中:τ为时间常数。
4 风力机的分段控制策略
风力机的风能利用系数Cp和机械特性参数Cm都是叶尖速比的函数,其典型的关系曲线如图3所示。当λ=λopt时,Cp取得最大值Cpmax,相应的Cm取得C*m,且C*m=Cpmax/λ
根据风力机的动力学方程式(12),如果按照式(14)控制发电机的输出转矩Tg,则忽略摩擦后,当且仅当式(15)、式(16)成立时,风力机才能稳定运行,结合图3,有两个不同的λ可以使Cm=C*m成立,但只有当λ=λopt时,系统才能稳定。由于叶轮和发电机运行转速的限制,风力发电机组无法在全风速范围内按照最佳叶尖速比运行。假设叶轮转速的最大值和最小值分别为ωrmin和ωrmax,则当风速v<ωrminR/λopt时,风力机只有在ωrmin运行才能使λ最接近λopt,同理,当v>ωmaxR/λopt时,风力机应该在最大转速ωrmax处运行。由此,可以得到风力机的3阶段运行控制策略:最小转速处的恒转速控制,最大转速处的恒转速控制和最佳叶尖速比运行控制。
考虑到摩擦,式(14)改为
Tg=Koptω2r-Ktωr (17)
其中
根据上述分析,按照式(17)控制风力发电机的电磁转矩便可实现风力机的最佳叶尖速比运行。最大转速和最小转速处的恒转速运行可以采用PI控制。3阶段控制策略的稳定性可以用风力机和发电机的转矩特性说明,如图4所示。在正常的运行范围内,风力机的转矩和发电机的转矩之间满足拖动系统的稳定性条件式(19),所以按照3阶段控制策略控制发电机,系统是可以稳定运行的。
5 仿真
本文以1.5MW变速风力发电机组为例进行仿真,并给出了机组参数。根据系统的数学模型在Matlab/Simulink中建立了仿真模型。对不同风况下的运行情况进行了仿真分析,仿真结果如图5、图6所示。
图5表明当风速在3~7m/s及10~13m/s之间波动的时候,风力机转速基本保持恒定,转矩随风速波动而波动。叶轮转速稳定在最低转速和最高转速处使得风力机最大限度的捕获风能,同时发电机转矩只是随风速的大体变化趋势而变化,没有高频转矩脉动,可见该控制方法没有增加系统的机械载荷。
图6表明风速在9m/s左右时,风力机转速能够跟踪风速大的变化趋势而变化,且转速和转矩变化平缓,保证了系统在不增加载荷的前提下提高了效率。
6 结论
本文详细分析了风力机的机械特性,简化了传动链和发电机的数学模型,在此基础上根据实际风力机的运行要求,提出一种分段控制策略。该控制策略不需检测风速信号,只根据转速控制发电机转矩,在不增加系统载荷的前提下,最大限度地提高了风能捕获效率。这种分段控制策略算法简单,便于工程实现。本文首先从理论上分析了该算法的作用机理,并对其稳定性作了简要证明,又在Matlab/Simulink中建立了机组的全系统仿真模型,仿真结果进一步验证了算法的稳定性和有效性。
摘要:对风力机、传动链和发电机的数学模型进行了简化处理,得到了系统运动方程,结合风力机的转矩特性,提出了一种新的分段控制策略。这种方法不需要检测风速和功率信号,只根据叶轮转速来控制发电机的电磁转矩,便可实现风力机的最佳叶尖速比运行,从而最大限度地捕获风能。Matlab/Simulink仿真结果验证了算法的稳定性和有效性。
捕获精彩的瞬间 篇3
【案例】那是在教学人教版九年级语文下《鱼我所欲》这一课时, 在疏通完字词教学后, 围绕着“舍生取义”这一中心进行讨论时, 出现了意想不到的插曲:
师:“孟子指出, ‘义’超过了‘生’, 所以人能够不贪生, 不避死, 应当‘舍生取义’。羞恶之心, 人人皆有, 贤者更能保存而不丧失。接着举例说明, 人即使在饥饿时仍有羞恶之心, 自古以来就有宁死不食‘嗟来之食’的人。你是如何看待这一问题的?”
生1:“我认为, 这位廉者为了‘义’, 不愿接受侮辱性的施舍, 我觉得做得应当, 人要为了自尊而生。”
生2:“我也认为他做得对, 他这样宁愿死也不受辱的节气值得我们学习, 义, 就是气节, 就是坚持正义……”
生3:“如果这样说, 那韩信受‘胯下之辱’就不应当了, 那就该拿刀同那个侮辱者相拼, 但如果这样历史上岂不少了个英雄?又怎会有韩信能忍的美谈?”
这一石立刻在班内引起千层浪, 学生意见不同, 群情涌动, 大有争论之势。
生3:“是呀, 小不忍则乱大谋又该怎么解释呀?”
生4:“宁死不屈方为大丈夫, 文天祥正是因为宁死不屈才成为千古不朽的民族英雄!”
生5:“革命战争年代, 不少仁人志士忍辱负重打入敌人内部, 为新中国的成立做出了贡献, 我们能说他们不是君子吗?司马迁忍受奇耻大辱, 含泪完成《史记》, 我们能认为他不伟大吗?”……
学生的争先发言完全打乱了我的教学设计。我知道, 如果不让争论停止, 这节课的教学目标肯定完成不了;但如果强制学生停止讨论, 肯定会浇灭学生自主求知创新的思维火花。这时, 一个念头在我脑中闪现:“这不正是引导学生进行主动探讨学习的有效契机吗?学生在主动探讨中既进行了思维训练, 又能对学生进行正确的人生观教育, 这也是我们语文教学的目标之一呀!何必为了教学形式而放弃良好的教学契机呢?”于是, 我干脆脱离教案, 顺势引导:
“在什么情况下可以舍生取义, 而在什么情况下则可以不这么做呢?”学生参与的热情愈加高涨, 在反复争论中, 学生渐渐明白:
“当义等同于国家、民族、集体的利益时, 义大于生命;当把义狭隘地理解为个人私利、为了所谓的面子、哥们义气时, 则小于生命。因而当义与生命冲突时, 应当视具体情况分清是非, 而不是随意践踏生命”。最后, 我用司马迁的话作结:“人固有一死, 或重于泰山, 或轻于鸿毛!”同学们在齐声诵读中结束了本堂课的学习。
就这样, 一个小小的问题引发了一场热烈的讨论, 学生的思维在讨论的撞击中迸发出了创新的火花, 课堂教学真正“活”了起来。虽然这个节外生枝打乱了我的教学设想, 但认真反思本节课的得失, 我认为本节课最大的可取之处, 却正是这“节外生枝”完全确立了学生学习的主体地位, 充分培养了学生的自主探究意识。看着同学们那真情涌动、全身心投入的学习热情, 我感受到, 虽没有完成这节所谓的教学目标, 但我相信, 学生在这一节课中学到的, 远远超过了我的预想。
面对学生的多元理解和独特感受, 面对学生与众不同的回答, 面对这种无预设的“生成”, 我觉得教师不能只关注课堂环节是否完整, 更要关注课文潜在的认识价值。语文学科是人文学科, 教材价值取向的核心与灵魂, 教师要始终把握住和引导好学生, 在珍惜学生自由感悟的同时, 循循善诱, 培养他们树立正确的价值观、人生观。
语文学习既是一种学生个性化的活动, 也是一种学生创造性的活动。作为教师不仅要珍惜学生的感悟、体验, 更要保护他们的智慧火花。这样更有利于开发学生的创造性潜能。人们常说:“一千个读者就有一千个哈姆雷特”。作为教师, 认真备课, 把握教材重、难点, 完成教学任务固然很重要, 但我认为更重要的是把语文教“活”、让学生“活”好, 这才是语文学习的灵魂。如果教师死守教案, 那么最好的教案也会成为束缚教学的桎梏, 活生生的学生也会变成课本的奴隶。相反, 课堂灵活地放开一些, 反而更能充分发挥教师的主导作用, 更能活跃思维, 激发学生学习的积极性, 收到意想不到的效果。
课堂教学是师生、生生之间有效互动的过程。在课堂教学双边参与的动态进程中, 教师应准确洞察学生心灵的秘密, 敏捷地捕捉学生在课堂稍纵即逝的变化;不断捕捉、判断、重组从学生那里涌现出来的各种信息, 见机而作, 对有价值的信息资源应及时纳入课堂临场设计的范畴之中, 适时调控, 充分利用, 激活课堂教学, 促进课堂有效生成。面对学生的“胡思乱想”、“节外生枝”, 不要限制学生思维的自由, 束缚学生表达的欲望。要把它当作一种重要的积极的教学资源, 适时调整自己的教学行为。或顺水推舟, 让学生对话, 引导动态生成的流向, 以判断是否值得生成;或将错就错, 顺势利导, 妙用学生的“出错”以求思维的广度;或乘思追问, 巧妙延伸, 巧用学生的“怪问”, 以求思维的深度。让学生在充分自由与平等的对话交流中, 畅所欲言, 碰撞思维的火花, 彰显学生的个性, 生成精彩的瞬间。
基因捕获测序诊断血癌 篇4
该技术可以精确测量样本中多个特定基因的活跃程度,即使活跃程度非常低也能检测出来。这种敏感性使它在生物医学研究方面很有应用前景。
人体基因组中除了约2万个负责制造蛋白质的基因,还有大量不制造蛋白质的“非编码基因”,它们在人体发育、大脑功能等许多方面起到重要的调控作用。但很多这类基因的活跃程度很低,往往只在少数细胞里发挥作用,很难对其进行详细研究。
“捕获测序”技术能以更高精度分析基因组,类似于用像素更高的数码相机去拍照片,可以更好地呈现当前测序技术难以探查到的细节,帮助深入了解非编码基因。
编程中如何捕获多次错误 篇5
如果将这样的代码, 编译成可执行程序。将使程序潜藏一个致命的BUG。因为, 程序不会总出错, 所以这个BUG在调试中未必会发现。
因此, 需要对以上代码进行改进, 使它可以多次捕获错误。在尝试中发现, 以下代码可以再循环中多次捕获出错:
但是, 显然以上代码不符合我们的要求, 它虽然可以捕获错误, 并跳过错误, 使程序顺利运行。但是它并不能提示用户哪次运行成功, 哪次运行失败了。
不过, 从以上代码中可以发现, Resume这个关键字可以使错误捕获器捕获循环里的下一次错误。发现了这一点就好办了, 只要在每次出错的时候用上这个关键字, 就能进行下次出错捕获了。改进代码如下:
用以上代码, 就可以顺利地捕获循环里的每一次出错了。
当然, 也可以将可能会出错的地方放在一个函数里, 给函数加上错误捕获代码, 并在循环中调用该函数。但是, 这样做不是很方便。比如, 当循环中需要用到很多变量的时候, 把它写成一个函数调用的话, 可能得传递很多变量, 或者声明很多全局变量, 很是麻烦。
网络数据捕获技术的探究 篇6
随着互联网在教育、科技、医疗、军事等各个领域的普及, 为我们提供了各种各样的服务。但是, 随着互联网的快速发展, 我们在享受互联网带来的丰富信息和巨大便利的同时, 也面临着网络安全的严重威胁。
因此, 如何对网络应用进行有效管理, 对网络信息的内容进行有效监控和过滤, 抑制有害信息的传播已经成为净化网络空间、维护社会安定和国家稳定的重要问题。网络监控是保障网络安全的基本措施之一。在网络拓扑中的关键位置对数据报文进行捕获、分析和监控, 可以减少和杜绝由互联网技术所带来的网络内容安全问题。
2 数据捕获技术的研究
2.1 数据捕获的概念和基本原理
计算机将数据在网络上传输时, 为了保证所有网络共享资源的公平性和快速性, 通常把传输数据分割成若干个小块。我们称这样被分割的传输单位为包, 或“数据包”。当前从网络中对数据包进行捕获的方法有以下两种, 其一是用专用硬件进行捕获, 这种方法性能好但是价格昂贵;其二是用通用硬件——普通计算机与网络连接的网络适配器, 即网卡, 采用软件的方法来实现数据包的捕获。软件捕获方法虽然没有专用硬件捕获性能好, 但采用软件捕获的方法却以其实现成本相对较低、可修改、可重用等优点, 得到了认可和广泛的使用。
从网络中捕获数据包是网络安全解决方案的基础。而要想捕获到网络上流经的所有数据包, 就需要先研究网络上数据包的传送方式。局域网的通信一般都采用广播方式, 网络上的每个站点共享信道, 一个站点发出的数据包, 其他站点均能收到, 也就是说, 任一台计算机都可以接收到网络中同一个共享域的所有的数据通讯。
2.2 数据包捕获机制
包捕获技术就是从网络上捕获全部或特定的网络数据包提供给其它系统使用。本文是利用局域网的广播通信方式来完成数据包的捕获工作。
在每张通讯的网卡上都有一个全球唯一的物理地址, 即MAC地址。MAC地址是一个48位的二进制数。在以太网卡中实现对广播地址进行过滤的是数据包过滤器。它的工作原理是:保留通讯目的地址是本身网卡MAC地址的数据包和广播数据包, 丢弃无关的数据包, 避免浪费CPU资源。这是以太网卡在正常情况下的工作方式。因此网络接口应该只对以下两种数据包进行处理:
(1) 本地网络接口的硬件地址和数据包的目标地址相匹配。
(2) 将“广播地址”作为数据包的目标地址, 它代表所有的接口地址, 格式为“FFFFFFFFFFFF”。
在以上两种情况下, 网卡通过CPU产生中断, 操作系统进行中断处理, 将帧中的数据传送给上层系统进行处理。其他情况下操作系统不作处理, 数据帧将被丢弃。
因此要想捕获流经网卡而目标地址不是本机网络接口地址的数据, 必须改变系统正常的工作模式。当网卡的工作状态设为“混杂” (promiscuous) 模式时, 该网卡就具备了“广播地址”, 会接收到经过该网卡的每一个数据包, 并通过硬件中断的方式来提醒CPU进行中断处理, 因此就可以实现捕获流经本机网卡的任意数据包。数据包的捕获工作, 分为以下几个部实现分:
1) 获取网络设备接口表单;
2) 将网卡工作状态设置为“混杂模式”;
3) 判断是不是10MB的以太网;
4) 设置、编译过滤规则;
5) 过滤规则与网卡进行绑定;
6) 捕获数据包以及判断是否要继续循环捕获;
7) 释放网络设备接口表单。
3 访问数据链路层方法
数据链路层处于协议栈的第2层, 基于物理层之上。所有的上层协议都要直接或间接使用数据链路层协议提供的服务。在大多数情况下, 访问数据链路层协议所提供的服务是内核中的一些高层协议实现的。但在某些情况下, 应用程序不经过高层协议, 需要直接访问数据链路层所提供的服务, 捕获技术就是应用程序获取数据链路层的报文。当前几乎所有的操作系统都支持应用程序直接访问数据链路层, 其中, 应用最广泛的报文捕获函数库是基于BPF过滤机制的Libpcap库。下面我们来介绍基于BPF过滤机制的捕获方法和Libpcap分组捕获函数库。
3.1 BSD分组过滤器BPF
BSD分组过滤器BPF (Berkeley Packet Filter) , 即伯克利数据包过滤器, 它是洛仓兹伯克利试验室的研究人员Steven Mc Canne和Van Jacobson研究的一种用于Unix内核的数据包过滤体制, 是实现访问数据链路层服务的接口。BPF不仅能够捕获经过数据链路层的所有分组, 最重要的是它还提供分组过滤功能, 即捕获应用进程想要的分组信息。通过ined命令, 可以配置BPF设备属性, 如装入过滤器, 设备读超时、缓存大小、打开混杂模式等等。设置完成后, 就可以读写BPF设备了。把安装好过滤程序的BPF与网络接口相关连, 就可以实现对输入的分组选择性地接收。BPF还采用了以下三种技术来减少开销:
1) BPF过滤器运行在内核中, 从而减少了从BPF到应用进程之间数据量的拷贝。
2) BPF传递给应用进程的是满足条件分组中的部分数据, 这被称为捕获长度 (capture length) 。因为大部分应用进程需要的是分组头部, 而非分组的全部数据。这同样减少了从内核到用户空间数据量的拷贝。
3) BPF采用双缓存技术 (double buffering) , 将要传送给应用进程的分组数据先存入缓存, 当缓存已填满或者读超时时才将分组数据传送给应用进程。缓存的存在减少了系统调用次数, 即降低了系统开销。在每个应用进程中BPF都设置了两个缓冲区, 当一个缓冲区给应用进程传送数据时, 启用另一个缓冲区来填装数据, 这就是典型的双缓冲技术。
3.2 分组捕获函数库Libpcap
Libpcap (Libaray for Packet Capture) , 即分组捕获函数库, 是由劳伦斯鉻伯克利国家实验室开发的一个在用户级进行实时分组捕获的接口, 其特点是独立于操作系统, 成为开发跨平台的分组捕获和网络监视软件的首选工具。Libpcap for Win32将Libpcap移植到了微软的Windows系列操作系统上, 一个最常用的实例就是Win Pcap。它是一个基于Libpcap模型, 在Win32平台上实现分组捕获和网络分析的体系结构。
4 结束语
网络数据捕获技术是网络安全监控的基础, 本文通过对网络数据捕获技术的研究, 简要介绍了数据捕获的概念、基本原理和捕获机制, 为网络安全解决方案提供了理论依据。
摘要:网络监控是保障网络安全的基本措施之一。在网络拓扑中的关键位置对数据报文进行捕获、分析和监控。本文着重分析了数据捕获的概念和基本原理、数据包捕获机制, 以及捕获数据包的方法。
关键词:网络安全,数据捕获,捕获机制
参考文献
[1]郑挺.高速网络安全监控系统的研究与实现, 国防科学技术大学, 2003。
[2]李爱平, 郝英.网络监控系统中数据包捕获分析模块的实现, 网络安全, 2007。
连续相位调制及其捕获技术研究 篇7
1 CPM信号调制仿真与DSP实现
1.1 CPM调制信号形式
在连续相位调制信号中,信息符号是通过改变载波的相位来发送的,对于所有的符号序列,传输相位是连续的。CPM传输信号表示为
其中T为符号间隔,E为符号能量,fc为载波频率,α=(α1,α2,α3,…)为经过映射的M进制数据序列。一般情况下M∈{2,4,6,8,16…},αi∈{±1,±3,…,±(M-1)}[1]。
对于第n个码元,相位函数为
其中h为调制指数,为相位成形滤波器频率相应g(t)的积分函数
g(t)函数的连续性决定了调制信号的相位φ(t,)连续,其中脉冲函数g(t)是一个有限持续时间的函数,也就是说,g(t)在有限时间段[0,LT]具有非零的函数值,其中L为整数。在g(t)取不同函数时,都会有t<0时,q(t)=0且t>LT时,q(t)=0.5,所以式(2)可化为
其中θn为累计的相位,φ(t,)为当前码元的附加相位状态。
1.2 CPM信号调制状态
脉冲函数通常取矩形脉冲REC、升余弦脉冲RC、高斯最小相移键脉冲,不同对应不同的调制状态。文中采用的是L=3的时域升余弦函数作为g(t),
相位积分函数q(t)如图1(a)所示。
因此前后码元的附加相位之间的影响可由图1(b)得到,当前码元的附加相位受到前面2个码元的影响。由此附加相位函数可以分解为
由图1(b)可知,只要将q(t)函数分段表示成q、表示图1(a)中区间(0,5)的q(t)函数,表示图1(a)中区间(5,10)的q(t)函数,表示图1(a)中区间(10,15)的q(t)函数,就能够将式(6)简化为
在Matlab和DSP中,处理的是时间离散的信号,故,要离散化积分函数,因此分别取、、q3为各分段积分函数上离散化的值。如文中每个码元内采样点数是5,所以对、、也分别做5点采样。如图1所示,区间(10,15)为当前码元受前2个码元的影响。
文中采用的向量、、取值如下
1.3 CPM调制的Matlab仿真与DSP实现
下面具体介绍L=3,M=8,g(t)为升余弦的CPM信号的调制方法,调制原理框图[3]如图2所示。
在Matlab中可以直接用math函数,故图2中第3步计算cos和sin值很方便,但是在DSP中没有math函数可以调用,因此存在求cos和sin值的问题。目前比较常用的有3种方法:CORDIC算法、查表法[3]、泰勒级数展开法。文中采用的是第2种方法。
下面分析一下用查表法所需的开销
(1l)θn=hπαi(L=3,h=1/8,M=8)αi∈{±1,±3,…,w±7},所有θn的状态只有16种情况θn={0,π/8,2π/8,…,15π/8},要存储cos和sin值各16个;
(2)φ(t,)=2παiq(t-iT)(L=3,h=1/8,M=8),状态值太多,有8×8×8×5个状态,sin和cos值加起来超过5 k,占用资源太多。可以将[0,π/2]划分成2 000个区间,分别计算出cos值并存贮,这样只需要2 000个空间。查表前,只要计算出φ(t,),然后乘以8 000后取整,根据取整后的值就可以知道φt,)所在的象限,再查表便可以得到cosΦ(t,),最后计算得到sinΦ(t,)。
总体上,2 kbit左右的存储开销对于DSP来说,是可以接受的。
文中使用的硬件实验平台主处理器是TI公司的TMS320VC33,是一款具有Super Harvard结构的32位浮点型DSP,系统外部时钟12 MHz,片内存贮空间34 k×32 bit。并具有一个同步串口Sport,可以同时收发,进行全双工通讯。该平台利用Sport与A/D、D/A芯片TLC320AC02连接,利用TRC-80电台作为收发信机。同时用CCS作为编程平台。
图3为Matlab仿真图,将CPM信号的PSD与8PSK、8FSK信号的PSD进行了比较。很明显CPM信号的频谱利用率高、旁瓣小、带外辐射小。用DSP实现的CPM调制信号波形如图3(e)所示。
2 CPM信号的捕获
信号捕获对于信号的解调是极其关键的,它是解调过程的第一步,如果出现假捕获,无疑对处理器开销很大,而且浪费资源,捕获技术的好坏在很大程度决定了系统的质量[5]。
CPM信号的相位记忆性决定后,在捕获过程中可以采用差分相关,但是差分相关对于DSP的实现开销比较大,速度也慢,与直接序列相关比较,差分相关相当于做2次直接相关的开销。
首先要说明文中所用的CPM信息帧格式为:4个64位前导Walsh序列+200位信息序列。发送信息方式为突发方式。码元速率是19.2 kbps,采样频率为96 kHz,载波fc=16 kHz。做相关运算与FFT时,每个码元的5个采样点只用其中一个样点值,文中选用第3个样点。本地序列采用是64位Walsh序列调制后的复信息{e-j(ωt+wΦ1),e-j(ωt+Φ2),…,e-j(ωt+Φ64)}。
具体的DSP捕获步骤如下:
(1) DSP通过A/D收到采样值,通过Hilbert滤波器,得到接收信号的复数形式;
(2)将接收到的复数信息与本地序列做64点直接相关运算,记录相关值;
(3)当某个相关值大于门限且保持其值最大超过时间,即初步认为其为相关峰;
(4)对相关峰处的接收数据,卷积本地序列后做64点FFT,计算信噪比SNR,如大于门限就判断此相关峰为“真”峰值;
(5)当连续接收到M(文中M=4)个“真”峰值后,就认为信号捕获到。
图4显示的是在Matlab中,在1 dB高斯白噪声环境下,两种不同捕获方式其相关峰的情况。可以看出,差分捕获,在弱信噪比情况下,其相关峰起伏较大,而直接序列捕获峰值起伏较小,但从实现的复杂度来看,差分捕获要比直接序列捕获复杂。因此,在DSP中实现时,采用的是直接序列捕获的方式。
图5显示的是用DSP实现的CPM信号捕获的情况。图5(a)显示的是通过电台接收CPM信号,用DSP捕获的相关峰值,由于文中所用发射电台与接收电台距离较近,所以信道质量较好,故捕获效果很好。图5(b)显示的是对相关峰处的数据卷积本地序列后做64点FFT的频谱图。应该在0频处出现峰值,而其他频率点上为噪声,这样可以算出信噪比SNR。图5(c)是捕获相关峰后,开始接收信号的波形,由于受到信道噪声的影响,幅度出现了波动,但基本与调制阶段的波形一致。
3 结束语
采用上述调制方式和捕获方案是可行的,对于DSP资源的占用也是可以接收的,如果采用泰勒级数展开或者CORDIC算法,可以节省很多的资源。同时随着DSP处理速度的提升,捕获过程可以采用256点或更高点数相关与FFT,这样捕获效果更好、抗噪声性能更优、假捕获概率更小。
参考文献
[1]Jeruchim Michel c,Philip Balaban,Sam Shanmugan k.通信系统仿真建模、方法和技术[M].周希元,陈卫东,毕见鑫,译.北京:国防工业出版社,2004.
[2]张辉,曹丽娜.现代通信原理与技术[M].西安:西安电子科技大学出版社,2002.
[3]孙锦华,李建东,金力军.连续相位信号的调制及解调方法[P].中国:申请号CN200510042865.5,2005-12-21.
[4]Krishna R. Narayanan, Ibrahim Altunbas.Design of Serial Concatenated MSK Schemes Basedon Density Evolution [J]. IEEE Transactions on Communications, 2003, 51 (8) : 112-122.
[5]郑继禹,林基明.同步理论与技术[M].北京:电子工业出版社,2003.