在tutorial的这一章中,一共介绍了3种拓扑,分别使用first.cc、second.cc、third.cc三个程序。并且拓扑的形式是递增式的。
第一个拓扑是点对点链路(两个节点),第二个拓扑在点对点链路的基础上增加了一个4节点csma网络,第三个拓扑则是在前两个的基础上增加了wifi网络。
下面是我大概翻译的这一章节内容
拓扑搭建
根据tutorial中的内容,这章主要包括三部分:搭建总线拓扑、模型-属性-实现、搭建无线拓扑。下面分别介绍不同部分。
搭建总线拓扑
本章将前面介绍过的节点、链路、信道,等等结合起来,搭建一条总线型拓扑。链路上采用载波侦听多路访问协议(Carrier Sense Multiple Access, CSMA)。用于模拟一个简单的以太网络。真实以太网采用的是CSMA/CD协议,多了冲突检测部分。
在前面first.cc中我们使用了helper对象构造点对点链路,同样构造csma链路的时候我们也可以使用对应的helper对象。基本上,整个过程和构造点对点链路是一样的,除了安装channel协议的时候使用csma对应的类。
这部分对应的代码在second.cc中,同样可以在tutorial中找到。打开之后你会发现,基本上和first.cc差不多,这说明构造过程基本是一致的。那么本文也就不需要再细致讲解已经重复过的内容了。我会从中挑出前面没有介绍过的进行说明。
学过c语言的相信对变量的定义并不陌生。开始定义了两个变量,暂且不必管他们是干嘛的。看下面语句:
CommandLine cmd;
cmd.AddValue(“nCsma”,”Number of …”,nCsma);
cmd.Parse(argc,argv);
第一句定义命令行变量,最后一句说明开始对参数进行解析。主要介绍中间那句。指添加一个可以通过命令行修改的参数。AddValue函数具有有三个参数,1对应的参数名字,2是说明和帮助,3对应程序中的变量。在命令行的使用方式是(100是例子) :--nCsma=100。运行时可以如此:./waf --run “PROGRAM --nCsma=100”。
程序中使用csma的地方主要在helper处,如下:
CsmaHelper csma;
csma.SetChannelAttribute(“DataRate”,StringValue(“100Mbps”));
除了变量的定义使用C