热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

3.11链路层设备:交换机

3.11链路层设备:交换机链路层设备链路层扩展以太网网桥&交换机网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC

3.11 链路层设备:交换机

链路层设备


链路层扩展以太网


网桥&交换机

网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。

网段:一般指一个计算机网络中使用同一物理层设备能够直接通讯的那一部分。

网桥优点:

1.过滤通信量,增大吞吐量。(传输介质,中继器,集线器等)

2.扩大了物理范围。

3.提高了可靠性。

4.可互连不同物理层、不同MAC子层和不同速率的以太网。


网桥分类


透明网桥

透明网桥:“透明”指以太网上的站点并不知道所发送的帧将经过哪几个网桥,是一种即插即用设备


源路由网桥:

在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部

方法:源站以广播方式向欲通信的目的站发送一个发现帧。


多接口网桥——以太网交换机


以太网交换机的两种交换方式

直通式交换机

查完目的地址(6B)就立刻转发。

延迟小,可靠性低,无法支持具有不同速率的端口的交换。

存储转发式交换机

将帧放入高速缓存,并检查否正确,正确则转发,错误则丢弃。

延迟大,可靠性高,可以支持具有不同速率的端口的交换。


冲突域和广播域

冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。

广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。

例:几个冲突域?几个广播域?

4个冲突域,1个广播域。


连路层设备功能及特点

1、存储转发数据帧

检查到达的数据帧的MAC地址,有选择的转发数据帧到一个或多个输出链路,当数据帧被转发到一个共享网段时,使用CSMA/CD来访问共享链路

2、透明

主机A向B发送数据帧时,并不知道中间会有交换机收到这个数据

3、即插即用和自学习

也就是说交换机是不需要手工配置的,插上就可以用。


交换机

支持多节点同时传输

交换机可以缓存数据帧

以太网协议在每个输入链路使用,无碰撞,全双工

交换机: A-to-A‘和B-to-B’可以同时传输,而不会发生碰撞:


交换机如何知道用哪个端口出、入——转发表

类似于路由表,那转发表如何建立呢? ——自学习


交换机的自学习

每当交换机收到一个数据帧时,交换机会学习:发送主机的MAC地址、已经到达的端口,并在转发表中进行记录。


查表转发



  • 首先,记录到达链路和发送主机的MAC地址;



  • 第二步,使用数据帧的目的MAC地址,在转发表中进行检索:



    • 如果在转发表条目中找到对应的MAC地址,则执行:



    • 如果目的MAC地址对应的端口与数据帧的到达端口相同,说明接收主机属于同一个共享网段,则直接将该数据帧丢弃。因为接收主机也会收到该数据帧;



    • 否则,转发端口与达到端口不一致,则将该数据帧转发到指定端口





  • 如果数据帧的目的MAC地址在转发表中没有找到,则交换机将该数据帧除到达端口之外的所有端口转发,也就是泛洪(flood)。




例:多个交换机自学习

问题:如果主机A发送数据帧给主机G,那么交换机S1是怎么知道需要先把数据转发到S4和S3的?

通过自学习。当数据帧到达S1时,可能S1的转发表中没有G主机的MAC地址的表项,于是S1将该数据帧泛洪,那么S4的端口也会收到这个泛洪的数据帧,如果S4的转发表也没有G主机的MAC地址对应的表项,则S4会继续泛洪,于是S3也会收到数据帧,如果S3的转发表仍然没有G主机的MAC地址,则S3会继续向它的端口泛洪,直到数据帧到达G主机。


交换机的交换特点

识别目的MAC地址,根据交换表进行端口选择

识别源MAC地址更新交换表——在识别目的MAC地址和源MAC地址的过程中是否需要接收并缓存完整的帧呢?

交换机的交换方式:

存储转发(缓存整个帧后再转发)

快速分组(又称直通交换)(识别出目的地址直接转发)

交换机的交换方式讨论

·存储转发:具有差错检测功能,转发时延较大,适用于出错率高的链路。

·快速分组又称直通交换:不具有差错检测功能,转发时延较小,适用于时延要求高,出错率低的链路。


三层交换机

传统的交换技术是在OSI网络参考模型中的第二层(即数据链路层)进行操作的,通常称做“二层交换机”。

简单地说,三层交换技术就是二层交换技术+三层转发技术,三层交换机就是“二层交换机+基于硬件的路由器”


三层交换机的工作原理

发送站点A在开始发送时,把自己的IP地址与B站的IP地址比较,判断B站是否与自己在同一子网内。

若目的站B与发送站A在同一子网内,则进行二层的转发。

若两个站点不在同一子网内,则发送站A要向“缺省网关”发出ARP请求,请求获得B的MAC地址。

