写一个程序来模拟网桥功能(C++实现)
模拟实现网桥的转发功能,以从文件中读取帧模拟网桥从网络中收到一帧,即从两个文件中读入一系列帧,从第一个文件中读入一帧然后从第二个文件中再读入一帧,如此下去。对每一帧,显示网桥是否会转发,及显示转发表内容。
要求:Windows 或 Linux 环境下运行,程序应在单机上运行。
分析:
- 用程序模拟网桥功能,可以假定用两个文件分别代表两个网段上的网络帧数据。
- 而两个文件中的数据应具有帧的特征,即有目的地址,源地址和帧内数据。程序交替读入帧的数据,就相当于网桥从网段中得到帧数据。
- 对于网桥来说,能否转发帧在于把接收到的帧与网桥中的转发表相比较。判断目的地址后才决定是否转发。由此可见转发的关键在于构造转发表。这里转发表可通过动态生成。
以上是指导书上的要求,目的是了解网桥转发表的功能原理,其中最重要的是理解自学习以及判断是否转发
实验原理
1)读取文件1中的第一条模拟帧
2) 自学习与转发 : 查找交换表中,是否存在目的接口,若存在,则转发,若不存在,则将该的源地址和接口写入交换表中,并向除了该接口以外的所有接口广播这个帧
3)过滤 : 广播之后,非目