交换机基本原理及转发流程
交换机的工作原理是什么

交换机的工作原理是什么
交换机是一种网络设备,用于将传入的数据帧从一个端口转发到另一个端口,从而实现网络中多台计算机之间的通信。
交换机的工作原理可以简单分为三个步骤:
1. 数据帧的接收:
当一个数据帧从网络中的源设备发送出来时,它首先会被交换机的某个端口接收到。
交换机通过物理层的连接,将数据帧从物理媒介(如网线)上接收到交换机的端口上。
2. 数据帧的转发:
交换机会在接收到数据帧后,通过数据链路层的处理将数据帧的目的MAC地址解析出来,并查找其对应的目的端口。
交换机会根据目的MAC地址在内部的转发表中查找,找到对应的目的端口,然后将数据帧转发到该端口上。
这样,数据帧就可以直接发送到目的设备。
3. 数据帧的广播/泛洪:
如果交换机在转发表中找不到数据帧的目的MAC地址,或者目的地址为广播地址(全为1),交换机会将该数据帧广播到所有端口上,以实现广播或泛洪的功能。
这样,所有连接在交换机上的设备都能收到该数据帧。
通过这种工作原理,交换机能够实现网络中多个设备之间的快速、准确的数据传输。
与集线器(Hub)相比,交换机可以对数据帧进行智能化的转发,避免数据冲突和冗余,提高网络的效率和带宽利用率。
交换机的工作原理

交换机的工作原理交换机是计算机网络中的核心设备之一,用于实现局域网内计算机之间的数据交换和通信。
它能够根据目的地址将数据包转发到正确的目标设备,提供高效的网络连接和通信服务。
下面将详细介绍交换机的工作原理。
一、交换机的基本原理1. 数据链路层交换机工作在OSI模型的第二层,即数据链路层。
它通过物理接口接收数据帧,解析帧头中的目的MAC地址,根据该地址进行转发决策。
2. MAC地址表交换机内部维护着一个MAC地址表,记录了连接到交换机的设备的MAC地址和对应的物理接口。
当交换机接收到一个数据帧时,它会检查帧头中的目的MAC地址,并在MAC地址表中查找该地址对应的接口。
如果找到匹配项,交换机会将数据帧转发到相应接口;如果找不到匹配项,交换机会将数据帧广播到所有接口(除了源接口)。
3. 学习过程当交换机接收到一个数据帧时,它会将源MAC地址和接收到该帧的接口添加到MAC地址表中。
这个过程称为学习。
通过学习过程,交换机逐渐建立起MAC地址表,提高了数据转发的效率。
4. 数据转发当交换机接收到一个数据帧时,它会根据目的MAC地址在MAC地址表中查找对应的接口。
如果找到匹配项,交换机会将数据帧仅转发到目标接口;如果找不到匹配项,交换机会将数据帧广播到所有接口(除了源接口)。
二、交换机的工作模式1. 存储转发存储转发是交换机最常见的工作模式。
在存储转发模式下,交换机会先接收完整的数据帧,并进行错误检测。
惟独当数据帧完整且无误时,交换机才会进行转发。
这种模式能够保证数据的完整性和可靠性,但延迟较高。
2. 直通转发直通转发是一种基于硬件的快速转发模式。
在直通转发模式下,交换机会在接收到数据帧的同时进行转发,无需等待整个数据帧接收完毕。
这种模式能够提供更低的延迟,适合于对实时性要求较高的应用场景。
三、交换机的性能指标1. 转发速率转发速率是衡量交换机性能的重要指标之一,通常以Mbps或者Gbps表示。
它表示交换机能够处理的最大数据量,越高越好。
交换机工作原理

