2009/10/19
NS-2 TCP実装

環境
・NS-2.34-allinone

手順
・http://netlab.caltech.edu/projects/ns2tcplinux/ns2linux/tutorial/tutorial/tcp_naivereno.cのソースをダウンロード
・サンプルのソースを"ns-2.34/tcp/linux"ディレクトリにコピー
・"ns-2.34/Makefile"中の"OBJ_CC = \"以下に,"tcp_naivereno.o"があることを確認
・"ns-2.34"ディレクトリでmake
・tclファイルでは$ns at 0 "$tcp select_ca naive_reno"を記述
・ns hogehoge.tcl


自分でTCPを作った場合の手順
・TCPソース中に下のコードを記述(nameの値がselect_caで用いられる)

static struct tcp_congestion_ops YourCongestionControlStructure {
.name = "mytest1"
.ssthresh = tcp_mytest1_ssthresh,
.cong_avoid = tcp_mytest1_cong_avoid,
.min_cwnd = _mytest1_min_cwnd
}

・tclファイルでは$ns at 0 "$tcp select_ca mytest1"を記述
・"ns-2.34/Makefile"中の"OBJ_CC = \"以下に,"tcp/linux/tcp_mytest1.o"を記述
・"ns-2.34"ディレクトリでmake
・ns hogehoge.tcl

http://netlab.caltech.edu/projects/ns2tcplinux/ns2linux/tutorial/#selectca
上記ページの訳
このプロセスでは新しい服装制御方式を実装する.
1.データ構造とインターフェースと輻輳制御インタフェースを理解して.
2.輻輳制御方式に名前を付けて.--この名前はselect_caコマンドで使われる.
3.少なくとも3つの輻輳制御関数(cong_avoid, ssthresh, and min_cwnd)が輻輳制御インタフェースには必要だよ.
4.コンスタントなstruct,"struct tcp_congestion_ops YourCongestionControlStructure {...}"を,cong_avoid, ssthresh, min_cwnd に名前を入れて作る.
5.ヘッダファイル"linux-linux-util.h" and "ns-linux-c.h"をインクルードする.
6.(mytcpfile.c)みたいな自分のファイルを,"tcp/linux/"ディレクトリにコピーしておく.
7.Makefileに,"tcp/linux/mytcpfile.o"のエントリを追加して,コンパイラが自分のファイルをコンパイルするようにさせる.
8.コンパイルして実行してシミュレーションの結果をチェックする.

The process to implement a new (and simple) congestion control algorithm
1.Understand the data structure interface and congestion control interface
2.Give a name for your congestion control algorithm -- this name will be used in the "select_ca" command.
3.Implement at least the three required congestion control functions (cong_avoid, ssthresh, and min_cwnd) in the congestion control interface
4.Create a constant struct struct tcp_congestion_ops YourCongestionControlStructure {...} with the name, cong_avoid, ssthresh, and min_cwnd (and/or o
ther congetion implemented functions) filled

5.Include two header files: "linux-linux-util.h" and "ns-linux-c.h".
6.copy your file (mytcpfile.c) to tcp/linux/ directory
7.Add an entry in Makefile: tcp/linux/mytcpfile.o to let the compiler knows to compile your file
8.compile, run and check the simulation results

参考
http://netlab.caltech.edu/projects/ns2tcplinux/ns2linux/tutorial



0 コメント | コメントを書く
Template Design: © 2007 Envy Inc.