虚拟网桥需求分析
3.1 模拟环境需求
本课题的目的是在一台计算机上,通过应用程序模拟一台虚拟的网桥,而非编写真正网桥设备的软件平台。一台网桥本身没有任何意义,它只有在网络环境中才能体现其功能,因此,除了模拟网桥,还应当设计模拟主机、虚拟网络。模拟主机运行在另一台计算机上,通过底层网络与模拟网桥所在的计算机相连。虚拟网络是由应用程序建立的,以底层网络为基础,具有以太网的特点,通过对软件网络接口层的设计来实现,如图3-1所示,左边为实际网络,右边为虚拟网络。综上所述,模拟环境的要素有:模拟网桥、模拟主机和虚拟网络。
模拟主机端需求
1、主机是帧的发送源
帧的内容为上层信息,目的MAC地址由用户输入,源MAC为主机MAC地址。对帧长有最小限制,若低于最小值应做0填充。
2、主机接收目的地址为本机的帧
主机具有地址过滤的功能,即检查帧的目的MAC地址,若为本机地址,则帧被交到上层处理,反之则丢弃。
3、模拟帧校验功能
帧结构中须有帧校验字段。在发送方MAC层中计算帧校验码,在接收方MAC层中做帧校验,校验结果发现为错帧时,应丢弃该帧。
4、主机MAC地址的配置
模拟软件主机端在初始化时要求用户输入模拟主机的MAC地址,其值必须在虚拟网络中独一无二。在运行的过程中,如果用户需要,模拟主机MAC地址是可改的。
5、主机能自由改变自己在网络中的位置
主机端能方便的退出一个网段,加入另一个网段。主机的退出和加入是分布式的,不需要通知该网段上的任何其它成员,也不需要获取其它成员的信息。
6、显示接收缓存和发送缓存
用户能随时看到发送和接收的MAC帧内容,以16进制表示。接收、发送缓存是实时的,即任何时刻,主机发送或接收一帧,能立刻在缓存中看到,并能显示帧是递交上层还是丢弃等处理细节。
3.3 模拟网桥端需求
1、网桥子层划分
网桥分为网桥控制子层和端口MAC子层。控制子层完成管理过滤表、转发帧的功能;端口MAC子层完成帧的封装、拆装功能。一个网桥运行一个控制子层实体;每个端口上运行一个端口MAC子层的实体。
2、模拟网桥的接收机制
网桥端口接收出现在该端口的所有帧。网桥MAC层没有地址过滤功能,处理端口检测到的所有帧,交给上层处理,并读取其中的MAC层信息。
3、模拟网桥的转发机制
由于不考虑网桥间的控制信息,故网桥发送帧一定是转发原帧。完成以下功能:若是广播帧,则从除源端口外所有端口转发原帧。若非广播帧,则根据帧的目的MAC地址查过滤表:表中已有的,若转发端口与源端口不同,从转发端口转发原帧,否则丢弃;表中没有的,从除源端口外所有端口转发原帧。
4、过滤表的管理
过滤表表项应包含:表编号、目的地址、发送端口、状态(静态、动态)、生命周期。静态表:可由用户任意设置。用户可在任何时刻添加、删除静态表项,更改静态表项需先删除再添加。保证过滤表中不出现重复项,避免静态表项之间、静态和动态表项间目的地址相同,但发送端口不同的情况。动态表:只能通过自学习来更新。若源MAC地址在过滤表中没有,则自学习新表项。若在表中已存在,则检查其状态,为动态则自学习目的端口、更新生命周期,为静态则不启动自学习。计时系统:管理各动态表项的生命周期,用户可以设置动态表的生命周期初始值。当启动自学习更新动态表项时,重置动态表项的生命周期;当动态表项的生命周期耗尽时,删除动态表项。
5、显示过滤表概况
显示过滤表的当前生命周期初始值及静态、动态表项数量,还有所支持的最大表空间大小等。
6、 模拟端口的接收缓存和发送缓存
用户能看到完整的MAC帧内容,帧由16进制表示。实时地显示收到和发出的帧,并能显示帧是递交上层还是丢弃或是转发等处理细节。
7、 网桥各端口分开显示
用户一次只能看到一个端口上的接收、发送缓存。避免了多个端口收发的帧混在一起,用户难以区分的情况。另外,由于不模拟生成树协议,网桥的端口只有两个状态,UP和DOWN,网桥的端口不设MAC地址。网桥应具备管理网络的功能:实验时,软件应能为发现问题、找出问题所在提供支持,能通过设置过滤表,控制网络流量。