路由器为什么需要200ms报文缓存能力

上传人:kms****20 文档编号:37630724 上传时间:2018-04-20 格式:DOC 页数:11 大小:424KB
返回 下载 相关 举报
路由器为什么需要200ms报文缓存能力_第1页
第1页 / 共11页
路由器为什么需要200ms报文缓存能力_第2页
第2页 / 共11页
路由器为什么需要200ms报文缓存能力_第3页
第3页 / 共11页
路由器为什么需要200ms报文缓存能力_第4页
第4页 / 共11页
路由器为什么需要200ms报文缓存能力_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《路由器为什么需要200ms报文缓存能力》由会员分享,可在线阅读,更多相关《路由器为什么需要200ms报文缓存能力(11页珍藏版)》请在金锄头文库上搜索。

1、WHY 200ms?1. 前言前言一般情况下互联网上 RTT 时间为 200ms,如果路由器不能缓存 200ms 的报文,则容易 引起丢包,从而引起 TCP 重传,再加上 TCP 的窗口机制,会导致 TCP 连接效率大幅度下 降。因此,200ms 缓存能力是高端路由器的最基本要求。 业界高端路由器都宣称支持 200ms 的报文缓存能力,如: Cisco 7600/12000 的高级板卡 SIP400/600 和 ES20(其它类型板卡不支持) Juniper M/T 系列路由器全系列单板 Alcatel 7750 路由器全系列单板 华为 NE40E/NE80E 的高级板卡 A 类单板(NE40

2、/NE80 全系列和 B 类单板不支持)H3C SR8800 路由器全系列单板 200ms 报文缓存已经成为高端路由器必须具备的能力,本文从网络应用的角度来阐述 为什么要求 200ms 报文缓存。2. 网络基本模型与基本原则网络基本模型与基本原则我们首先看一个通常的 IP 端到端简化模型,如下图。CRouterSourceDestination2TC1图1 IP端到端简化模型C1 是本地局域网到路由器的带宽,C 是广域网出口带宽,很明显,C1 的带宽远远大于 C,出口带宽 C 上会存在拥塞的可能。广域网带宽是很昂贵的,因为费用问题,我们租用 的出口线路带宽总是不够。因此,无论从用户使用还是网络

3、设计角度,我们需要做的事情我们需要做的事情 就是最大限度使得出口带宽保持就是最大限度使得出口带宽保持 100%的利用,这是我们考虑问题的基本原则。的利用,这是我们考虑问题的基本原则。毫无疑问, 此时通信性能和效率可以达到最高,也就是使得出口线路上不出现空闲的情况,使得用户 花的每一分钱都物有所值。图2 缓存的主要目的使出端口足够繁忙,带宽得到100%的利用要做到这一点,就要求中间的路由器出口上具有一定的缓存能力,这就是那个著名的 计算公式: BufferRTTBW(RTT 为报文往返时间,BW 即带宽 C)即:线卡缓存等于带宽乘以报文在网络上的往返时间。另外,IP 流量具有瞬间流量突发特点,也

4、容易导致出口拥塞,为保证 QoS 和减少出口 拥塞丢包,也需要线卡有足够的缓存用于队列和调度: 保证高优先级流量先通过,不丢包,降低时延和抖动 缓存低优先级报文,保证少丢包图3 缓存减少了报文的丢失目前,互联网上 RTT 一般是 200ms 左右,这要求高端路由器的线卡至少能够缓存 200ms 的报文,保证 QoS,避免端口拥塞,确保出口链路 100%的利用率,发挥网络最高性 能。3. TCP 的几个典型阶段与概念的几个典型阶段与概念据统计,目前网络上的流量主要是 TCP 流量。因此,为了深入了解缓存对于路由器设 备的重要性,我们必须充分理解 TCP 的基本原理。 TCP 与它的姊妹协议 UD

5、P 不同,TCP 是基于连接的,需要维持连接状态和控制数据 传输速率以最大程度发挥传输链路上的会话性能。TCP 通信有以下几个典型阶段:1慢启动阶段 原有的 TCP 协议在启动一个连接时会向网络发送许多数据包,由于一些路由器必须对 数据包进行排队,因此有可能耗尽存储空间,从而导致 TCP 连接的吞吐量(throughput) 急剧下降,避免这种情况发生的算法就是慢启动。当建立新的 TCP 连接时,TCP 发送窗口 被初始化为一个数据包大小(一个数据包缺省值为 536 或 512byte) 。源端按窗口大小发送 数据,每收到一个 ACK 确认,发送窗口就成倍增加数据包发送量。显然,窗口大小的增

