TCP协议中的流量控制和拥塞控制研究毕业论文

毕业设计 (论 ) 协议流量控制拥塞控制研究 院 别 数学与统计学院 专业名称 信息与计算科学 班级学 学生姓名 指导教师 年 月 日 协议流量控制拥塞控制研究 摘 要 计算机络技术是当今发展迅速计算机技术而保证络稳定可靠运行关键是计算机络协议。

协议作络协议核心协议其重要性更是不言而喻因而对该协议研究与完善是促进络发展重要手段。

随着规模和应用快速增长络拥塞和数据冲突问题已引起人们密切关。

拥塞控制与流量控制技术针对络拥塞和数据冲突而成络领域核心技术。

其流量控制对象是接收端目是使发送发送速率不超接收端接收能力;拥塞控制对象是络环境目是使不超络传送能力。

流量控制主要依赖滑动窗口通流量约束减少接收端出数据流失提高发送效率充分利用接收端。

拥塞控制主要原理依赖拥塞窗口()控制窗口值就代表能够发送出但还没有收到K数据报段显然窗口越那么数据发送速也就越快但是也就越可能使得络出现拥塞窗口值那么就简化停等协议每发送数据都要等到对方确认才能发送数据包显然数据传输效率低下。

拥塞控制算法就是要这两者权衡选取值从而使得络吞吐量化且不产生拥塞

首先对协议发展做了简要概述然分析了协议报段格式和结构数据传输程接着讨论了流量控制机制针对重部分拥塞控制进行了分析讨论了几拥塞控制算法

关键词协议流量控制拥塞控制 l rl g rl rl br r rk lg rl vlg r lg , r rk rl k r rk bl r lbl r rl, r rl rk rl, vr r, rr rv rl r r vl rk r gr r l r l, rk g l rbl r r l ll g rl l rl lg, rg r rk g l b r lg l rk l rl b rvr, r k g r x rvg g rl b rk vr, r k rr l r rk l rl l lg , b l r, r l rvg , rv r , k ll rvr rl g rl rl g () rl z vl rr bl b rv x k K , lr , grr r, b l r lkl k rk g r, , r gr, g , r r r r k, lrl r l g rl lgr bl b , b vl, llg rk xz rg r g rl, vl rl br vrv, lz rr rl, rr r, ll b l rl , k r l r g rl r lz, vrl g rl lgr K r rl, l rl,g rl 目 录 绪论 发展程与设计目标 发展程 设计目标 论结构 协议 3 报段 报格式 报封装 5 数据传输 6 连接建立 6 连接释放 7 3 协议流量控制 8 3 滑动窗口 8 3 可变窗口流量控制实例分析 8 拥塞控制 0 拥塞产生原因 0 重发定器管理 R估算 R计算 3 拥塞控制所采用机制 3 5 拥塞控制算法 7 5 早期实现 7 5 7 53 R算法 7 5 R 8 55 K 9 56 Vg 0 结 论 致 谢 3 参考献 附 录 5 绪论 计算机络是计算机和通信密切结合产物近些年得到了迅速发展已逐渐成信息社会基石。

络协议是计算机不可缺少重要组成部分它是计算机和计算机以及计算机和其他设备进行数据通信必要条件。

协议作重要络协议也是有了很发展。

发展程与设计目标 认识实践而认识终目标也正是实践。

只有了发展历史以及相应设计目标我们才能对拥有较全面认识从而更地研究技术满足越越高应用。

发展程 初美国国防部R计划。

上世纪60年代期正是冷战高峰美国国防部希望有命令和控制络以确保核战争条件下幸免难而传统基电路交换电话络则脆弱。

国防部指定其下属高级研究计划局这问题从而诞生R其特是采用无连接端到端报交换。

到了80年代期演变。

协议初只是作程序规即R 793这也是早较完整且齐全规。

这规简单描述了如何进行主机到主机可靠传输并描述了传输控制协议执行功能相应实现程序及程序接口。

协议设计初就被赋予了很高使命要成报交换计算机络和这些络系统高可靠性传输协议。

要明确是络可靠传输包括两方面首先是数据正确由以前传输介质质量很差所以传输层及以下各层协议都实现了校验和计算;其次是数据完整保序这特性要执行复杂操作实现通常我们强调可靠传输主要指者。

设计目标 设计初络技术刚刚起步相应硬件设施只能达到很低水平应用也十分简单诸多因素导致协议设计目标从开始就已先天不足。

设计协议由人们对络尤其是对型络缺乏质认识从而遗漏了许多协议应该具备重要特征。

例如我们现熟知拥塞控制初协议设计就没能得到体现。

初设计目标只是进程提供可靠、安全逻辑链路并基础上提供可靠传输。

要强调是对络并不做任何假设它主要功能就是提供可靠逻辑链路。

了能够不可靠络上进行可靠通信协议必须提供如下功能能够进行基数据传输、保证数据可靠性、进行适当流量控制、维护通信状态集合、使用并行多路技术以及保证通信优先级 和安全性。

论结构 主要围绕下列问题展开研究 .结构和数据传输程 .流量控制机制 3.拥塞控制拥塞控制算法 协议 协议是目前上应用广泛传输层协议。

它主要提供端到端可靠节流传送。

是面向连接协议即端系统进行数据传输前要建立连接连接属全双工方式(即数据可以两方向上进行传输)。

