




已阅读5页,还剩76页未读, 继续免费阅读
(通信与信息系统专业论文)高速链路动态tcp拥塞控制研究及仿真.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
y5 8 6 3 8 8 北京交通大学硕士学位论文 摘 要 光通信获得了飞速的发展,数字光通信系统越来越受到人们 的重视。同时,光纤的传输速度不断提高,光通信的带宽基本在 2 . 5 - i o g b p s , 甚至达到了t的 数量级, 若在此带宽下仅有一个或 几个t c p连接,那么t c p连接探测到整个链路的带宽往往需要 几个小时, 在t c p占 满整个带宽之前的几个小时内, 链路利用率 极低。此外,数字光通信系统存在着误比 特率,此误比 特率可能 会与带宽占满时要求的分组丢弃率接近, 这与t c p 拥塞控制机制 的前提( 假设分组的丢弃几乎都是由于网络的拥塞造成的) 不符, 这种由于误码而不是由于拥塞造成的分组丢弃又会进一步降低 t c p 的发送速率从而减缓t c p 连接探测到满带宽的速度, 进一步 降低链路的利用率。 因此, 标准的t c p 拥塞控制用于高速链路存 在着链路利用率低的问题。 因而, 我们提出了 运用于高速 链路 酌动态t c p 拥塞控制调 整 策略,它既可以解决上述的问题,同时,又可以为不同服务级别 的应用提供有区别的服务质量。 它的基本思想是用 m 个虚拟的 t c p 链接代替一个标准的t c p 链接,同时, 此m值是随着网络 带宽的占用情况自 动调整的。本论文的研究是国家自 然科学基金 项目“ 业务内有区分服务和个性化拥塞控制”的一部分。 我们将分析高速链路动态 t c p拥塞控制调整的原理及可行 性 并 利 用l in u x 环 境下的n s 2 ( n e tw o r k s im u la t o r ) 仿 真软 件对 其 进行仿真,其中使用 c + + 语言实现协议及算法、使用 o t c i 语言 搭建网络拓扑进行性能测试,然后利用 s h e l l 语言及数学软件 宋 经 作者、 勿 全 文 公 布 导 岁 甲 问 龙 北京交通大学硕士学位论文 ma t l a b对仿真结果进行处理及可视化,分析我们的拥塞控制 算法的性能。 此外, 本文还重点比 较了f l o y d提出的用于高速链路的拥塞 控制调整机制:当拥塞窗达到一个适度的值时,修改拥塞窗与丢 弃率的关系曲线, 将t c p 线性加乘性减的参数设置为当前窗口值 的函数, 解决占满高速链路带宽所要求的丢弃率与光纤的丢弃率 接近的问题。 关键词:t c p 、拥塞控制、链路利用率、丢弃率、高速链路、拥 塞窗、仿真 北京交通大学硕士学位论文 a b s t r a c t i n r e c e n t y e a r s , o p t i c a l f i b e r c o m m u n i c a t i o n g e t s t h e r a p i d d e v e l o p me n t , d i g i t a l f ib e r c o m m u n i c a t i o n s y s t e m d r a w s m o r e a n d m o r e a t t e n t i o n . a t t h e s a m e t i m e , f i b e r g e t s h i g h e r a n d h i g h e r t r a n s m i s s i o n s p e e d , i t s b a s e b a n d w i d t h i s fr o m 2 . 5 g b p s t o i o g b p s , s o m e e v e n a r r i v e s a t t h e s p e e d o f s e v e r a l t b p s . i f t h e r e i s o n l y o n e o r s e v e r al t c p c o n n e c t i o n s i n t h i s h i g h s p e e d l i n k , i t w i l l t a k e t h i s t c p c o n n e c t i o n a f e w h o u r s t o d e t e c t t h e w h o l e b a n d w i d t h . t h e e f f i c i e n c y o f t h e l i n k i s v e ry l o w i n t h e s e s e v e r al h o u r s . b e s i d e s , t h e r e h a s f i b e r e r r o r r a t e i n d i g i t a l f i b e r s y s t e m , t h i s e r r o r r a t e i s m a y b e c l o s e t o t h e p a c k e t d r o p r a t e w h i c h d i s o b e y s t h e p r e c o n d i t i o n o f t c p c o n g e s t i o n c o n t r o l m e c h a n i s m , n a m e l y a h n o s t al l o f t h e p a c k e t s l o s s e s a r e d u e t o t h e c o n g e s t io n o f n e t w o r k s . i t s f i b e r e r r o r , n o t n e t w o r k s c o n g e s t i o n , t h a t m a k e s t c p s s e n d i n g r a t e r e d u c e . t h a t w i l l a ff e c t t h e c o u r s e o f f il l i n g t h e b a n d w i d t h f o r t h i s t c p c o n n e c t i o n , u l t e r i o r l y re d u c e s t h e u s a g e o f t h e h i g h s p e e d l i n k . b e c a u s e o f a b o v e c o u r s e s , w e a d v a n c e d y n a m i c a l l y a d j u s t i n g t c p c o n g e s t io n c o n t r o l m e c h a n i s m f o r . h i g h s p e e d l in k s , i t c a n s o l v e a b o v e p r o b le m s , a n d a t t h e s a m e t im e , i t c a n b e u s e d t o i m p l e m e n t a n i n t e rn e t w i t h d i ff e re n t i a t e d s e r v ic e s . t h e m e c h a n i s m s b a s e i d e a i s t h a t l e t o n e t c p c o n n e c t i o n b e h a v e r o u g h l y l i k e a n a g g r e g a t e o f m v i r t u a l t c p c o n n e c t i o n s . t h e v a l u e o f m i s d y n a m i c a d j u s t i n g a c c o r d i n g t o t h e u s a g e o f t h e w h o l e b a n d w i d t h , n a m e l y a v a i l a b l e b a n d w i d t h . t h e t h e s i s i s o n e p a rt o f n a t i o n a l n a t u r a l 北京交通大学硕士学位论文 s c i e n c e f o u n d a t io n p r o j e c t i n t r a - s e r v ic e d i f f - s e r v f o r i p ne t wo r k s . we w i l l a n a l y s e i t s p r i n c i p l e a n d f e a s i b i l i t y . s e c o n d l y , w e w i l l s i m u l a t e t h i s m e c h a n i s m u s i n g a s i m u l a t i o n t o o l c a l l e d n e t w o r k s i m u l a t o r 2 o n l i n u x o p e r a t i n g s y s t e m . my w o r k i s t o a d d o u r p r o t o c o l s a n d a l g o r i t h m s i n t o n s u s i n g c + + , t h e n c o m p i l e n s a g a i n t o m a k e o u r p r o t o c o l s t a k e e ff e c t . s e c o n d, u s i n g o t c l t o s e t u p a n e t w o r k t o p o l o g y a n d r u n o u r n e w p r o t o c o l s i n t h i s n e t w o 氏 t h e n r e c o r d s im u l a t i o n d a t a . f in a l ly , u s i n g s h e l l t o p r o c e s s t h e d a t a a n d u s i n g m a t l a b t o v i s u a l i z e t h e r e s u l t a n d a n a l y s e o u r a d j u s t i n g m e c h a n i s m s p e r f o rm a n c e . wh a t s m o r e , w e c o n t r a s t o u r m e c h a n i s m w i t h t h e m o d i f i e d m e c h a n i s m t h a t i s p r o v i d e d b y f l o y d . h e r m e c h a n i s m : m o d i f y t c p s r e s p o n s e fu n c t i o n , o n c e a m o d e r a t e l y h i g h c o n g e s ti o n w i n d o w w a s a c h i e v e d , t c p s a d d i t i v e - i n c r e a s e a n d m u lt ip l i c a ti v e - d e c r e a s e p a r a m e t e r s w o u ld b e a fi m c t i o n o f t h e c u r r e n t w i n d o w s i z e k e y w o r d s : t c p , c o n g e s t i o n c o n t r o l , u s a g e r a t e , d r o p r a t e , h i g h s p e e d l i n k , c o n g e s t i o n w i n d o w , s i m u l a t i o n 北京交通大学硕士学位论文 第一章 绪论 1 . 1拥塞控制的必要性 i n t e m e t 协议体系是基于使用 i p协议实现无连接的端到端包 交换服务。无连接设计具有灵活和健壮的特性,然而这些优势并 不是没有代价的, 在高负载情况下提供优质服务需要更仔细的设 计。实际上,不重视包交换的动态性会导致严重的服务质量降低 甚至造成网络的拥塞崩溃。 一般来说,拥塞崩溃发生在网络负载的增加导致网络效率降 低的时候。主要由于不必要的重传那些正在传送或已经被接收方 接收了的数据包。第二种潜在的拥塞崩溃是由非传递的数据包产 生的。当网 络传送的数据包在到达最终目 的地之前被丢弃而导致 带宽被浪费的时候就会出现由于非传递的数据包而发生的拥塞崩 溃。 所以, 应该采用必要的拥塞控制机制对包交换服务进行控制。 1 .2 t c p拥塞控制 1 .2 . 1 t c p 拥塞控制研究的必要性 t c p是一种可靠的 面向 连接的传输协议,需要接收端对接收 到的 t c p报文进行应答,保证了传输的可靠性。u d p是一种无 连接的传输协议,它可以提高分组的传输速度,但是无连接的特 北京交通大学硕士学位论文 性使得它难以提供可靠的服务质量保证。 当前的t c p 应用占网络 访问连接的 9 5 % , t c p协议是传输层主要使用的协议。在大量的 数据报文传送时如何提高网络的传输速率,在网络拥塞时如何有 效利用网络带宽,这些都是拥塞控制机制应该解决的问题。 1 . 2 .2 t c p拥塞控制所要解决的主要问题 要改善t c p 传输的稳定性,减少拥塞的发生,或者要与非标 准t c p 应用在同一网络中共存需要采取一定的拥塞控制机制, 拥 塞控制机制需要解决的主要问题有: 第一、满足低的报文丢弃率的要求,提高带宽利用率。 第二、高t c p传输的稳定性,减少网络状态的振荡。 第三、保证t c p 公平,即t c p 友好特性。 1 .2 .3端到端的t c p 拥塞控制的发展 1 9 8 6 年初, j a c o b s o n 开发了t c p 应用 r f c 2 5 8 1 中的拥塞控 制机制。1 9 8 8年他又指出了t c p在控制网络拥塞方面的不足, 并提出了“ 慢启动” ( s l o w s t a rt ) ,“ 拥塞避免”( c o n g e s t i o n a v o i d a n c e ) 的算法。1 9 9 0 年出 现的t c p r e n o 版本增加了 “ 快速 重传 ”( f a s t r e t r a n s m i t ) ,“ 快速恢复”( f a s t r e c o v e ry ) 算法, 避免了网络拥塞不严重时采用 “ 慢启动”算法而造成过大的减小 发送窗口尺寸的现象。 这样t c p的拥塞控制就由这4 个核心部分 组成。 最近几年又出 现了t c p 的改进版本, 如n e w - r e n o , s a c k 等。 运行在主机中的这些机制使得t c p 连接在拥塞时回退, 对网 北京交通大学硕士学位论文 络中的拥塞信号进行响应 ( 例如 “ 丢弃包,),正是这些t c p 避免 拥塞的算法防止了今天网络的拥塞崩溃。 1 . 3高速链路t c p 拥塞控制机制改进的必要性 1 . 3 . 1高速链路的发展 近年来,光通信获得了飞速的发展, 数字光通信系统越来越 受到人们的重视。同时,光纤的传输速度不断提高,光通信的带 宽基本在2 . 5 - 1 0 g b p s , 甚至达到了t 的数量级, 高速光通信具有 良好的发展前景。 1 .3 . 2标准t c p拥塞控制机制应用于高速链路存在的问 题 若在高速光纤链路下仅有一个或几个t c p 连接, 那么t c p 连 接探测到整个链路的带宽往往需要几个小时, 在t c p占 满整个带 宽之前的几个小时内,链路利用率极低。此外,数字光通信系统 存 在 着误比 特率( 小 于1 0 - 9 ) , 会 造 成分 组 丢 弃, 这 种由 于 误码而 不是由 于拥塞造成的分组丢弃又会进丫步降 低t c p 的发送速率从 而减缓 t c p连接探测到满带宽的速度, 进一步降低链路的利用 率。标准t c p 应用于高速链路存在利用率低的问题。 1 .4高速链路动态t c p 拥塞控制机制 高速链路动态t c p 拥塞控制机制可以实现根据网络的拥塞状 北京交通大学硕士学位论文 况调整分组发送速率的拥塞控制机制的基本要求,并且可以使得 高速链路下t c p 链接的拥塞窗迅速增长, 较快的达到满带宽, 极 大的提高链路利用率,解决高速链路利用率低的问题。 此外, 动态t c p 拥塞窗相对于标准t c p是小尺度变化的, 其 速率变化较为平滑,更适用于要求发送速率平滑变化的应用,还 可以将动态t c p 拥塞控制机制应用于提供不同等级的服务质量。 我们将对此机制进行研究, 分析其原理及可行性。 利用l i n u x 环境下的n s ( n e t w o r k s i m u l a t o r ) 编程( c + + , o t c l ) 对高 速链路动态 t c p 拥塞控制机制进行仿真, 生成仿真结果数据文件, 然后利用 s h e l l 语言及数学软件 m a t l a b对仿真结果进行处理, 生成可视 化图形, 对其性能进行分析。 1 . 5章节分布 第一章即为本章绪论,对总体情况进行概述;第二章 主要讲述了应用于传输层的t c p 传输控制协议; 第三章介绍对网 络中的包交换进行控制的 t c p拥塞控制机制及其不同版本的变 体。 第四章具体讲述了我们的用于高速链路的动态t c p 拥塞控制 调整机制,并应用网络仿真器 n s对其进行仿真,然后利用 m a t l a b将仿真的结果可视化, 利用可视化图形及统计数据对动 态 t c p拥塞控制的性能进行分析,此外,还将我们的动态 t c p 机 制 与f l o y d 提出 的 高 速链 路t c p 拥塞 调 整 机 制 进 行了 仿 真比 较。 北京交通大学硕士学位论文 第二章 传输控制协议 t c p i n t e rn e t 的传输层主要有两种协议, t c p ,一个是无连接的协议u d p . t c p 络上的可靠的端到端的字节流服务。 一个是面向连接的协议 传输控制协议用于提供网 2 . 1 t c p 提供的服务 t c p 提供一种面向连接的、可靠的字节流服务。面向连接意 味着两个使用t c p 的应用 ( 通常是一个客户和一个服务器)在彼 此交换数据之前必须先建立一条t c p 连接。这一过程与打电话很 相似,先拨号振铃,等待对方摘机说 “ 喂”, 然后才说明是谁。 在一个t c p 连接中, 仅有两方进行彼此通信, 广播和多播不能用 于t c p . t c p 通过下列方式来提供可靠性: 应用数据被分割成t c p 认为最适合发送的数据块。 这和 u d p 完全不同, 应用程序产生的数据报长度将保持不变。由 t c p 传递给i p 的信息单位称为报文段或段 ( s e g m e n t )。 ,当 t c p 发出 一个段后, 它启动一个定时器, 等待目 的端确 认收到这个报文段。如果不能及时收到一个确认,将重发这个报 文段。 当 t c p 收到发自 t c p 连接另一端的 数据,它将发送一个确 认。 。 t c p 将保持它首部和数据的检验和。 这是一个端到端的检 验和,目 的是检测数据在传输过程中的任何变化。如果收到段的 检验和有差错, t c p 将丢弃这个报文段和不确认收到此报文段( 希 北京交通大学硕士学位论文 望发端超时并重发)。 t c p 报文段作为i p 数据报来传输,而i p 数据报的到达可能会 失序,因此t c p 报文段的到达也可能会失序。如果必要,t c p 将 对收到的数据进行重新排序,将收到的数据以正确的顺序交给应 用层。 .i p 数据报会发生重复, t c p 的接收端必须丢弃重复的数据. t c p 能够提供流量控制。 t c p 连接的每一方都有固定大小的 缓冲空间。 t c p 的接收端只允许另一端发送接收端缓冲区所能接 纳的 数据。这将防止较快主机致使较慢主机的缓冲区溢出。 两个应用程序通过t c p 连接交换8 b i t 字节构成的字节流.我 们将 这称为 字节 流服务 ( b y t e s t r e a m s e r v i c e )。 如果一方的 应用 程序先传1 0 字节,又传2 0 字节,再传5 0 字节,连接的另一方将无 法了解发方每次发送了多少字节。收方可以分4 次接收这8 0 个字 节,每次接收2 0 字节。 另外, t c p 对字节流的内容不作任何解释。 t c p 不知道传输的 数据字节流是二进制数据,还是a s c ii 字符或者其他类型数据。 对字节流的解释由 t c p 连接双方的应用层解释。 2 . 2 t c p报头的结构 2 . 2 . 1固定项 t c p 数据被封装在一个i p 数据报中,其封装格式如图2 - 1 所 不 。 北京交通大学硕士学位论文 i p 数据报 i p 首部i t c p 首部t c p数据 2 0 字节2 0 字节 图2 - 1 t c p 数据在i p 数据报中的封装 图2 - 2 显示了t c p 首部的数据格式。 如果不计任选字段, 它通常是 2 0 个字节。 1 6 位源端 j 号1 6 位目的端口号 3 2 位序号 3 2 位确认序号 4锹保留 ( 6 位)牛 一 : : 一: ) 1 6 位窗口 大小 1 6 位检验和 1 6 位紧急指针 选项 数据 图2 - 2 t c p 报头结构 序号用来标识从t c p 发端向t c p 收端发送的数据字节流, 它表 示这个报文段中的第一个数据字节。如果将字节流看作在两个应 用程序间的单向流动,则t c p 用序号对每个字节进行计数。序号 是3 2 b i t 的无符号数, 序号达到梦一1 后又从0 开始。 当 建立一个新的 连接时, s y n 标志为1 。 序号字段包含由 这个 主 机 选 择的 该 连 接的 初 始 序 号 i s n ( i n i t i a l s e q u e n c e n u m b e r ) 。 北京交通大学硕十学位论文 该主机要发送数据的第一个字节序号为这个i s n 加1 ,因为s y n 标 志消耗了一个序号。 既然每个传输的字节都被计数,确认序号包含发送确认的一 端所期望收到的下一个序号。因此,确认序号应当是上次已成功 收到的数据字节序号加1 。只有a c k 标志为1 时确认序号字段才有 效。 发送a c k 无需任何代价,因为3 2 6 i t 的确认序号字段和a c k 标志一样,总是t c p 首部的一部分。因此,我们看到一旦一个连 接建立起来,这个字段总是被设置, a c k 标志也总是被设置为t o t c p 为应用层提供全双工服务。这意味数据能在两个方向上 独立地进行传输。因此,连接的每一端必须保持每个方向上的传 输数据序号。 t c p 可以表述为一个没有选择确认或否认的滑动窗口协议。 我们说t c p 缺少选择确认是因为t c p 首部中的确认序号表示发方 已成功收到字节,但还不包含确认序号所指的字节。当前还无法 对数据流中选定的部分进行确认. 例如, 如果1 -1 0 2 4 字节己 经成 功收到,下一报文段中包含序号从2 0 4 9- 3 0 7 2 的字节,收端并不 能确认这个新的报文段。它所能做的就是发回一个确认序号为 1 0 2 5 的a c k 。 它也无法对一个报文段进行否认。 例如, 如果收到 包含1 0 2 5 - 2 0 4 8 字节的 报文段, 但它的 检验和错, t c p 接收端所能 做的就是发回一个确认序号为1 0 2 5 的 a c k . 首部长度给出首部中3 2 b i t 字的数目。 需要这个值是因为任选 字段的长度是可变的。 这个字段占 4 b i t ,因 此t c p 最多有6 0 字节 的首部。 然而,没有任选字段时,首部正常的长度是2 0 字节. 在t c p 首部中有6 个标志比特。 它们中的多个可同时被设置为 吕 北京交通大学硕士学位论文 1 ,其意义如下: u r g :紧急指针 ( u r g e n t p o i n t e r ) 有效。 a c k : 确认序号有效。 p s h :接收方应该尽快将这个报文段交给应用层。 r s t :重建连接。 s y n :同 步序号, 用来发起一个连接。 f i n :发端完成发送任务。 t c p 的流量控制由连接的每一端通过声明窗口 大小来提供。 窗口大小为字节数,起始于确认序号字段指明的值,这个值是接 收端正期望接收的字节。 窗口 大小是一个1 6 6 i t 字段, 因而窗口 大 小最大为6 5 5 3 5 字节。 在下一节我们将看到新的窗口 刻度选项, 它 允许这个值按比例变化以 提供更大的窗口。 检验和覆盖了整个的t c p 报文段: t c p 首部和t c p 数据。 这是 一个强制性的字段,一定是由发端计算和存储,并由收端进行验 证。 只有当 u r g 标志置1 时紧急指针才有效。 紧急指针是一个正的 偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序 号。 t c p 的紧急方式是发送端向另一端发送紧急数据的一种方式. 最常见的可选字段是最长报文大小,又称为ms s ( m a x i m u m s e g m e n t s i z e ) 。 每个连接方通常都在通信的 第一个报文段 ( 为建 立连接而设置s y n 标志的 那个段)中指明 这个选项。它指明 本端 所能接收的最大长度的报文段. t c p 报文段中的数据部分是可选的。在一个连接建立和一个 连接终止时, 双方交换的报文段仅有t c p 首部。如果一方没有数 据要发送,也使用没有任何数据的首部来确认收到的数据。在处 9 北京交通大学硕士学位论文 理超时的许多情况中,也会发送不带任何数据的报文段。 2 . 2 . 2 t c p选项 t c p 首部可以包含选项部分。 仅在最初的t c p 规范中定义的选 项是选项表结束、无操作和最大报文段长度。新的r f c ,主要是 r f c 1 3 2 3 定义了新的t c p 选项,图2 - 3 显示了当前t c p 选项的格式, 这些选项的定义出自 于r f c 7 9 3 和r f c 1 3 2 3 e 每个选项的开始是1 字节的k i n d 字段,说明选项的类型。k i n d 字段为0 和1 的选项仅占1 个字节。 其他的选项在k i n d 字节后还有l e n 字节。它说明的长度是指总长度,包括k i n d 字节和l e n 字节。 设置无操作选项的原因在于允许发方填充字段为4 字节的倍 数,满足4 字节边界。 窗口 扩大选项使t c p 的窗口定义从1 6 6 i t 增加为3 2 b i t 。 这并不 是通过修改t c p 首部来实现的 ( t c p 首部仍然使用l 6 b i t ),而是 通过定义窗口 扩大选项实现对l 6 b i t 的扩大操作来完成的。于是 t c p 在内部将实际的窗口 大小维持为3 2 b i t 的值。 一个字节的移位 记数器取值为0 ( 没有扩大窗口 的操作) 和1 4 。 这个最大值1 4 表示 窗口大小为1 , 0 7 3 , 7 2 5 , 4 4 0 字节( 6 5 5 3 5 x 2 1 4 ) 。 这个选项只能够 出 现在一个s y n 报文段中,因此当 连接建立起来后, 在每个方向 的扩大因子是固定的。为了使用窗口 扩大选项,两端必须在它们 的 s y n 报 文 段 中 发 送 这 个 选 项。 主 动 建 立 连 接的 一 方 在 其 s y n 中 发送这个选项,但是被动建立连接的一方只能够在收到带有这个 选项的s y n 之后才可以发送这个选项。每个方向上的扩大因子可 以不同。如果主动连接的一方发送一个非零的扩大因子,但是没 北京交通大学硕士学位论文 有从另一端收到一个窗口 扩大选项,它就将发送和接收的移位记 数器置为0 。 这就允许较新的系统能够与较旧的、 不理解新选项的 系统进行互操作。假定我们正在使用窗口扩大选项,发送移位记 数为s ,而接收移位记数则为r o于是我们从另一端收到的每一个 1 6 6 i t 的通告窗口将被左移a 位以获得实际的通告窗口大小。每次 当我们向对方发送一个窗口通告的时候, 我们将实际的3 2 b i t 窗口 大小右移s t 匕 特,然后用它来替换t c p 首部中的l 6 6 i t 的值。 时间戮选项使发送方在每个报文段中放置一个时间戳值。接 收方在确认中返回这个数值, 从而允许发送方为每一个收到的a c k 计算r tt ( 我们必须说 “ 每一个收到的a c k”而不是 “ 每一个 报文段”,是因为t c p 通常用一个a c k 来确认多个报文段)。目 前许多实现为每一个窗口只计算一个r t t , 对于包含8 个报文段的 窗口 而言这是正确的。 然而, 较大的窗口 大小则需要进行更好的 r tt 计算。 通常r t t 通过对一个数据信号 ( 包含数据的报文段)以较低的 频率 ( 每个窗口一次) 进行采样来进行计算。当每个窗口中有8 个报文段时, 采样速率为数据率的1 / 8 , 这还是可以忍受的。 但是 如果每个窗口中有1 0 0 个报文段时, 采样速率则为数据速率的 1 / 1 0 0 ,这将导致被估计的r t t 不精确,从而引起不必要的重传。 如果一个报文段被丢失,则会使情况变得更糟。 发送方在第1 个字段中放置一个3 2 6 i t 的值,接收方在应答字 段中回显这个数值。包含这个选项的t c p 首部长度将从正常的2 0 字节增加为3 2 字节。 时间戳是一个单调递增的 值。由 于接收方只需要回显收到的 内 容,因 此不需要关注时间戳单元是什么。 这个选项不需要在两 1 1 北京交通大学硕士学位论文 个主机之间进行任何形式的时钟同步。 r f c 1 3 2 3 推荐在1 毫秒和1 秒之间将时间戳的值加1 0 4 .4 b s d 在启动时将时间戳始终设置为 0 ,然后每隔5 0 0 m s 将时间戳时钟加t o 在连接建立阶段,对这个选项的规定与窗口扩大选项类似。 主动发起连接的一方在它的s y n 中指定选项。只有在它从另一方 的s y n 中收到了这个选项之后,该选项才会在以后的报文段中进 行设置。 接收方t c p 不需要对每个包含数据的报文段进行确认,许多 实现每两个报文段发送一个a c k , 那么哪一个收到的时间戳应当 放入回显应答字段中就是一个值得考虑的问题,通常为了减少任 一端所维持的状态数量, 对于每个连接只保持一个时间戳的数值。 其他k i n d 值为4 , 5 , 6 和7 的四个选项称为选择a c k 及回显选 项。由于回显选项已被时间戳选项取代,而目前定义的选择a c k 选项仍未定论,因此图2 - 3 没有将它们列出。 选 项 结 束 : k i n d 二 。 i 字节 无 操 作: k i n d =1 1 字节 最大报文端长度:k i n d二2k i n d二4! 最 大 报 文 锻 长 度 1 字节2 字节 窗口 扩大因子:k i n d=3k i n d = 3 i 字节1 字节 移位数 i 字节 时间戳: k i n d = 8 k i n d 二 1 0时间橄值 9 字节 时间欲值回显应答 i 字节 i 字节a 字节 图2 - 3 t c p 选项 北京交通大学硕士学位论文 2 . 3 t c p连接的建立与终止 t c p 是一个面向连接的协议。无论哪一方向另一方发送数据 之前,都必须先在双方之间建立一条连接。本节将详细讨论一个 t c p 连接是如何建立的以及通信结束后是如何终止的。 2 . 3 . 1 t c p 连接的建立 在连接的建立阶段,为了使序号/ 确认号系统能够正常工作 必须使请求端与服务端的序号达成同步, 即服务端b 必须知道请求 端a 开始发送数据时所使用的 初始序号( i n i t i a l s e q u e n c e n u m b e r , i s n ) , 请求端a 也必须知道服务端b 开始发送数据时的 i s n 。这种序号的同 步方式称为三次握手 ( t h r e e - w a y h a n d s h a k e ) 如图2 - 4 所示,为了建立一条t c p 连接: 1 )请求端a ( 通常称为客户) 发送一个报文段( 报文段1 ) 指明客户 打算连接的服务器的端口, 其s y n 标志为1 , a c k 标志为0 , 初始 序号 i s n假定为x ) 。 s y n 指同步, 该标志表示a 试图 打开一个连 接。该数据段的首标也包含数据的初始序号,它标志着请求端a 数据的 序号的开始。 a 发送给b 的 第一个字节的 序号是i s n + l o s y n = 1 a c k = o i s n = x 2 )服务器b 接收请求端a 发送的 报文段, 并返回一个报文段( 报文 段2 ) 作为应答。发回包含服务器的初始序号的s y n 报文段同时, 将确认序号设置为客户的i s n 加1 以 对客户的s y n 报文段进行确 北京交通大学硕士学位论文 认。一个s y n 将占用一个序号。 s y n = 1( 仍在同步阶段) a c k = l( 确认号域将包含一个值) i s n = y ( y 是服务器b 的初始序号) 确认号二 x + 1 ( 希望从a 接收的下一个报文的序号) 3 ) 请求端a 接收到报文段2 后须将确认序号设置为服务器的i s n 加 1 以对服务器的s y n 报文段进行确认 ( 报文段3 )。 s yn= o ac k= 1 序号二 x + 1 确认号= y + 1 当三路信息交换完成后,就建立起了 t c p 连接,可以 进行数据的 发送接收了。 请求端a网络报文服务端b 发送s y n 报文段 接收s y n 报文段 发送s y n 报文: 并对接 收的s y n 进行a c k 接收s y n + a c k报文段 发送a c k 报文段 接收a c k 报文段 图2 - 4建立t c p 连接的三次握手过程 发 送第一 个s y n 的 一端将执行主动打开( a c t i v e o p e n ) 。 接收 北京交通大学硕士学位论文 这个s y n 并发回下一个s y n 的另一端执行被动打开 ( p a s s i v e o p e n )。当 一端为建立连接而发送它的s y n 时, 它为连接选择一 个初始序号。i s n 随时间而变化,因此每个连接都将具有不同的 i s n. r f c 7 9 3 指出i s n 可看作是一个3 2 比特的计数器,每4 m s 加t o 这样选择序号的目的在于防止在网络中被延迟的分组在以后又被 传送,而导致某个连接的一方对它作错误的解释。 如何进行序号选择?在4 . 4 b s d( 和多数的伯克利的实现版) 中,系统初始化时初始的发送序号被初始化为1 。这个变量每0 . 5 秒增加6 4 0 0 0 , 并每隔9 . 5 小时又回到0 ( 对应这个计数器每8 m s 加1 , 而不是每4 m s 加1 ) 。另外, 每次建立一个连接后, 这个变量将增 加6 4 0 0 0 . 2 .3 .2 t c p 连接的关闭 一个t c p 连接是全双工的 ( 即数据在两个方向上能同时传 递),因此每个方向必须单独地进行关闭。这原则就是当一方完 成它的数据发送任务后就能发送一个f i n 来终止这个方向连接。 当一端收到一个f i n ,它必须通知应用层另一端几经终止了那个 方向的数据传送。 发送f in通常是应用层进行关闭的结果。收到一个f i n 只意味 着在这一方向 上没有 数据流 动。 一 个 t c p 连 接在收到一个 f in后仍 能发送数据。而这对利用半关闭的 应用来说是可能的,尽管在实 际应用中只有很少的 t c p 应用程序这样做。 正常关闭过程如图2 -5 所示。 首先进行关闭的一方 ( 即发送第一个f in)将执行主动关闭, 北京交通大学硕士学位论文 而另一方 ( 收到这个f i n)执行被动关闭。通常一方完成主动关 闭而另一方完成被动关闭,双方都执行主动关闭也是可以的。例 如,t e l n e t 客户端关闭连接时键入q u i t 命令。它将导致t c p 客户 端发送一个f i n,用来关闭从客户到服务器的数据传送 ( 报文段 i )。当服务器收到这个f i n , 它发回一个a c k , 确认序号为收到 的序号加i( 报文段2 )。和s y n 一样,一个f i n 将占用一个序号。 同时t c p 服务器还向应用程序 ( 即丢弃服务器)传送一个文件结 束符。 接着这个服务器程序就关闭它的连接, 导致它的t c p 端发送 一个 f i n( 报文段3 ), 客户必须发回一个确认, 并将确认序号设 置为收到序号加1( 报文段4 )。 客户 服务器 应用程 序关闭 斗 向应用程 序交付e o f f i n 的a 十应用 程 序关闭 f i n 的a c k 图 2 - 5连接终止期间报文段的正常交互 图2 -5 显示了 终止一个连接的典型握手。在这个图中,发送 f i n 将导致应用程序关闭 它们的连接, 这些f i n 的 a c k 是由 t c p 软 件自 动产生的。连接通常是由客户端发起的,这样第一个s y n 从 客户传到服务器。每一端都能主动关闭这个连接 ( 即首先发送 北京交通大学硕 l 学位论文 f i n )。然而,一般由客户端决定何时终止连接,因为客户进程 通常由用户交互控制,用户会键入诸如 “ q u i t ”一样的命令来终 止进程.在图2 -5 中,我们能改变上边的标识,将左方定为服务 器,右方定为客户,一切仍将像显示的一样工作。 以上两个小节仅仅介绍了t c p 连接建立和关闭的典型情况, 实际上,客户和服务器可同时主动打开或关闭t c p 连接,还存在 t c p 连接的半关闭状态。 2 .4小结 t c p 提供了 一种可靠的面向 连接的字节流传输层服务。我们 简单地介绍了 t c p 为应用层提供的服务以 及t c p 首部中的各个字 段。 t c p 将用户数据打包构成报文段; 它发送数据后启动一个定 时器;另一端对收到的数据进行确认,对失序的数据重新排序, 丢弃重复数据:t c p 提供端到端的流量控制, 并计算和验证一个 强制性的端到端检验和。许多 流行的 应用程序如t e l n e t , r l o g i n , f t p 和s mt p 都使用t c p . t c p 是一个面向 连接的协议。一个t c p 连接由 一个4 元组唯一 确定:本地i p 地址、本地端口号、远端i p 地址和远端端口号。无 论哪一方向另一方发送数据之前,都必须先在双方之间建立一条 连接。 完成后, 要关闭 这个连接。 本章己 经详细介绍了 如何使用 三次握手来建立连接以 及使用4 个报文段来关闭连接。 这种两端间 连接的建立及关闭与无连接协议如 u d p 不同,一端使用u d p 向另 一端发送数据报时,无需任何预先的握手。 北京交通大学硕士学位论文 第三章 t c p 基于窗口的拥塞控制 1 9 8 8 年v a n j a c o b s o n 指出了t c p 在控制网络拥塞方面的不 足, 并提出了“ 慢启 动”( s l o w s t a rt ) .“ 拥 塞避免”( c o n g e s t i o n a v o i d a n c e )的算法。1 9 9 0 年出现的t c p r e n o 版本增加了“ 快速 重传 ”( f a s t r e t r a n s m i t ) ,“ 快 速恢复”( f a s t r e c o v e r y ) 算法, 避免了网络拥塞不严重时采用 “ 慢启动”算法而造成过大的减小 发送窗口尺寸的现象。 这样t c p的拥塞控制就由慢启动、 拥塞避 免、快速重传、快速恢复这4 个核心部分组成。最近几年又出现 了t c p的改进版本,如n e w - r e n o . s a c k等。 效率 i i: i i i j/2/ 负载 图3 - 1 负载和效率的关系 在描述t c p 拥塞控制算法之前, 我们先来研究一下负载与网 络效率之间的关系,如图3 - 1 所示。从图中可以看出,如果处于 负载较小的区域 i , 随着负载的 增加效率也相应的提高;一旦负 载进入某个合适的区域 i i ,效率不再随着负载的增加而显著提 高: 若负载进一步加重到 工 1 1 ,效率将迅速下降,也就是通常所 北京交通大学硕士学位论文 说的 “ 拥塞崩溃”现象。当然,我们总是希望网络能够稳定运行 在区域 工 i , 因为这样既能避免负载过低造成的效率下降( 区域 工 ) , 又能避免负载过高造成拥塞崩溃后的效率下降( 区域 i i i ) . t c p 的慢启动、 拥塞避免、 快速重传、 快速恢复算法的协调工 作,可以很好的维持负载和效率的关系。 3 . 1 t c p 拥塞控制的主要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 戒烟考试题及答案
- 检验科传染病疫情报告制度、复检制度
- 急救理论知识模拟题(含参考答案)
- 生态系统韧性分析-洞察及研究
- 2025版实体店知识产权保护与纠纷处理合作协议书
- 2025年二手车维修保养及转让服务合同
- 2025版商铺租赁返租共享经济合作协议
- 2025年度电商用户增长与留存策略外包合同
- 2025版食堂设施设备维护保养服务协议
- 2025年远程医疗在偏远地区医疗服务中的公共卫生事件应对策略研究
- DL-T 1476-2023 电力安全工器具预防性试验规程
- 常用急救药品课件
- 幼儿园食品安全培训内容资料
- 人教部编版语文八年级上册第一单元分层作业设计12
- 美发服务礼仪培训课件
- 人教版小学一至六年级英语单词汇总表
- 《生理性止血》课件
- 2019人教版高中英语必修三单词表带音标
- 一例臀部巨大脓肿切开引流患者的个案护理汇报课件
- 液化石油气机械修理工施工质量管控详细措施培训
- 中建挂篮悬臂浇筑箱梁施工方案
评论
0/150
提交评论