(计算机应用技术专业论文)基于rudp的可靠数据传输研究.pdf_第1页
(计算机应用技术专业论文)基于rudp的可靠数据传输研究.pdf_第2页
(计算机应用技术专业论文)基于rudp的可靠数据传输研究.pdf_第3页
(计算机应用技术专业论文)基于rudp的可靠数据传输研究.pdf_第4页
(计算机应用技术专业论文)基于rudp的可靠数据传输研究.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机应用技术专业论文)基于rudp的可靠数据传输研究.pdf.pdf 免费下载

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

文档简介

武汉理工大学硕士学位论文 摘要 目前保证数据可靠通信一般是采用传输控制协议t c p 或s c t p 。但这两种协 议都不能很好的适应当前网络应用对数据传输的高效性和带宽适应性的要求。 s c t p 是基于流的传输协议,是一个无边界的协议,如果要将它应用于数据的通 信中,就需要用户处理数据报的边界和完整性,这将不可避免的增加系统的开 销并降低通信的效率。而t c p 协议中的a 蹦d 算法虽然减少了t c p 拥塞窗口, 但不能快速的恢复可用带宽。另外,t c p 拥塞控制中的不公平的r t t ( t c p 分 组的往返时间j 造成了拥有不同r t t 的并发t c p 流不公平地分享带宽。随着网 络带宽延时产品( b d p ) 的增加,t c p 的r 1 t 的算法严重的限制了t c p 协议在广 域网分布式计算的效率。 传输层的另一个广泛使用的协议是u d p 用户数据报协议。u d p 是基于消息 的传输协议,主要用来支持需要在计算机之间传输数据的网络应用。通过使用 端口号为不同的应用保留其各自的数据传输通道,u d p 协议可以实现对同一时 刻内多项应用同时发送和接收数据的支持。u d p 协议是不需建立连接的一种传 输协议,具有效率高、速度快和占用资源少等优点,在基于消息通信和实时系 统中可以显著提高系统传输数据的效率。但是u d p 没有保障可靠传送数据的传 输机制,不能满足应用程序传输数据、消息的可靠性要求。为实现支持高性能 数据传输,很自然的就会想到结合t c p 和u d p 的优点,在u d p 之上增加一些 保证数据可靠传递的控制机制,满足应用的需要。r u d p 协议框架正是在这种背 景下产生的。 作者在收集和分析了大量近年来国内外的数据传输文献资料后,对可靠数据 传输技术进行了深入研究,根据r u d p 协议框架和w i n s o c k e t 技术,设计了r u d p 通信软件模块,实现了分布式系统间可靠、高效的数据通信。 论文首先分析了可靠传输传技术的发展、研究方向和存在的问题;接着深入 研究了r u d p 协议的基本原理,着重阐述了r u d p 的实现机制,包括滑动窗口 机制、定时器管理机制以及速率控制机制;提出了基于r u d p 的可靠数据传输 的系统架构,确定了系统的设计目标,给出了系统的逻辑模型,分析了系统的逻 辑模块结构,进行了各逻辑模块的设计;最后,根据论文中提出的逻辑模型, 设计实现了基于i w d p 的可靠数据传输系统,并详细分析了系统实现过程中所 采用的主要关键技术,实际的比较了r u d p 与t c p 协议通信效率。为数据传输 可靠性要求高的业务应用提供了参考依据。 关键词:r u d p ,u d p ,t c p ,s c t p ,拥塞控制 武汉理工大学硕士学位论文 a b s t i a c t i 。c p 龃ds c t pa r e1 1 s u a l l yc h o s e nt oi m p l e m t 也e 出t a 拄a n s 砸s s i o nw i t h h i g h l yr e l i a b i l i t y ,w l l i c hm u s t 仃a n s 向d a 诅r c l i a b l y b u tb o t ho f t l l e mc an o tm e e tw i 也 n l ed e m a n do fh i 啦e 伍c i e n c ya n da d a p t i v n yi n 廿1c u r r e n tn e 研0 r ka p p l i c a t i o n s c t p i ss 仃e 锄 b 勰e dp r o t o c a l ,i fu s e di nm e s s a g e 仃a n s r n i s s i o n ,i tw i l la d dd e l a ya n d d e c r e 髂eu 虹1 i z a t i o n 。幽da 蹦d a l g o r i 妇1i nt c pr e d u c e st h et c pc o n g e s t i o n w i n d o wd m s t i c a l l yb u t 僦l st or e c o v e ri tt 0t h ea v a i l 8 b l eb 如d 、v i d m q u i c h y a 叫t i o n a l l y , t h e 吼伍m e s s0 f r t tb i a si i l l l e r ti l lt c p c o n g e s t i o n c o i 帅1a l s o b e c o m e sm o r es e r i o u si i lm s 倒b u t e dd a l ai n t e n s i v ea p p l i c a t i o n s a s 也en e t 、 ,o r k b 吼d w i d t h d e l a yp r o d u c t ( b d p ) i n c r e 舔e s , 嘣sr t tb i 舔s e v e r e l yl i l i t sm e e 虢c t i v e n e s so f d i s 曲u t e dc o m p u t a t i o n sb a s e do nh i g h s p e e dw i d e a r e an e 铆o r k s a n o n l e r 耐d e l yu s e dp r o t o c a li n 唧r tl a y e ri su d pu d p i sam e s s a g e - b 粥e d p r o t o c a l ,w h i c hu s e dt os u p p o r ta p p l i c a t i o ni n 眦s f e rd a t ab e t w e e nc o m p u t e r s u d pi s n o n e e dc 咖e c t i o np r o t o c a lw i ma d v a n t a g e so fl l i 曲e 伍c i c n c ya 1 1 d1 0 s sr e s o u r c e c u t b u tu d ps e l fh 船n oc o n g e s t i o nc o n o lm e c h a n i s m ,s ot h e s eh n da p p l i c 撕o n n e e da d dc o n g e s t i o nc o 咖1m e c h a 血s mt 0r e a l i z er e l i a b l ed a :c a 仃a i l s f e r t h u s ,w e d e s i 盟a i la p p l i c a t i o np r o t o c a lb 鹪e do nu d pw h i c hi sn 锄e dr u d p w ea 1 1 a n l y s em 缸yr e l a t e d 枷c l e sa n de s s a y ,r e s e a r c ht l l er e l i a b l ed a t a t r 姐s f e rt e c l l i l o l o g yd c 印l y ,d e s i 朗t h er u d ps o 帅a r en l o d l l l e ,w h i c hb 锄e do n r u d ps t n l c u r ea n dw i n s o c k e t ,r e l i 北em er e l i a b l ea n dh i 曲e 伍c i e n td 砒a c o m m u n i c a t i o ni nd i s t r i b u t e ds y s t e m h 1 廿l i ss 伽y , 丘r s t l y ,趾a l y s e dm ed e v e l o po f 也er e l i a b l ed a _ bt r a n s f e r t e c h i l o l o g y ,觚di n d i c a t e 也ep r o b l e mi nt l l et e c h n 0 1 0 垂e s t h e ni n t r o d u c et h ep r i n c i p l e o fr u d p ,d e s c 劢e dc o n g e s t i o nc o r 咖la 1 1 dr a t ec o n 仃0 1i i ld e t a i l ;i n 廿d d u c e dm e s 缸u c t i l r e 趴dl o 酉c a ld e s i g no f r e i i a b l ed a t at r a n s f e rs y s t e mb 蠲e do nr u d p f i n a l l y , d e s 画r u d ps o 脚唧m o 砌ea c c o r dt o 1 el o 百c a ld e s 啦,i m p l e m e n tr e l i a b l e 血e d a t at r a n s i l l i s s i o n ,a i l dc o m p a r e e 伍c i e n c yb e 伽e e nt c p a n dr u d p k e y w o r d s :r u d p ,u d p ,t c p ,s c t p ,c o n g e s t i o nc o m r o l i i 武汉理工大学硕士学位论文 1 1 课题的背景 第1 章绪论 上世纪6 0 年代中期,美国国防部出于冷战的需求,出资给它的研究机构: 高级研究计划署( a r p a ) 组建一个命令与控制网络。之后,a r p a 出资的实验性 网络于1 9 6 9 年1 2 月启动,当时它只分组含了4 个节点,包括u c l a 、u c s b 、 s r i 和犹他大学。这就是著名的a i u ) a n e t 。随后b s d 出现,它带来了t c p p , s o c k c t s 和许多网络实用程序,使得l n 可以很容易地连接a r p a n e t ,这样 a r p a n e t 迅速发展,很快便覆盖了整个美国。7 0 年代末期,美国国家科学基 金会( n s f ) 注意到a i l p a n e t 在大学科研上的巨大影响,决定开始设计a r p a n e t 的高速替代网,1 9 8 4 年,n s f 建立了一个主干网用来连接它的6 个超级计算机 中心,并开始资助一些地区网络与主干网相连。这就形成了一个完整的网络, 被称为n s f n e t 。当n s f n e t 与a r p a n e t 互联以后,网络规模以指数级增长。 很多地区网络开始加入,并且开始与加拿大、欧洲和太平洋地区的网络连接。 这就是现在我们所熟知的i n t e m e t 。纵观i n t e m e t 的发展历史,我们可以很清晰地 看到以下几个特点: ( 1 ) 网络规模不断扩大。1 9 6 9 年的舢廿a n e t 只有4 个节点,仅限于美国 国内,现在的i n t e m e t 已经覆盖全球。从1 9 8 1 年以来,加入i m e m e t 的节点数几 乎保持着线性增长,t c p 口和w w w 的发明是推动h l t e m e t 规模增长的两个最 重要的动力。 ( 2 ) 网络带宽不断提高。早期的a r 鼢n e t 主干带宽只有5 6 k ,而目前 i n t e m e t 主干带宽己经达到l o g 。g i l d e r 定律发现:h e m e t 带宽每六个月增长一 倍。从实用的角度看,末端用户可用i n t e m e t 带宽近二十年来呈线性增长。 ( 3 ) 网络应用越来越复杂。早期h l t e 而e t 上的主要网络应用为e m a i l ,t e l i l e t , n e w s 和f t p ,用户主要集中在科研群体。现在i n t e m e t 上网络应用种类繁多:电 子商务、远程医疗、远程教育、虚拟社区、网络游戏以及各类实时业务等功能。 现在的网络应用程序实现传递数据的方法主要是采用t c p 传输控制协议。 t c p 协议是面向连接的协议,它比较安全、稳定,但是效率不高,占用资源较 武汉理工大学硕士学位论文 多,在基于消息通信的应用程序中,这将不可避免地增加系统的开销并降低通 信的效率。u d p 协议系统开销小、速度快、效率高、占用资源少,对绝大多数 基于消息分组传递的应用程序来说,基于帧的通信( u d p ) 比基于流的通信( t c p ) 更为直接和有效。u d p 协议优点突出,缺点也同样明显:u d p 数据报的传送是 不可靠的传输,它不像t c p 协议一样有重传、确认、流量控制等机制,因此采 用u d p 协议的信息在传送过程中很容易丢失。 为此,就自然地考虑到在u d p 的基础上增加一些为保证可靠数据传递所必 需的功能,使其成为一个基于消息的可靠传递协议,这就是可靠u d p 协议 ( r e l i a b l eu d p ,r u d p ) 。本论文主要论述基于r u d p 协议的可靠数据传递技术 的实现原理和实现方法。 1 2 国内外研究现状 1 2 1 目前各传输协议的发展情况 ( 1 ) t c p 协议 传输控制协议( t r a l l s i n i s s i o nc o n 扛d 1p m t o c 0 1 ) t c p 是一种面向连接的协议, 它提供给用户进程是可靠的全双工字节流。t c p 协议是目前h l t e r n e t 上应用最广 泛的面向连接的传输层协议,它为通信的两端提供了可靠的数据传输,而且提 供了流量控制和拥塞控制功能,利用重发技术和拥塞控制机制,向应用程序提 供可靠的通信连接。 由于原来口网提供的是“尽力而为( b e s t e 髓r t ) ”的服务,因此t c p 存在许多 不足之处。t c p 是面向字节流的,这意味着消息的描述必须由应用端来完成, 而且要在消息结束时确切地通知t c p ,以迫使其立即发送相应的数据。许多应 用只需要信令信息的部分有序,例如属于同一呼叫或同一会话的消息就是这样 工作的。而t c p 只提供严格的数据按序传输,这会导致不必要的队列拥塞并使 消息的传输时延迟增大。t c p 连接直接由一对传输层地址( i p 地址和端口号) 识 别,无法提供对多宿主机的透明支持。典型的t c p 实现不允许高层应用设定协 议控制参数。但是一些应用可能会需要调节传输层协议的属性以满足其要求。 例如某些应用有较高的时延要求,而另一些则只要求较高的可靠性。 ( 2 ) s c t p 协议 武汉理工大学硕士学位论文 流控制传输协议( s 廿e a 面n gc o n 们lt r 孤s m i s s i o np r o t o c o ls c t p ) 1 7 j 它结合 了u d p 和t c p 两种协议的长处。它一方面增强了u d p 业务并提供数据报的可 靠传输:另一方面,s c t p 的协议行为类似于t c p 并试图克服t c p 的某些局限。 正如r f c 2 9 6 0 中定义的,s c t p 是可靠数据报传输协议,它运行于提供不可靠 传递的分组网络上,如口网。它向用户提供下列服务:用户数据无错误无重复 的确认传输;根据检测到的m t u 长度进行用户数据分段处理,避免d 层的分 段;在多个流( s 扛e 锄) 间的用户消息有序递交,及单独用户消息按到达顺序递 交的选项;可选的多个用户消息至s c t p 数据报的复用。流控制传输协议s c t p 名称中的“流”( s t r e 8 | 1 1 ) 是指该协议能够处理每个关联中的若干个用户数据报流, 并且为每个流中的用户数据报提供有序传送。流子层的存在使得其他流中数据 丢失造成的队头阻塞情况得以避免。 s c t p 采用了与t c p 基本雷同的流量控制和拥塞控制算法,引用了慢启动机 制。只是在数据分组的确认和重传机制上,明确的将选择性确认作为标准的一 部分,规范了选择性重传和快速恢复机制。 ( 3 ) u d p 协议 用户数据报协议( u s e rd a 协鲜吼p r o t o c 0 1 ) 2 】u d p 主要用来支持需要在计算 机之间传输数据的网络应用,包括网络视频会议系统在内的众多的客户服务器 模式的网络应用都需要使用u d p 协议。u d p 和t c p 一样,属于传输层协议。 u d p 协议的主要作用是将网络数据流压缩成数据报的形式。每一个数据报的前 8 个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。u i ”是基 于消息的,提供快速的无连接业务,这使其适合于传输时延敏感的信令消息。 但是,u d p 本身仅提供不可靠的数据报业务,差错控制、分组顺序、重复检测 和丢失分组重传等功能只能由上层应用来完成。 u d p 协议使用报头中的校验值来保证数据传输的准确性。校验值首先在数 据发送方通过算法计算得出,在传递到接收方之后,还需要再重新计算。如果 某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发 送方和接收方的校验计算值将不会相符,由此u d p 协议可以检测是否出错。 u d p 和t c p 协议的主要区别是两者在实现信息传递的可靠性方面采取机制 不同。t c p 协议中包含了专门的传递保证机制,当数据接收方收到发送方传来 的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之 后才继续传送其它信息,否则将一直等待直到收到确认信息为止。与t c p 不同, 武汉理工大学硕士学位论文 u d p 协议并不提供数据传送的保证机制。如果在从发送方到接收方的传递过程 中出现数据报的丢失,协议本身并不能做出任何检测或提示。 1 2 2r u d p 协议发展情况 t c p 和s c t p 都是面向连接的传输协议,它们都具有较完备的传输控制机 制,因而能够保证通信双方数据的可靠传递。但是由于t c p 和sc 口都是基于 流传输的,所以在基于消息传输的应用中,消息的边界和完整性问题需要由上 层用户来处理,从而降低了通信的效率。而u d p 是无连接的传输协议,尽管它 不能保证数据的可靠传递,但是因为它没有复杂的控制机制,所以系统开销很 小,通信速度较快,而且它是基于消息传输的,所以在基于消息传输的应用中 不存在t c p 和s c t p 中的由用户处理消息边界和完整性的问题。 为实现分布系统中进程间的可靠通信,并提高通信效率,很自然的就会想 到结合t c p 和u d p 的优点,在u d p 之上增加一些保证数据可靠传递的控制机 制,满足应用的需要。r u d p 框架正是在这种情况下产生的。 可靠用户数据报协议( r e l i a b l eu d f ,r u d p ) 是一个基于传输协议的简单的 分组,它的理论基础是r f c l l 5 1 和r f c 9 0 8 可靠数据报协议。r u d p 位于u d p m 之上,为虚拟连接提供可靠的有序的数据发送。目前关于r u d p 的设计与应用 的介绍还较少,在设计上r u d p 参考了s c t p 的部分细节。本文正是在这个基 础上对基于r u d p 的可靠数据传递技术的实现原理和实现方法进行了研究。 1 3 课题主要研究内容 本文首先研究了可靠数据传输技术,该部分介绍了可靠数据传输技术的发 展、研究方向及存在的问题;其次分析了r u d p 协议的结构、实现机制和核心 算法,接着介绍了基于r u d p 的可靠数据传输的实现过程,并搭建测试环境, 进行性能方面的测试,并与t c p 通信进行比较,验证r u d p 的通信效率优于t c p 通信。 1 4 本文的结构安排 本文主要研究基于r u d p 的可靠数据传输,并对与此相关的知识内容进行 4 武汉理工大学硕士学位论文 了深入的研究。全文共分为五章,其主要内容如下: 第l 章绪论:主要介绍了本课题的研究背景、研究目标及主要研究内容。 第2 章可靠数据传输技术研究:主要分析了可靠数据传输技术的发展和研 究方向及现阶段各种数据传输方式存在的问题。 第3 章r u d p 协议分析与设计:介绍了r u d p 协议的设计目标和体系结构, 并提出了r u d p 的实现机制。 第4 章r u d p 的数据传输设计:介绍了系统的总体目标和各个逻辑模块, 详细讲解了各模块的设计思路与相互关系。 第5 章r u d p 数据传输实现:介绍了系统的开发平台与工具,详细讲解了 核心模块的设计思路,并给出了系统的实验结果。 第6 章总结与展望。 武汉理工大学硕士学位论文 第2 章可靠数据传输技术研究 在这一章,我们将研究可靠数据传输r d t ( r c l i a b l ed a 协订a i l s f e r ) 技术。重 点探讨r d t 协议的可靠数据传输在各种网络环境下的运用,新的研究方向以及 目前存在的问题。 2 1 可靠数据传输技术发展 实现可靠数据传输的问题不仅出现在传输层,还出现在链路层和应用层。 可靠数据传输技术是当前网络技术研究中的热点问题。 实现可靠数据传输解决通信容错的问题。在传输信道发生比特错误或丢失 数据报的情况下,克服错误造成的故障,使得数据能够准确无误的、有序的到 达目标节点。仅仅依靠现有的网络协议,如t cp ,u d p 等,很难做到这一点。 t c p 是一个基于连接的数据传输协议,一个连接建立起来后,它可以保证 数据按序到达,并且有一定的检验机制来保证数据传输的正确性。但是,一旦 这个连接由于故障断开,数据传输可靠性的语义就很难得到保障。t c p 无法预 知应用程序传输的数据量大小,因此不可能对所有的用户数据都进行保存和缓 冲,t c p 并不提供也无法提供数据重新传输的服务。u d p 在可靠性方面的保障 就更差了,目前基于u d p 的实际的网络应用中,网络不畅造成的频繁的丢包会 给应用带来不可预知的故障。 常用的应用层协议,如h t t p f t p ,s m t p 也无法保证数据传输的完全可靠, 这些协议都要求数据必须能够而且只能够一次( ( e x a c n y - o n c e ) 到达接收方,而且 这些应用层协议都和具体的应用环境密切相关,并不是具有独立意义的可靠数 据传输。 因此实现可靠数据传输就需要在应用层另作协议,并且将可靠数据传输抽象 出来单独作为一种服务实现并复用,从而实现一种具有普遍应用价值的数据传输 服务,这是非常有意义的一项工作。 武汉理工大学硕士学位论文 衄 型 巡 墀 迎 可靠信道的服务模型不可靠信道的服务模型 图2 ,1 可靠数据传输的服务模型和运行方式 图2 1 阐明了我们关于可靠数据传输的服务模型和运行方式。根据网络层的 不同,在可靠数据传输中有两大服务模型,基于可靠信道服务模型和基于不可 靠信道服务模型。在实际应用中,通信双方的网络层信道通常是不可靠的,数 据传输过程中极可能出现数据报比特错或是数据报丢失的情况。r d t 技术正是 用来实现在不可靠信道上保障数据可靠传输的服务。采用可靠数据传输技术, 应用层服务无须实现传输层与网络层的复杂处理机制,只需要调用r d t 的相 应函数,就可以实现数据报的准确发送与接收。 如图2 1 ,应用层的发送方是通过对r d ts e n d ( ) 函数的调用来实现数据的 发送。它所传递的数据就是接收方需要传送给上层的数据。当一个数据分组到 达接收方信道时。接收方调用r d tr c v ( ) 函数来接收数据。然后调用函数 d e l i v e rd a t a ( ) 将数据传送给上一层时。为了交换那些分组含有需要传输的数据 的分组,r d t 发送方和接收方还需要来回地交换控制数据报。 下面我们将分三种服务模型来介绍r d t 技术的发展,r d t l 0 、r d t2 o 、r d t 2 1 、 d d t 3 o 分别代表r d t 技术的不同发展阶段。 2 1 1 建立在完全可靠信道上的可靠数据传输: 我们首先看一个最简单的服务模型,建立在完全可靠信道上的数据传输。 实现这种服务模型的技术称为r d t l o 。图2 2 给出了r d t l o 的发送方和接收方的 有限状态自动机f s m 的定义。图2 2 中的发送方和接收方的f s m 都只有一个状 态,f s m 中的箭头表示了一种状态到另一种状态的转换,它所引起转换动作的事件 在水平横线上方给出了描述,该事件发生时所执行的动作列举在横线的下方。 武汉理工大学硕士学位论文 r ( k s e n d ( d a t a ) m a k ep k t ( p a c k e t ,纰) u d l s e n d o a c l t ) r d c _ r c “p a c k e t ) r d t l 0 发送方r d t l 0 接收方 图2 2r d t l o 发送和接收方的f s m 模型 在这个简单的服务模型中,发送方通过事件r d ts e n d ( d a t a ) 从上层得到数据, 通过m a k ep k t ( p a c k e t ,d a _ t a ) 将数据封装到数据报中并将数据报发送到信道。 在接收方,r d t l o 通过事件r d tr c v ( p a c k e t ) 从下层信道接收数据报,通过 e x n t ( p a c k e t ,d a _ c a ) 操作去掉数据报的附加信息并将其中的数据传送到上一层。 在这个简单的服务模型中,信道是完全可靠的,数据在信道传输过程中不 会发生任何错误,接收方不需要给发送方传递任何反馈信息。 2 1 2 建立在有比特错信道上的可靠数据传输 建立在可能会发生数据报比特错误信道上的可靠数据传输是一个更为实际 的模型。当进行数据服的传送或缓冲时,在网络的物理部分中可能会产生这样 的比特错误。假设尽管有些比特被出现了错误,所有传送的数据报仍然是按照 它们传送的顺序接收的,实现这种服务模型的技术称为r d t 2 o 。r d t 2 o 处理数据 报比特错误的机制与传统电话通信类似。用电话传送一个长消息时,消息的接 收方在每昕到、理解和记录一句话之后,都会说一句0 k ”。如果消息接收者昕 到了一个含糊不清的句子,接收方就会要求发送方重复一遍。这种消息叙述协 议使用了肯定确认“o k ”和“重复一遍”这样的控制消息,使得接收方可以通知发 送方消息是正确送到还是错误到达并且需要重复发送。在计算机网络应用中, r d t 2 o 就是建立在这些被称为a r q ( a u t o m a t i cr e p e a tr e q u e s t ) 的机制之上的。 错误检1 撄0( e r r o rd e t e c t i o n ) 首先,当发生了比特错误,接收方需要有一种机制能够检测这些错误。在 u d p 协议中,u d p 使用了校验和字段来实现这个功能。这种技术允许接收方检 测并纠正分组中发生的比特错误。这些技术的实现需要在发送方向接收方传送 的原始数据上增加额外的比特,这些比特将被放入数据报的校验和字段中。 武汉理工大学硕士学位论文 接收方反馈( f c e d b a c k ) 由于发送方和接收方通常是运行在不同的终端系统上,可能相隔几千英里, 那么发送方得知接收方情况( 一个分组是否正确到达) 的唯一方法就是让接收方 提供给发送方明确的反馈。消息传输中的肯定确认( a c k ) 和否定确认( n a k ) , 就是这些反馈的例子,在r d t 2 o 中,接收方会将简单的a c k 和n a k 分组返回 给发送方。在理论上。这些分组应该仅仅需要1 比特就可以了:如o 代表n a k , 1 代表a c k 。 r d ts e n d ( d a t a 、 c o m p u t ec h k s 啪 m a k ep k f l s n d p k t ,d a 氓c 1 1 l 【s u m ) r d t _ r c v ( 研p k t ) c o m 印t ( r c v p h ) u d l s e n d ( n a k ) r d l r c v ( r c v p k t ) i s a c k ( w v p k t ) 发送方f s m r d t _ r c v ( r c v p k t ) & i l o c o r n 科( r c v p k t ) e x 劬址t ( r c v p k t ,d a n ) d e l i v 盯d a t a ( d a t a ) u d l s e n d ( a c k ) 接收方f s m 图2 3r d t 2 o 发送方和接收方的f s m 如图2 3 ,在有比特错信道上,发送方有两种状态。在一种状态中,发送方 等待着从上层中传下来的数据。在另一种状态中,发送方等待从接收方发送过 来的a c k 或者n a k 数据报。如果收到了一个a c k 数据报,发送方就知道最近 传送的分组已经正确到达,并且返回到等待上层数据的状态。如果收到了一个 n a k 分组,协议将重发展后的一次分组并等待接收方收到重发的分组反馈的 a c k 或者n a k 。这里需要重说明,当接收方处于等待a c k 或n a k 状态时, 则无法从上层接收数据。只有当它接收到a c k 并且脱离这种状态之后,才能 接收上层的新数据。因此,发送方在确认接受方已经正确地接收当前传送的分 组之前是不会发送新数据的。根据这种机制,类似r d t 2 o 的协议被称为停止等 待( s t o p - a n d w a i t ) 协议。接收方只有一个状态,当一个分组到达,接收方根据 武汉理工大学硕士学位论文 接收的分组是否正确,返回一个a c k 或者n a k 。 r d t 2 o 存在着一个重大的缺陷:r d 乜0 没有考虑到当a c k 或者n a k 数据报 可能被破坏的情况。这个疏忽会造成严重的后果。因为,如果a c k 或者n a k 被破坏,发送方无法知道最后一次发送的数据是否已经正确地到达了接收方。 2 1 3 建立在可能发生比特错误、会丢失数据的信道上的可靠数据传输 对于现在普遍应用的网络环境而言,除了会发生损坏比特数据的情况外, 下层信道还有可能会丢失数据报。建立在可能发生比特错误、会丢失数据的信 道上的可靠数据传输技术称为r d t 3 o 。在r d t3 o 中,主要需要解决的两大问题: 怎样检测数据报的丢失以及当发生丢失事件时该如何恢复。计算校验和、顺序 编号、a c k 分组和重发机制可以解决数据报恢复问题。在口d t 3 o 中,需要加入 一个新机制来解决数据报丢失检测问题。 有很多方法可以处理数据报丢失的问题。在r d t 3 o 中,是通过发送方的操作 来实现对数据报的检测和恢复问题。假设发送方发送的一个数据报,或者是接 收方数据报的确认丢失了。在两种情况下,发送方都不会等待到接收方的应答, 如果发送方可以等待足够长的时间以确定该分组已经丢失了,它就可以很容易 地做出重发该分组的决定。但这样的方法并不能保证正常的网络程序运行。 发送方为了确定数据的丢失到底需要等待的时间至少应该是数据在发送方 和接收方之间传送的环路延迟时间( r o u n dt r i pd e l a y ) ( 其中可能包含数中间路 由器或网关中缓冲的时间) 。在很多网络中最大的延迟时间几乎无法确定。而且, 协议在理论上应该尽快地恢复丢失的分组。在实际应用中,需要解决的问题就 是使发送方选择一个适当长度的时间作为上限来判断分组是否丢失。如果在这 个时间范围内还没有收到a c k ,该分组就会被重发。如果一个分组的传送经历 了一个特别长的延迟时间的话,那么尽管可能该分组和它的a c k 都没有丢失, 发送方仍将该分组重发。这样就导致了发送方到接收方信道的重复数据分组的 产生。顺序号的引入,解决了这一问题。 发送方无法知道是包丢失了,还是a c k 丢失了,或者仅仅是分组和a c k 的传输经历了过长的延迟时间。在所有这些情况下发送方采取的动作都是一 样的重发。为了实现一个基于时间的重发机制,这里引入了一个计时器( t i m e r ) 来实现在经历一定时间后提醒发送方的提醒功能。发送方需要进行以下步骤: ( 1 ) 在每传送1 个分组之后将计时器重新设置;( 2 1 当计时器达到一定时间 武汉理工大学硕士学位论文 后采取响应;( 3 ) 停止计时器。 由于发送方产生的重复包和a c k 的丢失现象的存在,使得发送方接收a c k 的处理变得更为复杂。当接收到一个a c k 时,发送方通过在a c k 中加入确认 字段来判断a c k 与最近发送的数据报相对应,还是一个延迟到达的与以前发送 的数据报相对应的a c k 。当接收方产生一个a c k 时,它将把被确认的分组的顺 序号拷贝到a c k 的确认字段中。发送方通过检查确认字段中的内容,就可以知 道被确认的分组的顺序号。 发送方 接收方 无数据丢失操作有数据丢失操作 图2 _ 4 无数据报丢失与数据报丢失两种情况下,r d t3 o 工作情况 在今天的高速网络中,r d t 3 o 的性能较低,原因是r d t 3 0 是一个停止等待协 议。我们通过一个实例来分析这种停止等待行为所造成的性能影响。在这个例 子中,有两个终端主机,其中一个在美国的西海岸,另一个在美国的东海岸。 在这两个终端系统之间的光速传播的延迟时间大约为1 5 毫秒。假设它们是由一 个容量c 为1 g b p s ( 1 0 9b i t s ) 的信道连接起来的。一个数据报的大小s p 为l k 字 节( 其中包括头部和数据) ,将一个个分组传送到1 g b p s 的连接信道上所需要的 时间为: t 姐n s = s p ,c = ( 8k b i 忸p a c l 溆) ( 1 0 9b i 坞s e c ) = 81 1 1 i c r o s e c o n d s 在停止等待协议中,如果发送方在t = 0 的时候发送一个数据报,那么仁8 微 武汉理工大学硕士学位论文 秒时,最后的一个比特将进入发送方的信道。然后该分组用1 5 毫秒完成它跨越 全国的行程。如图2 5 中所示,当该数据报的最后一个比特以t 一1 5 0 0 8 毫秒出 现在按收方,我们简单地假设a c k 分组和数据分组的大小一样并且当接收方收 到发送方传过来的最后一个比特之后就可以立即发送a c k 分组,那么a c k 分 组的最后一个比特到达发送方时的时间应该是t = 3 0 0 1 6 毫秒。在这3 0 0 1 6 毫秒 中,发送方真正工作( 发送或接收) 的时间只有o 0 1 6 毫秒。如果我们将发送方的 使用定义为发送方真正用来通过信道发送数据的时间,用u s e n d e r 为发送方的利 用率,那么 u s e n d e r = ( 0 0 0 8 3 0 0 1 6 ) = 0 o o o l 5 也就是说,发送方真正工作的时间只有全部时间的o 0 1 5 。尽管使用了一 个lg b p s 的连接,发送方在3 0 0 1 6 毫秒的时间内,只能发送l k 字节的数据,每 秒只能发送3 3 k 字节数据。这个生动的例子给我们展示了网络协议是如何限制 了网络底层硬件的能力。而且,我们已经忽略了发送方和接收方的底层协议的 处理时间以及发送方和接收方之间的路由器上的处理和等待时间。如果再考虑 这些因素,延迟的时间会更长,r d t 3 o 的性能会更加糟糕。 a 停止等待机制b 管道机制 图2 5 :停止等待机制与管道机制 2 1 4 管道技术 为解决r d t 3 o 传输效率低的问题,我们使用管道技术方式来代替停止等待的 工作方式。在管道技术中,允许发送方在没有收到确认之前就可以发送多个分 组。由于发送方向接收方发送多个分组的过程就像是在填充一个管道,所以这 种技术被称为管道技术。流水线技术对可靠数据传输协议产生如下几个影响: 武汉理工大学硕士学位论文 数据报的顺序编号上限必须增加,因为每一个发送了( 而不是重发) 的分 组都必须有唯一的顺序号,而且可能同时存在多个已经发送了,但还没 有得到确认的分组。 发送方和接收方必须能缓存多个分组。至少,发送方必须能缓存它已经 发送了但还没有收到确认的分组。接收方同时也需要能缓存已经正确地 接收到的分组。 所需要的顺序号的上限和对缓冲区的要求取决于数据传输协议对分组丢 失、损坏和超长延迟作出响应的万式。这里,可以确定两个能恢复流水线错误 的基本方法:第n 个计组重发( g o b a c k n ) 和选择性重发( s e l e c t i v er e p e a t ) 。 ( 1 ) 第n 个分组重发g 】b n ( g o b a c k n ) 在第n 个分组重发( g o b a c k n ,g b n ) 协议中,发送方允许发送多个分 组而不用等待某个分组确认,但是个数不能超过流水线有的未确认分组的顺序 号的最大值n 。图2 6 给出了g b n 协议中发送方的顺序号范围。如果我们定义 b 踮e 为最早发送的未收到确认的分组,n c x t s e q n 岫为最小的未使用的顺序号( 也 就是要发送的下一个分组的顺序号) 。那么,顺序号可以被分为4 个部分:在 o , b a s e 1 】范围内的顺序号对应于已经发送并且已经收到确认的分组,【b 船e , n e x t s e q n 啪1 】范围内的顺序号对应于已经发送但还未收到确认的分组, 【n e x t s e q n 哪,b 够e + n 1 范围内的顺序号对应于只要从上层到达就马上就可以发 送的分组,对应顺序号大于b e + n 的分组必须等到流水线中的分组得到确认之 后才能发送。 图2 6g b n 协议中发送方的顺序号范围 如图2 6 所示,允许发送但未收到确认的分组对应的序号构成了一个大小 为n 的窗口,该窗口沿着顺序号空间内滑动。由于这个原因,n 通常指窗口的 大小,g b n 类的协议也被称为滑动窗口协议。为了实现流量控制,g b n 给发送 方加上限制,未确认的数据包的个数限制在n 以内,不允许发送无限的数据报。 g b n 的处理机制来源于当发生了分组丢失和超长延迟时,发送方所采取的 武汉理工大学硕士学位论文 行为。与停止等待协议相同,g b n 中计时器用来恢复丢失的数据或确认分 组。如果发生了超时事件,发送方将重新发送那些已经发送过但还未收到确认 的分组。如果收到了a c k ,但是还有其余的已发送未收到确认的分组,计时器 将被重启。如果没有这样的分组了,计时器停止。 g b n 的接收方操作非常简单。如果顺序号为n 的分组被正确她并且按顺序 ( 即最后次传送给上层的分组的编号为n 1 1 地接收了,接收方便发送一个a c k 对应编号为n 的分组并且将该分组的数据传送到上层。在所有其他的情况下, 接收方会将忽略掉分组,并且重新发送一个最后一次按顺序正确到达的分组的 a c k 。注意,由于分组是一次一个被达到上层的,如果分组a 被接收并传送, 那么所有顺序号小于a 的分组也应该已经被传送了。这样,g b n 实现了顺序号 累积确认。 在g b n 协议中,接收方忽略了无序到达的分组。这种方法有助于简化接收 方的缓冲机制接收方不需要将无序的分组放入缓冲区。这样,尽管发送方 必须保持窗口上界和下界以及下一个数据包在窗口的位置,接收方却只需要保 存下一个按照顺序要接收的分组的顺序号。当然,在g b n 中也存在缺陷;因为 丢掉了错序但是正确接收的数据报,发送方便会重传数据报,但是重传的数据 报又可能发生丢失或者损坏,那么发送方就必须再次重传该数据报,这样容易 造成网络拥塞或数据报延迟到达。 ( 2 ) 选择性重发s r ( s e l e c t i v er e p e a t ) g b n 协议使得发送方可以将数据报填充到管道中,就解决了在停止等待协 议中信道的使用率问题。当然g b n 还存在看一些其他的性能问题,特别是当窗 口和带宽延迟都很大的时候,管道中可能同时存在着很多数据报。一个数据报 中产生的错误可能会导致大量数据报的重发,而且其中有很多是不必要重发的。 随着信道发生错误的可能性的增加。管道可能会被这些不必要的重发数据所充 满。设想在消息传输场景中,如果每次都有一个字是模糊的,那么它周围的1 0 0 0 个字,( 例如,个大小为1 0 0 0 个字的窗口) 都将不得不重传,这样信息传输 的速度将因为这些冗余的传输而减慢。 选择性重传( s r ) 协议 3 3 】通过采用让发送方只重传接收方错误接收的数据 报来避免了不必要重发工作。这种单独的重传,需要接收方对正确接收到的数 据报迸行单独的确认。大小为n 的窗口在此又用下限制那些在管道中未确认的 数据报的个数。s r 的接收方不管接收到的分组是否是有序的,只要是正确的就 1 4 武汉理工大学硕士学位论文 都将给出确认。无序的分组在中间缺少的分组( 也就是顺序号较低的分组) 被接收 之前,被送入缓冲区存放,当这些缺少的分组到来之后,这些分组将成批地由 接收方按次序传送给上层。非常重要的是,在s r 中接收方重复确认而不是忽略 了那些已接收的、顺序号小于当前窗口下限b a s e 的分组。这些重复确认是必不 可少的。 2 2 可靠数据传输技术存在的问题: 随着移动通信技术和无线接入技术的发展,i n t e m e t 呈现出异构化的趋势, 这给传统传输控制机制的实现及其有效性带来了新的挑战。改进现有的t c p 协 议,优化复杂网络环境下传输性能,仍然是广大科研工作者的重要课题。通过 对上述可靠数据传输技术的讨论,我们认为在如下方面还可以做进一步的研究: ( 1 ) 多个协议层共同协作。由于t c p 协议己在当前的因特网中得到广泛的 应用,若新的改进协议不能与存在的t c p 协议兼

温馨提示

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

评论

0/150

提交评论