层次地址的设定
ns2中有平面地址结构和层次地址结构:
宏观上看,如下:
A.B.C.
A:所处的网络地址
B:所处的子网地址
C:节点地址
例如 set CN [$ns_ node 0.0.0] //设置节点CN的层次结构地址为0.0.0
1、设定网络的数量,即不同的A的数量
AddrParams set domain_num_ 5
设定网络的数量为5,下标从0开始(下面的编号也是从0开始)。
2、设定每个网络中子网的数量。要与前一步设定的网络数相对应。下面两个语句对应着网络0有2个子网,网络1有1个子网........
lappend cluster_num 2 1 1 2 2
AddrParams set cluster_num_ $cluster_num
3、设定每个子网中节点的数量,也要严格按照顺序
lappend eilastlevel 1 1 2 1 1 1 1 1
AddrParams set nodes_num_ $eilastlevel
顺序为对于不同的网络按照网络号由小到大,而相同的网络地址,按照子网号从小到大排序,然后按照排序结果顺序写出每个子网中节点的数量
下面是我做的是FHMIP协议的仿真的层次化地址的设定的一个例子:
// 设置层次化地址
AddrParams set domain_num_ 5
lappend cluster_num 2 1 1 2 2
AddrParams set cluster_num_ $cluster_num
lappend eilastlevel 1 1 2 1 1 1 1 1
AddrParams set nodes_num_ $eilastlevel
其中:节点0和节点2属于第0号网络;节点5和节点6属于第1号网络;节点1属于第2号网络;节点3和节点7属于第3号网络网络;节点4和节点8属于第4号网络。
一共分为了 (2+1+1+2+2)=8个子网
一共有(1+1+2+1+1+1+1+1+1)=9 个节点