




已阅读5页,还剩72页未读, 继续免费阅读
(信号与信息处理专业论文)防火墙嵌入式web网管服务器的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
d s, 、ik$h* 北京邮电人学硕。卜论文 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处, 本人签名:翅一 本人承担一切相关责任。 日期:箜! :互监 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论 文注释:本学位论文不属于保密范围,适 本人签名:赵 导师签 用本授权书。 同期p 10 1 m : 防火墙嵌入式w e b 网管服务器的设计与实现 摘要 随着防火墙性能的不断提高,对于防火墙的配置也越来越复杂。 一个强大的防火墙产品如果没有一个精心设计的管理配置模块,它的 效用也许就要大打折扣。通过w e b 对防火墙进行远程管理则是最简 单、最通用、最切实可行的选择。因此,本文设计了一种嵌入式的基 于w e b 的网络管理系统来实现对防火墙的远程管理。 a j a x 技术目前在基于b s 结构的系统中应用得非常广泛,但在 嵌入式系统中应用还并不多见。本文结合a j a x 技术,在基于嵌入式 操作系统v x w o r k s 的嵌入式设备防火墙上设计、实现了一种可 以响应a j a x 请求的多任务嵌入式w r e b 服务器,用来对防火墙进行管 理。 在认证系统中口令占据了非常重要的地位,因此对口令的保护就 变得至关重要。本系统采用了一种基于挑战应答 ( c h a l l e n g e r e s p o n s e ) 方式的一次性口令身份认证机制来保护表单 中的口令。 本论文主要进行的工作:对v x w o r k s 操作系统进行了深入学习; 对w e b 相关技术做了简单的介绍,并重点研究了a j a x 技术;论述了 防火墙基于w e b 的管理方式;在对防火墙嵌入式w e b 网管服务器进 行总体设计基础上设计基于a j a x 请求的嵌入式w e b 服务器;对w r e b 服务器的各个功能模块进行设计与实现;对实现的w e b 服务器进行 功能测试。 根据测试结果,本文设计、实现的基于a j a x 请求的w r e b 服务器 已经基本上达到预期的设计目标,服务器可以对防火墙完成配置并且 对前台页面的a j a x 请求做出正确的响应;可以对用户进行正确的认 证并且对用户的密码进行有效的保护。 关键词:防火墙;嵌入式w e b 服务器;a j a x s o c k e t ;多任务;消息 队列 r l a j a xt e c h n o l o g yw h i c hi sb a s e do nb sa r c h i t e c t u r ei sv e r yp o p u l a r c u r r e n t l y , b u tf e wu s e di ne m b e d d e ds y s t e m s w ej u s tc o m b i n es e v e r a l t e c h n i q u e st a l k e da b o v et od e s c r i b e dad e s i g no fe m b e d d e dw r e bs e r v e ri n d e t a i l ,a n di m p l e m e n ta na j a x b a s e d ,m u l t i t a s k i n g ,e m b e d d e dw e b s e r v e ro ff i r e w a l l i nv x w r o r k s b a s e de m b e d d e do p e r a t i n g s y s t e m t h ep a s s w o r di nt h ea u t h e n t i c a t i o ns y s t e m o c c u p i e sav e r yi m p o r t a n t p o s i t i o n ,s oi t b e c o m e se s s e n t i a lt ot h ep r o t e c t i o no fp a s s w o r d s w - e a d o p t e do n e t i m ep a s s w o r da u t h e n t i c a t i o nm e c h a n i s mw h i c hb a s e do n c h a l l e n g e r e s p o n s et op r o t e c tt h ep a s s w o r di nt h ef o r m 皿i sp a p e rm a i n l yd ot h ef o l l o w i n g w o r k :d e e p l ys t u d yt h ev x w o r k s o p e r a t i n gs y s t e m ;m a k eab r i e fo nt h ew r e br e l a t e dt e c h n o l o g i e s ,a n d f o c u so nt h e a j a xt e c h n o l o g y ;d i s c u s s t h ew e b b a s e df i r e w a l l m a n a g e m e n t ;t o t a l l yd e s i g ne m b e d d e dw e bs e r v e ro ff i r e w a l lf o rn e t w o r k m a n a g e m e n t ,t h e nd e s i g nt h ee m b e d d e dw e bs e r v e rw h i c hi sb a s e do n a j a xr e q u e s t s ;d e s i g na n di m p l e m e n tt h ef u n c t i o n a lm o d u l e so ft h ew e b s e r v e r ;t e s tt h ew e bs e r v e rw h i c hh a sb e e nr e a l i z e d f r o mt e s tr e s u l t sw ec a ns e et h a tt h er e a l i t yo fd y n a m i cp a g e sb a s e d l l i i i 北京邮电人学硕上论文 目录 第一章绪论1 1 1 课题的研究背景1 1 2 嵌入式w e b 服务器研究现状2 1 3 课题的研究意义2 1 4 本论文研究内容以及论文结构一3 第二章防火墙操作系统v x w o r k s 5 2 1v x w o r k s 的主要特点5 2 2v x w o r k s 的多任务环境7 2 3 任务间通信。7 2 3 1 信号量8 2 3 2 消息队列9 2 4s o c k e t 通信。1 2 2 4 1s o c k e t 概j 超1 2 2 4 2s o c k e t 类型1 3 2 4 3s o c k e t 应用1 3 2 4 4s o c k e t 常用函数说明1 5 2 5 本章小结1 6 第三章w e b 相关技术的研究1 7 3 1w e b 概述1 7 3 2u r l 分析。1 7 3 3h t y p 协议分析。1 8 3 3 1h i t p 协议概述1 8 3 3 2h i t p 的操作过程1 8 3 3 3h i t p 的报文结构1 9 3 4c g i 技术2 2 3 5a j a x 技术。2 3 3 5 1a j a x 技术概述2 3 3 5 2e x t j s 概述2 5 3 6 本章小结2 6 第四章防火墙基于w e b 的管理 i v 2 7 北京邮电大学硕l :论义 4 1 网络管理概述2 7 4 2 防火墙的远程管理2 9 4 2 1 传统的网络设备管理方式2 9 4 2 2 基于w e b 的网络管理3 1 4 3 本章小结3 4 第五章防火墙嵌入式w e b 网管服务器的总体设计。3 5 5 1 嵌入式w e b 服务器3 5 5 1 1 嵌入式w e b 服务器概述3 5 5 1 2 嵌入式w e b 服务器模型设计3 6 5 1 3 嵌入式网关接口e g i 设计3 6 5 2 防火墙w e b 网管服务器的整体设计3 8 5 3 本章小结4 0 第六章w e b 服务器各功能模块的设计与实现4 1 6 1 启动消息的处理模块的实现4 1 6 2s o c k e t 消息处理模块的实现4 2 6 2 1 接收请求报文4 3 6 2 2 处理请求报文。4 4 6 3e g i 的实现4 6 6 3 1 方案设计。4 6 6 3 2 实现流程4 8 6 4h t r p 会话表的实现4 8 6 4 1 方案设计4 9 6 4 2 实现流程5 0 6 4 3 定时器消息处理5 0 6 5 身份认证的实现5 1 6 5 1 方案设计5 1 6 5 2 安全性分析5 2 6 5 3 实现流程5 3 6 6 本章小结5 4 第七章w e b 服务器各功能测试 5 5 7 1a j a x 功能实现测试5 5 7 1 1 功能验证一5 5 7 1 2 测试结果分析5 6 7 2h t t p 会话测试5 7 7 2 1 功能验证5 7 7 2 2 测试结果分析5 8 7 3 身份认证测试5 8 v v i f 1,j,i t1¥j:。 ;t:g,_,1 北京邮电人学硕j j 论文 1 1 课题的研究背景 第一章绪论 进入2 0 世纪9 0 年代以后,以凶特网( i n t e r n e t ) 为代表的计算机网络得到 了飞速的发展,已从最初的教育科研网络逐步发展成为商j i k 网络,并已成为仅次 于全球电话网的世界第二大网络。人们的工作、学习和生活方式正在发生巨大变 化,效率也大为提高。 能够将任何地方的任何一台计算机与另外一个地方的另一台计算机连接起 来,这既有好的一边也有不好的一面。对于家庭个人用户来说,在i n t e r n e t 上漫游充满了各种乐趣。但是对于公司的安全管理员来说,这是一种梦魇。大多 数公司有大量的保密信息放在网络上,例如交易的秘密、产品开发计划、市场策 略、客户信息等等。将这些信息暴露给竞争对手会带来可怕的后果。除了信息往 外泄漏的危险性以外,同时也还存在信息漏进来的危险性。尤其是病毒、蠕虫和 其他的数字有害物可能会破坏安全性、销毁有用的数据,消耗管理员的大量精力 以清除他们留下的混乱局面。这些有害物通常是由于粗心的雇员在玩各种新奇的 游戏时引进来的1 1 1 。 为了有效地保护计算机及信息资源不受侵害,可以采取许多办法,其中在网 络中设置防火墙是运用非常广泛和效果最好的选择。它可以有效地防御网络中的 各种威胁,并且做出及时的响应,将那些危险的连接和攻击行为拒之门外,从而 降低网络运行的风险。 防火墙是一种由软件、硬件构成的系统,用来在两个或者多个网络之间实施 存取控制策略。防火墙既可以是一台路由器、一台个人p c ,也可以是由多台主 机构成的体系f 2 1 【3 1 。 防火墙的最主要的功能有两个:一个是阻止,另一个是允许。阻止就是阻止 某种类型的报文通过防火墙;允许的功能恰好与阻止相反。但是,大多数情况下, 防火墙的功能是阻止。 防火墙一般安放在被保护网络的边界,要使防火墙起到安全保护作用,必须 做到下面几点【4 】: ( 1 ) 所有进出被保护网络的报文必须要经过防火墙 ( 2 ) 所有通过防火墙的报文必须经过安全策略的过滤或者是防火墙的授权 ( 3 ) 防火墙必须能经得住对自身的攻击 实际上,防火墙是在可信网络和不可信网络之间的一个缓冲,是一个防范从 其他不可信网络发起的攻击的屏障。 随着防火墙性能的不断提高,对于防火墙的配置也越来越复杂。防火墙产品 等多项工程中。在国内,2 1 世纪初,东北大学的w e b b i t 串口转以太网解决方案 w r e b i t 样机正式发布。w e b i t 是将设备智能化、网络化的一个全面的解决方 案。它是以i n t e r n e t 为要素的新的网络设备体系结构,它的基本思想是将一个独 立的、低成本的w e b 服务器嵌在一台设备中,从而使设备具有独立的网络智能。 以上仪器不仅价格昂贵,而且功能固定,无法按照需要进行扩展。因此利用功能 强大的处理器和嵌入式实时操作系统,设计一种通用w e b 服务器具有很高的应 用价值和发展前景。 1 3 课题的研究意义 目前存在许多传统的w e b 服务器,传统w e b 服务器主要用于处理较大的客 户量同时并发访问。由于嵌入式系统跟通用计算机系统有所不同,嵌入式系统的 资源是很有限的,所以嵌入式w e b 服务器有自己的结构特点。当w e b 服务器应 2 用在嵌入式系统中时,需要实现瘦w e b 服务器。 随着w r e b 2 o 的发展,a j a x 技术目前在基于b s 结构的系统中应用得非常广 泛,但在嵌入式系统中应用还并不多见。用a j a x 异步请求的方式来处理数据, 主要从服务器端传输少量的数据信息,在浏览器端,利用j a v a s c r i p t 和d o m 等 相关技术,就能构造出完整的h t m l 页面。这样服务器端只需要处理应用的数 据就可以了,界面的构造和显示就分担给了浏览器。不仅可以减轻服务器端的负 担,还可以让界面有更多的变化,而且不涉及与h t m l 相关的页面内容,实现 了界面与应用的分离。采用基于a j a x 请求的w r e b 服务器不仅节省了页面的加载 时间,也节省了大量的带宽资源。本文正是把这项技术应用到防火墙嵌入式w e b 网管服务器中,设计、实现了一种可以响应a j a x 请求的多任务嵌入式w r e b 服务 器,用于对防火墙进行管理。本文详细论述了该嵌入式w e b 服务器各个功能的 设计和实现。 1 4 本论文研究内容以及论文结构 本文结合a i a x 技术,在基于嵌入式操作系统v x w o r k s 的嵌入式设备防 火墙上设计、实现了一种可以响应a j a x 请求的多任务嵌入式w e b 服务器,用来 对防火墙进行管理。 本文的内容组织如下: 第一章:绪论。本章简要介绍嵌入式防火墙的概念和管理方式、嵌入式w e b 服务器及其应用,对研究的目的和内容进行了说明。 ? 第二章:防火墙操作系统v x w o r k s 。本章重点介绍了v x w o r k s 下的任务的 概念、任务间通信方式及s o c k e t 通信过程流程。 第三章:w e b 相关技术的研究。本章首先介绍了w e b 的概念,以及w e b 的 支撑技术:u r l 、h t r p 协议、c g i 等技术;然后对当前热门的a j a x 技术做了 简单的介绍,最后介绍了本系统前端页面要采用的一个很优秀的a j a x 框架 e x t j s 。 第四章:防火墙基于w e b 的管理。本章主要介绍了防火墙基于w e b 管理的 优点以及基于w e b 管理的两种实现方式。 第五章:防火墙嵌入式w e b 网管服务器的总体设计。本章首先介绍了嵌入 式的w e b 服务器与传统的w e b 服务器之间的区别,然后对现有的嵌入式w e b 服 务器进行了改进,引入了a j a x 技术,同时,详细介绍了该改进w e b 服务器的各 个模块之间的交互关系,以及负责与各个模块交互的主任务流程 第六章:w e b 服务器各功能模块的设计与实现。本章对w e b 服务器各个功 能模块分别进行详细设计,给出设计流程图以及一些重要的数据结构。主要内容 3 4 报文的 验证 的发展 嵌 发 操 信 军 策 越的实时性,被一些网络安全设备商应用到防火墙上。主要是因为v x w o r k s 有 以下主要特剧9 j : ( 1 ) 高性能的微内核设计 v x w o r k s 的微内核具有全部实时特性,包括迅速的多任务调度、中断支 持以及同时支持抢占式调度和时间片轮转调度。与此同时,该微内核还具有 系统负担小、对外部事件的响应时间确定等特点。 ( 2 ) 可裁剪的运行软件 v x w o r k s 在设计之初就具有可裁剪特性,使得开发者可以对操作系统的 功能、大小进行增减,从而为自己应用程序保留了更多的系统资源。利用 t o r n a d o 的工程项目管理工具,可以十分轻松的对v x w o r k s 的各种功能选项 进行增减。 ( 3 ) 丰富的网络支持 v x w o r k s 是第一个集成标准t c p i p 网络功能的实时操作系统。到目前 为止,v x w o r k s 的t c p i p 协议支持最新的b e r k e l e y 网络协议。 ( 4 ) p o s i x l 0 0 3 1 b 兼容 v x w o r k s 支持p o s i x l 0 0 3 1 规范的基本系统调用。包括进程原语、文件 目录、i o 原语、语言服务和目录管理等。另外,v x w o r k s 还遵循p o s i x l 0 0 3 1 b 实时扩展标准,包括异步i o 、计数信号量、消息队列、信号、内存管理( 页 面锁定) 和调度控制等。 ( 5 ) b s p 移植 风河公司提供了大量预制的、支持许多商业主板及评估版的b s p 。同时, v x w o r k s 的开放式设计以及高度的可移植性使得用户在使用不同的目标板 5 务( 没有被挂起或正在等待资源) 中,优先级最高的任务被分配c p u 资源。 换句话说,当一个高优先级的任务变为可执行态时,它会立即抢占当前正在 运行的较低优先级的任务。 ( 1 1 ) 任务间的通信与同步机制 v x w o r k s 中提供了信号量、消息队列和时间等机制来实现任务间的通信 与同步。 ( 1 2 ) 任务与中断之间的通信机制 尽管真实世界的时间通常作为中断方式到来,但为了提供有效地排队、 优先化和减少中断时延,通常希望在终端服务程序【i s r l 中仅作一些必要的处 理,其他的处理工作尽可能交给某个特定的上层任务来处理。所以,任务和 i s r 之间需要存在通信机制。信号量和消息队列同样可以实现该功能。 6 2 2 般是由多个进程或者线程来实现,本系统实现的w e b 服务器是基于v x w o r k s 操 作系统的,而在v x w o r k s 中的执行单位是任务,下面来看一下v x w o r k s 中的多 任务概念。 经过系统启动过程,硬件和上层软件组件的初始化完成后,系统进入多任务 运行环境。系统中最基本的执行线程单位为任务和中断。任务由操作系统内核调 度执行;中断由硬件异步触发,执行中断处理代码,中断处理结果会影响系统中 任务的运行状态【1 0 】 1 1 】。 v x w o r k s 系统中可以存在多个任务,包括基本的系统任务和用户自己创建的 任务。用户任务在本质上和系统任务没有区别,是实现应用目的的执行线程,所 有任务位于同一地址空间,都运行在c p u 最高级别的系统模式( 具有更好的系 统性能) 。 任务是一个动态的抽象对象,可在运行时创建和删除,是多任务环境中最基 本的执行单元。任务是多方面的综合,包括状态、堆栈、上下文和执行代码等。 每个创建的任务都对应一个内核数据结构,即任务控制块 t c b ,用于保存关键 的动态信息。 任务控制块 t c b 是一个数据结构,内核用来表示控制任务。每个创建的任 务,内核都会为它分配一个t c b 。t c b 中包括硬件相关的寄存器( 包括p c 和 s p ) 、异常信息等,另外还包括与硬件无关的一些参数,如名称、选型、调度相 关、函数、h o o k 、栈、任务变量、标准i o 和环境变量等。t c b 是v x w o r k s 中 最重要的数据结构。 2 3 任务间通信 多个任务间不可避免的存在协同的关系,来完成一定的系统功能。这种协同 最直观的看法就是任务间通信,即i p c 。i p c 是操作系统经典理论之一。i p c 需 要解决两个基本问题:互斥和同步。这是源于多个协同工作的多任务之间存在竞 争与合作这一永恒不变的主题。 v x w o r k s 提供的i p c 和l i n u x 操作系统的i p c 相似,如图2 1 : 7 分别着 任务同 号量和 了这些 问题, 的特殊 计数信号量。可用于共享资源互斥和事件同步,是v x w o r k s 中最高效、使用最 广泛的信号量。由于v x w o r k s 有专门的互斥信号量用于资源保护,二进制信号 多用于线程同步。 二进制信号量由下述函数创建: # i n c l u d e ”s e m l i b h ” s e m - i ds e m b c r e a t e ( i n to p t i o n s ,木信号量选项木 s e m z b s t a t ei n i t i a l s t a t e 户信号量初始化状态幸 ) ; 参数o p t i o n 设置信号量选项: s e m q p r i o r i t y 表示阻塞任务队列基于优先级排序 s e mqf i f o 表示阻塞任务队列采用f i f o 排序 s e me v e n t s e n de r rn o t i f y 发送信号量事件失败后返回结果提示 参数i n i t i a l s t a t e 表示信号量创建时的初始状态,可以设置为s e mf u l l 或 8 2 3 2 消息队列 信号量通信所提供的信息量是非常有限的,通常只是作为解决通信中涉及的 互斥和同步问题的底层机制。相比之下,v x w o r k s 消息队列作为一种更高级的的 通信方式,能够在同一处理器的各个任务间传递任意长度( 理论上只受物理内存 和机器字长限制) 的信息。 一内部数据结构 一条“消息实际上就是一块地址连续的缓冲区,内容可以是字符串、二进 制数据等,由使用消息队列的任务来负责解释,系统只关心缓冲区长度。在 v x w o r k s 中,消息队列数据类型定义为结构体m s gq 。应用程序较少涉及数据 结构内部细节,因而通过定义一个为m s g _ q _ i d 的指向该结构体的指针来使用 消息队列。 t y p e d e fs t r u c tm s g _ q o b j _ c o r eo b j c o r e ;* o b j e c tm a n a g e m e n t i q j o b h e a dm s g q ;* m e s s a g eq u e u eh e a d 4 | q _ j o b _ h e a df r e e q ; * f r e em e s s a g eq u e u eh e a d 高| i n t o p t i o n s ; * m e s s a g eq u e u eo p t i o n s 奄l 9 链队 表示 队列 取的 塞的 t c b 组织 除节 好处 存储 使用消息队列通信之前,先由任何一方调用m s g q c r e a t e ( ) t ! l j 建消息队列,函 数原型如下: # i n c l u d e ”m s g q l i b h ” m s g q i dm s g q c r c a t e ( i n tm a x m s g s ,i n tm a x m s g l c n g t h ,i n to p t i o n s ) ; 参数o p t i o n s 表示消息队列选项: m s gqp r i o r i t y 阻塞任务队列基于优先级排序 m s gqf i f o 阻塞任务队列采用f i f o 排序 m s ge v e n t s e n de r rn o t i f y 发送消息队列事件失败后返回错误提示 参数m a x m s g s 和m a x m s g l e n g t h 指定消息队列大小:最多消息条数木最大单 条信息长度。 调用该函数时即根据消息队列大小( m a x m s g s 宰m a x m s g l e n g t h ) 申请消息 队列缓冲区。一个要求就是,从提供系统处理效率角度来说,不应该是消息生产 者阻塞。因此确定参数m a x m s g s 和m a x m s g l e n g t h 使得在不浪费内存的情况下, 1 0 北京邮i 乜人学硕i :论文 具有较高的消息处理效率就有一定的艺术。参数m a x m s g l e n g t h 的选择容易根据 消息特点确定。对于m a x m s g s ,一个基于经验的做法是先将m a x m s g s 设置为较 小的值,然后在每次出现生产者被阻塞时增加设置。一个比较理想的做法是计算 消费者最大消息处理时延m a x r e c v d e l a y 和生产者每秒最大产生消息数 m a x m s g o u t p u t ,然后计算: m a xm s g s = m a xr e c v d e l a y 宰m a xm s g o u t p u t 确定m a x m s g s 时还需要考虑生产者和消费者的相对优先级的影响:消费者 优先级越高,m a x m s g s 越小。该函数创建消息队列成功时返回m s g _ q - i d ,如 果没有足够的内存,函数返回e r r o r 。消息队列不能在中断服务程序中创建。 三删除消息队列 消息队列不再使用时要将其删除以减少内存的使用,需要用到: # i n c l u d e ”m s g q l i b h ” s t a t u sm s g q d e l e t e ( m s g _ q _ i dm s g q l d ) ; 该函数将同时使阻塞队列内的所有任务和等待消息队列事件的任务都解除 阻塞,相关调用将返回e r r o r 。注意,不能再中断服务程序中删除消息队列。 四消息队列的发送 发送消息需要调用函数m s g q s e n d 0 完成,函数原型: # i n c l u d e ”m s g q l i b h ” s t a t u sm s g q s e n d ( m s g q l i dm s g q i d ,c h a r 牛b u f f e r , u i n tn b y t e s ,i n tt i m e o u t ,i n t p r i o r i t y ) ; 该函数把b u f f e r 中的n b y t e s 字节数据发送到消息队列m s g q i d 中,n b y t e s 必须小于消息队列最大消息长度,执行的时候分三种情况: ( 1 ) 如果有队列中有接受任务阻塞,则消息直接复制到第一个阻塞的接收 者任务的缓冲区( 如果接收者缓冲区不够容纳整条消息,则将超出部分丢弃,但 不指示错误) ,同时解除阻塞。 ( 2 ) 如果没有接收任务等待消息但是链队列有空间,则消息添加到消息队 列,函数返回o k 。此时根据参数p r i o r i t y 表示的消息优先级,若是 m s g p r i u r g e n t 则将消息加入到链队列首部,若是m s g p r i n o r m a l 则 将消息加入到链队列尾部。 ( 3 ) 如果消息队列已满,此时任务将阻塞等待空间,参数t i m e o u t 控制阻塞 的最大时间,以t i c k 为单位。当时间到时还没有空闲节点则函数返回e r r o r 。 队列尾部,m s g - q 一p r i o r i t y 表示根据任务优先级决定任务在阻塞队列中的位 置。注意:函数m s g r e c e i v e 0 不允许从中断服务程序中调用。 2 4s o c k e t 通信 2 4 1s o c k e t 概述 2 0 世纪8 0 年代初,由美国政府提供资金,委任加利福尼亚大学伯克利分校 在u n i x 操作系统下实现针对t c p i p 协议的应用程序编程接口,他们的工作成 果就是s o c k e t ( 套接字) 。套接字首先被应用于b e r k e l e ys o f t w a r e d i s t r i b u t i o n ( b s d ) u n i x 系统中,后来随着u n i x 操作系统的广泛应用,s o c k e t 套接字成为最流行最通用的网络通信应用程序的开发接口。 s o c k e t 接口是t c p i p 网络的a p i ,s o c k e t 接口定义了许多函数或例程,程 序员可以用它们来丌发t c p i p 网络上的应用程序。要学i n t e r n e t 上的t c p i p 网 络编程,必须理解s o c k e t 描述符。 s o c k e t 接口设计者最先是将接口放在u n i x 操作系统罩面的。如果了解u n i x 1 2 北京邮电人学硕i :论文 系统的输入和输出的话,就很容易了解s o c k e t 了。网络的s o c k e t 数据传输是一 种特殊的i o ,s o c k e t 也是一种文件描述符。s o c k e t 也具有一个类似于打开文件 的函数调用s o c k e t 0 ,该函数返回一个整型的s o c k e t 描述符,随后的连接建立、 数据传输等操作都是通过该s o c k e t 实现的1 1 3 】1 1 4 l 。 s o c k e t 是b s du n i x 定义的一种应用程序使用t c p i p 协议的接口,被广泛 使用,不仅限制于b s du n i x ,其他的许多操作系统都采用s o c k e t 接口,如图示 s o c k e t 框架: 2 4 2s o c k e t 类型 s o c k e t 印p l i e a t i o n f j s o c k e tl a y o r t c pu d p : : i p :? d a t al i n kl a y e r 图2 2 :s o c k e t 框图【1 0 l s o c k e t 类型是使用s o c k e t 的高层应用的s o c k e t 属性,对于i n t e m e t 通信域, 这些属性表现为t c p i p 协议传递该连接的数据时的可靠性、有序性、避免消息 重复性等。在创建s o c k e t 时必须指定s o c k e t 类型,两个任务一般要通过相同类 型的s o c k e t 进行通信。 有3 种类型的s o c k e t :可靠的s o c ks t r e a m ,数据报s o c kd g r a m 以 及原始的s o c k r a w ,常用的s o c k e t 类型有两种:s o c ks t r e a m 和 s o c kd g r a m 。 2 4 3s o c k e t 应用 通常b s ds o c k e t 常常构造两种应用类型:面向连接的s o c k s t r e a m 应用 和无连接的s o c k d g r a m 应用。面向连接的应用即基于t c p 协议的s o c k e t 应 用;无连接的应用即u d p 应用,下面分别介绍这两种应用框架。 服务器 客户端 器端。 无连接的应用中,在调用s o c k e t 后双方即可开始直接发送( s e n d t o ) 和 ( r c c v f r o m ) 数据。在s e n d t o 调用中,同时给出了需要发送的数据和目的端点地 址;而r e c v f r o m 调用则在读出收到的数据的同时,还得到了发送源端的端点地 址信息。在下图中,客户端s o c k e t 可以和任意的服务器通信,而服务器s o c k e t 收到的数据包也可能来自不同的客户。实际上,c o n n e c t 0 调用也用于无连接的应 用的客户端,但是不会建立连接,而是实现与特定的服务器的通信。 1 4 北京邮电大学硕 :论文 图2 4 :无连接的s o c k e t 应用框架 2 4 4s o c k e t 常用函数说明 ( 1 ) i n ts o c k e t ( i n td o m a i n ,i n tt y p e ,i n tp r o t o c 0 1 ) ; 创建s o c k e t 是进行网络通信的第一步,s o c k e t o 调用创建一个s o c k e t ,返回 s o c k e t 描述符。 参数d o m a i n 表明通信域,对于v x w o r k s 操作系统d o m a i n 总是a fi n e t ; 参数t y p e 指定s o c k e t 类型;参数p r o t o c o l 表示该s o c k e t 属于何种通信协议。 ( 2 ) i n tb i n d ( i n ts o c k f d ,s t r u c ts o c k a d d r 幸m y _ a d d r , i n ta d d r l e n ) ; 参数s o c k f d 是调用s o c k e t 函数返回的s o c k e t 描述符,m y是一个指向包addr 含有本机i p 地址及端口号等信息的s o c k a d d r 类型的指针;a d d r l e n 常被设置为 s i z e o f ( s t r u c ts o c k a d d r ) 。 ( 3 ) i n tc o n n e e t ( i n ts o c k f d ,s t r u c ts o c k a d d r 掌s e r v _ a d d r , i n ta d d r l e n ) ; 面向连接的客户程序使用c o n n e c t 函数来配置s o c k e t 并与远端服务器建立一 个t c p 连接。s o e k f d 是s o c k e t 函数返回的s o c k e t 描述符;s e r v是包含远端 服务器主机的口地址和端口号的指针; 是远端地址结构_的ad长draddden 度。c o n n e c t 函数在出现错误时返回1 ,并且设置e l t n o 为相应的错误码。进行客户端程序设 计无须调用b i n d 0 ,因为这种情况下只需知道目的机器的l p 地址,而客户通过哪 个端口与服务器建立连接并不需要关心,s o c k e t 执行体为你的程序自动选择一个 未被占用的端口。 ( 4 ) i n tl i s t e n ( i n ts o c k f d ,i n tb a c k l o g ) ; l i s t e n 函数使s o c k e t 处于被动的监听模式,并为该s o c k e t 建立一个输入数据 1 5 w e b 服务器,重点介绍了v x w o r k s 下的任务的概念、任务间通信方式及s o c k e t 通信过程流程,为系统的实现提供支持。 1 6 北京邮电人学硕i :论文 第三章w e b 相关技术的研究 万维网( w o r l dw i d ew e b ) 是一个大规模的、联机式的信息储藏所,是一个 结构性的框架,英文简称为w e b ,也被称为w w w 。其同的是访问遍布在整个 i n t e r n e t 上的机器中的相互链接的文档。 3 1w e b 概述 w e b 诞生于欧洲原子能研究中心c e r n ,w e b 的诞生源于这样一个需求:让 分散在各个国家的大型研究机构通过使用经常变化的报告、计划、绘图、照片以 及其他的文档来进行合作。w e b 使用统一资源定位符u r l ( u n i f o r mr e s o u r c e l o c a t o r ) 来标识万维网上的文档,并且对于每一个文档在整个因特网的范围内 都有唯一的一个标识符u r l 。万维网以客户服务器的方式工作,浏览器就是在 用户计算机上的万维网的客户端程序,万维网文档所驻留的终端则运行服务器程 序。浏览器程序向服务器程序发出请求报文,而服务器程序则向浏览器返回客户 需要的万维网文档。万维网客户程序与服务器之间的交互遵守超文本传送协议 哪。h t y p 协议是一个应用层的协议,它使用t c p 连接进行可靠的传输。 w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电阻考试题及答案
- 中华传统文化(青岛黄海学院)知到智慧树答案
- 中级微观经济学(双语)知到智慧树答案
- 幼儿教师招聘教师资格证《综合素质》考试模拟试卷及答案
- 接待转科患者处理流程和新生儿呕吐试题(附答案)
- 体外诊断试剂培训试题及答案
- 冷链培训试卷(含答案)
- 2025年房地产项目建筑材料安全性能采购合同
- 补虚药临床转化研究-洞察及研究
- 2025年变压器项目融资合作合同
- 四川省2024年高等职业教育单独招生考试中职类语文试题及答案
- 实验室危化品安全管理培训
- 复苏室患者的交接流程
- 老旧小区改造给排水施工方案
- 【人教版化学】选择性必修1 知识点默写小纸条(答案背诵版)
- DB21-T 2523-2015矿山地质环境恢复治理规程
- 2024天津高考英语试题及答案
- 实验室中央空调施工方案
- 幼儿园 中班语言绘本《章鱼先生卖雨伞》
- 中医学藏象学说课件
- 软件平台建设和运营合同
评论
0/150
提交评论