不可靠 络层上提供可靠数据传输即所有被传输数据终都应到达接收端。

接收端对其所接收每分组都进行确认定围没有得到确认分组会被发送方重新进行发送

接收端如收到重复分组将会丢弃该分组如收到乱序分组则对这分组进行重新排序。

每分组都会有己对应序列发送方可以通分组确认报获得接收端所希望接收下分组序列。

当通信双方有数据要发送 可以将确认信息放数据分组发送以减少控制信息带额外流量。

协议对数据单元传输及重传策略对络拥塞状况有着深刻影响。

概括说 协议应用层提供了以下 .流交付 协议允许发送进程以节流形式传递数据而接收进程也把数据作节流接收。

这样 协议使得两进程像假想“管道”传送两进程数据。

.全双工即数据可双向流动。

每 端系统都有发送缓存和接收缓存而两方向都可以发送报段

3.面向连接 通条虚拟连接传送数据。

当 报被封装成 分组每分组可以走不路径到达目端因收到 分组可能会乱序可能会丢失或者受到损伤并可能重传

但是 创建了面向流环境它责按顺序将完整数据交付给应用程序。

.流量控制流量控制定义了发送收到从接收端发确认前可以发送数据量。

协议缓存上定义了窗口缓存是用暂存放从应用程序传递并准备发送数据 发送端就根据这窗口发送数据。

这就是所谓滑动窗口机制。

5.差错控制 是可靠传输层协议这就表示当应用程序把数据流交付给 层协议应当把数据流按顺序没有差错没有损伤地交付给另应用程序。

了实现差错控制 协议采用了以下几种机制检测受到损伤、丢失、失序和重复数据包;检测到差错能够纠正差错。

6.拥塞控制由许多络和连接设备组成。

发送发送分组要多路由器才能到达接收端。

路由器了保证链路利用率般都会提供缓存暂存储突发到达分组但是当路由器接收多分组就可能导致路由器缓冲区溢出即该路由器节发生拥塞部分分组就会被丢弃。

发送重传这些分组会造成更加严重拥塞以致使络瘫痪。

因我们必须端系统采用些拥塞控制机制保证络不会发生拥塞又能充分利用络链路。

协议采用了慢启动拥塞避免等算法对络拥塞进行控制从而定程上保证络稳定运行。

报段 报格式 软件两台计算机传输数据单元称报段(g)。

报段交建立连接、传输数据、发出确认、通告窗口及关闭连接

图表示出了 报段格式每报段分两部分首部和数据。

报段既可以用建立连接也可以运数据和应答。

端口(6位) 目标端口(6位) 序列(3位) 确认序列(3位) 首部长(位) 保留 (6位) RG K R 窗口(6位) 校验和(6位) 紧急指针(6位) 选项和填充 数据区 图 报段格式 报段首部固定部分各段义如下 端口和目端口各占节是传输层与高层接口。

序列占节是报段发送数据部分节序。

输送数据流每节都有顺序。

例如报段序300而报数据00节那么下报段其顺序就是00。

由可见是面向数据流。

确认序列占节是期望收到对方下次发送数据节序。

首部长占b它指出以3b 单位 报段首部长。

首部段面是6b保留段是将应用而保留目前置0。

紧急比特RG当RG 表明报段应该尽快发送而不要按照原排队顺序发送

它通常与紧急指针(位53b 段半)配合使用紧急指针指出报段紧急数据节序。

紧急指针使接收方可以知道紧急数据共有多长。

要是即使窗口0也可发送紧急数据。

确认比特K只有当K 确认序段才有义。

当K 0确认序无义。

急迫比特当 表明请远地将报段立即传送给其应用层而不要等整缓冲区都填满再向上交付。

复位比特R当R 表明出现严重差错必须释放连接然再重新建立连接

步比特连接建立使用。

当 而K 0表明这是连接报段

对方若建立连接则应发回报段使 和K。

因置就表示这是连接请或连接接受报而K 比特值用区分是哪种报。

终止比特用释放连接

当 表明欲发送节串已发完并请释放传输层连接

窗口占节。

窗口段提供端到端流量控制它表示确认了节还可以发送多少节。

段值0是合法表示它已收到了包括确认减(即己发送所有报段 )所有报段但当前接收方急暂停。

发送带有相确认和滑动窗口段非零值报段恢复原传输。

校验和占节。

校验和段覆盖围包括首部、数据和概念上伪首部和。

选项和填充占节。

可选部分用具体选项。

填充作用是确保首部是3位整倍数。

报封装 如图所示报段封装数据报然再封装成数据链路层帧并通物理层传输到数据接收端接受端数据链路层剥帧首部然送到接收端络层剥首部再发送到传输层所剩下就是发送报段

首部 首部 数据 报段 报段报段封装 数据传输 连接建立 以全双工方式传输数据。

当两机器重两建立连接候他们都能够向对方发送报段

这就表示任何数据传输前每方都必须对通信进行初始化并得到对方认可即连接

连接建立称“三次握手“。

客户发送报段报段报段只有标志置。

报段作用是使序步。

客户端选择随机数Q作序并把这序发给器。

发送报段即+K报段其有两标志置l。

报段有两目是使用步初始序另是器使用K标志确认已从客户端收到报段给出期望从客户端收到下序。

3客户端发送报段

这仅仅是K报段

它使用K标志和确认确认收到了二报。

