bitpie官网版下载|ethernetmac地址

作者: bitpie官网版下载
2024-03-14 18:57:24

百度百科-验证

百度百科-验证

MAC地址_百度百科

址_百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心MAC地址播报讨论上传视频媒体访问控制地址收藏查看我的收藏0有用+10本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。MAC地址(英语:Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN Address),MAC位址,以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址 [1]。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址 [2]。中文名MAC地址外文名Media Access Control Address别    名MAC位址、硬件地址作    用用来定义网络设备的位置特    点唯一性所属领域计算机技术目录1简介2结构3工作过程4作用5获取方法6与IP地址区别简介播报编辑MAC地址也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写)。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的 [3]。MAC地址的长度为48位(6个字节),通常表示为12个16进制数,如:00-16-EA-AE-3C-40就是一个MAC地址,其中前3个字节,16进制数00-16-EA代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后3个字节,16进制数AE-3C-40代表该制造商所制造的某个网络产品(如网卡)的系列号。只要不更改自己的MAC地址,MAC地址在世界是唯一的。形象地说,MAC地址就如同身份证上的身份证号码,具有唯一性 [3]。结构播报编辑网络中每台设备都有一个唯一的网络标识,这个地址叫MAC地址或网卡地址,由网络设备制造商生产时写在硬件内部。MAC地址则是48位的(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如08:00:20:0A:8C:6D就是一个MAC地址。具体如下图所示,其前3字节表示OUI(Organizationally Unique Identifier),是IEEE的注册管理机构给不同厂家分配的代码,区分不同的厂家。后3字节由厂家自行分配 [2]。MAC地址最高字节(MSB)的低第二位(LSb)表示这个MAC地址是全局的还是本地的,即U/L(Universal/Local)位,如果为0,表示是全局地址。所有的OUI这一位都是0。MAC地址最高字节(MSB)的低第一位(LSb),表示这个MAC地址是单播还是多播。0表示单播。 [4]工作过程播报编辑网络上的数据包从初始点开始 ,经过一个个中间节点最终到达目标节点 ,数据包是如何从初始节点开始识别一个个中间节点最终找到目标节点的呢? 实际上初始节点是根据目标节点的地址 ,将目标节点的IP地址映射到中间节点的MAC地址,找到第一个中间节点。从第一个中间节点出发,根据目标节点的IP地址映射到第二个中间节点的MAC地址,从而找到第二个中间节点……,以此类推,直到当找到最后一个中间节点后,从最后一个中间节点出发,根据目标节点的地址映射到目的节点的MAC地址,从而将数据包传送给目标主机。所以数据包的传送过程就是:不断地将目标节点的地址映射到一个个中间节点的MAC地址,再从一个个中间节点出发,直到找到最终的目标节点 [5]。数据包传送的关键是将目标节点的IP地址映射到中间节点的MAC地址。IP地址与MAC地址的映射要通过ARP地址解析协议来完成,它可将网络中的IP地址映射到主机的MAC地址,如交换机可以根据网络中的IP地址来找到本地主机的MAC地址。具体过程是:当交换机接收到来自网上一个数据包时,会根据该数据包的目标IP地址,查看交换机内部是否有跟该IP地址对应的MAC地址 ,如果有上次保留下来的对应的MAC地址,就会将该数据包 转发到对应MAC地址的主机上去。如果在交换机内部没有与目标)地址对应的MAC地址,则交换机会根据ARP协议将目标IP地址按照“表”中的对应关系映射成MAC地址 ,数据包就被转送到对应的MAC地址的主机上 [5]。作用播报编辑IP 地址是基于逻辑的,比较灵活,不受硬件的限制,也容易记忆。而 MAC地址在一定程度上与硬件一致,是基于物理的,能够标识具体的网络节点。这两种地址各有优点,使用时也因条件不同而采取不同的地址 [6]。大多数接入Internet的方式是把主机通过局域网组织在一起,然后再通过交换机或路由器等设备和 Internet 相连接。这样一来就出现了如何区分具体用户,防止 IP地址被盗用的问题。由于IP地址只是逻辑上的标识,任何人都能随意修改,因此不能用来具体标识一个用户。而 MAC地址则不然,它是固化在网卡里面的。从理论上讲,除非盗来硬件即网卡,否则一般是不能被冒名顶替的。基于 MAC 地址的这种特点,因此局域网采用了用MAC地址来标识具体用户的方法 [6]。在具体的通信过程中,通过交换机内部的交换表把 MAC地址和 IP 地址一一对应。当有发送给本地局域网内一台主机的数据包时,交换机首先将数据包接收下来,然后把数据包中的 IP 地址按照交换表中的对应关系映射成 MAC地址,然后将数据包转发到对应的 MAC地址的主机上去。这样一来,即使某台主机盗用了这个 IP 地址,但由于此主机没有对应的 MAC地址,因此也不能收到数据包,发送过程和接收过程类似 [6]。所以,无论是局域网,还是广域网中的计算机之间进行通信时,最终都表现为将数据包从某种形式的链路上的一个初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的传递都是由 ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到 MAC地址上来完成的 [6]。身份证就是用来证明一个人的身份。平日身份证的作用并不是很大,但是到了有的关键时刻,必须有身份证来说明一个人的一切。那么,IP地址与MAC地址绑定,就如同在日常生活中一个人与身份证的关系。因为,IP地址可以随意的,但MAC地址是唯一说明IP地址身份的。例如,为防止IP地址被盗用,通常交换机的端口绑定(端口的MAC表使用静态表项),可以在每个交换机端口只连接一台主机的情况下防止修改MAC地址的盗用,如果是三层设备还可以提供交换机端口、IP地址和MAC地址三者的绑定 [7]。获取方法播报编辑在命令提示符下输入命令“ipconfig /all”回车之后就会显示当前计算机的一些网络信息,其中“Physical Address”字样的这一项就是当前计算机中网卡的 MAC地址。当然,如果计算机中安装有多个网卡,则会有多个“Physical Address”字样 [6]。与IP地址区别播报编辑IP地址和MAC地址相同点是它们都唯一,不同的特点主要有:1.对于网络上的某一设备,如一台计算机或一台路由器,其IP地址是基于网络拓扑设计出的,同一台设备或计算机上,改动IP地址是很容易的(但必须唯一),而MAC则是生产厂商烧录好的,一般不能改动。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址不可由本地连接内的配置进行修改。如果一个计算机的网卡坏了,在更换网卡之后,该计算机的MAC地址就变了 [5]。2.长度不同。IP地址为32位,MAC地址为48位 [5]。3.分配依据不同。IP地址的分配是基于网络拓扑,MAC地址的分配是基于制造商 [8]。4.寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络) [1]。新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000

37张图详解MAC地址、以太网、二层转发、VLAN - 知乎

37张图详解MAC地址、以太网、二层转发、VLAN - 知乎首发于图解网络切换模式写文章登录/注册37张图详解MAC地址、以太网、二层转发、VLAN网工FoxMAC 地址每个网卡或三层网口都有一个 MAC 地址, MAC 地址是烧录到硬件上,因此也称为硬件地址。MAC 地址作为数据链路设备的地址标识符,需要保证网络中的每个 MAC 地址都是唯一的,才能正确识别到数据链路上的设备。MAC 地址由 6 个字节组成。前 3 个字节表示厂商识别码,每个网卡厂商都有特定唯一的识别数字。后 3 个字节由厂商给每个网卡进行分配。厂商可以保证生产出来的网卡不会有相同 MAC 地址的网卡。现在可以通过软件修改 MAC 地址,虚拟机使用物理机网卡的 MAC 地址,并不能保证 MAC 地址是唯一的。但是只要 MAC 地址相同的设备不在同一个数据链路上就没问题。为了查看方便, 6 个字节的 MAC 地址使用十六进制来表示。每个字节的 8 位二进制数分别用 2 个十六进制数来表示,例如我的网卡 MAC 地址是 E0-06-E6-39-86-31。 什么是字节?什么是比特? 比特,英文名 bit ,也叫位。二进制中最小单位,一个比特的值要么是 0 要么是 1 。字节,英文名 Byte 。一个字节由八个比特构成。 MAC 地址怎么使用? 最常用的以太网和无线局域网,都是使用 MAC 地址作为地址标识符进行通信的。以太网有线局域网中普遍使用以太网,以太网标准简单,传输速率高。常见的网络拓扑结构如下图。 什么是网络拓扑? 网络的连接和构成的形态称为网络拓扑。它不仅可以直观的看到网络物理连接方式,还可以表示网络的逻辑结构。以太网数据格式当今最常用的以太网协议标准是 ETHERNET II 标准。 ETHERNET II 标准定义的数据帧格式如下图。前导码( Preamble )前导码由 7 个字节组成,每个字节固定为 10101010 。之后的 1 个字节称为帧起始定界符,这个字节固定为 10101011 。这 8 个字节表示以太网帧的开始,也是对端网卡能够确保与其同步的标志。帧起始定界符的最后两位比特被定义为 11 ,之后就是以太网数据帧的本体。目的地址( Destination Address )目的地址由 6 个字节组成,用来标识数据帧的目的设备,类似于快递的收件人地址。源地址( Source Address )源地址由 6 个字节组成,用来标识数据帧的始发设备,类似于快递的发件人地址。类型( Type )类型字段由 2 个字节组成。类型字段是表明上一层(即网络层)的协议类型,可以让接收方使用相同的协议进行数据帧的解封装。数据( Data )帧头后就是数据。一个数据帧所能容纳的最大数据范围是 46 ~ 1500 个字节。如果数据部分不足 46 个字节,则填充这个数据帧,让它的长度可以满足最小长度的要求。FCS( Frame Check Sequence )FCS 由 4 个字节组成,位于数据帧的尾部,用来检查帧是否有所损坏。通过检查 FCS 字段的值将受到噪声干扰的错误帧丢弃。 最小的数据帧是多少字节? 数据帧的各字段加起来一共是 64 字节,其中数据是 46 字节。再加上前导码就是 72 字节。因此最小的数据帧是 72 字节。在传输过程中,每个数据帧还有 12 字节的数据帧间隙,所以最小的可传输数据帧长度是 84 字节,即 672 比特。交换机二层转发原理交换机有多个网络端口,它通过识别数据帧的目标 MAC 地址,根据 MAC 地址表决定从哪个端口发送数据。MAC 地址表不需要在交换机上手工设置,而是可以自动生成的。 交换机是如何添加、更新、删除 MAC 地址表条目的? 在初始状态下,交换机的 MAC 地址表是空的,不包含任何条目。当交换机的某个端口接收到一个数据帧时,它就会将这个数据帧的源 MAC 地址、接收数据帧的端口号作为一个条目保存在自己的 MAC 地址表中,同时在接收到这个数据帧时重置这个条目的老化计时器时间。这就是交换机自动添加 MAC 地址表条目的方式。在新增这一条 MAC 地址条目后,如果交换机再次从同一个端口收到相同 MAC 地址为源 MAC 地址的数据帧时,交换机就会更新这个条目的老化计时器,确保活跃的的条目不会老化。但是如果在老化时间内都没收到匹配这个条目的数据帧,交换机就会将这个老化的条目从自己的 MAC 地址表中删除。还可以手动在交换机的 MAC 地址表中添加静态条目。静态添加的 MAC 地址条目优先动态学习的条目进行转发,而且静态条目没有老化时间,会一直保存在交换机的 MAC 地址表中。 如何使用 MAC 地址表条目进行转发? 当交换机的某个端口收到一个单播数据帧时,它会查看这个数据帧的二层头部信息,并进行两个操作。一个操作是根据源 MAC 地址和端口信息添加或更新 MAC 地址表。另一个操作是查看数据帧的目的 MAC 地址,并根据数据帧的目的 MAC 地址查找自己的 MAC 地址表。在查找 MAC 地址表后,交换机会根据查找结果对数据帧进行处理,这里有 3 中情况:交换机没有在 MAC 地址表中找到这个数据帧的目的 MAC 地址,因此交换机不知道自己的端口是否有连接这个 MAC 地址的设备。于是,交换机将这个数据帧从除了接收端口之外的所有端口泛洪出去。交换机的 MAC 地址表中有这个数据帧的目的 MAC 地址,且对应端口不是接收到这个数据帧的端口,交换机知道目的设备连接在哪个端口上,因此交换机会根据 MAC 地址表中的条目将数据帧从对应端口单播转发出去,而其它与交换机相连的设备则不会收到这个数据帧。交换机的 MAC 地址表中有这个数据帧的目的 MAC 地址,且对应端口就是接收到这个数据帧的端口。这种情况下,交换机会认为数据帧的目的地址就在这个端口所连接的范围内,因此目的设备应该已经收到数据帧。这个数据帧与其它端口的设备无关,不会将数据帧从其它端口转发出去。于是,交换机会丢弃数据帧。单播:主机一对一的发送数据。单播地址是主机的 MAC 地址。 广播:向局域网内所有设备发送数据。只有全 1 的 MAC 地址为广播 MAC 地址,即 FF-FF-FF-FF-FF-FF 。 泛洪:将某个端口收到的数据从除该端口之外的所有端口发送出去。泛洪操作广播的是普通数据帧而不是广播帧。VLAN广播域是广播帧可以到达的区域。换句话说,由多个交换机和主机组成的网络就是一个广播域。网络规模越大,广播域就越大,泛洪流量也越来越大,降低通信效率。在一个广播域内的任意两台主机之间可以任意通信,通信数据有被窃取的风险。为了解决广播域扩大带来的性能问题和安全性降低问题, VLAN 技术应运而生。 VLAN 技术能够在逻辑上把一个物理局域网分隔为多个广播域,每个广播域称为一个虚拟局域网(即 VLAN )。每台主机只能属于一个 VLAN ,同属一个 VLAN 的主机通过二层直接通信,属于不同 VLAN 的主机只能通过 IP 路由功能才能实现通信。通过划分多个 VLAN ,从而减小广播域传播的范围,过滤多余的包,提高网络的传输效率,同时提高了网络的安全性。VLAN 原理VLAN 技术通过给数据帧插入 VLAN 标签(又叫 VLAN TAG)的方式,让交换机能够分辨出各个数据帧所属的 VLAN 。VLAN 标签是用来区分数据帧所属 VLAN 的,是 4 个字节长度的字段,插入到以太网帧头部上。 VLAN 标签会插入到源 MAC 地址后面, IEEE 802.1Q 标准有这个格式定义和字段构成说明。TPID (标签协议标识符): 长度 2 个字节,值为 0x8100 ,用来表示这个数据帧携带了 802.1Q 标签。不支持 802.1Q 标准的设备收到这类数据帧,会把它丢弃。TCI (标签控制信息): 长度 2 个字节,又分为三个子字段,用来表示数据帧的控制信息:优先级( Priority ):长度为 3 比特,取值范围 0 ~ 7 ,用来表示数据帧的优先级。取值越大,优先级越高。当交换机发送拥塞是,优先转发优先级高的数据帧。CFI (规范格式指示器):长度为 1 比特,取值非 0 即 1 。VLAN ID ( VLAN 标识符):长度为 12 比特,用来表示 VLAN 标签的数值。取值范围是 1 ~ 4094 。 划分 VLAN 后,交换机如何处理广播报文? 交换机上划分了多个 VLAN 时,在交换机接收到广播数据帧时,只会将这个数据帧在相同 VLAN 的端口进行广播。 划分 VLAN 后,交换机如何处理目的 MAC 地址不在 MAC 地址表中的单播数据帧? 交换机上划分了多个 VLAN 时,当交换机接收到一个目的 MAC 地址不存在于自己 MAC 地址表中的单播数据帧时,只会将这个数据帧在相同 VLAN 的端口进行泛洪。 划分 VLAN 后,不同 VLAN 的主机能否通信? 划分多 VLAN 的环境中,即使交换机 MAC 地址表里保存了某个数据帧的目的 MAC 地址条目,若这个目的 MAC 地址所对应的端口与数据帧的入端口在不同的 VLAN 中,交换机也不会通过 MAC 地址表中的端口发送数据帧。小结:在不使用路由转发的前提下,交换机不会从一个 VLAN 的端口中接收到的数据帧,转发给其它 VLAN 的端口。 怎么区分不同的 VLAN ? 通过 VLAN ID 进行区分,例如 VLAN 10 和 VLAN 20 就是不同的 VLAN 。 VLAN 技术有哪些好处? 增加了广播域的数量,减小了每个广播域的规模,也减少了每个广播域中终端设备的数量;增强了网络安全性,保障网络安全的方法增加了;提高了网络设计的逻辑性,可以规避地理、物理等因素对于网络设计的限制。划分 VLAN我们可以使用不同的方法,把交换机上的每个端口划分到某个 VLAN 中,以此在逻辑上分隔广播域。交换机通常会使用基于端口划分 VLAN 的方法。在交换机上手动配置,绑定交换机端口和 VLAN ID 的关系。优点:配置简单。想要把某个端口划分到某个 VLAN 中,只需要把端口的 PVID (端口 VLAN ID )配置到相应的 VLAN ID 即可。缺点:当终端设备移动位置是,可能需要为终端设备连接的新端口重新划分 VLAN 。除了这种方法外,还可以使用基于 MAC 地址划分 VLAN 、基于 IP 地址划分 VLAN 、基于协议划分 VLAN 、基于策略划分 VLAN 等方法来划分 VLAN。PVID :接口默认 VLAN ID ,是交换机端口配置的参数,默认值是 1 。跨交换机 VLAN 原理终端设备不会生成带 VLAN 标签的数据帧,它们发出的数据帧叫做无标记帧( Untagged )。它们连接的交换机会给无标记帧打上 VLAN 标签。交换机通过每个端口的 PVID ,判断从这个接口收到的无标记帧属于哪个 VLAN ,并在转发时,插入相应的 VLAN 标签,从而将无标记帧变为标记帧( Tagged )。当两台交换机通过端口连接时,收到的数据帧是标记帧还是无标记帧?交换机端口会如何处理呢?交换机根据连接的设备类型,判断各个接口收到的数据帧是否打标,来配置交换机接口的类型。如果交换机接口收到无标记帧,由交换机根据这个接口所在 VLAN 为数据帧打上 VLAN 标签;同时接口发送数据帧时,也不携带 VLAN 标签。应该把这类接口配置为 Access (接入)接口, Access 接口连接的链路称为 Access 链路。 如果交换机接口收到多个 VLAN 的流量,也就是收到了标记帧;同时为了让对端设备能够区分不同 VLAN 的流量,通过接口发出的流量会打上 VLAN 标签。应该把这类接口配置为 Trunk (干道)接口,相应的链路称为 Trunk 链路。 跨交换机发送数据 主机 A 以主机 F 的 MAC 地址作为目的 MAC 地址封装了一个数据帧,从网卡发送出去。交换机 A 在 Access 接口收到数据帧。查询 MAC 地址表,发现数据帧的目的地址是与交换机 B 相连的 Trunk 接口。于是交换机给数据帧打上 Access 接口的 PVID 配置,即给数据帧打上 VLAN 10 的标签,并从 Trunk 接口转发给交换机 B 。交换机 B 在 trunk 接口收到数据帧。查看 MAC 地址表,发现是 VLAN 10 的数据帧,目的地址设备是连接在 VLAN 10 的一个 Access 接口上。于是去掉数据帧的 VLAN 标签,并从这个 Access 接口转发给主机 F 。 模拟实验 Access 接口和 Trunk 接口的配置 实验拓扑图实验要求将 SW 1 (即交换机 1)和 SW 2 (即交换机 2)相连的接口配置为 Trunk 接口,允许传输 VLAN 5 的数据;将 PC (即主机) 与 SW 相连接口配置为 Access 接口,接口的 PVID 配置为 VLAN 5 。实验步骤SW 1 上的配置如下:检查 SW 1 的接口配置,使用命令 display vlan 查看接口 VLAN 情况。 Hybrid 接口的配置 三种接口类型特点:Access 接口:这种接口只能属于一个 VLAN,只能接收和发送一个 VLAN 的数据。通常用于连接终端设备,比如主机或服务器等。Trunk 接口:这种接口能够接收和发送多个 VLAN 的数据,通常用于连接交换机。Hybrid 接口:这种接口能够接收和发送多个 VLAN 的数据,可用于交换机的链路,也可用于终端设备。与 Trunk 接口的区别是,发送数据时 Trunk 接口只会摘掉 PVID 标签,而 Hybrid 接口能够不携带 VLAN 标签发送多个 VLAN 数据。实验拓扑图实验要求新建 3 个 VLAN ,PC 1 属于 VLAN 2 ,PC 2 属于 VLAN 3 ,Server 1 (即服务器 1)属于 VLAN 10 ;通过 Hybrid 接口实现 VLAN 2 和 VLAN 3 不能互通,但 VLAN 2 和 VLAN 3 都能与 VLAN 10 进行通信。实验步骤SW 1 的 E0/0/2 接口,只允许通过 VLAN 2 , PC 1 又需要访问 VLAN 10 ,但是无法识别 VLAN 标签信息,因此配置 Hybrid 的 PVID 为 VLAN 2 ,同时放通 VLAN 2 和 VLAN 10 。 E0/0/3 接口配置同理。 E0/0/1 接口需要放通 VLAN 2 、 VLAN 3 和 VLAN 10 的流量,对端交换机又需要识别 VLAN 标签,因此以带 VLAN 标签的形式放通 VLAN 2 、 VLAN 3 和 VLAN 10 的流量。 SW 1 上的配置如下:SW 2 的 E0/0/1 接口配置和 SW 1 的 E0/0/1 接口同理。SW 2 的 E0/0/10 接口,只允许通过 VLAN 10 , Server 1 又需要放通 VLAN 2 和 VLAN 3 的流量,因此配置 Hybrid 的 PVID 为 VLAN 10 ,同时放通 VLAN 2 、 VLAN 3 和 VLAN 10 。 SW2 上的配置如下:检查 VLAN 10 信息,分别在 SW 1 和 SW 2 上使用命令 display vlan 10 查看配置是否正确。结尾Access 接口接收数据帧处理过程Access 接口发送数据帧处理过程Trunk 接口接收数据帧处理过程Trunk 接口发送数据帧处理过程参考资料:图解TCP/IP - 竹下隆史网络基础 - 田果路由与交换技术 - 刘丹宁编辑于 2022-03-22 08:35局域网VLANMAC地址​赞同 942​​38 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录图解网络看图学网络更简单程序员架构进阶公众号 程序员架构进阶,分享多年项目实践和架构经验小七好物生活工作的好物,一起发现,一起

