【正确答案】当一个网桥刚连接到局域网时,其转发表是空的,若此时收到一个帧,则应按照以下算法处理该帧和建立转发表。
1)从端口x收到无差错的帧,在转发表中查找目的站MAC地址。
2)若有,则查找出此、MAC地址应当走的端口d,然后进行3),否则转到5)。
3)若到这个MAC地址去的端口等于x,则丢弃此帧,否则从端口d转发。
4)转到6)。
5)向网桥除了x以外的所有端口转发此帧。
6)若源站不在转发表中,则将源站MAC地址加入到转发表中,登记该帧进入网桥的端口号,设置计时器,转到8);如果源站在转发表中,执行7)。
7)更新计时器。
8)等待新的数据帧,转到1)。
根据已知的数据发送过程,按照网桥的工作算法,即可得到最终的结果。
根据上述的算法,下面一一分析题目中的各种转发。
1)A发给E,网桥B1在端口1收到源地址为MAC1、目的地址为MAC5的帧(步骤1),此时转发表为空,转到步骤5,网桥B1向所有端口转发此帧,并将此帧的源地址添加到网桥B1中,并登记该帧进入网桥的端口号,即1端口号,同理网桥B2也将此帧的源地址添加到网桥B2中,并登记该帧进入网桥的端口号,也是1端口号。所以表第一行应该填入:
| MAC1 |
1 |
MACl |
1 |
转发,写入转发表 |
转发,写入转发表 |
2)C发给B,和第一种情况完全一样,仅仅是C从网桥B1的端口2进入,所以表第二行应填入:
| MAC3 |
2 |
MAC3 |
1 |
转发,写入转发表 |
转发,写入转发表 |
3)D发给C,网桥B2没有源地址为MAC4的帧(主机D发的帧),所以将其源地址写入转发表(步骤6),并且是从网桥B2端口2进来的。网桥B1知道目的地址为MAC3的帧(发给主机C)是从端口2进来的,并且转发表中填入的也是端口2,根据步骤3,应该丢弃此帧;由于网桥B1还没有地址为MAC4的帧所以需要将其写入转发表,并且端口为2,因此表第三行应该填入:
| MAC4 |
2 |
MAC4 |
2 |
写入转发表,丢弃不转发 |
转发,写入转发表 |
4)B发给A,网桥B1的转发表写入转发目的地址为MAC1的帧是从端口1转发的,但是此时该帧又是从端口1进入的,所以丢弃此帧(步骤3),并将MAC2写入网桥B1的转发表;由于网桥B1丢弃了此帧,因此网桥B2收不到此帧,网桥B2没有任何动作发出。所以表第四行应填入:
| MAC2 |
1 |
无 |
无 |
写入转发表,丢弃不转发 |
接收不到该帧 |
综上所述,整个完整的过程见下表。
发送 的帧 |
B1的转发表 |
B2的转发表 |
B1的处理 |
B2的处理 |
| 地址 |
接口 |
地址 |
接口 |
| A→E |
MAC1 |
1 |
MAC1 |
1 |
转发,写入转发表 |
转发,写入转发表 |
| C→B |
MAC3 |
2 |
MAC3 |
1 |
转发,写入转发表 |
转发,写入转发表 |
| D→C |
MAC4 |
2 |
MAC4 |
2 |
写入转发表,丢弃不转发 |
转发,写入转发表 |
| B→A |
MAC2 |
1 |
无 |
无 |
写入转发表,丢弃不转发 |
接收不到该帧 |