交换机工作原理交换机是网络中的重要设备,负责在局域网中实现数据包的转发和交换。
它通过学习目的地址和建立转发表,实现数据包的快速传输。
本文将从交换机的工作原理出发,详细介绍交换机的工作原理及其作用。
一、交换机的基本工作原理1.1 学习目的地址:交换机通过监听网络中的数据包,学习每个设备的MAC地址,并将这些地址存储在转发表中。
1.2 建立转发表:交换机根据学习到的MAC地址,建立转发表,记录每个设备的位置,以便快速转发数据包。
1.3 数据包转发:当交换机接收到数据包时,会查找转发表,确定数据包的目的地址,然后将数据包转发到目的设备。
二、交换机的工作模式2.1 学习模式:交换机在初始状态下处于学习模式,会监听网络中的数据包,并学习设备的MAC地址。
2.2 转发模式:一旦交换机学习到目的设备的MAC地址,就会进入转发模式,根据转发表快速转发数据包。
2.3 广播模式:当交换机无法找到目的设备的MAC地址时,会将数据包广播到所有端口,以寻找目的设备。
三、交换机的优点3.1 提高网络性能:交换机能够实现数据包的快速转发,提高网络的传输效率。
3.2 增强网络安全:交换机能够根据MAC地址过滤数据包,增强网络的安全性。
3.3 支持多种网络协议:交换机能够支持多种网络协议,适用于不同类型的网络环境。
四、交换机的分类4.1 传统交换机:传统交换机采用存储转发方式进行数据包的转发,适用于小型网络环境。
4.2 三层交换机:三层交换机能够实现路由功能,支持不同网络之间的通信。
4.3 可管理交换机:可管理交换机具有远程管理功能,可以对交换机进行监控和配置。
五、交换机的应用领域5.1 企业网络:交换机在企业网络中起到连接各个部门设备的作用,实现内部通信和数据传输。
5.2 数据中心:交换机在数据中心中扮演关键角色,支持大规模数据传输和处理。
5.3 云计算:交换机在云计算环境中能够实现虚拟化网络的搭建,支持大规模的虚拟机通信。
总结:交换机作为网络中的重要设备,通过学习目的地址和建立转发表,实现数据包的快速传输。
三层交换机与路由器区别在哪里?

三层交换机与路由器区别在哪里?很多朋友问到, 路由器与三层交换机有什么区别?这是个好问题, 今天我们一起来了解下。
一、交换机的工作原理当交换机收到数据时, 它会检查它的目的MAC地址, 然后把数据从目的主机所在的接口转发出去。
交换机之所以能实现这一功能, 是因为交换机内部有一个MAC地址表, MAC地址表记录了网络中所有MAC 地址与该交换机各端口的对应信息。
某一数据帧需要转发时, 交换机根据该数据帧的目的MAC地址来查找MAC地址表, 从而得到该地址对应的端口, 即知道具有该MAC地址的设备是连接在交换机的哪个端口上, 然后交换机把数据帧从该端口转发出去。
1.交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射, 并将其写入MAC地址表中。
2.交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较, 以决定由哪个端口进行转发。
3.如数据帧中的目的MAC地址不在MAC地址表中, 则向所有端口转发。
这一过程称为泛洪(flood)。
4.广播帧和组播帧向所有的端口转发。
例: 某网络如图1所示。
图1 交换机地址表表1端口/MAC地址映射表假设主机pc1向主机pc7发送一个数据帧, 该数据帧被送到交换机后, 交换机首先查MAC地址表, 发现主机pc7连接在E0/24接口上, 就将数据帧从E0/24接口转发出去。
交换机的三个基本功能1.学习以太网交换机了解每一端口相连设备的MAC地址, 并将地址同相应的端口映射起来存放在交换机缓存中的MAC地址表中.2.转发/过滤当一个数据帧的目的地址在MAC地址表中有映射时, 它被转发到连接目的节点的端口而不是所有端口(如该数据帧为广播/组播帧则转发至所有端口)3.消除回路当交换机包括一个冗余回路时, 以太网交换机通过生成树协议避免回路的产生, 同时允许存在后备路径。
二、二、三层交换机对比1.二层交换技术二层交换技术是发展比较成熟, 二层交换机属数据链路层设备, 可以识别数据包中的MAC地址信息, 根据MAC地址进行转发, 并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。
交换机工作原理

