交换机的工作原理详细介绍

  交换机的工作原理:

  交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中。

  交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发。

  如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过程称之为泛洪(flood)。

  广播帧和组播帧向所有的端口转发。

  交换机的三个主要功能:

  学习:以太网交换机了解每一端口相连设备的MAC地址,并将地址同相应的端口映射起来存放在交换机缓存中的MAC地址表中。

  转发/过滤:当一个数据帧的目的地址在MAC地址表中有映射时,它被转发到连接目的节点的端口而不是所有端口(如该数据帧为广播/组播帧则转发至所有端口)。

  消除回路:当交换机包括一个冗余回路时,以太网交换机通过生成树协议避免回路的产生,同时允许存在后备路径。

  交换机的工作特性:

  交换机的每一个端口所连接的网段都是一个独立的冲突域。

  交换机所连接的设备仍然在同一个广播域内,也就是说,交换机不隔绝广播(唯一的例外是在配有VLAN的环境中)。

  交换机依据帧头的信息进行转发,因此说交换机是工作在数据链路层的网络设备

  交换机的分类:

  依照交换机处理帧的不同的操作模式,主要可分为两类。

  存储转发:交换机在转发之前必须接收整个帧,并进行检错,如无错误再将这一帧发向目的地址。帧通过交换机的转发时延随帧长度的不同而变化。

  直通式:交换机只要检查到帧头中所包含的目的地址就立即转发该帧,而无需等待帧全部的被接收,也不进行错误校验。由于以太网帧头的长度总是固定的,因此帧通过交换机的转发时延也保持不变。

  注意:

  直通式的转发速度大大快于存储转发模式,但可靠性要差一些,因为可能转发冲突 帧或带CRC错误的帧。

  生成树协议

  消除回路:

  在由交换机构成的交换网络中通常设计有冗余链路和设备。这种设计的目的是防止一个点的失败导致整个网络功能的丢失。虽然冗余设计可能消除的单点失败问题,但也导致了交换回路的产生,它会导致以下问题。

  广播风暴

  同一帧的多份拷贝

  不稳定的MAC地址表

  因此,在交换网络中必须有一个机制来阻止回路,而生成树协议(Spanning Tree Protocol)的作用正在于此。

  生成树的工作原理:

  生成树协议的国际标准是IEEE802.1b。运行生成树算法的网桥/交换机在规定的间隔(默认2秒)内通过网桥协议数据单元(BPDU)的组播帧与其他交换机交换配置信息,其工作的过程如下:

  通过比较网桥优先级选取根网桥(给定广播域内只有一个根网桥)。

  其余的非根网桥只有一个通向根交换机的端口称为根端口。

  每个网段只有一个转发端口。

  根交换机所有的连接端口均为转发端口。

  注意:生成树协议在交换机上一般是默认开启的,不经人工干预即可正常工作。但这种自动生成的方案可能导致数据传输的路径并非最优化。因此,可以通过人工设置网桥优先级的方法影响生成树的生成结果。

  生成树的状态:

  运行生成树协议的交换机上的端口,总是处于下面四个状态中的一个。在正常操作 期间,端口处于转发或阻塞状态。当设备识别网络拓扑结构变化时,交换机自动进行状态转换,在这期间端口暂时处于监听和学习状态。

  阻塞:所有端口以阻塞状态启动以防止回路。由生成树确定哪个端口转换到转发状态,处于阻塞状态的端口不转发数据但可接受BPDU。

  监听:不转发,检测BPDU,(临时状态)。

  学习:不转发,学习MAC地址表(临时状态)。

  转发:端口能转送和接受数据。

  小知识:实际上,在真正使用交换机时还可能出现一种特殊的端口状态-Disable状态。这是由于端口故障或由于错误的交换机配置而导致数据冲突造成的死锁状态。如果并非是端口故障的原因,我们可以通过交换机重启来解决这一问题。

  生成树的重计算:

  当网络的拓扑结构发生改变时,生成树协议重新计算,以生成新的生成树结构。当所有交换机的端口状态变为转发或阻塞时,意味着重新计算完毕。这种状态称为会聚(Convergence)。

  注意:在网络拓扑结构改变期间,设备直到生成树会聚才能进行通信,这可能会对 某些应用产生影响,因此一般认为可以使生成树运行良好的交换网络,不应该超过七层。此外可以通过一些特殊的交换机技术加快会聚的时间。

时间: 2024-10-21 19:30:35

交换机的工作原理详细介绍的相关文章

交换机的工作原理以及种类的区分

许多新型的Client/Server应用程序以及多媒体技术的出现,导致了传统的共享式网络远远不能满足要求,这也就推动了局域网交换机的出现. 1.交换机的定义 局域网交换机拥有许多端口,每个端口有自己的专用带宽,并且可以连接不同的网段.交换机各个端口之间的通信是同时的.并行的,这就大大提高了信息吞吐量.为了进一步提高性能,每个端口还可以只连接一个设备. 为了实现交换机之间的互连或与高档服务器的连接,局域网交换机一般拥有一个或几个高速端口,如100MB以太网端口.FDDI端口或155MB ATM端口

