免费智能真题库 > 历年试卷 > 网络规划设计师 > 2009年下半年 网络规划设计师 上午试卷 综合知识
  第17题      
  知识点:   TCP拥塞控制   TCP
  关键词:   TCP   慢启动   拥塞避免   拥塞窗口   拥塞控制   拥塞        章/节:   Internet 协议       

 
TCP使用慢启动拥塞避免机制进行拥塞控制。当前拥塞窗口大小为24,当发送节点出现超时未收到确认现象时,将采取的措施是(17)。
 
 
  A.  将慢启动阈值设为24,将拥塞窗口设为12
 
  B.  将慢启动阈值设为24,将拥塞窗口设为1
 
  C.  将慢启动阈值设为12,将拥塞窗口设为12
 
  D.  将慢启动阈值设为12,将拥塞窗口设为1
 
 
 

 
  第20题    2015年下半年  
   44%
TCP使用的流量控制协议是(19),TCP段头中指示可接收字节数的字段是(20)。
  第19题    2012年下半年  
   34%
以下关于网络控制的叙述,正确的是(19)。
  第65题    2016年下半年  
   35%
TCP使用的流量控制协议是(65)。
   知识点讲解    
   · TCP拥塞控制    · TCP
 
       TCP拥塞控制
        因特网是一种无连接、尽力服务的分组交换网,这种网络结构和服务模型与网络拥塞现象的发生密切相关。与电路交换技术相比,因特网采用的分组交换技术通过统计复用提高了链路的利用率,但是很难保证用户的服务质量。端节点在发送数据前无须建立连接,这种方式简化了网络设计,使得网络的中间节点无须保存状态信息。但是,这种无连接方式难以控制用户注入到网络中的报文数量,当用户注入网络的报文数量大于网络容量时,网络将会发生拥塞,导致网络性能下降。
        拥塞控制的基本功能是消除已经发生的拥塞,或避免拥塞的发生。目前的拥塞控制机制主要在网络的传输层实现,最典型的是TCP中的拥塞控制机制。实际上,最初的TCP协议只有流量控制机制而没有拥塞控制机制,接收方在应答报文中将自己能够接收的报文数目通知发送方,以限制发送窗口的大小。这种机制仅仅考虑了接收方的接收能力,而没有考虑网络的传输能力,因此会导致拥塞崩溃(Congestion Collapse)。1986年10月,因特网发生了第一次拥塞崩溃。那时,从LBL(Lawrence Berkeley Laboratory)到加州大学伯克利分校的数据吞吐量从32kb/s下降到40b/s。此后,拥塞控制成为计算机网络研究领域的热点问题。
               拥塞和拥塞控制
               网络拥塞是计算机网络运行过程中经常发生的一种现象,可以从不同的角度给出网络拥塞(简称拥塞)的具体定义。从拥塞的表现形式来定义,拥塞是指由于路由器中排队的报文足够多,导致缓存溢出,路由器开始丢弃报文的现象;从拥塞对网络的影响来定义,拥塞是指网络中存在过多的报文时,导致网络性能下降的现象;从拥塞产生的根本原因来定义,拥塞是指当报文到达速率大于路由器的转发速率时发生的一种现象。
               拥塞控制是指网络节点采取措施避免拥塞的发生或对已经发生的拥塞做出的响应。从拥塞控制的定义可以看出,拥塞控制机制包括两个部分:拥塞避免和拥塞控制。拥塞避免是一种“主动”机制,它的目标是使网络运行在高吞吐量、低延迟的状态,避免网络进入拥塞状态;拥塞控制是一种“响应”机制,它的功能是把网络从拥塞状态恢复出来。
               从控制理论的角度分析,因特网中的拥塞控制主要采用闭环控制的方式。一般包括3个阶段:根据网络状况检测拥塞的发生,将拥塞信息反馈到拥塞控制点,拥塞控制点根据拥塞信息进行调节以消除拥塞。根据拥塞控制算法的实现位置,可以分为链路算法和源算法。链路算法主要是在网络设备(如路由器)中执行,路由器负责检测拥塞的发生,产生拥塞反馈信息;源算法在主机中执行,主要作用是根据拥塞信息调节发送速率。其中,拥塞控制的源算法中使用最广泛的是TCP拥塞控制机制。
               对于任何一种拥塞控制机制,都需要采用特定的评价准则来衡量它们是否公平有效地分配带宽。拥塞控制机制的有效性度量指标主要包括吞吐量、利用率、效率、延迟、队列长度、有效吞吐量(Goodput)和能量(Power,吞吐量/延迟)等。
               拥塞控制的过程
               TCP拥塞控制是在20世纪80年代后期由Van Jacobson引入因特网的。为了进行拥塞控制,TCP为每条连接维持两个新变量:一个是拥塞窗口cwnd;另一个是慢启动阈值ssthresh,ssthresh被用来确定是进入慢启动阶段还是进入拥塞避免阶段,一般将ssthresh的初始值设定为通告窗口值。
               引入拥塞窗口cwnd后,TCP发送方的最大发送窗口修改为“允许发送方发送的最大数据量为当前拥塞窗口和通告窗口的极小值”。这样,TCP的有关窗口变量修改为:
               MaxWindow=MIN(cwnd,rwnd)
               EffectiveWindow=MaxWindow-(LastByteSent-LastByteAcked)
               也就是说,在有效窗口(EffectiveWindow)的计算中用最大窗口(MaxWindow)代替了通告窗口。这样,TCP发送方发送报文的速率就不会超过网络或目的节点可接受的速率中的较小值。
               TCP拥塞控制主要根据网络拥塞状况调节拥塞窗口(cwnd)的大小,其机制主要有慢启动、拥塞避免、快速重传和快速恢复,而且这4个机制共同发挥作用以实现TCP拥塞控制。下面先分别介绍这4个机制,然后再通过一个实例来说明这4个机制是如何共同发挥作用的。
                      慢启动和拥塞避免
                      慢启动(Slow Start)是指TCP刚建立连接时将拥塞窗口cwnd设为1个报文大小,然后以指数方式放大拥塞窗口,直到拥塞窗口等于慢启动阈值ssthresh。
                      具体来说,TCP开始将拥塞窗口设为1个报文大小,然后TCP发送1个报文;如果发送方TCP收到接收方TCP返回的ACK报文,TCP将拥塞窗口设为2个报文大小,然后TCP发送2个报文;如果发送方TCP又收到接收方返回的2个ACK报文(或1个累计确认报文),则TCP将拥塞窗口设为4个报文大小,直到拥塞窗口cwnd大于等于慢启动阈值ssthresh,然后进入拥塞避免阶段,如下图所示。
                      
                      慢启动阶段
                      进入拥塞避免阶段,TCP采用线性增加(Additive Increase,AI)方式放大拥塞窗口,即发送方TCP每收到一个ACK确认报文,TCP将拥塞窗口cwind增加1个报文大小,如下图所示。
                      
                      拥塞避免阶段
                      不管是在慢启动阶段还是在拥塞避免阶段,如果发生超时重传,则必须回到慢启动阶段,即此时拥塞窗口cwnd必须从1重新开始,而慢启动阈值ssthresh设置为上一次拥塞窗口值cwnd的一半。注意,以后每发生一次超时,慢启动阈值ssthresh就减半,这就表明,慢启动阈值ssthresh是按照指数规律减小的,这就是乘倍减小(Multiplicative Decrease,MD)。
                      在实际应用中,TCP不会等待整个拥塞窗口值的报文都得到确认后才给拥塞窗口加1个报文长度的值,而是每收到一个确认报文就逐渐增大拥塞窗口。具体地说,TCP每收到一个确认报文后,就将拥塞窗口按照下面的公式增大:
                      Increnment=MSS×(MSS/cwnd)
                      cwnd=cwnd+Increment
                      也就是说,TCP不是在每个RTT时间内将拥塞窗口增加整个MSS值,而是每收到一个确认报文,就将拥塞窗口增加MSS的一部分(即上面公式中的Increment)。
                      快速重传和快速恢复
                      在TCP中,当TCP报文不能按序到达接收方TCP时,接收方TCP就会产生一个重复ACK返回给发送方;发送方收到一个重复ACK后,还不能确定是由于TCP报文丢失还是TCP报文乱序。如果发送方TCP收到3个重复ACK,则意味着是某个TCP报文丢失了,此时发送方TCP不必等待该报文超时,而是立即重传该报文,这就是快速重传。快速重传避免了让发送方TCP必须等待超时后才重传丢失的报文。下图给出了快速重传示意图。
                      
                      快速重传示意图
                      在上图中,当发送方TCP连续收到3个重复的ACK:301时,发送方TCP立即重传序号为301~400的报文段,而不必等到超时,这就是快速重传。同时,发送方TCP会将拥塞窗口减半以及重传定时器宽度加倍。
                      但是快速重传之后,发送方TCP不是进入慢启动阶段,而是进入拥塞避免阶段,这就是快速恢复的意思。理由是重复ACK的出现不仅意味着某个报文的丢失,而且意味着在丢失的报文之后还接收到其后的报文,即网络上仍然可以传输报文,发送方TCP认为网络拥塞还不是非常严重,如果这个时候进入慢启动阶段,有点保守,而是应该进入拥塞避免阶段。
                      下图给出了拥塞避免、慢启动、快速重传及快速恢复4种机制组合在一起的TCP拥塞控制。
                      
                      TCP拥塞控制
                      下图给出了一个实际的TCP拥塞控制实例,假定最大拥塞窗口值是32个报文段,则慢启动阈值ssthresh等于16(最大窗口值的一半)。TCP连接刚刚建立时进入慢启动过程,拥塞窗口cwnd从1指数增长到2,到4,到8,直到16(这里假设重传定时器不发生超时);然后进入拥塞避免阶段,这时,拥塞窗口cwnd从16,到17,到18,到19,一直到20(加法增大)。此时,发生重传定时器超时现象,发送方首先将慢启动阈值ssthresh设为当前拥塞窗口cwnd的一半(乘法减小),即等于10,然后进入慢启动过程,即拥塞窗口cwnd又从1开始,接着指数增长到2,到4,到8,直到10,最后进入拥塞避免阶段,开始线性增加到11,到12。此时,连续收到3个重复ACK,于是进行快速重传,之后直接进入拥塞避免阶段而不是慢启动阶段。
                      
                      TCP拥塞控制实例
                      在过去的十几年时间里,TCP拥塞控制经过不断的改进,性能逐渐得到完善,先后提出了多个TCP协议的实现版本。TCP Tahoe是TCP最早的版本,包含了3个最基本的拥塞控制机制:慢启动、拥塞避免、快速重传。TCP Reno在TCP Tahoe的基础上增加了快速恢复机制。TCP NewReno和TCP SACK都考虑了一个发送窗口内有多个报文丢失的情况,TCP NewReno对Reno中的快速恢复算法进行了补充,只有当所有报文都被应答后才退出快速恢复状态;TCP SACK采用“选择性重传”策略。所谓选择性重传是指当接收方发现报文乱序到达接收方时,接收方通过选择性应答策略通知发送方立即发送丢失的报文,而不需要等到发送方超时重传。
 
       TCP
        TCP是面向连接的通信协议,通过三次握手建立连接,通信完成时要拆除连接,由于TCP是面向连接的,所以只能用于端到端的通信。
        TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口,实际表示接收能力,用以限制发送方的发送速度。
        如果IP数据包中有已经封装好的TCP数据包,那么IP将把它们向“上”传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路之间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包则可以被重传。
        TCP将它的信息发送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层、设备驱动程序和物理介质,最后传送到接收方。
        面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。
   题号导航      2009年下半年 网络规划设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第17题    在手机中做本题