




已阅读5页,还剩75页未读, 继续免费阅读
(计算机应用技术专业论文)vpn的网络传输性能优化关键技术的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ab s tra c t ab s t r a c t wit h t h e e x t e n s i v e a p p l i c a t i o n o f v p n , v p n p l a y s a n i m p o r t a n t r o l e i n e n s u r i n g i n f o r m a t i o n s e c u ri t y . h o w e v e r , a s e r i e s o f p r o b l e m s i s r e v e a l e d d u r i n g t h e u s e o f v p n a n d tr a n s m i s s i o n p e r f o r m a n c e i s s u e i s o n e o f t h e m. v p n n e t w o r k tr a n s m i s s i o n p e r f o r m a n c e g r e a t l y r e l a t e s t o b a n d w i d t h , l a t e n c y a n d r e l i a b i l i t y o f n e t w o r k l i n k . t h i s t h e s i s s t u d i e s t h e k e y o p t i m i z a t i o n t e c h n o l o g i e s o f v p n n e t w o r k tr a n s m i s s i o n p e r f o r m a n c e t h r o u g h t h e r e s e a r c h o f e s s e n t i a l f a c t o r s i m p a c t i n g o n v p n n e t w o r k tr a n s m i s s i o n p e r f o r m a n c e , t h e t h e s i s r a i s e d s e v e r a l o p t i m i z a t i o n m e a s u r e s w h i c h f o c u s o n b a n d w i d t h , l in k l a t e n c y a n d r e l ia b i l i ty . f i r s t , w e d e s i g n m u l t i - l i n k v p n l o a d b a l a n c i n g t e c h n o l o g y w h i c h b a s e s o n d y n a m i c l in k s ta t e d e t e c t i o n a n d v p n c o m m u n i c a t i o n fl o w c o m p r e s s i o n t e c h n o l o g y t o s o l v e t h e p r o b l e m o f l a c k o f b a n d w i d t h . l i n k s t a t e i s re fl e c t e d t h r o u g h l i n k l a t e n c y a n d p a c k e t l o s s r a t e . l z o w h i c h i s a n e ff i c i e n t c o m p r e s s i o n a l g o ri t h m i s u s e d t o d o c o m p r e s s i o n . s e c o 喊 w e d e s i g n v p n t c p a c c e l e r a t i o n t e c h n o l o g y t o d e a l w i t h t h e l o w b a n d w i d t h u t i l i z a t i o n c a u s e d勿 l o n g l i n k l a t e n c y . t h i r d , w e d e s i g n r e d u n d a n t l i n k f a u l t - t o le r a n c e t e c h n o l o g y t o i m p r o v e t h e c o n t i n u o u s s e r v ic e c a p a b i l i ty o f v p n g a t e w a y a n d t h e f u n c t i o n s o f l i n k f a u l t r e p o rt a n d c o n n e c t i o n r e l o c a t i o n a r e p r o v i d e d . a l l t h e s e o p t i m i z a t i o n m e a s u r e s h e l p v p n s y s t e m a c h ie v e b e tt e r n e t w o r k b a n d w i d t h u t i l i z a t i o n , t h r o u g h p u t a n d h i g h e r a v a i l a b i l i ty o n c u r r e n t n e t w o r k . a f t e r t h e t h e o r e t i c a l a n a l y s i s a n d r e s e a r c h o n t h e k e y t e c h n o l o g i e s f o r o p t i m i z a t i o n , 勿 u s i n g t h e k e rn e l m o d u l e p r o g r a m m i n g t e c h n o l o g y a n d t h e o p e n e d n e t f i l t e r fr a m e w o r k o f l i n u x k e r n e l , t h e t h e s i s i m p l e m e n t e d v p n n e t w o r k tr a n s m i s s i o n p e r f o r m a n c e o p t i m i z a t i o n t e c h n o l o g i e s o n t h e b a s i s o f t h e i m p l e m e n ta t i o n o f l i n u x - b a s e d i p s e c v p n s y s t e m s . me a n w h i l e , t h e o p t i m i z e d v p n s y s t e m p r o v i d e s a w e b - b a s e d c o n f i g u r a t i o n a n d m a n a g e r m e n t in t e r f a c e . i n t h i s t h e s i s , w e d i d d e t a i l e d t e s t i n g o n t h e o p t i m i z d i p s e c v p n p r o t o t y p e s y s t e m a n d m a d e p e r f o r m a n c e a n a l y s i s o n t h e t e s t re s u l t s . t h e t e s t r e s u l t s s h o w t h a t t h e o p t i m i z e d v p n s y s t e m a r c h i e v e s a b e tt e r n e t w o r k t r a n s m i s s i o n p e r f o r m a n c e . ab s t r a c t k e y wo r d s : v i r t u a l p r i v a t e n e t w o r k , n e t w o r k t r a n s m i s s i o n p e r f o r m a n c e , l o a d b a l a n c e , b a n d w i d t h , t c p a c c e l e r a t i o n , l i n k f a u l t - t o l e r a n c e i i i 南 于 卜 大 学 学 位 论 文 电 子 犬 反 授 权 使 用 协 i 义 ( 请将此协议书装订于论文r页) 论 、 咧 确邮廊脚 崛娜嘛平占 恤 、 南开大学工作和学习期间创作完成的作.i q ,并己 通过论文答辩。 本人系本作品的唯一作者 ( 第一作者),即著作权人。现本人同意将本作品收 录于 “ 南开大学博硕 1 学位论文全文数据库”。本人承诺:己提交的学位论文电子 版与印刷版论文的内容一致,如因不同而引起学术声誉上的损失由本人自负。 本人完全了解 南开大 学图 书 馆关于 保存、 使用学 位论 文的 管理力 .,去 二同意 南开大学图书馆在下述范围内免费使用木人作品的电子版: 本作品呈交当年,在校园网上提供论文目录检索、文摘浏览以及论文全文部分 浏览服务 ( 论文前1 6 页)。 公开级学位论文全文电子版于 提交1 年后,在校园网上允 许读者浏览并下载全文。 注:本协议书对于 “ 非公开学位论文”在保密期限过后同样适用。 院系所名称: 作者签名: 学号: 日期 : p q o ( o g 坷年 丁 月 o 日 南开大学学位论文版权使用授权书 本人完全了 解南开大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论 文的印 刷本和电 子版,并采用影印、缩印、 扫描、 数字化或其它手段保存论文;学校有权提供 目录检索以及提供 本学位论文全文或者部分的阅览服务 ; 学校有权按有关规定向国家有 关部门 或者机构送交论文的复印件和电子版; 在不以 赢利为目的的前 提下,学校可以适当复制论文的部分或全部内 容用于学术活动。 学 位 论 文 作 者 签 名 : ,?,j r i f ,. 问年 了 月 4 日 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名:学位论文作者签名: 解密时间:年月日 各密级的最长保密年限及书写格式规定如下: 内部5 年 秘密*1 ( 年 机密*2 0 年 最长石 年 ,可少于 5 年) (,it io-4:. 1-il it-1( =f-)1 i: i; 20 t . 711;t 20 l+ 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行研究工作 所取得的成果。除文中已经注明引用的内容外,本学位论文的研究成果不包含 任何他人创作的、己公开发表或者没有公开发表的作品的内容。对本论文所涉 及的 研究工作做出贡献的其他个人和集体,均已 在文中以明确方式标明。本学 位论文原创性声明的法律责任由本人承担。 学 位 论 文 作 者 签 名 : 刻露欣 -;, o / 年丁 月 z 6 日 第一章 引言 第一章引 言 第一节研究背景 1 . 1 . 1 v p n 系统的广泛应用 随着全球性公司和组织的广泛分布,企业或组织的分支机构增加,人员流 动日 益广泛,企业员工和组织人员需要安全访问内 部资源,在出行时需要移动 办公,公司的分部之间需要及时和安全的通讯。一方面是上述需求的日益迫切, 另一方面却由于传统d d n专用线路租用费用昂贵, 使企业望而却步, 这种矛盾 促成了虚拟专用网络 ( v i rt u a l p r i v a t e n e t w o r k . v p n )的产生和发展。 v p n是一种利用密码技术、访问控制技术等,在公共网络中建立安全可靠 的 传输 通道的 技术, 它为 企业提供了以 低廉的 成 本 安全扩展企业网的能力 z 1虚 拟专用网络对用户透明, 用户好像使用一条专用线路进行数据的安全传输。 v p n的优点是显而易见的:在保障通信安全的前提下降低了运营成本。在 近几年, v p n在各个行业领域己经获得广泛应用,但是其增长趋势仍然没有停 止。 根据i d c顾问公司的预测, 在全球v p n及防火墙软件市场方面, 2 0 0 4 年全 球市场规模为1 1 .3 亿美元, 预计到2 0 0 7 年可以成长至1 3 . 6 亿美元 ( 如图1 . 1 所 示) ,如果加上硬件设备及服务项目,则市场产值将远高于这个数字。 董 臀墨罩 掣 嘿覆 簿蘸黔、 -i 黔 嫩 一 _一毛 令 i 羹 )靛 i衡 i 1 .1 -矍i)黔】i 1 t 图1 . 1 全球v p n 及防火墙软件市场规模预测 ( 单位:亿美元 1 . 1 . 2 v p n 领域研究现状 v p n的广泛应用,使v p n的相关技术成为网络技术研究的一个热点问 题。 研究方向主要涉及到以下几个方面: 第一章 引言 1 . v p n的具体实现和部署技术 在v p n发展的 近十年时间里, 如何实现和搭建适应各种环境的v p n系统一 直是v p n研究的热点问题.研究人员设计了多种v p n实现方式,它们可以 分 布在网络协议栈的不同层次, 采用不同的实现方法。 其中代表性的有mp l s v p n . l 2 t p v p n , p p t p v p n , i p s e c v p n和s s l v p n 1z 1 ,目 前最流行、 使用最广泛的 是, s e c v p n和s s l v p n , 文献 1 7 , 1 8 对两 种v p n实 现做7 全方位比 较。 s s l v p n为 远程移 动主机 访问v p n网 络提 供安 全 保障, 文献 1 9 详细介绍了 常 规s s l v p n的实现; i p s e c v p n则是端到端( s i t e - t o - s it e ) 安全访问的首选, 文 献 1 4 , 1 5 详细阐 述7 i p s e c v p n在l i n u x 平台 上的 实 现。 2 . v p n的安全性研究 v p n安全性研究是v p n领域的又一热点。 安全性研究可细分为加密认证算 法研究、 安全协 议 研究以 及 访问 控制技术研究, 其中, 文献 4 较详细地研究了 i p s e c 协 议中 加密 算 法的 选择, 文 献 2 1 和 2 2 分别阐 述了 基于策略的i p s e c 使 用 管理和基于基于角色的细粒度访问 控制方法。 3 . v p n与传统网络安全设备的集成 网络安全产品集成化、 一体化成为网络安全领域的发展趋势, 因此, 近几年, 如何将v p n集成进统 一 威胁管理平台( u n i fi e d t h r e a t m a n a g e m e n t , u t m) 中 成 为该领域又一研究课题。目 前,市场上已经有较为成熟的产品出现,国内的天 融信、 深信 服,国 际的j u n ip e r , f 5 等 产家都 有 类 似产品 推出。 4 . v p n的性能优化问题 v p n的性能优化问题是一个比较大的范畴。 v p n从物理实体上可以分解成 三个部分,分别是源端主机、目 的端主机和中间网络。其中, 源端主机和目 的 端主机实体是等价的,因此,从逻辑上说v p n性能优化可分为主机处理性能优 化和中间网络性能优化。 主机性能优化可以 通过采用更强的c p u , 采用n p以 及 硬件加速等技术来加以改善和提升,目 前在这个领域已经有很多的解决方案, 也获 得了 较好的 效果. 其中, 文章 5 , 6 分 别 论述了 基于a r m + l i n u x架构 和 基于硬件加密的嵌入式v p n系统的设计与实现,该设计很好地优化了主机端的 性能。中间网络的性能问题主要是指中间网络的带宽、延迟以及丢包等特性对 v p n通信产生的影 响, 这也是本 文研究的 落 脚点。 文 章 2 4 , 2 5 介绍了 一些 广 域网优化技术的研究成果,本文吸收其中的一些技术思想,采用主机端的软件 技术来减轻中间网 络的通信性能问题对v p n通信造成的影响,提高v p n系统 第一章 引言 的网络传输性能。 1 . 1 . 3 v p n 的网络性能问题及研究意义 v p n是通过i n t e rn e t 来安全传输信息的网 络技术, 其性能受主机处理性能与 承载网络性能的影响。单纯依靠优化主机的处理性能,提升主机的处理速度, 而不考虑承载网络的影响因素,有时并不能改善v p n通信的性能。因为如果在 信道容量有限、 延迟较大、可用性不高的 情况下,即使主机拥有先进的 c p u , 快速的处理能力,也很难得到充分发挥, 通信性能仍然不能够得到有效提升, 因此, 研究v p n性能问题不能忽视v p n网 络传输性能的优化。 目前,v p n应用中普遍存在的网络性能问题有: ( 1 ) 企业组织业务扩大,使链路带宽严重不足,无法满足业务需求。 ( 2 ) 企业组织v p n网络延迟较大, 带宽利用率低。 ( 3 )企业组织v p n网络多数存在单点瓶颈, 应对外部网络变化的能力不 足,缺乏链路故障容错能力。 ( 4 ) v p n承载的各种应用的带宽争 用激烈。 综上所述,可以看出:如何使v p n网络设备能够适应高负载、高延迟、低 可用性等网 络环境, 在保障安全信息通信的同时提供高的性能和可用性, 使v p n 通信的整体性能得到优化,是当前v p n网 络技术研究的一个重要问题.该问题 直接影响到v p n的应用范围和发展潜力, 针对该问题的研究有着很强的现实意 义。网络的复杂性导致了v p n网络性能优化方案的复杂性。不同的网络环境, 优化网络性能的方式也存在差别。因此,不可能有某种单一的方式方法就能够 解决v p n的网 络性能问题。 v p n的网络性能优化必将是一个综合的解决方案. 第二节 本文研究内 容 本文针对当前v p n的网络性能问题, 研究在端节点上优化v p n网络传输 性能的相关技术。 这些技术通过改进v p n端节点的软件处理过程, 来提高v p n 的网络适应性, 可用性以及传输性能。 技术上具体涉及到v p n多链路负载均衡、 v p n通信流压缩、v p n t c p 加速和v p n冗余链路容错等方面。 l . v p n多链路负载均衡 随着企业组织的发展壮大,原有带宽己 经不能满足组织v p n通信的需求, 此时企业往往通过租用多个 i s p ( i n t e m e t s e r v i c e p r o v i d e r ) 的链路来承载其v p n 第一章 引言 通信流, 因此 v p n 网关需要有分流的能力。传统的做法是通过设置固定的策 略来决定某类通信流从某个i s p的链路流出, 但是由于企业内部各种流量的易变 性以及预测的不准确性,这种固定的策略配置方式容易造成带宽利用上的浪费。 当某条i s p 链路很繁忙时,可能某条i s p 链路正非常空闲.本文将研究v p n多 链路动态负载均衡技术, 实时动态地对v p n通信流进行出口调度, 均衡通信流, 更加合理有效地利用组织的可用带宽. 2 . v p n通信流压缩 本文还将研究 v p n通信流压缩技术来深入挖掘带宽的利用率,提高 v p n 网络的信息吞吐量。网络上传输的通信流有很大一部分是可以被压缩的,压缩 后的信息占 用更少的带宽,有利于v p n信道承载更多的通信信息。 3 . v p n t c p 加速 针对v p n网络延迟较大所引 起的带宽利用率低的问题, 本文将研究相应的 协议加速技术来加以解决。由于网络协议本身的原因,使得延迟较大的v p n网 络通信性能比较低,通过改进相关协议的工作流程,优化协议相关参数,降低 网络链路延迟对v p n带宽利用率的影响。 4 . v p n冗余链路容错 当企业或组织对v p n网 络的 可用性有较高要求时, 单链路的v p n设备往往 对这种需求力不从心。因为一旦该链路由于某种原因发生中断,v p n通信就无 法继续进行。如果这种状况频繁发生,将给企业造成较大损失。为改善这一状 况,本文还将研究v p n与冗余链路容错功能的结合,提高v p n网络的可用性。 也就是说,当某条链路性能发生较大的改变或某条链路突然中断时,能够在短 时间内将连接迁移到冗余链路上。 综上, 本文将主要针对目前v p n在网络传输上存在的主要性能问题, 研究 相应的优化技术,并将这些软件技术集成到v p n端节点的处理过程中,使构建 的v p n网络具有更好的传输性能和可用性,更大的带宽利用率。 第三节 论文结构 本文在结构上分为六个组成部分: 第一章介绍了v p n的广泛应用前景和v p n性能优化技术的需求; 第二章较详细地介绍了在开源操作系统 l i n u x 下实现 v p n相关网络传输优 第一章 引言 化方案所涉及的技术基础; 第三章从v p n网络的可用性、 运行效率等方面着重分析了目 前存在的几类 典型v p n的网络性能问题,并提出了相应的优化思路和解决方案; 第四章结合实验室开发的基于l i n u x 的i p s e c v p n系统, 将上述优化技术融 合实现于该v p n系统中,改善原有系统的网络传输性能,同时也为这些技术在 类似v p n系统中的具体实现提供一个范例; 第五章通过系统测试比 较优化前的i p s e c v p n系统与优化后的系统在不同 的网络环境下的性能表现; 第六章对本文所阐述的内容进行总结,并进一步展望v p n的网 络性能优化 领域的发展趋势。 第二章 l i n u x 环境下实现v p n优化的技术基础 第二章l i n u x 环境下实现v p n 优化的技术基础 在目 前众多的操作系统中, l in u x 因为其开放性, 稳定性, 安全性以及良 好 的设计获得了用户的广泛使用,许多v p n系统都是基于l i n u x 操作系统来设计 其软件系统的,因此本文在阐述v p n的网络优化方案的具体实现时以这一开源 的高性能的操作系统为基础.本章将从l i n u x 系统平台的角度分析v p n网络优 化实现所涉及的技术基础,为第四章v p n优化方案在l i n u x 平台上的综合实现 做铺垫。 第一节l i n u x 内核模块编程 操作系统的内 核结构主要有两种: 层次 式结构和微内 核结构。 层次操作系 统体系结构的大部分或全部层次功能由内核实现,所有的接口功能只与相邻层 有关,系统和应用独立,其每一功能层的变化都会影响整个系统。微内核体系 结构的基本思想是将原来属于传统操作系统内核的一些功能和服务从内核中 分 出,以子系统 ( 组件)的形式与内核或其它子系统相互作用。组件功能以服务 进程的方式通过消息与微内核和其它组件相互通信来完成。微内核的主要功能 就是消息交换、确认消息、在组件间传送消息及准许对硬件操作。微内核结构 的主要优点是:系统具有统一的接口,扩展性、可靠性及支持分布式系统. l i n u x 内 核结构没有采用当时更被看好的微内 核结构, 而是使用的 层次式结 构。 不过, l i n u x 引入了内核模块机制, 系统启动后, 可以随时动态地加载功能 模块, 这样有效地控制了内核的大小, 方便地进行功能扩展, 从而使l i n u x 系统 也具备微内核结构的一些优点。 所谓模块就是能够独立于内核编译的,并在系统启动后,可以动态地加载 到内核的一组功能和数据的集合。由于模块可以动态加载,因此我们称之为可 加载内核模块 ( l o a d a b l e k e rne l mo d u le , l k m) e l k m的特点是:动态加载, 无须重新实现内核,能够方便地扩展系统功能,它常常被用于作设备的驱动程 序或文件系统。 编写一个模块主要用到两个函数: 第二章 l i n u x 环境下实现v p n优化的技术基础 i n t i n i t _ m o d u l e ( v o i d ) v o i d c l e a n u p mo d u l e ( v o i d ) /*用于初始化所有成员*/ /*用于退出清理*/ l n i t m o d u l e ( v o i d ) 函数 主要 用于 完 成对数据成员等的 初始化, 完成系统资 源 的申 请和注册操作,它在模块被加载到系统核心时调用。 c l e a n u p - m o d u l e ( v o i d ) 函 数 用 于 在模 块卸 载时 完 成 系 统资 源的 归 还 和注销等 工作,当系统模块被卸载时, 该函数会被调用。 因此,在内核模块编程时所要做的时按照要实现的模块的功能要求,填充 函数即可。需要特别关注的问题是,内核模块是运行在内核空间,它不同于用 户态的应用程序,内核态程序只要出现一些不一致,内存使用不当,就很可能 马上内核崩溃,而用户态程序如果出问题,很可能只是这个程序不能使用,而 不会影响整个系统以 及系统中 运行的 其他应用程序. 内核模块编程与普通编程的另一个重要区别是其编译选项的特殊性。内核 模 块 是 一 个 对象文 件, 编 译时 需 要 定 义 一k e r n e l 一和m o d u l e 两 个宏, 其中 , 一k e r n e l 一表示程序是在内 核中 运 行, 编译时需要相关的内 核函 数的支持: m o d u l e表示所编译的是内 核模块。 同时在编译时, 还可以通过一 0 选项指示编 译器对生成的代码进行优化, 优化后的代码将具有更高的执行效率。编译成功 后,可以得到一个. 。 文件,这就是生成的模块了。 核心模块的加载方式有两种。一种是使用i n s m o d 命令手动加载模块。另外 一种则是在需要时加载模块, 称为请求加载。当核心发现有必要加载某个模块 时,如用户使用了核心中暂不存在的文件系统时,核心将请求核心后台进程 ( k e m e l d )加载相应的模块。使用命令i s m o d 可以查看当前被加载的模块。 模块可以通过使用r m m o d 命令来删除,但是请求加载模块将被k e m e l d 在其 引用计数为 0 时自 动从系统中删除。 第二节l i n u x n e t f i l t e r 框架 n e t f i l t e r 是l i n u x 2 .4 内 核的 一个开放子系统, 它构造了 一个抽象、通用的 框 架, 使 得 诸如数 据 报文 过 滤、 网 络 地 址 转 换 ( n a t ) 以 及网 络 连 接跟 踪等 操作 成 为 可能 13 3 1 . n e t fi lt e ; 定 义了 协议 栈中 的 检查 点 和 在 检查 点 上引 用的 数 据结 构, 以 及在检查点上对这些结构的处理流程。 当数据报文流经l i n u x内核的网络协议栈时, 会过几个检查点, 在这些检查 第二章 l i n u x 环境下实现v p n优化的技术基础 点上, 数据报文可以按需要被分析处理, 这些检查点就是n e t fi lt e r h o o k , 每个 h o o k上可以 挂载相应的钩子函数。 检查点分布在协议栈的流程中, 处于t c p / i p 网络模型的网络层。 检查点的个数和分布是根据协议族设定的。图2 . 1 是工 p v 4 协议栈中的检查 点分布。 数据链路层 图2 . 1 n e t f i l t e r 中的检查点 图中 检查点的名称如表2 . 1 表 2 . 1 检查点编号 所示。 l p v 4 n e t f i l t e r 检查点名称 检查点名称 nf i p p r e rout ing nf i p l ocal in nf i p f or ward nf i p p os t rout i ng nf i p l oc al out 图2 . 1 中的r o u t e - 1 处 对收 到的 报文 做路由 查找并 判断 这个包是 需要转发的 报文还是发往本机上层的报文,r o u t e - 2处查找发出报文的路由. n f i p es p r e r o u t i n g处 对 所有 传入i p 层的 数据报文 进行处理, 在这 之前, 有 关数据报文的版本、 长度、校验和等正确性检查己 经完成。 n f i p l o c a l in 对 发往 本机上层的数 据报文 进 行处理。 n f i p 一 f o r w a r d处 会处 理所 有需要转 发的 数据报文。 n f 一 i p - p o s t es r o u t ing处对所 有向 链路 层传递的 数据 报文进行 处 理, 注意 在此处数据 报文的 路由已 经确定。 n f j p - l o c a l - o u t对 本机发出 第二章 l i n u x 环境下实现 v p n优化的技术基础 的报文进行处理。因此,任何的数据包多会被n e t f il t e r 框架中的若干钩子处理, 其中 发 给本机的数 据包经过n f 一es p r e es r o u t i n g和n f - i p - l o c a 工 - i n钩子, 经过本机转发给别的主机的数据包经过 n f _ i p 一r e es r o u t ing . n f _ i p 一o r w a r d和 n f ee i p 一o s t r o u t ing钩子,本机发出的数据包经过 n f i p l o c a l o u t 和n f i p p o s t r o u t ing钩子3 4 1 每 个钩 子函 数 都 通 过o f h o o le_ o p s 结 构 注 册到n e t f i lt e r 的 相 应检查点 上。 n e t fi l t e r 为每个协议栈预先定义了8 个链表数组用于保存检查点上的数据结构, 这些链表与协议栈中的检查点一一对应。在实际的应用中,这 8个链表并不一 定都被使用,比如在i p v 4 中,只定义了5 个检查点,分别对应前5 个链表,后 面的3 个链表没用使用。 o f h o o k es o p s 结构在l i n u x - 2 .4 .x / in c l u d e / l i n u x / n e t fi l t e r h中定义如下: 协议栈链表数组与o f的结构关系如图2 . 2 所示。 协议栈 s tru c t l i s t n 日 ad i p v 4 协议 栈 日 t r u dl i s t h e a d 曲u口 li s t h e a d . 七 划d l i s t h e a d 协议栈协议投 s tru d l is t h e a d s 加dlis t h e a d 最后一个 n 仁h o o k _ o p s 指向最后一个 l i s t h e a d li s t h e a d lis t h e a d l i s t h e a d 指向 桂表头节点 h o o k n u rp n o rityh o o k n u rp rio ri ty 妙1妙1砂一妙 s i l l ) d l i s t h e a dh o o k n u rp rio rity 图2 . 2 协议 栈链表数组与o f h o o k es o p s 结构 这些结构体通过l i s t 连成一个链表。 此外, 在l i n u x 核心网络协议栈中有一 个全局变量 s t r u c t l i s t h e a d o f h o o k s n p r o t o n f _ m a x _ h o o k s , 该 变量是 一 个二维数组, 第一维用于指定协议族,第二维用于指定h o o k( 检查点)的类型。 该二 维 数 组的 每一 个 元素 都 对 应 着 这 样的 一 个o f h o o k o p s 结 构 双向 链 表 3 3 第二章 l in u x 环境下实现v p n优化的技术基础 o f h o o k c p s 结构中的h o o k函数指针指向的函数负责对经过的数据报文进 行操作. h o o k函数的函数指针类型在l i n u x / n e t f i l t e r . h 中 给出。 t y p e d e f u n s ig n e d i n t n f _ h o o k f n ( u n s ig n e d i n t h o o k n u m , s t r u c t s k _ b u ff s k b , c o n s t s t r u c t n e t d e v i c e * i n , c o n s t s t r u c t n e t - d e v ic e * o 哦 in t ( o k f n ) ( s t r u c t s k es b u ff ) ) ; 第二个参数是一个指向s k b u ff结构的指针, 用来传入接受处理的数据报文。 s k b u ff是网络协议栈用来描述一个数据报文的数据结构,对内核而言,一个数 据报文存在的标志就是拥有一个s k b u ff结构。 后面的两个参数是指向n e t d e v i c e 数据结构的指针,n e t d e v i c e 数据结构被l i n u x内核用于描述所有类型的网络接 口。参数i n用于描述数据报文到达的接口,参数。 u t 用于描述数据报文离开的 接口。通常情况下, 这两个参数中将只有一个被提供。例如:参数 i n只用于 n f i p p r e r o u t ing 和 n f i p l o c a l in 检查点,参数 o u t只用于 n f i p l o c a l o u t和n f i p p o s t r o u t i n g检查点。最后一个参数是一个 命名为。 k f n 函 数指针, 该函数以 一个s k 一 b u ff结构作为 它唯一的参数, 并且返回 一个整型值, 当n e t f i lt e r 被启用时, 它用于完成钩子函数处理数据报文后的后续 操作。 h o o k 函数最后必须返回下列预定义的n e t f i l t e r 返回值中的一个, 如表2 .2 所示。 表2 . 2 h o o k 函数返回值含义 返回值含义 nf drop acce p t s t ol e n n f - q u e u e nf rep e a t 丢弃该数据报文 接受该数据报文 该数据报文交由h o o k函数处理,不要继续传输该数据报 将该数据报文排队,交给用户空间进程处理 再次调用该h o o k 函数 n f d r o p 的含义是该数据报文将被丢弃, 所有为它分配的资源都应当被释 放。 n f a c c e p t表示该数据报文目前还是被接受的并且应当被递交到网 络协议 栈的下一个阶段。 n f s t o l e n表示该h o o k函数将从此开始对数据报文的处理, 第二章 l i n u x 环境下实现v p n优化的技术基础 并且n e t f i l t e r 应当 放弃对该数据报文做任何的处理, 但是, 这并不意味着该数据 报文的资源已 经被释放, 这个数据报文以 及它 对应的s k 少u $ 数据结构仍然有效, 只是 h o o k函数从 n e t f i lt e r获取了该数据报文的所有权。最后一个返回值 n f - r e p e a t 请求n e t f i l t e r 再次 调用这个h o o k 函 数。 显然, 使用者应当谨慎 使 用n f es r e p e a t 这个 返回 值,以 免 造成死循环. 下面介绍如何注册一个h o o k函数,注册一个h o o k函数并不是增加一个检 查点,而是在检查点上挂载一个 o f h o o k o p s结构体。这是通过调用 o f r e g i s t e r es h o o k 函 数 完成。 o f r e g i s t e r h o o k 函 数以 一 个o f h o o k o p s 数据结构的 地址作为参数并且返回一个整型的值.眨r e g i s t e r h o o k的作用是根据 o f h o o k o p s 中定义的协议族号和h o o k n u m( 检查点号) 决定该结构体要注册到 o f h o o k 中的 哪个 链表中, 然后按它的p r i o r i t y 的 数 值 从小到大 将其插入链表。 n e t fi l t e r 以n f 一o o k o 的 形式出 现在 报文 处 理的 过 程之中。 n f - h o o k是 n e t f i l t e r 中定义的一个宏。内核代码中的相关部分如下( l i n u x / n e t f i l t e r .h ) e # if d e f conf i g ne tf i l ter # if d e f c o n f ig _ n e t f i l t e r _ d e b u g # d e f i n e n f _ h o o k o f h o o k s l o w # e l s e # d e f i n e n f _ h o o k ( p f , h o o k , s k b , in d e v , o u t d e v , ( lis t - e m p t y ( 如果遍历完所有的 第二章 l i n u x 环境下实现v p n优化的技术基础 结构体 而没 有 被 丢弃, 则调 用o k f n 函数 进行 后续处 理。 由n f h o o k的宏 定 义 可以看出, 如果在内核编译参数中取消c o n f i g es n e t f i l t e r宏定义或者 o f h o o k s指向的链表为空 ( 即检查点上没用任何 o f h o o k _ o p s结构体) , n f ee h o o k宏定义直接被替换为o k fn , 也就是说, 1p分组进入检查点并没有进 行任何钩子函数处理就继续协议栈的流程。 n e t fi l t e r 检查点上处理流程如图2 . 3 所示。 图2 . 3 n e t f i l t e r 检查点 上函 数的调用 第三节 l i n u x 内 核调试技术 本文所涉及的众多技术都是基于l i n u x 内 核做开发的。 调试l i n u x 内 核程序 不同 于用户 态 程 序, 需要 一套专门的工 具。 最 常用的内 核调试手段就是p r i n t k p , 通过这个调用将程序上下文的信息显示到控制台上,这种方式既方便,又简单, 但是功能比较有限,很难跟踪复杂系统的运行流程,不容易对程序的问题进行 定 位。另一个工具叫 k g d b , 它是功能强大的内 核调试工具, 在系统内 核程序的 开发调试过程起着非常重要的作用, 它也是本节将重点介绍的调试方法。 拥有 好的调试手段, 才能使内 核开发事半功倍。 2 . 3, k g d b 调试环境构建 k g d b 能很 方 便的 在源码级对内 核进 行调 试, 但是 它只能 进行远程双机调 试, 所以环境搭建比较复杂,下面简要介绍其环境搭建过程: 1 . 准备 一台 开 发 机d e v e l o p e r , 一台 测试 机t a r g e t , 都预装l i n u x , 一 根串 口 线, 下载以下软件包: l i n u x内核 2 . 4 . 2 3 -l i n u x - 2 . 4 . 2 3 .t a r . b z 2 , 第二章 l i n u x 环境下实现、 fn 优化的技术基础 2 . 3 . 2 k g d b 内 核模块调试 t a r g e t 上的内 核或内 核模块处于 调 试 状态时, 可以 查看其变量、 设置断 点、 查看堆栈等, 并且是在源码级的调试, 和用 g d b调试用户程序一样。 要想调试 内 核模 块, 需要 相应的g d b 支持, k g d b 的 主 页 上提供了 一 个工具g d b m o d , 它修 正了g d b 6 .0 在 解析模块地址时的 错 误, 可以 用 来正 确的 调试内 核 模块。 文 献 3 8 详细介绍了k g d b 调试具体模块的 相关流程, 本文将不再赘述。 第三章 v p n网络传输性能问题分析及优化方法研究 第三章v p n 网络传输性能问题分析及优化方法研究 第一节v p n 网络性能问题概述 v p n是一种基于公共数据网,给用户一种直接连接到私人局域网感觉的服 务。 v p n极大地降 低了用户的费用, 而且提供了比 传统方法更强的安全性和可 靠性.然而,因为v p n传输信息的载体是公共数据网 ( 目 前最主要的方式是广 域网) ,因此它的网络传输性能很大程度上会受到广域网传输性能的影响。而广 域网本身
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五土地赔偿协议书范文
- 2025一级造价师考试重点:《合同》在发承包阶段的作用与价值
- 二零二五房屋买卖合同中违约金的规定
- 云计算教学大纲
- 货物运输合同责任保险条款二零二五年
- 个人跟个人借款协议书
- 二零二五版股权作质押贷款合同
- 离婚协议书.二零二五年
- 2025年复配色粉项目建议书
- 二零二五版咨询服务合同例文
- 小学语文整本阅读指导课《城南旧事》教学案例
- (机械创新设计论文)
- GB/T 39802-2021城镇供热保温材料技术条件
- GB/T 2792-2014胶粘带剥离强度的试验方法
- GB/T 21566-2008危险品爆炸品摩擦感度试验方法
- GB/T 215-2003煤中各种形态硫的测定方法
- GB/T 17492-2012工业用金属丝编织网技术要求和检验
- GB/T 17207-2012电子设备用固定电容器第18-1部分:空白详细规范表面安装固体(MnO2)电解质铝固定电容器评定水平EZ
- GB/T 16886.7-2001医疗器械生物学评价第7部分:环氧乙烷灭菌残留量
- 国开电大《人员招聘与培训实务》形考任务4国家开放大学试题答案
- 铁路职工政治理论应知应会题库
评论
0/150
提交评论