Inet架构浅析[转]
由于我们是在Inetmanet这个架构下搭建仿真场景,近一段时间我都在熟悉这个场景。但还是看的比较慢,因为对c++是刚开始学习。但找到了一篇介绍整体架构的文章,我也加一点自己最近学习的体会啦~与大家共同进步。
我们主要想搭建的是无限的节点移动场景,Inet中有一些节点的例子可以直接复用,这样省去了自己写节点的麻烦。说实在的其实复用其中的节点也很麻烦,因为其中的节点都是ISO模型写的,与我们真正要用到得差别还是很大,要自己修改其中的模块。要想修改就首先要看懂他原来的架构。反正是让人无比烦躁。
自己编写或导入的协议是要在src文件夹下相应的层次下导入。以下是我找到的一篇论坛上的帖子:
关于INET构架
看到版上不少版友反映INET难以使用。INET作为一个开放式的协议架构,任何人都可以贡献自己的代码,其可维护性确实较差。但是,要使用好INET还是有一些窍门的。
首先就是要熟悉INET的协议架构,INET每个协议栈层次对应了一个大的文件夹,每个具体的协议也有自己的文件夹。同时,一些协议层次会有自己的控制信息模式,那么这些层次的文件夹中包括了一个名为contract的文件夹,专门放置该层协议的控制接口,如Transport/contract,network/contract。
Application文件夹,包括了各种应用层的仿真模型;
Transport,各种传输层的仿真模型,如UDP/TCP;
network:网络层仿真模型,包括IPV4/IPV6/MPLS/OSPF等;
networkinterface:包括MAC协议,如IEEE80211/PPP,以及物理层实现,如Radio。
Worid:全局性的辅助性仿真模块,如ChannelControl等
Base:一些基本的辅助性程序。
虽然INET还有其他的很多文件夹,但都不涉及到程序实现,或基本是一些用不上的程序。如Node文件夹,包括的就是INET搭建好的一些节点模型,而每个模块的实现都放在了相应的协议层次文件夹中。
我们搭建自己的协议模型时,也应当注意按照INET的层次结构,将我们的协议放到相应的层次中。查询INET的协议代码时,只要明确了协议栈结构,还是很容易找到相应实现的。
首先就是要熟悉INET的协议架构,INET每个协议栈层次对应了一个大的文件夹,每个具体的协议也有自己的文件夹。同时,一些协议层次会有自己的控制信息模式,那么这些层次的文件夹中包括了一个名为contract的文件夹,专门放置该层协议的控制接口,如Transport/contract,network/contract。
Application文件夹,包括了各种应用层的仿真模型;
Transport,各种传输层的仿真模型,如UDP/TCP;
network:网络层仿真模型,包括IPV4/IPV6/MPLS/OSPF等;
networkinterface:包括MAC协议,如IEEE80211/PPP,以及物理层实现,如Radio。
Worid:全局性的辅助性仿真模块,如ChannelControl等
Base:一些基本的辅助性程序。
虽然INET还有其他的很多文件夹,但都不涉及到程序实现,或基本是一些用不上的程序。如Node文件夹,包括的就是INET搭建好的一些节点模型,而每个模块的实现都放在了相应的协议层次文件夹中。
我们搭建自己的协议模型时,也应当注意按照INET的层次结构,将我们的协议放到相应的层次中。查询INET的协议代码时,只要明确了协议栈结构,还是很容易找到相应实现的。
如何导入:我是学习了http://searun.iteye.com/blog/363151
中介绍的方法。但是切记要添加后重新编译。
最近发现了一个比较好,介绍如何搭建一个omnet工程的例子我也准备上传下来。。这个我也是找了蛮久。对于初学者还是比较有帮助的。但是对于大牛们这都是浮云了。嘻嘻。与菜鸟们共同进步。如果大家有什么好的学习资料也可以给我留言。如果有大牛路过,希望能够帮助下喽。先行谢过了。。