实例分析 Q 800 KQ500K80 K Q 50K 80 主机 主机B 连接请 图3 连接建立 下面我们以主机和主机B两应用程序例分析。

如图3所示。

这程从器开始。

主机告诉它它已准备接受连接这叫做被动打开。

主机B发送请叫做主动打开。

向B发出连接报段其首部比特应置选择序X我们选取X 800表明面传输数据数据节序是X+即80。

B收到连接报段如则发回确认

确认报段将和K都置确认X+即80己选择序令 500。

收到B确认要向B给出确认其K置确认+即50己序X+80。

连接释放 参加交换数据双方任何方都可以关闭连接

当方向连接被终止另方还可以继续向对方发送数据。

建立连接要三次握手终止连接要四次握手。

Q 00 K Q 700,K 00 K,Q700K00 主机 主机B 释放链接 K Q 00K 70   确认 确认连接释放 实例分析 如图所示主机应用进程先向其发送连接释放请并且不再发送数据。

通知对方要释放从到B这方向连接将发往主机B报段首部置其序X等前面已传送数据节序加X 00。

主机B收到释放链接通知发出确认其序 700确认X+即00通知高层应用进程应用进程通知释放连接

B发出连接释放报段必将和K置并使其序仍重复上次发送K X+。

确认将K置K+ 70己序是X+00。

3 协议流量控制发送发送数据多或者数据发送速率快致使接收端不及处理则会造成数据接收端丢弃。

了避免这种现象发生通常处理办法是采用流量控制控制发送发送数据量及数据发送速率。

期不超接收端承受能力这能力主要指接收端缓存和数据处理速。

流量控制是与到通信量有关是针对端系统受限而设置。

主要快速发送方与慢速接收方问题。

流量控制目是有限接收端承受能力情况下通流量约束减少接收端出数据丢失提高数据发送效率充分利用接收端。

3 滑动窗口 特是提供体积可变滑动窗口机制支持端到端流量控制

窗口以节单位进行调整以适应接收方处理能力。

处理程如下首先连接阶段双方协商窗口尺寸接收方预留数据缓冲区;其次发送方根据协商结发送窗口尺寸数据节流并等待对方确认发送方根据确认信息改变窗口尺寸。

00 0 00 0 300 30 00 0 500 50 600 发送窗口发送并被确认发送但被确认 可继续发送 不可发送 指针 图3 滑动窗口 图3表示发送窗口00节发送端已发送300节数据但是只收到对前00节确认窗口不变现发送端还可以发送00节。

3 可变窗口流量控制实例分析 设主机向主机B发送数据如图3所示双方规定窗口值是00。

再设每报段是00节长序初始值。

主机B进行3次流量控制次将窗口减少300节二次减00节次减08节即不允许发送数据。

Q Q 0 Q 0丢失 K0300 Q 30 Q 0 Q 0 K5000 Q 50 K 60 0 还能发送00节 还能发送00节 丢失了序0—300数据 允许还能发送300节(序0—500数据) 还能发送00节(序30—500数据) 还能发送00节(序0—500数据) 超重发(0—30节数据) 允许再发送00节 还能发送00节(序50—700数据) 序600以前数据都收到不允许再发送 主机 主机B 图3 可变窗口流量控制 拥塞控制 拥塞是种持续络状态用户对络(缓存空、链路带宽容量和节处理能力等)超了其固有容量。

络性能 (功率、往返R、吞吐量)与荷关系可以用图说明。

可以看出当荷较络吞吐量和功率(功率=吞吐量响应)随荷增长以指数增长R随荷增长略有上升当荷到达膝功率到达值吞吐量增长远远慢荷增长R迅速上升功率快速下降若继续增长荷则存丢包可能。

荷到达崖吞吐量达到值功率到达值。

R以指数增长系统处拥塞状态。

膝指功率到达值荷量。

崖指功率下降到值且开始丢包荷量。

因膝是理想工作拥塞控制就是采用某种策略或机制保持络工作正常状态下也就是使络常工作崖左侧区域。

若种控制机制使得络工作膝附近该方法称拥塞避免;若种控制机制使络工作崖或崖以络回复至膝前该方法称拥塞恢复。

图 络性能与荷关系 拥塞产生原因 随着通信和计算机技术成熟和发展规模增长络用户和络应用都快速地增长人们对包括话音、、数据、图像等多种媒体通信不断增。

计算机络有许多络如链路容量、交换节缓冲区和处理机等如某段用户(端系统)加络络容量和处理能力就会产生拥塞络性能就要变坏。

若络许多产生拥塞络性能就要明显变差整络吞吐量将随输入增而下降表现数据包延增加、丢弃概率增、上层应用系统性能下降等。

总说紧缺和不合理利用产生拥塞控制直接原因具体表现 .存储空不足几输入数据流共要输出端口这端口就会建立排队。

如没有足够存储空存储数据包就会被丢弃。

对突发数据流更是如。

增加存储空某种程上可以缓这矛盾但如路由器有无限存储量拥塞只会交得更坏而不是更因络里数据包长排队完成发它们早己超端认它们已被丢弃而这些数据包还会继续向下路由器发从而浪费络加重络拥塞

.带宽容量不足低速链路对高速数据流输入也会产生拥塞

根据香农信息理论任何信道带宽值即信道容量 (信道白噪声平功率信平功率B信道带宽)。

