(计算机系统结构专业论文)业务选择网关中协议分析引擎的研究与设计.pdf_第1页
(计算机系统结构专业论文)业务选择网关中协议分析引擎的研究与设计.pdf_第2页
(计算机系统结构专业论文)业务选择网关中协议分析引擎的研究与设计.pdf_第3页
(计算机系统结构专业论文)业务选择网关中协议分析引擎的研究与设计.pdf_第4页
(计算机系统结构专业论文)业务选择网关中协议分析引擎的研究与设计.pdf_第5页
已阅读5页,还剩52页未读, 继续免费阅读

(计算机系统结构专业论文)业务选择网关中协议分析引擎的研究与设计.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 随着i n t e r n e t 技术高速发展,人们越来越关注如何更好地为用户提供个性化 和增值服务。这种形势下,业务选择网关应运而生。但是当前市场上的业务选择 网关都是面向网络运营商的粗粒度设备,而面向内容提供商的业务选择网关却不 多见。本文研究的协议分析引擎正是这种以u r l 进行访问控制的业务选择网关的 核心模块。 文章通过对业务选择网关的需求研究,提出了协议分析引擎的工作流程、设 计模型和实现策略,并对该模块的关键技术进行了深入研究。本文首先通过分析 h t t p 协议,给出了h t t p 协议的u r l 解析方法,之后研究了用于实现t c p 连接控制 的t c p 粘合技术,并讨论了t c p 粘合技术中报文修改问题。此外,针对业务选择 网关中u r l 路由查找特点,本文设计了一套u r l 路由查找的方法,提出了改进的 主动哈希算法来改进路由查找速度,并通过仿真测试对其效率进行了验证。 关键词:协议分析t c p 粘合哈希表 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fi n t e m e t , p e o p l ea r em o r ea n dm o l ef o c u s i n go n h o wt op r o v i d ei n d i v i d u a l i z e da n di n c r e m e n t a ls e r v i c e u n d e rs u c hc i r c u m s t a n c e s s e r v i c es e l e c t i o ng a t e w a y 岱s g ) e m e r g e s u n f o r t u n a t e l ym o s ts s g so nt h em a r k e ta r e i s po r i e n t e dc o a r s e g r a i n e dd e v i c e s ;w h e r ea sn op r o d u c ti ss u i t a b l ef o rc o n t e n tp r o v i d e r t h ep r o t o c o la n a l y s i se n g i n et h a ti sg o i n gt ot a l ka b o u ti nt h i sp a p e ri st h ec o r em o d u l e o ft h i sv e r yk i n do fd e v i c ew h i c hi sa c c e s sc o n t r o l l e db yu r l b yr e s e a r c h i n go nt h er e q u i r e m e n to fs s g t h i sp a p e rp r o p o s e st h ew o r kp r o c e d u r e , d e s i g nm o d e la n di m p l e m e n t a t i o ns t r a t e g yo fp r o t o c o la n a l y s i se n g i n e , a n dm a k e sa d e e ps t u d yo nt h ek e yt e c h n i q u e so ft h i sm o d u l e a b o u tt h ek e yt e c h n i q u e s ,t h i sp a p e r g i v e sam e t h o dt or e s o l v eu r l f r o mh m s e g m e n tb ys t u d y i n gt h eh 唧p r o t o c o l , a n dr e s e a r c h e st h et c ps p l i c i n gt e c h n i q u ew h i c hi su s e dt or e a l i z et h et c pc o n n e c t i o n c o n t r o l ,i n c l u d i n gt h ep r o b l e mo fs e g m e n th e a d e rm o d i f i c a t i o n b e s i d e s , a c c o r d i n gt o t h ec h a r a c t e r i s t i co ft h eu r lr o u t i n gl o o k u po ns s ga l lu r lr o u t i n gl o o k 一印m e t h o d a n dt h er e f i n e da g g r e s s i v eh a s ha l g o r i t h mt oi m p r o v et h es p e e do fr o u t i n gl o o k - u pa l e g i v e n , a l o n gw i t has i m u l a t i o n t e s tw h i c ht e s t i f i e si t se f f i c i e n c y k e y w o r d :p r o t o c o la n a l y s i s t c p s p l i c i n g h a s ht a b l e 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的 研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论 文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科 技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对 本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名: 王永智 日期:! 竺! ! :! 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研 究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保 证毕业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技 大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布 论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文( 保 密的论文在解密后遵守此规定) 。 本人签名: 互永智 日期: 及7 ,岁 导师签名:【互型垂1日期:鎏二! 二笪导师签名! 一互盟鲨1日期:鎏二! 二笪 第一章绪论 第一章绪论 1 1 引言 随着i n t e m e t 在世界范围内的迅速发展,越来越多的形式各异的网络服务发展 了起来,这些服务包括:w e b 浏览、在线游戏、口电话、视频会议、视频点播、电 子商务和远程教育等等。这也使得传统i n t e m e t 服务没有考虑用户差异的服务模式 的弊端日益暴露出来。正是在这些日趋多样的服务和对用户提供个性化服务的需 求日趋明显的背景下,业务选择网关( s e r v i c es e l e c t i o ng a t e w a y ,s s g ) 应运而生。 目前市场上主流的业务选择网关主要是c i s c o 和北电等国外较大设备提供商 的产品,此类网络产品主要工作于网络汇聚层,面向对象通常为网络运营商( 如联 通公司等) 。而面向内容提供商的基于内容定制的个性化网络产品却不多见。在这 种情况下,我们进行了面向内容提供商的轻量级的应用层业务选择网关的研究与 设计工作( 本文中所提到的s s g 或“业务选择网关”如无特殊说明则默认是指面 向内容提供商的轻量级的应用层业务选择网关) 。该业务选择网关提供了对用户 访问的协议分析、认证、计费等功能,同时保证了合法用户的服务质量,完成了 网关向后台服务器的高效转发。 在系统运行过程中,从用户请求中解析出u r l ,完成用户合法性的匹配( 此 功能在业务选择网关的认证模块中完成,本文中不做讨论) 及数据包的路由转发 是整个系统的核心功能,也是后续功能能够正常运行的源头。我们将其合并在协 议分析引擎模块中,本文讨论的正是如何设计出高效而功能强大的协议分析引擎 模块。 1 2 当前研究现状 采用业务选择网关目的是为客户提供个性化服务。在提供个性化网络服务和 发展增值业务“1 方面,西方国家起步较早,目前市场上已经出现一些提供个性化网 络服务的产品。这些产品中具有代表性的是c i s c o 公司的业务选择网关( s s g ) 。 s s g 是c i s c oi o s 软件的一个模块化特性集,可以为针对不同i p 目的地址的客户 交互策略提供r a d i u s 身份认证和记账功能,包括同时登录多项服务的能力等。 c i s c o 公司所采用的业务选择网关技术就是通过提供个性化的服务菜单,为客户提 供了丰富多彩的服务,从而拉近了客户与电信运营商之间的距离。 在我国由于这方面的研究起步比较晚,所以现在还没有成熟的产品。一些较 2 业务选择网关中协议分析引擎的研究与设计 大的i s p ( 如上海网通等) 都在使用c i s c o 和北电等国外较大设备提供商的产品。 一方面,目前市场上还没有为内容提供商设计的细粒度网络服务产品,另一 方面,我国在此方面的研究尚处于起步阶段。基于以上情况,我们着手研究面向 内容提供商的以u r l 作为访问控制标准的网络产品。 该项目的研发是由我上一届的师兄开始的。经过一年多的研究,取得了一定 的研究成果,初步确立了业务选择网关的应用环境、工作流程,并在报文分类、 会话控制、路由和认证等方面做出了一定的贡献。对我们进一步的研究具有很好 的指导作用。 对于协议分析引擎模块的研究来说,由于目前还没有类似的成熟的产品,所 以没有相应的实现,但协议分析引擎中的关键技术,在国内外的研究中却是不乏 先例的。 t c p 粘合技术的研究目前广泛的应用于防火墙、i - i t f p 代理和移动计算系统中 1 2 1 。该技术由i b m 的研究员m a l t zd a 和b h a g w a tp 于1 9 9 8 年提出【3 】,在l i n u x 开源 工程l v s ( l i n u xv i r t u a ls e r v e r ) 中的t c p s p 模块l 圳使用t c p 粘合实现了代理服务器 的报文转发功能。该技术可用于实现协议分析中的连接控制,但直接应用并不能 满足我们的要求,尚需对其进行改动。 论文中提到的u r l 路由转发,涉及到u r l 的存储、查找和匹配问题,该问题 随着w w w 技术的发展,已经做了很多相关研究,产生了很多针对u r l 的存储、查 找和匹配算法。如我的师兄谭君在他的毕业论文里提出了基于压缩t r i e 树的u r l 的 存储与查找f 1 3 1 ,z o m i t z agp r o d a n o f f 和k e n n e t hj c h r i s t e n , s e n 在其论文 1 7 l 里提到使 用c r c 3 2 进行u r l 编码,并提到了三种路由查找算法:使用哈希算法进行查找, 使用主动哈希算法( a g g r e s s i v eh a s h i n g ) 进行查找,以及h 1 方法进行查找。 此外,众多的入侵检测产品和s s g 也有一定的技术相关性。1 i n u x f l 2 4 版本以 来,提供了一个网络安全框架n e t f i l t e r ,国内外很多网络安全产品均是基于该框架 开发出来的【2 3 l 。由于n e t f i l t e r 框架的开源性,对此类产品代码的研究也有助于s s g 中协议分析引擎的研究工作。 1 3 论文所做的研究工作和意义 如前所述,在协议分析引擎的设计中,我们希望系统能够( 1 ) 根据用户请求数 据包快速地解析出用户的u r l 请求,( 2 ) 对于合法用户能够迅速地查找到相应的后 台服务器主机。协议分析引擎是系统的核心功能模块,它的正确、高效运行保证 了其它功能的运行,只有处理好上面两个任务,才能使业务选择网关正常的运作 起来。为此;在对协议分析引擎模块的分析、设计过程中,我们主要做了以下工 作: 第一章绪论 3 1 对业务选择网关的总体需求和功能进行分析,在前人的基础上改进了与协 议分析引擎模块的相关部分的工作流程。 2 研究了t c p 粘合技术及其在协议分析引擎模块上的运用,并对该技术中遇 到的报文修改问题进行了研究。 3 讨论了c r c 3 2 冗余校验码,并将其运用在u r l 编码中。 4 提出了一种新型的基于h a s h 表的查找算法一一改进的主动哈希查找算法, 提高了u r l 路由映射表的查找速度。并对此算法进行了性能分析和仿真测试。 5 提出二级认证方案,并结合此方案设计了协议分析引擎的工作流程,并给 出了实现策略,部分实现了此模块。 1 4 论文结构 本文共分为六章: 第一章绪论。提出论文研究的背景和内容,并介绍了本文所做工作。 第二章业务选择网关。对业务选择网关出现的时代背景、业务选择网关的功 能特性、应用环境以及工作原理等方面做了介绍,并对协议分析引擎作了大致介 绍。 第三章网络协议与协议分析。本章分两个方面分析网络协议:( 1 ) t c p i p 协议 族,简要介绍了t c p i p 协议,为后面t c p 粘合技术的讨论作铺垫;( 2 ) 应用层协 议,具有代表性的讨论了h r 】限协议,并分析了该协议的u r l 解析方法。 第四章协议分析引擎及其关键技术。本章重点讨论前面提到的协议分析引擎 模块的两个任务。分为三部分来写:( 1 ) 讨论了t c p 粘合技术及其报文修改问题。 并讨论了该技术在协议分析模块中的运用。( 2 ) 使用c r c 3 2 冗余校验对u r l 进行 编码,从而提高了u r l 匹配的效率,减少了存储空间。( 3 ) 提出改进的主动哈希查 找算法,并对其进行了性能分析。 第五章协议分析引擎的实现与算法仿真。基于以上研究设计出一种满足s s g 需求的协议分析引擎模型,提出了实现策略。并对t c p 粘合实现中的关键技术细 节进行介绍之后重点对改进的主动哈希查找算法进行仿真,并分析了测试结果。 第六章总结和展望。对全文进行总结,并提出了不足和有待改进的地方, 指出了进一步研究的方向。 1 5 本章小结 本章是对全文的一个概括性描述。本章首先对论文研究的领域和研究内容协 议分析引擎进行了阐述,并讨论了当前国内外研究和发展的状况,然后简要叙述 4 业务选择网关中协议分析引擎的研究与设计 了论文所作的工作和意义,最后给出了论文的提纲结构。 第二章业务选择网关 5 第二章业务选择网关 2 1 业务选择网关简介 2 1 1 业务选择网关的由来 提到业务选择网关( s e r v i c es e l e c t i o ng a t e w a y ,s s g ) ,就不能不先介绍一下 n g n 。n g n 的概念已经提出多年,不过在业界一直存在诸多不同的解释。在2 0 0 4 年年初国际电联n g n 会议上,经过激烈的辩论,n g n 的定义终于有了定论:n g n 是基于分组的网络,能够提供电信业务;利用多种宽带能力和o o s 保证的传送技术; 其业务相关功能与其传送技术相独立。n g n 使客户可以自由接入到不同的业务提 供商;支持通用移动性。n g n 是“下一代网络( n e x tg e n e r a t i o nn e t w o r k ) ”或“新 一代网络( n e wg e n e r a t i o nn e t w o r k ) ”的缩写1 4 j 。n g n 是以软交换为核心,能够 提供话音、视频、数据等多媒体综合业务,采用开放、标准体系结构,能够提供 丰富业务的下一代网络。 由于n g n 技术在世界范围内的迅速发展,电信市场的竞争愈演愈烈,也给中 国电信运营商在市场竞争中赶上甚至超越国际电信巨头提供了一个历史性的机 遇,特别是在当前各电信运营商都面临服务转型的形势下,如何适应n g n 运行的 模式,已成为各个电信运营商所面临的一个重要课题。n g n 宽带网络技术的成熟, 使数据网将能统一承载语音、数据、视频等多种业务。因为n g n 是一个开放的网 络,在其架构内,各构件协议已趋于标准化,原来各大通信厂商对技术、业务的 垄断格局已不复存在,小型的设备供应商也存在着较大的发展空间。为此,专注 于增值业务的开展就成为电信运营商们谋求生存及发展的重要途径,以向客户提 供更高质量、更多元化和个性化服务的方式,将客户吸引住。人们日益要求电信 服务商们提供的服务包括:在线游戏、m 电话、视频会议、视频点播、w e b 浏览、 电子商务和远程教育等等。这些宽带服务将更加体现“以人为本”的理念和趋向 于个性化,而且更加突出了人性化。例如c i s c o 公司所采用的业务选择网关技术就 是通过提供个性化的服务菜单,为客户提供了丰富多彩的服务,从而拉近了客户 与电信运营商之间的距离。而在服务过程中,电信运营商们可以根据客户的连接 时间和所使用的服务项目,制定灵活的价格计算策略,向客户收取相应的费用1 5 1 。 2 1 2 业务选择网关的功能特性 c i s c o 公司的业务选择网关工作在网络的汇聚层,作为一个动态的服务创造和 6 业务选择网关中协议分析引擎的研究与设计 管理平台对传入的网络进行汇聚,并将来自a a a 、l d a p 或者o r a c l e 数据库中客 户简表中的策略动态分配给网络上的客户,客户可以基于简表对不同服务进行访 问,对于每种服务的访问都可以基于流量或者连接时长进行计费。并且具备客户 访问模式的切换、域名系统重定向、d n s 容错等特性。 本文讨论的业务选择网关是一个基于u r l 粒度的面向内容提供商的应用层业 务选择网关。与c i s c o 公司的产品相比,其功能更简单( 不具备d n s 容错等特性) , 应用环境也有所不同( 用于内容提供商,而不是电信运营商) 。此外,由于它是基 于u r l 粒度进行控制,从控制粒度上看,它要比c i s c o 公司的产品控制得更细一 些。它既为客户提供了更灵活更合理的收费方式也为内容提供商的管理和计费带 来了方便,并使内容提供商通过增值服务,获得更高的经济收益。 业务选择网关为客户提供个性化的服务定制,不仅方便客户对网络服务的使 用而且也为服务提供商创造了新的利润增长机会,其主要功能特性如下1 6 j : 1 个性化的业务定制 业务选择网关为客户提供方便快捷的业务定制和取消界面。客户可以通过认 证登录进入个性化服务界面,方便地进行各种业务的访问。 2 业务数据存储 业务选择网关可以存储业务数据,包括免费业务、收费业务和阻止访问业务 的相关数据等。对于免费业务,业务选择网关不做任何控制,允许所有客户( 包 括登录客户和匿名客户) 随时访问;而对于收费业务和阻止访问业务则需要进行 控制。 3 基于u r l 的内容控制 业务选择网关可以进行细粒度的内容控制,以u r l 作为内容控制的基本单元。 业务选择网关对客户发来的请求数据包进行分析,获取数据包请求资源的u r l , 然后与客户已经定制收费资源的u r l 进行匹配,判断是否准许客户进行该业务的 访问。 4 虚拟会话管理 业务选择网关对服务内容进行控制的目的是为了提高效率,以及避免每次客 户访问相同服务都要进行控制。业务选择网关必须以虚拟会话的方式来管理客户 访问。 5 优先级控制 业务选择网关应当能够对客户的请求进行优先级控制,使优先级高的请求首 先通过,从而保证高优先级请求服务的服务质量。业务选择网关至少应当实现以 下两种优先级控制方式: ( 1 ) 基于客户身份。业务选择网关处理客户请求时,可以根据发起请求的客 户身份区分不同优先级,对优先级级别较高的客户请求优先处理; 第二章业务选择网关 7 ( 2 ) 基于目标口地址和端口号的组合。业务选择网关处理客户请求时,可以 根据请求的目标i p 地址和端口号( 请求服务的不同) 区分不同的优先级,对级别 较高的服务优先处理。 6 路由选择与地址转换 业务选择网关可以根据规则区分不同的客户请求,并将客户请求转发到正确 的地址。另一方面,提供业务内容的服务器可能使用内网地址,客户的业务访问 请求全部进入业务选择网关,网关对访问请求进行判断并转发到相应的内容服务 器上。因此,我们可以将路由和地址转换结合在一起,一次实现。 7 手工配置 业务选择网关作为一个网络设备,必须提供相应的手工配置的功能。其具体 表现为:业务选择网关可根据业务的需要,利用软件提供的接口对业务选择网关 进行各种相关的配置。 8 话单提供 业务选择网关可以向业务支撑平台的计费系统提供原始话单,话单应当包含 足够的信息,以满足基于内容计费的要求。话单信息中必须包含时长和流量的信 息,同时话单中需要有目标地址、端口号、协议信息以及其他相关信息,从而才 能够满足“区分目标地址和业务”计费的要求。 2 1 3 业务选择网关的典型应用 业务选择网关的一个典型应用场景如图2 1 所示。 霓鞋女 图2 1 业务选择网关应用场景 在这个场景中,业务选择网关是一个基于内容进行控制的解决方案。业务选 择网关与w e b 服务器和认证服务器相连,w e b 服务器负责为客户提供认证、登录 以及业务选择的门户页面,认证服务器负责客户合法性的验证,以及客户可以访 问的资源列表的保管。内容提供商的业务分别由不同的服务器所承载。业务选择 8 业务选择网关中协议分析引擎的研究与设计 网关通过认证用户对业务的访问( 用户访问的u r l ) 进行控制。对于用户登录的 认证是通过认证服务器进行。如果认证通过则继续访问,否则,转向登陆页面, 要求用户登录。当然,对于免费业务,认证总是通过的,但免费业务数据包处理 的优先级要低于收费业务的数据包。 2 2 业务选择网关工作流程 基于图2 1 的应用场景,我们讨论一下s s g 各种业务的工作流程。如图2 2 所示,图中表示了业务选择网关系统通常具备的3 部分设备:s s g 控制部分、业 务选择w e b 服务器和a a a 服务器,所有数据流都经过s s g 控制部分并受其控制。 根据流的功能把经过业务选择网关的流分为3 种:用户登录和业务选择h t r p 流, 认证和计费r a d i u s 流和业务流,这3 种流在业务选择网关系统中关系如图2 2 所裂7 】。 业务选择网关系统 s s g 控制部分 一一 、 “ 一一 71 2 - 7 。 1 目 ii 、心 7 蝤 划 内容服务 ;:0 坟 ;j。, 、墓务器鼠务; 业务选 一 一m 1 p一r a d i u s _一业务流 圈2 2 业务选择网关系统的工作流程 业务选择网关系统给用户提供w e b 形式登录和选择访问业务。 1 用户登录。用户主动登录或被重定向到业务选择w e b 服务器,输入登录信 息,通常为用户名和口令,输入这些信息以后,登陆服务器会把用户名和密码翻 译成认证数据包,并将这个包发送给业务选择网关控制部分。当控制部分收到这 个请求以后,会将它转发给认证服务器。认证服务器对用户进行认证,并向业务 选择网关控制部分发回一个应答包。包中可能含有两种信息:认证成功或者认证 失败。如果用户被成功认证,认证服务器向控制部分发送一个认证成功的授权数 据包( 包括该用户的访问权限) ,控制部分根据授权数据包生成用户会话和资源权 限包,同时控制部分会把授权数据包转发给业务选择w e b 服务器,w e b 服务器生 第二章业务选择网关 9 成用户的个性化选择页面;如果认证失败,认证服务器则向控制部分发送认证失 败数据包,控制部分转发给登陆服务器,反馈给用户登录失败信息。用户登录工 作流程为:l 一2 3 4 5 6 。 2 业务定制和取消。w e b 服务器把操作信息通过s s g 控制部分发给a a a 服 务器,a a a 服务器在数据库中修改用户权限信息,并返回更新后的授权数据包, s s g 控制部分更新用户权限表并把授权数据包转发给w e b 服务器,w e b 服务器更 新业务列表。业务定制和取消工作流程为:1 2 3 4 5 6 。 3 选择访问业务。用户向s s g 控制部分发送请求资源信息,s s g 根据请求用 户权限决定对数据流的处理,若具有权限则向内容服务器转发数据包,没有权限 则丢弃数据包,并反馈信息。内容服务器根据请求向s s g 控制部分发送响应信息, s s g 向用户转发响应信息。业务访问工作流程为:1 7 8 9 1 0 。 4 s s g 控制部分在运行过程中向a a a 服务器发送计费数据包。认证服务器存 储计费信息,并向s s g 控制部分反馈信息。计费工作流程为:3 4 5 。 5 用户通过业务选择w e b 服务器查询计费信息。w e b 服务器通过s s g 控制 部分向a a a 服务器发送计费查询数据包,a a a 服务器响应查询数据包。计费查 询工作流程为:1 2 3 4 5 6 。 2 3 业务选择网关中的协议分析引擎 在业务选择网关中,协议分析引擎模块主要是用来实现快速解析出用户的u r l 请求,并对合法用户请求进行路由查找,实现数据包的快速转发。该模块位于业 务选择网关数据处理流程的第一个环节。是整个系统后续工作的源头。能否快速 准确的完成报文的协议分析,实现报文转发是系统能否高效准确运行的关键。 本文研究的服务均是面向连接的,则在t c p i p 协议栈中,我们要重点讨论基 于t c p 的网络应用的协议分析。关于协议分析引擎模块的具体工作原理和实现细 节,后续章节会详细阐述,此处不再赘述。 2 4 本章小结 本章对业务选择网关出现的时代背景,以及业务选择网关的功能特性、应用 环境、工作流程等方面进行了介绍。并且对本论文要研究的协议分析引擎模块在 业务选择网关中的作用进行了简要阐述。 第三章网络协议与协议分析 第三章网络协议与协议分析 要通过数据包分析出用户的u r l 请求,必须先要了解应用层协议,由于应用 层协议各式各样,我们不能一一分析,只能代表性的分析几个应用层的网络协议, 找出逆向解析出u r l 的方法。在具体系统实现时,虽然只实现出分析过的几种应 用协议的逆向解析,但我们可以提供一个开放的编程接口,当有新的协议需要扩 充进来时,开发商只需根据接口,提供该应用对应的解析模块代码即可。基于以 上思想,我们这里仅代表性的讨论h 兀甲的u r l 请求获取方法。 另外,我们希望能够提出一种方法,使用户在认证之前只与业务选择网关进 行连接,认证通过之后才与实际服务器建立连接。也就是说,希望业务选择网关 能够将客户与服务器的连接推迟到认证通过之后。为达到这一目的,我们必须对 t c p i p 协议有所改动,因此,这里我们有必要了解一下t c p i p 协议。 3 1 删p 协议 t c p i p 是美国政府资助的高级研究计划署( a r p a ) 在二十世纪七十年代的一个 研究成果,用来使全球的研究网络联在一起形成一个虚拟网络,也就是国际互联 网。原始的i n t e m e t 通过将已有的网络如a r p a n e t 转换到t c p i p 上来而形成,而 这个i n t e m e t 最终成为如今的国际互联网的骨干网。t o m ( 传输控制协议网问协 议) 是一种网络通信协议,并不是一个而是许多协议,它规范了网络上的所有通信 设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式,t c p i p 是i n t e r n e t 的基础协议。 3 1 1 硎p 的体系结构 t c p i p 参考模型由四层组成,每层负责不同的通信功能。如图3 1 所示。 应用层 传输层 网络层 链路层 m 1 p 、t e l n e t 和f t p 等 t c p 和u d p i p ,i c m p | ,b i g m p 设备驱动程序及接口卡 图3 1t c p i p 的体系结构嗍 1 、链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设 备驱动程序和计算机中对应的网络接口卡。 业务选择网关中协议分析引擎的研究与设计 2 、网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选 路。在t c p i p 协议族中,网络层协议包括i p 协议( 网际协议) ,i c m p 协议( i n t e m e t 互 联网控制报文协议) ,以及i g m p 协议( i n t e m e t 组管理协议) 。 3 、传输层主要为两台主机上的应用程序提供端到端的通信。在t c p i p 协议族 中,有两个互不相同的传输协议:t c p ( 传输控制协议) 和u d p ( 用户数据报协议) 。 t c p 为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的 数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认 分组的超时时钟等。由于传输层提供了高可靠性的端到端的通信,因此应用层可 以忽略所有这些细节。而另一方面,u d p 则为应用层提供一种非常简单的服务。 它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报 能到达另一端。任何必需的可靠性必须由应用层来提供。 4 、应用层负责处理特定的应用程序细节。 3 1 2t c 肌p 中的相关协议 1 t c p 协议 t c p ( 传输控制协议) 提供了一种可靠的面向连接的字节流传输层服务,为应用 层提供服务。 所谓面向连接是指两个应用程序在使用t c p 交换数据之前,必须首先建立 t c p 连接,这就好像打电话一样,拨完电话号码,等着接通电话对方说话,然后 表明身份。在t c p 协议中如何建立一个连接和如何断开一个连接是很重要的。需 要说明的是由于t c p 的该特性,使得它并不应用于广播和多播的情况。t c p 提 供可靠服务,即包含如下几点【研: 1 1 应用数据被分割成t c p 认为最适合发送的数据块。这和u d p 完全不同, 应用程序产生的数据报长度将保持不变。由t c p 传递的信息单位称为s e g m e n t 。 2 1 当t c p 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文 段。如果不能及时收到一个确认,将重发这个报文段。 3 1 当t c t 收到发自t c p 连接另一端的数据,它将发送一个确认。这个确认 不是立即发送,通常将推迟几分之一秒。 舢t c p 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检 测数据在传输过程中的任何变化。如果收到段的检验和有差错,t c p 将丢弃这个 报文段和不确认收到此报文段( 希望发端超时并重发) 。 5 ) 既然t c p 报文段作为坤数据报来传输,而m 数据报的到达可能会失序, 因此t c p 报文段的到达也可能会失序。如果必要,t c p 将对收到的数据进行重新 排序,将收到的数据以正确的顺序交给应用层。 第三章网络协议与协议分析 们既然疋数据报会发生重复,t c p 的接收端必须丢弃重复的数据。t c p 还能 提供流量控制。t c p 连接的每一方都有固定大小的缓冲空间。t c p 的接收端只允 许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的 缓冲区溢出。 刀字节流服务。两个应用程序通过t c p 连接交换8 b i t 字节构成的字节流。t c p 不在字节流中插入记录标识符。我们将这称为字节流服务。如果一方的应用程序 先传1 0 字节,又传2 0 字节,再传5 0 字节,连接的另一方将无法了解发方每次发 送了多少字节。收方可以分4 次接收这8 0 个字节,每次接收2 0 字节。一端将字 节流放到t c p 连接上,同样的字节流将出现在t c p 连接的另一端。 图3 2 显示t c p 首部的数据格式。在t c p 报文首部中,同样有首部长度的字 段,作用同口数据报,另外需要说明以下几个标志位的作用,它们在t c p 连接中 起着非常重要的作用1 8 j 。 041 01 5 1 6 3 l 源端口目的端口 序列号 确认号 h l e n l 保留引u i 踮a i p j i 拭r $ 1 1 : 窗口 首 校验和蟹急指针 选项填充字节 数据 u r g ) :如果使用紧急数据指针,则将这一位置为1 。 a ( a c k ) :如果确认序列号有效,则将这一位设置为1 。 p ( p s m :表示“推”数据,如果这一位设置为1 ,表示希望接受方在接收到这 个数据段之后,将他立即传送给高层应用程序,而不是缓存起来。 r ( r s d :表示请求重置连接。当t c p 协议接受到一个不能处理的数据段时, 向对方t c p 协议发送这种数据段,表示这个数据段所标识的连接出现了某种错误, 请求对方t c p 协议将这个连接清除。 s ( s v n ) :请求建立连接。t c p 用这种数据段向对方t c p 协议请求建立连接。 f ( f i n ) :请求释放连接。当发送者完成数据的发送之后,向对方t c p 协议发 送这种数据段,通知对方发送数据结束,并请求关闭连接。 本文后续讨论中将会多次用到a c k ,s y n ,f i n 等标志。 2 i p 协议 i p 协议是因特网中的基础协议,f l | i p 协议控制传输的协议单元称为m 数据报。 1 4 业务选择网关中协议分析引擎的研究与设计 m 协议屏蔽下层各种物理网络的差异,向上层( 主要是t c p 层或u d f 层) 提供统一的 m 数据报。 口协议提供不可靠的、无连接的、尽力的数据报投递服务。 i p 数据报的格式如图3 3 所示。普通的m 酋部长为2 0 个字节,除非含有选项 字段。 , o1 51 63 l 啦4 位首部 s 位懈 1 6 位总长度 jl 版本长度 1 6 位标识3 位标志1 3 位片偏移 3 位1 1 _ li 位协议 l 纯首都检验和 2 0 1z 节 3 2 位源l p 地址 3 2 位目的i p 地址 | 选项( 如果有) 数据 图3 3i f 数据报格式及首部中的备字段嗍 在i p 报文首部,服务类型( ,r o s ) 9 】字段包括一个3b i t 的优先权子字段,4b i t 的 t o s 子字段和1b i t 未用位但必须置0 。4b i t 的t o s 分别代表:最小时延、最大吞吐量、 最高可靠性和最小费用。4 b i t 中只能置其中1b i t 。如果所有4b i t 均为0 ,那么就意味 着是一般服务。 3 i c m p i c m p ( i n t e m e t 控制报文协议) 主要支持口数据报的传输差错结果,i c m p 仍然利 用口协议传递i c m p 报文。产生i c m p 报文的路由器负责将其封装到新的i p 数据报 中,并提交因特网返回至原口数据报的源发主机。 i c m p 报文是在i p 数据报内部被传输的。i c m p 报文的格式如图3 4 所示,分为 i c m p 报文头部和i c m p 报文体部两个部分。 图3 4 1 c m p 报文嘲 类型字段可以有1 5 个不同的值,以描述特定类型的i c m p 报文。某些i c m p 报文还使用代码字段的值来进一步描述不同的条件。不同类型的报文由报文中的 类型字段和代码字段来共同决定。i c m p 报文类型主要有:目的地不可达报文,源 抑制( 用于拥塞控制) ,重定向,超时( t i x ) 报告,参数错,回应请求,回应应答, 时戳请求,时戳应答等。 第三章网络协议与协议分析 3 1 3t c p 的连接管理 1 t c p 连接的建立 t c p 连接是通过三次握手来实现的,如图3 5 所示: 客户端 服务器端 图3 5 三次握手【1 0 】 ( 1 请求端发送一个s y n 置位的数据包,在t c p 报文中指明连接端口和请求 端的初始化序列号( i n i t i a ls e q u e n c en u m b e r ,i s 。 ( 2 ) 接收端收到该数据包后,发送s y n 和a c k 都置位的数据包,在t c p 报文 中填写接收端的初始化序列号,确认序列号填写i s n + 1 ,表示收到请求端的请求。 ( 3 ) 请求端收到确认数据包后,发送a c k 置位的数据包,确认接收端的初始化 请求。 2 t c p 连接的终止 建立一个连接需要三次握手,而终止一个连接要经过4 次握手,这由t c p 的半 关闭( h a l f - c l o s e ) 造成的,如图3 6 所示,发送f i n 将导致应用程序关闭它们的连接, 这些f i n 的a c k 是由t c p 软件自动产生的。 客户端服务器端 应用程序 关闭 3 t c p 的状态变迁 图3 6t c p 连接终止 向应用程序关付 e o f 应用程序 关闭 1 6 业务选择网关中协议分析引擎的研究与设计 t c p 的状态变迁如图3 7 所示: 开始 主动关团 说明客户的正常状杏变迁 卜 说明服务器的正常状态变迁 应用进程z 说明当应用执行某种操作时发生的状杏变迁 发:说明当收到t c r p 报文段时状态的变迁 迸r 说明为了进行莱十状鸯变迁受发送的t c p 掇文霞 图3 。7 t c p 的状态变迁图嗍 t c p 连接和中止涉及很多问题,如一个连接的t t r n e o u t ,m s s r m a x i m u m s e g m e n ts i z e ) 的设置,但是最为重要的是其中的状态转换问题。发起和终止t c p 连接的规则都能从图3 7 中得出。 3 2 应用层协议 应用层协议种类繁多,在这里不可能一一列举,我们仅讨论最常用的w w w 服 务协议。下面我们通过对h t t p 协议进行分析,找出逆向解析h t t p 请求的方法。 对于其他应用层协议,开发人员可以参考i - i t t p 的逆向解析,写出对应的解析模块, 添加到业务选择网关中。 3 2 1 i t r p 协议 m l m 超文本传送协议( h y p e r t e x tt r a n s f e rp r o t o c o l ,m 1 甲) 是万维网( w o r l d w i d ew e b ,w w w ,也简称为w e b ) 的基础。h 1 r p 是一个简单的协议。客户进程 第三章网络协议与协议分析 1 7 建立一条同服务器进程的t c p 连接,然后发出请求并读取服务器进程的响应。服 务器进程关闭连接表示本次响应结束。服务器进程返回的文件通常含有指向其他 服务器上文件的指针( 超文本链接) 。用户显然可以很轻松地沿着这些链接从一个服 务器到下一个服务器。 1 、报文类型:请求与响应 h t r p 1 0 报文有两种类型:请求和响应。h t r p 1 0 请求的格式如下1 1 1 】: 支持以下三种请求: ( 1 ) g e t 请求,返回r e q u e s t - u r i 所指出的任意信息。 ( 2 ) h e a d 请求,类似于g e t 请求,但服务器程序只返回指定文档的首部信息, 而不包含实际的文档内容。该请求通常被用来测试超文本链接的正确性、可访 问性和最近的修改。 ( 3 ) p o s t 请求用来发送电子邮件、新闻或发送能由交互用户填写的表格。这 是唯一需要在请求中发送b o d y 的请求。使用p o s t 请求时需要在报文首部 c o n t e n t k n g t h 字段中指出b o d y 的长度。 r 兀甲1 0 响应的格式是: 7 其中s t a t u s 1 i n e 的格式是: l 哪版本号r e s p o n s e - c o d e r e s p o n s e p h r a s e l 2 、首部字段 h t t p 1 o 的请求和响应报文的首部均可包含可变数量的字段。用一个空行将 所有首部字段与报文主体分隔开来。一个首部字段由字段名( 如表3 1 所示) 和随后 的冒号、一个空格和字段值组成,字段名不区分大小写。 报文头可分为三类:一类应用于请求,一类应用于响应,还有一类描述主体。 有一些报文头( 例如:d a t e ) 既可用于请求又可用于响应。描述主体的报文头可以 出现在p o s t 请求和所有响应报文中。表3 1 【l l 】列出了1 7 种不同的报文头。未知的报 业务选择网关中协议分析引擎的研究与设计 文头字段将被接收者忽略。 表3 1h t t p 报文首都字段 首部名称请求响应主体 a 1 l o wy a u t h o r i z a t i o ny c o n t e n t e n c o d i n g y c o n t e n t l e n g t h y c o n t e n t - t y p e y d a t eyy e x p i r e s y f r o m y i f _ m o d i f i e d - s i n e ey l a s t m o d i f i e dy l o c a t i o ny m i m e v e r s i o ny y p r a g m ay y r e f e r e ry s e r v e ry u s e r a g e n t y w w w a u t h e n t i c a t e y 3 、响应代码 服务器程序响应的第一行叫状态行。状态行以f f r t p 版本号开始,后面跟着3 位数字表示响应代码,最后是易读的响应短语。表3 2 l l l l 列出了3 位数字的响应代 码的含义。根据第一位可以把响应分成5 类;使用这种3 位的响应代码并

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论