实验二、TCP NewReno与SACK 运行机制对比分析
实验目的:
学习TCP的拥塞控制机制并了解TCP NewReno和TCP SACK协议的运行机制以及它们各自的特点。
实验环境:
Ubuntu+NS2 2.35
实验内容:
分别作出Reno、NewReno、SACK这3个TCP版本的仿真图,并根据图形对它们的运行机制进行对比分析。
实验步骤:
接下来的实验要观察Reno、NewReno、SACK这3个TCP版本
1.仿真实验的网络结构图:
实验网络拓扑结构和链路参数配置(FTP代表端施加恒定的流CBR)
2.TCL程序代码(参见附录lab12.tcl)
3.执行方法和结果($为shell的提示符号)
3.1观察Reno版本的congestion window的变化情况:
Tahoe算法是TCP的早期版本。它的核心思想是:让cwnd以指数增长方式迅速逼进可用信道容量,然后慢慢接近均衡。Tahoe包括3个基本的拥塞控制算法:“慢启动”、“拥塞避免”和“快速重传”。
(1)慢启动:避免了连接建立时突发数据流对网络的冲击。
初始设置cwnd为1,并按指数型方式增长,直至cwnd超过ssthresh。
当cwnd>=ssthresh时,Tahoe进入拥塞避免阶段。
(2)拥塞避免:限制传输过程中无限制的速率增长,避免由此可能导致的拥塞。
cwnd以线性方式增长。
如果发生超时或者连续收到3个重复ACK,Tahoe认为发生了拥塞。
对于超时,置ssthresh为当前拥塞窗口的一半,cwnd=1,转入慢启动。
如果收到3个连续ACK,则Tahoe进入快速重传阶段。
(3)快速重传:根据3个重复的应答报文来判断丢包,减少了超时重传的发生,加快了源端对拥塞的响应,使得拥塞能快速消除。立即重传丢失的分组,同时置ssthresh为当前拥塞窗口的一半,cwnd=1,转入慢启动。
Tahoe算法存在着不足之处:在收到3个重复ACK或在超时的情况下,Tahoe置cwnd为