所有信发送速率R必须或等信道容量。

如R则理论上无差错传输就是不可能所以络低速链路处就会形成带宽瓶颈当其满足不了通它所有端带宽要络就会发生拥塞

3.处理器处理能力弱、速慢也能引起拥塞避免拥塞发生对以上原因综台考虑。

拥塞虽然是由络稀缺引起但单纯增加并不能避免拥塞发生。

定程只会加重拥塞而不是减轻拥塞是因当报段长排队完成发它们很可能早己超。

从而引起端超重发而这些报段还会继续传输到下路由器从而浪费络加重络拥塞

事实上缓存空不足导致丢包更多是拥塞“症状”而非原因。

另外增加链路带宽及提高处理能力也不能拥塞问题。

单纯地增加络所以不能拥塞问题是因拥塞身是动态问题它不可能只靠静态方案而要络协议络出现拥塞保护络正常运行即要对络可能拥塞进行控制

拥塞旦发生往往会形成不断加重程如不加控制就会影响络性能严重情况甚至会使整络发生瘫痪。

所以拥塞控制是络必不可少机制。

重发定器管理 重发定器管理是拥塞控制关键技术。

发送报段就设置次计数器。

只要计器设置重传到而还没有收到确认就要重传报段

重传隔取值(R)直接影响到发送端对络反应情况。

取值太会造成不必要重传从而浪费络取值太对报段丢失反应就会很迟缓。

R值与R(R r )有很关系。

所以正确估算R值并合理地选择R值对性能有重要影响。

R估算 整端到端路径往返R(R r )指从端发出报段收到相应确认隔。

R 包括正向和反向路径各跳链路延(传输延和物理传播延)和结处理延(排队、路由、发)。

R 随着各结排队情况不表现出定随机性。

如结使用较长队列R 变化会很。

种计算R 方法就是对观察到些报段往返简单地取平但是通常我们希望对更近期采样值给予更权值因它们更可能反映将行因常用_种技术指数平法。

其平滑R 值计算如下 其R(K)是前K报段平滑往返估值α是指数平权值(0α)α 越给予更迸观察值权值就越通常α取值78将几乎所有权重都给了近0左右观察值。

R计算 对R计算主要有三种方法;R方差估计(b算法)、指数R退避和Kr算法

.R方差估计 初规约试图通对R估值乘以常数因子B(通常取B)方法确定R值但稳定环境R方差很低用上述方法得到R就不必要取得太高;而不稳定环境取值可能并不足以防止不必要重传

R方差估计是通平滑R方差倍数与平滑往返和确定定器取值它可以更有效计算R值。

完整算法表达如下 采样平滑偏差 平滑偏差 重发定器 般情况取值ƒ取值。

验证明算法可以显著提高性能。

.指数R 退避如发送报段上发生超它就必须重传报段

考虑到超可能是由络拥塞引起了给络足够从拥塞恢复更明智策略是端报段重传增加其R这被称退避程 (bk r)。

实现R退避种简单方法是对报段每次重传都将R乘以常数值即。

这就使得R随每次重传而指数增长。

q通常取称二进制指数退避(br xl bk)。

3.Kr 算法假定报段发生超而必须重传如随收到了—确认那么就有两种可能 )报段次传输K。

这种情况下R 仅比期望更长些但却是络状况精确反映。

)是二次传输K。

端并没有办法区分这两种情况。

如发生是二种情况而实体只是简单地将R算成是从次传输到收到K这段那么这就比实际R要长得多。

将这错误R输入到b算法会产生太高R和R。

另外这效会向前传播许多次迭代因次迭代产生R值是下次迭代输入值。

种更糟方法是将R算成从二次传输到收到K这段。

如这K实际上是对次传输K那么我们测得R值就比实际值许多。

从而导致R和R值太。

这可能产生正反馈效应引起更多重传和更多错误测量。

Kr算法采用以下规则了这问题 )要使用对重传报段测得R更新R和V。

重传使用等式计算退避R。

3)续各报段使用退避R值直到收到了对被重传报段确认止。

当对被重传报段确认收到以b算法又被激活用计算将R值。

3 拥塞控制所采用机制 了更进行拥塞控制主要采用以下四种机制慢启动、拥塞避免、快速重传快速恢复。

.慢启动 当连接刚建立或超进入慢启动阶段。

当新建连接拥塞窗口被初始化数据包

端按发送数据每收到K确认就增加数据包发送量这样慢启动阶段随R呈指数级增长。

慢启动采用逐渐增方法可以防止启动连接向络发送数据包而造成不必要数据丢失和络拥塞并且它还能够避免采用单纯算法造成吞吐量增加慢问题。

了防止无限制增长引起络拥塞引入状态变量慢启动门限值r。

当r使用上述慢启动算法随R呈指数增长。

当r使用拥塞避免算法减缓增长速。

当r既可使用慢启动算法也可使用拥塞避免算法

拥塞避免 当发现超或收到3相K确认帧络发生了拥塞(主要因由传输引起数据包损坏和丢失概率很(l%))。

就进入拥塞避免阶段。

慢启动门限值(r)被设置当前拥塞窗口半;如超拥塞窗口被置。

如r就重新进入慢启动程;如r就执行拥塞避免算法每次收到K只增加/数据包这样R将增加所以拥塞避免阶段不是呈指数增长而是线性增长。

