计算机网络第五章课后习题
时间: 2024-12-31 20:19:53 浏览: 12
### 计算机网络第五章课后习题解析
#### 局域网内透明网桥的工作机制与转发表构建
在一个由6台主机(H1至H6)组成的局域网环境中,这些设备通过两个透明网桥(B1, B2)相互连接。当网桥首次启动时,其内部维护的转发数据库为空状态[^2]。
每当一台主机向另一台特定地址发送数据包时,该动作触发了网桥的学习过程:
- H1 发送帧到 H5 后,B1 和 B2 将记录下 H1 的位置,并尝试找到通往 H5 的路径;
- 接着 H5 发送给 H4,则更新关于 H5 所处的位置信息;
- 类似地,随着后续更多通信发生——即 H3 至 H6、H2 到 H4、H6 返回给 H2 及最后两次交互 (H4->H3),每一步都会促使网桥不断调整和完善自身的MAC地址表项,以便更高效地处理未来的流量请求。
最终形成的简化版转发表如下所示(仅展示部分条目):
| MAC 地址 | 网桥接口 |
| --- | --- |
| H1 | B1.portA |
| H5 | B2.portC |
此表格反映了各节点相对于各自相连网桥的具体接入端口情况。值得注意的是,在实际应用场景中,完整的转发表会更加复杂详尽,不仅限于此示例所列项目。
```python
# Python伪代码模拟简单场景下的网桥学习算法
class BridgeLearningAlgorithm:
def __init__(self):
self.mac_to_port = {}
def learn(self, mac_address, port_id):
"""Learn the association between a MAC address and its access point."""
self.mac_to_port[mac_address] = port_id
def forward_frame(self, source_mac, destination_mac):
"""Determine how to handle an incoming frame based on learned associations."""
if destination_mac in self.mac_to_port:
target_port = self.mac_to_port[destination_mac]
print(f"Forwarding from {source_mac} -> {target_port}")
else:
print("Flooding since unknown destination")
bridge = BridgeLearningAlgorithm()
bridge.learn('H1', 'portA')
bridge.forward_frame('H1', 'H5') # Assuming H5 is known to be connected at some other port not shown here.
```
阅读全文