交换机工作原理一、概述交换机是一种网络设备,用于在计算机网络中传输数据包。
它通过接收数据包并将其转发到目标设备,实现了网络中不同设备之间的通信。
交换机工作原理涉及到数据包的转发、学习和过滤等过程。
二、数据包转发过程1. 数据包接收:交换机通过网络接口接收到数据包。
2. 数据包解析:交换机解析数据包的目标MAC地址,以确定数据包的下一步转发目的地。
3. MAC地址学习:交换机将源MAC地址和接口信息存储在MAC地址表中,以便后续转发数据包时使用。
4. 数据包转发:交换机根据目标MAC地址在MAC地址表中查找对应的接口信息,并将数据包转发到相应的接口。
5. 数据包广播:如果交换机在MAC地址表中找不到目标MAC地址的对应接口信息,则会将数据包广播到所有连接的接口。
三、MAC地址学习过程1. 初始状态:交换机的MAC地址表为空。
2. 数据包接收:交换机接收到数据包,并提取出源MAC地址和接收数据包的接口信息。
3. MAC地址表查询:交换机在MAC地址表中查询源MAC地址是否已存在。
4. 地址表更新:若源MAC地址不存在于MAC地址表中,则将源MAC地址和接口信息添加到MAC地址表中。
5. 表项溢出处理:如果MAC地址表已满,交换机会根据一定的算法淘汰最少使用的表项,以腾出空间存储新的MAC地址信息。
四、数据包过滤交换机可以根据一定的规则对数据包进行过滤,以实现网络流量的控制和安全性的保障。
1. VLAN划分:交换机可以将不同的接口划分为不同的虚拟局域网(VLAN),实现不同VLAN之间的隔离和通信。
2. ACL控制:交换机可以根据访问控制列表(ACL)中的规则对数据包进行过滤,例如限制某些IP地址或端口的访问。
3. 网络地址转换:交换机可以实现网络地址转换(NAT),将内部IP地址转换为外部IP地址,以实现内部网络和外部网络的互通。
五、数据包转发算法交换机在转发数据包时,通常使用以下几种转发算法:1. 基于MAC地址的转发:根据目标MAC地址在MAC地址表中查找对应的接口信息,并将数据包转发到相应的接口。
光交换机 原理

光交换机原理
光交换机工作原理如下:
1. 数据传输方式:光交换机通过光纤传输数据,通过光电转换器将电信号转换为光信号发送出去,再通过光电转换器将接收到的光信号转换为电信号。
2. 数据交换:光交换机通过转发表(也称为MAC地址表)来
实现数据的转发和交换。
当一个数据包进入光交换机时,交换机会检查目标MAC地址,然后根据目标地址在转发表中查找
对应的端口信息。
3. 转发过程:在转发表中找到目标地址后,光交换机会将数据包从输入端口传输到对应的输出端口,实现数据的转发。
如果目标地址不在转发表中,光交换机会将数据包广播到所有端口上,以获取目标地址所在的网络。
4. 学习和更新:当光交换机接收到一个数据包时,它会检查源MAC地址,并将该地址与接收到此数据包的输入端口相关联。
通过这种方式,光交换机可以学习哪个MAC地址在哪个端口上,并在转发表中更新相应的信息。
5. 高效转发:光交换机通过硬件加速和并行处理来提高数据转发的效率。
它具有多个端口,可以同时处理多个数据包的转发请求,从而实现高速的数据交换。
6. 网络拓扑:光交换机的工作可以组成不同的网络拓扑结构,
如星型、环形等。
这些不同的拓扑结构可以根据网络的需求来选择,以满足网络通信的要求。
总之,光交换机是一种基于光纤传输的网络设备,通过光电转换器实现光信号和电信号之间的转换,利用转发表实现数据的转发和交换,从而提供高效、可靠的网络通信。
交换机基本原理和转发流程总结