3.快速重传和快恢复阶段 拥塞避免阶段当数据包超被置重新进入慢启动阶段这会导致地减发送窗口尺寸降低连接吞吐量。

因引入了快速重传快速恢复机制。

快速重传阶段当端收到3或3以上重复K就判定随数据包丢失应该立刻重传进入快速恢复阶段。

快速恢复阶段设置r;重传丢失报段;设置r+(已收到重复报段数);收到非重复K置=r入拥塞避免阶段;如发生超重传则置r当前半=重新进入慢启动阶段。

这种方法避免了数据包超就重新进入慢启动阶段提高了连接吞吐量。

实例分析 下面通几实例分析下拥塞控制几阶段。

.慢启动和拥塞避免实例 先假设窗口单位报段连接进行初始化将拥塞窗口置即。

慢开始门限初始值设置8即r8。

发送发送窗口不能超拥塞窗口和通告窗口值。

假定通告窗口足够因发送窗口数值等拥塞窗口数值。

执行慢启动算法拥塞窗口

发送端每收到对新报段确认K就将+开始下次传输。

当增长到慢开始门限值r即8改拥塞避免算法

假定拥塞窗口数值增长到了络出现超则更新r6拥塞控制窗口执行慢启动算法

当6改拥塞避免算法

6 8 0 6 8 0 6 8 r8 更新r6 控制窗口 传输次数 进入拥塞避免 进入拥塞避免 超 图慢启动和拥塞控制实例 上图发送了3次收到3K控制窗口达到了慢开始门限值r8进入了拥塞避免阶段又传输了次当络发生拥塞执行拥塞避免算法

使r6再开始慢启动阶段当6进入拥塞避免阶段。

.快重传和快恢复实例 假定发送发送了—报段当接收端收到3就发出确认KK3K。

由络拥塞使丢失了接收端收到下5发现序不对但仍收下放缓存发出确认K。

发送端接着发送56接收端收到还要分别发送重复K。

这样发送收到了K其3是重复发送端就断定有分组丢失了立即重传进入快恢复阶段。

设置rrr+3如还可以发送就继续发送7若收到报段K8则将设置 r。

6 8 0 6 8 0 6 8 r8 更新r6 控制窗口 传输次数 进入拥塞避免 收到报段K 收到3重复K并快速重传 快速恢复 图3 快重传和快恢复实例 上图3收到了3重复K发送方断定有分组丢失开始重传进入快速恢复阶段使r6r+39。

再次传输收到报段确认K将设置r进入拥塞避免阶段。

5 拥塞控制算法 协议多年发展有了多种具体实现。

从实现到现不断得到改进。

现有拥塞控制算法主要有、R、R、K和Vg。

其、R、R和K是基(v r llv r)机制改变拥塞窗口而Vg是通观察以前连接R值改变情况控制

5 早期实现 早期使用简单停止等待协议每发送报都要等待确认才能顺序发送下报因效率很低且等待确认络也不能得到充分利用。

另外还必须等重传计器超才能重新发送丢失报对络拥塞采取有效措施。

5 988年b改进了原机制提出了算法

早期实现基础上加入了慢启动、拥塞避免和快速重传机制。

对重发定器取值也进行了改进。

并具有 R估计和差错恢复功能。

基思想是探测络可用带宽拥塞急剧降低数据发送速率 (即丢失报段重传将值降将r置重新进入慢启动阶段)。

算法存着不足处收到3重复K或超情况下置然进入慢启动阶段。

这方面会引起络激烈振荡另方面降低了络利用率。

53 R算法 针对算法不足处990年b基础上提出了改进算法R。

改进主要有两方面是对收到连续3重复K算法不慢启动而直接进入拥塞避免阶段;二是增加了快速重传快速恢复机制。

具体实现程 .收到三重复K进入快速重传快速恢复r设置当前拥塞窗口半。

重传丢失数据包并置=+ (收到重复K数)。

3.发送数据包

.当收到非重复K=r。

5.进入拥塞避免阶段。

从上面程可以看出R收到3重复K就入快速重传快速恢复阶段;而遇到超R和样进入慢启动阶段。

但是如发送窗口有多包丢失算法不能有效恢复出。

5 R 996年R基础上提出了R算法

对R快速恢复机制进行了改进以避免窗口发生多报段丢失情况下传输性能下降。

R发送端只要收到重传报段确认就结束快速恢复程;R则是收到对该窗口所有报段确认才退出快速恢复程从而避免出现多丢失造成连续减。

因R比R能更保证络稳定性。

R与R不仅步骤(下面所述)变量“rvr”引入以及步骤5收到部分或新确认K处理方式。

R定义了“快速恢复程”其快速重传快速恢复机制可以概括如下五步 .当发送收到三重复K并且发送端还没有处快速恢复阶段用下式设置r值。

然用变量“rvr”记录传送序列。

发送重传丢失报段并设置值r+3×。

这将人按已离开络报段数目和接收端已缓冲数据量扩充拥塞窗口

3.对每次接收到额外重复K将增节。

这将人扩充拥塞窗口以反映其它已离开络报段

.如和接收端通告窗口值允许话发送发送报段

5.当下确认报段K到达(K可能是由步骤重传引发确认或者是稍次重传引起) 如这K确认了直到并包含序列“rvr”报段那么这K确认发送丢失报段次传送和三重复K接收发送所有报段

