我们知道交换机可以基于源MAC地址学习,基于目的MAC地址转发,今天我们就来聊一聊什么是MAC地址。

MAC (Media Access Control)地址在网络中唯一标识一个网卡,每个网卡都需要并拥有唯一的一个MAC地址。一块网卡的MAC地址是具有全球唯一性的。

MAC地址是在IEEE 802标准中定义并规范的,凡是符合IEEE 802标准的以太网卡,都必须拥有一个MAC地址,用MAC地址来定义网络设备的位置。不同的网卡,MAC地址也不同。

认识了MAC地址以后我们就来看看MAC地址表示。

一个MAC地址有48 bit,6 Byte。

MAC地址通常采用“十六进制”+“-”表示。

如: 00-1E-10-DD-DD-02,或 001E-10DD-DD02

一个制造商在生产制造网卡之前,必须先向IEEE注册,以获取一个长度为24bit (3字节)的厂商代码,也称为OUI(Organizationally Unique Identifier)。后24bit由厂商自行分派,是各个厂商制造的所有网卡的唯一编号。

最后我们来看一下MAC地址的分类:

MAC地址可以分为3种类型:

  1. 单播MAC地址:也称物理MAC地址,这种类型的MAC地址唯一的标识了以太网上的一个终端,该地址为全球唯一的硬件地址。

    1. 单播MAC地址用于标识链路上的一个单一节点。
    2. 目的MAC地址为单播MAC地址的帧发往一个单一的节点。
    3. 单播MAC地址可以作为源或目的地址。
    4. 注意:单播MAC地址具有全球唯一性,当一个二层网络中接入了两台具有相同MAC地址的终端时(例如误操作等),将会引发通信故障(例如这两台终端无法相互通信),且其他设备与它们之间的通信也会存在问题。
  2. 广播MAC地址:全1的MAC地址(FF-FF-FF-FF-FF-FF),用来表示局域网上的所有终端设备。
    1. 广播MAC地址可以理解为一种特殊的组播MAC地址。
    2. 其具体格式为:FFFF-FFFF-FFFF。
    3. 目的MAC地址为广播MAC地址的帧发往链路上的所有节点。
  3. 组播MAC地址:除广播地址外,第8bit为1的MAC地址为组播MAC地址(例如01-00-00-00-00-00),用来代表局域网上的一组终端。
    1. 组播MAC地址用于标识链路上的一组节点。
    2. 目的MAC地址为组播MAC地址的帧发往一组节点。
    3. 组播MAC地址不能作为源地址,只能作为目的地址。

在园区网络中,交换机一般来说是距离终端用户最近的设备,用于终端接入园区网,接入层的交换机一般为二层交换机。二层交换设备工作在TCP/IP对等模型的第二层,即数据链路层,它对数据包的转发是建立在MAC(Media Access Control )地址基础之上的。

二层交换机工作在数据链路层,它对数据帧的转发是建立在MAC地址基础之上的。交换机不同的接口发送和接收数据是独立的,各接口属于不同的冲突域,因此有效地隔离了网络中的冲突域。

二层交换设备通过学习以太网数据帧的源MAC地址来维护MAC地址与接口的对应关系(保存MAC与接口对应关系的表称为MAC地址表),通过其目的MAC地址来查找MAC地址表决定向哪个接口转发。

每台交换机中都有一个MAC地址表,存放了MAC地址与交换机端口编号之间的映射关系。

MAC地址表记录了交换机学习到的其他设备的MAC地址与接口的对应关系。交换机在转发数据帧时,根据数据帧的目的MAC地址查询MAC地址表。如果MAC地址表中包含与该帧目的MAC地址对应的表项,则直接通过该表项中的出接口转发该报文;如果MAC地址表中没有包含该帧目的MAC地址对应的表项时,交换机将采取泛洪方式在除接收接口外的所有接口发送该报文。

今天我们来聊一聊交换机处理数据帧的行为:

交换机会通过传输介质进入其端口的每一个帧都进行转发操作,交换机的基本作用就是用来转发数据帧。

交换机对帧的处理行为一共有三种:泛洪(Flooding),转发(Forwarding),丢弃(Discarding)。

  1. 泛洪:交换机把从某一端口进来的帧通过所有其它的端口转发出去(注意,“所有其它的端口”是指除了这个帧进入交换机的那个端口以外的所有端口)。
  2. 转发:交换机把从某一端口进来的帧通过另一个端口转发出去(注意,“另一个端口”不能是这个帧进入交换机的那个端口)。
  3. 丢弃:交换机把从某一端口进来的帧直接丢弃。

泛洪

如果从传输介质进入交换机的某个端口的帧是一个单播帧,交换机会去MAC表查这个帧的目的MAC地址。如果查不到这个MAC地址,则交换机将对该单播帧执行泛洪操作。

如果从传输介质进入交换机的某个端口的帧是一个广播帧,交换机不会去查MAC地址表,而是直接对该广播帧执行泛洪操作。

如图所示:

  1. 场景一:主机1想要访问主机2,发送单播数据帧,交换机收到后,若MAC地址表中查不到对应的表项,则会泛洪该数据帧。
  2. 场景二:主机1想要访问主机2,但不知道对应的MAC地址,则会发送ARP请求报文,该报文为广播数据帧,交换机收到后,则会泛洪该数据帧。

转发

如果从传输介质进入交换机的某个端口的帧是一个单播帧,则交换机会去MAC表查这个帧的目的MAC地址。如果查到了这个MAC地址表,则比较这个MAC地址在MAC地址表中对应的端口编号是不是这个帧从传输介质进入交换机的那个端口的端口编号。如果不是,则交换机执行转发操作(将该帧送至该帧目的MAC地址在MAC地址表中对应的那个端口,并从那个端口发送出去)。

