Hướng phát triển

Một phần của tài liệu Mô phỏng mạng chuyển mạch quang chùm (optical burst switching) (Trang 113 - 128)

Đề tài có thểđược phát triển bằng việc tiếp tục hoàn thiện những hạn chế của relative-QoS và nghiên cứu absolute-QoS. Qua đó, ta có thể kết hợp relative-QoS và absolute-QoS để hoàn thiện hệ thống mạng OBS và tiến đến xây dựng chuyển mạch quang gói.

Ngoài ra hoàn thiện hệ thống chuyển mạch quang chùm OBS mở ra một hướng mới, kết hợp OBS với MPLS xây dựng hệ thống mạng OBS over MPLS làm nền tảng cho hệ thống mạng trong tương lai.

.

PH LC A: HƯỚNG DN CÀI ĐẶT PHN MM NS-2

Chuẩn bị [15,16,17, 18]

B1 : Download gói ns-allinone-2.28 từ trang web http://www.isi.edu/nsnam/ns/. Ns-allinone-2.28 bao gồm các gói sau:

cweb gt-itm nam-1.11 ns-2.28 otcl-1.9 sgb tcl8.4 tclcl-1.16 tk8.4 xgraph-1.1 zlib-1.1 install install.win readme install

B2 : Cài đặt ns-2 trên CentOS cần những gói sau : autoconf automake gcc-c++ libx11-devel xorg-x11-proto-devel libxt-devel libxmu-devel

Ngoài ra còn cần một số Development Tools cài đặt bằng lệnh: Yum –y groupinstall ‘Development Tools’

Cài đặt

Trong bài này hướng dẫn cách cài đặt bằng một gói phần mềm duy nhất.Đầu tiên phải login với quyền root, sau đó thực hiện những bước như sau:

Chuyển đến thư mục chứa gói ns-2 thực hiện lệnh giải nén tar -xvzf ns-allinone-2.28.tar.gz Chuyển đến thư mục ns-allinone-2.28 cd /{đường dẫn chứa thư mục ns-allinone-2.28}/ns-allinone-2.28 Chạy lệnh script ./install

Nếu cài đặt thành công sẽ có những vị trí được cài đặt như sau:

Tcl8.4.5 {đường dẫn đến thư mục ns-allinone-2.28}/{bin, include,lib} Tk8.4.5 {đường dẫn đến thư mục ns-allinone-2.28}/{bin, include, lib} Otcl {đường dẫn đến thư mục ns-allinone-2.28}/otcl-1.9

Tclcl {đường dẫn đến thư mục ns-allinone-2.28}/tclcl-1.16 Ns {đường dẫn đến thư mục ns-allinone-2.28}/ns-2.28/ns Nam {đường dẫn đến thư mục ns-allinone-2.28}/nam-1.11/nam Xgraph {đường dẫn đến thư mục ns-allinone-2.28}/xgraph-12.1 Chuyển đến thư mục gốc

cd ~

Thay đổi biến môi trường trong thư mục ~/.bashrc #LD_LIBRARY_PATH

OTCL_LIB={đường dẫn đến thư mục}/ns-allinone-2.28/otcl-1.9 NS2_LIB={đường dẫn đến thư mục}/ns-allinone-2.28/lib X11_LIB=/usr/X11R6/lib

USR_LOCAL_LIB=/usr/local/lib export

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_L IB:$USR_LOCAL_LIB

#TCL_LIBRARY

TCL_LIB={đường dẫn đến thư mục} /ns-allinone-2.28/tcl8.4.5/library USR_LIB=/usr/lib

export TCL_LIBRARY=$TCL_LIB:$USR_LIB #PATH

XGRAPH={đường dẫn đến thư mục}/ns-allinone-2.28/bin:{đường dẫn đến thư

mục}/ns-allinone-2.28/tcl8.4.5/unix:{đường dẫn đến thư mục}/ns-allinone- 2.28/tk8.4.5/unix

NS={đường dẫn đến thư mục}/ns-allinone-2.28/ns-2.28/ NAM={đường dẫn đến thư mục}/ns-allinone-2.28/nam-1.11/ PATH=$PATH:$XGRAPH:$NS:$NAM