发送方可以设置值 处r是步骤值(步骤l发送窗口是进入快速恢复阶段值而步骤5发送窗口是退出快速恢复阶段值)。

如这K不是对所有并包含到序列“rvr”报段确认那么这K就是部分确认

这种情况下发送端并不退出快速恢复程而是立即重传部分确认K指示没有确认报段

这和R处理部分确认方式不R收到部分确认K立即退出快速恢复程。

如还有任何其他重复K随到达R发送端重复执行上面步骤3和。

是当发送窗口有多报段丢失R不等到超重发定器超就能从多报段丢失恢复。

发送端每往返重发丢失报段直至重发了所有丢失报段止。

R直处快速恢复阶段直到发送端进入快速恢复前发出所有报段都被确认止。

55 K 996年还提出了R另改进K算法

它利用K报段选项对接收报进行确认

根据K选项确认信息发送端可以确知哪些报段已被接收从而只重传那些实际丢失报段这就有利发送端从单窗口丢失报段环境快速恢复。

K用到两种选项授权选项和K选项。

授权选项只连接建立使用。

选项包含报被发送表示连接可以用K 选项。

它占两节其格式 K Lg 型K算法是对R算法种简单改进它们扩和减拥塞窗口上使用都是相机制。

增加K并不改变拥塞控制基机制K不但实现了和R报段失序健壮性而且必要仍然使用重发定器超重发机制进行恢复。

K和R主要差别当多报段从数据发送窗口丢失采取对策。

K和R样般当发送收到3重复K就进入快速恢复阶段发送端重发传输程重丢失报段并把拥塞窗口减半。

K快速恢复算法K保持了变量用表示当前传输路径上报段估计数量。

这上K与R实现机制不。

拥塞窗口发送端只发送新或已重发数据。

发送发送报段或重发老报段值增l;而当发送端接收了带K选项重复K表明新数据己被接收者接收值减。

用变量可将何发送报段发送报段分离开。

如有重发报段丢失K可以重发定器超察觉从而重发丢失报段然再进入慢启动阶段。

收到“恢复K”确认了再进入快速恢复出现所有数据发送端就退出快速恢复阶段。

另外K发送端对快速恢复阶段收到“恢复K”还使用了特殊处理方法对这些K发送端对变量值每次减而不是减l。

56 Vg 99年提出了Vg算法

与前几种算法不Vg是种通检测络流量避免拥塞拥塞控制算法

Vg策略是调整信发送速率使得传输路径上路由器缓存少量分组。

它主要从三方面对拥塞控制基机制进行了改进;重传机制、拥塞避免机制和慢启动机制。

.新重传机制 Vg对R重传机制做了以下扩充首先Vg取并记录每次报段发送系统钟。

当 K到达Vg再次取钟并用与相应报段记录戳计算R值。

然Vg用这更精确R估值定下面两种情况下重传收到重复KVg就检测“当前相应报段发送”差值是否超值若超值发送重传报而不要等收到三重复K才做出反应所以能更及做出反应。

也避免进入这样种状态发送端永远收不到三重复K。

从而不得不依赖定器超而进行重发。

收到非重复K如这是重传收到或二确认Vg就再次检测报段发送隔是否超值若超值就重传报段这样就会知道早先重传前可能丢失其它报段而不要等待重复K到达才觉察。

.改进拥塞避免机制 Vg目标是保持络恰当数量额外数据。

显然如连接发送多额外数据会就导致拥塞连接发送少额外数据它就不能有可用带宽条件下快速增加。

Vg拥塞避免是基络额外数据估计量变化而不是基丢失报现象。

其具体实现如下 它定义了期望(x)和实际(l)吞吐量。

期望吞吐量代表没有也现络拥塞情况下连接可用带宽;实际吞吐量代表连接当前可用带宽。

收到K发送端按式计算期望和实际吞吐量差值 其br测得R值r平测得R值。

Vg定义了两阈值α(触发窗口增加)和β(触发窗口减)目是使发送端R有效地控制值以 便使实际吞吐量接近期望吞吐量。

阶段拥塞窗口变化由下式定。

Vg通以上方法控制络出现拥塞丢失率。

3.改进慢启动机制 了慢启动阶段可以检测和避免拥塞Vg做了以下改进它采用了种更谨慎方法增加窗口条链路建立每两R将窗口指数增加两 R保持不变从而可以对实际和期望速率进行有效比较。

当实际速率比期望少缓存Vg从慢启动模式变线性增加减模式。

改进有效减少了慢启动阶段报段丢失发生。

结 论 综上所述协议以其安全可靠传输特性络发展占有重要位置对其研究也有很必要。

随着高速络发展以及有线无线等多种络混合传统协议已显示出了不少弊端对其新型络代改进迫睫尤其是它拥塞控制算法改进对提高性能有很助。

随着络技术不断发展络传输速率以及传输量不断增加对趋势我们可以看出延测量将对性能产生越越影响通硬件加速提高协议性能也是值得研究方面。