交换机基本原理和转发流程总结关键词:以太网集线器Ethernet HUB交换机Switch虚拟局域网 VLAN路由器 Router路由表 Route Table地址解析协议 ARPARP表 ARP TableMAC表 FIB Table三层硬件转发表 IP fdb Table计算机网络往往由许多种不同类型的网络互连连接而成。
如果几个计算机网络只是在物理上连接在一起,它们之间并不能进行通信,那么这种“互连”并没有什么实际意义。
因此通常在谈到“互连”时,就已经暗示这些相互连接的计算机是可以进行通信的,也就是说,从功能上和逻辑上看,这些计算机网络已经组成了一个大型的计算机网络,或称为互联网络,也可简称为互联网、互连网。
下面将从互联网的渐进历程逐一阐述各种设备的工作原理:1、Ethernet HUBEthernet HUB的中文名称叫做以太网集线器,其基本工作原理是广播技术(broadcast),也就是HUB从任何一个端口收到一个以太网数据帧后,它都将此以太网数据帧广播到其它所有端口,HUB不记忆哪一个MAC地址挂在哪一个端口——这里所说的广播是指HUB将该以太网数据帧发送到所有其它端口,并不是指HUB将该报文改变为广播报文。
以太网数据帧中含有源MAC地址和目的MAC地址,对于与数据帧中目的MAC地址相同的计算机执行该报文中所要求的动作;对于目的MAC地址不存在或没有响应等情况,HUB既不知道也不处理,只负责转发。
HUB工作原理:① HUB从某一端口A收到的报文将发送到所有端口;②报文为非广播报文时,仅与报文的目的MAC地址相同的端口响应用户A;③报文为广播报文时,所有用户都响应用户A。
随着网络应用不断丰富,网络结构日渐复杂,导致传统的以太网连接设备HUB已经越来越不能满足网络规划和系统集成的需要,它的缺陷主要表现在以下两个方面:①冲突严重——HUB对所连接的局域网只作信号的中继,所有物理设备构成了一个冲突域;②广播泛滥。
交换机的转发原理

