交换机学习总结

2023-11-14

网络中数据转发主要由交换机和路由器完成,路由器属于网络七层结构的网络层(第三层),交换机一般属于数据链路层(第二层)设备(也有三层交换机和四层交换机,分别属于网络层和传输层设备),路由器负责在不同的局域网内进行数据转发,比如你要访问百度的服务器,百度的服务器与你的客户端肯定不在同一个局域网下,你的访问请求就需要通过路由器转发到百度服务器所在的局域网的网关里,关于路由器数据转发的原理可以参考这篇文章
而百度的网关与百度服务器在同一个局域网下,此时的数据转发工作就由交换机接手,也就是说交换机负责在同一个局域网下的数据转发。打个比方,一圈人围着一个人在中间,这一圈人中两个人或者多个人想要传递悄悄话,但又不想让其他人知道悄悄话的内容,他们便采取一种方法,就是写一个纸条给中间的那个人,把要传递的悄悄话内容,以及要给谁传递都写在纸条上,然后让中间那个人把纸条转给对应的人,这样就实现了即说了悄悄话,也不让别人听见。这个例子里面这一圈人就可以对应一个VLAN,围着的一圈人对应客户机,中间那个人就相当于VLAN里的交换机。

VLAN概念及其划分

广播域(LAN):广播域输数据链路层的概念,是能接收同一个广播报文的的结点集合,如设备的ARP报文能接收到的设备都处于一个广播域。二层交换机是无法隔离广播域的,隔离广播域需要第三层设备,如路由器,三层交换机等。
VLAN即虚拟局域网,基于二层交换机,可以把一个广播域划分为多个子网,每个子网就是一个VLAN,不同的VLAN之间无法直接通信,需要借助三层设备,如路由器或者三层交换机。
VLAN划分方式:VLAN划分有多种方式,一般常用的有以下五种,需要说明的是并不是所有的交换机都支持这五种划分方式

  • 根据端口划分:根据交换机端口划分VLAN是最常用的方式,属于静态划分,例如交换机的1-12号端口划分为一个VLAN,根据端口划分VLAN并不仅仅局限于一台交换机,比如A交换机的1-5号端口和B交换机的5-10号端口可以属于同一个VLAN。
  • 根据MAC地址划分,这种划分方法根据主机的MAC地址划分,即对每个主机的MAC地址都配置其属于哪一个VLAN,属于动态划分VLAN。这种划方式既有优点也有缺点。
    优点就是当设备移位的时候不需要重新配置VLAN,一台设备的MAC地址一般不会改变。
    缺点就是这种划分方法会导致交换机端口可能存在多个VLAN组成员,无法限制广播包,从而导致广播太多,影响性能。
  • 根据网络层上层协议划分:根据网络层地址或者协议类型划分,属于动态划分。
    优点与第二种方法一样,同时可以根据网络协议划分,这对于网络管理者来说很重要;
    缺点是效率低,因为检查一个设备的网络地址需要消耗处理时间,交换机芯片会自动读取数据包上的以太网帧头,但是让芯片检查IP帧头需要更高的技术,也更费时。
  • 根据IP组播划分VLAN:这种方法认为一个组播组就是一个VLAN,这种方法将VLAN扩展到广域网,因此这种方法具有更好的灵活性,但是不适合局域网,主要还是因为效率不高。
  • 基于策略的VLAN:根据管理员事先制定好的VLAN规则,自动将加入到网络中的设备划分到正确的VLAN中。

以上五种划分VLAN的方法最常用的为第一种和第二种。

交换机基本参数

包转发率:指单位时间内网络中通过数据包的数量,对于交换机而言,要实现满负荷运行,最小吞吐量计算公式如下:
包转发率(Mp/s)=万兆端口数量x14.88Mp/s+千兆端口数量x1.488Mp/s+百兆端口数量x0.1488Mp/s。
这里的14.88是通过固定数据速率初一最小帧长得到,结果实际就是单位时间发送64byte数据包的个数。

背板带宽:指交换机接口处理器和总线间所能吞吐的最大数据量,全双工交换机背板带宽计算公式如下:
背板带宽(Mp/s)=万兆端口数量 x 10000Mp/s x 2+千兆端口数量x1.488Mp/s x 2+百兆端口数量x0.1488Mp/s x 2+其他端口x端口速率 x 2

交换机端口:主要分为光纤端口和以太网端口,光口类型有GBIC,SFP等
光纤端口:

  • 100Base-FX光纤端口,速率为100Mp/s,接多模光纤。
  • 1000Base-SX光纤端口,速率1000Mp/s,接多模光纤。

以太网端口。

  • 100Base-TX以太网端口,速率为100Mp/s,接双绞线。
  • 1000Base-T以太网端口,速率为1000Mp/s,接双绞线。

