(通信与信息系统专业论文)网络地址翻译和网络地址翻译—协议翻译的实现和研究.pdf_第1页
(通信与信息系统专业论文)网络地址翻译和网络地址翻译—协议翻译的实现和研究.pdf_第2页
(通信与信息系统专业论文)网络地址翻译和网络地址翻译—协议翻译的实现和研究.pdf_第3页
(通信与信息系统专业论文)网络地址翻译和网络地址翻译—协议翻译的实现和研究.pdf_第4页
(通信与信息系统专业论文)网络地址翻译和网络地址翻译—协议翻译的实现和研究.pdf_第5页
已阅读5页,还剩73页未读 继续免费阅读

(通信与信息系统专业论文)网络地址翻译和网络地址翻译—协议翻译的实现和研究.pdf.pdf 免费下载

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

文档简介

北方交通大学坝士研究生毕业论义 摘要 现代信息社会随着i n t e r n e t 的膨胀式发展,i p v 4 下其可用的i p 地 址越来越少。i p 地址被分为五类,只有三类用于i p 网络,这三类地址 一度被认为足以应付将来的网络互联。某些小公司只有几台主机,它们 对于c 类地址的使用效率很低;而大型机构在寻找b 类地址时却发现越 来越难;那些幸运地获得a 类地址的少数公司很少能够高效地使用它们 的一千六百万个主机地址。这导致了在过去几年中一直使用的网络地址 指派规程陷入了困境,在试图更有效地分发地址空间的同时,还要注意 保存现有的未指派地址。与此同时,一些解决地址危机的办法开始得以 广泛使用,其中包括网络地址翻译( n a t ) 。、 n a t 协议的实现除了能较好的解决i p 地址耗尽的问题外,还可以完成 隔离外界保护公司和个人的隐私和安全,负载平衡,备份系统等功能。 i p v 4 除了地址缺乏的问题外,还包括更普遍的扩展性问题、管理问题、 选路困难、服务的改进和服务质量特性的交付以及安全性问题。 ,i p 刚开始时,从各方面看就像一个实验品,其主要目的在于为在异 种闷络间进行数据的可靠、健壮和高效传输探索最佳机制,从而实现不 同计算机的互操作。在很大程度上i p 实现了此目标,但这并不意味着i p 可以继续实现这些目标,也不意味着在对i p 进行修改后而不能更好。随 着工作和计算机对于移动性和安全性等要求的与日俱增,i p 也必须做出 一些改变以适应这种需求。很久以来人们认为安全性议题在网络协议栈 的低层并不重要,应用安全性的责任仍交给应用层。在许多情况下,i p v 4 设计为只具备最少的安全性选项,而i p v 6 的设计者们已在其中加入了安 全性选项来强力支持i p 的安全性。i p v 6 安全性的增强无疑将改进虚拟专 用网( v p n ) 的互操作性。i p v 6 的安全性特性中包括数据的加密与对于所传 输的加密数据和未加密数据进行的身份验证。 所以i p v 6 的引入势在必行。但i p v 6 不可能在短期之内完全替代i p v 4 , 将逐渐出现向i p v 6 过渡,即会出现i p v 4 与i p v 6 长期共存的局面。这就使 n a t 协议的后继版本n a ,r p t 还可以在从i p v 4 至u l p v 6 的演进过程中起到重 要的作用。 4 北方交通大学硕士研究生毕业论文 a b s t r a c t v e r s i o n4o ft h ei n t e r n e tp r o t o c o l ( i p v 4 ) h a sb e e ni nw i d eu s e f o rt h ep a s t3 0y e a r s ,b u ti th a so u t l a s t e di t se f f e c t i v el i f e t i m e a n di ss t r a i n i n gt ok e e pu pw i t ht h ed e m a n d so ft o d a y si n t e r n e t w i t ht h ee x p o s i v ed e v e o p m e n to ft h ei n t e r n e t 。t h ei pa d d r e s s b e c o m e sm o r ea n dm o r es c a r c e u s i n gt h en a tc a nt e m p o r a l l ys o l v e t h i sp r o b l e m t h ep a p e rd i s c u s s e sh o wt oc o d en a tt os o l v et h a t p r o b l e m a n dn a t s a p p l i c a t i o n o no t h e rs i t u a t i o n s :s u c ha s v i r t u a ls e v e r ,l o a db a l a n c i n g b e s i d e s ,t h ei p v 4s y s t e mc a n n o ts a t i s f yt h en e w l yr e q u i r e m e n t s u c ha st h eq o sa n dt h eh i g hs e c u r i t yl e v e lr o s ef r o mt h ei s p s t h e r e f o r et h ei n t r o d u c t i o no fi p v 6i sn e c e s s a r ya n di m p e n d i n g i p v 6isan a t u r a le v o l u t i o nf r o mi p v 4a n da t t e m p t st oa d d r e s sm a n y o ft h eo i d e rp r o t o c o l ss h o r t c o m i n g s i p v 6i sd e s i g n e dt ok e e pu p w i t ht h er a p i dg r o w t ho ft h ei n t e r n e t i p v 6i san e wv e r s i o no f t h ei n t e r n e t w o r k i n gp r o t o c o ld e s i g n e dt oa d d r e s st h es c a l a b i l i t y a n ds e r v ic e s h o r t c o m i n g s o ft h ec u r r e n t s t a n d a r d , i p v 4 u n f o r t u n a t e y ,i p v 4a n d i p v 6a r en o t d i r e c t l yc o m p a t i b l e ,s o p r o g r a m sa n ds y s t e m sd e s i g n e dt oo n es t a n d a r dc a n n o tc o m m u n i c a t e w i t ht h o s e d e s i g n e d t ot h eo t h e r i p v 4s y s t e m s ,h o w e v e r ,a r e u b i q u it o u sa n da r en o ta b o u tt og oa w a yi nas i n g l ed a ya st h ei p v 6 s y s t e m sa r er o ll e di n c o n s e q u e n t l y ,i t i s n e c e s s a r yt od e v e l o ps m o o t ht r a n s i t i o n m e c h a n is m st h a te n a b l ea p p l i c a t i o n st oc o n t i n u ew o r k i n gw h i l et h e n e t w o r ki s b e i n gu p g r a d e d t h ec o r es p e c i f i c a t i o n sh a v e b e e n s t a n d a r d iz e d t h r o u g h t h ei e t f s i p n gw o r k i n gg r o u p ,a n dt h e n o t r a n s w o r k i n gg r o u p i s s t u d y i n g i s s u e s s u r r o u n d i n g t h e c h a l l e n g i n gt a s ko fs m o o t h l yt r a n s i t i o n i n gf r o mi p v 4t oi p v 6 i n t h i s p a p e r w ep r e s e n tt h e d e s i g na n dp r o g r a mo fat r a n s p a r e n t t r a n s i t i o ns e r v i c et h a tt r a n s l a t e sp a c k e th e a d e r sa s t h e yc r o s s b e t w e e ni p v 4a n di p v 6n e t w o r k s 5 北方交通大学硕士研究生毕业论文 第一章综述 1 网络地址翻译概述 1 1 网络地址翻译简介 现代信息社会随着i n t e r n e t 的膨胀式发展,i p v 4 下可用的i p 地址 越来越少。n a t ( 网络地址翻译) 协议的除了能暂时解决i p 地址耗尽的 问题外,还可以完成主机隐藏,负载平衡,备份系统等功能。随着时代 的进步,人们对网络的服务和安全要求是i p v 4 无法满足的,i p v 6 的引 入势在必行。n a t 协议的后继版本n a t p t 还可以在从i p v 4 到i p v 6 的 演进过程中起到重要的作用。 下面给出n a t 在协议栈中的位置和与其它模块的关系图( 1 一1 ) : 图1 1 接着给出n a t 在路由器上工作示意简图( 1 2 ) : ! ! 查奎望查兰堡主翌塞生兰些堡塞一 1 2 本论文的工作 图1 2 本论文的主要工作是: 详细阐述了i p v 4 下网络地址翻译( n a t 和n a p t ) 的原理与编程 实现。包括设计思想和重要函数。并进行了运行测试,给出测试 环境和结果。随后对路由器上运行n a t 程序对其它协议的影响进 行了具体和深入的分析,并给出部分解决方案。此外,还对n a t 协议附加功能进行了举例讨论。 - 详细阐述了网络地址翻译一协议翻译( n a t p t ) 的研究与编程实 现,主要包括设计思想和具体翻译动作。并进行了该程序的运行 性能测试,给出测试结果和对测试结果的分析。随后对由于运行 该程序对其它协议的影响及信息的丢失进行了具体和深入的分 析。 ! ! 立銮塑查兰堕圭鲨塞兰量型堕垒兰一 第二章网络地址翻译( n a t 和n a p t ) 的研究与实现 2i p v 4 下网络地址翻译( n a t 和n k v r ) 的研究与实现 2 1i p v 4 下的网络地址翻译 n a t 的工作原理是:在内部网络中使用内部i p 地址的主机,通过n a t 把内部i p 地址翻译成合法的外部i p 地址,与i n t e r n e t 上的主机通信。 即把i p 包内的地址字段用合法的i p 地址来替换。n a t 的基本功能可以 分为静态地址翻译( s t a t i cn a t ) 、动态地址翻译( p o o l e dn a t ) 、网络 地址与端口翻译( n a p t ) 。经过n a t 的地址翻译,在实际上还起了隔离内 部网络和外部网络保护内部隐私的作用。 n a t 应用的典型环境如图2 1 ,即某个端网( s t u b ,端网就是只有 通信数据的起点或终点的网络) 通过带有n a t 功能的s t u b 路由器和外部 的广域网( w a n ) 相连。 ; 图2 - 1 n a t 工作的环境 静态地址翻译( 图2 - - 2 ) 是将内部本地i p 地址与预先指定的外部合 法i p 地址进行一对一固定的翻译。本地i p 地址是r f c l 5 9 7 中以下的一 些地址范围: i 0 0 0 o - 1 0 2 5 5 2 5 5 2 5 5 1 个a 类地址 1 7 2 1 6 0 0 一1 7 2 3 1 2 5 5 2 5 5 1 6 个b 类地址 1 9 2 1 6 8 0 0 1 9 2 1 6 8 2 5 5 2 5 5 2 5 5 个c 类地址 静态n a t 设置起来最为简单,只须将内部网络中的每个主机都被固 r ! ! 查奎望查堂堡主竺壅生望些堡壅 定映射成外部网络中的某个合法的地址。如果内部网络有e - m a i l 服务器 或f t p 服务器等可以为外部用户共的服务,这些服务器的i p 地址必须采 用静态地址翻译,以便外部用户可以使用这些服务。 动态地址翻译:首先定义了一系列的合法地址池,地址池内的地址把 来自内部网络的i p 地址映射成为地址池( a d d r e s sp 0 0 1 ) 中的合法i p 地址。所以,使用n a t 地址池,可以在未注册的地址空间中提供被外部 访问的服务,也可以从内部网络访问外部网络,而不需要重新配置内部 网络中的每台机器的i p 地址。很明显,动态地址翻译也是将本地i p 地 址与合法i p 地址一对一的转换,只不过是从合法地址池中动态地选择一 个末使用的地址对内部本地地址进行翻译。 采用n a t 地址池意味着可以在内部网中定义很多的内部用户,通过 动态分配的办法,共享很少的几个外部i p 地址。而静态n a t 则只能形成 一一对应的固定映射方式。该引起注意的是,n a t 地址池中动态分配的 外部i p 地址全部被占用后,后续的n a t 翻译申请将会失败。庆幸的是, 许多有n a t 功能的路由器有超时配置功能。例如:配置成开始1 5 分钟后 删除当前的某个n a t 进程,为后续的n a t 申请预留出外部i p 地址。当然 你可以自行调节时间闽值,以满足不同的需求。 n a t 地址池在提供很大灵活性的同时,也影响到网络原有的一些管理 功能。例如,s n m p 管理站利用i p 地址来跟踪设备的运行情况。但使用 n a t 之后,意味着那些被翻译的地址对应的内部地址是变化的,今天可 能对应一台工作站,明天就可能对应一台服务器。这给s n m p 管理带来了 麻烦。一个可行的解决方案就是把划分给n a t 池的那部分地址在s n m p 管 理平台上标记出来,对于这些不响应管理信号的地址不予报警。 网络地址与端口翻译( n a p t ) ( 图2 3 ) 首先是一种动态地址翻译, 但是它可以允许多个内部地址共用一个外部合法地址。在只申请到少量 i p 地址但却经常同时有多于合法地址个数的用户上外部网络的情况下, 这种翻译方式极为有用。n a p t 在远程访问产品中得到了大量的应用,特 别是在远程拨号用户使用的设备中。n a p t 可以把内部的t c p i p 或u d p i p 映射到一个外部合法i p 地址的不同端口上。n a p t 可以支持同时6 3 k 个t c p i p 、u d p i p 连接,但实际可以支持的个数会少一些。因为许多 i n t e r n e t 应用如h t t p ,实际上由许多小的连接组成。当多个用户同时使 用一个i p 地址,路由器内部会利用上层的如t c p 或u d p 端口号等唯一标 识某台计算机对外部网络如何进行识别。 1 0 _ 3 3 9 6 51 0 8 1 1 3 2 2 图2 - 2 静态地址翻译 0 0 0 11 0 1 3 8 7 6 2 9 7 ,s p o r t = 2 3 , 1 0 0 0 1 0 ,d p o r t = 3 0 1 7 0 ! ! 查奎塑查堂堡主堕垄竺! ! ! 些兰一 在i n t e r n e t 中使用n a p t 时,所有不同的t c p 和u d p 信息流看起来 仿佛都来源于同一个i p 地址。这个优点在小型办公室( s o h o ) 内非常实 用,通过从i s p 处申请的一个i p 地址,将多个连接通过n a p t 接入 i n t e r n e t 。实际上,许多s o h o 远程访问设备支持基于p p p 的动态i p 地 址。这样,i s p 甚至不需要支持n a p t ,就可以做到多个内部i p 地址共用 一个外部i p 地址上i n t e r n e t 。虽然这样会导致信道的一定拥塞,但考 虑到节省的i s p 上网费用和易管理的特点,用n a p t 还是一个不错的选择。 地址转换是独立的应用,经常伴随特殊应用网关( a l g s ) 执行有效 的净荷检测和变换。f t p 是n a t 设备里最常用a l g 功能。这个方法的缺 陷是改变了i p 地址点对点的意义。 2 2n a t 的翻译的步骤和规程: i 地址绑定 地址绑定阶段是指合法地址和内部地址相关联的过程。翻译器会维 持一张地址映射表来进行地址翻译。 对于那些静态翻译的地址,地址绑定会在翻译器初始化的时候就会 完成。其它情况下的地址绑定就由翻译器动态生产的。 i i 地址查找和翻译 绑定一旦建立,它就可以用来地址查找和翻译。翻译器接收到内部 网络的i p 包,就把源地址翻译为对应的地址。同样,反向i p 包需要经过 一个反向的地址翻译过程。这种翻译不需要对主机和路由器做任何改动, 而且地址翻译对两端的主机而言是透明的。 i i i 地址解绑定 地址解绑定是指一对地址的对应关系结束后的阶段。即某个地址或 成对地址绑定的最后一个任务终止时,绑定自己将终止。释放的地址资 源可以用于新的绑定。翻译器需要安全的删除不用的绑定关系从而可以 减小绑定关系表所占的内存空间,这样也可以时地址查询的效率保持较 高的水平。注意过早的删除绑定关系不应该发生,这样会中止使用这个 绑定的正在进行的通信。 i v i p ,t c p ,i j d p 和i c 肝报头操作: 在n a t 的基本模式下每个包的i p 头必须改变,包括i p 地址( 向外 i p 包的源地址,向内i p 包目的地址) 和校验和。对t c p u d p ,需要改变 包括t c p u d p 的校骏和。这是因为t c p u d p 校验和的计算包含伪包头, 而伪包头中含源和目的i p 地址。如果u d p 的校验和为零,则不需要做任 1 l 北方交通大学硕士研究生毕业论文 何改变。对于i c m p 的消息查询报,由于在报头中不包含i p 地址,所以 不需要额外的变化。 在n a p t 模式下,t c p u d p 的端口号也需要翻译,并且还要调整 t c p u d p 的校验和。至于i c m p 的消息查询报,内部主机的查询i d 需要 被翻译为指派i d ,而i c m p 报头校验和必须调整来对应查询i d 的变化。 2 3i p v 4 下的网络地址翻译的编程设计实现 2 3 1 设计思想 讲解一些整体示意,直观流程示意图忽略细节( 图2 - 4 ,图2 5 ) : i ! 塑窒望查兰堡主竺塞生兰些堡兰 本地主机 外部主机 否 见下图 图2 4 韭查奎望查兰堡主竺塑生兰些笙壅 接上图 图2 5 2 3 2 重要的数据结构 i n a tc l a s s 4 j ! 查窒鎏查兰翌主竺窒竺兰些笙兰 数据结构n a t c l a s s 定义了n a t 程序中用到的主要结构。它定义在 n a t s t u r c t u r e s h 中。 n a t c l a s s j u l o n ga p p l i c a t i o n i d :胁应用程序标 识 s t r u c tn a t j c p s t a t e _ t a b l e* t c p s t a t e t a b l e :* t c p 状 态表 u l o n g * i p 翻译入口定时器 u l o n g * u d p 翻译入口定时器 u l o n g * i c m p 翻译入口定时器 u l o n g t c p 连接定时器$ u l o n g 断开连接定时器 u l o n g 立连接定时器 u l o n g 定时器$ u l o n g 入口定时器 i p _ t r a n s a t i o n e n t r y t i m e r u d p _ t r a n s l a t i o n ,e n t r y t i m e r i c m p t r a n s l a t i o n e n t r y t i m e r t c p _ c o n n e c t i n g t i m e r :肛建立 t c p _ d is c o n n e c t e d ti m e r : * t c p t c p _ c o n n e c t e t ti m e r :* t c p 建 t c p c l o s i n g t i m e r :宰关闭t c p s e q u e n c e _ e n t r y _ ti m e r :术序列 u s h o r t c u r r e n t p o r t s p o o f i n gn u m b e r 序现在使用的转换端口号 n a r i p p o r t c l a s sp o r t n u m b e r o f i p p o r t s : i p 端口数组,n u m b e r o f j p p o r t s 的缺省值为2 * 5 ! ! 查奎望查兰堡主竺塑竺兰些笙l 一一 b o o l f i1t e r n o n c o r p o r a t e a d d r e s s e s a 是否滤除非内部地址 b o o l 态翻译入口使能 n a t i p s t a t i c e n t r y s t a t i ce n t r i e s m a x i m u m 翻译入口数组$ s t a t i ce n t r i e se n a b l e d : 静 n u m b e r o fs t a t i c _ e n t r i e s : 木静态 n a t p o r t s t a t i c e n t r y t c p _ s t a t i c e n t r i e s m a x i m u m _ n u m b e r o f t c ps t a t i c _ e n t r i e s 静态t c p 端口翻译入口数组$ n a t - p o r t s t a t i c e n t r y u d p s t a t i c e n t r i e s m a x i m u m _ n u m b e r o fu d ps t a t i c _ e n t r i e s 术静态u d p 端口翻译入口数组 n a t gc l a s s n a t sc l a s s b o o l b o o l 单一全局地址翻译使能 b o o l 否滤除未知协议 b o o l 置缺省值 b o o l c u s e e m e 协议处理使能$ i pa d d r e s s 地址木 1 6 n a t g : 参见n a t g _ c l a s s 解释 n a t s :$ 参见n a t s _ c l a s s 解释 e n a b l e d :* n a t 使能爿c s i n g l e g l o b a l a d d r e s s _ e n a b l e d f i l t e ru n k n o w n p r o t o c o l s :术是 s e t d e f a u lt _ v a l u e s :半是否设 c u s e e m e h a n d l i n g _ e n a b l e d : g l o b a l i p a d d r e s s : 全局i p ! ! 塑奎望盔兰堡主堑塞圭兰些丝苎一 i pa d d r e s s 局i p 地址掩码$ u s h o r t 地址 r wc o n t a i n e r 年 来自系统 卑 g l o b a l i p _ a d d r e s s _ m a s k : 序全 g l o b a l p o r t n u m b e r : 全局1 p p a s s t h r u 一1 is t :* p a s s t h r u 列表 b o o lp r i n t i n g e n a b l e d :a 打印使能 b o o l i n i t i a l i z a t i o n p r i n t i n g e n a b l e d : 初始化打印使能十 b o o lt r a c e p r i n t i n g _ e n a b l e d : 跟 踪打印使能 b o o l 打印使能 b o o l 据打印使能 d a t ap r i n t i n g e n a b l e d :a 数据 e r r o r _ p r i n t i n g e n a b l e d : a 数 r w o s d i s p a t c h e r t i m e r d i s p a t c h e r ;a 定时 器调度程序,来自系统 ) i i n a t g _ c l a s s 数据结构n a t gc l a s s 定义了n a t 程序中全局地址池的结构,供数据结构 n a t _ c l a s s 使用。它定义在n a t s t u r c t u r e s h 中。 n a t g _ c l a s s i p j r a n s l a t i o n - h e a d e ri p t r a n s l a t i o n _ l i s t :* i p 翻译 列表 ! ! 查窒望盔兰堡主塑塞兰兰些堕苎一 n a t i p a d d r e s s e n t r y * g l o b a l a d d r e s s _ p o o l :序全局地 址池$ u l o n g 全局地址池尺寸 ) g l o b a la d d r e s s _ p o o l s i z e : 胁 i i i n a t s _ c l a s s 数据结构n a t s c l a s s 定义了n a t 程序中指向各个协议翻译列表的指 针,供数据结构n a tc l a s s 使用。它定义在n a t s t u r c t u r e s h 中。 n a t sc l a s s t c p t r a n s l a t i o n _ h e a d e r t c p t r a n s l a t i o n 一1 is t * t c p 翻译列表 u d pt r a n s l a t l 0 nh e a d e r * u d p 翻译列表木 i c m pt r a n s l a t l 0 nh e a d e r * i c m p 翻译列表$ i c m pt r a n s l a t l 0 ne n t r y * i c m p 缺省翻译列表 ) 表2 1 2 3 3 函数列表 u d pt r a n s l a t i o n l i s t i c m pt r a n s l a t i o n l i s t i c m p _ d e f a u l t e n t r y c 文件描述 n a t i n i t i a l i z e c初始化n a t 各项参数,并且启动n a t 进程。 n a t j p c 功能是对i p 包进行地址和校验和转 换。 n a tu t i l c实现n a t 功能的核心程序文件。 n a t i p _ i n t e r f a c e c功能是获得全局端口和i p 地址及地 址的子网掩码。 i n a t m i b c文件包含8 个函数,它主要是对实现 8 北方交通大学硕士研究生毕业论文 对m i b 访问。 n a t m g m t c对表的管理和维护,供s n m p 使用 n a t c f g c包含v o i dn a t c f 9 0 一个函数。它的 功能是将n a t 的配置参数写入外部变 量n a t c o n f i g u r a t i o n t e x t 中。 n a ta p i c 包含1 4 个函数,用来作n a t 的翻译列 表查看,添加,删除等操作。 n a t _ c l e a n u p c文件中包含一个主要函数调用该文件 中的其他函数。完成除去v x w o r k si p 挂钩;清除定时器;清除u d p ,t c p , i c m p 翻译表项并释放其空间;清除互 斥量等功能。 n a t c o n f i g u r e c n a t g e t c o n f i g u r a t i o n t a b l e a d d r e s s ( v o i d ) 一个函数。它的功能是获 得配置表的地址。 n d c c u s e e i h e c 中包含2 个主要函数( 分别是e n u m t e s t h a n d l e c u s e e m e 。t r a n s l a t i o n l o c a l _ r x ( u d p _ p a c k e t * s p t ru d p _ p a c k e t , u s h o r t p o r t n u m b e r ) 和e n u mt e s t h a n d l e ,c u s e e m e t r a n s l a t i o n 。g l o b a l _ r x( u d p _ p a c k e t * s p t r u d p - p a c k e t , u s h o r t p o r t _ n u m b e r ) 调用该文件中的其 他函数。完成对c u s e e m e 协议包的处 理等功能。 n a tf i l t e r e 包含 n a t f i l t e r r x ,和 n a t f i l t e r l o c a l r x 两个函数。 n a t f i lt e r r x 被函数n a t _ r x 调用。 n a t f i l t e r l o c a l r x被 n a t f il t e r _ r x 调用。它的功能是告 知n a t r x 函数对i p 报的动作( 有 n a t f i l t e r ,n a t _ d o n tt r a n s l a t e , n a t _ t r a n s l a t e ) 。 n a tf i l t e rh o o k c包含n a t f i i t e r _ h o o k 一个函数。它 的功能是通过i p f i i t e r h o o k 拦截流 北方交通大学硕士研究生毕业论文 经路由器的i p 包。而且该函数可以看 作是与i p 层的接口。 n a tf t p c包含2 个主要函数( 分别是e n u mt e s t h a n d l ef t pt r a n s l a t i o n1 0 c a lr x ( mb l k * p m b i k ,u s h o r t p o r tn u m b e r ) 和e n u mt e s t h a n d l ef t pt r a n s f a t i o ng l o b a lr x ( t c pp a c k e t * pp a c k e t ,u s h o r t p o r t n u m b e r ) ) 调用该文件中的其他 函数。完成对f t p 协议包的处理等功 能。 n a t 。i c m p d a t a g r a m c m 包含2 个主要函数( 分别是e n u m t e s t 包的处理等功能。h a n d l e i c m p _ t r a n s l a t i o n g l o b a l r x _ d a t a g r a m( i c m p _ p a c k e t * s p t r i c m p _ p a c k e t , u s h o r t p o r t n u m b e r )和 e n u mt e s t h a n d l e i c m p _ t r a n s l a t i o n l o c a l _ r x d a t a g r a m ( z c m p p a c k e t * s p t r i c m p _ p a c k e t , u s h o r t p o r t n u m b e r ) ) 调用该文件中的其他 函数。完成对i c w p 协议d a t a g r a n a t i c m p _ t r a n s a c t i o n c包含2 个主要函数( 分别是e n u mt e s t h a n d l e i c m p _ t r a n s l a t i o n g l o b a l r xt r a n s a c t i o n ( i c m p - p a c k e t * s p t r i c m p _ p a c k e t ,u s h o r t p o r t n u m b e r )和 e n u mt e s t h a n d l e i c m p _ t r a n s a t i o n l o c a l r x t r a n s a c t i o n ( i c m p _ p a c k e t * s p t r ic m p _ p a c k e t ,u s h o r t p o r t n u m b e r ) ) 调用该文件中的其他 函数。完成对i c w p 协议d a t a g r a m 包 的处理等功能。 n a tr x c 包含一个主函数e n u mt e s tn a t r x ( u s h o r t p o r t n u m b e r ,m _ b l k * p m b l k ) 调用该文件中的其他函数。它 的功能是进行一系列判断后,调用其 他文件中的函数实现地址翻译功能。 n a t t a s k i n i t c仅包含 v o i d 北方交通大学硕士研究生毕业论文 n a t t a s k i n i t i a i z e ( c o n s t c h a r * p _ c o n f i g u r a t i o n d a t a ) 一个函数。它 的功能是设置缺省值,为配置数据分 配b u f f e r ,初始化n a t 配置表。 n a t _ t c p c包含2 个主要函数( 分别是e n u m t e s t h a n d l et c rt r a n s l a t i o n9 1 0 b a lr x t r a n s a c t i o n ( t c pp a c k e t * s p t rt c p,_packet u s h o r t p o r tn u m b e r ) 和 e n u mt e s t h a n d l et c p _ t r a n s l a t i o nl o c a lr x t r a n s a c t i o n ( t c pp a c k e t * s p t rt c p,_packet u s h o r t p o r t n u m b e r ) ) 调用该文件中的其他 函数。完成对t c p 协议包的处理等功 能。 n a tt l m e r c 包含1 个主要函数v o i dn a t t i m e r ( v o i d ) 调用该文件中的其他函数。完 成对i p ,i c m p ,t c p ,u d p 等协议翻译 表项的定时器的检查,如果发现超时 变删除该表项并释放空间的功能。 n a t _ u d p c包含2 个主要函数( e n u mt e s t h a n d l eu d pt r a n s l a t i o n _ g l o b a lr x ( u d pp a c k e t * s p t ru d pp a c k e t u s h o r tp o r tn u m b e r ) 和e n u mt e s t h a n d l eu d pt r a n s l a t i o nl o c a lr x ( u d pp a c k e t * s p t ru d p,_packet u s h o r tp o r t n u m b e r ) ) 调用该文件中 的其他函数。完成对u d p 协议包的处 理等功能。 n a t i n i t c 包含s t a t u sn a t i n i t ( v o i d ) 一个函 数。它的功能是调用系统函数 r w o s t a s k _ m a i n 以确定n a t 任务是否 启动。 2 北方交通大学硕士研究生毕业论文 n a ta p l h 声明n a t a p i c 中的函数 n a t c o n f i g u r a t i o n h 配置n a t 参数 n a t c o n s t a n t s h声明n a t 中所用的结构体和变量 n a t g l o b a ls h声明n a t 中所用的全局变量 n a ti c m p h 声明n a t 中i c m p 所用的结构体和 变量 n a t p a c k e t s t r u c t u r e s h声明n a t 中所用的各种协议包的 结构体和变量等 n a t s t r u c t u r e s h最重要的头文件,声明n a t 中所 用的全部函数以及重要的结构体 和变量 n a t m i b h h e a d e rf o r t h en a t m i b cf il e u s i n gi d b + n a t m g m t ht h ed e f i n i t i o n sf o rr e m o t e m a n a g e m e n to fn a t n a t t c p s t a t e s t r u c t u r e s h声明n a t 中t c p 所用的状态类结 构体和变量 2 3 4 主要函数介绍 n a t _ i n i t i a l i z e n a t i n i t i a l i z e c 初始化n a t 各项参数,并且启动n a t 进程。包含 4 子个函数。返回值:成功返回o k :失败返回e r r o r 。下图为 n a t i n i t i a l i z e 的工作流程图: 些查銮塑查堂堡主塑窒竺望些堡苎 图2 6 ! ! 查奎塑叁兰堡主竺塑圭兰些堡兰 一 图2 7 n a t _ i p n a t i p c 的功能是对i p 包进行地址翻译和校验和调整。主要包含2 个函数: h a n d l e i p _ t r a n s l a t i o n g l o b a l r x n a t g h a n d l e _ i p _ t r a n s l a t i o n l o c a l r x n a t g 下面以函数h a n d l e i p _ t r a n s l a t i o n g l o b a lr x n a t g 为例给出流 程图( 图2 8 ) : 北方交通大学硕士研究生毕业论文 图2 8 2 4i p v 4 下的网络地址翻译的程序运行测试 2 4 1 测试环境t o r n a d o v x w o r k s 是美国w i n dr i v e rs y s t e m 公司( 风河公司) 推出的一个 实时操作系统。v x w o r k s 是一个运行在目标机上的高性能、可裁减的嵌 入式实时操作系统。 v x w o r k s 网络协议栈是v x w o r k s 内部的一个b s d 4 4 兼容的实时 t c p i p 协议栈,它从基于b s d 4 3 的协议栈升级而来,增加了完全的路 由支持以及i n t e r n e t 的一些新特性,使得v x w o r k s 的网络性能更加优越。 软件包是可调整的,使得开发者可以将其应用到从i p 路由设备到完全 t c p i p 的基于s n m p 管理的应用系统中。 t o r n a d o 是专门为解决嵌入式开发人员所面临的诸多问题而设计的。 对于不同的目标机,t o r n a d o 给开发者提供一个一致的图形接口和人机

温馨提示

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

评论

0/150

提交评论