交换机的转发原理交换机是局域网中常见的网络设备,它的作用是在局域网内实现数据的快速传输和交换。
那么,交换机是如何实现数据的转发的呢?接下来,我们就来详细了解一下交换机的转发原理。
首先,交换机是根据MAC地址进行转发的。
当一台计算机发送数据时,交换机会根据数据帧中的目标MAC地址来确定数据应该被发送到哪个端口。
这就意味着交换机会维护一个MAC地址表,记录着各个端口对应的MAC地址,以便进行数据的转发。
其次,交换机会进行广播和单播的处理。
当交换机收到一份数据时,它会首先检查数据帧中的目标MAC地址。
如果目标MAC地址是广播地址,交换机会将数据发送到所有的端口上;如果目标MAC地址是单播地址,交换机会根据MAC地址表将数据发送到相应的端口上。
另外,交换机还会进行学习和过滤。
当交换机收到一份数据时,如果MAC地址表中没有记录该MAC地址对应的端口,交换机会将该MAC地址记录到表中,并将数据发送到所有端口上,以便学习该MAC地址对应的端口。
而当交换机收到一份数据时,如果MAC地址表中已经存在该MAC地址对应的端口,交换机会将数据仅发送到相应的端口上,而不会进行广播。
最后,交换机会进行转发和过滤。
当交换机收到一份数据时,它会根据目标MAC地址表将数据转发到相应的端口上,而不会进行广播。
同时,交换机还会根据端口状态、数据帧的CRC校验等信息进行数据的过滤,以确保数据的可靠传输。
总的来说,交换机的转发原理是基于MAC地址进行的,它会进行学习、过滤和转发,以实现局域网内数据的快速传输和交换。
通过了解交换机的转发原理,我们可以更好地理解局域网中数据的传输过程,从而更好地管理和维护局域网的稳定运行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
求索知识分享社区三层以太网交换机基本原理及转发流程本文简要介绍了三层以太网交换机的二三层转发机制, 主要目的是帮助读者 进一步了解交换机的基本原理及转发流程, 以期有利于更好的从事设备维护工作 和建立于进一步学习的索引. 三层以太网交换机的转发机制主要分为两个部分:二层转发和三层交换.1. 二层转发流程1.1. MAC地址介绍 MAC 地址是 48 bit 二进制的地址,如:00-e0-fc-00-00-06.可以分为单播地址, 多播地址和广播地址. 单播地址:第一字节最低位为 0,如:00-e0-fc-00-00-06 多播地址:第一字节最低位为 1,如:01-e0-fc-00-00-06 (问题 1:以 03 开头的 MAC 地址是单播 MAC 地址还是多播 MAC 地址) 广播地址:48 位全 1,如:ff-ff-ff-ff-ff-ff 注意: 1) 普通设备网卡或者路由器设备路由接口的 MAC 地址一定是单播的 MAC 地址 才能保证其与其它设备的互通. 2) MAC 地址是一个以太网络设备在网络上运行的基础, 也是链路层功能实现的 立足点. 1.2. 二层转发介绍 交换机二层的转发特性,符合 802.1D 网桥协议标准. 交换机的二层转发涉及到两个关键的线程:地址学习线程和报文转发线程. 学习线程如下: 1)交换机接收网段上的所有数据帧,利用接收数据帧中的源 MAC 地址来建立 MAC 地址表;求索知识分享社区2)端口移动机制:交换机如果发现一个包文的入端口和报文中源 MAC 地址的 所在端口(在交换机的 MAC 地址表中对应的端口)不同, 就产生端口移动, MAC 将 地址重新学习到新的端口; 3)地址老化机制:如果交换机在很长一段时间之内没有收到某台主机发出的报 文,在该主机对应的 MAC 地址就会被删除,等下次报文来的时候会重新学习. 注意: 老化也是根据源 MAC 地址进行老化. 报文转发线程: 1)交换机在 MAC 地址表中查找数据帧中的目的 MAC 地址,如果找到,就将该 数据帧发送到相应的端口,如果找不到,就向所有的端口发送; 2)如果交换机收到的报文中源 MAC 地址和目的 MAC 地址所在的端口相同,则 丢弃该报文; 3)交换机向入端口以外的其它所有端口转发广播报文. 1.3. VLAN二层转发介绍 报文转发线程: 引入了 VLAN 以后对二层交换机的报文转发线程产生了如下的影响: 1)交换机在 MAC 地址表中查找数据帧中的目的 MAC 地址,如果找到(同时还 要确保报文的入 VLAN 和出 VLAN 是一致的)就将该数据帧发送到相应的端口, , 如果找不到,就向(VLAN 内)所有的端口发送; 2)如果交换机收到的报文中源 MAC 地址和目的 MAC 地址所在的端口相同,则 丢弃该报文; 3)交换机向(VLAN 内)入端口以外的其它所有端口转发广播报文. 以太网交换机上通过引入 VLAN,带来了如下的好处: 1)限制了局部的网络流量, 在一定程度上可以提高整个网络的处理能力. 2)虚拟的工作组,通过灵活的 VLAN 设置,把不同的用户划分到工作组内; 3)安全性,一个 VLAN 内的用户和其它 VLAN 内的用户不能互访,提高了安全 性. 另外,还有常见的两个概念 VLAN 的终结和透传, 从字面意思上就可以很好的 了解这两个概念. 所谓 VLAN 的透传就是某个 VLAN 不仅在一台交换机上有效,求索知识分享社区它还要通过某种方法延伸到别的以太网交换机上,在别的设备上照样有效;终结 的意思及相对,某个 VLAN 的有效域不能再延伸到别的设备,或者不能通过某 条链路延伸到别的设备. VLAN 透传可以使用 802.1Q 技术,VLAN 终结可以使用 PVLAN 技术. IEEE802.1Q 协议是 VLAN 的技术标准,主要是修改了标准的帧头,添加了一个 tag 字段,其中包含了 VLAN ID 等 VLAN 信息,具体实现这里不谈,如果有兴趣 可以看相关的标准和资料. 注意:在 Trunk 端口转发报文的时候,如果报文的 VLAN Tag 等于端口上配置的 默认 VLAN ID,则该报文的 Tag 应该去掉,对端收到这个不带 Tag 信息的报文 后, 从端口的 PVID 获得报文的所属 VLAN 信息,因此配置的时候必须保证连 接两台交换机之间的一条 Trunk 链路两端的 PVID 设置相同. 为什么要去 Tag 呢? 这样做是为了保证一般的用户插到 Trunk 上以后, 仍旧可以正常通信, 因为普通 用户无法识别带有 802.1Q Vlan 信息的报文. 使用 802.1Q 技术可以很好的实现 VLAN 的透传, 可是有的时候需要把 VLAN 终 结掉,也就是说这个 VLAN 的边界在哪里终止,PVLAN 技术可以很好的实现这 个功能, 同时达到节省 VLAN 的目的.cisco 的 PVLAN 意思是 private vlan, 而我们的 PVLAN 意思是 primary vlan. 这里的 VLAN 有两类:Primary vlan 和 secondary vlan(子 VLAN) . 实现了接入用户二层报文的隔离, 同时上层交换机下发的报文可以被每一个用户 接收到,简化了配置,节省了 VLAN 资源.具体实现这里不谈,如果有兴趣可 以相关资料.2. 三层交换流程用 VLAN 分段,隔离了 VLAN 间的通信,用支持 VLAN 的路由器(三层设备) 可以建立 VLAN 间通信.但使用路由器来互联企业园区网中不同的 VLAN 显然 不合时代的潮流.因为我们可以使用三层交换来实现. 差别 1(性能) :传统的路由器基于微处理器转发报文,靠软件处理,而三层交 换机通过 ASIC 硬件来进行报文转发,性能差别很大; 差别 2(接口类型) :三层交换机的接口基本都是以太网接口,没有路由器接口求索知识分享社区类型丰富; 差别 3: 三层交换机, 还可以工作在二层模式, 对某些不需路由的包文直接交换, 而路由器不具有二层的功能. 首先让我们看一下设备互通的过程:1.1.1.1 255.255.0.0 Avlan 1 B 1.1.1.3 255.255.0.0vlan 2 C2.2.2.2 255.255.0.01.1.1.2 255.255.0.02.2.2.1 255.255.0.0如图所示:交换机上划分了两个 VLAN,在 VLAN1,VLAN 2 上配置了路由接口 用来实现 vlan1 和 vlan 2 之间的互通. A 和 B 之间的互通(以 A 向 B 发起 ping 请求为例) : 1) A 检查报文的目的 IP 地址,发现和自己在同一个网段; 2) A---->B ARP 请求报文,该报文在 VLAN1 内广播;3) B---->A ARP 回应报文; 4) A---->B 5) B---->A icmp request; icmp reply;A 和 C 之间的互通(以 A 向 C 发起 ping 请求为例) : 1) A 检查报文的目的 IP 地址,发现和自己不在同一个网段; 2) A---->switch(int vlan 1)ARP 请求报文,该报文在 VLAN1 内广播; 3) 网关---->A ARP 回应报文; 4) A---->switch icmp request(目的 MAC 是 int vlan 1 的 MAC,源 MAC是 A 的 MAC,目的 IP 是 C,源 IP 是 A) ; 5) switch 收到报文后判断出是三层的报文.检查报文的目的 IP 地址,发现是 在自己的直连网段; 6) switch(int vlan 2)---->C ARP 请求报文,该报文在 VLAN2 内广播;7) C--->switch(int vlan 2) ARP 回应报文;求索知识分享社区8) switch(int vlan 2)---->C icmp request (目的 MAC 是 C 的 MAC,源MAC 是 int vlan 2 的 MAC,目的 IP 是 C,源 IP 是 A)同步骤 4)相比报文的 MAC 头进行了重新的封装, 而 IP 层以上的字段基本上不变; 9) C---->A icmp reply, 这以后的处理同前面 icmp request 的过程基本相同.以上的各步处理中,如果 ARP 表中已经有了相应的表项,则不会给对方发 ARP 请求报文. 怎么样来区分二和三层的数据流? 3526 产品是三层以太网交换机,在其处理流程中既包括了二层的处理功能,又 包括了三层的处理功能. 区别二三层转发的基本模型:1.1.1.1 255.255.0.0 Avlan 1 B 1.1.1.3 255.255.0.0vlan 2 C2.2.2.2 255.255.0.01.1.1.2 255.255.0.02.2.2.1 255.255.0.0如图所示: 三层交换机划分了 2 个 VLAN, A 和 B 之间的通信是在一个 VLAN 内完成,对 与交换机而言是二层数据流,A 和 C 之间的通信需要跨越 VLAN,是三层的数据 流. 上面提到的是宏观的方法,具体到微观的角度,一个报文从端口进入后,Swtich 设备是怎么来区分二层包文,还是三层报文的呢? 从 A 到 B 的报文由于在同一个 VLAN 内部, 报文的目的 MAC 地址将是主机 B 的 MAC 地址,而从 A 到 C 的报文,要跨越 VLAN,报文的目的 MAC 地址是设 备虚接口 VLAN1 上的 MAC 地址. 因此交换机区分二三层报文的标准就是看报文的目的 MAC 地址是否等于交换机 虚接口上的 MAC 地址. 以 S3526 交换机为例,三层交换机整个处理流程中分成了三个大的部分:求索知识分享社区1)平台软件协议栈部分 这部分中关键功能有: 运行路由协议,维护路由信息表; IP 协议栈功能,在整个系统的处理流程中,这部分担负着重要的功能,当硬件 不能完成报文转发的时候,这部分可以代替硬件来完成报文的三层转发.另外对 交换机进行 telnet, ping, ftp,snmp 的数据流都是在这部分来处理. 举例: show ip route: Routing Tables: Destination/Mask 0.0.0.0/0 10.110.48.0/21 10.110.48.1/32 10.110.255.8/30 10.110.255.10/32 127.0.0.0/8 127.0.0.1/32 维护 ARP 表 show arp: IpAddress 10.110.255.9 10.110.51.75 10.110.54.30 10.110.51.137 Mac_Address 00e0.fc00.5518 0010.b555.f039 0800.20aa.f41d 0010.a4aa.fce6 VLAN ID 2 1 1 1 1 Port Name GigabitEthernet2/1 Ethernet0/9 Ethernet0/10 Ethernet0/12 Ethernet0/8 Type Dynamic Dynamic Dynamic Dynamic Dynamic Proto Static Direct Direct Direct Direct Direct Direct Pre Metric 60 0 0 0 0 0 0 0 0 0 0 0 0 0 Nexthop 10.110.255.9 10.110.48.1 127.0.0.1 Interface VLAN-Interface2 VLAN-Interface1 InLoopBack010.110.255.10 VLAN-Interface2 127.0.0.1 127.0.0.1 127.0.0.1 InLoopBack0 InLoopBack0 InLoopBack010.110.50.90 0010.b555.e04f 2)硬件处理流程主要的表项是:二层 MAC 地址表,和三层的 ip fdb 表,这两个表中用于保存转 发信息, 在转发信息比较全的情况下, 报文的转发和处理全部由硬件来完成处理, 不需要软件的干预. 这两个表的功能是独立的,没有相互的关系,因为一个报 文只要一进入交换机,硬件就会区分出这个包是二层还是三层.非此即彼. 例如:show mac all:求索知识分享社区MAC ADDR 0000.21cf.73f4 0002.557c.5a79 0004.7673.0b38 0005.5d04.9648 0005.5df5.9f64 VLAN ID 1 1 1 1 1 STATE Learned Learned Learned Learned Learned PORT INDEX Ethernet0/19 Ethernet0/12 Ethernet0/9 Ethernet0/16 Ethernet0/16 AGING TIME(s) 266 225 262 232 300MAC 地址表是精确匹配的 IVL 方式, 其中关键的参数是: Vlan ID, Port index.例如:show ipfdb all: 0: System 1: Learned Ip Address 10.11.83.77 10.11.198.28 10.63.32.2 10.72.255.100 10.75.35.103 10.75.35.106 2: UsrCfg Age 3: UsrCfg noAge Port Other: Error Status 1 1 1 2 2 2RtIf Vtag VTValid 2 2 2 2 2 2Mac2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18路由接口索引(RtIf) :该索引用来确定该转发表项位于哪个路由接口下面,对 3526 产品来讲,支持的路由接口数目是 32; Vlan tag: 该值用来表明所处的 VLAN,该 VLAN 和路由接口是对应的; Vlan tag 有效位(VTValid) :用来标识转发出去的报文中是否需要插入 Vlan tag 标记. 端口索引(Port) :用来说明该转发表项的出端口; 下一跳 MAC:三层设备每完成一跳的转发,会重新封装报文中的 MAC 头,硬 件 ASIC 芯片一般依据这个域里面的数值来封装报文头. 两个重要的概念: 解析,未解析,每次收到报文,ASIC 都会从其中提取出源和目的地址在 MAC Table 或者 IP Fdb Table 中进行查找,如果地址在转发表中可以找到,则认为该 地址是解析的,如果找不到,则认为该地址是未解析的.根据这个地址是源,还 是目的,还可以有源解析,目的未解析等等的组合. 对于二层未解析,硬件本身可以将该报文在 VLAN 内广播,但是对于三层报文求索知识分享社区地址的未解析报文硬件本身则不对该报文进行任何的处理,而产生 CPU 中断, 靠软件来处理. 硬件部分的处理可以用这句话来描述: 收到报文后,判断该报文是二或是三层报文,然后判断其中的源,目的地址是否 已经解析,如果已经解析,则硬件完成该报文的转发,如果是未解析的情况,则 产生 CPU 中断,靠软件来学习该未解析的地址. 3)驱动代码部分 其中关键的核心有: 地址解析任务:在该任务中对已经报上来的未解析的地址进行学习,以便硬件完 成后续的报文的转发而不需软件干预. 地址管理任务:为了便于软件管理和维护,软件部分保存了一份同硬件中转发表 相同的地址表 copy. fib(forwarding information base)表: 这个表的信息来源于 ip route table 中的路由信息,之所以把它放在了 driver 部分, 是为了地址解析任务在学 IP 地址时 查找的方便. 举例: show fib: Destination/Mask 0.0.0.0/0 10.110.48.0/21 10.110.48.1/32 10.110.255.8/30 10.110.255.10/32 127.0.0.0/8 Nexthop 10.110.255.9 10.110.48.1 127.0.0.1 10.110.255.10 127.0.0.1 127.0.0.1 Flag I D D D D D Interface VLAN-Interface2 VLAN-Interface1 InLoopBack0 VLAN-Interface2 InLoopBack0 InLoopBack0三层转发主要涉及到两个关键的线程: 地址学习线程和报文转发线程,这个和二层的线程是类似的; 1)报文转发线程主要根据地址学习线程生成的转发表(ipfdb table)信息来对 报文进行转发,如果里面的信息足够多,这个转发的过程全部由硬件来完成,如 果信息不够,则会要求地址学习线程来进行学习,同时该报文硬件不能转发,会 交给软件协议栈来进行转发.求索知识分享社区2)地址学习线程主要用来生成硬件转发表(ipfdb table) 其实 ipfdb table 和二层的 MAC 地址表也是类似的,只不过里面的具体表项所代 表的含义和所起的作用不同罢了. 有一个问题: 在路由器等软件转发引擎中,每收一个报文都会去查路由表查下一 跳,然后再查 ARP 表找下一跳的 MAC,可是在三层交换机(如 S3526)中, 报文转发的时候不需要去查路由表和 ARP 表,这样的话,这两个表是不是就没 有什么作用了? 回答当然是否定的,在 S3526 的三层转发流程中,过程一般都是这样的,第一 个报文硬件无法转发,要进行 IP 地址的学习,同时为了保证不丢包,该报文也 由软件来进行转发,在学习完成以后,第二,第三个报文以后就一直是由硬件来 完成转发了,这个过程也可以套用"一次路由,多次交换"来形象的进行总结, 在一次路由中,要利用路由表和 ARP 表来学习 IP 地址,和转发第一个报文,在 以后的多次交换过程中,则只要有 ipfdb table 就可以了.。