fast-tcp-ns2-v1_1b

所属分类:网络
开发工具:Unix_Linux
文件大小:30KB
下载次数:620
上传日期:2007-03-30 10:02:27
上 传 者albigenses
说明:  这是一个基于NS2的仿真实现代码,这些内容基本上就是我上研究生时发表文章的代码,呵呵,他给我带来了不少好处。
(This is a simulation based on the realization of NS2 code These are basically when I graduate, published an article code, what he has brought me many benefits.)

文件列表:
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\do_test1 (40, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\do_test2 (42, 2005-05-01)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\do_test3 (40, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\do_test4 (40, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\do_test5 (40, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\do_test6 (40, 2005-05-02)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\do_test7 (40, 2005-05-02)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\do_test_all (119, 2005-05-02)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test1-extract (234, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test1-plot.gp (1511, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\tcp-fast-defaults.tcl (808, 2005-06-23)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test1.tcl (3561, 2007-03-26)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test2-extract (301, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\get_src.pl (91, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test2-plot.gp (2119, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test2.tcl (4554, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test3-extract (234, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test3-plot.gp (1511, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test3.tcl (3951, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test4-extract (234, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test4-plot.gp (1281, 2005-06-16)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test4.tcl (3407, 2005-06-16)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test5-extract (66, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test5-plot.gp (907, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test5.tcl (3491, 2005-04-29)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test6-extract (100, 2005-05-02)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test6-plot.gp (837, 2005-05-02)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test6.tcl (3617, 2005-05-02)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test7-extract (100, 2005-05-02)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test7-plot.gp (846, 2005-06-21)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\fast-test7.tcl (3771, 2005-06-22)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\tcp-fast.cc (28516, 2005-06-21)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\tcp-fast.h (5682, 2005-06-21)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b\verify-cwnd-positive.tcl (4116, 2005-06-21)
fast-tcp-ns2-v1_1b\fast-tcp-ns2-v1_1b (0, 2005-06-23)
fast-tcp-ns2-v1_1b (0, 2006-11-29)

Documentation of TCP Fast for NS2 (version 1.1b) Revision history Version 1.1b, 23 June, 2005: Based on TCP Fast for NS2 version 1.1a, the following bugs have been fixed: 1. fast_pace always incremented cwnd_ by one. This bug came from acks_per_rtt never being updated. It is now updated in fast_cc. 2. Packet loss could cause cwnd_ <= 0 This bug occurred if t_seqno > tcph->seqno() in recv(), which occurred when an ACK was received beyond the end of the current transmit window. This can occur when an the window size has been reduced after a packet loss. The fix can be tested by defining FASTTCPAGENT_DEBUG in tcp-fast.h and running the script verify-cwnd-positive.tcl from the full archive. Defining FASTTCPAGENT_DEBUG causes a message to be printed whenever cwnd < 0. Besides the fixes, the following new features have been added: 1. The "multiplicative increase" threshold is now tunable. In order to achive fast convergence on high bandwidth-delay product networks, FAST uses multiplicative increase (MI) when the observed queueing delay is very small. The new TCL variable mi_threshold_ specifies the delay (in milliseconds) below which MI is used. The default value is 0.01ms. Setting mi_threshold_ to small may result in slow convergence, but setting it too high may result in instability. We recommend the heuristic of setting mi_threshold_ less than one fifth of the target queueing delay (alpha divided by the bottleneck link capacity in packets per second). For example, if alpha is 10 packets each of 8000 bits and the capacity is 100Mbps, then the target queuing delay is 0.8ms. In this case, mi_threshold_ should less than 0.16ms. The value of mi_threshold_ can be changed during a simulation. This variable is tested in simulation 6 of the full archive. 2. There is the option to update cwnd every other round trip time. This module is based on the Infocom 2004 paper, Cheng, Wei, Low, "Fast TCP: Motivation, Algorithm and Performance". That paper states that cwnd_ is updated every other RTT. That means that if cwnd_ is updated during one RTT, it is frozen in the following RTT. This was an experimental feature, seeking to allow stable estimates to be made. However, it does not seem to be the optimal setting, and in some cases can cause FAST to become unstable. If the macro UPDATE_CWND_EVERY_OTHER_RTT is defined in tcp-fast.cc then the behaviour of the Infocom paper is implemented. 3. Use three different ways to calculate cwnd_: To allow experimentation into the effect of roundoff on the FAST update rule, the variable cwnd_ can be calculated in one of three different ways, controlled by the TCL variable high_accuracy_cwnd_. If high_accuracy_cwnd_ == 0, then cwnd_ is calculated using simple integer arithmetic. If high_accuracy_cwnd_ == 1, then cwnd_ is calculated using integer arithmetic, but considering remainders. If the cwnd_ value calculated in fast_calc_cwnd is consistently greater than the integer value returned by that function, the remainders accumulate and cwnd_ is eventually increased. If high_accuracy_cwnd_ == 2, then cwnd_ is calculated using double precision arithmetic. Even though the actual congestion window must be an integer number of packets, using fractional arithmetic in the calculations allows the queue occupancy to be kept closer to the target value. This new variable is tested in simulation 7 of the full archive. (When interpreting the output of this simulation, note that ns2 does not include the packet currently being transmitted as part of the queue. Thus, a single flow with alpha=10 should yield a queue size of 9.)

近期下载者

相关文件


收藏者