6. Chuyển đến thư mục cd ns-2.28/

7. Kiểm tra lại việc cài đặt bằng lệnh (khoảng 30 phút) ./validate

8. Cuối cùng thực hiện lệnh sau: để có thể sử dụng lệnh ns ở tất cả các vị trí cp /{đường dẫn đến thư mục ns-allinone-2.28}/ns-allinone-2.31/bin/* /usr/sbin/

Hình sau biểu diễn kiến trúc thư mục NS-2 và NAM trong môi trường Linux. NS-2 và NAM đều là các thư mục con của ns-allinone-2.30. NS-2 bao gồm các thực thi mô phỏng (bằng mã C++ và mã OTcl), các kịch bản Otcl kiểm tra tính hiệu lực và các kịch bản OTcl minh họa.

Hình A.1 Kiến trúc thư mc cài đặt ca NS-2 và NAM trong môi trường Linux TK8.4.5 OTcl tclcl Tcl8.4.5 ns-2.28 nam-1.19 tcl ex test lib ... ... Các ví dụ Các kiểm tra Mã C++ Mã OTcl ns-allinone-2.28 mcast

PH LC B: HƯỚNG DN CÀI ĐẶT PHN MM MÔ

PHNG OBS4NS

[19,5] Chuyển đến thư mục cài đặt phần mềm OBS4NS: cd {đường dẫn đến thư mục}/ns-allinone-2.28/ns-2.28/ Giải nén gói obs4ns-3.4.taz.gz bằng lệnh:

tar xvzf obs4ns-3.4.tar.gz

Sau đó thực hiện các bước khởi tạo biến và compile kernel như sau: Bước 1:

Thêm vào file {đường dẫn đến thư mục}/ns-2.28/common/packet.h hai gói mới để mô phỏng gói quang là PT_OBS_BHP và PT_OBS_DB.

enum packet_t { PT_TCP, PT_UDP, ... PT_OBS_BHP, PT_OBS_DB,

// insert new packet types here

PT_NTYPE // This MUST be the LAST one }; p_info() { name_[PT_TCP]= "tcp"; name_[PT_UDP]= "udp"; ... name_[PT_OBS_BHP]= "OBS_BHP"; name_[PT_OBS_DB]= "OBS_DB"; name_[PT_NTYPE]= "undefined"; } Bước 2:

foreach prot { AODV ARP .... MIP OBS_BHP OBS_DB Ping .... } Bước 3:

Thay đổi file “Makefile”:

OBS_PATH = ../../ns4obs-3.4 // Đặt dường dẫn đến thư mục OBJ_CC = \ ... $(OBS_PATH)/cpp/arch/typeswitch.o \ $(OBS_PATH)/cpp/arch/CoSclassifier.o \ $(OBS_PATH)/cpp/arch/OBSlink.o \ $(OBS_PATH)/cpp/arch/OBSswitch.o \ $(OBS_PATH)/cpp/arch/OXC.o \ $(OBS_PATH)/cpp/arch/SCU.o \ $(OBS_PATH)/cpp/arch/burstifier.o \ $(OBS_PATH)/cpp/arch/deburstifier.o \ $(OBS_PATH)/cpp/channelscheduler/channelscheduler.o \ $(OBS_PATH)/cpp/channelscheduler/LAUCscheduler.o \ $(OBS_PATH)/cpp/channelscheduler/LAUCVFscheduler.o \ $(OBS_PATH)/cpp/channelscheduler/LAUCVFMscheduler.o \ $(OBS_PATH)/cpp/channelscheduler/FFUCscheduler.o \ $(OBS_PATH)/cpp/traffgen/expoo2.o \

$(OBS_PATH)/cpp/stats/stats.o \ $(OBS_PATH)/cpp/stats/stat_entry.o \ $(OBS_PATH)/cpp/stats/Batches.o \ $(OBS_PATH)/cpp/stats/SmplStatDrved.o \ $(OBS_PATH)/cpp/stats/SmplStat.o \ $(OBS_PATH)/cpp/random/beta.o \ $(OBS_PATH)/cpp/random/IPlen.o \ $(OBS_PATH)/cpp/global.o \ $(OBS_PATH)/cpp/debug.o \ $(OBS_PATH)/cpp/OBSpacket.o \ $(OBS_PATH)/cpp/OBSroute.o NS_TCL_LIB = \ ... $(OBS_PATH)/tcl/lib/ns-obs-lib.tcl \ $(OBS_PATH)/tcl/lib/ns-obs-defaults.tcl \ $(OBS_PATH)/tcl/lib/ns-obs-node.tcl \ $(OBS_PATH)/tcl/lib/ns-obs-link.tcl \ $(OBS_PATH)/tcl/lib/ns-obs-stats.tcl

PH LC C: HƯỚNG DN CÀI ĐẶT LƯU LƯỢNG POISSON

Phần mềm mô phỏng mạng ns-2 hỗ trợ lưu lượng theo phân bố Pareto và hàm mũ nhưng không hỗ trợ lưu lượng Poisson. Chúng ta có thể cài đặt thêm lưu lượng Poisson như sau:

Download file poisson.cc từ trang web http://www.iis.sinica.edu.tw/~cclljj/misc/notes/poisson.cc.html

File poisson.cc như sau: #include <stdlib.h>

#include <math.h> #include "random.h" #include "trafgen.h" #include "ranvar.h"

class Poisson_Traffic : public TrafficGenerator { public:

Poisson_Traffic(); virtual void timeout();

virtual double next_interval(int&);

int command(int argc, const char*const* argv); protected:

void init(); double lambda;

double rate_; /* send rate during on time (bps) */ };