6、长将随 RTT 呈指数级增长:1 个、2 个、4 个、8 个,源端向网络中发送的数据量将急 剧增加。 2拥塞避免阶段 当发现超时或收到 3 个相同的 ACK 确认帧时,网络即发生拥塞(这一假定是基于由 传输引起的数据包损坏和丢失的概率小于 1%)。此时,就进入拥塞避免阶段,慢启动阈值 被设置为当前发送窗口的一半,发送窗口被置为 1。如果发送窗口慢启动阈值,则 TCP 重 新进入慢启动过程;如果发送窗口慢启动阈值,则 TCP 执行拥塞避免算法,发送窗口在每 次收到一个 ACK 时只增加 1 个数据包(这里将数据包大小假定为 1) 。 3快速重传和恢复阶段 进入慢启动会导致过大地减小发送窗口尺寸,

7、降低 TCP 连接的吞吐量。因此,快速重 传和恢复就是在源端收到 3 个或 3 个以上重复 ACK 时,就断定数据包已经被丢失,并重 传数据包,同时将慢启动阈值设置为当前发送窗口的一半,而不必等到 RTO 超时。 TCP 这种拥塞控制算法使得网络上的通信流量呈现典型的锯齿波形。SourceDestmaxW2maxWtWindow size图4 TCP锯齿流量波形示意TCP 拥塞控制机制使得拥塞控制机制使得 TCP 流量趋向于尽量占用最大的带宽流量趋向于尽量占用最大的带宽,这是通过调节发送端口 来实现的。如果报文被丢弃,TCP 发送窗口会减少,所以发送速率会降低,以适配端到端 会话可用的链路带宽

8、,通过慢启动机制恢复会话吞吐量。为了在突发流量情况下发生拥塞 时,最大程度发挥链路传输效率,路由器就必须具备缓存足够的流量能力。因此,相当于 有效 RTT 实际上被延长到了包即将丢弃的最合适时间。 当 TCP 达到它的最大窗口,这是源于可用带宽乘以 RTT 得到的反馈(BWRTT) ,这 个值决定了源需要多长的时间从接收端收到 ACK 响应,当一个报文丢失了是因为网络拥 塞的原因,发生端是不会知道的,并且不会马上重新发送,而要等待发送 BWRTT 数量 的报文(即路由器缓存的深度)以后。 这就意味着,TCP 数据吞吐量和速率是基于端到端路径上报文可以被发送的数量除以线路传输延迟。如果端到端路径

9、上路由器缓存小于传输延迟乘以带宽(DelayBW) ,此时 在收到 ACK 响应前,任何报文都发送不出去,所以中间路由器,必须拥有 RTTBW 的 缓存,以优化数据传输性能。 TCP 吞吐量会按公式下降 1/ (1+2pw),P,报文丢失概率,W 带宽乘以延时。 这意味着链路带宽和为了达到最高性能以免报文丢失所需要的缓存大小之间有一个直 接的联系。上面的通信过程很枯燥,也很乏味,我们下面结合图形分析路由器线卡缓存在 TCP 通 信过程中起的作用。4. TCP 通信过程与缓存、带宽利用率关系深入分析通信过程与缓存、带宽利用率关系深入分析TCP 通信初始阶段,如上图所示,左侧圆为发送端,右侧圆为接

10、收端,中间为带有缓 存(缓存大小带宽报文往返时间)的路由器。下面的箭头表示数据从发送端到接收端, 上面箭头表示 ACK 响应从接收端到发送端。图中下面的坐标表示发送端的发送窗口随时间变化的情形。当一个 TCP 会话启动时,它首先按慢速启动模式,在第一个报文发送以后,开始等待 接收端的 ACK 回应,ACK 回应的时间就是报文往返时间,我们一般称为一个 RTT(报文 往返时间) 。然后 TCP 马上发送两个报文(即上一次发送数量的两倍) ,然后等待接收端的 回应,这个回应时间同样是 RTT,然后下一次是发送 4 个、再下一次 8 个报文等,即当收 到接收端的 ACK 响应后,下一次发送报文数量按

11、指数方式进行增长,也就是 1、2、4、8、16 等。这种每次收到 ACK 响应双倍于上次发送数量的发送机制受限于发送 和接收端之间传输路径带宽。此时缓存中基本上是空的,处于待注入阶段。带宽没有得到 充分利用。当发送速率超过线路出口带宽时,此时线路利用率达到 100,缓存开始被用于缓冲 发送数据,在缓存不断被注入期间,带宽利用率保持 100%。这种慢速启动模式会一直进行,发送速率一直增长,缓存输入速率大于输出速率,缓 存一直处于增长阶段,直到报文开始丢弃。终于缓存被注满,再也没有空间来缓存无法从出口发送出去的报文了,开始出现丢包。 报文丢弃可以有各种各样的原因,但是最主要是由于链路拥塞发生,即过

