深入理解Linux网络技术内幕 第13章 桥接-概念

中继器、网桥、路由器

  • 中继器通常有两个端口,只是简单的把一个端口接收到数据复制到另一个端口。
  • 网桥需要了解链路层协议。大多数LAN都用网桥也被称作交换机(switch)。
  • 路由器需要了解L3层协议,可以根据路由表转发入口报文。

网桥为每个接口指定一个链路层地址,然后把所有目的地不是本机的报文都转发出去。网桥在下面两种情况会消费报文:

  • 报文目的地址是该接口的MAC地址
  • 生成树协议报文

网桥合并LAN

网桥将两个LAN合并再一起,使其看起来就像是一个LAN。
在这里插入图片描述

在LAN中任何主机发出的报文都会被其他主机接收到。如上图所示,当主机A发出一个报文时,LAN1其他主机和网桥都会接收到该报文。网桥将入口报文复制到其他的所有端口。因此最后LAN1和LAN2所有主机都会接收到主机A产生的报文。因此可以说有了网桥,LAN1和LAN2就像是一个大LAN一样。
网桥转发收到的报文,不会增加、删除、修改报文内容。

桥接不同技术的LAN

有的网桥设备可以桥接不同传输介质的设备,比如Ethernet和Token Ring。

地址学习

前面提到网桥将收到的报文会复制到其他所有的接口,这会造成网桥CPU资源和网络带宽的浪费。因为LAN中主机一般只处理目的地址是本机的报文。为解决这个问题网桥学习主机的位置,然后使用学习到的信息决定将报文复制到正确的端口上,这个过程称为被动学习。
学习方式是通过报文传输时进入网桥的端口实现的,通过这个报文网桥可以确定发送报文源地址,此时将该原地址和报文的进入端口记录下来。当有报文需要传给这个地址时,就可以直接使用这个信息不用再将报文传递到网桥的所有端口。如果查询不到这个信息,则还是需要将报文复制到网桥所有端口,这种行为叫做扩散。

广播和多播地址

网桥接收到目的地址是链路层广播地址或L2多播地址的报文时,会将报文复制给除接收端口的其余端口。多播地址和广播地址不能作为源地址,所以不能被网桥学习作为转发信息。

老化

网桥需要动态更新接口可达地址的列表,否则有可能导致报文无法或或者错误的将报文转发网口。
当主机在网络中位置发生变化改变接入网桥的端口时,只要主机发送报文,网桥会更新其接口地址信息。但是如果一台主机在移动位置后不传输任何报文,网桥没办法学习新位置,因此为了让网桥存储的信息适应拓扑的变化,需要引入老化机制。当首次学习到一个新地址时,启动一个定时器,之后如果再次收到该主机的报文,就重设该定时器。定时器时间越短网桥对网络地址变化的感知速度越快,通常设置为5秒。
在这里插入图片描述

多台网桥

网桥彼此之间、网桥和主机路由器之间都是透明的,所以可以采用多台网桥建立较大的L2网络。网桥并不关心,主机究竟在何处,它只需要知道通过哪个网口可以到达该主机即可。
同一个LAN中可以有多台网桥,提高不同LAN之间连通能力,如果有一个网桥无法使用,其他网桥可以维护这种连通性。

网桥环路

网桥从入口报文的源地址中得到主机位置,进而可以建立一个地址数据库,然后根据这些地址数据库复制到正确的端口。如果在同一个LAN中有超过一次网桥在工作,就不可以假设接收报文的端口和产生该报文的LAN相连,因为这个报文可能是另外的网桥转发过来的。这会造成严重的后果,如下图所示:
主机A任意发送一个报文,两台网桥都会收到该报文,并了解到主机A在LAN1中,同时开始时网桥的地址信息库时空的,网桥将收到的报文扩散到LAN2中,因此两台网桥的又会在LAN2的接口接收到由网桥发送的报文,这时两个网桥认为主机A移动到LAN2中,并将报文转发到LAN1中,而两个网桥会再次收到该报文,两个网桥又会认为主机A移动到了LAN1中,形成循环。
在这里插入图片描述

无环路拓扑

为解决上一小节提出的问题,我们可以通过关闭某些网桥的端口形成无环路的拓扑结构。
网桥由于是分布式的结构,因此需要使用通过某种算法交换彼此信息后关闭适当的端口,收敛成无环路拓扑结构。
用于找出最佳无环路拓扑的算法叫做生成树协议STP,其改进版时RSTP和MSTP。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值