static class PoissonTrafficClass : public TclClass { public:

PoissonTrafficClass() : TclClass("Application/Traffic/Poisson") {} TclObject* create(int, const char*const*) {

}

} class_poisson_traffic;

int Poisson_Traffic::command(int argc, const char*const* argv){ return Application::command(argc,argv); } Poisson_Traffic::Poisson_Traffic() { bind_bw("rate_", &rate_); bind("packetSize_", &size_); } void Poisson_Traffic::init() { if (agent_) agent_->set_pkttype(PT_EXP);

lambda = (double)rate_ / (double)(size_ << 3); nextPkttime_ = next_interval(size_);

}

double Poisson_Traffic::next_interval(int& size) {

double U;

U = drand48(); do {

U = drand48(); } while (U<=0 || U>1);

return ( 0 - (log(U)/lambda) ); }

{ if (! running_) return; agent_->sendmsg(size_); nextPkttime_ = next_interval(size_); timer_.resched(nextPkttime_); }

Chép file poisson.cc vào thư mục {đường dẫn đến thư mục ns-2.28}/tools. Thêm vào file {đường dẫn đến thư mục ns-2.28}/tcl/lib/ns-default.tcl ……….

Application/Traffic/Poisson set interval_ -1.0 Application/Traffic/Poisson set rate_ 1Mb Application/Traffic/Poisson set packetSize_ 500 Application/Traffic/Poisson set maxpkts_ 268435456 ………

Thêm vào file {đường dẫn đến thư mục ns-2.28}/trace/cmu-trace.cc ………. case PT_GAF: case PT_PING: break; case PT_POISSON: break; ……….

Thêm vào file {đường dẫn đến thư mục ns-2.28}/trace/trace.cc ……… /* UDP's now have seqno's too */

if (t == PT_RTP || t == PT_CBR || t == PT_UDP || t == PT_EXP || t == PT_PARETO || t == PT_POISSON)

………. Thêm vào file {đường dẫn đến thư mục ns-2.28}/packet.h

……… PT_FTP, PT_PARETO, PT_EXP, PT_POISSON, PT_INVAL, ……… name_[PT_EXP]= "exp"; name_[PT_POISSON]= "poisson"; ………..

Thêm vào file {đường dẫn đến thư mục ns-2.28}/Makefile ……….

tools/expoo.o tools/cbr_traffic.o tools/poisson.o \ ……….. Cuối cùng compile lại kernel

TÀI LIU THAM KHO

[1] Jason P.Jue, Vinod M.Vokkarane, “Optical Burst Switched Networks”, University of California, Davis Springer Science – Business Media, Inc., 2005