GBIC:指将千兆位电信号转换为光信号的接口器件,是千兆以太网连接标准。GBIC在设计上可以为热插拔使用,目前GBIC基本被SFP取代。只要使用GBIC模块就可以连接双绞线,多模光纤,单模光纤等介质

SFP:是GBIC的升级版本,是小型的新的千兆接口标准。

万兆模块:万兆模块是万兆的接口标准。

具体选择何种型号的交换机来构建网络结构,要根据交换机的用途以及实际需求来确定,比如用于数据中心的核心交换机,要求有较大的的数据处理速度和较小的延迟,就要选择背板带宽和包转发率都较大的交换机型号;用于接入层,与客户端连接,一般不需要较大的出局处理能力,但是一个交换机要连接很多台设备,这就需要交换机上有充足的的以太网接口。

同时也要根据实际使用需求来选型,如果只要求100Mp/s的接入速率,显然选择支持1000Mp/s接口的交换机作为接入层交换机是不合理的,成本过高。

交换机工作原理

ARP:ARP即地址解析协议,是一种将IP地址解析为MAC地址的协议。
ARP请求过程如下:
此处定义a主机需要获取b主机的MAC地址

  • a主机发送ARP广播,包含a的MAC地址,a的IP地址,以及b的IP地址,此处发送方式以广播形式,一个广播域内所有的主机都会收到a发送的ARP报文。
  • b收到广播后发送自己的MAC地址给a,此处以单播的方式发送
  • 此时a已经收到b的MAC地址,a收到b的回信后发送真正的IP包
  • a与b都知道对方的MAC地址,此后的交互便不再需要ARP广播
  • MAC地址与IP地址的映射关系被每台主机存储下来,形成地址映射表
  • 每对映射会有一个计时器,计时器到时之前没有捕捉到更新,则映射关系失效

二层交换机工作流程:

  • 数据包的以太网帧中包含了源IP,源MAC地址,目标IP,目标MAC地址
  • 首先交换机读取源MAC地址,知道源MAC地址连接在哪个端口
  • 读取目的MAC地址,通过地址表查询对应的端口
  • 表中有对应的MAC地址,将数据包复制到该端口,完成一次数据的转发
  • 如果表中没有对于的端口,则向所有VLAN所有主机发送该数据包,MAC地址可以为空,为空则表示将数据发送到所有主机。
  • 如果事先不知道对应主机的MAC地址,则主机先发送ARP报文,获取对方主机MAC地址,然后发送真正的数据包给交换机。
  • 如果在VLAN中找不到目标主机对应的MAC地址,则将数据包发送到VLAN的网关,一般网关为普通路由器,由网关把数据包发送到网络中,这就是第三层的数据通信了。

三层交换机:三层交换机在二层交换机的基础上增加了路由转发的功能,在同一个VLAN下通信流程与二层交换机一直,当源主机与目标主机不在同一个VLAN下,三层交换机可以完成路由转发的功能,不需要再将数据包发送到网关路由器,通过路由器完成路由转发。

以上就是交换机学习总结,交换机作为数据链路层设备,一般只负责同一个VLAN下的数据转发,结构概念相对于路由器来说要简单的多,与路由器共同实现网络中路由转发功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

交换机学习总结 的相关文章

  • Linux 的 anaconda 虚拟环境下安装指定的 cuda、cudnn、pytorch

    感悟 首先 anaconda 的虚拟环境真香 开辟一个新的虚拟环境 很多环境 版本不兼容的问题都不复存在 尤其对复现别人代码的同学很有用 条件 只要安装的版本不超过自己机器的硬件条件 那么就可以安装 步骤 1 确定安装的 cuda 版本 在

