`

ns2 中得到Agent的实例

阅读更多

下面代码说明了如何访问其他节点的Agent,以AODV协议为例

添加以下代码到aodv.cc. 用这种方法也可以访问其他对象,比如 mobilenode, 等等.

AODV* aodvagent;

// set i to be the node id

char command[256];

// [Agent/AODV info instances] 返回一个aodvagent的数组
sprintf(command, "foreach aodvagent [Agent/AODV info instances]\
{\nif { [$aodvagent id] == %d} {\nset i $aodvagent}}\nset t $i\n", i);

Tcl& tcl = Tcl::instance();
tcl.eval(command);
const char* ref = tcl.result();

aodvagent = (AODV*)tcl.lookup(ref);
 

这种方法需要在Agent的成员函数command中含有返回agent节点地址的命令:

if (argc == 2) {
		Tcl& tcl = Tcl::instance();
		if(strncasecmp(argv[1], "id", 2) == 0) {
 			tcl.resultf("%d", ra_addr_);
 			return TCL_OK;
		}
                //other command
                ...
}
 

 

 

添加新的Application后报错:

invalid command name "Application/Fire"
    while executing
"Application/Fire create _o1931 "

导致的原因是新加的Class没有编译,检查是否把新的object加入到ns的Makefile的OBJ_CC中,加入后编译在运行ns脚本。

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    NS2 TCL脚本实例

    NS2 TCL脚本实例 NS2是一种流行的网络模拟器,广泛应用于计算机网络和通信领域。本文将通过多个实例来详细介绍NS2的使用方法和应用场景。 实例1: 有线网络,两节点(UDP连接,CBR应用) 在这个实例中,我们将创建...

    ns2使用教程与具体操作实例

    在ns2中建立TCP连接涉及创建TCP agent在源节点n0产生"tcp"包,并在目的节点n3使用TCPsink agent接收数据并发送ACK。使用`connect`命令将两个agent连接起来,建立TCP链路。默认情况下,TCP包的大小为1Kbytes。 **ns2...

    ns2中添加路由协议的方法

    ### 在NS2中添加路由协议的方法 #### 一、引言 NS2(Network Simulator 2)是一款广泛使用的网络仿真工具,它可以帮助研究人员和开发者测试和验证新的网络协议和技术。对于想要将自己的路由协议集成到NS2中的用户来...

    ns2 ipv6代码

    ### 二、IPv6在NS2中的实现 #### 1. 地址配置 - **层次化地址类型**: 通过设置`$ns_nodeconfig-addressType hierarchical`来启用层次化的IPv6地址分配方式。 - **域名编号**: 设置特定的域名编号,例如`AddrParams...

    使得ns2支持BGP协议

    添加 BGP 协议到 ns2 中,可以模拟大规模网络中的路由行为,提高模拟的真实性和准确性。 添加 BGP 协议到 ns2 中需要完成以下步骤: 1. 下载并解压缩 ns-BGP 版本 2.0 的压缩包到 ns-allinone-2.33 目录中。 2. ...

    NS2 源代码

    这段代码用于初始化NS2模拟器并设置不同数据流的颜色,便于在NAM(Network Animator)中可视化显示。 **2. 跟踪与日志记录** ```tcl set tracefd [open wired.tr w] $ns trace-all $tracefd set nf [open wired....

    NS2中TCP源代码分析

    随着时间的推移,NS2得到了持续的支持和发展,特别是在1995年获得施乐公司的支持后,加入了VINT项目,进一步增强了其功能性和应用范围。自那时起,NS2不断地吸收来自全球各地研究者的贡献,其中包括来自UCB(加州...

    NS2基础以及实例介绍

    在网络组件方面,NS2模拟的是实际网络的基本构成,如节点(Node)、链路(Link)、队列(Queue)、延迟(Delay)、代理(Agent)、调度器和事件(Scheduler & Event)、定时器(Timer)、分组(Packet)、应用程序...

    ns2学习笔记(学习ns2的经验总结)

    - 这一部分详细阐述了NS2中数据包的内部结构,包括头部信息和负载数据等内容,这对于理解数据传输机制非常关键。 #### 6. NS2跟踪及后期数据处理 - **设置跟踪文件**:讲解了如何配置NS2以生成跟踪文件,这些文件...

    ns2编程源代码和解说

    这个压缩包包含的资源旨在帮助用户理解ns2的工作原理,掌握其编程基础,并学会如何在ns2中添加新的协议。 **ns2的基础架构** ns2的核心由一系列C++类组成,这些类模拟了网络中的各种实体,如节点、链接、协议等。它...

    NS2下protoname路由协议源码及实现方法

    本篇文章将详细探讨如何在NS2中实现和理解protoname路由协议,以及如何处理其源码。 首先,路由协议是网络中的核心部分,它决定了数据包如何在不同网络之间传输。在NS2中,有许多内置的路由协议,如Dijkstra的OSPF...

    NS2无线网络

    #### 三、NS2无线网络模拟实例解析 根据提供的部分代码,我们将重点解析两个具体的无线网络模拟实例: ##### 实例1:基本UDP连接模拟 该实例描述了一个简单的无线网络环境,其中包含两个节点`n0`和`n1`,它们之间...

    ns2.rar_NS2 - tcl tutorial_ns2

    在“ns2.tcl tutorial”部分,你将学习到以下TCL在NS2中的关键概念: 1. **基本语法**:了解TCL的基本语句结构,包括命令、变量、条件语句、循环结构等。 2. **创建网络节点**:学习如何使用`node`命令创建网络节点...

    NS2中文手册和TCL手册

    - **手册内容**:TCL教程可能包含TCL的基础语法、命令用法、控制结构、错误处理、文件操作以及如何在NS2中使用TCL编写仿真脚本等。 3. **NS2与TCL结合使用**: - **NS2配置**:TCL脚本用于设置NS2的网络拓扑、...

    ns2中对nodeid,mac地址,ip地址的一点认识

    ### ns2中对nodeid,mac地址,ip地址的一点认识 #### NodeID的理解与解析 在NS2仿真环境中,`nodeid_`是用于唯一标识每个节点的重要属性。通过研究NS2的内部实现机制,我们可以更深入地理解`nodeid_`是如何被分配...

    NS by Example 笔记(11)Add New Application and Agent

    在NS-2中,应用程序和代理是两个重要的概念: 1. **应用程序**:在网络模拟中,应用程序通常代表实际的网络服务,如TCP流、UDP数据包发送等。它们负责产生或消费网络流量,以模拟实际网络中用户的行为。在NS-2中,...

    NS2 添加新设计的协议

    在NS2中添加新设计的协议是一项常见的任务,这有助于扩展NS2的功能,以满足特定的网络需求。下面我们将详细介绍如何在NS2中实现这一过程,并结合代码和文档来理解其工作原理。 首先,添加新协议通常涉及以下几个...

    ns2仿真程序源代码

    - `new Simulator`:创建一个新的模拟器实例,这是NS2仿真过程的起点。 - `finish` 进程:用于在仿真结束时清理资源,包括关闭trace文件和tchan文件。 2. **网络拓扑构造**: - 使用`node`命令创建节点,如`s1`...

Global site tag (gtag.js) - Google Analytics