一文搞定以太网PHY、MAC及其通信接口 - 知乎

一文搞定以太网PHY、MAC及其通信接口 - 知乎切换模式写文章登录/注册一文搞定以太网PHY、MAC及其通信接口Linux内核库本文主要介绍以太网的 MAC 和 PHY,以及之间的 MII(Media Independent Interface ,媒体独立接口)和 MII 的各种衍生版本——GMII、SGMII、RMII、RGMII等。好文推荐:万字讲解你写的代码是如何跑起来的?什么是Linux内核,如何搞懂Linux内核?(Linux内核学习笔记合集来了!)字节终面:CPU 是如何读写内存的?全网最牛Linux内核分析--Intel CPU体系结构一文让你读懂Linux五大模块内核源码,内核整体架构设计(超详细)嵌入式前景真的好吗?那有点悬!一文教你如何使用GDB+Qemu调试Linux内核Linux内核必读五本书籍(强烈推荐)全网独一无二Linux内核Makefle系统文件详解(一)(纯文字代码)带你深度了解Linux内核架构和工作原理!如何读懂GDB底层实现原理(从这几点入手~)一文彻底理解Memory barrier(内存屏障)一篇文带你搞懂,虚拟内存、内存分页、分段、段页式内存管理(超详细)简介从硬件的角度看,以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成。如下图所示:DMA控制器通常属于CPU的一部分,用虚线放在这里是为了表示DMA控制器可能会参与到网口数据传输中。但是,在实际的设计中,以上三部分并不一定独立分开的。由于,PHY整合了大量模拟硬件,而MAC是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将MAC集成进微控制器而将PHY留在片外。更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合。可分为下列几种类型:CPU集成MAC与PHY。目前来说并不多见CPU集成MAC,PHY采用独立芯片。比较常见CPU不集成MAC与PHY,MAC与PHY采用集成芯片。比较常见MAC及PHY工作在OSI七层模型的数据链路层和物理层。具体如下:什么是MACMAC(Media Access Control)即媒体访问控制子层协议。该部分有两个概念:MAC可以是一个硬件控制器 及 MAC通信以协议。该协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。MAC硬件大约就是下面的样子了:在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层。在接收数据的时候,MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC(逻辑链路控制)层。该层协议是以太网MAC由IEEE-802. 3以太网标准定义。以太网数据链路层其实包含MAC(介质访问控制)子层和LLC(逻辑链路控制)子层。一块以太网卡MAC芯片的作用不但要实现MAC子层和LLC子层的功能,还要提供符合规范的PCI界面以实现和主机的数据交换。MAC从PCI总线收到IP数据包(或者其他网络层协议的数据包)后,将之拆分并重新打包成最大1518Byte、最小64Byte的帧。这个帧里面包括了目标MAC地址、自己的源MAC地址和数据包里面的协议类型(比如IP数据包的类型用80表示,最后还有一个DWORD(4Byte)的CRC码。可是目标的MAC地址是哪里来的呢?这牵扯到一个ARP协议(介乎于网络层和数据链路层的一个协议)。第一次传送某个目的IP地址的数据的时候,先会发出一个ARP包,其MAC的目标地址是广播地址,里面说到:“谁是http://xxx.xxx.xxx.xxx这个IP地址的主人?”因为是广播包,所有这个局域网的主机都收到了这个ARP请求。收到请求的主机将这个IP地址和自己的相比较,如果不相同就不予理会,如果相同就发出ARP响应包。这个IP地址的主机收到这个ARP请求包后回复的ARP响应里说到:“我是这个IP地址的主人”。这个包里面就包括了他的MAC地址。以后的给这个IP地址的帧的目标MAC地址就被确定了。(其它的协议如IPX/SPX也有相应的协议完成这些操作)。IP地址和MAC地址之间的关联关系保存在主机系统里面,叫做ARP表。由驱动程序和操作系统完成。以太网MAC芯片的一端接计算机PCI总线,另外一端就接到PHY芯片上,它们之间是通过MII接口链接的。一个MAC的结构图如下图所示:什么是PHYPHY((Physical Layer,PHY))是IEEE802.3中定义的一个标准模块,STA(station management entity,管理实体,一般为MAC或CPU)通过SMI(Serial Manage Interface)对PHY的行为、状态进行管理和控制,而具体管理和控制动作是通过读写PHY内部的寄存器实现的。一个PHY的基本结构如下图:PHY是物理接口收发器,它实现OSI模型的物理层。IEEE-802.3标准定义了以太网PHY。包括MII/GMII(介质独立接口)子层、PCS(物理编码子层)、PMA(物理介质附加)子层、PMD(物理介质相关)子层、MDI子层。它符合IEEE-802.3k中用于10BaseT(第14条)和100BaseTX(第24条和第25条)的规范。注:PHY寄存器在IEEE802.3标准的 22.2.4 Management functions 节有介绍,但不涉及所有的寄存器,个别寄存器需要到其它章节中看,当然,文档里面也提到该在哪里找到哪个寄存器。【文章福利】小编推荐自己的Linux内核技术交流群:【749907784】整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加哦!!!零声Linuxc/c++高级开发【免费直播公开课】:零声白金VIP体验卡(含基础架构/高性能存储/golang/QT/音视频/Linux内核)课程:什么是MIIMII(Media Independent Interface)即媒体独立接口,MII 接口是 MAC 与 PHY 连接的标准接口。它是 IEEE-802.3 定义的以太网行业标准。MII 接口提供了 MAC 与 PHY 之间、PHY 与 STA(Station Management)之间的互联技术,该接口支持 10Mb/s 与 100Mb/s 的数据传输速率,数据传输的位宽为 4 位。MII 接口如下图所示:MII接口主要包括四个部分。一是从MAC层到PHY层的发送数据接口,二是从PHY层到MAC层的接收数据接口,三是从PHY层到MAC层的状态指示信号,四是MAC层和PHY层之间传送控制和状态信息的MDIO接口。MII 包括一个数据接口,以及一个 MAC 和 PHY 之间的管理接口:TX_CLK(transmit clock):TX_CLK (Transmit Clock) 是一个连续的时钟信号(即系统启动,该信号就一直存在),它是 TX_EN、TXD、TX_ER(信号方向为从 RS 到 PHY)的参考时钟,TX_CLK 由 PHY 驱动 TX_CLK 的时钟频率是数据传输速率的 25%,偏差 ±100ppm。例如,100Mb/s 模式下,TX_CLK 时钟频率为 25MHz,占空比在 35% 至 65% 之间。TXD<3:0>(transmit data):TXD 由 RS 驱动,同步于 TX_CLK,在 TX_CLK 的时钟周期内,并且TX_EN 有效,TXD 上的数据被 PHY 接收,否则 TXD 的数据对 PHY 没有任何影响。TX_ER(transmit coding error):TX_ER 同步于 TX_CLK,在数据传输过程中,如果 TX_ER 有效超过一个时钟周期,并且此时TX_EN 是有效的,则数据通道中传输的数据是无效的,没用的。注:当 TX_ER 有效并不影响工作在 10Mb/s 的 PHY 或者 TX_EN 无效时的数据传输。在 MII 接口的连线中,如果 TX_ER 信号线没有用到,必须将它下拉接地。TX_EN:发送使能。TX_EN 由 Reconciliation 子层根据 TX_CLK 上升沿同步进行转换。RX_CLK:它与 TX_CLK 具有相同的要求,所不同的是它是 RX_DV、RXD、RX_ER(信号方向是从 PHY 到 RS)的参考时钟。RX_CLK 同样是由 PHY 驱动,PHY 可能从接收到的数据中提取时钟 RX_CLK,也有可能从一个名义上的参考时钟(e.g., the TX_CLK reference)来驱动RX_CLK。RXD<3:0>(receive data):RXD由RS驱动,同步于 RX_CLK,在 RX_CLK 的时钟周期内,并且 RX_DV 有效,RXD 上的数据被RS 接收,否则 RXD 的数据对 RS 没有任何影响。RX_ER(receive error):RX_ER 同步于 RX_CLK,其在 RX 通道中的作用类似于 TX_ER 对于 TX 通道数据传输的影响。RX_DV(Receive Data Valid):RXD_DV 同步于 RX_CLK,被 PHY 驱动,它的作用如同于发送通道中的 TX_EN,不同的是在时序上稍有一点差别:为了让数据能够成功被RS接收,要求RXD_DV有效的时间必须覆盖整个 FRAME 的过程,即starting no later than the Start Frame Delimiter (SFD) and excluding any End-of-Frame delimiter。MII以4位半字节方式传送数据双向传输,时钟速率25MHz。其工作速率可达100Mb/s。COL(collision detected):COL 不需要同步于参考时钟。CRS(carrier sense):CRS 不需要同步于参考时钟,只要通道存在发送或者接收过程,CRS 就需要有效。MDC:由站管理实体向 PHY 提供,作为在 MDIO 信号上传送信息的定时参考。MDC 是一种非周期性的信号,没有最高或最低时间。无论 TX_CLK 和 RX_CLK 的标称周期如何,MDC 的最小高低时间应为 160 ns,MDC 的最小周期为 400 ns。MDIO:是 PHY 和 STA 之间的双向信号。它用于在 PHY 和 STA 之间传输控制信息和状态。控制信息由 STA 同步地针对 MDC 驱动并且由 PHY 同步地采样。状态信息由 PHY 针对 MDC 同步驱动并由 STA 同步采样。PHY 里面的部分寄存器是 IEEE 定义的,这样PHY把自己的目前的状态反映到寄存器里面。MAC 通过 SMI 总线不断的读取PHY 的状态寄存器以得知目前 PHY 的状态。例如连接速度、双工的能力等。当然也可以通过 SMI 设置 PHY的寄存器达到控制的目的。例如流控的打开关闭、自协商模式还是强制模式等。不论是物理连接的MII总线和 SMI 总线,还是 PHY 的状态寄存器和控制寄存器都是由IEEE的规范的。因此不同公司的 MAC 和 PHY 一样可以协调工作。当然为了配合不同公司的 PHY 的自己特有的一些功能,驱动需要做相应的修改。MII 支持 10Mbps 和 100Mbps 的操作,一个接口由 14 根线组成,它的支持还是比较灵活的。但是有一个缺点是因为它一个端口用的信号线太多,如果一个 8 端口的交换机要用到 112 根线,16 端口就要用到 224 根线,到 32 端口的话就要用到 448 根线。一般按照这个接口做交换机是不太现实的。所以现代的交换机的制作都会用到其它的一些从 MII 简化出来的标准,比如 RMII、SMII、GMII等。什么是RMII简化媒体独立接口是标准的以太网接口之一,比 MII 有更少的 I/O 传输。RMII 口是用两根线来传输数据的,MII 口是用 4 根线来传输数据的,GMII 是用 8 根线来传输数据的。MII/RMII 只是一种接口,对于10Mbps 线速,MII 的时钟速率是 2.5MHz 就可以了,RMII 则需要 5MHz;对于 100Mbps 线速,MII 需要的时钟速率是 25MHz,RMII 则是 50MHz。MII/RMII 用于传输以太网包,在 MII/RMII 接口是 4/2bit 的,在以太网的PHY里需要做串并转换,编解码等才能在双绞线和光纤上进行传输,其帧格式遵循IEEE 802.3(10M)/IEEE 802.3u(100M)/IEEE 802.1q(VLAN)。以太网帧的格式为:前导符 + 开始位 + 目的 mac 地址 + 源 mac 地址 + 类型/长度 + 数据 + padding(optional) + 32bitCRC。如果有 vlan,则要在类型/长度后面加上 2 个字节的 vlan tag,其中 12bit 来表示vlan id,另外,4bit 表示数据的优先级!什么是GMIIGMII是千兆网的MII接口,这个也有相应的RGMII接口,表示简化了的GMII接口。GMII 采用 8 位接口数据,工作时钟125MHz,因此传输速率可达 1000Mbps。同时兼容 MII 所规定的10/100 Mbps工作方式。GMII 接口数据结构符合IEEE以太网标准,该接口定义见 IEEE 802.3-2000。什么是RGMIIRGMII(Reduced Gigabit Media Independant Interface),精简GMII接口。相对于GMII相比,RGMII具有如下特征:发送/接收数据线由8条改为4条TX_ER和TX_EN复用,通过TX_CTL传送RX_ER与RX_DV复用,通过RX_CTL传送1 Gbit/s速率下,时钟频率为125MHz100 Mbit/s速率下,时钟频率为25MHz10 Mbit/s速率下,时钟频率为2.5MHz信号定义如下:虽然RGMII信号线减半,但TXC/RXC时钟仍为125Mhz,为了达到1000Mbit的传输速率,TXD/RXD信号线在时钟上升沿发送接收GMII接口中的TXD[3:0]/RXD[3:0],在时钟下降沿发送接收TXD[7:4]/RXD[7:4],并且信号TX_CTL反应了TX_EN和TX_ER状态,即在TXC上升沿发送TX_EN,下降沿发送TX_ER,同样的道理试用于RX_CTL,下图为发送接收的时序:什么是SMISMI:串行管理接口(Serial Management Interface),通常直接被称为MDIO接口(Management Data Input/Output Interface)。MDIO最早在IEEE 802.3的第22卷定义,后来在第45卷又定义了增强版本的MDIO,其主要被应用于以太网的MAC和PHY层之间,用于MAC层器件通过读写寄存器来实现对PHY层器件的操作与管理。MDIO主机(即产生MDC时钟的设备)通常被称为STA(Station Management Entity),而MDIO从机通常被称为MMD(MDIO Management Device)。通常STA都是MAC层器件的一部分,而MMD则是PHY层器件的一部分。MDIO接口包括两条线,MDIO和MDC,其中MDIO是双向数据线,而MDC是由STA驱动的时钟线。MDC时钟的最高速率一般为2.5MHz,MDC也可以是非固定频率,甚至可以是非周期的。MDIO接口只是会在MDC时钟的上升沿进行采样,而并不在意MDC时钟的频率(类似于I2C接口)。如下图所示。QA网卡的MAC和PHY间的关系?网卡工作在osi的最后两层,物理层和数据链路层,物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口.物理层的芯片称之为PHY.数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能.以太网卡中数据链路层的芯片称之为MAC控制器.很多网卡的这两个部分是做到一起的.他们之间的关系是pci总线接mac总线,mac接phy,phy接网线(当然也不是直接接上的,还有一个变压装置).PHY和MAC之间如何进行沟通通过IEEE定义的标准的MII/GigaMII(Media Independed Interfade,介质独立界面)界面连接MAC和PHY。这个界面是IEEE定义的。MII界面传递了网络的所有数据和数据的控制。而MAC对PHY的工作状态的确定和对PHY的控制则是使用SMI(Serial Management Interface)界面通过读写PHY的寄存器来完成的。PHY里面的部分寄存器也是IEEE定义的,这样PHY把自己的目前的状态反映到寄存器里面,MAC通过SMI总线不断的读取PHY的状态寄存器以得知目前PHY的状态,例如连接速度,双工的能力等。当然也可以通过SMI设置PHY的寄存器达到控制的目的,例如流控的打开关闭,自协商模式还是强制模式等。我们看到了,不论是物理连接的MII界面和SMI总线还是PHY的状态寄存器和控制寄存器都是有IEEE的规范的,因此不同公司的MAC和PHY一样可以协调工作。当然为了配合不同公司的PHY的自己特有的一些功能,驱动需要做相应的修改。原文作者:【一起学嵌入式】原文地址:一文搞定以太网PHY、MAC及其通信接口编辑于 2023-11-15 14:56・IP 属地湖南Mac​赞同 12​​添加评论​分享​喜欢​收藏​申请

【小菜学网络】MAC地址详解 - 知乎

【小菜学网络】MAC地址详解 - 知乎首发于小菜学编程切换模式写文章登录/注册【小菜学网络】MAC地址详解fasionchan上一小节介绍了以太网帧的结构,以及帧中各个字段的作用。参与以太网通讯的实体,由以太网地址唯一标识。以太网地址也叫做 MAC 地址,我们对它仍知之甚少。 以太网地址在不同场景,称谓也不一样,常用叫法包括这些: 以太网地址MAC 地址硬件地址物理地址网卡地址网卡在以太网中,每台主机都需要安装一个物理设备并通过网线连接到一起:这个设备就是 网卡 ( NIC ),网络接口卡 ( network interface card )的简称。有些文献也将网卡称为 网络接口控制器 ( network interface controller )。从物理的层面看,网卡负责将比特流转换成电信号发送出去; 反过来,也负责将检测到的电信号转换成比特流并接收。从软件的层面看,发送数据时,内核协议栈负责封装以太网帧(填充 目的地址 , 源地址 , 类型 和 数据 并计算 校验和),并调用网卡驱动发送; 接收数据时,负责验证 目的地址 、 校验和 并取出数据部分,交由上层协议栈处理。每块网卡出厂时,都预先分配了一个全球唯一的 MAC地址 ,并烧进硬件。 不管后来网卡身处何处,接入哪个网络,MAC 地址均不变。 当然,某些操作系统也允许修改网卡的 MAC 地址。MAC地址MAC 地址由 6 个字节组成( 48 位),可以唯一标识 $2^{48}$ ,即 281474976710656 个网络设备(比如网卡)。MAC 地址 6 个字节可以划分成两部分,如下图:3 字节长的 厂商代码 ( OUI ),由国际组织分配给不同的网络设备商;3 字节长的 序列号 ( SN ),由厂商分配给它生产的网络设备;厂商代码和序列号都是唯一分配,因此 MAC 地址是 全球唯一 的。冒分十六进制表示法MAC 地址 6 个字节如何展示呢? 是否能够作为 ASCII 来解读并显示?恐怕不能。一个字节总共有 8 个位,而 ASCII 只定义了其中的 7 位。况且 ASCII 中定义了很多控制字符,能显示的也只有字母、数字以及一些常用符号。以上述地址为例,只有 0x5B 这个字节是可以显示的,对应着字符 [ 。好在,我们可以用多个可读字符来表示一个原始字节。我们将一个字节分成两部分,高 4 位以及低 4 位,每部分可以用一个十六进制字符来表示。以 0x00 这个字节为例,可以用两个字符 00 表示:这样一来,整个地址可以用一个 12 字节长的字符串表示: 0010A4BA875B 。 为了进一步提高可读性,可以在中间插入冒号 : : 00:10:A4:BA:87:5B 。这就是 冒分十六进制表示法 ( colon hexadecimal notation )。注意到,冒分十六进制总共需要 17 个字节。 如果算上字符串结尾处的 \0 ,将达到 18 个字节,原始 MAC 地址的整整 3 倍!顺便提一下,十六进制字母字符用大小写都可以。网卡管理Linux 上有不少工具命令可以查看系统当前接入的网卡以及每张网卡的详细信息。首先是 ifconfig 命令,他默认显示已启用的网卡,详情中可以看到每张网卡的物理地址:fasion@u2004 [ ~ ] ➜ ifconfig

enp0s3: flags=4163 mtu 1500

inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255

inet6 fe80::a00:27ff:fe49:50dd prefixlen 64 scopeid 0x20

ether 08:00:27:49:50:dd txqueuelen 1000 (Ethernet)

RX packets 3702 bytes 4881568 (4.8 MB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 538 bytes 42999 (42.9 KB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enp0s8: flags=4163 mtu 1500

inet 192.168.56.2 netmask 255.255.255.0 broadcast 192.168.56.255

inet6 fe80::a00:27ff:fe56:831c prefixlen 64 scopeid 0x20

ether 08:00:27:56:83:1c txqueuelen 1000 (Ethernet)

RX packets 4183 bytes 1809871 (1.8 MB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 2674 bytes 350013 (350.0 KB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73 mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

inet6 ::1 prefixlen 128 scopeid 0x10

loop txqueuelen 1000 (Local Loopback)

RX packets 679 bytes 1510416 (1.5 MB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 679 bytes 1510416 (1.5 MB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0例子中,系统总共有 3 块已启用网卡,名字分别是 enp0s3 、 enp0s8 以及 lo 。其中 lo 是环回网卡,用于本机通讯。ether 08:00:27:49:50:dd 表明,网卡 enp0s3 的物理地址是 08:00:27:49:50:dd 。 请注意,ifconfig 是一个比较老旧的命令,正在慢慢淡出历史舞台。 ip 命令也可以查看系统网卡信息,默认显示所有网卡:fasion@u2004 [ ~ ] ➜ ip link

1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2: enp0s3: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000

link/ether 08:00:27:49:50:dd brd ff:ff:ff:ff:ff:ff

3: enp0s8: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000

link/ether 08:00:27:56:83:1c brd ff:ff:ff:ff:ff:ffip 命令输出信息比较紧凑, link/ether 08:00:27:49:50:dd 这行展示网卡的物理地址。ip 命令是一个比较新的命令,功能非常强大。它除了可以用于管理网络设备,还可以用于管理路由表,策略路由以及各种隧道。因此,推荐重点学习掌握 ip 命令的用法。编程获取网卡地址如果程序中需要用到网卡地址,如何获取呢?有个方法是执行 ip 命令输出网卡详情,然后从输出信息中截取网卡地址。例如:fasion@u2004 [ ~ ] ➜ ip link show dev enp0s3 | grep 'link/ether' | awk '{print $2}'

08:00:27:49:50:dd这种方法多用于 Shell 编程中。更优雅的办法是通过套接字编程,直接向操作系统获取。Linux 套接字支持通过 ioctl 系统调用获取网络设备信息,大致步骤如下:创建一个套接字,任意类型均可;准备 ifreq 结构体,用于保存网卡设备信息;将待查询网卡名填充到 ifreq 结构体;调用 ioctl 系统调用,向套接字发起 SIOCGIFHWADDR 请求,获取物理地址;如无错漏,内核将被查询网卡的物理地址填充在 ifreq 结构体 ifr_hwaddr 字段中;最后,附上一个完整的例子:#include

#include

#include

#include

#include

/**

* Convert binary MAC address to readable format.

*

* Arguments

* n: binary format, must be 6 bytes.

*

* a: buffer for readable format, 18 bytes at least(`\0` included).

**/

void mac_ntoa(unsigned char *n, char *a) {

// traverse 6 bytes one by one

sprintf(a, "%02x:%02x:%02x:%02x:%02x:%02x", n[0], n[1], n[2], n[3], n[4], n[5]);

}

int main(int argc, char *argv[]) {

if (argc < 2) {

fprintf(stderr, "no iface given\n");

return 1;

}

// create a socket, any type is ok

int s = socket(AF_INET, SOCK_STREAM, 0);

if (-1 == s) {

perror("Fail to create socket");

return 2;

}

// fill iface name to struct ifreq

struct ifreq ifr;

strncpy(ifr.ifr_name, argv[1], 15);

// call ioctl to get hardware address

int ret = ioctl(s, SIOCGIFHWADDR, &ifr);

if (-1 == ret) {

perror("Fail to get mac address");

return 3;

}

// convert to readable format

char mac[18];

mac_ntoa((unsigned char *)ifr.ifr_hwaddr.sa_data, mac);

// output result

printf("IFace: %s\n", ifr.ifr_name);

printf("MAC: %s\n", mac);

return 0;

}其中,mac_ntoa 函数调用字符串格式化函数 sprintf 将原始 MAC 地址转换成冒分十六进制形式。【小菜学网络】系列文章首发于公众号【小菜学编程】,敬请关注:发布于 2021-01-13 18:48Mac介质访问控制层(MAC)Mac Pro​赞同 8​​添加评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录小菜学编程欢迎关注小菜,这里有你想要的编程

数据链路层的功能、Ethernet的MAC地址和帧格式、二级交换机的工作模式及原理、交换机的简单命令_etherne mac地址是用来干嘛-CSDN博客

>

数据链路层的功能、Ethernet的MAC地址和帧格式、二级交换机的工作模式及原理、交换机的简单命令_etherne mac地址是用来干嘛-CSDN博客

数据链路层的功能、Ethernet的MAC地址和帧格式、二级交换机的工作模式及原理、交换机的简单命令

最新推荐文章于 2023-09-15 11:40:46 发布

Ryougi_Shiki_uio

最新推荐文章于 2023-09-15 11:40:46 发布

阅读量609

收藏

点赞数

分类专栏:

网络

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/Ryougi_Shiki_uio/article/details/115333949

版权

网络

专栏收录该内容

19 篇文章

0 订阅

订阅专栏

这里这里

数据链路层的功能Ethernet的MAC地址Ethernet帧格式二级交换机的工作模式二级交换机的工作原理交换机的简单命令

数据链路层的功能

数据链路层主要对数据链路进行建立、维护、拆除。对接收到数据帧进行包装、传输、同步、差错恢复。对流量起到控制的作用。

Ethernet的MAC地址

以太网MAC地址是用于识别以太网上一个或一组设备的。 以太网MAC地址一共四十八位(48比特),前24位识别供应商,后24位厂商对网卡的编号 每八位一个字节,第八位为1表示单播,为0表示组播48比特全部为1表示广播地址,换算成16位表示成FF-FF-FF 单播1对1,组播1对一组,广播1对所有。

Ethernet帧格式

需要注意的是数据帧开头包含7个字节的前导码和1个字节的帧起始界定符,之后才是目的地址源地址等。 目的地址表示数据要发送到的地址,源地址则表示该数据是从哪里发送过来的。跟在源地址之后的2个字节是用来标识上层数据的协议类型例如ip协议等,之后便是数据的内容,最后4个字节是帧校验序列FCS使用CRC循环冗余校验,用来校验数据的完整性。

二级交换机的工作模式

单工:两个交换机之间只能沿单一方向传输(单向行驶马路) 半双工:两个交换机之间不能同时进行数据传输,但是可以双向传输(红灯停,绿灯行) 全双工:两个交换机之间能同时且可以双向传输(绿灯时,马路两边的车辆开始行驶)

二级交换机的工作原理

用上图来解释二级交换机的工作原理。 当我们新配置了4台电脑和二个交换机并按照图中所示连线启动时,假设PC1想要pingPC3,那么PC1把数据发送给LSW1后会在LSW1这里泛洪,LSW2因为和LSW1连接也会同样泛洪。在这个1局域网内的所有电脑都会接收到PC1发送的寻找PC3的信息(这就是泛洪),由于这是发给PC3的信息,其余PC不会回应而PC3会回应PC1的信息像PC1发送一个表示接收到的信息,然后在进行数据传输。二级交换机具有MAC地址学习的功能,进行过数据传输的PC的地址会记录在交换机的MAC地址表中,这样下一次在通信的时候就不需要先泛洪在单播了,不过MAC表的老化时间为5分钟,如果在5分钟内MAC表没有更新的话则会对MAC表进行删除以防止数据冗余(尤其是交换机连接的PC过多之后)。

交换机的简单命令

我们可以在交换机中使用命令对交换机进行设置,下面列出部分命令 用户视图 [Huawei]系统视图 [Huawei-Ethernet0/0/1]接口视图 [Huawei-vlan10]vlan视图 display version查看版本号 [Huawei-Ethernet0/0/1]display this显示接口当前配置 dis mac-address查看mac地址表 [SW1-Ethernet0/0/1]undo negotiation auto关闭自协商功能,默认是自动协商,需先关闭之后可手动设置速率 [SW1-Ethernet0/0/1]duplex full/half full全双工,half半双工

[SW1-Ethernet0/0/1]speed 10/100配置接口速率10M/100M

优惠劵

Ryougi_Shiki_uio

关注

关注

0

点赞

0

收藏

觉得还不错?

一键收藏

知道了

0

评论

数据链路层的功能、Ethernet的MAC地址和帧格式、二级交换机的工作模式及原理、交换机的简单命令

这里这里数据链路层的功能Ethernet的MAC地址Ethernet帧格式二级交换机的工作模式二级交换机的工作原理交换机的简单命令数据链路层的功能数据链路层主要对数据链路进行建立、维护、拆除。对接收到数据帧进行包装、传输、同步、差错恢复。对流量起到控制的作用。Ethernet的MAC地址以太网MAC地址是用于识别以太网上一个或一组设备的。以太网MAC地址一共四十八位(48比特),前24位识别供应商,后24位厂商对网卡的编号每八位一个字节,第八位为1表示单播,为0表示组播48比特全部为1表示广播地

复制链接

扫一扫

专栏目录

数据链路层的功能及交换机的工作原理简单介绍

02-17

数据链路层的介绍,以太网MAC地址,了解以太网帧的包装,交换机的工作原理,命令行的层次关系 数据链路层的功能及交换机的工作原理简单介绍

以太网MAC地址组成与交换机基本知识点

Guiled7的博客

10-07

7588

以太网MAC地址组成与交换机基本知识点

1、以太网MAC地址

MAC地址由48位二进制数组成,通常分为六段,用十六进制表示

例:08 - 00 - 5a - e3 - 93 - 6c 前二十四位是供应商标识,后二十四位:供应商对网卡的唯一编号

以太网帧格式

以太网帧分为7部分,目的地址和源地址为MAC地址,各占6字节,协议占2字节,数据最多可占1500字节,帧校检占4字节。

2、交换机基础知识点

交换机转发原理

比方说,这是一台交换机,我们接上网络,开机,这时候c1要找c2,c1发出一个数

参与评论

您还未登录,请先

登录

后发表或查看评论

显示以太网Mac地址的方法

liuminx的专栏

07-02

1117

先通过地址判断:/sys/class/net/eth0/address ,常由于权限原因而无法访问;

故还需使用另外一种方式读取

@SuppressLint("HardwareIds")

@Override

protected void updateConnectivity() {

try (BufferedReader input = new BufferedReader(new InputStreamReader(new FileInputStream(

"/sys/.

以太网的简单概念、MAC地址与IP地址的关系

qq_56870066的博客

09-15

612

有了MAC地址,当然还需要IP地址。网络层可以 通过IP地址 将数据从一个网络发送到另一个网络。数据链路层可以将一个结点 通过MAC地址 传递到相同链路 的另一个结点。**

FPGA平台以太网学习:涉及1G/2.5G Ethernet 和Tri Mode Ethernet MAC两个IP核的学习记录(一)——知识补给

weixin_46152123的博客

03-02

7405

FPGA平台以太网学习:涉及1G/2.5G Ethernet 和Tri Mode Ethernet MAC两个IP核的学习记录

mac 网口ethernet_总线-Ethernet

weixin_27031001的博客

12-30

1085

1. _Ethernet1.1. 参考资料TI Ethernet portfolio overviewEthernet PHYPOE1.2. 名词解释PDU:protocol data unitLLC: logical link controlMAC:media access controlPHY:physicalMII:media independent interfaceMDI:media d...

网络知识点之-Mac地址

2302_76241188的博客

05-06

2376

MAC地址也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写)。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的。

uboot 启动 VxWorks调试记录

m0_37585897的博客

03-17

1925

硬件环境p2020,操作系统VxWorks6.9

板卡状态:可以启动uboot,启动不了bootrom。

前期板卡启动bootrom无果,可能是遇到了版型适配的问题。

解决无果,只能另寻他路。从uboot去引导VxWorks。

网上看了一堆相关uboot启动VxWorks的方法。

主要思路为:(1)烧写uboot;(2)设置uboot环境变量;(3)配置引导vx;

(1)烧...

以太网 以太网地址(MAC地址)

Hades_Ling的CSDN博客

12-02

2926

MAC地址也称为物理地址、硬件地址、链路地址

- MAC地址在网络设备制造生产时就已经写入了硬件内部,与IP地址不一样,MAC地址非手动强制修改,MAC地址将不会改变。MAC地址通常表示为12个16进制数,每2个16进制之间用冒号隔开:74-D8-3E-7A-AD-09

- 前6位16进制(`74-D8-3E`-7A-AD-09)为供应商地址代码、后6位16进制(74-D8-3E-`7A-AD-09`)为网卡唯一地址代码

Ethernet(以太网)之一 详解 MAC、MII、PHY

不能让自己太安逸,努力奋斗才是真

03-20

4649

结构

  从硬件的角度看,以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成。如下图所示   但是,在实际的设计中,以上三部分并不一定独立分开的。 由于,PHY整合了大量模拟硬件,而MAC是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将MAC集成进微控制器而将PHY留在片外。更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合。可分为下列几种类型:

CPU集成MAC与PHY

T2080RDB: UBoot boot vxWorks SMP

嵌入式系统项目分享

04-12

1454

T2080RDB:  UBoot boot vxWorks SMP3162412793@qq.com技术交流QQ群:691976956U-Boot 2015.01QorIQ-SDK-V1.8+g6ba8eed (Jun 14 2015 - 06:33:44) CPU0:  T2080E, Version: 1.1, (0x85380011)Core:  e6500, Version: 2.0, (...

数据链路层与交换机.

03-22

数据链路层与交换机..pdf 介绍了关于数据链路层与交换机.的详细说明,提供工业交换机的技术资料的下载。

数据链路层与交换机(与“端口”有关的文档共50张).pptx

11-30

数据链路层与交换机(与“端口”有关的文档共50张).pptx

通信与网络中的以太网链路层虚拟交换机拓扑发现算法研究与实现

11-04

摘 要 本文分析了现有的以太网链路层拓扑发现算法,在此基础上提出了虚拟交换机拓扑发现改进算法,给出了算法的具体实现方法和实现。使得原有算法的应用范围更广,适应性更强。改进后的算法可以发现网络中原算法无法...

数据通信实验四交换机链路聚合配置实验.pdf

07-14

数据通信实验四交换机链路聚合配置实验.pdf数据通信实验四交换机链路聚合配置实验.pdf数据通信实验四交换机链路聚合配置实验.pdf数据通信实验四交换机链路聚合配置实验.pdf数据通信实验四交换机链路聚合配置实验.pdf...

Java核心算法+插入排序+冒泡排序+选择排序+快速排序

03-13

1直接插入排序

* 基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序

2冒泡排序

* 基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,

自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。

即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。

3简单选择排序

* 基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;

然后在剩下的数当中再找最小的与第二个位置的数交换,

如此循环到倒数第二个数和最后一个数比较为止。

4快速排序

* 基本思想:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。

Redis常见面试题和答案(最新版).pdf

03-13

redis面试题 最新常见面试题和答案

STM32单片机FPGA毕设电路原理论文报告基于dsp及mcu的谷物含水率准动态检测技术探讨

最新发布

03-13

STM32单片机FPGA毕设电路原理论文报告基于dsp及mcu的谷物含水率准动态检测技术探讨本资源系百度网盘分享地址

网络工程师学习-模拟器(设备配置,拓扑搭建)

03-13

EVE-NG是一款功能强大的网络虚拟化平台,它能够帮助网络工程师和学习者创建、管理和测试复杂的网络拓扑。EVE-NG的全称是Emulated Virtual Environment - Next Generation,它是基于开源项目Unetlab的改进版本。

EVE-NG提供了一个基于Web的用户界面,使用户可以轻松地创建和配置虚拟网络设备,如路由器、交换机、防火墙等,以及运行虚拟机和容器。用户可以模拟各种网络环境,包括LAN、WAN、数据中心和云环境,从而进行网络架构设计、故障排除和性能优化等工作。

这个平台的最大优点之一是其支持多种网络设备的虚拟化,包括Cisco、Juniper、Huawei等品牌的设备,用户可以使用真实的网络设备镜像来模拟现实环境,进行真实场景下的测试和实验。此外,EVE-NG还支持Docker容器,使用户能够轻松地集成第三方应用程序和工具。

对于网络工程师和学习者而言,EVE-NG是一个非常有用的工具。它可以帮助他们进行各种网络配置、调试和优化工作,同时还能够提供一个安全的实验环境,使他们能够在不影响实际网络的情况下进行实验和学习。

链路层交换机的工作原理

06-12

链路层交换机是一种基于MAC地址的网络设备,它的主要工作原理是通过MAC地址学习和转发数据帧。 当数据帧从某个端口进入交换机时,交换机会读取数据帧中的源MAC地址,并将该地址存储到交换机的MAC地址表中。然后,...

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

Ryougi_Shiki_uio

CSDN认证博客专家

CSDN认证企业博客

码龄4年

暂无认证

86

原创

32万+

周排名

107万+

总排名

3万+

访问

等级

930

积分

15

粉丝

21

获赞

23

评论

108

收藏

私信

关注

热门文章

Linux:虚拟机新建网卡并手动设置ip地址

7730

loopback地址,静态vlan,trunk的介绍,附实验题

2107

IP地址,子网掩码,子网规划,数据包格式介绍

1782

交换机接口的三种模式,生成树协议,实验题

1679

解决虚拟机安装ubantu界面过小问题

869

分类专栏

网络

19篇

linux和linux常规服务

26篇

集群

25篇

shell

4篇

容器

5篇

openstack

5篇

最新评论

rsync+inotify介绍

阿J~:

流下了没有技术的泪水

rsync+inotify介绍

我爱人工智能:

写的不错,感谢分享,期待大佬回访!

mysql:高可用配置

大家一起学编程(python):

6翻了

mysql高阶操作:排序、分组、子查询、视图、正则

大家一起学编程(python):

遇到好文章,我都会评论

tomcat介绍:安装与优化

大家一起学编程(python):

确认过眼神,这是一大佬

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

解决虚拟机安装ubantu界面过小问题

registry私有仓库部署与docker-cgroup资源控制

docker harbor仓库介绍

2021年88篇

目录

目录

分类专栏

网络

19篇

linux和linux常规服务

26篇

集群

25篇

shell

4篇

容器

5篇

openstack

5篇

目录

评论

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

Ethernet MAC 简介-CSDN博客

>

Ethernet MAC 简介-CSDN博客

Ethernet MAC 简介

最新推荐文章于 2023-04-21 12:15:18 发布

Super龍卷風

最新推荐文章于 2023-04-21 12:15:18 发布

阅读量7.1k

收藏

11

点赞数

3

分类专栏:

Ethernet MAC

文章标签:

工作

powerpoint

access

layer

网络

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/tornadofeng/article/details/1829532

版权

Ethernet MAC

专栏收录该内容

2 篇文章

0 订阅

订阅专栏

  今天上午进行的很顺利,导师认为选题是可以的,而且开题报告写的不错,不用修改什么了。只需要在准备一下发表的时候所用的PowerPoint就行了。我当然是很开心了,原本还担心导师会让重新选题。现在好了,心病去了一大块。等开题报告会之前再好好准备一下,应该就不成问题了。嘻嘻。

  下面进入正题吧,呵呵。昨天说了IEEE802.3和Ethernet,今天就简单说下MAC吧:

MAC(Media Access Controller)简介

MAC在OSI的通信模式中是处于链路层(Link Layer)中的,是链路层的底层。

图1.OSI网络参考模型

 

在链路层中,MAC在CSMA/CD(Carrier Sense Multiple Access/Collision Derect),即载波监听多路访问/冲突检测方法协议的规范下进行接收和发送数据的。包括两个部分:接收器与发送器。

CSMA/CD基于一些常识性规则:

¤      载波监听:工作站时刻在侦听介质。在介质空闲时间超过帧间隙后,工作站可以发送一帧。

¤      冲突监测:两个工作站可能在大致相同的时刻开始发送。发送时,一个工作站继续侦听,检测是否存在引起其信号混淆的并发传输。

¤      拥挤:发送者检测到冲突后,必须继续发送位以保证所有的工作站能够发现冲突。这些附加位称为拥挤位,共32位(4个字节)。

¤      等待:卷入冲突的工作站必须等待随机长的时间,然后再尝试发送。

 

发送和传输的数据是采用如下的MAC帧格式:

 

图2.MAC帧格式

 

处于MAC帧开始处的字段为前导码字段,由7个字节组成。(其功能是使物理层的接收器建立比特同步。)编码形式为多个“1”、“0”交替的二进制序列,最后一比特为“0”。在这种编码形式下,经过曼彻斯特编码后成为周期性方波。

帧首定界符(SFD)是MAC帧的第2个字段,其编码形式为“10101011”序列,长度刚好为一个字节。该字段的功能是指示一帧的开始。

终点地址(DA)为第3个段,长度为6个字节。该字段用来指出帧要发往的工作站。

源点地址(SA)处于终点地址字段之后,其长度也为6个字节。该字段功能是指示发送该帧的工作站地址。

长度指示符段长度为2个字节,用来指示紧随其后的逻辑链路控制(LLC)数据字节的长度,长度单位为字节数。

LLC数据段,就是所输的数据了,该数据由LLC子层提供和接收。

填充(PAD)字段紧接的LLC之后,用来对LLC数据进行填加,以保证帧有足够长度,适应冲突检测的需要。

帧检验序列(FCS)处于帧的最后,其长度为32比特,用于检验帧在传输过程中有无差错。

 

上面涉及到了MAC地址,所以简单说下:

IEEE802.3标准规定,源点地址字段中第1比特恒为“0”。相对的,终点地址有更多的规定,原因是一个帧有可能发给某一工作站,也可能发送给一组工作站,还有可能发送给所有工作站,我们将后两种情况分别称为组播(Multicast-Group)和广播(Broadcast)。

MAC地址的格式如下图所示。当该字段第一比特为“0”时,表示帧要发送给某一工作站,即所谓单站地址。当该字段第一比特为“1”时,表示帧发送给一组工作站,即所谓组地址。全“1”的组地址表示广播地址。

 

 

图3.MAC地址组成

I/G=0:单站地址;    

I/G=1:组地址;     

U/L=0:全局地址;

U/L=1:局部地址。

 

顺便在此指出,帧长除有最小要求外,最长也有限制,这是由于发送站和接收站的缓冲器容量总有一限度,同时如果一个工作站发送的帧太长,将妨碍其它站对媒体的使用。

 

优惠劵

Super龍卷風

关注

关注

3

点赞

11

收藏

觉得还不错?

一键收藏

知道了

0

评论

Ethernet MAC 简介

  今天上午进行的很顺利,导师认为选题是可以的,而且开题报告写的不错,不用修改什么了。只需要在准备一下发表的时候所用的PowerPoint就行了。我当然是很开心了,原本还担心导师会让重新选题。现在好了,心病去了一大块。等开题报告会之前再好好准备一下,应该就不成问题了。嘻嘻。  下面进入正题吧,呵呵。昨天说了IEEE802.3和Ethernet,今天就简单说下MAC吧:MAC(Media

复制链接

扫一扫

专栏目录

10G Ethernet MAC 15.1.pdf

11-04

The 10G Ethernet MAC core is a fully verified Ethernet Media Access Controller function that interfaces to physical layer devices in an Ethernet system. At 10 Gb/s, the core is designed to the IEEE Standard 802.3-2012, Carrier Sense Multiple Access with Collision Detection(CSMA/CD) Access Method and Physical Layer Specifications (IEEE Std 802.3) and supports the high-bandwidth demands of network Internet Protocol (IP) traffic on LAN,MAN, and WAN networks.

Ethernet vendor codes and well-known MAC addresses

11-05

# The IEEE public OUI listing available from:

#

#

#

#

# Michael Patton's "Ethernet Codes Master Page" available from:

#

#

# This is Wireshark 'manuf' file, which started out as a subset of Michael

# Patton's list and grew from there.

参与评论

您还未登录,请先

登录

后发表或查看评论

edk ethernet mac实现网络通信

12-27

在EDK中使用嵌入式mac实现网络通信,使用xilinx的开发板。

Tri-mode_Ethernet_MAC.zip_ethphytestbench_mac ip核_tri-mode-ether

07-14

此包为三态以太网控制IP核,包内包含了仿真环境,说明文档,综合结果等文件。

FPGA平台以太网学习:涉及1G/2.5G Ethernet 和Tri Mode Ethernet MAC两个IP核的学习记录(一)——知识补给

weixin_46152123的博客

03-02

7405

FPGA平台以太网学习:涉及1G/2.5G Ethernet 和Tri Mode Ethernet MAC两个IP核的学习记录

以太网详解二

肥嘟嘟的左卫门

09-15

4432

结构

  从硬件的角度看,以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成。如下图所示

  但是,在实际的设计中,以上三部分并不一定独立分开的。 由于,PHY整合了大量模拟硬件,而MAC是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将MAC集成进微控制器而将PHY留在片外。更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合。可分为下列几种类型:

CPU集成MAC与PHY。

ZYNQ使用Tri Mode Ethernet MAC千兆网光通信

wangjie36的博客

11-19

5405

一,原理

SFP 接口的 FPGA 开发板可以通过安装 SFP 转 RJ45 模块或者直接通过光纤进行以太网通信。上层协议就是用户实际收发的有效数据部分,而“Tri Mode Ethernet MAC”IP 核负责处理以太网的 MAC,以及通过 GMII 接口和“1G/2.5G Ethernet PCS/PMA or SGMII”IP 的接口 GMII 接口通信。

2,SFP 信号定义 :SFP 屏蔽笼插入千兆 SFP 转 RJ45 电口或者光模块。

3,原理图

需要将Tri Mode ..

Ethernet基础知识之一

个人笔记共同分享

02-28

965

http://blogold.chinaunix.net/u2/60488/showart_476053.html***所有内容均选自不同达人,本人整理而已,仅供参考学习***

一、网卡、MAC控制器和MAC地址

  提到MAC不得不涉及网卡的工作原理,网卡工作在OSI参考模型的数据链路层和网络层。这里又出现了一个概念“OSI参考模型”,在这个模型中定义了网络通讯是分层的,分别是物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。以太网数据链路层其实包含M

以太网详解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介绍

tugouxp的专栏

04-21

1020

例如连接速度、双工的能力等。在100M速率中,每一组的内容都是变换的,在10M速率中,每一组数据需要重复10次,采样任一一组都可以。PHY在发送数据的时候,收到MAC过来的数据(对PHY来说,没有帧的概念,对它来说,都是数据)然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去,收数据时的流程反之。一次RXD[1:0]上的数据,在10M以太网速率中,MAC层每10个时钟采样一次RXD[1:0]上的数据,此时物理层接收的每个数据会在RXD[1:0]保留10个时钟。

Ethernet(以太网) 详解 MAC、MII、PHY

我思故我在!

08-12

2164

Ethernet(以太网) 详解 MAC、MII、PHY

结构

  从硬件的角度看,以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成。如下图所示

  但是,在实际的设计中,以上三部分并不一定独立分开的。 由于,PHY整合了大量模拟硬件,而MAC是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将MAC集成进微控制器而将PHY留在片外。更灵活、密度更高的芯片技术已经可以实现MAC

iTE SDK-Ethernet MAC 管理1

08-03

當出產時,每張網卡都需要有一組獨有的 MAC Address,當我們在系統開發時使用的是申請方法詳見網路 http://standards.ieee.org/d

以太网MAC地址组成与交换机基本知识点

Guiled7的博客

10-07

7588

以太网MAC地址组成与交换机基本知识点

1、以太网MAC地址

MAC地址由48位二进制数组成,通常分为六段,用十六进制表示

例:08 - 00 - 5a - e3 - 93 - 6c 前二十四位是供应商标识,后二十四位:供应商对网卡的唯一编号

以太网帧格式

以太网帧分为7部分,目的地址和源地址为MAC地址,各占6字节,协议占2字节,数据最多可占1500字节,帧校检占4字节。

2、交换机基础知识点

交换机转发原理

比方说,这是一台交换机,我们接上网络,开机,这时候c1要找c2,c1发出一个数

mac 网口ethernet_总线-Ethernet

weixin_27031001的博客

12-30

1085

1. _Ethernet1.1. 参考资料TI Ethernet portfolio overviewEthernet PHYPOE1.2. 名词解释PDU:protocol data unitLLC: logical link controlMAC:media access controlPHY:physicalMII:media independent interfaceMDI:media d...

数据链路层的功能、Ethernet的MAC地址和帧格式、二级交换机的工作模式及原理、交换机的简单命令

Ryougi_Shiki_uio的博客

03-30

609

这里这里数据链路层的功能Ethernet的MAC地址Ethernet帧格式二级交换机的工作模式二级交换机的工作原理交换机的简单命令

数据链路层的功能

数据链路层主要对数据链路进行建立、维护、拆除。对接收到数据帧进行包装、传输、同步、差错恢复。对流量起到控制的作用。

Ethernet的MAC地址

以太网MAC地址是用于识别以太网上一个或一组设备的。

以太网MAC地址一共四十八位(48比特),前24位识别供应商,后24位厂商对网卡的编号

每八位一个字节,第八位为1表示单播,为0表示组播48比特全部为1表示广播地

Network 之二 Ethernet(以太网)中的 MAC、MII、PHY 详解

热门推荐

技术干货

04-26

16万+

结构

  从硬件的角度看,以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成。如下图所示

  但是,在实际的设计中,以上三部分并不一定独立分开的。 由于,PHY整合了大量模拟硬件,而MAC是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将MAC集成进微控制器而将PHY留在片外...

Tri Mode Ethernet MAC的配置及使用

卖红薯的小孩

01-24

6434

以太网技术是当今被广泛应用的网络技术之一,Xilinx FPGA提供了可参数化、灵活配置的千兆以太网IP Core解决方案,可以实现以太网链路层和物理层的快速接入。

关于以太网的基础知识在此不在赘述,以下叙述Xilinx推出的以太网解决方案Tri Mode Ethernet MAC(TEMAC)。

Xilinx公司的TEMAC核是可参数内核,适用于交换机和路由器等网络设备,使设计人员能够实现大量集成式以太网设计。TEMAC的设计符合IEEE 802.3的设计规范,具备3中工作模式:10/100/1000

Ethernet(以太网)之一 详解 MAC、MII、PHY

不能让自己太安逸,努力奋斗才是真

03-20

4649

结构

  从硬件的角度看,以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成。如下图所示   但是,在实际的设计中,以上三部分并不一定独立分开的。 由于,PHY整合了大量模拟硬件,而MAC是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将MAC集成进微控制器而将PHY留在片外。更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合。可分为下列几种类型:

CPU集成MAC与PHY

【以太网硬件十四】以太网的MAC是干什么的?

highman110的博客

10-15

4089

详细说明以太网MAC子层相关功能

ARP协议与Ethernet MAC帧

weixin_42815846的博客

05-14

840

ARP协议:理解ARP的概念和作⽤

ARP协议各字段如图:

MAC帧:理解以太⽹MAC帧

MAC帧字段如图:

抓取ARP包:抓取并分析ARP请求与应答包

使用wireshark进行抓包,抓取结果部分截图:

ARP请求

ARP应答

ARP分析:抓取ARP帧并分析

具体分析

上图所示可见,得到的信息由上至下分别是:

源主机MAC、目标主机MAC

ARP应答

硬件类型:Ethernet(1)

协议类型:IPv4(0x0800) (即对应的类型码)

硬件size:6

协议size:4

操作码:repl

ethernet mac

最新发布

08-18

Ethernet MAC(Media Access Control)是以太网的物理层地址,用于唯一标识网络中的各个设备。MAC地址是一个由6个字节(48位)组成的地址,通常用十六进制表示,例如:00:1A:2B:3C:4D:5E。

在以太网中,每个设备都有一个唯一的MAC地址。MAC地址由网络适配器(NIC)或网卡硬件制造商分配,并在设备制造时写入网卡的固件中。这个地址在设备的整个生命周期中是不变的。

MAC地址的前三个字节称为组织唯一标识符(Organizationally Unique Identifier,OUI),用于标识设备的制造商。后三个字节为设备的唯一标识码。

在以太网通信中,使用MAC地址来定位和发送数据帧。以太网帧中包含了源MAC地址和目标MAC地址,通过比较目标MAC地址和设备自身的MAC地址,确定是否接收该数据帧。

需要注意的是,MAC地址只在本地网络中起作用,不会跨越路由器传输。当数据从一个网络发送到另一个网络时,会使用网络协议(如IP)来封装和路由数据。

总结来说,Ethernet MAC是用于唯一标识以太网设备的物理层地址,用于在以太网通信中定位和发送数据帧。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

Super龍卷風

CSDN认证博客专家

CSDN认证企业博客

码龄17年

暂无认证

153

原创

7万+

周排名

114万+

总排名

62万+

访问

等级

6641

积分

64

粉丝

49

获赞

97

评论

160

收藏

私信

关注

热门文章

安卓手机机短信如何导入苹果IOS9以上版本

58390

[图解] 孔明锁的正确安装方法

41207

VB读写Excel

38516

无线网卡被自动禁用的原因

30210

如何用PS制作透明图片

16611

分类专栏

Ethernet MAC

2篇

office学习

3篇

RGB/YUV转换

3篇

VB.net

九月听力练习

十一月听力练习

19篇

十月听力练习

37篇

平凡生活

32篇

我的天使

6篇

自学成长

45篇

转载

32篇

WM6.1

1篇

WM6.5

1篇

移动设备技术开发

8篇

电话

1篇

电话簿

1篇

电话本

1篇

南瓜灯

1篇

万圣节

1篇

亲子

1篇

灰太狼

1篇

制作

1篇

娱乐

1篇

最新评论

群晖NAS虚拟机安装软路由LEDE,把K3C做AP

qq_23862003:

问一下 这样设置之后怎么访问k3c后台

安卓手机机短信如何导入苹果IOS9以上版本

杨子来也:

老哥,转换软件还在吗?急需

用vb编了个数独计算器

盠麇枫:

其实还有一个比较简单的方法,就是把一个九宫格每个格子中可能的数字列出来,然后再把格子中的可能数进行求差运算,剩下的那个就是答案

用vb编了个数独计算器

上九天揽徐丑:

有源码吗

用excel求逆矩阵

50包邮你家电脑:

谢谢,问题解决了

最新文章

xbox360 FSD 安装游戏教程(Freestyle3)

群晖NAS虚拟机安装软路由LEDE,把K3C做AP

畅捷通魔方MP70初体验

2021年2篇

2018年1篇

2016年2篇

2015年11篇

2011年4篇

2010年2篇

2009年12篇

2008年61篇

2007年84篇

目录

目录

分类专栏

Ethernet MAC

2篇

office学习

3篇

RGB/YUV转换

3篇

VB.net

九月听力练习

十一月听力练习

19篇

十月听力练习

37篇

平凡生活

32篇

我的天使

6篇

自学成长

45篇

转载

32篇

WM6.1

1篇

WM6.5

1篇

移动设备技术开发

8篇

电话

1篇

电话簿

1篇

电话本

1篇

南瓜灯

1篇

万圣节

1篇

亲子

1篇

灰太狼

1篇

制作

1篇

娱乐

1篇

目录

评论

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

Network 之二 Ethernet(以太网)中的 MAC、MII、PHY 详解_ethernet phy-CSDN博客

>

Network 之二 Ethernet(以太网)中的 MAC、MII、PHY 详解_ethernet phy-CSDN博客

Network 之二 Ethernet(以太网)中的 MAC、MII、PHY 详解

ZC·Shou

已于 2023-02-28 08:43:20 修改

阅读量10w+

收藏

1.8k

点赞数

328

分类专栏:

Network

文章标签:

MAC

PHY

以太网

Ethernet

MII

于 2018-04-26 14:06:47 首次发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/ZCShouCSDN/article/details/80090802

版权

Network

专栏收录该内容

13 篇文章

12 订阅

¥29.90

¥99.00

订阅专栏

超级会员免费看

结构

  从硬件的角度看,以太网接口电路主要由 MAC(Media Access Control,MAC)控制器和物理层接口 PHY(Physical Layer,PHY)两大部分构成。如下图所示:   但是,在实际的设计中,以上三部分并不一定是独立分开的。 由于,PHY 整合了大量模拟硬件,而 MAC 则是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将 MAC 集成进微控制器而将 PHY 留在片外(现在,更灵活、密度更高的芯片技术已经可以实现 MAC 和 PHY 的单芯片整合)。

CPU 集成 MAC 与 PHY,目前来说并不多见。

CPU 集成 MAC,PHY 采用独立芯片,这种比较常见。

了解本专栏

订阅专栏 解锁全文

超级会员免费看

优惠劵

ZC·Shou

关注

关注

328

点赞

1855

收藏

觉得还不错?

一键收藏

打赏

知道了

28

评论

Network 之二 Ethernet(以太网)中的 MAC、MII、PHY 详解

结构  从硬件的角度看,以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成。如下图所示   但是,在实际的设计中,以上三部分并不一定独立分开的。 由于,PHY整合了大量模拟硬件,而MAC是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将MAC集成进微控制器而将PHY留在片外...

复制链接

扫一扫

专栏目录

订阅专栏

以太网(一)MAC、MII、PHY 介绍

ID2442512720的博客

06-20

2297

即媒体访问控制层协议。MAC由硬件控制器和MAC通信协议构成。该协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。MAC硬件框图如下图所示:在发送数据的时候,MAC 协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC 协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至 LLC(逻辑链路控制)层。

MAC,PHY,MII的关系

09-25

本文主要介绍以太网的MAC(Media Access Control,即媒体访问控制子层协议)和PHY(物理层)之间的MII(Media Independent Interface ,媒体独立接口),以及MII的各种衍生版本——GMII、SGMII、RMII、RGMII等。

28 条评论

您还未登录,请先

登录

后发表或查看评论

关于MII、RMII、GMII、RGMII、PHY、网络变压器、RJ45的硬件总结

热门推荐

weixin_44415816的博客

01-03

2万+

文章目录前言一、网络传输结构及原理1.以太网的工作原理2.TCP/IP协议3.数据链路层(MAC)二、介质独立接口MII,RMII,GMII,RGMII1.MII(Media Independent interface)2.RMII(Reduced Media Independent Interface)3.GMII(Gigabit Medium Independent)4.RGMII(Reduced Gigabit Media Independent Interface)三、物理层芯片(PHY)二、使用步

STM32的以太网外设+PHY(LAN8720)使用详解(3):PHY寄存器详解

kevin1499的博客

12-22

1845

STM32的以太网外设+PHY(LAN8720)的PHY寄存器详解。

Ethernet(以太网)之一 详解 MAC、MII、PHY

不能让自己太安逸,努力奋斗才是真

03-20

4649

结构

  从硬件的角度看,以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成。如下图所示   但是,在实际的设计中,以上三部分并不一定独立分开的。 由于,PHY整合了大量模拟硬件,而MAC是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将MAC集成进微控制器而将PHY留在片外。更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合。可分为下列几种类型:

CPU集成MAC与PHY

ETHERNET中MAC通过MII总线控制PHY的过程

瑞风轻拂

12-20

6611

一些芯片资料常常遇到MAC MODE 和PHY MODE 不知什么意思?

一般以太网芯片中涉及,一般交换芯片(比如ks8993吗,8305sb等)可以选择两种模式,mac和phy。

应该就是针对不同的外部接口采用的不同模式吧,主要是区别在于针对OSI七层协议中数据链路层中处理信息所处的层不一样,也就导致处理的对象不一样。

以下资料来自网络是针对有关MAC、PHY和MII 的详细解

以太网详解二

肥嘟嘟的左卫门

09-15

4432

结构

  从硬件的角度看,以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成。如下图所示

  但是,在实际的设计中,以上三部分并不一定独立分开的。 由于,PHY整合了大量模拟硬件,而MAC是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将MAC集成进微控制器而将PHY留在片外。更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合。可分为下列几种类型:

CPU集成MAC与PHY。

ethernet phy

253765952

08-07

1935

简单记录802.3中的10BASE-T,100BASE-T,1000BASE-T学习总结

以太网物理层协议整理(1)-百兆/千兆以太网

NowOrNever

02-20

2万+

1) 物理层各子层功能

Reconciliation Sublayer (RS):

协调子层。汇聚功能,使不同介质类型对MAC子层透明

Medium Independent Interface (MII):

介质无关接口。提供公共接口,屏蔽这些物理层的不同细节

Physical Coding Sublayer (PCS):

物理编码子层。编码/解码

Physical Med

以太网PHY是什么?

u012521203的专栏

09-12

1万+

PHY是物理接口收发器,它实现物理层.IEEE-802.3标准定义了以太网PHY.包括MII/GMII(介质独立接口)子层,PCS(物理编码子层),PMA(物理介质附加)子层,PMD(物理介质相关)子层,MDI子层.它符合IEEE-802.3k中用于10BaseT(第14条)和100BaseTX(第24条和第25条)的规范.

PHY在发送数据的时候,收到MAC过来的数据(对PHY来说,没

【以太网硬件十四】以太网的MAC是干什么的?

highman110的博客

10-15

4089

详细说明以太网MAC子层相关功能

以太网MAC和PHY关系

05-28

详细描述了以太网mac层和PHY层的关系,适合新手上手了解协议分层

MII.rar_FPGA以太网_fpga 以太网_mac mii_riceagy_xilinx MII 代码

09-24

MII接口编程,用于收发以太网MAC帧的FPGA实现。

Ethernet 以太网控制器Verilog源码(含有MAC,MII接口) Ethernet-ip-core设计源代码.zip

05-11

Ethernet 以太网控制器Verilog源码(含有MAC,MII接口) Ethernet_ip_core设计源代码,可供FPGA学习及设计参考。

通信与网络中的RMII模式以太网PHY芯片DP83848C的应用

11-05

该设计为嵌入式系统中以太网底层的软硬件设计提供了参考,也为TCP/IP协议在嵌入式系统上的实现提供了硬件平台。  引言  DP83848C是美国国家半导体公司生产的一款鲁棒性好、功能全、功耗低的10/100 Mbps单路...

MII.rar_PHY_PHY VHDL_phy 芯片 配置_vhdl 以太网_以太网接口vhdl

07-14

以太网MII芯片配置接口的VHDL设计,配置PHY芯片的模块设计

vb串口通讯源码手机串口实现短信pdu编码方式

03-13

vb串口通讯源码这是一个通过手机串口实现短信发送的实例,采用pdu编码方式,VB开发语言实现的本资源系百度网盘分享地址

C语言并行爬虫(epoll)读写操作代码

03-13

c语言文件读写操作代码。在C语言中实现一个基于epoll的并行爬虫是一个相对复杂的任务,因为它涉及到网络编程、异步I/O、HTML解析等多个方面。下面我将给出一个简化的示例,说明如何使用epoll来并发地处理多个网络连接。

base.apk

最新发布

03-13

base.apk

stm32如何配置以太网phy芯片

07-20

在STM32微控制器上配置以太网PHY芯片需要执行以下步骤:

1. 硬件连接:将以太网PHY芯片与STM32微控制器进行正确的硬件连接。确保使用正确的引脚连接以太网PHY芯片的各个信号线(如RMII或MII接口)与STM32的相应引脚。

2. 初始化GPIO:配置STM32的GPIO引脚,以使其与PHY芯片的引脚相对应。使用STM32的开发工具(如CubeMX)或编写代码手动初始化GPIO引脚。

3. 配置时钟:使用STM32的时钟控制单元(RCC)配置时钟源和时钟分频器,以提供适当的时钟频率给PHY芯片。

4. 配置以太网控制器:使用STM32的以太网控制器模块(ETH)进行配置。这包括设置MAC地址、工作模式(如RMII或MII)、速率、半双工/全双工等。

5. 配置PHY芯片:根据所使用的PHY芯片型号,执行相应的配置。这可能涉及到写入特定寄存器来设置PHY芯片的各种参数,如速率、自动协商等。可以通过读写PHY芯片的寄存器来实现配置。

6. 启动以太网:启动STM32的以太网控制器,使其开始工作。这可以通过设置相应的寄存器位来实现。

请注意,具体的配置过程和步骤可能会因所使用的STM32型号和PHY芯片型号而有所不同。建议参考STM32的参考手册、数据手册以及PHY芯片的数据手册,以获取更详细的配置信息和示例代码。此外,使用STM32的开发工具(如CubeMX)也可以简化配置过程。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

ZC·Shou

CSDN认证博客专家

CSDN认证企业博客

码龄9年

暂无认证

162

原创

6845

周排名

1453

总排名

221万+

访问

等级

1万+

积分

4973

粉丝

2617

获赞

561

评论

1万+

收藏

私信

关注

热门文章

开发工具 之四 Python 中的 pip 安装 及 使用详解

272595

Network 之二 Ethernet(以太网)中的 MAC、MII、PHY 详解

160290

STM32 之一 HAL库、标准外设库、LL库(STM32 Embedded Software)

114021

STM32 之二 HAL库详解 及 手动移植

105734

开发工具 之七 Visual Studio Code 中 C/C++ 调试配置详解

82085

分类专栏

Linux Kernel

付费

7篇

U-Boot

付费

9篇

ARM

付费

17篇

STM32

付费

16篇

Yocto & Buildroot

付费

6篇

Network

付费

13篇

LwIP

付费

7篇

开发工具

付费

10篇

CAN & USB

付费

11篇

Linux

9篇

Toolchain

3篇

FreeRTOS

9篇

项目管理

8篇

GIT

5篇

TIH64

1篇

华大 MCU

7篇

C/C++

13篇

FAT 文件系统

3篇

SourceInsight

4篇

LORA

1篇

常用算法

5篇

学无止境

4篇

Android

1篇

最新评论

Android 之一 Android Studio 安装、配置等新手入门 + 百度地图定位 + 移动摇杆 的实现

ZC·Shou:

没能复现该问题

Android 之一 Android Studio 安装、配置等新手入门 + 百度地图定位 + 移动摇杆 的实现

颜立表:

作者,我使用软件以后有两个界面一个刚登入的界面,一个使用界面,而且,历史记录只有一条,还是最新的那一条,这种情况是还没修复嘛?

Android 之一 Android Studio 安装、配置等新手入门 + 百度地图定位 + 移动摇杆 的实现

greatsam:

人家985工科毕业的

FreeRTOS 之五 动态内存管理(heap_1.c)详解

打团请保护我:

heap1应该够用了,都没遇到过需要释放内存的工程

Android 之一 Android Studio 安装、配置等新手入门 + 百度地图定位 + 移动摇杆 的实现

ZC·Shou:

就是业余学习一下 Android 编程而已,以全部开源,目前已经被很多网友盗用去给自己引流了

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

Buildroot 之二 详解构建架构、流程、external tree、示例

Buildroot 之四 构建独立交叉编译工具链

Buildroot 之三 移植及构建过程、STM32F769I-EVAL 开发板适配、镜像文件

2024年10篇

2023年20篇

2022年21篇

2021年22篇

2020年12篇

2019年25篇

2018年46篇

2017年19篇

目录

目录

分类专栏

Linux Kernel

付费

7篇

U-Boot

付费

9篇

ARM

付费

17篇

STM32

付费

16篇

Yocto & Buildroot

付费

6篇

Network

付费

13篇

LwIP

付费

7篇

开发工具

付费

10篇

CAN & USB

付费

11篇

Linux

9篇

Toolchain

3篇

FreeRTOS

9篇

项目管理

8篇

GIT

5篇

TIH64

1篇

华大 MCU

7篇

C/C++

13篇

FAT 文件系统

3篇

SourceInsight

4篇

LORA

1篇

常用算法

5篇

学无止境

4篇

Android

1篇

目录

评论 28

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

打赏作者

ZC·Shou

你的鼓励将是我创作的最大动力

¥1

¥2

¥4

¥6

¥10

¥20

扫码支付:¥1

获取中

扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

以太网MAC地址规范 - 努力学习的蛋蛋 - 博客园

以太网MAC地址规范 - 努力学习的蛋蛋 - 博客园

会员

周边

新闻

博问

AI培训

云市场

所有博客

当前博客

我的博客

我的园子

账号设置

简洁模式 ...

退出登录

注册

登录

努力学习的蛋蛋

导航

博客园

首页

新随笔

联系

订阅

管理

公告

以太网MAC地址规范

原文地址:http://blog.csdn.net/skyflying2012/article/details/40322563

之前一段时间在做网卡驱动的工作,现在产品量产,利用ifconfig eth hw ether在配置mac地址时发现一个问题,

随机配置一个mac地址,发现有的会报出Cannot assign requested address。

错误码是EADDRNOTAVAIL。

driver中实现了专门的set_mac_addr函数,察看该函数,发现原来会检验该mac地址的有效性。

 

[cpp] view

plain copy

 

 

static inline int is_valid_ether_addr(const u8 *addr)  

{  

    /* FF:FF:FF:FF:FF:FF is a multicast address so we don't need to 

     * explicitly check for it here. */  

    return !is_multicast_ether_addr(addr) && !is_zero_ether_addr(addr);  

}  

  

检查不是组播地址也不是全0地址。

 

组播地址就是第一个字节最低位为1,问题就是在这里。

发现第一个字节最低位为1时该函数就会返回0,driver中的set_mac_addr就会返回EADDRNOTAVAIL错误码。

严格来说mac地址对于每块网卡是固定的,每块网卡被生产出来后,都会有一个全球唯一的编号来标识自己,不会重复,

这个编号就是MAC地址,也就是网卡的物理地址。MAC地址是由48位的二进制数组成,即6个字节。在通信中是用16进制表示的。

前24位是由生产厂家向IEEE标准组织申请的厂家代码,是固定的,但是第一个字节的最低位一定是0,因为网卡的物理地址,一定是单播地址,

在IPv4的环境中,区分单播和组播地址就是校检最低位的二进制数字,0代表单播地址,1代表组播地址。

也就是说第二个数字一定是0、2、4、6、8、A、C、E其中的一个。

所以mac地址虽然可以修改,但是不要乱改,要按照厂商规定来修改,以免重复。

posted on

2018-07-31 17:26 

努力学习的蛋蛋 

阅读(4673) 

评论(0) 

编辑 

收藏 

举报

会员力量,点亮园子希望

刷新页面返回顶部

Powered by:

博客园

Copyright © 2024 努力学习的蛋蛋

Powered by .NET 8.0 on Kubernetes

Ethernet(以太网) 详解 MAC、MII、PHY - zhang433 - 博客园

Ethernet(以太网) 详解 MAC、MII、PHY - zhang433 - 博客园

会员

周边

新闻

博问

AI培训

云市场

所有博客

当前博客

我的博客

我的园子

账号设置

简洁模式 ...

退出登录

注册

登录

zhang433

博客园

首页

新随笔

联系

订阅

管理

Ethernet(以太网) 详解 MAC、MII、PHY

结构  从硬件的角度看,以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成。如下图所示

 

 

  但是,在实际的设计中,以上三部分并不一定独立分开的。 由于,PHY整合了大量模拟硬件,而MAC是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将MAC集成进微控制器而将PHY留在片外。更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合。可分为下列几种类型:

CPU集成MAC与PHY。目前来说并不多见

 

 

CPU集成MAC,PHY采用独立芯片。比较常见

 

 

CPU不集成MAC与PHY,MAC与PHY采用集成芯片。比较常见

 

 

  MAC及PHY工作在OSI七层模型的数据链路层和物理层。具体如下

 

 

  IEEE802.3标准文档下载地址:https://ieeexplore.ieee.org/browse/standards/get-program/page/。它分为很多个section。

标准文档贼长,没有全部看过,大概第一部分是10Mb/s以太网(其中有关于MAC的规范),第二部分是100BASE-T 100Mb/s基带网络介绍,第三部分是1000 Mb/s基带网络介绍,第四部分是10 Gb/s基带网络介绍。但是,并不是说每部分都是独立的。

什么是MAC  MAC(Media Access Control)即媒体访问控制子层协议。该部分有两个概念:MAC可以是一个硬件控制器 及 MAC通信以协议。该协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。MAC硬件大约就是下面的样子了:

 

 

  在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC(逻辑链路控制)层。该层协议是以太网MAC由IEEE-802. 3以太网标准定义。最新的MAC同时支持 10Mbps和100Mbps两种速率。  以太网数据链路层其实包含MAC(介质访问控制)子层和LLC(逻辑链路控制)子层。一块以太网卡MAC芯片的作用不但要实现MAC子层和LLC子层的功能,还要提供符合规范的PCI界面以实现和主机的数据交换。  MAC从PCI总线收到IP数据包(或者其他网络层协议的数据包)后,将之拆分并重新打包成最大1518Byte、最小64Byte的帧。这个帧里面包括了目标MAC地址、自己的源MAC地址和数据包里面的协议类型(比如IP数据包的类型用80表示,最后还有一个DWORD(4Byte)的CRC码。  可是目标的MAC地址是哪里来的呢?这牵扯到一个ARP协议(介乎于网络层和数据链路层的一个协议)。第一次传送某个目的IP地址的数据的时候,先会发出一个ARP包,其MAC的目标地址是广播地址,里面说到:“谁是xxx.xxx.xxx.xxx这个IP地址的主人?”因为是广播包,所有这个局域网的主机都收到了这个ARP请求。收到请求的主机将这个IP地址和自己的相比较,如果不相同就不予理会,如果相同就发出ARP响应包。这个IP地址的主机收到这个ARP请求包后回复的ARP响应里说到:“我是这个IP地址的主人”。这个包里面就包括了他的MAC地址。以后的给这个IP地址的帧的目标MAC地址就被确定了。(其它的协议如IPX/SPX也有相应的协议完成这些操作)  IP地址和MAC地址之间的关联关系保存在主机系统里面,叫做ARP表。由驱动程序和操作系统完成。在Microsoft的系统里面可以用arp-a 的命令查看ARP表。收到数据帧的时候也是一样,做完CRC校验以后,如果没有CRC效验错误,就把帧头去掉,把数据包拿出来通过标准的接口传递给驱动和上层的协议栈。最终正确的达到我们的应用程序。

什么是MII  MII(Media Independent Interface)即媒体独立接口,MII接口是MAC与PHY连接的标准接口。它是IEEE-802.3定义的以太网行业标准。MII接口提供了MAC与PHY之间、PHY与STA(Station Management)之间的互联技术,该接口支持10Mb/s与100Mb/s的数据传输速率,数据传输的位宽为4位。"媒体独立"表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。802.3协议最多支持32个PHY,但有一定的限制:要符合协议要求的connector特性。MII接口如下图所示:

 

  

  提到MII,就有可能涉及到RS,PLS,STA等名词术语,下面讲一下他们之间对应的关系。  所谓RS即Reconciliation sublayer,它的主要功能主要是提供一种MII和MAC/PLS之间的信号映射机制。它们(RS与MII)之间的关系如下图:

 

 

MII的Management Interface是与STA(Station Management)相连的。

关于本节,具体可参考IEEE以太网标准802.3的22.3 Signal timing characteristics节,其中包含时钟信号等更详细内容。

MII接口主要包括四个部分。一是从MAC层到PHY层的发送数据接口,二是从PHY层到MAC层的接收数据接口,三是从PHY层到MAC层的状态指示信号,四是MAC层和PHY层之间传送控制和状态信息的MDIO接口。

 

 

MII包括一个数据接口,以及一个MAC和PHY之间的管理接口:

数据接口: 包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要16个信号,包括

TX_ER(transmit coding error): TX_ER同步于TX_CLK,在数据传输过程中,如果TX_ER有效超过一个时钟周期,并且此时TX_EN是有效的,则数据通道中传输的数据是无效的,没用的。注:当TX_ER有效并不影响工作在10Mb/s的PHY或者TX_EN无效时的数据传输。在MII接口的连线中,如果TX_ER信号线没有用到,必须将它下拉接地。

TXD<3:0>(transmit data): TXD由RS驱动,同步于TX_CLK,在TX_CLK的时钟周期内,并且TX_EN有效,TXD上的数据被PHY接收,否则TXD的数据对PHY没有任何影响。

TX_EN: 发送使能。TX_EN由Reconciliation子层根据TX_CLK上升沿同步进行转换,时序如图22-16所示。

TX_CLK(transmit clock): TX_CLK (Transmit Clock)是一个连续的时钟信号(即系统启动,该信号就一直存在),它是TX_EN, TXD, and TX_ER(信号方向为从RS到PHY)的参考时钟,TX_CLK由PHY驱动TX_CLK的时钟频率是数据传输速率的25%,偏差±100ppm。例如,100Mb/s模式下,TX_CLK时钟频率为25MHz,占空比在35%至65%之间。

COL(collision detected): COL不需要同步于参考时钟。The behavior of the COL signal is unspecified when the duplex mode bit0.8 inthe control register is set to a logic one(自动协商禁止,人工设为全双工模式), or when the Auto-Negotiation process selects a full duplex mode of operation。即半双工模式信号有效,全双工模式信号无效。

RXD<3:0>(receive data): RXD由RS驱动,同步于RX_CLK,在RX_CLK的时钟周期内,并且RX_DV有效,RXD上的数据被RS接收,否则RXD的数据对RS没有任何影响。While RX_DV is de-asserted, the PHY may provide a False Carrier indication by asserting the RX_ER signal while driving the value <1110> onto RXD<3:0>。

RX_ER(receive error): RX_ER同步于RX_CLK,其在RX通道中的作用类似于TX_ER对于TX通道数据传输的影响。

RX_CLK: 它与TX_CLK具有相同的要求,所不同的是它是RX_DV, RXD, and RX_ER(信号方向是从PHY到RS)的参考时钟。RX_CLK同样是由PHY驱动,PHY可能从接收到的数据中提取时钟RX_CLK,也有可能从一个名义上的参考时钟(e.g., the TX_CLK reference)来驱动RX_CLK。

CRS(carrier sense): CRS不需要同步于参考时钟,只要通道存在发送或者接收过程,CRS就需要有效。The behavior of the CRS signal is unspecified when the duplex mode bit0.8 inthe control register is set to a logic one(自动协商禁止,人工设为全双工模式), or when the Auto-Negotiation process selects a full duplex mode of operation,即半双工模式信号有效,全双工模式信号无效。

RX_DV(Receive Data Valid): RXD_DV同步于RX_CLK,被PHY驱动,它的作用如同于发送通道中的TX_EN,不同的是在时序上稍有一点差别:为了让数据能够成功被RS接收,要求RXD_DV有效的时间必须覆盖整个FRAME的过程,即starting no later than the Start Frame Delimiter (SFD) and excluding any End-of-Frame delimiter。

  MII以4位半字节方式传送数据双向传输,时钟速率25MHz。其工作速率可达100Mb/s。

MII管理接口: 是个双信号接口,通过管理接口,MAC就能监视和控制PHY。其管理是使用SMI(Serial Management Interface) 总线通过读写PHY的寄存器来完成的。一个是时钟信号(***MDC (management data clock)***)。另一个是数据信号(***MDIO (management data input/output)***)。

MDC: 由站管理实体向PHY提供,作为在MDIO信号上传送信息的定时参考。 MDC是一种非周期性的信号,没有最高或最低时间。 无论TX_CLK和RX_CLK的标称周期如何,MDC的最小高低时间应为160 ns,MDC的最小周期为400 ns。

MDIO: 是PHY和STA之间的双向信号。 它用于在PHY和STA之间传输控制信息和状态。 控制信息由STA同步地针对MDC驱动并且由PHY同步地采样。 状态信息由PHY针对MDC同步驱动并由STA同步采样。

  PHY 里面的部分寄存器是IEEE定义的,这样PHY把自己的目前的状态反映到寄存器里面,MAC 通过SMI 总线不断的读取PHY 的状态寄存器以得知目前PHY 的状态。例如连接速度、双工的能力等。当然也可以通过SMI设置PHY的寄存器达到控制的目的。例如流控的打开关闭、自协商模式还是强制模式等。不论是物理连接的MII总线和SMI总线还是PHY的状态寄存器和控制寄存器都是由IEEE的规范的。因此不同公司的MAC和PHY一样可以协调工作。当然为了配合不同公司的PHY的自己特有的一些功能,驱动需要做相应的修改。  MII支持10Mbps和100Mbps的操作,一个接口由14根线组成,它的支持还是比较灵活的。但是有一个缺点是因为它一个端口用的信号线太多,如果一个8端口的交换机要用到112根线,16端口就要用到224根线,到32端口的话就要用到448根线。一般按照这个接口做交换机是不太现实的。所以现代的交换机的制作都会用到其它的一些从MII简化出来的标准,比如RMII、SMII、GMII等。

RMII(Reduced Media Independant Interface)  简化媒体独立接口是标准的以太网接口之一,比MII有更少的I/O传输。RMII口是用两根线来传输数据的,MII口是用4根线来传输数据的,GMII是用8根线来传输数据的。MII/RMII只是一种接口,对于10Mbps线速,MII的时钟速率是2.5MHz就可以了,RMII则需要5MHz;对于100Mbps线速,MII需要的时钟速率是25MHz,RMII则是50MHz。  MII/RMII用于传输以太网包,在MII/RMII接口是4/2bit的,在以太网的PHY里需要做串并转换,编解码等才能在双绞线和光纤上进行传输,其帧格式遵循IEEE 802.3(10M)/IEEE 802.3u(100M)/IEEE 802.1q(VLAN)。以太网帧的格式为:前导符+开始位+目的mac地址+源mac地址+类型/长度+数据+padding(optional)+32bitCRC。如果有vlan,则要在类型/长度后面加上2个字节的vlan tag,其中12bit来表示vlan id,另外4bit表示数据的优先级!

GMII(Gigabit MII)  GMII是千兆网的MII接口,这个也有相应的RGMII接口,表示简化了的GMII接口。  GMII采用8位接口数据,工作时钟125MHz,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps工作方式。GMII接口数据结构符合IEEE以太网标准,该接口定义见IEEE 802.3-2000。

发送器: 在千兆速率下,向PHY提供GTXCLK信号、TXD、TXEN、TXER信号与此时钟信号同步。否则在10/100Mbps速率下,PHY提供TXCLK时钟信号,其它信号与此信号同步。其工作频率为25MHz(100M网络)或2.5MHz(10M网络)。

GTXCLK——吉比特TX…信号的时钟信号(125MHz)

TXCLK——10/100Mbps信号时钟

TXD[7…0]——被发送数据

TXEN——发送器使能信号

TXER——发送器错误(用于破坏一个数据包)

接收器:

RXCLK——接收时钟信号(从收到的数据中提取,因此与GTXCLK无关联)

RXD[7…0]——接收数据

RXDV——接收数据有效指示

RXER——接收数据出错指示

COL——冲突检测(仅用于半双工状态)

管理配置: 管理配置接口控制PHY的特性。该接口有32个寄存器地址,每个地址16位。其中前16个已经在“IEEE 802.3,2000-22.2.4 Management Functions”中规定了用途,其余的则由各器件自己指定。

MDC——配置接口时钟

MDIO——配置接口I/O

什么是PHY  PHY((Physical Layer,PHY))是IEEE802.3中定义的一个标准模块,STA(station management entity,管理实体,一般为MAC或CPU)通过SMI(Serial Manage Interface)对PHY的行为、状态进行管理和控制,而具体管理和控制动作是通过读写PHY内部的寄存器实现的。一个PHY的基本结构如下图:

 

 

 

  PHY是物理接口收发器,它实现OSI模型的物理层。IEEE-802.3标准定义了以太网PHY。包括MII/GMII(介质独立接口)子层、PCS(物理编码子层)、PMA(物理介质附加)子层、PMD(物理介质相关)子层、MDI子层。它符合IEEE-802.3k中用于10BaseT(第14条)和100BaseTX(第24条和第25条)的规范。

PHY寄存器在IEEE802.3标准的 22.2.4 Management functions 节有介绍,但不涉及所有的寄存器,个别寄存器需要到其它章节中看,当然,文档里面也提到该在哪里找到哪个寄存器。

PHY寄存器  PHY寄存器的地址空间为5位,从0到31最多可以定义32个寄存器(随着芯片功能不断增加,很多PHY芯片采用分页技术来扩展地址空间以定义更多的寄存器),IEEE802.3定义了地址为0-15这16个寄存器的功能,地址16-31的寄存器留给芯片制造商自由定义,如下表所示。

 

 

 

(1)官方介绍请参考IEEE802.3标准的 22.2.4 Management functions 节。(2)上图的B和E表示了,在特定接口下,寄存器是基本的还是扩展的。例如:MII接口下只有0和1寄存器是基本的,其它的是扩展的。注意:所为扩展是指留给IEEE以后的扩展特性用,不是给PHY厂商的扩展,PHY厂商自定义的只能是16~31号寄存器(3)在IEEE标准文档及某些PHY手册中,某寄存器的比特(bit)用X.y表示,如0.15表示第0寄存器的第15位。

Control Register (Register 0)  寄存器0是PHY控制寄存器,通过Control Register可以对PHY的主要工作状态进行设置。应该保证控制寄存器每个位的默认值,以便在没有管理干预的情况下,上电或复位时PHY的初始状态为正常操作状态。Control Register的每一位完成的功能见下。

 

 

 

 

Reset: 通过将位0.15设置为逻辑1来完成复位PHY。 该操作应将状态和控制寄存器设置为其默认状态。 因此,此操作可能会改变PHY的内部状态以及与PHY关联的物理链路的状态。复位过程中Bit15保持为1,复位完成之后该位应该自动清零。 在复位过程完成之前,PHY不需要接受对控制寄存器的写入操作,并且在复位过程完成之前写入0.15以外的控制寄存器位可能不起作用。 复位过程应在0.15位设置的0.5 s内完成。

(1)一般要改变端口的工作模式(如速率、双工、流控或协商信息等)时,在设置完相应位置的寄存器之后,需要通过Reset位复位PHY来使配置生效。(2)该比特位的默认值为 0。

Loopback: 当位0.14被设置为逻辑1时,PHY应置于环回操作模式。 当位0.14置位时,PHY接收电路应与网络介质隔离,并且MII或GMII处的TX_EN断言不应导致网络介质上的数据传输。 当位0.14置位时,PHY应接受来自MII或GMII发送数据路径的数据,并将其返回给MII或GMII接收数据路径,以响应TX_EN的断言。 当位0.14置位时,从断言TX_EN到断言RX_DV的延迟应小于512 BT。 当位0.14置位时,除非设置了位0.7,否则COL信号应始终保持无效,在这种情况下,COL信号的行为应如22.2.4.1.9所述。 清0.14位为零允许正常操作。

  Loopback是一个调试以及故障诊断中常用的功能,Bit14置1之后,PHY和外部MDI的连接在逻辑上将被断开,从MAC经过MII/GMII(也可能是其他的MAC/PHY接口)发送过来的数据将不会被发送到MDI上,而是在PHY内部(一般在PCS)回环到本端口的MII/GMII接收通道上,通过Loopback功能可以检查MII/GMII以及PHY接口部分是否工作正常,对于端口不通的情况可用于故障定位。(1)需要注意的是,很多时候PHY设置Loopback后端口可能就Link down了,MAC无法向该端口发帧,这时就需要通过设置端口Force Link up才能使用Loopback功能。(2)该比特位的默认值为 0。

Speed Selection: ***Bit13和Bit6两位联合实现***对端口的速率控制功能。链接速度可以通过自动协商过程或手动速度选择来选择。 通过将位0.12清零来禁用自动协商时,允许手动速度选择。

当禁用自动协商并将位0.6清除为逻辑0时,将位0.13设置为逻辑1将PHY配置为100 Mb / s操作,并将位0.13清除为逻辑0将PHY配置为10 Mb / s操作 。

当禁用自动协商并将位0.6设置为逻辑1时,将位0.13清零为逻辑0会选择1000 Mb / s的操作。 将位0.6和0.13设置为逻辑1的组合保留用于未来的标准化。

当使能自动协商时,可以读取或写入位0.6和0.13,但位0.6和位0.13的状态对链路配置没有影响,位0.6和位0.13不需要反映当它被读取时链接。

  如果PHY通过比特1.15:9和比特15.15:12报告它不能工作在所有速度时,则比特0.6和0.13的值应该与PHY可以操作的速度相对应。并且任何试图将该位设置为无效的操作均将被忽略。

(1)对Speed Selection的修改设置,往往需要复位端口才能配置生效。因此在设置该位置的时候需要检查自动协商的设置并通过Bit15复位端口。(2)位0.6和0.13的默认值是根据位1.15:9和15.15:12所指示的PHY可以操作的***最高数据速率***的编码组合。

Auto-Negotiation Enable: 自动协商过程应通过将位0.12设置为逻辑1来启用。 如果位0.12设置为逻辑1,则位0.13、0.8和0.6不应对链路配置和除了自动协商协议规定之外的站操作产生影响。 如果将位0.12清零为逻辑0,则无论链路配置和自动协商过程的先前状态如何,位0.13、0.8和0.6都将确定链路配置。

  如果PHY通过位1.3报告它缺乏执行自动协商的能力,则PHY应在位0.12返回零值。 如果PHY通过位1.3报告它缺乏执行自动协商的能力,则位0.12应该始终写为0,并且任何尝试将1写入位0.12都应该被忽略。必须注意的是,对于1000BASE-T接口,自动协商必须打开。

Power Down: 通过将位0.11设置为逻辑1,可以将PHY置于低功耗状态。 清0.11位为零允许正常操作。 PHY在掉电状态下的具体行为是特定实现的。 处于掉电状态时,PHY应响应管理事务。 在转换到掉电状态期间和处于掉电状态期间,PHY不应在MII或GMII上产生寄生信号。

  当位0.11或位0.10被设置为逻辑1时,PHY不需要满足RX_CLK和TX_CLK信号功能要求。 在位0.11和0.10清零后,PHY应在0.5 s内满足22.2.2中定义的RX_CLK和TX_CLK信号功能要求。(1)Power Down模式一般在软件shut down端口的时候使用,需要注意的是端口从Power Down模式恢复,需要复位端口以保证端口可靠的连接。(2)该位的默认值为 0。

Isolate: 通过将位0.10设置为逻辑1,PHY可能被迫将其数据路径与MII或GMII电隔离。 清零位0.10允许正常操作。 当PHY与MII或GMII隔离时,它不会响应TXD数据包和TX_EN,TX_ER、GTX_CLK的输入。并且它的TX_CLK,RX_CLK,RX_DV,RX_ER,RXD数据包、COL和CRS输出均应为高阻态。 当PHY与MII或GMII隔离时,它将响应管理事务(MDC/MDIO接口的信号)。

(1)IEEE802.3没有对Isolate 时MDI接口的状态进行规范,此时MDI端可能还在正常运行。Isolate在实际应用中并没有用到。(2)由于目前很多百兆的PHY芯片其MAC接口主流的都是SMII/S3MII,8个端口的接口是相互关联的,一个端口设置Isolate可能会影响其他端口的正常使用,因此在使用中注意不要随意更改bit10的状态。

Restart Auto-Negotiation: 如果PHY通过位1.3报告它缺乏执行自动协商的能力,或者如果自动协商被禁用,则PHY应在位0.9返回零值。 如果PHY通过位1.3报告它缺乏执行自动协商的能力,或者如果禁用了自动协商,则应将位0.9始终写为0,并且任何尝试将1写入位0.9应被忽略。

    Bit9置1将重新启动端口的自动协商进程,当然前提是Auto-Negotiation Enable是使能的。一般在修改端口的自动协商能力信息之后通过Bit9置1重新启动自动协商来使端口按照新的配置建立link。

Duplex Mode: 可以通过自动协商过程或手动双面选择来选择双工模式。 通过将位0.12清零来禁用自动协商时,允许手动双面选择。

当禁用自动协商时,将位0.8设置为逻辑1将PHY配置为全双工操作,并将位0.8清零以将逻辑0配置为用于半双工操作的PHY。

当启用自动协商时,可以读取或写入位0.8,但位0.8的状态对链路配置没有影响。

  如果PHY通过位1.15:9和15.15:12报告它只能在一个双工模式下工作,则位0.8的值应该与PHY可以工作的模式相对应,并且任何尝试改变将该位0.8修改为无效指的操作应被忽略。

对Duplex Mode的修改配置也需要复位端口才能生效。

Collision Test: 冲突信号(COL)测试开关。在需要对COL信号进行测试时,可以通过Bit7置1,这时PHY将输出一个COL脉冲以供测试。实际测试操作中也可以将端口配置为半双工状态,通过发帧冲突来测试COL信号,因此该配置实用价值不大。

Unidirectional enable: 如果PHY通过比特1.7报告它不具备编码和传输来自媒体独立接口的数据的能力,而不管PHY是否确定已建立有效链路,则PHY应在比特0.5中返回零值,并且 任何尝试写一个到位0.5应该被忽略。

Status register  寄存器1是PHY状态寄存器,主要包含PHY的状态信息,大多数bit的值都是由芯片厂家确定的,每一个bit的功能在表3种已有详细说明。

 

 

寄存器中各位的详细说明如下:

100BASE-T4 ability: 当读为逻辑1时,位1.15指示PHY有能力使用100BASE-T4信令规范执行链路发送和接收。 当读为逻辑0时,位1.15表示PHY缺乏使用100BASE-T4信令规范执行链路发送和接收的能力。

100BASE-X full duplex ability: 当读为逻辑1时,位1.14指示PHY有能力使用100BASE-X信令规范执行全双工链路传输和接收。 当作为逻辑0读取时,bit1.14表示PHY缺乏使用100BASE-X信令规范执行全双工链路传输和接收的能力。

100BASE-X half duplex ability: 当读为逻辑1时,位1.13指示PHY有能力使用100BASE-X信令规范执行半双工链路传输和接收。 当读为逻辑0时,位1.13指示PHY缺乏使用100BASE-X信令规范执行半双工链路传输和接收的能力。

其他同类型的值意义基本与上面几个相同:指示PHY所具有的工作模式能力,不再一一说明。

Unidirectional ability: 当读为逻辑1时,位1.7指示PHY具有编码和传输来自媒体独立接口的数据的能力,而不管PHY是否确定已建立有效链路。 当读为逻辑0时,位1.7指示PHY只有在PHY确定已建立有效链路时才能从媒体独立接口传输数据。

MF preamble suppression ability: 当读为逻辑1时,位1.6指示PHY能够接受管理帧,而不管它们是否在22.2.4.5.2中描述的前导码模式之前。 当读为逻辑0时,位1.6指示PHY不能接受管理帧,除非它们之前是22.2.4.5.2中描述的前导码模式。

Auto-Negotiation Complete: 当读为逻辑1时,位1.5指示自动协商过程已完成,并且由自动协商协议(条款28或条款37)实施的扩展寄存器的内容是有效的。 当读为逻辑0时,位1.5指示自动协商过程尚未完成,并且扩展寄存器的内容由自动协商协议的当前状态定义,或者为手动配置写入。 如果自动协商通过清除位0.12禁用,则PHY应在位1.5返回零值。 如果PHY缺乏执行自动协商的能力,它还应在位1.5返回零值。

在调试以及异常故障处理时,可以通过该位寄存器的状态判断AN是否成功,从而进一步的检查AN相关的设置是否正确,或者芯片的AN功能是否正常等。

Remote Fault: 当读为逻辑1时,位1.4表示检测到远程故障状态。 故障类型以及故障检测的标准和方法是PHY特定的。 远程故障位必须使用锁存功能来实现,以便发生远程故障将导致远程故障位置位,并保持置位状态直至被​​清除。 每当通过管理接口读取寄存器1时,远程故障位应清零,并且还应通过PHY复位清零。

  远端错误指示位。Bit4=1代表连接对端(Link Partner)出错,至于出错的具体类型以及错误检测机制在规范中并没有定义,由PHY的制造商自由发挥,一般的厂商都会在其他的寄存器(Register16-31由厂商自行定义)指示比较详细的错误类型。在与端口相关的故障查证中,Remote Fault是一个重要的指示信息,通过互联双方的Remote Fault信息(可能要加上其他的具体错误指示),可以帮助定位故障原因。

Auto-Negotiation ability: 当读为逻辑1时,位1.3指示PHY有能力执行自动协商。 当读为逻辑0时,位1.3指示PHY缺乏执行自动协商的能力。

Link Status: 当读为逻辑1时,位1.2指示PHY已经确定已建立有效链路。 当作为逻辑0读取时,位1.2指示该链接无效。 确定链路有效性的标准是PHY特定的。 链路状态位应该使用锁存功能来实现,以便发生链路故障情况将导致链路状态位清零并保持清零,直到通过管理接口读取。 此状态指示旨在支持在30.5.1.1.4,aMediaAvailable中定义的管理属性。

  实际应用中一般都是通过Bit2来判断端口的状态。而且,一般的MAC芯片也是通过轮询PHY的这个寄存器值来判断端口的Link状态的(这个过程可能有不同的名称,比如BCM叫做Link Scan,而Marvell叫做PHY Polling。)如前所述,在AN Enable的情况下,Link Status的信息只有在Auto-Negotiation Complete指示已经完成的情况下才是正确可靠的,否则有可能出错。

Jabber Detect: 当作为逻辑1读取时,位1.1指示已经检测到爆音条件。 此状态指示旨在支持30.5.1.1.6中定义的管理属性,aJabber和30.5.1.3.1 nJabber中定义的MAU通知。 检测Jabber条件的标准是PHY特定的。 Jabber检测位应该使用锁存功能来实现,以便发生Jabber条件将导致Jabber检测位置位,并保持置位状态直至被​​清除。 每次通过管理接口读取寄存器1时,Jabber检测位应清零,并且还应通过PHY复位清零。

  IEEE802.3对Jabber的解释是“A condition wherein a station transmits for a period of time longer than the maximum permissible packet length, usually due to a fault condition”。这一位指示的是Link Partner发送的时间超过了规定的最大长度。值得注意的是,Jabber Detect只有在10BASE-T模式下才有意义,100和1000M模式是没有定义Jabber这一功能的。PHY Identifier Register  寄存器2和3存放PHY芯片的型号代码,寄存器2(PHY ID1)为高16位,而寄存器3(PHY ID2)为低16位。由芯片制造商自行定义,实际应用中软件通过读取这两个寄存器的内容可以识别PHY的型号和版本。  PHY标识符应由由IEEE分配给PHY制造商的组织唯一标识符(OUI)的(只需要使用第3至第24位,共22位),加上6位制造商的型号以及4位制造商的修订版编号组成。 PHY标识符旨在提供足够的信息来支持30.1.2中所要求的oResourceTypeID对象。  OUI的第三位分配给位2.15,OUI的第四位分配给位2.14,依此类推。 位2.0包含OUI的第十八位。 位3.15包含OUI的第十九位,位3.10包含OUI的第二十四位。 位3.9包含制造商型号的MSB。 位3.4包含制造商型号的LSB。 位3.3包含制造商版本号的MSB,位3.0包含制造商版本号的LSB。具体如下图所示:

 

 

Auto-Negotiation Advertisement Register (Register 4) (R/W)  寄存器4是自动协商的能力通告寄存器,在AN Enable的前提下(见寄存器0),端口根据该寄存器的相关配置将自动协商信息通过FLP在MDI上进行通告。当AN配置为Disable状态的时候,寄存器4的配置将不起作用,端口的工作模式由控制寄存器中的配置决定。  该寄存器包含PHY的通告能力,它们将在自动协商期间传送给其链接伙伴。 基本页的位定义在IEEE标准的28.2.1.2中定义。 上电时,在自动协商开始之前,该寄存器应具有以下默认配置:

Selector Field (4.4:0): 被设置为适当的代码,如IEEE标准的附件28A中所规定。

Reserved(4.14): 被设置为逻辑0。

Technology Ability Field(4.11:5): 根据MII状态寄存器(寄存器1)(1.15:11)中设置的值或等效值设置。 另见28.2.1.2.3和附件28D。

 

 

Link codeword encoding(基本链路码字)  在FLP Burst内传输的基本链路代码字(基本页面)应该传达如图28-7所示的编码。 自动协商功能可以使用下一页功能支持其他页面。 下一页交换中使用的链接代码字的编码在28.2.3.4中定义。 在FLP Burst中,D0应该是第一个传输的位。

 

 

Next Page function  下一页功能使用标准的自动协商仲裁机制来允许交换任意的数据。 数据由可选的下一页信息携带,其遵循用于基本链接码字的传输和确认过程。 定义了四种类型的下一页编码:消息页面,未格式化页面,扩展消息页面和扩展的未格式化页面。  关于该部分,具体见IEEE标准的28.2.3.4 Next Page function。  在IEEE标准中,Auto-Negotiation Advertisement Register中的各部分全部是在独立章节中进行介绍的。具体如下:

Selector Field: 选择器字段(S [4:0])是一个5位宽的字段,编码32个可能的消息。 链路码字中的选择器字段S [4:0]应用于识别自动协商发送的消息的类型。 下表列出了可能发送的消息的类型。 随着新消息的发展,该表格将相应更新。

 

 

未指定的组合保留供将来使用。 不会传输选择器字段的预留组合。***我们所接触的以太网PHY遵从IEEE802.3规范,Selector Field=0001,该区域不可随意更改(很多PHY将此区域设计为只读寄存器,以免被修改)***。

Technology Ability Field: 技术能力字段(A [6:0])是一个7位宽的字段,其中包含指示选择器字段值特定的支持技术的信息。 这些位被映射到各个技术,以便能够针对单个选择器字段值并行通告能力。 附录28B.2和附件28D描述了IEEE 802.3选择器的技术能力字段编码。 链接代码字中可能会公布多种技术。 设备应支持其宣传的技术的数据服务能力。

Extended Next Page: 扩展下一页(XNP)被编码在基本链路码字的位D12中。 扩展下一页位指示本地设备在设置为逻辑1时支持扩展下一页的传输,并指示本地设备在设置为逻辑0时不支持扩展下一页。 Extended Next Page的使用与协商的数据速率,媒体或链接技术是正交的。 扩展下一页位按照28.2.3.4中的扩展下一页功能规范使用。

Next Page: 无论选择器字段值还是链接码字编码,下一页(NP)都在D15位编码。 支持附加链接码字编码的传输和接收是可选的。 如果不支持Next Page功能,NP位应始终设置为逻辑0。 如果设备实现下一页功能并希望进行下一页交换,则应将NP位设置为逻辑1。 设备可以实现下一页功能,并通过将NP位设置为逻辑0来选择不参与下一页交换。 下一页功能在28.2.3.4中定义。

Remote Fault: 远程故障(RF)编码在基本链路码字的位D13中。 默认值是逻辑零。 远程故障位为传输简单的故障信息提供了一种标准的传输机制。 当自动协商通告寄存器(寄存器4)中的RF位设置为逻辑1时,发送的基本链路码字中的RF位被设置为逻辑1。 当接收到的基本链路代码字中的RF位被设置为逻辑1时,如果存在MII管理功能,则MII状态寄存器(寄存器1)中的远程故障位将被设置为逻辑1。

Auto-Negotiation Link Partner ability register (Register 5) (RO)  寄存器5保存的是本端PHY接收到的对端PHY所通告的端口能力,寄存器5的结构和寄存器4基本一致。

Auto-Negotiation Expansion Register (Register 6) (RO)  寄存器6保存了PHY自动协商过程的异常信息。从这个寄存其中我们可以获取到Link Partner子否支持自动协商以及自动协商下一页有没有收到的信息。

 

 

Auto-Negotiation Next Page transmit register (Register 7) (R/W)  自动协商下一页发送寄存器包含在支持下一页功能时要发送的下一页链接码字。 (见表28-6)内容在28.2.3.4中定义。 上电时,该寄存器应包含默认值2001H,该值表示消息代码设置为Null消息的消息页面。 该值可以由设备希望传输的任何有效的下一页消息代码替换。 写入该寄存器应将mr_next_page_loaded设置为true。

 

 

Auto-Negotiation Link Partner Received Next Page register (Register 8) (RO)

 

 

————————————————原文链接:https://blog.csdn.net/zcshoucsdn/article/details/80090802

发表于

2021-06-18 15:11 

zhang433 

阅读(2861) 

评论(0) 

编辑 

收藏 

举报

 

会员力量,点亮园子希望

刷新页面返回顶部

公告

Powered by: 博客园

Copyright © 2024 zhang433

Powered by .NET 8.0 on Kubernetes

为什么要使用IP地址和MAC地址两种地址? - 知乎

为什么要使用IP地址和MAC地址两种地址? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册计算机网络IP 地址介质访问控制层(MAC)为什么要使用IP地址和MAC地址两种地址?关注者17被浏览69,056关注问题​写回答​邀请回答​好问题​添加评论​分享​11 个回答默认排序啥也不懂码农​ 关注注意理解网络层ip地址的作用,它与数据链路层的mac地址所解决的问题并不同,网络层ip地址解决是的跨网络传输的问题,而数据链路层的mac地址解决的是局域网(更准确的说是以太网)传输的问题。设想一下,若现在没有互联网,只有局域网,那么在局域网内实现端到端的通信(端到端的通信是指应用进程之间的通信),是不是可以不用设计网络层了,因为数据链路层已经解决了主机到主机的问题(这个时候你就不要再想没有网络层的ip地址和arp协议如何知道主机的mac地址,因为我说不设计网络层了,那我们就在数据链路层设计其他协议来解决这些问题),接下来直接是运输层,解决进程到进程的问题,就可以完成通信了。并且还可以将mac地址设计成固定且唯一,这样你拿着电脑无论去接哪个局域网,都可以直接在局域网内进行通信了,而不用等待网络管理员给你分配一个地址,而且还不用担心这个地址会与局域网内的其他人重复。但是现在我们现在要搞互联网,也就是将全球所有的局域网互联互通,如果还接着只使用mac地址,那么跨局域网通信将会变得异常困难,因为虽然说mac地址可以唯一标识一台主机,但同时它也是固定的,这会使得路由的设计变得相当的困难,比如你随时可能从一个局域网移动到另一个局域网,但是上网的地址却没有变,那么网络如何路由到你,即便说可以设计路由协议来解决这个问题,但我想那也绝对是比设计一个网络层要复杂得多。所以再设计一个网络层,用另外一个可以唯一标识一台主机的地址,并且这个地址是动态分配,而且还是基于地域的,来解决这个跨网络传输问题将会更加简单合理。这就好比如果全世界只有一个人叫张三,理论上我们可以通过张三这个名找到张三这个人,但实际上好像有点困难,还是有个具体的地址门牌号啥的好找一点。这里的张三代指mac地址,具体的门牌号地址代指ip地址,张三无论跑去哪里,都可以直接用张三这个名字与周围的人进行交流,但若在世界另一个角落有个人想要与张三交换信息,那就很难办了,他如果不知道张三的具体地址,就根本无法把信息交付给张三。知道了上面这些,接下来我们以这个角度来理解为什么互联网以TCP/IP协议族作为标准。因为我们这里说的是互联网,所以应更加关心跨网络传输的问题,而在TCP/IP协议族中只规定了网络层及以上的协议,并没有规定网络层以下该如何设计,所以它并不在意数据链路层使用的是什么协议。这时我们要把眼界放开阔一点,因为链路层协议不能与以太网协议划等号,我们可以在链路层使用其他协议,如PPP协议,这时根本就用不到mac地址了,甚至根本就不需要链路层地址了,因为没有链路层地址PPP协议也可以完成在局域网内信息由主机到主机的交付。也就是说TCP/IP协议族不管你链路层用什么协议,只要你网络层使用的是ip地址,那你就可以上互联网实现跨网络通信了,这样做也极为合理,它不仅让数据链路层协议百花齐放,从而实现各种类型的局域网传输,也推动了互联网的发展。综上,设计成两层即网络层和数据链路层,用两个不同的地址分别解决跨网络传输和局域网传输无疑是最合适的,所以说真的不得不佩服互联网的先驱者们的设计思想。编辑于 2020-04-20 20:00​赞同 61​​5 条评论​分享​收藏​喜欢收起​ipshu查询IP位置数据库,我的IP地址查询,路由器设置知识分享​ 关注IP地址和MAC地址都是网络通信中重要的地址类型,但是他们是有区别的。它们各自具有不同的作用和优势。IP地址是网络层(OSI模型中的第三层)的地址,它是一个逻辑地址,用于在互联网上唯一标识网络设备。通过IP地址,网络设备可以在互联网上进行逻辑通信,实现数据的传输和路由。由于IP地址是逻辑地址,可以被更换,因此在网络扩展和维护中非常灵活和方便。MAC地址是数据链路层(OSI模型中的第二层)的地址,它是一个物理地址,用于在局域网上唯一标识网络设备。通过MAC地址,网络设备可以在局域网内部进行快速的寻址和数据传输。由于MAC地址是硬件固定的,不能更改,因此在局域网内部进行网络通信非常稳定和可靠。因此,在网络通信中,使用IP地址和MAC地址这两种不同类型的地址是非常必要的。IP地址用于实现互联网上的逻辑通信,而MAC地址则用于实现局域网内部的快速寻址和数据传输。两者相互协作,共同实现了网络通信的可靠和高效。希望上述回答对你有帮助。其他推荐了解的知识:发布于 2023-03-27 15:38​赞同​​添加评论​分享​收藏​喜欢