致 谢 参考献 附 录 译 lb r , R, K Kv ll ll l r llr b g lv klg (K) rr l klg br l lv klg, g rvr rv ll b lv klg ll rvr ll rr ql v rv l lv rr l l r, rk r b rr, rg Rr, g , r rg r rbl vg b v vrl rr rl v rv r lv klg (K) rv l BL , X, R V r rl r g K r lr rv r R (Rq r ) g rr rr rr rl r g K gv [R96] l K [R96] b bl b rlv K K, R rr rbl ll k r r r rbl rl r rr r xr br rg l rbl r r llr lr r ll R' rr rbl r r q b K , l vr R lgr r lr, ll R g gg r , R v rr R rqrg K vrl, R rr ll K lrg br k r r r r r R lr l l b K b K, b R R r rr r k r rr , v r rvr r ll r g r rr rr r b , l rrg r k r rr vr, l q b K r b llg rg rvr r l rrg r k r rr , r rrg k g v lr b ll lvr llr vg K, l K , g K l r lr K b rvv x R g rl lgr lv klg lv rr K, r br xl k v b ll lvr r rbl rl lkg K Gv r, r v r l rr, rlg rv rg blv K r g l b rv rr rg 5 rb g rl k rr lgr , R, R, K 6 l , R, R, K r rgg r r k r r 7 r R k r l r r, g rr rbl R K r r rl r ll, 8 bl r r r lv klg, 9 gv l 基重传仿真介绍 这论我们将介绍使用选择重发(k)选项协议益处拥塞控制算法般分两类基窗口和基位率拥塞控制算法窗口控制算法是通端限制数据报传送并且不应答。

这种机制端不对发送数据进行整形它优易实现并对由限制量数据量所造成不良影响能进行控制然而基位率控制算法要对即将发送流量进行整形以防止爆发数据流出现。

这种算法优如端传输率和络匹配那么就缩减了交换机所缓存区。

许多传输协议提供选择重传选项描述快速恢复算法型实现数据发送端发生超重传仅仅重传数据包或者当三重复确认到达触发快速重传算法

单单超重传可能导致许多 数据包重传但是每次R快速重传算法启用仅仅导致数据包重传

因当多数据包从数据窗口丢失并且触发快速重传快速恢复算法问题 就会产生。

这种情况下如K选项可用发送快速恢复期就有足够信 息定重传数据包重传数据包

这档仅对不能使用选择确认(K) 选项连接适用。

没有K情况下发送快速恢复期只能得到很少信息作出重传 定。

从三重复确认发送端推断出数据包丢失了并且重传那声明了数据包

这数据发送端可能接收到另外重复确认发送端进入快速重传数据端确 认已发送附加数据包

数据包从数据窗口丢失这种情况下当发送端从对重传数据包(就是 次进入快速重传重传数据包)确认它获得条可用新信息。

如只有数据包丢失了对这重传数据包确认确认所有进入快速重传(没有重新排序 情况下)前发送数据包

但是当有多数据包丢失重传数据包确认确认些而不是所有快速重传发送数据包

我们称这包是部分确认

和许多其它建议起[95]建议快速恢复期数据发送端通推断声明 数据包丢失重传数据包方式响应部分确认

了说明使用选择重传(k)协议处我们仿真了 K 使用络仿真器。

并且 K 是 R 适当扩展。

拥塞是采用基窗口端到端算法以前主要有两种 和R。

分别对通重复应答者收到重复应答律认络发生了拥塞而R收到重复应答却认络可能是暂而不是持久拥塞R可能导致窗口出现多数据包丢失现象。

包括慢启动、拥塞避免和快速重传等几主要阶段。

随着络技术发展R算法基础上出现了 R 算法

译 lgr g rl . r l br lgr rllg rk g l g g r rg rl l ll gbk l g lv v klg rqrg rr r xr r l rg rr ll z rk g l br lgr r rlr l lgr l lr, g v, Rr r l rr r rr vl ll v b rb lr Rr lgr l r r b bq vr Rr, r rvg ll br l klg r g ( K), r r k b l rr k g r rr r xr, lg gr l lz rg .R R l r rr , b Rr r l Rvr lgr rv (“”) r gg r Rr, rb vg lr rll r gl k l Rvr r b g K rv rr gl k vg l , rg Rvr r bl k llg g R, r' bl b r g l r vrg q z) l br K r rxr, rr rk br l K , rg Rvr r “l” b br K rv, rg brv K k b rv r rk rvr r rg Rvr rrg gl k, r vl l l K v b rv, k r l K rv 3.R l R r l g k bl v rr rbl R K , R xlr l l rr b K R r l ll g R lgr r l R' r rr r ll k r l r g r r' bvr rg Rvr rl K rv klg b ll k r g r Rvr r R, rl K k Rvr b “lg” bl bk z g R, rl K k Rvr , rl K rv rg Rvr r r k l llg klg k q b l, l b rr , ll k r l r gl , R rvr rr , rrg l k r rr l ll l k r v b rr R r Rvr l ll g Rvr b klg l R K r lr l “xbr” rr r K l, “xbr” rr l r br k b r gl g K, v r' g l ll r k b R, “xbr” rr r k Rvr, k rg Rvr, r ll rr bvr R rg Rvr “xbr” rr rll l r r k r r lvg Rvr r b rv b rvr' vr r g k rg Rvr, , “xbr” , bl r r lrg br k xg Rvr l R R , lr x, K lr lgr rv br r rvrg r k l br k xg Rvr R r llr 6 l r r k r Br k xg Rvr R r llr .K K ll r [R96] r [R96], K l br K blk, r K blk rr g b rv q r blk K rqr rr rvr' rl rv g, l K blk r rl rr K blk [R96] l K v r r r K blk K r x r g rr, K r r l r K blk [R96] K r b b ( x r r), l v r r l K blk 990 “k” l r rv lr r v ll l, r r [R96] “k”l r rb r Kv ll, v, g rl lgr l r K r rvv x R' g rl, lgr r rg rg g , K l r, ll “k” r lr, l k l g r g rl lgr g K g b rlg g rl lgr K l rrv rr R bg rb r rr k, rr rvr l rr r b K l R l bvr ll k r r r 拥塞控制算法 . 指是988年加入V b提出慢启动、拥塞避免和快速重传算法3B或类似实现版。

