




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着i n t e r n e t 的飞速发展,信息安全重要性的也不断增加,人们对信息安全 教育的关注也日益增长。在这种背景下,教师和科研人员需要一个适用于同常教 学和科研的网络仿真工具。本文提出了一种可满足上述要求的网络仿真工具的模 型“网络攻防平台”。 首先,在分析现有文献和仿真工具的基础上,提出了一种多层次、可扩充性 强的网络仿真体系结构。 然后,基于面向对象思想将系统划分为若干模块,给出了各个模块之间的接 口标准:介绍了虚拟集线器、虚拟主机、虚拟防火墙以及虚拟路由器等关键组件 的设计和实现原理;结合实例说明了网络攻防平台对计算机环境的要求和使用方 法。 最后,本文分析了网络攻防平台的不足之处,针对不足之处制定了下一步的 工作目标。 关键词:网络安全入侵检测攻击仿真 a b s t r a c t a b s t r a c t a l o n gw i t ht h er a p i dd e v e l o p m e n to ff u t e m e t ,t h ei m p o r t a n c e o fi n f o m a t i o n s e c u r i t y a r ea l s oi n c r e a s e d ,m o r ea n dm o r ea t t e n t i o n sa r ep a i dt ot h ei n f o r m a t i o n s e c u r i t ye d u c a t i o n u n d e rt h i sc i r c u m s t a n c e s ,t e a c h e r sa n dr e s e a r c h e r sn e e dn e t w o r k s i m u l a t o rw h i c hc a nb es u i t a b l ef o re d u c a t i o na n dr e s e a r c h w ep r o p o s eas i m u l a t o r m o d u l e 一“n e t w o r ka t t a c k i n g & d e f e n c ep l a t f o r m ”i nt h i sp a p e r , w h i c h c a r tm e e tt h e f o r e g o i n gr e q u i r e m e n t s , i nt h eb e g i n n i n go ft h i sp a p e r , an e t w o r ks i m u l a t o ra r c h i t e c t u r ew i t hm u t i l l a y e r a n d s t r o n ge x t e n s i b i l i t yi sp r o p o s e d b a s e do n a n a l y z i n g c u r r e n tl i t e r a t u r ea n ds i l u l a t o r s n e x tw ed e v i d et h es y s t e mi n t os e v e r a lm o d u l e sb a s e do no b j e c t - o r i e n t e dt e c h n i q u e a n dd e s c r i p tt h ei n t e r f a c e sa m o n g t h e s e # m o d a l e s a f t e rt h a t ,w ei n t r o d u c e t h ed e s i g n i n g a n dr e a l i z e rt h e o r ya b o u ts o m ei m p o r t a n td u m m yc o m p o n e n t s ,s u c ha st h eh u b ,t h e h o s t ,t h ef i r e w a l l ,t h er o u t e ra n d s oo n f i n a l l y ,o nt h eb a s i so fa n a l y z m gt h es h o r t a g eo f t h en e t w o r ka t t a c k & d e f e n c e p l a t f o r m ,w em a k eag o a lo f f u t u r ew o r k t oi m p r o v et h ep e r f o r m a n c eo f t h e s y s t e m k e y w o r d :n e t w o r ks e e u r t i y i n t r u s i o nd e t e c t i o n a t t a c k i n g s i m u l a t o r 创新性声明 、6 5 5 3 8 9 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的 研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外, 论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电 子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的 同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名盔簋毽 日期:2 q 匹! 厶王旦 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本 人保证毕业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电 子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校 可以公布论文的全部或部分内容,可以允许采用影印、缩印、或其它复印手 段保存论文。( 保密的论文在解密后遵守此规定) 本人签名: 导师签名: 日期:金! 鉴。 1 2 q 日期:i 口丛。厶i 曼 第一章绪论 第一章绪论 1 1论文背景 近i o 年里,i n t e m e t 在全球得到了迅猛的发展,取得了巨大的成功,已成为 当今世界上覆盖面最广、规模最大、信息资源最丰富的计算机信息网络。作为信 息高速公路的原型,i n t e m e t 极大地推动了世界科学研究的发展,展示了信息网络 对科研发展的巨大推动作用。 网络安全的重要性随着网络的广泛使用和网络之间信息传输量的急剧增长, 一些机构和部门在得益于网络加快业务运作的同时,其网上的数据也遭遇了不同 程度的破坏、删除和非法拷贝,数据的安全和自身的利益受到了严重的威胁。 因为网络的普及和网络安全重要性的增长,大多数高校的计算机学科部丌设 了计算机网络和信息安全这两门课程。这两门课程是以理论为主、实践 为辅,理论指导实践,实践帮助学生更好的理解理论。但是在当前条件下,可供 学生进行试验的设备仅有计算机,学生很难接触到其它的网路设备,这对于教学 来说是一个很大的障碍。而且随着我国高等教育体制的深化改革以及招生规模 的扩大,学生规模急剧膨胀的普通高等院校普遍陷入了实验教学的困境。特别是 + 般工科院校由于底子薄、基础差、经费紧张,实验室建设规模严重滞后于迅速 膨胀的学生规模。 开发“网络攻防平台”会很好的解决上面的问题。 1 2 现有网络仿真工具的比较 根据国内外有关文献资料,我们发现国外有一些相关论文和仿真软件,国内 则很少。表1 1 列出了现有的几种仿真工具及其功能比较。 o p n e t 、b o n e s 和c o m n e t 等网络仿真软件都已发展的非常成熟,主要面 向专业人士,帮助客户进行网络结构、设备和应用的设计、建设、分析和管理, 可以模拟大型、复杂的网络,功能强大,结果输出形式多样,适合专业人士和企 业使用。但是对于教师和学生说,这些软件价格非常昂贵,使用起来也十分复杂, 需要一段时间的学习,因此不适合于教学和学习使用。 c n e t 的用途则侧重于协议仿真,可以仿真在点对点连接和i e e e8 0 2 3 的网络 环境,在其中进行数据链路层、网络层以及传输层的网络协议试验。 网络攻防平台的分析与设计 表1 1 几种现有仿真t 具的比较 0 o p n e tb o n e sc o m n e ti i ic n e t 模拟方法事件驱动事件驱动事件驱动 事件驱动 面向对象建模是是 是是 建模环境图形化编辑器图形化编辑器图形化编辑器命令符编辑器 在已有模型上:修改使用c 忙h 语言在已有模型上修改使用c c + + 语; 模型打胜 绒使用c c 十+ 编制编制新模型或购买对象模型编制新模型 动态观察模拟 支持支持支持支持 过程 使用结果分析器输 仿真结果使用后处理器输出产生标准输出报告图形址示 出 虚拟和现宴共 否否甭否 享代码 w i n d o w sn t w i n d o w s2 0 0 0w l n 9 5 h p - u xu n i x 运行环境u n i xw i n n 丁4 0 s l 刖o sl i n u x s o l a r i ss o l a r i sh p u x h pu x 价格f 分昂贵十分昂贵十分昂贵免费 1 :3 网络攻防平台的要求 为了解决上述问题,网络攻防平台应该同时具有教学功能和可二次开发的功 能,以满足教师、学生以及网络安全研究人员开发的需要。所以,攻防平台应该 具备以下特征: ( 1 )是一个网络仿真工具,网络攻防平台具有与网络安全相关的一些属 性,可以进行协议仿真试验; ( 2 ) 是一个网络攻击与防御的模拟演示平台,在单机上模拟出基本的网络 节点( 和设备) ,然后在这个模拟的基本的网络环境中演示网络攻击与防御的基本 原理和过程,并以可视化的结果呈现出来。 ( 3 ) 是一个真实的网络攻防工具( 平台) ,部署到主机以后能够对网络中 的其他主机进行攻击,并向用户汇报攻击的结果和效果;同时能够对来自网络上 其他机器的攻击进行防御,并向用户报警。 第一章绪论 ( 4 )可以用于教学目的。除了( 1 ) 、( 2 ) 点的功能外,还可以模拟网络上 的一些真实的事件,以形象直观的方式呈现给用户,以加深对网络的理解。 ( 5 )为入侵检测算法研究人员提供一个简单易用的仿真与检测平台,使他 们能够专心致力于检测算法的研究,而不必进行一些重复的、对于检测方法来说 相对不重要的工作( 比如一些底层的网络的控制和读取以及检测结果的反馈等) , 并能够对其研究成果进行验证。 ( 6 )提高代码的利用率。提供虚拟网络和真实网络的转换开关,同一段代 码既可以虚拟网络中使用也可以在真实网络中使用。 1 4 课题任务和论文章节安排 仿真软件有很多种,但是适合网络及信息安全领域中教学和科研的则很少, 需要一个软件来解决上述问题。为此,本文在参考国内外类似软件以及论文后, 做了如下工作: ( 1 ) 分析网络攻防平台的功能需求及现有仿真软件,描绘出网络攻防平台 所需要实现的具体功能; ( 2 ) 根据( 1 ) 中分析的结果,进行概要设计,提出网络攻防平台整体设 计方案,然后结合现有软件的技术,对概要设计进行细化,对每个模块进行详细 设计,并对每个模块进行编码实现; ( 3 ) 开发一些适合教学的示例程序,以便对网络攻防平台进行测试,也为 教学提供一些教具。 本文章节安排如下: 第二章介绍了仿真技术。主要内容包括仿真的定义和作用、仿真方法和仿真 的发展方向。 第三章介绍了开发网络攻防平台中所需要的技术。主要内容包括:i s o o s i 参考模型、t c p i p 参考模型、l i n u x 操作系统以及在l i n u x 操作系统下的一些程 序开发相关的技术等。 第四章讨论了网络攻防平台的整体结构。从宏观的角度描绘了网络攻防平台 的逻辑结构、工作流程以及底层数据流向。 第五章从开发者的角度详细说明了网络攻防平台各个部分的逻辑结构,对外 接口等设计原理。 第六章从普通用户的角度介绍网络攻防平台的功能以及使用方法,并用实例 网络攻防平台的分析与设计 以及插图予以说明。 第七章就本论文研究的内容做了全面的总结,指出需要进一步开展的工作。 第二章仿真系统简介 第二章仿真技术简介 2 1仿真的定义和作用 1 9 6 1 年,g w m o r g e n t h a t e r 首次对“仿真”进行了技术性定义,即“仿真意 指在实际系统尚不存在的情款下对于系统或活动本质的实现”。 3 1 为了研究、分析、设计和实现一个系统,需要进行试验。试验的方法基本上 可以分为两大类:一种是直接在真实系统上进行,另一种是先构造模型,通过模 型的试验来代替或部分代替对真实系统的试验。传统上大多采用第一种方法,随 着科学技术的发展,尽管第一种方法在某些情况下仍然是必不可少的,但第二种 方法日益成为人们更为常用的方法,主要原因在于: ( 1 ) 系统可能还处于设计阶段,真实的系统尚未建立,人们需要更准确的了 解未来系统的性能,这能通过对模型的试验来了解: ( 2 ) 在真实系统上进行试验可能会引起系统破坏或发生故障,可能会又很大 的风险和损失; ( 3 ) 需要进行多次试验时,难以保证每次的试验条件相同,因此无法准确判 断试验结果的优劣: ( 4 ) 试验时间太长或费用昂贵。 仿真技术已经成为微分、研究各种系统,尤其是的复杂系统,它不仅应用于 工程领域,如机械、航空、航天、电力、冶金、化工、电子等方面,还广泛应用 与非工程领域,如交通管理、生产调度、库存控制、生态环境以及社会经济等方 面。 2 2 仿真方法 在数字计算机上对系统进行仿真时,首先遇到的问题是数字计算机的数值及 时间具有离散性,而被仿真的系统的数值及时间具有连续性,如何用离散的事件 来模拟连续的事件是仿真的一个重要技术。 从根本意义上讲,数字计算机所进行的数值计算仅仅是“数字”计算,它表 示数值的精度受限与字长,这将弓c 入误差处理机制:另一方面,这种过程是按特 定的指令顺序逐步进行的,因此还必须将时间离散化,这样就只能得到离散时间 点上的系统性能。用数字仿真的方法对微分方程的数值积分是通过某种数值计算 方法来实现的。任何一种计算方法都只能是原积分的一种近似。因此,系统仿真 从本质上是从时间、数值两个方面对原系统进行离散化,并选择合适的数值计算 方法来近似积分运算,由此得到近似于原始连续模型的离散模型。 网络攻防平台的分析与设计 仿真系统可以分为连续和离散两大类。针对连续系统可以采用时域离散相似 法、频域离散相似法和偏微分方程方针法,以及并行仿真技术等;对于离散系统 则可以采用事件调度、活动扫描、进程交互等方法。不同的仿真方法适用于不同 的系统,有时常常是将集中方法混合使用来达到所要仿真的效果。 2 3 仿真的发展方向 随着计算机计算能力的飞速提高,各种新的仿真算法不断涌现,原有的单维 模拟信息的仿真系统,将被多维化信息的和自然的人机交互仿真系统“虚拟现实 系统”所代替。 虚拟现实系统有三个特征: 沉浸:虚拟现实追求的目标是力图使用户在计算机产生的三维虚拟环境中有 身临其境的感觉。环境中的一切看上去都是真的,用户觉得自己使环境中的一部 分,如同在现实世界中一样,而不是旁观者。 、 交互:虚拟环境与用户的交互是三维的,用户是交互的主体,而且是多感知 的。 创意:过去用户只能根据定量计算为主的结果加深对对象的认识,虚拟现实 则可以使人从定量和定性两者的综合中得到感知和理性的认识,从而得到启发、 深化概念并萌发新意。 根据虚拟现实系统的基本特征,可以看到,虚拟现实系统是一个十分复杂的 系统,但同时也必然会为仿真开启一扇崭新的大门,在系统设计、系统分析、教 育、训练、游戏、产品开发及制造过程中得到非常广泛的应用。 第三章技术背景 第三章技术背景 本章将简要介绍“网络攻防平台”所涉及到的一些背景知识。 3 1 i s o o s i 参考模型 国际标准化组织( i s o ) 开发了开放式系统互联( o s i r m ) 参考模型,以促 进计算机系统的开放互联。开放式互联就是可在多个厂家的环境中支持互联。该 模型为计算机间开放式通信所需要定义的功能层次建立了全球标准【4 1 1 5 1 。 o s i 模型将通信会话需要的各种进程划分成7 个相对独立的功能层次,这砦 层次的组织是以在一个通信会话中事件发生的自然顺序为基础的。 下面对o s i 模型进行详细的介绍,表3 1 描述了o s i ,1 3 层提供了网络访 问,4 7 层用于支持端端通信。 3 1 1 物理层 表3 1 0 s i 参考模型 l io s i 参考模型层次描述o s l 层次号 |应用层7 表示层6 会话层5 传输层4 网络层3 数据链路层2 物理层1 最底层称为物理层( p h y s i c a ll a y e r ) ,这一层负责传送比特流,它从第二层数 据链路层接收数据帧,并将帧的结构和内容串行发送即每次发送一个比特,然后 这些数据流被传输给d l l 重新组合成数据帧。 3 1 2 数据链路层 o s i 参考模型的第二层称为数据链路层( d l l ,d a t al i n kl a y e r ) 。与所有其他 层一样,它肩负两个责任:发送和接收。它还要提供数据有效传输的端端( 端到 端) 连接。 在发送方,d l l 需负责将指令、数据等包装到帧中,帧( f r a m e ) 是d l l 层 网络攻防平台的分析与设计 生成的结构,它包含足够的信息,确保数据可以安全地通过本地局域网到达目的 地。d l l 的另一个职责是重新组织从物理层收到的数据比特流。不过,如果帧的 结构和内容都被发出,d l l 并不重建一个帧。相反,它将到达的比特流写入缓冲 区,直到这些比特流构成一个完整的帧。不论哪种类型的通信都要求有第一层和 第二层的参与,不管是局域网还是广域网都是如此。 3 1 3 网络层 网络层负责在源机器和目标机器之间建立它们所使用的路由。这一层本身没 有任何错误检测和修正机制,因此,网络层必须依赖于端端之间的由数据链路层 提供的可靠传输服务。 网络层用于本地l a n 网段之上的计算机系统建立通信,它之所以可以这样 做,是因为它有自己的路由地址结构,这种结构与第二层机器地址是分开的、独 立的。这种协议称为路由或可路由协议。路由协议包括i p 、n o v e l l 公司的i p x 以 及a p p l e t a l k 协议。 网络层是可选的,它只用于当两个计算机系统处于不同的由路由器分割开的 网段这种情况,或者当通信应用要求某种网络层或传输层提供的服务、特性或者 能力时。例如,当两台主机处于同一个l a n 网段的直接相连这种情况,它们之 间的通信只使用l a n 的通信机制就可以了( 即o s i 参考模型的一二层) 。 3 1 4 传输层 传输层提供类似于数据链路层所提供的服务,传输层的职责也是保证数据在 端端之间完整传输,不过与数据链路层不同,传输层的功能是在本地l a n 网段 之上提供这种功能,它可以检测到路由器丢弃的包,然后自动产生一个重新传输 请求。 传输层的另一项重要功能就是将收到的乱序数据包重新排序,数据包乱序有 很多原因。例如,这些包可能通过网络的路径不同,或者有些在传输过程中被破 坏。不管是什么情况,传输层应该可以识别出最初的包顺序,并且在将这些包的 内容传递给会话层之前要将它们恢复成发送时的顺序。 3 1 5 会话层 相对而言,这一层没有太大用处,很多协议都将这一层的功能与传输层捆绑 在起。会话层的功能主要是用于管理两个计算机系统连接间的通信流。通信流 称为会话,它决定了通信是单工还是双工。它也保证了接受一个新请求一定在另 一请求完成之后。 第三章技术背景 3 1 6 表示层 表示层负责管理数据编码方式,不是所有计算机系统都使用相同的数据编码 方式,表示层的职责就是在可能不兼容的数据编码方式,例如在a s c i i 和e b c d i c 之问,提供翻译。表示层可以用在浮点格式间的调整转换并提供加密解密服务。 3 1 7 应用层 o s i 参考模型的最顶层是应用层,尽管它称为应用层,但它并不包含任何用 户应用。相反,它只在那些应用和网络服务间提供接口。 3 2 t c p i p 参考模型 与o s i 参考模型不同,t c p i p 模型更侧重于互联设备间的数据传送,而_ i 是 功能层次划分。它通过解释功能层次分布的重要性来做到这一点,但它仍为设计 者具体实现协议留下很大的余地。因此,o s i 参考模型在解释互联网络通信机制上 比较适合,但t c p i p 成为了互联网络协议的市场标准【7 】【酗。 t c p i p 参考模型比o s i 模型更灵活,表3 1 对此有所描述。表3 2 列出了各协 议在t c p i p 参考模型中的位置t m 】。 表3 2o s l 参考模型和t c p 1 p 参考模型比较 o s i 参考模型层次描述o s i 层次号r c p i p 模型层次描述 应用层7 表示尼6应用层 会话层 5 传输层 传输层 4 网络层 网络层3 数据链路层 2网络接口层 物理层 1 3 2 1 网络接口层 这是t c p i p 协议的最低一层,包括有多种逻辑链路控制和媒体访问协议。网 络接口层的功能是接收i p 数据报并通过特定的网络进行传输,或从网络上接收物 网络攻防平台的分析与设计 理帧,抽取出i p 数据报并转交给网络层。 3 2 2 网络层 网络层处理报文的路由管理。这一层根据接收报文的信息决定报文的去向。 该层包括以下协议:i p ( 网际协议) 、i c m p ( i n t e m e tc o n t r o lm e s s a g ep r o t o c o l 、因 特网控制报文协议) 、a r p ( a d d r e s sr e s o l u t i o n p r o t o c o l ,地址解析协议) 、r a r p ( r e v e r s ea d d r e s sr e s o l u t i o np r o t o c o l ,反向地址解析协议) 。该层负责相同或不同 网络中计算机之间的通信,主要处理数据报和路由。在i p 层中,a r p 协议用于将 i p 地址转换成物理地址,r a r p 协议用于将物理地址转换成i p 地址,i c m p 协议用 于报告差错和传送控制信息。i p 协议在t c p i p 协议组中处于核心地位。 3 2 _ 3 传输层 该层提供t c p ( 传输控制协议) 和u d p ( u s e rd a t a g r a mp r o t o c o l ,用户数据 报协议) 两个协议,它们都建立在i p 协议的基础上,其中t c p 提供可靠的面向 连接服务,u d p 提供简单的无连接服务。传输层提供端到端,即应用程序之间的 通信,主要功能是数据格式化、数据确认和丢失重传等。与o s i 中传输层不一样, t c p 不保证报文的准确传输。其基本作用是管理源和目的之间的报文传输。o s i 中传输层保证报文是经过校验的,并且假如报文有错,报文会被要求重传。 3 2 4 应用层 t c p i p 协议的应用层相当于o s i 模型的会话层、表示层和应用层,它向用户 提供一组常用的应用层协议,其中包括:t e l n e t 、s m t p 、d n s 等。此外,在应用 层中还包含有用户应用程序,它们均是建立在t c p f l p 协议组之上的专用程序。 表3 3 各协议在t c p i i p 中的位置 t c p i p 协议t c p i p 模型 f t p 、t e l n e t 、s m t p 、r p c 、r l o g i n 、s n m p 、 应用层 d n s 、t f t p 、b o o t p 、h t t p t c p 、u d p传输层 【p 、i c m p 、i g m p 、a r p 、r a r p网络层 t c p i p 参考模型是在它所解释的协议出现很久以后才发展起来的,更重要的 是,由于它更强调功能分布而不是严格的功能层次的划分,因此它比o s i 模型更 灵活。 第三章技术背景 3 3l i n u x 操作系统 简单地说,l i n u x 是一套免费使用和自由传播的类u n i x 操作系统,是一个基 于p o s i x 和u n i x 的多用户、多任务、支持多线程和多c p u 的操作系统。它能 运行主要的u n i x 工具软件、应用程序和网络协议。它支持3 2 位和6 4 位硬件。 l i n u x 继承了u n i x 以网络为核心的设计思想,是一个性能稳定的多用户网络操作 系统。它主要用于基于i n t e lx 8 6 系列c p u 的计算机上。这个系统是由全世界各 地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权 制约的、全世界都能自由使用的u n i x 兼容产品。1 1 2 1 l i n u x 以它的高效性和灵活性著称。l i n u x 模块化的设计结构,使得它既能在 价格昂贵的工作站上运行,也能够在廉价的p c 机上实现全部的u n i x 特性,具有 多任务、多用户的能力。l i n u x 是在g n u 公共许可权限下免费获得的,是一个符 合p o s i x 标准的操作系统。l i n u x 操作系统软件包不仅包括完整的l i n u x 操作系 统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个 窗r :1 管理器的x w i n d o w s 图形用户界面,如同我们使用w i n d o w sn t 一样,允许 我们使用窗口、图标和菜单对系统进行操作。 l i n u x 具有u n i x 的优点:稳定、可靠、安全,有强大的网络功能。在相关软 件的支持下,可实现w w w 、f t p 、d n s 、d h c p 、e m a i l 等服务,还可作为路由 器使用,利用i p c h a i n s i p t a b l e s 可构建n a t 及功能全面的防火墙。 l i n u x 有很多发行版本,较流行的有:r e d h a tl i n u x 、d e b i a nl i n u x 、r e d f l a g l i n u x 等。r e d h a tl i n u x ,支持i n t e l ,a l p h a 和s p a r c 平台,具有丰富的软件包。 可以说,r e d h a tl i n u x 是l i n u x 世界中非常容易使用的版本,它操作简单,配置 快捷,独有的r p m 模块功能使得软件的安装非常方便。 在系统设计时决定采用l i n u x 为操作系统,主要是考虑到l i n u x 的许多优良 特性: 开放性 开放性是指系统遵循世界标准规范,特别是遵循开放系统互连( o s i ) 国际 标准。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可以方便地实现互 连。 多任务 多任务是现代计算机的最主要的一个特点。它是指计算机同时执行多个程序, 而且每个程序的运行互相独立。l i n u x 系统根据进程的优先级调度每一个进程访 问微处理器。由于c p u 的处理速度非常快,其结果是启动的应用程序看起来好像 网络攻防平台的分析与设计 在并行运行。事实上程序之间有很短的时间延迟的,但是用户并不能觉察到。这 样网络攻防平台中的每个网络设备可以使用独立的线程来实现,最大程度的模仿 真实情况。 可靠的系统安全 l i n u x 采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子 系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全 保障。 良好的可移植性 可移植性是指将操作系统从一个平台转移到另一个平台使它仍然能按照其自 身的方式运行的能力。l i n u x 是一种可移植的操作系统,能够在从微型计算机到 大型计算机的任何环境中和任何平台上运行。可移植性为运行l i n u x 的不同计算 机平台与其他任何机器进行准确而有效的通信提供了手段,不需要另外增加特殊 和昂贵的通信接口。这样我们的系统可以方便的移植,避免了不同系统中的重复 丌发问题。 3 4 p o s i x 线程 “网络攻防平台”中的每个网络设备中都使用了至少个线程,以达到网络 设备相对独立的效果,为了尽可能的模仿实际设备的特性。本节对涉及到的 p o s i x 线程的相关内容做简单的介绍。 p o s l x 1 4 j 【巧1 ( p o r t a b l eo p e r a t i n gs y s t e mi n t e r f a c e 可移植操作系统接口) 线程 是提高代码响应和性能的有力手段。线程类似于进程。如同进程,线程由内核按 时间分片进行管理。在单处理器系统中,内核使用时间分片来模拟线程的并发执 行,这种方式和进程的相同。而在多处理器系统中,如同多个进程,线程实际上 一样可以并发执行。相对进程而言,线程是一个更加接近于执行体的概念,它可 以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。 在串行程序基础上引入线程和进程是为了提高程序的并发度,从而提高程序运行 效率和响应时间。 p o s i x 线程相关的函数和类型是以“p t h r e a d ”作为前缀,下一级前缀标识 了函数和类型所属的功能组【4 】【扪。参见表3 4 。 第三章技术背景 表3 4p o s i x 线程前缀与功能对照表 前缀功能组描述 o t h r e a d线程本身和一些子程序 p t h r e a d a t t r 线程属性对象 p t h r e a dm u t e x 一 互斥相关的一些函数 p t h r e a d m u t e x a t l r _互斥属性对象 p t h r e a dc o n d条件变量 p t h r e a d c o n d a t t r 条件属性对象 p t h r e a d _ k e y 一 线程的特殊数据键 3 4 1 线程的创建 p o s l x 通过p t h r e a d c r e a t e ( ) j 函数创建线程,a p i 定义如下: i n tp t h r e a dc r e a t e ( p t h r e a d _ t + t h r e a d ,p t h r e a d a t t r _ t + a t t r , v o i d + ( f u n x v o i d + ) ,v o i d + a r g ) p t h r e a d _ e r e a t e 0 执行成功时返回零而失败时则返回非零值。第一个参数 t h r e a d 是p t h r e a dt 类型的指针,该类型在头文件 中定义,通常称为“线 程i d ”( 缩写为”t i f f :) ,可以认为它是一种线程句柄。第二个参数用来定义线程的 某些属性。第三个参数是新线程启动时调用的函数名。当函数返回时,新线程将 终止。f u n ( ) 接受v o i d + 作为参数,同时返回值的类型也是v o i d 。这表明可以 用v o i d + 向新线程传递任意类型的数据,新线程完成时也可返回任意类型的数 据。使用p t h r e a d 中的第四个参数向线程传递一个任意参数。_create0 3 4 2 线程的取消 一般情况下,线程在其主体函数退出的时候会自动终止,但同时也可以因为 接收到另一个线程发来的终止( 取消) 请求而强制终止。 线程取消的方法是向目标线程发c a n c e l 信号,但如何处理c a n c e l 信号则由 目标线程自己决定,或者忽略、或者立即终止、或者继续运行至c a n c e l a t i o n - p o i n t ( 取消点) ,由不同的c a n c e l a t i o n 状态决定。 线程接收到c a n c e l 信号的缺省处理( 即p t h r e a d _ c r e a t e ( ) 宦l j 建线程的缺省状 态) 是继续运行至取消点,也就是说设置一个c a n c e l e d 状态,线程继续运行, 只有运行至c a n c e l a t i o n - p o i n t 的时候才会退出。 根据p o s i x 标准,p t h r e a dj o i n o 、p t h r e a dt e s t c a n c e l 0 、p t h r e a d c o n d _ w a i t ( ) 、 p t h r e a d _ c o n d _ t i m e d w a i t 0 、s e r ew a i t o 、s i g w a i t 0 等函数以及r e a d ( ) 、= m t e o 等会引 网络攻防平台的分析与设计 起阻塞的系统调用都是c a n c e l a t i o n p o i n t ,而其他p t h r e a d 函数都不会引起 c a n c e l a t i o n 动作。如果线程处于无限循环中,且循环体内没有执行至取消点的必 然路径,则线程无法由外部其他线程的取消请求而终止。因此在这样的循环体的 必经路径上应该加入p t h r e a d调用。_testcancel0 下面列出与线程取消相关的p t h r e a d 函数: i n tp t h r e a d _ c a n c e l ( p t h r e a d _ tt h r e a d ) 发送终止信号给t h r e a d 线程,如果成功 则返回0 ,否则为非o 值。发送成功并不意味着b r e a d 会终止。 i n tp t h r e a ds e t c a n c e l s t a t e ( i n ts t a t e ,i n t o l d s t a t e ) 设置本线程对c a n c e l 信号 的反应,s t a t e 有两种值:p t h r e a dc a n c e le n a b l e ( 缺省) 和 p t h r e a dc a n c e ld i s a b l e ,分别表示收到信号后设为c a n c l e d 状态和忽 略c a n c e l 信号继续运行;o l ds t a t e 如果不为n u l l 则存入原来的c a n c e l 状态 以便恢复。 i n tp t h r e a ds e t c a n c e l t y p e ( i n tt y p e ,i n t o l d t y p e ) 设置本线程取消动作的执行 时机,t y p e 由两种取值:p t h r e a dc a n c e ld e f f e r e d 和 p t h r e a dc a n c e la s y c h r o n o u s ,仅当c a n c e l 状态为e n a b l e 时有效,分 别表示收到信号后继续运行至下一个取消点再退出和立即执行取消动作( 退出) ; o l d t y p e 如果不为n u l l 则存入运来的取消动作类型值。 v o i dp t h r e a d t e s t c a n c e l ( v o i d ) 检查本线程是否处于c a n c e l d 状态,如果是, 则进行取消动作,否则直接返回。 3 4 3 线程的互斥 尽管在p o s i xt h r e a d 中同样可以使用i p c 的信号量机制来实现互斥锁m u t e x 功能,但显然s e m p h o r e 的功能过于强大了,在p o s i x t h r e a d 中定义了另外一套专 门用于线程同步的m u t e x 函数。 有两种方法创建互斥锁,静态方式和动态方式。p o s i x 定义了一个宏 p t h r e a dm u t e xi n i t i a l i z e r 来静态初始化互斥锁,方法如下: p t h r e a d _ m u t e x _ tm u t e x = p t h r e a d _ m u t e x j n i t i a l i z e r ; p t h r e a d _ m u t e xt 是一个结构,而p t h r e a d _ m u t e x _ i n i t i a l i z e r 则是一 个结构常量。 动态方式是采用p t h r e a d _ m u t e x _ i n i t 0 函数来初始化互斥锁,a p i 定义如下( 其 中m u t e x a t t r 用于指定互斥锁属性,如果为n u l l 则使用缺省属性) : i mp t h r e a d _ m u t e x _ i n i t ( p t h r e a d _ m u t e xt4 n l u t e x , c o n s t p t h r e a d _ m u t e x a t t rt * m u t e x a t t r ) p t h r e a d _ m u t e x _ d e s t r o y 0 用于注销一个互斥锁,a p i 定义如下: 第三章技术背景 i n tp t h r e a d _ m u t e x _ d e s t r o y ( p t h r e a d _ m u t e x _ t + r n u t e x ) 销毁一个互斥锁即意味着释放它所占用的资源,且要求锁当前处于开放状态。 由于在l i n u x 中,互斥锁并不占用任何资源,因此l i n u x t h r e a d s 中的 p t h r e a dm u t e xd e s t r o y ( ) 除了检查锁状态以外( 锁定状态则返回e b u s y ) 没有其 他动作。 锁操作主要包括加锁p t h r e a dm u t e x _ l o c k 0 、解锁p t h r e a d _ m u t e x u n l o c k ( ) 和测 试加锁p t h r e a dm u t e x 个,不论哪种类型的锁,都不可能被两个不同的 线程同时得到,_ 而必须_ t r 等y l 待o c 解k 0 锁z 。对于普通锁和适应锁类型,解锁者可以是同进 程内任何线程;而检错锁则必须由加锁者解锁才有效,否则返回e p e r m ;对于 嵌套锁,文档和实现要求必须由加锁者解锁,但实验结果表明并没有这种限制, 这个不同目前还没有得到解释。在同一进程中的线程,如果加锁后没有解锁,则 任何其他线程都无法再获得锁。 i n tp t h r e a d _ m u t e x _ l o c k ( p t h r e a d _ m u t e x _ _ t + m u t e x ) i n tp t h r e a dm u t e x _ t m l o c k ( p t h r e a d _ m u t e x _ t + m u t e x ) i n tp t h r e a d _ m u t e x _ t r y l o e k ( p t h r e a d _ m u t e xt + m u t e x ) p t h r e a d _ m u t e xt r y l o c k 0 语义与p t h r e a dm u t e x _ l o c k 0 类似,不同的是在锁已经 被占据时返回e b u s y 而不是挂起等待。 p o s i x 线程锁机制的l i n u x 实现都不是取消点,因此,延迟取消类型的线程 不会因收到取消信号而离开加锁等待。值得注意的是,如果线程在加锁后解锁前 被取消,锁将永远保持锁定状态,因此如果在关键区段内有取消点存在,或者设 置了异步取消类型,则必须在退出回调函数中解锁。 这个锁机制同时也不是异步信号安全的,也就是说,不应该在信号处理过程 中使用互斥锁,否则容易造成死锁。 3 5动态链接库 动态链接库简称d l l ( d y n a m i cl i n kl i b r a r y ) ,是从c 语言函数库和p a s c a l 库单元的概念发展而来的。所有的c 语言标准库函数都存放在某一函数库中,同 时用户也可以用l i b 程序创建自己的函数库。在链接应用程序的过程中,链接器 从库文件中拷贝程序调用的函数代码,并把这些函数代码添加到可执行文件中。 这种方法与只把函数储存在己编译的o b j 文件中相比更有利于代码的重用。 但随着w i n d o w s 、u n i x 以及l i n u x 这样的多任务环境的出现,函数库的方法 显得过于累赘。如果为了完成屏幕输出、消息处理、内存管理、对话框等操作, 每个程序都不得不拥有自己的函数,那么程序将变得非常庞大。操作系统的发展 网络攻防平台的分析与设计 要求允许同时运行的几个程序共享组函数的单一拷贝。动态链接库就是在这种 情况下出现的。动态链接库不用重复编译或链接,一旦装入内存,d l l 函数可以 被系统中的任何正在运行的应用程序软件所使用,而不必苒将d l l 函数的另一拷 贝装入内存。 3 ,5 1 动态链接库的工作原理 “动念链接”这几字指明了动态链接库是如何工作的。对于常规的函数库, 链接器从中拷贝它需要的所有库函数,并把确切的函数地址传送给调用这些函数 的程序。而对于d l l ,函数储存在一个独立的动态链接库文件中。在创建程序时, 链接过程并不把d l l 文件链接到程序上。直到程序运行并调用一个d l l 中的函 数时,该程序才要求这个函数的地址。此时操作系统才在d l l 中寻找被调用函数, 并把它的地址传送给调用程序。采用这种方法,d l l 达到了复用代码的极限。 动态链接库的另一个方便之处是对动态链接库中函数的修改可以自动传播到 所有调用它的程序中,而不必对程序作任何改动或处理。 d l l 不仅提供了函数重用的机制,而且提供了数据共享的机制。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中语文任务群教学与学生自主学习能力培养研究论文
- 初中劳动教育课程实施过程中的家校合作模式研究论文
- 节假保卫日管理制度
- 苗木购销购管理制度
- 茶艺班活动管理制度
- 调压器安装技术规范书
- 融合终端证书请求文件导出流程
- 《一年级下册语文园地三》课件
- 电子商务案例分享-凡客诚品成功之道
- 行政许可案例及分析
- prp技术治疗骨关节疼痛
- 木材的声学与振动特性
- 医疗机构污水管理培训护理课件
- 4D厨房区域区间管理责任卡
- 2023年衡阳市中级人民法院聘用制书记员招聘考试试题及答案
- 区块链原理与实践全套教学课件
- 军事训练伤的防治
- 动物药理课件
- 国开《化工安全技术》形考任务1-4答案
- 我的家乡广西河池宣传简介
- 产业命题赛道命题解决对策参考模板
评论
0/150
提交评论