2011年11月8日

摘要: 本协议的实现是作为对NS2扩展的一个实例,将来如果要扩展其他的协议可以参考MFlood协议的实现过程,MFlood在NS2上的扩展已经成功实现,因此记录下扩展过程,对于有需要的人可以进行参考一下。NS2版本为NS2-2.34在ns-2.34目录下创建mflood目录,该目录下包括mflood.h(协议类的定义),mflood(协议的实现),mflood-packet.h(包头结构定义),mflood-seqtable.h(路由类定义),seqtable.cc(路由实现)五个文件。修改ns-2.34/common/packet.h文件,在文件的申明部分,有一些静态变量申明:static co.. 阅读全文
posted @ 2011-11-08 14:53 魍魉魑魅 阅读(1280) 评论(0) 推荐(1) 编辑

2011年7月3日

摘要: 模块设计--思路典型的,一个模块=一个进程 有时,IPv4和IPv6版本对应的是两个进程。没有多线程事件驱动可编程: (1) 事件:用户措施,包到来,更新等(2) Queued and processed ASAP by the event loop.(3) 定时器:延迟,周期。--->对一个事件的处理应尽可能的保持模块激活状态--->异步编程,例如:阻塞调用是被禁止的模块设计--可编程的接口如图所示,一个进程间调用是通过一个XRL描述的一个XRL接口被定义成一种方式,去执行一个特殊的功能一个XRL Target是一组XRL接口,用来执行一个高级目标一般情况下,一个模块的API是一 阅读全文
posted @ 2011-07-03 00:11 魍魉魑魅 阅读(344) 评论(0) 推荐(0) 编辑

2011年7月2日

摘要: 本人只是初学XORP路由软件,可能理解上有出入,希望志同道合的朋友能够多给意见XORP(可扩展性快放路由平台)用C++编写充分利用: 模板;多重继承。 XORP结构设计设计上,XORP是灵活的和模块化的。由于XORP模块是分布式的架构,因此XORP模块可以分布在不同的机器上运行。抽象转发引擎(FEA)FE在操作系统内核里面FEA提供一个统一的接口到底层内核 FEA的作用:接口管理转发表管理原始包I/O口TCP/UDP socket I/O口RIB进程主要用来管理路由信息库。默认的,这个进程保持着四个RIBs:单播和主播,IPv4和IPv6.RIBs进程的作用:储存通过运行路由协议产生的路由表为 阅读全文
posted @ 2011-07-02 23:22 魍魉魑魅 阅读(5135) 评论(0) 推荐(0) 编辑

2011年6月28日

摘要: 简介:封装入门目的:把最基本的数据包被路由器解封装、转发、再封装的过程用动画显示出来。拓扑:两个主机经一个路由器相连。步骤:1)H1 ping H2, 得先封装三个报头(link network,protocol) 后才发送。 2) 路由器收到后,把ping解封装、转发、再封装,送往 H2. 3)H2收到ping时,把它解封装, 知道这个ping是针对自己的,就回复echo,把 echo封装好才发送。 4)R1收到echo后,将其转发给H1。H1把echo解封装,知道这个echo是回复自己的,ping成功了 。初始化:ARP表的MAC地址齐全这个案例假设H1, H2已经知道彼此的地址。【注】这 阅读全文
posted @ 2011-06-28 20:19 魍魉魑魅 阅读(1045) 评论(0) 推荐(0) 编辑

2011年6月24日

摘要: 有时候我们只知道一个函数的大概形式,不记得确切的表达式,或者是不记得着函数在那个头文件进行了说明.这个时候我们可以求助系统. 比如说我们想知道fread 这个函数的确切形式,我们只要执行 man fread 系统就会输出着函数的详细解释的.和这个函数所在的头文件<stdio.h>;说明了. 如果我们要write 这个函数的说明,当我们执行man write 时,输出的结果却不是我们所需要的. 因为我们要的是write 这个函数的说明,可是出来的却是write 这个命令的说明.为了得到write 的函数说明我们要用 man 2 write. 2 表示我们用的write 这个函数是系统 阅读全文
posted @ 2011-06-24 22:54 魍魉魑魅 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 试着编译下面这个程序/* temp.c */#include <math.h>;int main(int argc,char **argv){double value;printf("Value:%f\n",value);}这个程序相当简单,但是当我们用 gcc -o temp temp.c 编译时会出现下面所示的错误./tmp/cc33Kydu.o: In function `main':/tmp/cc33Kydu.o(.text+0xe): undefined reference to `log'collect2: ld returned 1 阅读全文
posted @ 2011-06-24 22:44 魍魉魑魅 阅读(126) 评论(0) 推荐(0) 编辑
摘要: Makefile的一般格式如下: target: componentsTAB rule第一行表示的是依赖关系.第二行是规则.一个通用的Makefile例子,本人觉得还可以,所以就推荐一下ob = file1#ob为一变量,以后如果要改变源程序文件名称,只替换file1即可${ob}:${ob}.c#${ob}即使用上面定义的变量,这里的${ob}将替换为file,下同gcc -o ${ob} ${ob}.c#如果需要调试信息等等,改变这行即可vi:#定义一操作,以后使用make vi,即可达到vi file1.c的目的 vi ${ob}.c#注:这一行行首一定要使用跳一下,要不make就耍赖皮 阅读全文
posted @ 2011-06-24 22:24 魍魉魑魅 阅读(277) 评论(0) 推荐(1) 编辑
摘要: (hello.c):int main(int argc,char **argv){printf("Hello Linux\n");}gcc –o hello hello.c参数-o表示输出可执行文件,例如 hello参数-c 表示生成目标代码,例如 hello.o参数-g 表示提供对程序进行调试 阅读全文
posted @ 2011-06-24 22:19 魍魉魑魅 阅读(217) 评论(0) 推荐(0) 编辑

导航