现有5个站分别连接在三个局域网上,并且用两个网桥连接起来,如图所示。每一个网桥
的两个端口号都标明在图上。在一开始,两个网桥中的转发表都是空的。以后有以下各站向
其他的站发送了数据帧,即H1发送给H5,H3发送给H2,H4发送给H3,H2发送给H1。试将
有关数据填写在表中。
|---------|----|----|----|----|------------------|-----------------|
| 数据帧 | B1的转发表 || B2的转发表 || B1的处理(转发,丢弃,登记?) | B2的处理(转发?丢弃?登记) |
| 数据帧 | 地址 | 端口 | 地址 | 端口 | B1的处理(转发,丢弃,登记?) | B2的处理(转发?丢弃?登记) |
| H1->H5 | | | | | | |
| H3->H2 | | | | | | |
| H4->H3 | | | | | | |
| H2->H1 | | | | | | |
这是一个在数据链路层通过网桥对局域网进行扩展的简单示例,通过本例我们将学习一下交换机(网桥)的地址学习与转发流程。(假定初始状态地址表位空)
(1)地址学习流程:
- 根据源地址进行学习,当数据帧进入交换机时,第一次地址表中记录MAC地址及对应端口(地址表位空),并开始有效计时(假定为t)。(如 MAC1 1 t)
- 若在有效期内,有数据再次进入该端口,则重新开始有效计时。
- 若超过有效期(t)仍没有再次访问,则清除该MAC地址条目。
(2)数据转发流程:
- 若目的地址为单播帧,且地址表中没有该目的地址的条目,则向其它所有接口转发。(1对其他所有)
- 若目的地址为单播帧,且地址表中确有该目的地址的条目,则向该条目对应的接口转发。(1对1)
- 若目的地址为广播帧(目的地址全1),则向其它所有接口转发。
(3)流程分析
- H1->H5:该数据帧从B1的端口1 进入,所以B1学习后形成 MAC1 1(端口号),此时B的处理是登记,该帧是一个单播帧,MAC5在地址表中不存在,此时B的处理是向其它所有接口转发,B2从1接口收到该数据帧,地址表中没有源地址与目的地址,所有B2登记 MAC1 1,转发。
|---------|------|----|------|----|------------------|-----------------|
| 数据帧 | B1的转发表 || B2的转发表 || B1的处理(转发,丢弃,登记?) | B2的处理(转发?丢弃?登记) |
| 数据帧 | 地址 | 端口 | 地址 | 端口 | B1的处理(转发,丢弃,登记?) | B2的处理(转发?丢弃?登记) |
| H1->H5 | MAC1 | 1 | MAC1 | 1 | 登记,转发 | 登记,转发 |
| H3->H2 | | | | | | |
| H4->H3 | | | | | | |
| H2->H1 | | | | | | |
- H3->H2:该帧从左右两侧分别到B1和B2,B1进行地址学习,登记MAC3 2,并转发至B1左侧(地址表中没有MAC2);B2进行地址学习,登记MAC3 1,并转发至B2右侧(地址表中没有MAC2)
|---------|------|----|------|----|------------------|-----------------|
| 数据帧 | B1的转发表 || B2的转发表 || B1的处理(转发,丢弃,登记?) | B2的处理(转发?丢弃?登记) |
| 数据帧 | 地址 | 端口 | 地址 | 端口 | B1的处理(转发,丢弃,登记?) | B2的处理(转发?丢弃?登记) |
| H1->H5 | MAC1 | 1 | MAC1 | 1 | 登记,转发 | 登记,转发 |
| H3->H2 | MAC3 | 2 | MAC3 | 1 | 登记,转发 | 登记,转发 |
| H4->H3 | | | | | | |
| H2->H1 | | | | | | |
- H4->H3:该帧从B2的端口2进入,登记MAC4 2,目标地址MAC3在B2的地址中,所以从端口1转发,但因H3所连接是一根总线,所以该帧也会从端口2到达B1,B1登记MAC4 2,然后查表发现目标地址MAC3就是进入端口2,所以B1此时会丢弃(源地址和目标地址来自同一个接口,应丢弃,这就是为什么交换机可以隔离冲突域的原因)。
|---------|------|----|------|----|------------------|-----------------|
| 数据帧 | B1的转发表 || B2的转发表 || B1的处理(转发,丢弃,登记?) | B2的处理(转发?丢弃?登记) |
| 数据帧 | 地址 | 端口 | 地址 | 端口 | B1的处理(转发,丢弃,登记?) | B2的处理(转发?丢弃?登记) |
| H1->H5 | MAC1 | 1 | MAC1 | 1 | 登记,转发 | 登记,转发 |
| H3->H2 | MAC3 | 2 | MAC3 | 1 | 登记,转发 | 登记,转发 |
| H4->H3 | MAC4 | 2 | MAC4 | 2 | 登记,丢弃 | 登记,转发 |
| H2->H1 | | | | | | |
- H2->H1:该帧从B1的1端口进入,MAC2不在地址表中,因此B1登记MAC2 1,然后查表转发,发现目的地址MAC1在地址表中,并且是和MAC2来自同一端口,所以丢弃,
|---------|------|----|------|----|------------------|-----------------|
| 数据帧 | B1的转发表 || B2的转发表 || B1的处理(转发,丢弃,登记?) | B2的处理(转发?丢弃?登记) |
| 数据帧 | 地址 | 端口 | 地址 | 端口 | B1的处理(转发,丢弃,登记?) | B2的处理(转发?丢弃?登记) |
| H1->H5 | MAC1 | 1 | MAC1 | 1 | 登记,转发 | 登记,转发 |
| H3->H2 | MAC3 | 2 | MAC3 | 1 | 登记,转发 | 登记,转发 |
| H4->H3 | MAC4 | 2 | MAC4 | 2 | 登记,丢弃 | 登记,转发 |
| H2->H1 | MAC2 | 1 | 无 | 无 | 登记,丢弃 | 无 |