分裂对象模型和TclCL(4)
摘要:上面过程还有一个疑问:如何在command函数中向解释器传递执行结果?哈,这个用Tcl类可以解决。Tcl类封装了Otcl解释器的实例,并提供了访问解释器的方法。这个类提供了以下的操作方法:1、获得Tcl实例的引用2、通过解释器调用Otcl过程3、从解释器获取结果,或将结果传回给解释器4、存取、查找TclObject5、获得到解释器的直接访问。1、获得Tcl实例的引用当ns一开始运行,Tcl类即被实例化。Tcl类的一个静态成员变量“Tcl Tcl::instance_“用来保存该实例。这个Tcl对象就是Otcl解释器对象,可以通过获得它的引用来访问Otcl解释器的功能。获得此实例引用的语句为:T
阅读全文
posted @
2011-08-28 16:05
心月
阅读(371)
推荐(0)
分裂对象模型和TclCL(3)
摘要:举个例子从整体说明Otcl和C++之间的对象连接机制1、在tcp.h中的TcpAgent类声明如下:class TcpAgent:public Agent {public:TcpAgent();virtual void recv(Packet*,Handle*);virtual void timeout (int ton);virtual void timeout_nonrtx (int ton);int command(int argc,const char*const* argv);virtual void sendmsg(int nbytes,const char *flags=0);…
阅读全文
posted @
2011-08-28 16:04
心月
阅读(464)
推荐(0)
分裂对象模型和TclCL(2)
摘要:一、创建和销毁TclObject在Otcl脚本中使用new{}和delete{}。举个例子:set tcp1 [new Agent/TCP]delete $tcp1过程new{}的执行过程:1创建出解释对象2执行该对象的初始化实例过程init{},并把用户提供的参数传给它。3在基类SplitObject的初始化实例过程中,通过create-shadow方法创建该对象在C++中的影像对象。4影像对象的构造函数将被执行,其中会进行一些变量绑定工作。因此每个解释类都必须在初始化实例过程中调用其父类的初始化实例过程,以便最终执行到基类SplitObject的初始化实例过程去创建影像对象。创建影像对象的
阅读全文
posted @
2011-08-28 16:04
心月
阅读(577)
推荐(0)
分裂对象模型和TclCL(1)
摘要:序 看了ns2一段时间,却发现今天看了的东西等过两天再看的时候又变得陌生,不得不又重头看起,如此循环,学习效率大大降低,于是乎想到把看过的知识都总结一下,以备日后查看快速上手。各位路过的朋友,如发现笔记中有欠妥的地方,请不啬赐教,鄙人感激不尽。 分裂对象模型:NS中的构件(构件库是一个层次结构)一般都是由相互关联的两个类来实现的,一个在c++中,一个在Otcl中。C++:实现构件的主要功能。Otcl的类:提供C++对象面向用户的接口。NS中使用分裂对象模型(Otcl和C++)的好处:C++:运行速度快,容易实现精确的、复杂的算法,用于具体协议的实现。Otcl:运行速度慢,但可以方便地修改,不是
阅读全文
posted @
2011-08-28 16:04
心月
阅读(326)
推荐(0)
NS2中事件调度过程浅析
摘要:NS2中事件调度过程浅析最近研究NS2仿真工具,在学习源代码的过程中查看了一下NS2中的事件调度相关内容,对其流程有了一些粗浅认识,特分享如下。本人新手,以下内容有错误和不足之处恳请指教:)1. 事件调度相关类简介类结构如图1所示:图1 NS2事件调度相关类结构图重要类简介:1) Handler类: 定义位置:~\Common\Scheduler[.h .cc] 作用概述: NS2中用于执行对事件的处理动作(在handle()方法中实现); 作为Event类的属性,所有的事件都会保存用于处理自己的Handler,以供分派(dispatch)时使用; 属性/方法概述: publi...
阅读全文
posted @
2011-08-28 15:59
心月
阅读(927)
推荐(0)
NS2入门指导 ---SeaSon & crabhit From DB lab of HIT
摘要:序很多人都问我新手应该看些什么资料,或者怎么熟悉NS2这个工具。这是让很多入门者非常头痛的问题,包括我自己,当初也是困难重重,不过现在让我说我也没什么印象了,因为我当时比较盲目看了很多兑现在一点儿用都没有的资料。为了能让写的东西真的对新手有所帮助,刚才跟我师弟crabhit谈了谈,所以总结了一下,希望能起到抛砖引玉的作用。当然,只是我们的粗略见解,如有不足,欢迎指正。SeaSon’email:yuhui.wu@163.comCrabhit’email:crabhit@gmail.com一. 安装(Cygwin+ns2.2*)这应该是让很多人头大的问题,因为NS2安装比较另类,所以很多人已如果安
阅读全文
posted @
2011-08-28 15:58
心月
阅读(629)
推荐(0)
ns-2.34下mflood协议的完美移植
摘要:Step1 首先需要下载mflood协议,其中包括两个文件夹:一个是mflood协议(还有文件把mflood.cc,mflood.h,mflood-seqtable.cc,mflood-seqtable.h,mflood-packet.h),一个是用于mflood测试的文件夹,下载后 可以命名为mflood_test。这两个文件夹在《NS与网络模拟》这本书所配 套光盘中的第七章代码中有,另外网上也可以下到。 如果下载不到,可以电邮至我:mkxu2008@163.com索取!Step2 在ns-2.34目录下建立mflood文件夹, 把上述的(mflood.cc,mflood.h,mflood-
阅读全文
posted @
2011-08-27 18:57
心月
阅读(1139)
推荐(0)
关于NS-2仿真中移动节点的设置 (转)
摘要:要做一个4个节点的Adhoc网络仿真,实验环境和要求是:采用的无线网拓扑结构,主机节点数共有4个;节点1到4的初始位置坐标分别为(0,1000)、(0,800)、(0,600)和(400,600),节点1和2在仿真中保持静止不动,节点3和4则以60m/s速度分别向坐标(0,0)和(400,0)位置方向垂直移动。系统带宽为2Mbps,系统节点缺省无线传输半径约为500m。仿真使用的业务流量为FTP,每包发送512字节,发送速度10包/s。采用静态路由方式,节点1在1.5s发包给节点2,节点3在3.5s发包给节点4。仿真时间一共10s,选取节点2处的估计可用带宽进行分析。下面是基本环境仿真的adh
阅读全文
posted @
2011-08-17 20:43
心月
阅读(1167)
推荐(0)
看懂trace文件(2)(转)
摘要:$ns use-newtrace :使用新格式。(语句在$ns_ trace-all $tracefd 之前)new trace格式定义N: Node PropertyI: IP Level Packet InformationH: Next Hop InformationM: MAC Level Packet InformationP: Packet Specific InformationFlag Type Values(r,d,f) s(r,d,f) r Send;r: Receive;d: Drop;f: Forward-t double Time (* For Global Sett
阅读全文
posted @
2011-08-16 14:49
心月
阅读(420)
推荐(0)
看懂trace文件1(转)
摘要:ACTION: [s|r|D]: s -- sent, r -- received, D -- droppedWHEN: the time when the action happenedWHERE: the node where the action happenedLAYER: AGT -- application, RTR -- routing, LL -- link layer (ARP is done here) IFQ -- outgoing packet queue (between link and mac layer) MAC -- mac, PHY -- physical
阅读全文
posted @
2011-08-16 14:48
心月
阅读(287)
推荐(0)
VMWare tools的安装过程及文件共享设置
摘要:VMWare tools的安装过程及文件共享设置2007-12-24 01:24 作者:sixth 来源:赛迪网[摘要]为了更好的解决虚拟机与主机的共享问题,VMware公司有一个VMWare-tools,来实现文件共享。这里主要讲的是在Windows下用 Vmware虚拟Linux来与windows来共享。[关键字]VMWaretools共享设置安装 为了更好的解决虚拟机与主机的共享问题,VMware公司有一个VMWare-tools,来实现文件共享。这里主要讲的是在Windows下用 Vmware虚拟Linux来与windows来共享。 1、安装客户机系统,linux这里选用CentOS5
阅读全文
posted @
2011-08-13 09:47
心月
阅读(239)
推荐(0)