如图所示:

  1. 主机1想要访问主机2,发送单播数据帧,交换机收到后,在MAC地址表中查到了对应的表项,则会点对点转发该数据帧。

丢弃

如果从传输介质进入交换机的某个端口的帧是一个单播帧,则交换机会去MAC表查这个帧的目的MAC地址。如果查到了这个MAC地址表,则比较这个MAC地址在MAC地址表中对应的端口编号是不是这个帧从传输介质进入交换机的那个端口的端口编号。如果是,则交换机将对该帧执行丢弃操作。

如图所示:

  1. 主机1想要访问主机2,发送单播数据帧,交换机1收到后,若MAC地址表中查不到对应的表项,则会泛洪该数据帧。
  2. 交换机2收到该数据帧后,发现目的MAC地址对应的端口就是接收数据帧的端口,则会丢弃该数据帧。

交换机入门小知识2(MAC地址、交换机如何处理数据帧)相关推荐

  1. python初学零基础知识_Python零基础新手入门小知识

    以下为不同平台上安装Python的方法: Unix & Linux 平台安装 Python: 以下为在Unix & Linux 平台上安装 Python 的简单步骤: 打开WEB浏览器 ...

  2. 舒亦梵:现货黄金入门小知识,你知道多少

    舒亦梵:现货黄金入门小知识,你知道多少 对待市场,我们不妨以平善柔和目光视之,触之,入之.然后才能懂之,御之,胜之!待你心明如镜,试再看-- 你看市场如山,它自成山,登峰时天高海阔. 你看市场如水,它 ...

  3. 说说ESXi虚拟交换机和端口组的“MAC地址更改”和“伪传输”

    在说说ESXi虚拟交换机和端口组的"混杂模式"文章中提到过"MAC地址更改"和"伪传输"安全策略.作用范围和"混杂模式" ...

  4. PS入门小知识(含Photoshop CC 2019安装包)

    初学PS入门 我所使用的ps版本是Photoshop CC 2019,学习视频链接如下: https://www.bilibili.com/video/av54584169/?p=1 下载安装包:ht ...

  5. [HTML]入门小知识,列表?框架?表格?来吧。纯手工制作,满满都是智慧

    目录 一.列表 列表样式定义: 练习一: 练习二: 练习三: 练习四: 练习五: 二.框架 卡点小知识: 练习: 三.表格 定义: 练习一: 练习二: 练习三: 四.总结 (接上一期知识,咱们继续讲解 ...

  6. 华为交换机:利用Excel转换MAC地址公式

    将A8-2B-CD-88-DC-F1转为A82B-CD88-DCF1 MAC一共是6对,把每一对提取出来,然后进行拼接 第1对 第2对 第3对 第4对 第5对 第6对 拼接 然后复制,选择性粘贴为&q ...

  7. Cisco思科交换机 入门 - 查看本机IP地址

    enable show run | include ip address show ip interface brief

  8. Git(码云-开源中国)入门小知识

    Git码云简介: 2013年开源中国上线大型开发云平台--"码云",将代码托管.质量检测.代码演示.团队协作等开发工具集成到云平台,免除繁杂的开发环境部署,节省成本,帮助软件开发者 ...

  9. 抖音的一些入门小知识

    目前短视频领域的两朵奇葩,抖音就占一头.有流量,就有人借着发财.但是很多人在不了解一些基础知识的前提下,就按着自己感觉对的方向往里扎.方向不对,只能越来越偏. 为什么有些新账户,每天发视频,可以播放量 ...

最新文章

  1. 【TX2】安装NVIDIA SDK Manager(JetPack 4.6)后,下载kernel和u-boot源码
  2. python torch库_python安装torch踩过的坑
  3. html5中音频、视频标签、自定义播放器常用属性及方法、全屏操作、新增属性兼容问题
  4. 无心剑中译阿齐姆·普雷姆吉《苦干加巧干》
  5. 中继链路,以太网通道,DHCP配置
  6. 6.Hibernate多对多关系建立
  7. Python via virtualenv on Mac OS X: RuntimeError: Python is not installed as a framework.
  8. DNS域名系统(二)
  9. 用友超客:社交化业务就是要化繁为简
  10. sql依据单个字段去重_Java面试之常用SQL
  11. GNU C 的 __attribute__ 机制
  12. 对计算机科学与技术专业课程的认识,计算机科学与技术专业课程
  13. 软考——系统架构设计师工作日志
  14. Gossip in Cassandra
  15. AV1代码学习:av1_first_pass函数
  16. 将1自动补位为01_苹果图标自动补位怎么关闭
  17. js生成相近色颜色RGB代码
  18. Unveiling causal interactions in complex systems(揭示复杂系统中的因果交互作用)
  19. php 图片汉字命名_基于php上传图片重命名的6种解决方法的详细介绍
  20. 5.8 什么是学习博主?看两个博主案例【玩赚小红书】

热门文章

  1. iOS 之归档解档(nskeyarchieve)
  2. 小红书严惩刷量行为:如何才能优雅的种草
  3. 基于pyqt5 构建弹窗进度条,在大型计算中实时显示进度
  4. 【CV Transformer 论文笔记】Intriguing Properties of Vision Transformers
  5. Apple App store的应用购买限制 - 年龄
  6. 俗语“手握金鱼骨,富贵不用愁”,是啥意思?金鱼骨怎么形成的?
  7. TikTok干货分享:月入20000美金的操作手法分享
  8. 为什么被水弄湿的纸干了后会变皱?
  9. ps在褶皱T恤上贴上图案
  10. 如何实现跨行跨地区转账实时到帐而且免手续费?