如果三层交换机知道B的MAC地址,则向A回复B的MAC地址。否则三层交换机根据路由信息向B站广播一个ARP请求,B站得到此ARP请求后向三层交换机回复其MAC地址,三层交换机将B站的MAC地址保存到二层交换引擎的MAC地址表中,并回复给发送站A。

A直接用B的MAC地址封装数据帧,三层交换机接收到数据后直接进行二层交换。


设备比较

小网络(几百台主机):采用交换机。大网络(几千台主机):使用路由器。


交换机和路由器

首先,路由器和交换机都是存储转发设备(中转设备),其中路由器是网络层设备,交换机是链路层设备。

第二,路由器和交换机都需要维护转发表,其中路由器使用路由算法来计算转发表,基于IP地址转发;而交换机是通过泛洪和自学习来建立转发表,基于MAC地址进行数据帧转发。


交换机的优缺点

即插即用:不需网络管理员干预;

较高的分组过滤和转发率:二层数据处理;

拓扑结构限制为一棵生成树:防止广播帧循环。

较大的ARP表产生可观的ARP流量和处理量;

可能产生“广播风暴”:某台主机失控,并传输无穷的以太网广播帧流,交换机将转发所有这些帧,导致整个以太网的崩溃。


路由器的优缺点

网络寻址是层次的;

若网络中存在冗余路径,分组不会在路由器中循环。

无生成树限制,使用路由器构建因特网可以采用大量丰富的拓扑结构。可以使用源和目的之间的最佳路径。

为第二层的广播风暴提供防火墙保护。

非即插即用:路由器及主机都需配置IP地址。每

个分组的处理时间比交换机长。


三个设备的比较


VLAN的划分

虚拟局域网的划分,为什么要划分?

计科系(CS)一个用户A到电子工程系办事(EE),但他想连入到CS的交换机,这就涉及到局域网的划分问题了:

如果将图中所有设备划分为一个LAN,可以满足用户A的需求,但这样一个单一的广播域会带来如下问题:,所有的2层广播流量(ARP, DHCP等)会跨越整个网络,并且还有很多隐患:安全、隐私、效率等


基于端口的VLAN

流量隔离:从1-8号端口进/出的帧,只能访问1-8号端口

动态成员:端口可以在VLAN之间动态调整

VLAN间转发:通过路由完成((在实际中,厂商会将路由功能和交换功能都整合在一台设备中)


基于MAC地址划分VLAN

 这种划分VLAN的方法是根据每个主机的MAC地址来划分,即对每个MAC地址的主机都配置他属于哪个组。这种方式的VLAN允许网络用户从一个物理位置移动到另一个物理位置时,自动保留其所属VLAN的成员身份。

 由这种划分的机制可以看出,这种VLAN的划分方法的最大优点就是当用户物理位置移动时,即从一个交换机换到其他的交换机时,VLAN不用重新配置,因为它是基于用户,而不是基于交换机的端口。

这种方法的缺点是初始化时,所有的用户都必须进行配置,如果有几百个甚至上千个用户的话,配置是非常累的,所以这种划分方法通常适用于小型局域网。而且这种划分的方法也导致了交换机执行效率的降低,因为在每一个交换机的端口都可能存在很多个VLAN组的成员,保存了许多用户的MAC地址,查询起来相当不容易。


跨越多个交换机的VLAN

干线端口:每台交换机上的一个特殊端口被配置为干线端口,干线端口属于所有VLAN,发送到任何VLAN的帧经过干线链路转发到其他交换机。干线端口承载定义在多个物理交换机之上的VLAN间的流量

“朝着一个既定的方向去努力,就算没有天赋,在时间的积累下应该也能稍稍有点成就吧。”



推荐阅读
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • Java内存管理与优化:自动与手动释放策略
    本文深入探讨了Java中的内存管理机制,包括自动垃圾回收和手动释放内存的方法。通过理解这些机制,开发者可以更好地优化程序性能并避免内存泄漏。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文探讨了如何在编程中正确处理包含空数组的 JSON 对象,提供了详细的代码示例和解决方案。 ... [详细]
  • Ralph的Kubernetes进阶之旅:集群架构与对象解析
    本文深入探讨了Kubernetes集群的架构和核心对象,详细介绍了Pod、Service、Volume等基本组件,以及更高层次的抽象如Deployment、StatefulSet等,帮助读者全面理解Kubernetes的工作原理。 ... [详细]
  • 本文详细介绍了美国最具影响力的十大财团,包括洛克菲勒、摩根、花旗银行等。这些财团在历史发展过程中逐渐形成,并对美国的经济、政治和社会产生深远影响。 ... [详细]
author-avatar
ljp3044544
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有