做网站虚拟主机多少钱,申请微信公众号,网站建设前的ER图,网站建设的书计算机网络#xff1a;数据链路层 - 扩展的以太网 集线器交换机自学习算法单点故障 集线器 这是以前常见的总线型以太网#xff0c;他最初使用粗铜轴电缆作为传输媒体#xff0c;后来演进到使用价格相对便宜的细铜轴电缆。
后来#xff0c;以太网发展出来了一种使用大规模… 计算机网络数据链路层 - 扩展的以太网 集线器交换机自学习算法单点故障 集线器 这是以前常见的总线型以太网他最初使用粗铜轴电缆作为传输媒体后来演进到使用价格相对便宜的细铜轴电缆。
后来以太网发展出来了一种使用大规模集成电路可靠性非常高的设备叫做集线器并且使用更便宜、更灵活的双绞线作为传输媒体。如图所示 这是一个使用集线器和互联了四台主机的新型拓普的以太网主机中的以太网卡以及集线器各接口之间通过双绞线电缆进行连接。
集线器上的各站共享逻辑上的总线资源由于各个主机发送的信号依然存在碰撞的情况所以使用的还是 CSMA/CD 协议来避免碰撞。
集线器只工作在物理层它的每个接口仅简单的转发不进行碰撞检测。碰撞检测的任务由各站的网卡负责。我们可将集线器简单看作是一条总线但是相比于总线集线器一般都有少量的容错能力和网络管理功能例如若网络中某个网卡出现了故障不停的发送帧此时集线器也可以检测到这个问题。在内部断开与出故障网卡的连线使整个以太网仍然能正常工作。-
使用集线器可以对以太网进行扩展。由于集线器只工作在物理层所以更具体的说法是使用集线器在物理层扩展以太网。我们来举例说明 这三个以太网相互独立各自共享自己的总线资源是三个独立的碰撞域或冲突域就是说这个域内部的主机有可能会发生相互碰撞。
但是这三个系之间目前是不能进行通信的。
为了使各系的以太网能够相互通信可再使用一个集线器将它们互联起来 这样原来三个独立的以太网就互联成为了一个更大的以太网。
但是原来三个独立的碰撞域就合并成了一个更大的碰撞域。例如一系中的某台主机给 二系 中的某台主机发送数据帧。由于总线特性该数据帧的信号会传输到整个网络中的一系二系三系的所有主机。
因此通过集线器来合并以太网的方式并不优秀其虽然可以扩大以太网的覆盖范围但是存在以下几个缺点
碰撞域变大后一个域中主机变多数据发生碰撞的概率变大了所有主机都共享该网络的带宽扩展后整个网络的总带宽不变被更多主机瓜分后每个主机的带宽都减小了集线器要求每个主机的数据率相同不能兼容多种数据率的主机
在集线器之后发展出了更先进的网络互联设备也就是以太网交换机。 交换机 交换机的每一个接口都是一个独立的碰撞域 为什么交换机可以做到隔离碰撞域呢集线器在逻辑上可以看做一个总线各个连接在集线器上的主机不受约束的发送消息通过CSMA/CD协议来保证可靠传输集线器上的任意两台主机之间都有可能会发生碰撞。
而交换机不一样当交换机收到消息后会根据MAC地址进行有针对性的转发而不是粗暴的向所有端口转发因此可以避免碰撞。
要注意的是交换机会隔离碰撞域但不会隔离广播域。
以太网交换机通常都有多个接口每个接口都可以通过双绞线电缆与一台主机或另一个以太网交换机相连。一般都工作为全双工也就是发送帧和接收帧可以同时进行。以太网交换机具有并行性能同时连通多对接口使多对主机能同时通信而无碰撞。
以太网交换机的接口一般都支持多种速率例如 10 兆比特每秒、 100 兆比特每秒、 1G 比特每秒、实际比特每秒等。
以太网交换机工作在数据链路层当然也包括物理层。收到帧后在帧交换表中查找帧的目的 MAC 地址所对应的接口号然后通过该接口转发帧。
那么交换机是如如何进行有针对性的消息转发的这就涉及到交换机的核心算法自学习算法。 自学习算法
在交换机中会维护一张交换表这个交换表存储了MAC地址与接口的映射关系这样交换机就知道一个帧要往哪一个接口转发。 另外的交换机还会额外维护一个有效时间当交换表的某个条目超过有效时间就会被从交换表中删除。
当交换机收到一个帧时其会进行两个过程自学习与转发。
自学习 读取帧的源地址在交换表中查找该地址 如果交换表中原先存在该地址更新该地址的接口与有效时间条目如果交换表中原先不存在该地址插入一个新的项目并填入对应的地址接口有效时间 转发 读取帧的目的地址在交换表中查找该地址 如果没有向除了帧进入的接口以外的所有接口转发该帧如果有判断该接口与进入的接口是否一致如果一致就丢掉这个帧如果不一致向该接口转发 接下来我们用一个案例帮助大家理解现在我们尝试完成以下表格。 最初整个表是空的。
一开始A给B发送帧一开始A发送的帧被传送到集线器集线器收到帧后只是粗暴的向除A外的所有接口转发于是交换机1和B都会收到这个帧B就可以收到A发送的数据了。但是这还没完因为交换机1还要处理数据
交换机1收到帧后先进行自学习帧的源地址为A的MAC地址查找转发表后发现没有A的地址于是增加条目
交换机1的转发表如下
MAC地址接口有效时间A的MAC地址1 10 min
在此我们假设有效时间默认为10 min因为这个帧是从接口1传入的所以转发表中的接口条目填入1。
自学习完成后就要进行转发
查找目的地址B的MAC地址发现转发表中没有该地址于是向接口1以外的所有接口转发因为帧是从接口1进来的所以不会向接口1再发送。
处于接口2的主机C收到帧后发现帧的目的地址不是自己的把它丢掉。处于接口3的交换机2收到该帧后又要进行自学习和转发两个过程
自学习帧的源地址为A的MAC地址查找转发表后发现没有A的地址该帧是从交换机2的接口1进入的于是增加条目。
交换机2的转发表如下
MAC地址接口有效时间 A的MAC地址1 10 min
随后再进行转发查找目的地址B的MAC地址发现转发表中没有该地址于是向接口1以外的所有接口转发。主机C和D收到该帧后发现目的地址不是自己丢弃。 随后B再向A发送数据由于A和B被连在同一个集线器中此时A直接就通过集线器收到B的帧了完成了传输。但是交换机1也会收到这个帧此时要进行自学习和转发
交换机1收到帧后先进行自学习帧的源地址为B的MAC地址从接口1进入的交换机1查找转发表后发现没有B的地址于是增加条目。
交换机1的转发表如下
MAC地址接口有效时间A的MAC地址110 min B的MAC地址1 10 min
随后进行转发
查找目的地址A的MAC地址发现转发表中有该地址A处于接口1而该帧就是从接口1进入的所以交换机会直接丢弃这个帧不会再进行转发了。 随后A再向D发送数据交换机1会收到这个帧此时要进行自学习和转发
交换机1收到帧后先进行自学习帧的源地址为A的MAC地址从接口1进入的交换机1查找转发表后发现有A的地址于是进行更新接口和有效时间以确保数据是最新的。
交换机1的转发表如下
MAC地址接口有效时间A的MAC地址110 minB的MAC地址110 min
上表中A的接口和有效时间都更新了只是和更新前没有区别而已假设以上所有的发送过程执行的很快所以有效时间没有变。
随后进行转发
查找目的地址D的MAC地址发现转发表中没有该地址于是向接口1以外的所有接口转发。
处于接口2的主机C收到帧后发现帧的目的地址不是自己的把它丢掉。处于接口3的交换机2收到该帧后又要进行自学习和转发两个过程
自学习帧的源地址为A的MAC地址查找转发表后发现有A的地址该帧是从交换机2的接口1进入的于是更新条目。
交换机2的转发表如下
MAC地址接口有效时间A的MAC地址110 min
随后再进行转发查找目的地址D的MAC地址发现转发表中没有该地址于是向接口1以外的所有接口转发。主机C收到该帧后发现目的地址不是自己丢弃。主机D收到该帧后发现目的地址是自己于是接收该帧完成消息传送。 随后D再向A发送数据交换机2会收到这个帧此时要进行自学习和转发
交换机2收到帧后先进行自学习帧的源地址为D的MAC地址从接口3进入的交换机2查找转发表后发现没有D的地址于是增加条目。
交换机2的转发表如下
MAC地址接口有效时间A的MAC地址110 minD的MAC地址310 min
随后进行转发
查找目的地址A的MAC地址发现转发表中有该地址于是向接口1转发。
处于接口1的交换机1收到该帧后又要进行自学习和转发两个过程
自学习帧的源地址为D的MAC地址查找转发表后发现没有D的地址该帧是从交换机1的接口3进入的于是增加条目。
交换机1的转发表如下
MAC地址接口有效时间A的MAC地址110 minB的MAC地址110 minD的MAC地址310 min
随后再进行转发查找目的地址A的MAC地址发现转发表中有该地址于是向接口1转发。主机B收到该帧后发现目的地址不是自己丢弃。主机A收到该帧后发现目的地址是自己于是接收该帧完成消息传送。 随后C再向B发送数据交换机1会收到这个帧此时要进行自学习和转发
交换机1收到帧后先进行自学习帧的源地址为C的MAC地址从接口2进入的交换机1查找转发表后发现没有C的地址于是增加条目。
交换机1的转发表如下
MAC地址接口有效时间A的MAC地址110 minB的MAC地址110 minD的MAC地址310 minC的MAC地址210 min
随后进行转发
查找目的地址B的MAC地址发现转发表中有该地址于是向接口1转发。主机A收到该帧后发现目的地址不是自己丢弃。主机B收到该帧后发现目的地址是自己于是接收该帧完成消息传送。 当D关机离线等到交换机1和交换机2中的有效时间到了后就会把D对于的条目给删掉 这个过程中你会发现越到后面交换机就会进行更加针对性的转发以保证最高的效率。因为自学习算法相当于在累计前面转发的经验让交换机知道当前链路更加详细的消息。 单点故障
现有如下拓扑结构 交换机1通过接口3来向B和D发送消息而交换机2通过接口1向A和C发送消息。
假如现在3 - 1这段线路发生了错误那么交换机1上面的主机和交换机2上面的主机就无法通信了这就是单点故障问题。 为了避免单点故障以太网中会增加一些冗余的链路 这样就算某一条链路发生单点故障也有另外一条链路可以保证连接。但是这也带来了另外的问题那就是网络环路问题如下 现在A要给D发送消息
交换机1检测后发现D在接口3于是通过接口3转发该帧交换机2收到后经过检测发现没有D的消息于是向2 3 4三个接口转发通过接口2进入交换机1此时交换机1检测后发现D在接口3于是通过接口3转发该帧
此时就已经进入了一个死循环帧会在这个循环中不断转发D会不断收到同一条消息。
对于这个问题IE 的 802.1D 标准制定了一个生成树协议 STP(SpanningEE Tree Protocol)。STP 不改变网络的实际拓扑结构但在逻辑上则切断某些链路以消除网络中的环路使网络在逻辑上变成树状拓扑。
关于STP本博客不做详解。