[2] Yang Chen, Chumming Qiao, Xiang Yu, “Optical Burst Switching (OBS): A New Area in Optical Networking Research”, Computer Science and Engineering Deparment State University of New York at Buffalo.

[3] Ths.Nguyễn Bá Hưng, “Chuyển mạch gói quang và khả năng ứng dụng trong mạng viễn thông Việt Nam”, Tạp chí bưu chính viễn thông, 2006.

[4] Vinod M.Vokkarane, “Design and analysis of architectures and protocols for optical burst switched networks”, The University of Texas at Dallas, August 2004.

[5] Iban Cereijo Grana, “Simulacion y comparativa de mecanismos de conmutacion en redes opticas”, University of Vigo-Spain, 2005.

[6] Trần Quang Vinh, Vũ Mỹ Hằng “Kiến trúc mạng chuyển mạch burst quang”, Tạp chí bưu chính viễn thông.

[7] Ping Du, “QoS Control and Perfomance Improvement Methods for Optical Burst Switching Networks”, Department of Informatics, School of Multidisciplinary Sciences, 2007.

[8] D. Morato, J.Aracil, L.A. Diez, M.Izal, E.Magana, “Onlinear prediction of internet traffic for packet and burst switching networks”, Inproceedings of Tenth International Conference on Computer Communications and Networks, 2001.

[9] Microlaw Klinkowski, “Offset Time-Emulated Architecture for Optical Burst Switching – Modelling and Performance Evaluation”, University of Catalunya, 2007.

[10] M.Casoni, F.Guidorzi, E.Luppi, L.Merani, “Performance evaluation of channel scheduling algorithms with different QoS classes”, Department of Information Engineering University of Modena and Reggio Emilia-Italy.

[11] J.Xu, C.Qiao, J.Li, G.Xu, “Efficent channel scheduling algorithms in optical burst switched networks”, Proceeding, INFOCOM2003, Volume 3.

[12] Kouji, Hirata, Takahiro Matsuda, Tetsuya Takine, “Dynamic burst discarding scheme for deflection routing in optical burst switching networks”, Science Direct, Optical Switching and Networking – Volume 4, June 2007.

[13] M.Klinkowski, D.Careglio, M.Marciniak, J.Sole-Pareta, “Comparative study of QoS mechanisms in OBS networks”, University of Catalunya, Barcelona- Spain.

[14] Yang Chen, Mounir Hamdi, Danny H.K Tsang C.Qiao, “Providing Proportionally Differentiated Services over Optical Burst Switching Netwworks”, State University of New York at Buffalo.

[15]http://www.centos.org/modules/newbb/print.php?form=1&topic_id=153 77&forum=37&order=ASC&start=0

[16] http://winanda7.co.cc/?p=56

[17] http://www.it.ecei.tohoku.ac.jp/~mfouda/ns-2.html

[18] Eitan Altman, Tania Jimenez, “NS Simulator for beginners”, University of Los Andes, Merida, Venezuela, 2003.

[19] http://dawn.cs.umbc.edu/owns/

[20] Vinod M.Vokkarane, Karthik Haridoss, Jason P.Jue, “Threshold-Based Burst Assembly Policies for QoS support in Optical Burst-Switched Networks”, The University of Texas at Dallas.

[21] Harvinder Kaur, R.S Kaler, “Burst assembly and signaling protocols in OBS”, Thapar University, Patiala, 2007.

[22] Vasco N.G.J.Soares, Iuri D.C. Veiga, Joel J.P.C. Rodrigoues, “OBS Simulation Tools: A Comparative Study”, University of Beira Interior, Covilha, Portugal.

[23] Yinglam Cheung, “Multi-Protocol Label Switching (MPLS) Using MPLS to build an Apllication-Centric Network”, 2003.

[24] Nguyễn La Giang, “Chuyển mạch quang chùm OBS: Một giải pháp cho mạng đường trục Internet thế hệ sau”, Tạp chí công nghệ thông tin và truyền thông, 2006.

Một phần của tài liệu Mô phỏng mạng chuyển mạch quang chùm (optical burst switching) (Trang 113 - 128)