路由模拟——类图设计

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

路由模拟系统 类关系总图

(本文档为草稿)

2004-3-2

说明:本文档中所有类的构造函数与析构函数省略说明。

路由模拟系统类图:

关于网络的生成

网络的生成,主要是由类Net和NetNode完成的。如下面的一个网络:

图中A、B、C、D都是路由器,由光纤连接。生成这个网络,需要如下两步:

1, 对于拓扑结构,由矩阵作为参数:

A B C D

A 1 1 1 0

B 1 1 1 0 =NetArray。

C 1 1 1 1

D 0 0 1 1

2, 对于物理结构,耗散信息由作为参数:

A B C D

A 0 5 4 -1

B 5 0 6 -1 =ValArray。

C 4 6 0 2

D -1 -1 2 0

另外需要两个向量,其一是“路由器类型向量”,上图中网络为:

R=(ra,rb,rc,rd),其中ra,rb,rc,rd都是“中心路由器”。

另一个向量是“网络线路类型向量”,上图中网络为:

L=(lab,lac,lbc,lcd),其中lab,lac,lbc,lcd都是“光纤”。

所以,在建立网络的步骤中,路由模拟系统与通信模拟的参数传递为:

NetArray,ValArray,R,L 。

建成的网络,将使用邻接表来存储。

那么,网络设备的基类在类图中有NetElement,AbsLine,AbsRout,任意复杂的网络可试图在此基础上继承创建。而我们在本系统中只模拟主干网络的路由,故另继承而得两个类Fiber,CentralRout。系统要维护一个网络设备类型表:NetElementType。

则网络生成器的类图为:

关于网络数据包(数据结构)与路由表

2004-3-3

1, 网络数据包的设计完全按照IP协议,使用IP数据包。在路由器中有数据包的队列,来模拟路由器的端口,该数据结构使用STL::list来完成。

2, 路由表的设计,单独使用一个数据结构Table。

可见于路由模拟系统的类图。

关于路由器

路由器的类型不同,一些表现为:

1, 路由器性能参数。

2, 路由器端口的组织形式。

3, 路由器的服务接口。

故AbsRout只是个纯虚类,不同的路由器可以继承实现。路由表是由路由器计算填入的,并完成其维护。路由计算与路由器本身的实现是分离的。路由计算的实现可单独调试。拥塞与数据包丢失等处理方案还要再讨论。

NetWriteData与NetReadData都是与通信模拟系统的接口,供其向路由器端口读取或写入数据包。

准备的思路为:

数据包的传输过程中,以某种概率丢失;而成功接收数据包的路由器,需要返回应答消息。数据包应在网络通信模拟中丢失,而路由器可以检测到所发送的数据包是否成功到达下一个路由器。计算由路由器来完成,但实现的时候与路由模拟系统分离。

总的来说,路由模拟与通信模拟有如下接口:

1 创建网络的时候,Net通过GetNetinfor来获得通信模拟系统提供的NetArray,

ValArray,R,L。

2 数据包传输过程中,通信模拟系统通过CentralRout的NetWriteData与NetReadData完成数据包的写与读。

更为详细的接口说明见于接口说明文档。

< 完 >

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航