路由模拟——类图设计

来源:互联网 发布:淘宝客贷变成了网商贷 编辑:程序博客网 时间:2024/06/06 13:21

        路由模拟系统 类关系总图

 

                           (本文档为草稿)

   2004-3-2

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

 

  路由模拟系统类图:

 

 

关于网络的生成

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

                  

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

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=rarbrcrd),其中rarbrcrd都是“中心路由器”。

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

                  L=lablaclbclcd),其中lablaclbclcd都是“光纤”。

 

 

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

             NetArrayValArrayRL

 

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

 

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

则网络生成器的类图为:

   

 

 

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

 

2004-3-3

 

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

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

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

 

关于路由器

 

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

1,  路由器性能参数。

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

3,  路由器的服务接口。

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

 

 

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

 

准备的思路为:

 

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

 

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

 

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

          ValArrayRL

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

 

 

 

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

 

 

 

 

 

 

 

                                                                      < >