(通信与信息系统专业论文)专用tcpip协议栈的研究与应用.pdf_第1页
(通信与信息系统专业论文)专用tcpip协议栈的研究与应用.pdf_第2页
(通信与信息系统专业论文)专用tcpip协议栈的研究与应用.pdf_第3页
(通信与信息系统专业论文)专用tcpip协议栈的研究与应用.pdf_第4页
(通信与信息系统专业论文)专用tcpip协议栈的研究与应用.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(通信与信息系统专业论文)专用tcpip协议栈的研究与应用.pdf.pdf 免费下载

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

文档简介

四川大学硕士学位论文 专用t c p i p 协议栈的研究及应用 专用t c p i p 协议栈的研究及应用 通信与信息系统专业 研究生樊时凯指导教师周安民研究员 本论文通过对t c p i p 协议、标准t c p i p 协议栈的实现以及网络应用监控相 关技术的深入研究,在提高协议栈解析效率和增强协议栈安全性两个方面提出了 一些方法和措施,进而实现了一种专用t c p i p 协议栈,并基于这个专用t c p i p 协议栈实现了一个监控应用s m t p 发送邮件的监控系统。为进一步提高监控系统 的效率,专门针对数据捕获技术进行了研究,通过实验分析指出,网卡性能和 w i n p c a p 缓冲区的大小对数据捕获率的影响较大,并对如何提高数据捕获率提出 了解决的办法。 要实现一个稳定、安全和高效工作的网络应用监控系统涉及到许多方面。但 最重要的就是t c p i p 协议栈的实现、数据帧的捕获两个方面。针对这种情况,本 论文结合网络应用监控系统的特殊需求,摒弃了一些标准t c w i p 协议栈的代码, 重新设计并实现了一个t c p i p 协议栈,该协议栈减少了被攻击的可能性。研究了 妒碎片攻击的原理,重新实现了对m 分片重组的代码,杜绝了针对网络应用监 控系统的分片攻击。在研究了针对应用服务器的拒绝服务攻击后,提出了一种对 网络应用监控系统进行攻击的潜在的手段。这种攻击手段因其与传统的s y n f l o o d i n g 攻击的区别,本论文将其称为变种s y n f l o o d i n g 攻击。为预防这种攻击, 本论文提出了一种可控网络环境下的基于连接峰值数的规避算法来判断和处理变 种s y nf l o o d i n g 攻击。 为提高应用协议s m t p 的解析效率,根据t c p 协议利用端口号来分用应用层 协议与c + + 编程语言中的类的重载、继承和覆盖非常类似这一现象,本论文编写 了一个适应性和扩展性都很好的保存t c p 连接信息的c + + 基类c c o n n e c t 。该基 类可以通过继承的方式用于编写解析其他的应用协议类,t c p 连接状态的保持采 用哈希表的方式。 影晌网络应用监控系统工作效率的另一个因素是数据捕获技术。影响数据捕 获的原因主要有网络适配器和捕获驱动程序两个方面。一个是网卡数据缓冲区的 大小。通过t c p 数据报捕获实验结果说明,不同厂家的网络适配器性能差距较大。 另一个是捕获驱动程序。捕获驱动程序本论文选择w i n p e a p 。在w i n p c a p 中,有 两种缓冲区。它们的大小直接影响数据帧的捕获能力。通过实验得出,在高数据 速率情况下,不同的缓冲区容量,w i n p c a p 的数据捕获率是不同的。通过反复试 0 j 0 ;= 三、 四川大学硕士学位论文 专用t c p p 协议栈的研究与实现 验,论文获得了一个合适的经验值。 经测试证明,基于专用t c p i p 协议栈的s m t p 协议监控系统运行稳定、可 靠,敏感数据帧数据捕获率很高,可以监视网络中的使用s m t p 协议的发送邮件 的行为及邮件内容,并具有一定的抗攻击能力。这说明,应用于网络应用监控系 统的专用t c p i p 协议栈的设计和实现是成功的,具有良好的解析效率和抗攻击能 力,为同类网络应用监控系统的研究和应用提供了较好的借鉴和参考价值。 关键词:网络应用监控系统t c p i p 协议栈变种s y nf l o o d i n g 攻击哈 希算法w i n p e a p 四川大学硕士学位论文专用t c p i p 协议栈的研究及应用 r e s e a r c ha n da p p l i c a t i o no fs p e c i a l p u r p o s e t c p i pp r o t o c o ls t a c k f i e l d :c o m m u n i c a t i o na n di n f o r m a t i o ns y s t e m p o s t g r a d u a t e :f a ns k i k a i s u p e r v i s o r :z h o ua n m i n a b s t r a c t t h i st h e s i sa g r e e st oc o n t r o lt h ef u r t h e ri n v e s t i g a t i o no fr e l e v a n tt e c h n o l o g yi n m a l i z a t i o no ft h et c p i pp r o t o c o la n ds t a n d a r dt c p 职p m t c o ls t a c km o n i t o r i n g s y s t e mo fn e t w o r ka p p l i c a t i o n ,a d v a n c e ss o m em e t h o d sa n dm e a s u r e s i ni m p r o v e p r o t o c o ls t a c ka n a l y z ee f f i c i e n c ya n ds t r e n g t h e np r o t o c o ls t a c ks e c u r i t yt w op r o p o s e , a n dt h e nh a sr e a l i z e dak i n do fs p e c i a l p u r p o s et c p i pp r o t o c o ls t a c k ,a n dr e a l i z eo n e c o n t r o l sm o n i t o r i n gs y s t e mo fu s i n gs m t pt os e n dt h em a i lo nt h eb a s i so ft h i s s p e c i a l p u r p o s e t c p i pp r o t o c o ls t a c k i no r d e rt oi m p r o v et h ee f f i c i e n c yo ft h e m o n i t o r i n gs y s t e mf u r t h e r ,i th a ss p e c i a l l yr e s e a r c ht e c h n o l o g yt oc a p t u r ed a t a p o i n t o u tt h r o u g he x p e r i m e n t a la n a l y s i s ,t h ep e r f o r m a n c eo ft h en e t w o r kc a r da n ds i z eo f w i n p c a pb u f f e r i n ga r e ae x e r tag r e a ti n f l u e n c eo nc a p t u r i n gr a t eo ft h ed a t a ,a n dh a s p u tf o r w a r dt h em e t h o ds o l v e dt ot h a th o w t or a i s et h ec a p t u r i n gr a t eo ft h ed a t a r e a l i z eas t e a d y ,s a f ea n dh i g h e f f i c i e n tn e t w o r ka p p l i c a t i o nm o n i t o r i n gs y s t e m t h a ti n v o l v e sal o to fr e s p e c t s b u tt h em o s ti m p o r t a n to n ei sr e a l i z a t i o no ft c p i p p r o t o c o ls t a c ka n dt h ec a p t u r i n gd a t af l a m e f a c et h i sk i n do fs i t u a t i o n ,t h i st h e s i s a c c o r d sw i t ht h es p e c i a ld e m a n df o r t h em o n i t o r i n gs y s t e mo fn e t w o r ka p p h c a f i o n ,h a s a b a n d o ns o m ec o d e so fs t a n d a r dt c p i pp r o t o c o ls t a c k ,h a sr e d e s i g n e da n dr e a l i z e da n t c p i pp r o t o c o ls t a c k t h i sp r o t o c o ls t a c kh a sr e d u c e dt h ep o s s i b i l i t ya t t a c k e d t h i s t h e s i sh a sd o n es o m ei m p r o v e m e n ti na n a l y z i n ge f f i c i e n c ya n ds e c u r i t yi ni p ,t c pa n d s m t pp r o t o c o lm a i n l y i th a ss t u d yt h ep r i n c i p l et h a ti pc h i pa t t a c ka n dh a sr e a l i z e d d i v i d i n go n es l i c eo fc o d e sr e c o m b i n a t e dt oi pa g a i n ,h a v ep r e v e n t e dt oa a a c kt oe a c h o ft h em o n i t o r i n gs y s t e mo fn e t w o r ka p p l i c a t i o n s t u d yt ou s i n gt h ed e n i a lo fs e r v i c e o ft h es e r v e rt oa t t a c k ,t h i st h e s i sc a t yo nap o t e n t i a lm e a n st oa t t a c kt om o n i t o r i n g s y s t e mo fn e t w o r ka p p l i c a t i o na f t e rp u t t i n gf o r w a r do n e b e c a u s ei t sd i f f e r e n c e a t t a c k e dw i t ht r a d i t i o n a ls y nf l o o d i n go ft h i sk i n do fa t t a c km e a n s 。t h i st h e s i sc a l l si t m 四川大学硕士学位论文 专用t c p i p 协议栈的研究与实现 m u t a t i o ns y nf l o o d i n ga t t a c k i no r d e rt op r e v e n tt h i sk i n do fa t t a c k ,t h i st h e s i sa l s o p u tf o r w a r dt h ea l g o r i t h mo fe v a d i n gc o u n t e do nt h eb a s i so fc o n n e c t i n gp e a kv a l u e u n d e rak i n do fc o n t r o l l a b l en e t w o r ke n v i r o n m e n tt oj u d g ea n dd e a lw i t ht h ea t t a c k a l g o r i t h mo fm u t a t i o ns y nf l o o d i n gi nt h et h e s i s i no r d e rt or a i s et h ea n a l y t i ce f f i c i e n c yw h i c hs m t p ,b a s eo nt h ep h e n o m e n o n t h a tt c pp r o t o c o ld i v i s i o nt h ea p p l i c a t i o np r o t o c o la c c o r d i n gt op o r ts i m i l a rt ot h e l o a d i n g i n h e r i t i n ga n dc o v e r i n go ft h ec l a s so fc + + p r o g r a m m i n gl a n g u a g e ,w eh a v e w r i t t e nav e r yg o o dt c pc + + b a s ec l a s s i tc a ns a v et h ec o n n e c t i n gi n f o r m a t i o na n d h a sg o o da d a p t a b i l i t ya n de x p a n d i n g w ec a l l t h i sb a s ec l a s sc c o n n e c t t h i sb a s e c l a s sc a nb eu s e df o rw r i t i n ga n da n a l y z i n go t h e ra p p l i c a t i o np r o t o c o lb yw a yo f i n h e r i t t i n g t h es t a t eo ft c p c o n n e c t i o nc a l lb ek e p tb yh a s ht a b l e i ti st h a td a t ac a p t u r i n gt e c h n o l o g yt oi n f l u e n c ea n o t h e rf a c t o ro ft h em o n i t o r i n g s y s t e mw o r k i n ge f f i c i e n c yo fn e t w o r ka p p l i c a t i o n i n f l u e n c e r e a s o n st h a td a t a c a p t u r i n gf o rn e t w o r ka d a p t e ra n dt h ed r i v e rt w o o n ei st h es i z eo ft h ed a t u m b u f f e r i n ga r e ao fn e t w o r kc a r d c a t c ht h r o u g ht c pd a t am e s s a g e re x p e r i m e n t a lr e s u l t p r o v ed i f f e r e n tn e t w o r ka d a p t e ro fp r o d u c e rp e r f o r m a n c ed i s p a r i t yr e l a t i v e l yh e a v y a n o t h e ro n ei st ot h ed r i v e r t h i st h e s i sc h o o s e sw i n p c a p 勰t h ed i v e r i nw i n p c a p t h e r ea r et w ok i n d so fb u f f e ra r e a s t h e i rs i z ei n f l u e n c e st h ea b i l i t yo fc a p t u r i n go ft h e d a t af r a m ed i r e c t l y d r a wt h r o u g ht h ee x p e r i m e n t ,d i f f e r e n tc a p a c i t yo fb u f f e ra l e ai n c a s eo fs p e e do ft h eh i g hd a t a , t h ec a p t u r i n gr a t eo fd a t ao fw i n p c a pi sd i f f e r e n t t h r o u g ht e s t i n gr e p e a t e d l y ,t h i st h e s i sh a so b t a i n e das u i t a b l ee x p e r i e n c ev a l u e t h r o u g ht e s t i n g ,s m t pa g r e e m e n tm o n i t o r i n gs y s t e mb a s e do i ls p e c i a l p u r p o s e t c p i pp r o t o c o ls t a c kr u n ss t e a d i l y ,r e l i a b l e ,t h ec a p t u r i n gr a t eo fd a t af r a m eo ft h e s e n s i t i v ed a t ai s1 0 0 ,c a nt o t a l l ym o n i t o rb e h a v i o rw h i c hs e n d st h em a i lo fu s i n g s m t pa n dm a i lc o n t e n ti nt h en e t w o r k ,h a sc e r t a i nr e s i s t i n gt h ea b i t i t yo fa t t a c k i n g i t i ss u c c e s s f u lt oa p p l yt ot h ed e s i g no fs p e c i a l p u r p o s et c p i pp r o t o c o ls t a c ko ft h e m o n i t o r i n gs y s t e mo fn e t w o r ka p p l i c a t i o n i th a sg o o da n a l y t i ce f f i c i e n c ya n dr e s i s t s t h ea b i a t yo fa t t a c k i n g i th a so f f e r e db e t t e rr e f e r e n c ea n dr e f e r e n c ev a l u ef o rr e s e a r c h a n da p p l i c a t i o no ft h em o n i t o r i n gs y s t e mo fs i m i l a rn e t w o r k a p p h c a f i o n k e y w o r d :t h em o n i t o r i n gs y s t e mo fn e t w o r ka p p l i c a t i o n ,w i n p c a p ,t c p f l p p r o t o c o ls t a c k ,a t t a c ko fs y nf l o o d i n go fm u t a t i o n ,h a s ha l g o r i t h m 1 v 四川大学硕士学位论文专用t c p i p 协议栈的研究与实现 1 概述 1 1 引言 据中国互联网络信息中心( c n n i c ) 发布的“第十五次中国互联网络发展状 况统计报告”显示,目前,我国上网用户总数为9 4 0 0 万,比去年同期增长8 o ; 上网计算机达到4 1 6 0 万台,增长了1 4 6 【j 】ic n 下注册的域名数、网站数网 络国际出口带宽总数以及i p v 4 地址总数都得到了快速增长。 经过十年快速的发展,中国互联网已经形成规模,互联网应用走向多元化。 人们在工作、学习和生活中越来越多地使用互联网,整个社会的运行都搭上了互 联网的快车,打上了互联网的烙印。互联网已经从单一的行业互联网发展成为深 入我国各行各业的社会大众的互联网。 互联网在如此众多领域得n 3 广泛的应用,其功能日益强大但复杂性也随之 提高。一方面给用户带来了方便,另一方面也使得维护和保证网络安全变得困难。 因此,对用于分析、诊断、测试网络性能和安全性工具的需求不断增加。这些工 具( 本论文中将这种工具称为网络应用监控系统) 可以捕获在网络中传输的任意 数据帧,而不管它的源地址和目的地址。当截获这些数据帧之后,网络应用监控 系统将按既定的策略要求对这些包进行相应处理,从而实现对网络负载流量情况、 网络计算机、网络通讯协议、网络数据等的监控。另外,通过对这些数据的分析 可以了解网络的运行情况,发现存在的问题和安全隐患。但是,大量通讯技术和 协议的存在使这项工作变得十分困难,而且为了在高速网络上无遗漏地捕获数据, 对大量的网络连接作出实时的处理或反映,要求网络监控系统具有良好的处理性 能。这种性能主要反应在两个方面:数据帧的捕获率和协议分析处理能力。 目前,主要有两种方法从网络上捕获数据,第一种是基于特定的硬件,第二 种是在普通p c 或工作站上用软件实现。后者是用计算机的网络适配器从网络上 获得数据帧,然后用软件对这些捕获的数据进行处理。这种方式比第一种方式性 能差,但是它便宜,容易修改和升级,因此得到了广泛的应用。通过对现有网络 监控系统分析可知,无论是第一种还是第二种,按照接入网络方式可以分为两类: 一类是串联接入方式;如图1 1 。另一类是并联接入模式。如图1 2 。 以上两种按入模式t c p i p 协议栈的实现是不同的。如果把传统的t c p i p 协 议栈直接用在网络监控系统中至少会在以下几个方面表现不好:一是它把大量的 精力花在保证数据传送的可靠性以及数据流量的控制上,在实时性方面不够好; 二是传统t c p i p 的实现过于复杂。1 ,效率不高。三是传统t c p i p 的安全性不高, 对网络攻击不具有免疫力。因此,需要把传统t c p i p 在不违背协议标准的前提下 加以改进实现,使其实时性,处理效率得到提高并具有一定的抵御攻击的能力。 四川大学硕士学位论文 专用t c p i p 协议栈的研究与实现 图1 1 并联接入方式示意图1 - 2 串联接入方式示意图 1 2 国内外研究现状 t c p i p 协议是一个成熟,应用最广泛的i n t e r t t e t 协议。目前几乎9 0 以上的 网络应用都建立于t c p i p 协议之上。通用操作系统基本都实现了t c p i p 协议栈, 很多专用系统依据自身的需求,也部分实现了t c w p 协议栈或是采用操作系统的 t c p i p 协议栈。不过对于专用系统的来说,采用操作系统的t c p i p 协议栈似乎 不是一个好的选择。因为那既复杂,效果也不一定好。 本论文研究的课题是针对邮件监控系统这样一种专用系统,因此我们希望开 发一个安全、高效的用于监控局域网s m t p 协议的t c p i p 协议栈。基于这个改 进的t c p i p 协议栈的邮件监控系统能长时间、稳定、安全和高效的监控网络中邮 件的传输情况。 目前,随着人们对信息安全和网络安全的越来越关注,实时或及时的了解和 掌握受控网络的使用情况和网络中传输的各种数据的要求也越来越高。这种情况 带来的结果是,世界各地,特别是国内基于内容的网络应用监控系统如雨后春 笋般冒出来。国内的有:龙观天下、网络哨兵和网络岗等,国外的有n e t w o r k p r o b e 、 l 订r a f 等。 由于这些监控系统都是专用系统,是商用产品,所以无法获得其关于协议栈 实现方面的任何具体信息因此了解这些产品的内在技术。掌握其发展状态是十 分困难的。 这些监控系统不管是软件还是硬件,他们的主要功能都是实时监视、控制和 记录网络中的违规行为。在这些系统中,只有极个别的系统描述了系统本身的安 全性和效率,更多的是描述他们自身足够多的功能。但是,本论文认为,如果 个网络应用监控系统自身的安全都不能保证,更遑论监控网络。现在的网络攻击 行为是十分频繁的,如果一个简单攻击行为就可以瘫痪甚至崩溃监控系统,那么 这样的监控系统实际上没有作用,是不能完成监控任务的。因此,一个安全、健 壮的网络监控系统才切合实际。 2 四川大学硕士学位论文 专用t c p f l p 协议栈的研究与实现 1 3 本文结构及主要工作 本论文主要分为6 个部分,第一个部分是概述,简单比较了标准t c p i p 协议 栈和专用t c p 1 p 协议栈,描述它们各自的优缺点。并对国内外的网络应用监控系 统作了一个简单的描述。第二部分是主要是研究协议,分另对链路层、网络层、 传输层的协议和数据格式进行分析,并重点分析了本协议栈将要实现的那些字段。 第三部分是协议栈的设计,主要描述如何设计一个适用于网络应用监控系统的协 议栈,描述了从哪几个方面来构造一个安全,稳定和高效的系统。针对一些可能 的攻击如分片攻击、s y n f l o o d i n g 攻击从协议栈实现的角度进行预防。第四部分 是协议栈的实现,包括协议栈各个模块的功能、流程和接1 3 函数。第五部分是协 议栈的一个具体应用,主要描述怎样基于专用c p f l p 协议栈来构建一个邮件监控 系统。着重在数据捕获技术,t c p 会话连接的建立、保持和释放方面进行了阐述。 最后分析了系统的性能。第六部分是对研究课题的总结和展望。 3 四川大学硕士学位论文专用t c p i p 协议栈的研究与实现 2f e w i p 协议栈研究 t c p i p 协议最先是在u n i x 系统里实现的,后来的l i n u x 、d o s 和 w i n d o w s 也实现了。因为l i n u x 系统源码公开,利于研究,因此我们以l i n u x 系统的标准t c p i p 协议栈为例来说明t c p i p 协议栈的构架。如图2 - 1 f 什、王f 丌甲、s n t p 、 d n s 、s n m p 等 t c p 、u d p i c m p 、l i d 、i g m p 、 a r p 、r a r p 图2 - 1l i n u x 的t c p i p 层次结构和实现方式 t c p i p 协议栈分为多个层次:t c p 层和口层,分别对应于传输层和网络层。 其他的分层,如物理层和链路层有n i c 硬件厂商提供;会话层、表示层和应用层 则由o s 和实际应用程序共同实现。这种层次化给t c p i p 带来了良好的可扩展性 和多厂商、多层次的合作开发可能性和兼容性。t c p i p 向上层提交服务的接口是 标准化的,但是这种标准化是在功能模块等级上进行定义的,所以在函数级别上 可能呈现出各种各样的形态,如不同的函数名、不同的形式参数等。为了支持第 三方应用程序进行网络通信或进程之间的协作,操作系统往往会提供一个比较稳 定、标准的网络编程接口,如b s ds o c k e t 、t l i 和w i n s o c k s 等。他们统称为s o c k e t 接口。由于s o c k e t 存在大量的有点,从而使得基于s o c k e t 的网络程序大量涌现。 s o c k e t 的主要优点有: 模块化封装设计,以系统调用形式出现,保持同一操作平台上的兼容性; 基本通信功能隐藏,由操作系统底层实现,降低开发强度,减少重复劳动; 面向终端用户设计,主要针对客户应用程序和轻量级服务进程提供支持, 所以存在着大量缺省参数,调用简单; 四川大学硕士学位论文专用t c p i p 协议栈的研究与实现 同时还可以满足操作系统本地进程间通信,是 p c 的一种主要实现方式。 由于s o c k e t 的这些优点,造成了目前网络通信软件过于依赖于s o c k e t s 的局 面。很多网络设备,都通过简单调用s o c k e t s 以使用操作系统内部所实现的t c p i l p 协议栈进行网络通信,虽然大幅度降低了开发强度,缩短开发周期,但同时也带 来了很多的缺点; 操作系统t c p ,妒协议栈和原有的s o c k e t s 接口是面向客户应用程序和轻 量级服务进程所设计的,通过系统信号机制和内存共享等方式完成数据传递和报 文通知,存在着与操作系统调用过多的交互和依赖性,占用大量的系统资源,处 理延迟很大,无法提供对大批量网络信息的处理能力和快速响应能力; 随着软件源代码的公开化和用户对各操作系统越来越深的了解,各操作系 统t c p i p 协议栈固有的很多漏洞逐渐暴露出来。大量的黑客工具都是利用此类漏 洞进行设计攻击的,因此存在着系统本身的不安全性; s o c k e t s 编程接口依赖于操作系统内部对底层报文的校验、重组、封装等 工作,上层应用程序往往充当一个被动的接受,发送者,因此无法对所处理的报文 进行灵活、有效的控制: 有些o s 系统的t c p i p 协议栈实现存在安全漏洞,比如容易遭受分片攻 击; 由于这些问题的存在,所以基于s o c k e t 的方法不适合用于编写网络应用监控 系统。这促使我们编写专用的t c p i p 协议栈。 从图2 - 1 可以看出,标准t c p i p 协议栈的实现是非常复杂的,需要实现的协 议也是非常多的。一般来说,通用t c p 、i p 协议栈需要实现:a r p 、r a r p 、i c m p 、 i g m p 、i p 、t c p 、u d p 及一些应用层协议。 t c p i p 6 9 7 1 1 8 j i l l l 是种网络通信协议,它规范了网络上的通信设备,尤其是一 个主机与另一个主机之间的数据往来格式以及传送方式。t c p i p 是i n t e r n e t 的基础协议,也是一种计算机数据打包和寻址的标准方法。t c p i p 是美国政府资 助的高级研究计划署( a 胎氏) 在二十世纪七十年代的一个研究成果,用来使全球的 研究网络联在一起形成一个虚拟网络,也就是国际互联网。原始的i n t e r n e t 通过 将已有的网络如a r p a n e t 转换到t c p 腰上来而形成,而这个i n t e r n e t 已成为成为 如今的国际互联网的骨干网。 t c p p i p 协议是传输控制协议的筒称,它实际上是一个协议族,包括了许多相 关协议,其中最核心的是p 协议和t c p 协议,其他的还包括有:a r p 、r a r p 、 i c m p 、i g m p 、u d p 等。在应用层协议中还包括s m t p 、p o p 、f r p 、h t t p 、d n s 、 s n m p 和t e l n e t 等。m 协议为网络层协议,主要实现p 的分片、组装和路由功能; t c p 协议为传输层协议,主要实现端到端的可靠数据传输,实现了连接的建立, s 四川大学硕士学位论文 专用t c p f l p 协议栈的研究与实现 释放、排序、差错控制和流量控制等功能。其中差错控制和流量控制的工作机制 对t c p 协议的性能影响最大“,为此人们采取了多种不同的方法来改善差错和流 量控制实现的机制,常见方法包括馒启动、快速重传、快速恢复、选择应答和f a c k 拥塞控制等“1 。 由于本文研究专用t c p i p 协议栈,只需要实现部分t c p 1 p 协议即可,因此, 在这里我们只研究相应的协议,主要是:链路层以太帧格式、妒协议、t c p 协议 和后文涉及的s m t p 协议。 t c p i p 并不是一个而是许多协议的集合,t c p 和p 分别只是其中两个基本 协议而已。t c p i p 协议组件共分为四个层次,每一层负责不同的功能。这四层分 别是链路层、网络层、传输层和应用层。 2 1 链路层 链路层有时也称作数据链路层,通常包括操作系统中的设备驱动程序和计算 机中对应的网络适配卡。它们一起处理与电缆( 或其它任何传输媒介) 的物理接 口细节。在t c p i p 协议族中,链路层主要完成三个方面的功能f 6 l :一是为p 模 块发送和接受m 数据报;二是为a r p 模块发送a r p 请求和接受a r p 应答;三 是为r a r p 模块发送r a r p 请求和接收r a r p 应答。 以太网上数据报的传输是采用网络的m a c 地址来进行识别的,这就要求系统 有实现p 地址到m a c 地址的转换功能,即越 ( 地址解析) 协议。a r p 协议可以分 成舢啦请求协议和a r p 响应协议。系统要同其它计算机通信,就必须要实现a r p 响应协议。a r p 请求协议建立了一个p 地址到m a c 地址的映射。g a r y ( 逆地址 解析协议) 主要用于无盘工作站中。 t c p i p 协议支持多种不同的链路层协议,如以太网、令牌环网、f d d i 等。 以太网是1 9 8 2 年由d e c 、 n t e l 和x e r o x 公司联合公布的它是目前t c p i p 采用 的主要的局域网技术。在以太网中,链路层数据报的封装是在r f c 8 9 4 h o r i n g1 9 8 4 1 中定义的,而i e e e 8 0 2 网络的数据报封装是在r f c1 0 4 2 p o s t e la n dr e y n o l d s1 9 8 8 中定义的。最常使用的封装格式还是以太网的r f c 8 9 4 的封装格式。如图2 - 2 。 i 目的地址i 目的地址i 类型j 数 据f c r c 6 62 4 6 1 5 0 04 图2 - 2 以太嘲数据帧封装 这种帧封装格式采用4 8 比特的目的地址和源地址,也称为硬件地址。类型字 段定义了后续数据的类型,长度为2 个字节。0 8 0 0 表示p 资料报,0 8 0 6 表示a r p 6 四川大学硕士学位论文专用t c p i p 协议栈的研究与实现 请求,应答,0 8 3 5 表示r a r p 请求应答。类型字段之后是数据长度,该字段在4 6 1 5 0 0 之间。如果不足,则必须在不足的空间插入填充字节,以满足字段长度要 求。c r c 字段用于该帧后续字节差错的循环冗余码校验。 如图2 - 2 所示,以太网对数据帧的长度有一个限制,最大值为1 5 0 0 ,这个规 定被称为m t u ,最大传输单元。如果口层要传输的数据报长度比m t u 大,那 么就要在口层进行分片,使得每片都比m t u 小。 2 2 网络层 网络层有时也称作互连网层,处理分组在网络中的活动,例如分组的路由选 择。在t c p i p 协议组件中,网络层协议包括口协议( 网际协议) ,i c m p 协议 ( i n t e r n e t 互连网控制报文协议) ,以及i g m p 协议( i n t c m e t 组管理协议) 。护协 议是t c p i p 协议族中最为核心的协议,所有的t c p 、u d p 、i c m p 及i g m p 数据 都以碑数据分组的格式传输。m 协议是通信子网的最高层,提供不可靠、无链 接的数据分组传输服务,也不提供流量控制和差错控制功能。m 协议使用毋地 址作为接收端和发送端计算机的位置信息。 无连接的意思是m 不维护后续数据分组的状态信息。在m 层,每个数据分 组的处理是独立的,没有关联的。舻数据分组的发送可以起乱序的。相应的伊 数据分组的接收也不一定是顺序的。因为每个p 数据分组都是独立的进行路由 顺序发送的两个数据分组有可能是后发先至。 婵数据分组的格式如图2 3 。如果没有选项字段,口首部长为2 0 个字节 卜扣十扣卜s 十一- 扣叫 一 版本号首部长度服务类型膊长度( 字节效) 标识标恚位片儡穆 生存时问( 1 1 l )协议首部棱验和2 0 1 源m 地址 目的口地址 选项( 如果有)。 7 ll i 数据 彳 图2 - 3 p 数据报格式及首部字段 m 首部从左至右为0 b i t 至3 1 b i t 最高位是0 比特最低位是3 1 b i t 。在网络 上按0 至3 1 b i t 的顺序以8 个比特为一个单位进行传输。这种传输次序称为b i g 7 四川大学硕士学位论文 专用t c p i p 协议栈的研究与实现 e n d i a n 字节序,又称作网络顺序。以其它形式存储二进制整数的机器,在传输数 据之前要把首部转换成网络字节顺序。 口首部各字段的含义是: 版本号指p 协议的版本,有两种版本,i p v 4 和i p v 6 。目前被使用最广泛的 依然是护v 4 。 首部长度指p 首部的占4 字节的数目,包括选项。不过p 首部最长只能有 6 0 个字节。多数情况下都是普通的口数据分组,长度是5 。 服务类型字段包括一个3 比特优先权,4 b i t 的t o s 子字段和1 比特未用位( 置 o ) 。4 比特的t o s 各位的含义分别是:最小时延、最大吞吐量、最高可靠性和最 小费用。4 个比特中最多只能置位1 个b i t 为l 。如果全为0 ,则是一般服务。 总长度是指整个p 数据分组的字节数目。利用总长度和p 头长度的差就可 以知道口数据报中数据内容的长度。 标识字段是唯一地标识主机发送的每一份数据报。通常发送方每发送一份报 文它的值就会加1 ,而不管这个报文是u d p 递交还是t c p 递交的。 标志位字段占3 位,第一位保留( 必须为o ) ,第二位不可分片位d f 和第三 位分组位m f 。d f 置0 表示:该片是最后分组片;置1 表示:非最后分组片。 m f 置0 表示:可分片;置l 表示:不可分片9 1 。 片偏移字段占1 3 个比特,以8 个字节为1 个单位,标明当前分组片在初始 分组中的位置,也就是说在分片时,除最后一片外,其它每一片中的数据部分 必须是8 字节的整数倍。 分片可以发生在原始发送端主机上,也可以发生在中间路由器上。是否进行 分片由待发送接口的m t u 决定。如果m t u 大于p 数据分组长度则不分片,反 之则分片。分片与组装过程均由坤层完成,对t c p 和u d p 透明。已经分片的数 据分组可能被再次分片。数据分组的分片过程如下:如果一个数据分组a 的长 度大于其发送端口的m t u ,则此分组须被分片,假设被分为b 、c 和d 三个分 片。分片后的b 、c 和d 的标识字段都与a 的标识字段相同。除最后一个分片d 的d f 位置0 外,其它分片的d f 位均置l ,表示后面还有更多的分片。b 、c 和 d 分片的m f 标志位依据具体情况置1 或0 。 生存时间域字段占8 个比特,设置了数据分组可以经过的最多路由器数,是 指数据分组的生存时间。p 分组的1 1 l 初始值由源主机设置,每经过一个路由器, t t l 值减1 ,当r 几值等于0 时,该伊分组被丢弃,从而保证m 分组不会被无 休止的传输。 协议字段占8 个比特,它被口用来对数据分组进行分用,根据它可以识别 是那个高层协议调用了皿。协议字段由t c p i p 中央权威管理机构统一分配。如 8 四川大学硕士学位论文专用t c p i p 协议栈的研究与实现 果传输层协议是t c p ,则该字段为6 。如果传输层协议是u d p ,则该字段为1 7 。 首部校验和宇段占1 6 位。用于检验口首部在传输过程中是否被改变。发送 方将除了校验和字段的首部数据每1 6 位对1 求补,所有结果累加,并将和的补放 入头部检验和字段中。接受方对整个首部进行计算,如果累加计算结果为0 ,则 说明首部正确,可以进一步处理,否则丢弃该数据分组。 源地址字段长3 2 位,是发送端主机的m 地址。目的地址字段同样长3 2 位, 表示最终目的主机的p 地址。 选项字段是为了后续版本引进新信息时可提供扩展能力。如果没有扩展选项, 则口首部长度为2 0 个字节,首部字段值为5 。在p 酋部后的数据就是传输层首 部和用户数据。 2 3 运输层 运输层协议t c p 主要为两台主机上的应用程序提供可靠的、端到端的、面向 连接的基于字节流的服务。t c p 协议由r f c 7 9 3 定义。 在t c p i p 掷议组件中,有两个互不相同的传输协议:t c p ( 传输控制协议) 和u d p ( 用户数据报协议) 。t c p ( t r a n s m i s s i o nc o n t r o lp r o t o c o l ,传输控制协议) 是实现端到端链接,进行系统间高可靠通信的协议。是面向链接的协议。t c p 链接 是以发起点的端口号为起点,终止于接收端的端口号,链接的数据传送是双向的, 建立和释放链接的过程采用三次握手协议。t c p 为了实现衅数据包的高可靠性的 传输,要进行数据包错误和丢失的检测,如果发现数据包错误

温馨提示

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

评论

0/150

提交评论