NS2学习笔记(三)
代理(Agents)
代理是网络层数据包产生和使用的端点,用于实现多层的协议。Agent类部分用OTcl实现,部分用C++实现。C++的代码在~ns/agent.cc和~ns/agent.h中,OTcl的代码在~ns/tcl/lib/ns-agent.tcl中。
1.C++实现的Agent类包含的成员变量有:
- addr_ 源地址
- dst_ 目的地址
- size_ 数据包大小(byte)
- type_ 数据包类型
- fid_ IP流号
- prio_ IP优先级字段
- flags_ 数据包标志
- defttl_ 默认IP ttl 值
不是每一个Agent或其子类都需要使用以上所有的成员变量,这些成员变量的值可以通过Agent的子类修改。
2.C++实现的Agent类包含的方法:
不需要子类重写的方法:
- Packet* allocpkt() 分配新数据包的空间
- Packet* allocpkt(int n) 分配新数据包的空间,大小n bytes
需要子类重写的方法:
- void timeout(timeout number) 超时方法
- void recv(Packet*,Handler*) 接收方法
allockpkt()方法用于产生需要发送的数据包,它填充默认包头,IP头,标志头的一些字段。如果自己定义了新的包头内容,则需要在子类中自行处理。
recv()方法是代理接收包后的处理方法,在大多数情况下,第二个参数没用。
3.OTcl Linkage
OTcl的成员变量和OTcl与C++绑定的成员变量在 ~ns/tcl/lib/ns-default.tcl 文件中设置默认值。
OTcl Agent类的过程(方法)在 ~ns/tcl/lib/ns-agent.tcl 文件中。
4.
NS2学习笔记(三)的更多相关文章
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- [Firefly引擎][学习笔记三][已完结]所需模块封装
原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读: 笔记三主要就是各个模块的封装了,这里贴 ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- java之jvm学习笔记三(Class文件检验器)
java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...
- VSTO学习笔记(三) 开发Office 2010 64位COM加载项
原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...
- Java IO学习笔记三
Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...
- NumPy学习笔记 三 股票价格
NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...
- Learning ROS for Robotics Programming Second Edition学习笔记(三) 补充 hector_slam
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Learning ROS for Robotics Programming Second Edition学习笔记(三) indigo rplidar rviz slam
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Typescript 学习笔记三:函数
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
随机推荐
- lua排序算法
SEED = ; --随机序列 可任取 NUM = ; --排序规模 --随机序列 初始数据 function GenRnd( seed, n ) --生成随机数 data = {}; local r ...
- ebay 店铺状态
OrderStatusCodeType @XmlEnumValue("Active") @XmlEnumValue("Inactive") @XmlEnumVa ...
- textarea 高度调整
textarea 高度调整 通过 rows 属性调整 高度
- Uva548 Tree
Tree You are to determine the value of the leaf node in a given binary tree that is the terminal nod ...
- 如何用js往html页面拼接一个div包括div的各种常用属性
$("#div").append("<table><tr align='center'>" +"<td >&quo ...
- 超级钢琴(codevs 2934)
题目描述 Description 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐. 这架超级钢琴可以弹奏出n个音符,编号为1至n.第i个音 ...
- HDU1914(稳定婚姻)
http://acm.hdu.edu.cn/showproblem.php?pid=1914 思路:Gale-Shapley算法.算法过程是男士不停地求婚,女士不停地拒绝.在每一轮中,每个尚未订婚的男 ...
- LSN
http://www.cnblogs.com/lyhabc/archive/2013/07/16/3194220.html
- 源码分析-react1-根节点渲染
- 项目中应用到的框架和技术之三——echarts
echarts是效果丰富的图表库,当时考虑怎么炫怎么来就引入了这个库来做图表展示,官网:http://echarts.baidu.com 项目里用的比较浅,估且一看吧 代码: this.toChart ...