Web Service 运行原理详细介绍_java

     利用清明小假期,温习了一遍Web Service的相关内容,对其工作原理进行了简要总结.以供有需求的朋友和自己日后参考.文章若有不当之处,敬请朋友们提出宝贵建议,以求共勉.       Web服务中,我们应该首先了解相关的术语含义:WSDL.UDDI....相关术语方面的介绍在此不再赘述,重点放在原理上. 在Web服务中,存在三个角色:服务提供者.服务请求者和服务中介,三者之间的关系如图1-1所示     实现一个完整的Web服务包括以下步骤:    ◆ Web服务提供者设计实现Web

OpenStack 工作流workflows使用原理详细介绍_OpenStack

Workflows 工作流是复杂的forms(表单)和tabs,每一个workflow必须包含 Workflow,Step 和 Action 下面举例讲解workflow用法: 接下来的例子讲解了数据是如何从urls.views.workflows.templates之间互相传递的 在 urls.py中, 定义了一个参数. 例如. resource_class_id. RESOURCE_CLASS = r'^(?P<resource_class_id>[^/]+)/%s$' urlpatter

JAVA JNI原理详细介绍及简单实例代码_java

JAVA JNI原理 JNI是JAVA标准平台中的一个重要功能,它弥补了JAVA的与平台无关这一重大优点的不足,在JAVA实现跨平台的同时,也能与其它语言(如C.C++)的动态库进行交互,给其它语言发挥优势的机会. 有了JAVA标准平台的支持,使JNI模式更加易于实现和使用.在此总结了下面这个知识图: 实例: 环境说明:ubuntu 10.4.2 LTS系统 程序清单1:src/com/magc/jni/HelloWorld.java /** * */ package com.magc.jni;

Android增量升级的方法和原理详细介绍_Android

总结:我们使用delta编码算法减少Android应用升级程序的大小.我们通过bsdiff和bspatch工具在android上实现delta编码算法.服务器软件和android应用已经部署.当前,我们能够减少Android升级流量的50%,如果大量的部署,这将会减少网络的压力. 升级机制:我们打算采用delta编码的patch升级Android应用.新的升级机制可以描述如下: 1.  在服务器上生成一个patch.2.  下载patch到手机中.3.  通过补丁获取一个已安装应用的新的安装ap

bootloader功能介绍/时钟初始化设置/串口工作原理/内存工作原理/NandFlash工作原理

bootloader功能介绍 初始化开发板上主要硬件(时钟,内存,硬盘), 把操作系统从硬盘拷贝到内存,然后让cpu跳转到内存中执行操作系统. boot阶段 1.关闭影响CPU正常执行的外设 -关闭看门狗(watch dog)   WTCON 0xE2700000 -关闭中断 CPSR I和F位设置为1,关闭,不响应任何中断. 2.初始化时钟 -倍频到1Ghz,为外设分频 *串口驱动 3.初始化内存控制器,DDRAM -验证内存,往里面写一个值,然后再读出来 4.初始化硬盘,nand Flash

详细解析路由器工作原理

路由器工作原理概述在控制平面上, 路由协议可以有不同的类型.路由器工作原理通过路由协议交换网络的 拓扑结构信息,依照拓扑结构动态生成路由表.在数据通道上,转发引擎从输入线路接收IP包 后,分析与修改包头,使用转发表查找输出端口,把数据交换到输出线路上.转发表是根据路由表生成的,其表项和路由表项有直接对应关系,但转发表的格式和路 由表的格式不同,它更适合实现快速查找.转发的主要流程包括线路输入.包头分析.数据存储.包头修改和线路输出.路由协议根据网 络拓扑结构动态生成路由表.IP协议把整个网络划分

Android开发中通过源码彻底理解ListView工作原理【超详细】

ListView控件是Android应用开发中原生控件中最复杂,但是又相当的重要,当应用程序要处理很多内容而且屏幕无法公完全显示的时候,ListView就可以发挥其作用了,他可以滑动手指就能把超出屏幕的部分内容移动显示到屏幕中. ListView还有一个非常神奇的功能,即使在ListView中加载非常非常多的数据,比如达到成百上千条甚至更多,ListView都不会发生OOM或者崩溃,而且随着我们手指滑动来浏览更多数据时,程序所占用的内存竟然都不会跟着增长.那么ListView是怎么实现这么神奇的

CSS工作原理及CSS规则命名介绍

本文为学习笔记,部分内容摘自李晓峰先生的<CSS设计指南>一书 CSS规则 一条CSS规则实际上就是一条CSS指令,这条指令先选择HTML元素,然后设定选择元素的样式 下面是一条简单的CSS规则,它把段落背景色设置为绿色 Example_1 p{background-color: green} CSS规则命名 一条CSS规则由选择符+声明两部分组成 选择符:指出要选择的元素 声明:由属性和值组成,属性指出影响元素哪方面样式,值其实就是属性的一种状态 在上面的例子中可以看出一条规则从左到右依次是