随机推荐

  • springBoot+scheduling实现多任务动态定时任务

    使用spring自带的scheduling定时调度任务相当于轻量级的Quartz 但是不支持分布式 若要实现分布式定时任务就得使用Quartz了 第一步 在入口类中声明定时任务 import org springframework boot
  • java中比较两个map是否相同

    结论 对于所有继承于AbstractMap的map类 基本上jdk中的map都继承了 直接使用Map equals 即可 源码解析 AbstractMap重写了equals方法 保证对两个相同内容的map调用equals比较结果为真 源码如
  • opencv之人脸检测项目实战(二)

    自我介绍 目录 一 人脸检测整体架构 1 1 什么是人脸检测 1 2 人脸检测的应用场景 1 3 人脸检测核心架构 二 人脸检测实现技术储备 2 1 NDK开发的原理 2 2 什么是JNI 2 3 OpenCV架构体系 三 人脸识别项目实战
  • vue-cli打包

    创建vue config js文件 设置不同模式的打包入口 把main js文件删除 创建main prod js和main dev js module exports chainWebpack config gt 判断当前的编译模式 设置
  • 【python】统计代码行数

    背景 写了一堆 cs文件 想看看一共写了多少行 代码 import os import chardet Check if a file has the given extension def has extension file exten
  • 模型转换、模型压缩、模型加速工具汇总

    目录 一 场景需求解读 二 模型转化工具汇总 1 模型转换工具的作用 2 模型转换工具简介 1 MMdnn 2 ONNX 3 X2Paddle 三 模型压缩和加速工具汇总 1 模型压缩加速工具的作用 2 模型压缩加速工具简介 1 Pocke
  • 计算方法--解线性方程组的迭代法

    文章目录 雅可比迭代法 Jacobi 迭代公式的矩阵形式 编程计算公式 迭代思路 高斯 赛德尔迭代法 Gauss Seidel 迭代法的收敛性 迭代法收敛性基本定义 收敛速度 迭代法充分条件1 迭代法充分条件2 迭代法其他收敛条件 JOR迭
  • 如何使UI自动化项目成功?

    目标 错误的目标 追求一些错误的目标 会使自动化测试走向失败 1 替代手工测试 自动化无法替代手工测试 只能作为辅助手段 在如图的第二象限起作用 2 高比率的UI测试覆盖率 不是覆盖率越高越好 由测试金字塔来看 底端占比越高 自动化效率越好
  • 学前端开发适用于移动端常见的问题

    常见问题1 移动端如何定义字体font family三大手机系统的字体 ios 系统默认中文字体是Heiti SC默认英文字体是Helvetica默认数字字体是HelveticaNeue无微软雅黑字体android 系统默认中文字体是Dro
  • 快排的非递归实现

    快排的非递归 这里我们需要借助数据结构的栈模拟快排的递归过程 栈先进后出 实现思想 1 先将需要排序的区间入到栈中 2 栈不为空时 将需要排序区间读取出来 进行单趟排序 获得了key位置 判断key左右区间是否存在 若存在 将左右下标数据入
  • ORA-28009: 应当以 SYSDBA 身份或 SYSOPER 身份建立 SYS 连接

    用 SQL Plus 连接数据库的时候 除了用户名和密码外 还要在口令后面加一个主机字符串 如下 请输入用户名 sys 口令 ANKoracle123 orcl as sysdba 转载于 https www cnblogs com ann
  • 局部自适应阈值分割方法

    github地址 https github com radishgiant ThresholdAndSegment git Local Yanowitz 由于光照的影响 图像的灰度可能是不均匀分布的 此时单一阈值的方法分割效果不好 Yano
  • 深入理解计算机系统第三版第二章答案

    练习题2 13 分析 bis 和bic都是可以看作系统已经提供好的函数 所以可以用and or not 组合设计 bis x m 置数 作用 在x这个二进制串中把m中为1的位置全部变成0 m中为0的 不变 可以看到bis x m 结果和x
  • 采用hive自带的方法生成Hfile,并将上亿大数据量导入HBASE

    采用hive自带的方法生成Hfile 并将上亿大数据量导入HBASE 1 0引入Hbase自带的jar 由于采用CDH6 1的版本 hive直接使用Hbase方法会出现异常 hive采用hbase的方法 故需要将对应Hbase中的数据引用进
  • jenkins build gerrit code bug :<<<<<<< HEAD

    问题 Jenkins build gerrit code build失败 output log中提示编译时是这一行代码出现了错误 然而提交代码的时候根本没有这一行代码 lt lt lt lt lt lt lt HEAD 分析 可能是gerr
  • Go语言值不值得学,发展前景怎么样?

    我学习了java和golang java用了5年 无限感慨java的生态 工业级的语言 无数的解决方案 不管你是做互联网还是传统行业的开发用java开发总能解决一切很多的问题 国内巨头阿里巴巴更是把java推向了极致 golang作为一个新
  • 自定义异常时exception is never thrown in the corresponding try block和unhandled exception

    自己的异常 public class UserNotExistsException extends Exception private static final long serialVersionUID 1L public UserNot
  • chrome插件 自动点击页面元素 自动填入内容

    使用较新的 manifest version 3 event 类 项目文件夹 manifest 是配置文件 Bw 是插件图标 background 是一直可以在后台运行的代码 usr input 是点击插件图标时会显示的页面 action1
  • SpringBoot JPA 定义实体类关系:一对一 (增删改查)

    SpringBoot 项目整体结构 pom xml 文件依赖
  • 交换机学习总结

    网络中数据转发主要由交换机和路由器完成 路由器属于网络七层结构的网络层 第三层 交换机一般属于数据链路层 第二层 设备 也有三层交换机和四层交换机 分别属于网络层和传输层设备 路由器负责在不同的局域网内进行数据转发 比如你要访问百度的服务器