正如R793所要采用了递增式肯定重传策略和“gbk“模型(滑动窗口算法)。

慢启动阶段拥塞窗口()随着确认到以指数方式递增(这种以K触发R机制被V称“K lkg“或“llkg“)直到到达阀值r(l r rl);进入拥塞避免阶段每隔R以线性方式递增单位。

如连续收到3重复确认不等重传定器溢出马上重传丢失报段这称快速重传;返回慢启动状态。

早期实现算法是基积极响应并通重传重发丢失数据当丢包减拥塞窗口重传丢失分组然而使用络拥塞达到方面这些算法性能很差。

参考了早期实现方法并增加些算法包括慢启动窗口以指数速增加;拥塞避免窗口以线形速增加;快速重传从丢包状态恢复而不要等待重传定器超。

还包括对往返估计量修改这参数准确估计是非常重要因它被用设置重传超定器基值外引入快速重传机制即当接受者收到几对报相应答发送方就推断已发生了丢包而没有必要等到重传定器超并且重传相应包提高了信道利用率。

.R R快速重传进入快速恢复(而不是 采用慢启动)。

V给出原因是接收方发送重复确认不仅仅味着有报段丢失了还味着有(其它)报段离开了络到达了接收方缓冲区(llkg)也就是说络“管道”空出了新位置这样可以继续发送报段(当然应该减些)。

另不进入慢启动原因是 K到达已使得发送确认“钟”得到了步。

快速重传快速恢复通常起实现 收到3重复确认令 r x(lgz); 重传丢失报段并令 r +3;3 对每K + 窗口允许话发送报段; 当确认了新数据K到达令r即进入拥塞避免状态。

R窗口报段丢失情况下会出现性能问题因引起退出快速恢复“确认了新数据K”没有确认进入快速重传丢失所有报段

其它丢失报段会使得不断执行快速重传快速恢复而和r亦会多次被减半降低了吞吐量。

R修改了快速重传快速恢复(指由三重复应答判断有包丢失仅使窗口值减半)新算法防止通信管道快速重传变空因而避免了慢启动单包丢失重填。

快速重传主要定收到重复应答数目初始门限值旦达到了门限值发送方就重传数据包使拥塞窗口减半与慢启动不R发送方用额外到达应答续包定。

发送方可用窗口发送窗口拥塞窗口值因而快速恢复发送方根据收到重复应答变动己窗口

相应地每重复应答表示有些包已被移出络并且现已到达接收方。

进入快速恢复阶段并重发数据包对应每额外重复地应答传出新包当接受到新数据地应答发送方退出快速恢复阶段并设置0。

R理想情况是窗口单包丢失R 发送方每往返多重传包但是它窗口出现多包丢失可能出现问题。

3. R R修改了 R快速恢复算法以处理窗口报段丢失出现“部分确认”(rl K它快速恢复阶段到达并且确认了新数据但它只确认了进入快速重传发送部分数据)。

这种情况下 R会退出快速恢复状态等待重传定器溢出或者 K到达但是 R并不退出快速恢复状态而是 ()重传紧接着那rl K报段()rl K确认新数据+(3)对(另建议是每)rl K复位重传定器。

R 做了变化即当多包丢弃了R等待重传定器快速恢复阶段当发送收到部分应答表征些包而不是所有包这阶段起始没有被成功传送。

R部分包通减少可用窗口拥塞窗口以使退出快速恢复。

R 部分应答包已丢失重传

R 恢复不要重传超每往返重传包直到所有数据包被传完。

R 保持快速恢复状态直到快速恢复阶段初始化被成功传送数据全被响应。

.K 前面这几种算法单包丢弃效是不错但如窗口下数据窗口下它们性能都有比较局限性。

出现了基选择应答(k)算法它较了数据包丢失问题这种算法基原理是这样K算法有称作选择域()数据段K选择域数据段KK域包含定数量K块每K块都记录了信宿端接收或缓存非连续分组。

K块多少因应用和要不而有所不。

与R相似当发送收到rxr重复K重发丢失分组并将拥塞窗口减半进入快速恢复程。

期K维护了称“”变量用估计出现络分组数。

当“”拥塞窗口发送发送新或要重发分组并将变量“”加。

发送端接收了带K选项重复K表明新分组已被接收端接收变量减。

变量使用将何发送发送哪分组有效偶。

发送端被许可发送分组依次将发送丢失列表记录分组。

如没有这样分组而接收端通报窗口又足够则发送端将发出新数据分组。

重传分组身被丢弃K用重传超探测丢失再次重传进入慢启动程确认了所有出现进入快速恢复阶段分组发送端将从快速恢复退出。

K 与 R主要区别是多数据包丢失情况下进行拥塞避免方式不。

0 次访问