12、大的流量争用有 限的 WAN 链路带宽。此时带宽利用率保持 100%。当出现丢包时,发送端并不会马上知道,它需要等待接收端的 ACK 回应。丢失的包 信息随着缓存消耗慢慢前移,终于到达接收端。此时带宽利用率保持 100%。接收端终于发现有发送过程中有报文丢失,于是发送相关信息到接收端(即对丢失报 文序号重传的 ACK) ,此时发送端在收到 Drop 信息前,仍然按原来速率发送报文。此时带 宽利用率保持 100%。终于发送端收到了 drop 消息,于是根据 TCP 拥塞控制机制,将发送窗口减少到原来 的一半,重发刚才丢失的报文,等待接收端对报文的回应,显然,因为缓存的关系,此报 文位于队列的最后

13、端,接收端收到重发的报文需要等到缓存的报文全部发送完毕。路由器缓存输出大于输入,缓存开始减少。此时带宽利用率保持 100%。因为缓存的输入小于输出,原来缓存的数据会发送完毕,此时接收端终于收到发送端 重发的报文,于是向发送端发送 ACK 回应,于是此时按照 TCP 拥塞控制机制,发送窗口 又开始增长。此时带宽利用率保持 100%。慢慢地的发送的速率超过了接口带宽,缓存的输入大于输出,报文又开始在缓存中存 储。此时带宽利用率保持 100%。周而复始,当缓存满了以后,又开始出现丢包,发送窗口到达最大值。此时带宽利用 率保持 100%。丢失报文信息经过缓存,到达接收端,接收端向发送端发送 ACK(d

14、rop)消息。此时 带宽利用率保持 100%。发送端调节发送窗口为原来的一半,重发丢失报文,等待重发报文的 ACK 消息。缓 存输入小于输出,缓存减少。此时带宽利用率保持为 100%。当缓存发送完毕,重发的报文终于被接收端收到,此时接收端向发送端发送 ACK 消 息。发送端收到以后,重新开始逐步加大发送窗口的大小,开始一个新的过程。此时带宽 利用率保持 100%。发送端收到 ACK 响应,又重新开始一个新的窗口增加过程。带宽利用率一直保持为 100%。综上所述,路由器线卡缓存的目的就是为了适应 TCP 拥塞控制机制,使得昂贵的广域 网端口能够保持在最繁忙的状态,使端到端的通信性能达到最高。为了

15、使出口线路得到最大程度的利用,对路由器缓存的要求就是:缓存缓存RTT出口带宽出口带宽也就是说,路由器线卡必须能缓存 RTT 的时间,在互联网,RTT 一般为 200ms,所以, 高端路由器必须拥有 200ms 的缓存。我们可以用下面几个简单的仿真图形说明带宽利用率与缓存容量的关系:当路由器拥有足够的缓存时(bufferRTT带宽 C)时,我们可以看到 TCP 流量呈 现典型的锯齿形,出口链路带宽利用率保持在后续主要通信阶段一直保持 100%水平。路 由器的缓存利用率也是锯齿形状,且基本与 TCP 流量保持对应。当路由器拥有缓存不够时时(buffer RTT带宽 C)时,我们可以看到 TCP 流

16、量也 是呈现典型的锯齿形,但是出口链路带宽利用率不能一直保持 100%水平。路由器的缓存 利用率为近似锯齿形状,但有一段时间处于饥饿状态,等待缓存注入,就是这段时间,链 路的利用率没有达到 100%。5. 综述综述TCP 拥塞控制机制趋向于占用最大的带宽,确保路由器出口带宽能够得到最大的利用 率,发挥最大的通信性能。因此,要求中间的路由器必须具有足够的缓存,根据理论计算 和实际经验,要求路由器能够缓存一个报文在网络上缓存的时间,实际缓存容量大小就是 出口带宽乘以往返时间:bufferRTTBW。根据一般的经验值,互联网上的 RTT 的典型 值是 200ms,要求高端路由器的线卡缓存必须达到 200ms,这是对高端路由器的基本要求。缓存的报文需要在端到端路径上传输,而不仅仅在运营商边缘网络上。但是,边缘网 络是对报文缓存要求最苛刻的点,因为速率不匹配的缘故,边缘网络拥塞现象很严重,上 行链路往往收敛很厉害,如许多 GE 线路汇聚到一个 155M 端口上,在 MAN 与 WAN 互联 时,这种情况很典

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号