ns仿真
文章平均质量分 75
Beta-
这个作者很懒,什么都没留下…
展开
-
关于setdest的问题
出现的问题:$ makeg++ -c -Dstand_alone -DSTL_NAMESPACE=@STL_NAMESPACE@ -o setdest.osetdest.ccIn file included from ../../../config.h:54, from setdest.h:5, from setdes原创 2012-03-04 17:28:37 · 737 阅读 · 0 评论 -
Otcl与C++交互-MAC层
转自:http://www.baisi.net/thread-65064-1-1.html经过一段时间的代码阅读和资料查阅,在这里我想试着讲明一个困扰大多数NS2 Beginner的问题:Otcl和C++的交互,我们写的新协议(假若有的话)是如何被NS2执行的。就简单的从我们现有的来自长庚大学的802.16的补丁说起。移植完16的补丁我们的NS2就可以执行MAC层协议为“Mac/802_1转载 2012-06-08 21:38:51 · 1301 阅读 · 0 评论 -
gawk手册
第一章 前言awk 是一个程式语言,对於资料的处理具有很强的功能。对於文 字档里的资料做修改、比对、抽取等的处理,awk 能够以很短的程式 轻易地完成。如果使用 C 或 Pascal 等语言写程式完成上述的动作, 会不方便且很花费时间,所写的程式也会很大。 awk 能够依照使用者的定义格式来分解输入资料,也可依照使用 者定义的格式来印出资料。 awk 名称的由来转载 2012-06-08 21:52:55 · 610 阅读 · 0 评论 -
OTcl与C++交互—AODV路由协议
我们先来看看Otcl脚本:set val(chan) Channel/WirelessChannel ;#无线信道类型set val(prop) Propagation/TwoRayGround ;#无线传输模型set val(netif) Phy/WirelessPhy ;#网络接口类型set val(mac原创 2012-06-10 19:33:56 · 1522 阅读 · 0 评论 -
ns问题总结-持续更新
1.问题:运行DSR协议,出现; 解决办法:TCL脚本里的 set val(ifq) 改为 CMUPriQueue或者if { $val(rp) == “DSR” } {set val(ifq) CMUPriQueue} else {set val(ifq) Queue/DropTail/PriQueue}2.问题:编译c++原创 2012-05-06 20:58:52 · 1537 阅读 · 0 评论 -
无线Trace脚本(旧格式)-路由负载
# 使用的是无线trace的旧格式BEGIN { pkt_route_sum=0; pkt_cbr_sum=0;}{ pktsize = $8; } $0 ~/^s.* AODV/ { pkt_route_sum += pktsize ;}# 我只计算了正确接收到的数据包,被丢弃的没有算作有效数据$0 ~/^r.* AGT.* cbr/ {转载 2012-05-22 16:47:00 · 679 阅读 · 0 评论 -
无线Trace脚本(旧格式)-吞吐量
BEGIN {init=0;i=0;}{event = $1;time = $2;node = $3;trace_type = $4;flag = $5;uid = $6;pkt_type = $7;pkt_size = $8;if(event=="r"&& pkt_type=="cbr") {pkt_byte_sum[i+1]=pkt_byte_sum[i]+(pkt原创 2012-05-22 16:42:51 · 689 阅读 · 0 评论 -
无线Trace脚本(旧格式)-平均延时
BEGIN { #程序初始化,设定一变量以记录目前处理的封包的最大ID号码。在awk环境下变量的使用不需要声明,直接赋值。 highest_uid = 0; total_packet=0; total_delay_time=0;}#下面大括号里面的内容会针对要进行处理的记录(也就是我们的trace文件)的每一行都重复执行一次{原创 2012-05-22 16:41:42 · 686 阅读 · 0 评论 -
无线Trace脚本(旧格式)-丢包率
BEGIN{losssum=0; #保存分组丢失的数目recvsum=0; #保存源节点发送的数目sendsum=0; #保存目的节点接收的数目}{event=$1; #表示事件的类型time=$2; #表示事件发生的时间node=$3; #表示事件发生所在的节点trace_type=$4; flag=$5;uid=$6; #表示分组的uidpkt_t原创 2012-05-22 16:37:52 · 951 阅读 · 0 评论 -
NS事件调度器
NS是一个基于事件驱动的单线程模拟器,在模拟器中有四种可使用的调度器:链表调度器、堆调度器、日历调度器和实时调度器。调度器调度的是事件,下面是事件的定义(event):class Event {public: Event* next_; /*事件链表*/ Event* prev_; Handler* handler_; /* 处理事件时的句柄 */ doub原创 2012-06-04 15:41:06 · 2735 阅读 · 2 评论 -
NS_AF_NONE, NS_AF_ILINK, NS_AF_INET解释
在common\packet.h hdr_cmn结构体中定义了addr_type_,分别有NS_AF_NONE, NS_AF_ILINK, NS_AF_INET这几项我们在aodv.cc里面看到这几行代码:ch->addr_type() = NS_AF_INET;ch->addr_type() = NS_AF_NONE;其实在mac\ll.cc里面的sendDown(Packet*原创 2012-06-04 09:30:04 · 1951 阅读 · 0 评论 -
aodv包头分析-上
AODV路由协议提供了一个特定的头部,在aodv_packet.h里面/* * General AODV Header - shared by all formats */struct hdr_aodv { u_int8_t ah_type; /* u_int8_t ah_reserved[2]; u_int8_t原创 2012-06-01 13:02:22 · 1719 阅读 · 2 评论 -
cygwin+NS2 2.27安装和出现的问题
NS-2最早的版本是在linux/unix下运行的,后来有了windows下用vc编译运行的版本,但从2.26以后就放弃了对vc的支持,所以现在装NS2只有两条路,要么装个linux,要么就在windows下装个cygwin,然后再在cygwin上装ns2.为了简便起见,我选择了后者。 大二培训过一段时间linux,大三又开了unix这门课,可惜绝大部分都还给了老师。只好自己从零开始,慢原创 2012-05-02 21:52:37 · 623 阅读 · 0 评论 -
ns学习资料
(一). NS常用基本网站 1. Maillist个人觉得是寻求问题答案最好的地方。 http://mailman.isi.edu/pipermail/ns-users/ 2. 柯老师的网站,包含很多非常实用资源:安装,trace文件分析,源代码分析,添加新协议的途径等 http://140.116.72.80/~smallko/ns2/ns2.htm 3. NS本身转载 2012-05-04 22:24:27 · 1159 阅读 · 0 评论 -
gdb在cygwin下的安装
出自:http://hi.baidu.com/mucenl/blog/item/f1b1f2386306a33796ddd873.html1、下载http://www.baisi.net/thread-3667-1-1.html中ReTurner.D提供的gdb压缩包,然后将gdb-20010428-3[1].tar.bz2的压缩包拷贝到C:\cygwin下。2、点击桌面上的c转载 2012-05-07 09:46:45 · 9103 阅读 · 1 评论 -
如何在aodv协议中访问node的各项属性
如何在aodv协议中访问node的各项属性(例如,X_, Y_, speed_)aodv协议里面没有出现当前节点,如要访问与之对应的节点的信息,则添加一个节点并与AODV对应的Agent绑定。1、在aodv.h中添加如下代码 protected: MobileNode *node_; // My node2、修改aodv.cc中的comma转载 2012-04-23 13:39:44 · 744 阅读 · 0 评论 -
aodv路由协议分析
1 AODV 报文格式AODV 有三种基本的协议报文类型:RREQ 报文、RREP 报文和RRER 报文。1.1 RREQ 报文a. 对RREQ 的处理接收到RREQ 的结点做如下处理:(1)创建一个表项,先不分配有效序列号,用于记录反向路径。(2)如果在“路由发现定时”内已收到一个具有相同标识的RREQ 报文,则抛弃该报文,不做任何处理;否则,对该表项进行更新如下:I转载 2012-04-23 10:52:04 · 2157 阅读 · 0 评论 -
assert用法总结
转自:http://www.cnblogs.com/chio/archive/2008/06/18/1225028.htmlassert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那转载 2012-05-08 15:34:24 · 489 阅读 · 0 评论 -
NS2下AODV协议aodv.cc注释
//#include #include #include #include #include //#include #define max(a,b) ( (a) > (b) ? (a) : (b) )#define CURRENT_TIME Scheduler::instance().clock()//#define DEBUG//#define ERR原创 2012-05-28 20:23:12 · 7638 阅读 · 6 评论 -
ns2丢包原因
转自:http://huangliangnumber1.blog.163.com/blog/static/4781174820110116485596/丢包的不同原因如下: "END" DROP_END_OF_SIMULATION 即仿真终止 "COL" DROP_MAC_COLLISION 即MAC层冲突 "DUP" DR转载 2012-05-10 19:55:03 · 1047 阅读 · 0 评论 -
无线网络模拟中分组在节点内部的流程
模拟仿真时在OTcl脚本中建立一个数据发送代理并绑定到一个节点,再建立一个数据接收代理并绑定到另一个节点,然后连接两个代理即可以在两个节点之间建立业务联系,OTcl脚本中类似于如下的代码: set udp0 [new Agent/UDP] ;#建立一个UDP数据发送代理 $ns attach-agent $n(0) $udp0 ;#将数据发送代理绑定到发送节点 set null原创 2012-05-02 19:19:42 · 969 阅读 · 0 评论 -
AODV链表
ns2中的链表定义在ns\lib\bsd-list.h下面,下面看一下里面的代码:#define LIST_HEAD(name, type) \struct name { \ type *lh_first; /* first element */ \}定义了一个结构体name和一个type类型的*lh_first指针,指向结构体的头。name是链表的名字,元原创 2012-06-02 12:25:02 · 1231 阅读 · 0 评论 -
路由层如何处理底层的传输失败
转自:http://hi.baidu.com/karashun/blog/item/0fad3e4f7bbb28d5d0c86a08.html1. 大致思想 MAC 在传输失败的时候,通过函数指针调用 上层(路由层)的失败处理函数。2. 函数指针的用法: 1) 定义: // packet.h typedef void (*FailureCallb转载 2012-05-14 17:47:47 · 1165 阅读 · 0 评论 -
cbrgen和setdest数据流生成
数据流生成工具cbrgen用来产生传输负载,可以产生cbr流和tcp流。cbrgen的使用方法是,首先切换到,使用方法如下:ns cbrgen.tcl [-type cbr|tcp] [-nn nodes] [-seed seed] [-mc connections][-rate rate]-type 表示数据流的类型-nn 表示节点的数目seed 表示随机种子数-m原创 2012-05-25 23:18:41 · 2162 阅读 · 0 评论