十二、MAC地址的了解 - 知乎首发于网安知识(一)Windows篇切换模式写文章登录/注册十二、MAC地址的了解闰土的猹弟练习时长两天半的渗透练习生MAC地址(英语:Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN Address),MAC位址,以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址 。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。简介MAC地址也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写)。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的。 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地址就如同身份证上的身份证号码,具有唯一性 。结构网络中每台设备都有一个唯一的网络标识,这个地址叫MAC地址或网卡地址,由网络设备制造商生产时写在硬件内部。MAC地址则是48位的(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如08:00:20:0A:8C:6D就是一个MAC地址。具体如下图所示,其前3字节表示OUI(Organizationally Unique Identifier),是IEEE的注册管理机构给不同厂家分配的代码,区分不同的厂家。后3字节由厂家自行分配 。 MAC地址最高字节(MSB)的低第二位(LSb)表示这个MAC地址是全局的还是本地的,即U/L(Universal/Local)位,如果为0,表示是全局地址。所有的OUI这一位都是0。 MAC地址最高字节(MSB)的低第一位(LSb),表示这个MAC地址是单播还是多播。0表示单播。工作过程网络上的数据包从初始点开始 ,经过一个个中间节点最终到达目标节点 ,数据包是如何从初始节点开始识别一个个中间节点最终找到目标节点的呢? 实际上初始节点是根据目标节点的地址 ,将目标节点的IP地址映射到中间节点的MAC地址,找到第一个中间节点。从第一个中间节点出发,根据目标节点的IP地址映射到第二个中间节点的MAC地址,从而找到第二个中间节点……,以此类推,直到当找到最后一个中间节点后,从最后一个中间节点出发,根据目标节点的地址映射到目的节点的MAC地址,从而将数据包传送给目标主机。所以数据包的传送过程就是:不断地将目标节点的地址映射到一个个中间节点的MAC地址,再从一个个中间节点出发,直到找到最终的目标节点 。 数据包传送的关键是将目标节点的IP地址映射到中间节点的MAC地址。IP地址与MAC地址的映射要通过ARP地址解析协议来完成,它可将网络中的IP地址映射到主机的MAC地址,如交换机可以根据网络中的IP地址来找到本地主机的MAC地址。具体过程是:当交换机接收到来自网上一个数据包时,会根据该数据包的目标IP地址,查看交换机内部是否有跟该IP地址对应的MAC地址 ,如果有上次保留下来的对应的MAC地址,就会将该数据包 转发到对应MAC地址的主机上去。如果在交换机内部没有与目标)地址对应的MAC地址,则交换机会根据ARP协议将目标IP地址按照“表”中的对应关系映射成MAC地址 ,数据包就被转送到对应的MAC地址的主机上 。作用IP 地址是基于逻辑的,比较灵活,不受硬件的限制,也容易记忆。而 MAC地址在一定程度上与硬件一致,是基于物理的,能够标识具体的网络节点。这两种地址各有优点,使用时也因条件不同而采取不同的地址 。 大多数接入Internet的方式是把主机通过局域网组织在一起,然后再通过交换机或路由器等设备和 Internet 相连接。这样一来就出现了如何区分具体用户,防止 IP地址被盗用的问题。由于IP地址只是逻辑上的标识,任何人都能随意修改,因此不能用来具体标识一个用户。而 MAC地址则不然,它是固化在网卡里面的。从理论上讲,除非盗来硬件即网卡,否则一般是不能被冒名顶替的。基于 MAC 地址的这种特点,因此局域网采用了用MAC地址来标识具体用户的方法 。 在具体的通信过程中,通过交换机内部的交换表把 MAC地址和 IP 地址一一对应。当有发送给本地局域网内一台主机的数据包时,交换机首先将数据包接收下来,然后把数据包中的 IP 地址按照交换表中的对应关系映射成 MAC地址,然后将数据包转发到对应的 MAC地址的主机上去。这样一来,即使某台主机盗用了这个 IP 地址,但由于此主机没有对应的 MAC地址,因此也不能收到数据包,发送过程和接收过程类似 。 所以,无论是局域网,还是广域网中的计算机之间进行通信时,最终都表现为将数据包从某种形式的链路上的一个初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的传递都是由 ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到 MAC地址上来完成的 。 身份证就是用来证明一个人的身份。平日身份证的作用并不是很大,但是到了有的关键时刻,必须有身份证来说明一个人的一切。那么,IP地址与MAC地址绑定,就如同在日常生活中一个人与身份证的关系。因为,IP地址可以随意的,但MAC地址是唯一说明IP地址身份的。例如,为防止IP地址被盗用,通常交换机的端口绑定(端口的MAC表使用静态表项),可以在每个交换机端口只连接一台主机的情况下防止修改MAC地址的盗用,如果是三层设备还可以提供交换机端口、IP地址和MAC地址三者的绑定 。获取方法在命令提示符下输入命令“ipconfig /all”回车之后就会显示当前计算机的一些网络信息,其中“Physical Address”字样的这一项就是当前计算机中网卡的 MAC地址。当然,如果计算机中安装有多个网卡,则会有多个“Physical Address”字样 。与IP地址区别IP地址和MAC地址相同点是它们都唯一,不同的特点主要有: 对于网络上的某一设备,如一台计算机或一台路由器,其IP地址是基于网络拓扑设计出的,同一台设备或计算机上,改动IP地址是很容易的(但必须唯一),而MAC则是生产厂商烧录好的,一般不能改动。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址不可由本地连接内的配置进行修改。如果一个计算机的网卡坏了,在更换网卡之后,该计算机的MAC地址就变了。 长度不同。IP地址为32位,MAC地址为48位 。 分配依据不同。IP地址的分配是基于网络拓扑,MAC地址的分配是基于制造商 。 寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。 编辑于 2023-03-02 15:27・IP 属地北京MacBook ProMac赞同 1添加评论分享喜欢收藏申请转载文章被以下专栏收录网安知识(一)Windows篇学习时记下
以太网帧结构详解 - 知乎首发于网络协议详解切换模式写文章登录/注册以太网帧结构详解nwatch计算机的世界真是太精彩了!!!前言20世纪60年代以来,计算机网络得到了飞速发展。各大厂商和标准组织为了在数据通信网络领域占据主导地位,纷纷推出了各自的网络架构体系和标准,如IBM公司的SNA协议,Novell公司的IPX/SPX协议,以及广泛流行的OSI参考模型和TCP/IP协议。同时,各大厂商根据这些协议生产出了不同的硬件和软件。标准组织和厂商的共同努力促进了网络技术的快速发展和网络设备种类的迅速增长。网络通信中,“协议”和“标准”这两个词汇常常可以混用。同时,协议或标准本身又常常具有层次的特点。一般地,关注于逻辑数据关系的协议通常被称为上层协议,而关注于物理数据流的协议通常被称为低层协议。IEEE 802就是一套用来管理物理数据流在局域网中传输的标准,包括在局域网中传输物理数据的802.3以太网标准。还有一些用来管理物理数据流在使用串行介质的广域网中传输的标准,如帧中继FR(Frame Relay),高级数据链路控制HDLC(High-Level Data Link Control),异步传输模式ATM(Asynchronous Transfer Mode)。分层模型- OSI不同的协议栈用于定义和管理不同网络的数据转发规则。国际标准化组织ISO于1984年提出了OSI RM(Open System Interconnection Reference Model,开放系统互连参考模型)。OSI 参考模型很快成为了计算机网络通信的基础模型。OSI参考模型具有以下优点:简化了相关的网络操作;提供了不同厂商之间的兼容性;促进了标准化工作;结构上进行了分层;易于学习和操作。OSI参考模型各个层次的基本功能如下:1.物理层: 在设备之间传输比特流,规定了电平、速度和电缆针脚。2.数据链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。3.网络层:提供逻辑地址,供路由器确定路径。4.传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。5.会话层:负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。6.表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。7.应用层:OSI参考模型中最靠近用户的一层,为应用程序提供网络服务。分层模型– TCP/IPTCP/IP模型同样采用了分层结构,层与层相对独立但是相互之间也具备非常密切的协作关系。TCP/IP模型将网络分为四层。TCP/IP模型不关注底层物理介质,主要关注终端之间的逻辑数据流转发。TCP/IP模型的核心是网络层和传输层:网络层解决网络之间的逻辑转发问题,传输层保证源端到目的端之间的可靠传输。最上层的应用层通过各种协议向终端用户提供业务应用。数据封装应用数据需要经过TCP/IP每一层处理之后才能通过网络传输到目的端,每一层上都使用该层的协议数据单元PDU(Protocol Data Unit)彼此交换信息。不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。如上层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段 )数据段被传递给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包)数据包被传递到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧)最后,帧被转换为比特(物理层)通过网络介质传输。这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。终端之间的通信数据链路层控制数据帧在物理链路上传输。数据包在以太网物理介质上传播之前必须封装头部和尾部信息。封装后的数据包称为称为数据帧,数据帧中封装的信息决定了数据如何传输。以太网上传输的数据帧有两种格式,选择哪种格式由TCP/IP协议簇中的网络层决定。帧格式以太网上使用两种标准帧格式。第一种是上世纪80年代初提出的DIX v2格式,即Ethernet II帧格式。Ethernet II后来被IEEE 802标准接纳,并写进了IEEE 802.3x-1997的3.2.6节。第二种是1983年提出的IEEE 802.3格式。这两种格式的主要区别在于,Ethernet II格式中包含一个Type字段,标识以太帧处理完成之后将被发送到哪个上层协议进行处理。IEEE 802.3格式中,同样的位置是长度字段。不同的Type字段值可以用来区别这两种帧的类型当Type字段值小于等于1500(或者十六进制的0x05DC)时,帧使用的是IEEE 802.3格式。当Type字段值大于等于1536 (或者十六进制的0x0600)时,帧使用的是Ethernet II格式。以太网中大多数的数据帧使用的是Ethernet II格式。以太帧中还包括源和目的MAC地址,分别代表发送者的MAC和接收者的MAC,此外还有帧校验序列字段,用于检验传输过程中帧的完整性。Ethernet_II 帧格式Ethernet_II 帧类型值大于等于1536 (0x0600)以太网数据帧的长度在64-1518字节之间Ethernet_II的帧中各字段说明如下:DMAC(Destination MAC)是目的MAC地址。DMAC字段长度为6个字节,标识帧的接收者。SMAC(Source MAC)是源MAC地址。SMAC字段长度为6个字节,标识帧的发送者。类型字段(Type)用于标识数据字段中包含的高层协议,该字段长度为2个字节。类型字段取值为0x0800的帧代表IP协议帧;类型字段取值为0806的帧代表ARP协议帧。数据字段(Data)是网络层数据,最小长度必须为46字节以保证帧长至少为64字节,数据字段的最大长度为1500字节。循环冗余校验字段(FCS)提供了一种错误检测机制。该字段长度为4个字节。IEEE802.3 帧格式IEEE 802.3 帧长度字段值小于等于1500 (0x05DC)IEEE 802.3帧格式类似于Ethernet_II帧,只是Ethernet_II帧的Type域被802.3帧的Length域取代,并且占用了Data字段的8个字节作为LLC和SNAP字段。Length字段定义了Data字段包含的字节数。逻辑链路控制LLC(Logical Link Control)由目的服务访问点DSAP(Destination Service Access Point)、源服务访问点SSAP(Source Service Access Point)和Control字段组成。SNAP(Sub-network Access Protocol)由机构代码(Org Code)和类型(Type)字段组成。Org code三个字节都为0。Type字段的含义与Ethernet_II帧中的Type字段相同。IEEE802.3帧根据DSAP和SSAP字段的取值又可分为以下几类:当DSAP和SSAP都取特定值0xff时,802.3帧就变成了Netware-ETHERNET帧,用来承载NetWare类型的数据。当DSAP和SSAP都取特定值0xaa时,802.3帧就变成了ETHERNET_SNAP帧。ETHERNET_SNAP帧可以用于传输多种协议。DSAP和SSAP其他的取值均为纯IEEE802.3帧。数据帧传输数据链路层基于MAC地址进行帧的传输以太网在二层链路上通过MAC地址来唯一标识网络设备,并且实现局域网上网络设备之间的通信。MAC地址也叫物理地址,大多数网卡厂商把MAC地址烧入了网卡的ROM中。发送端使用接收端的MAC地址作为目的地址。以太帧封装完成后会通过物理层转换成比特流在物理介质上传输。以太网的MAC地址MAC地址由两部分组成,分别是供应商代码和序列号。其中前24位代表该供应商代码,由IEEE管理和分配。剩下的24位序列号由厂商自己分配。如同每一个人都有一个名字一样,每一台网络设备都用物理地址来标识自己,这个地址就是MAC地址。网络设备的MAC地址是全球唯一的。MAC地址长度为48比特,通常用十六进制表示。MAC地址包含两部分:前24比特是组织唯一标识符(OUI,Organizationally Unique Identifier),由IEEE统一分配给设备制造商。例如,华为的网络产品的MAC地址前24比特是0x00e0fc。后24位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配(这里所说的产品可以是网卡或者其他需要MAC地址的设备)。数据帧的发送和接收单播局域网上的帧可以通过三种方式发送。第一种是单播,指从单一的源端发送到单一的目的端。每个主机接口由一个MAC地址唯一标识,MAC地址的OUI中,第一字节第8个比特表示地址类型。对于主机MAC地址,这个比特固定为0,表示目的MAC地址为此MAC地址的帧都是发送到某个唯一的目的端。在冲突域中,所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机才会接收并处理收到的帧。广播第二种发送方式是广播,表示帧从单一的源发送到共享以太网上的所有主机。广播帧的目的MAC地址为十六进制的FF:FF:FF:FF:FF:FF,所有收到该广播帧的主机都要接收并处理这个帧。广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。组播第三种发送方式为组播,组播比广播更加高效。组播转发可以理解为选择性的广播,主机侦听特定组播地址,接收并处理目的MAC地址为该组播MAC地址的帧。组播MAC地址和单播MAC地址是通过第一字节中的第8个比特区分的。组播MAC地址的第8个比特为1,而单播MAC地址的第8个比特为0。当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下,通常会使用组播方式。发送与接收当主机接收到的数据帧所包含的目的MAC地址是自己时,会把以太网封装剥掉后送往上层协议。帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网络中,这个帧可能到达多个主机。主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果帧的FCS值与本机计算的值不同,主机会认为帧已被破坏,并会丢弃该帧。如果该帧通过了FCS校验,则主机会根据帧头部中的Type字段来确定将帧发送给上层哪个协议处理。实际数据包分析:ARP类型数据包其他类型数据包:原文链接;以太网帧结构详解_曌赟的博客-CSDN博客发布于 2020-10-12 11:16计算机网络网络通信数据通信赞同 531 条评论分享喜欢收藏申请转载文章被以下专栏收录网络协议详解网络协
秒懂以太网的 MAC 硬件地址_以太网卡ksz8041nl的mac地址-CSDN博客
秒懂以太网的 MAC 硬件地址
最新推荐文章于 2023-07-03 13:13:14 发布
硕子鸽
最新推荐文章于 2023-07-03 13:13:14 发布
阅读量9k
收藏
37
点赞数
5
分类专栏:
计算机网络
文章标签:
以太网
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43941364/article/details/105653172
版权
计算机网络
专栏收录该内容
20 篇文章
27 订阅
订阅专栏
MAC 层的硬件地址
在局域网中,以下几个称呼是一样的:
硬件地址 物理地址 MAC 地址
48 位的 MAC 地址
✅ IEEE 的注册管理机构 RA 负责向厂家分配地址字段 6 个字节中的前三个字节 (即高位 24 位),称为组织唯一标识符。
✅ 所以就只有 3 个字节能支配了,这 3 个字节由厂家支配,称为扩展唯一标识符,必须保证生产出的适配器没有重复地址。
❗ 生产适配器时,6 字节的 MAC 地址已被固化在适配器的 ROM,因此,MAC 地址也叫做硬件地址 (hardware address) 或物理地址。
所以无论你把它带到哪里去,或者把它砸了,烧了,它的硬件地址还是不会变。
下面介绍一下 IEEE 组织的一些规定:
IEEE 规定地址字段的 第一字节的最低位 为
I
/
G
I/G
I/G 位。
I
/
G
I/G
I/G 表示
I
n
d
i
v
i
d
u
a
l
/
G
r
o
u
p
Individual / Group
Individual/Group。当
I
/
G
I/G
I/G 位
=
0
= 0
=0 时,地址字段表示一个单站地址。当
I
/
G
I/G
I/G 位
=
1
= 1
=1 时,表示组地址,用来进行多播。
所以对于前三个字节,既然第一个字节的最后一位被占用了,就只能支配其余的
23
23
23 位了。
❗所有 48 位都为 1 时,为广播地址。只能作为目的地址使用。
IEEE 又规定了!
IEEE 把地址字段第一字节的倒数第
2
2
2 位规定为
G
/
L
G/L
G/L 位,表示
G
l
o
b
a
l
/
L
o
c
a
l
Global / Local
Global/Local 。当
G
/
L
G/L
G/L 位
=
0
= 0
=0 时,是全球管理。当
G
/
L
G/L
G/L 位
=
1
= 1
=1 时, 是本地管理。
❓ 那么有啥区别呢 ?
全球管理需要购买,本地管理用户自定义,不过以太网几乎不会去理会这个用户自定义的。
适配器检查 MAC 地址
适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址,然后检查这个帧是否是下面的其中一种,如果不是就丢弃,如果是就收下然后转发。
1️⃣ 单播 (unicast) 帧(一对一)2️⃣ 广播 (broadcast) 帧(一对全体)3️⃣ 多播 (multicast) 帧(一对多)
MAC 帧的格式
常用的以太网 MAC 帧格式有两种标准 :
✅
D
I
X
E
t
h
e
r
n
e
t
V
2
DIX \space Ethernet \space V2
DIX Ethernet V2 标准✅
I
E
E
E
的
802.3
IEEE 的 802.3
IEEE的802.3 标准
最常用的
M
A
C
MAC
MAC 帧是以太网
V
2
V2
V2 的格式。
我们来放大看一下:
1️⃣ 首先是目的地址字段,占 6 个字节。 2️⃣ 然后是源地址字段,也是 6 字节。 3️⃣ 类型字段用来标志上一层使用的是什么协议,以便把收到的
M
A
C
MAC
MAC 帧的数据上交给上一层的这个协议。 4️⃣ 数据字段的正式名称是 MAC 客户数据字段。 最小长度
64
字
节
−
18
字
节
64 字节 - 18 字节
64字节−18字节 的首部和尾部
=
=
= 数据字段的最小长度(
46
46
46 字节 5️⃣ FSC 用于差错检测
❓ 其实你会发现从
M
A
C
MAC
MAC 层到物理层还会多出
8
8
8 个字节,那么这
8
8
8 个字节是啥呢?
在帧的前面插入(硬件生成)的 8 字节中,第一个字段共 7 个字节,是前同步码,用来迅速实现
M
A
C
MAC
MAC 帧的比特同步。第二个字段 1 个字节是帧开始定界符,表示后面的信息就是 MAC 帧。
最后提一下与
I
E
E
E
802.3
M
A
C
帧
IEEE \space802.3\space MAC 帧
IEEE 802.3 MAC帧 的区别:
IEEE 802.3 规定的 MAC 帧的第三个字段是“长度 / 类型”。当
长
度
/
类
型
长度 / 类型
长度/类型 字段值小于
0
x
0600
0x0600
0x0600 时,数据字段必须装入上面的逻辑链路控制 LLC 子层的 LLC 帧。
帧间最小间隔为
9.6
μ
s
9.6 \mu s
9.6μs,相当于
96
b
i
t
96 bit
96bit 的发送时间。 一个站在检测到总线开始空闲后,还要等待
9.6
μ
s
9.6 \mu s
9.6μs 才能再次发送数据。
优惠劵
硕子鸽
关注
关注
5
点赞
踩
37
收藏
觉得还不错?
一键收藏
打赏
知道了
0
评论
秒懂以太网的 MAC 硬件地址
什么是MAC硬件地址,以及物理地址是什么,他们有什么关系,本文介绍了以太网 MAC帧的格式,解释了常见的两种格式,以及一些基础知识,可以在遗忘的时候查阅。
复制链接
扫一扫
专栏目录
获取以太网和wifiMac地址
10-30
获取Mac地址,以太网和无线网,获取IP地址,希望能够帮到你
KSZ8041中文资料
12-09
KSZ8041NL是单电源供电的10Base-T/100Base-TX物理层收发器,它可提供MII/RMII接口来收发数据。
参与评论
您还未登录,请先
登录
后发表或查看评论
M2378-CFNS20核心板原理图(KSZ8041NL版
07-02
基于altium design软件的 M2378-CFNS20核心板原理图,网络芯片使用micrel公司的ksz8041NL PHY
Android 判断网络是否可用 & 获取IP地址 & 获取以太网口MAC地址
01-03
判断网络是否可用:
注意!是判断网络是否可用,但网络可用不代表一定能上外网的!
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager manager = (ConnectivityManager) context
.getApplicationContext().getSystemService(
Context.CONNECTIVITY_SERVICE);
if (m
Android 固定以太网MAC地址
11-10
没有MAC地址的设备,通过cpu 序列号(设备唯一ID)转换为MAC地址.
https://blog.csdn.net/qq_33544860/article/details/127784655
以太网 以太网地址(MAC地址)
Hades_Ling的CSDN博客
12-02
2927
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`)为网卡唯一地址代码
以太网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地址
最新发布
幾微的学习博客
07-03
1029
本文简单的介绍了,以太网和MAC地址,以及如何去理解以太网和MAC地址,可以为小白打下坚实的数通基础。
碎碎记 1
weifengdq的专栏
02-14
3375
文章目录LAN8742->KSZ8041晶振负载电容千兆网络线序串口
LAN8742->KSZ8041
STM32Cube配置以太网默认的PHY为LAN8742, 支持PHY地址自动搜索, 抱着试一试的态度, 虽然外部PHY是KSZ8041, 直接运行LAN8742的程序, 仍然是可以ping通的. 具体寄存器未查看.
lan8742.c有个2000的宏定义, 每次初始化会死等2000ms, 显得初始化很慢, 可以视情况手动改小, 当然每次Cube自动生成代码又会回到2000
#define
Network 之八 详解 MAC 地址、MAC 协议、MAC 控制器
技术干货
04-23
2096
MAC(Media Access Control,MAC)即媒体访问控制,定义于 IEEE Std 802.3 中。IEEE Std 802.3-1985 中规定的半双工媒体访问控制协议是带有冲突检测的载波侦听多址访问(CSMA/CD)。并于 1997 年添加了全双工 MAC 协议。双工 MAC 协议不需要使用 CSMA/CD 协议,因为采用收发线路完全分离的物理介质,点到点的连接,不存在冲突。
rk平台android5.1固定以太网mac地址
04-08
设置里增添以太网mac地址显示ui,解决了rk3288平台以太网mac地址每次开机都会发生变化的情况
常见以太网设备IP地址 用户名密码_施耐德PLC常见以太网设备默认IP地址_
09-28
施耐德PLC的常见设备默认IP地址大全,包括PLC,交换机等
3.3.5 以太网的 MAC 层
engineer0的博客
04-04
921
一、 MAC层中的硬件地址
硬件地址又叫物理地址,mac地址(因为在mac帧中)
IEEE 802标准 为局域网规定了一种48位二进制数的全球地址
是指局域网上的每一台计算机固化在适配器的ROM中的地址
这个 48 位的二进制数地址是全球唯一的
若局域网中的主机或路由器安装了多个适配器,那么这样的主机或路由器就有多个地址
以太网mac帧 中有 mac地址字段,mac地址字段可采用 6字节(48bit)或 2字节(16bit)中的一种
6字节 mac地址 是全球唯一的,使全世界所有的局域网适配器都
计算机网络-MAC地址与以太网帧格式
m0_73995538的博客
03-28
2270
计算机联网必需的硬件是安装在计算机上的网卡,通信中,用来标识主机身份的地址就是制作在网卡上的一个硬件地址,每块网卡在生产出来后,除了具有基本的功能外,都有一个,这个地址就是,即网卡的,MAC地址由,通常分成六段,用十六进制表示,如00-D0-09-A1-D7-B7。其中。MAC地址的第8位为0时,表示该MAC地址为单播地址:为1时,表示该MAC地址为组播MAC地址,一块物理网卡的地址一定是一个单播地址,也就是第8位一定为0;组播地址是一个逻辑地址,用来表示一组接收者,而不是一个接收者。如下图。
复制虚拟机出现”适配器 的mac地址在保留地址范围内‘’
weixin_30340617的博客
03-27
4363
首先我的虚拟机是复制出来的,选择我已经移到,但是结果会出现了以下情况,导致了我无法ping 通,先看下提示:
使用:ipconfig –all 命令查寻,果然再现有打开的虚拟机中,存在两个mac地址相同的虚拟机,所以就有思路了,修改mac地址。
尝试1:直接利用虚拟机自带的修改mac地址
选择对应的虚拟机,直接在虚拟机设置中进行修改,修改步骤如下
不知道是不是虚拟机没...
MAC地址;地址解析协议(ARP);以太网;链路层交换机
Unique-You的博客
06-04
9113
链路层编址
地址解析协议(ARP),该协议为节点提供了将IP地址转换为链路层地址的机制。
动态主机配置协议(DHCP)。
MAC地址
并非节点具有链路层地址,而是节点的适配器(网络接口)具有链路层地址(MAC)。
MAC地址的作用是标识局域网内一个帧从哪个接口到哪个物理相连的其他接口.因此,拥有多个网络接口的主机或路由器将具有与之相关联的多个链路层地址,就像他们也具有多个IP地址一样.需要...
计算机网络——MAC地址,IP地址,ARP协议
weixin_51818357的博客
07-09
1790
MAC地址,IP地址及ARP协议
MAC地址是以太网MAC子层所使用的地址(数据链路层)
IP地址是TCP/IP体系结构网际层所使用的地址
ARP协议属于TCP/IP体系结构的网际层,起作用是已只设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址
MAC地址
使用点对点信道的数据链路层不需要地址,因为只是两个对象,点对点就可以了
但是在广播域中,多个主机连接在一个广播通道上,要想实现两个主机之间的通信,则每个主句都必须有一个唯一的标识,即一个数据链路层地址;
在每个组件发送的
4.2.2 以太网技术(二) MAC地址和MAC帧的格式
nytcjsjboss的博客
05-04
3700
下一个字段就是用户的数据(data)字段,这个字段的长度是从46个字节到1500个字节之间,它存放的是高层的协议数据单元里面真正的内容,即我们的数据内容。第二个字段是类型字段,占2个字节,在DIX第二版本中规定了数据的类型字段是用来标识该帧的上一层使用的是什么协议,以便把收到的MAC帧交给上一层相应的协议当中,这个字段的用法就相当于查表了,如当前的类型字段的值是0X0800(16进制)就代表了上层携带的是IP数据报的内容,如果类型字段值是。
思科模拟器:路由器基本配置
热门推荐
WS的小屋
06-05
2万+
实验四 路由器基本配置
一、实验目的
(1)熟悉路由各接口的外观、接口的功能、接口的表示方法;(2)掌握带外的管理方法:通过接口console配置;(3)掌握带内的管理方法:通过方式telnet配置;
二、应用环境
路由器是三层设备,主要功能是进行路径选择和广域网的连接。与交换机相比,接口数量要少很多,但功能要强大的多,这些功能在外观上就是接口、模块的类型比较多,当然价格有很大的差异,通常高端的设备都是模块化的,支持的模块类型也很丰富。
三、实验设备
(1) DCR 路由器1
(2) PC 机1台
android 获取以太网mac地址
06-04
获取 Android 设备的以太网(Ethernet) MAC 地址,可以使用以下代码:
```java
EthernetManager ethManager = (EthernetManager) context.getSystemService(Context.ETHERNET_SERVICE);
String macAddress = ethManager.getMacAddress();
```
该代码首先获取 EthernetManager 实例,然后调用其 getMacAddress() 方法获取以太网 MAC 地址。需要注意的是,获取以太网 MAC 地址需要 android.permission.ACCESS_NETWORK_STATE 权限,因此需要在 AndroidManifest.xml 文件中添加以下权限声明:
```xml
```
此外,获取以太网 MAC 地址也需要设备支持以太网功能,否则该代码返回的是一个空字符串。
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
硕子鸽
CSDN认证博客专家
CSDN认证企业博客
码龄5年
暂无认证
221
原创
3万+
周排名
88万+
总排名
91万+
访问
等级
8815
积分
731
粉丝
1460
获赞
390
评论
6527
收藏
私信
关注
热门文章
VMware虚拟机没有网络
60880
数据库关系模式的函数依赖习题讲解
50434
ssh: connect to host ip port 22: Connection timed out
43456
SpringBoot + 阿里云 OSS 实现在线视频播放
34010
ATM 系统的用例图、类图、顺序图、协作图、活动图设计
32605
分类专栏
Spring Boot
2篇
JavaWeb
25篇
Spring
22篇
微服务
11篇
数据库
17篇
软件架构
1篇
设计模式
8篇
UML
4篇
Python
12篇
大前端
6篇
微信小程序
2篇
计算机网络
20篇
操作系统
10篇
BUG
20篇
实用工具
9篇
Linux
25篇
编程语言
8篇
数据结构和算法
8篇
技术分享
10篇
平面设计
1篇
最新评论
打包部署微服务项目
dd白:
请问知道了吗
CSI Tools 工具的安装 Intel 5300 + Ubuntu14.04
fgd0707:
我也是 您解决了吗
CSI Tools 工具的安装 Intel 5300 + Ubuntu14.04
fgd0707:
随身wifi当路由器ping不出来,receive端没有跳任何字
CSI Tools 工具的安装 Intel 5300 + Ubuntu14.04
熙莫:
想问问解决了吗,我也出现了这个问题
CSI Tools 工具的安装 Intel 5300 + Ubuntu14.04
熙莫:
你好,外网是指什么?我也遇到这个问题
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
Jar 包加密
Mybatis-plus 使用 typeHandler 将 String 拼接字符串转换为 List 列表
Provides transitive vulnerable dependency org.yaml:snakeyaml:1.33
2023年3篇
2022年1篇
2021年20篇
2020年200篇
目录
目录
分类专栏
Spring Boot
2篇
JavaWeb
25篇
Spring
22篇
微服务
11篇
数据库
17篇
软件架构
1篇
设计模式
8篇
UML
4篇
Python
12篇
大前端
6篇
微信小程序
2篇
计算机网络
20篇
操作系统
10篇
BUG
20篇
实用工具
9篇
Linux
25篇
编程语言
8篇
数据结构和算法
8篇
技术分享
10篇
平面设计
1篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
个
红包个数最小为10个
红包总金额
元
红包金额最低5元
余额支付
当前余额3.43元
前往充值 >
需支付:10.00元
取消
确定
下一步
知道了
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom 发出的红包
打赏作者
硕子鸽
你的鼓励将是我创作的最大动力
¥1
¥2
¥4
¥6
¥10
¥20
扫码支付:¥1
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。
余额充值
以太网帧结构 - 知乎切换模式写文章登录/注册以太网帧结构九月里的秋日拱一卒,行则将至。 网络中传输数据时需要定义并遵循一些标准,以太网是根据引EEE802.3标准来管理和控制数据帧的。了解EEE802.3标准是充分理解以太网中链路层通信的基础。 不同的协议栈用于定义和管理不同网络的数据转发规则: 网络通信中,“协议”和“标准”这两个词汇常常可以混用。同时,协议或标准本身又常常具有层次的特点。一般地,关注于逻辑数据关系的协议通常被称为上层协议,而关注于物理数据流的协议通常被称为低层协议。EEE802就是一套用来管理物理数据流在局域网中传输的标准,包括在局域网中传输物理数据的802.3以太网标准,还有一些用来管理物理数据流在使用串行介质的广域网中传输的标准,如帧中继FR(Frame Relay),高级数据链路控制HDLC(High-Level Data LinkControl),异步传输模式ATM(Asynchronous Transfer Mode)。分层模型-OSI 国际标准化组织ISO于1984年提出了OSI RM(Open SystemInterconnection Reference Model,开放系统互连参考模型)。OSl参考模型很快成为了计算机网络通信的基础模型。OS参考模型具有以下优点:简化了相关的网络操作;提供了不同厂商之间的兼容性;促进了标准化工作;结构上进行了分层;易于学习和操作。OS参考模型各个层次的基本功能如下:1、物理层:在设备之间传输比特流,规定了电平、速度和电缆针脚。2、数据链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。3、网络层:提供逻辑地址,供路由器确定路径。4、传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。5、会话层:负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。6、表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。7、应用层:OS参考模型中最靠近用户的一层,为应用程序提供网络服务。分层模型-TCP/IP TCP/IP模型同样采用了分层结构,层与层相对独立但是相互之间也具备非常密切的协作关系。TCP/IP模型将网络分为四层。TCP/IP模型不关注底层物理介质,主要关注终端之间的逻辑数据流转发。TCP/IP模型的核心是网络层和传输层网络层解决网络之间的逻辑转发问题,传输层保证源端到目的端之间的可靠传输。最上层的应用层通过各种协议向终端用户提供业务应用。数据的封装 应用数据需要经过TCP/IP每一层处理之后才能通过网络传输到目的端,每一层上都使用该层的协议数据单元PDU(Protocol Data Unit)彼此交换信息。不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。如上层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段);数据段被传递给网络层,网络层添加lP报头得到的PDU被称为Packet(数据包);数据包被传递到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧);最后,帧被转换为比特,通过网络介质传输。这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。数据链路层控制数据帧在物理链路上传输 数据包在以大网物理介质上传播之前必须封装头部和尾部信息,封装后的数据包称为数据帧,数据帧中封装的信息决定了数据如何传输。以太网上传输的数据帧有两种格式,选择哪种格式由TCPP协议簇中的网络层决定。帧格式 以太网上使用两种标准帧格式。第一种是上世纪80年代初提出的DXV2格式,即Ethernet llr帧格式。Ethernet Il后来被IEEE802标准接纳,并写进了IEEE802.3x-1997的3.2.6节。第二种是1983年提出的1EEE802.3格式。这两种格式的主要区别在于Ethernet Il格式中包含一个Type字段标识以太帧处理完成之后将被发送到哪个上层协议进行处理,EEE802.3格式中,同样的位置是长度字段。不同的Type字段值可以用来区别这两种帧的类型,当Type字段值小于等于1500(或者十六进制的0x05DC)时,帧使用的是EEE802.3格式。当Type字段值大于等于1536(或者十六进制的0x0600)时,帧使用的是Ethernet Il格式。以太网中大多数的数据帧使用的是Ethernet Il格式。以太帧中还包括源和目的MAC地址,分别代表发送者的MAC和接收者的AC,此外还有帧校验序列字段,用于检验传输过程中帧的完整性。Ethernet_Ⅱ帧类型值大于等于1536(0x0600);以太网数据帧的长度在64-1518字节之间。 Ethernet ll的帧中各字段说明如下:1、DAC(Destination MAC)是目的MAC地址。DAC字段长度为6个字节,标识帧的接收者。2、SMAC(Source MAC)是源MAC地址。SMAC字段长度为6个字节,标识帧的发送者。3、类型字段(Type)用于标识数据字段中包含的高层协议,该字段长度为2个字节。类型字段取值为0x0800的帧代表P协议帧;类型字段取值为0x0806的帧代表ARP协议帧。4、数据字段(Data)是网络层数据,最小长度必须为46字节以保证帧长至少为64字节,数据字段的最大长度为1500字节。5、循环冗余校验字段(FCS)提供了一种错误检测机制。该字段长度为4个字节。IEEE802.3帧格式;1EEE802.3帧长度字段值小于等于1500(0x05DC)。 lEEE802.3帧格式类似于Ethernet_llr帧,只是Ethernet_ll帧的Type域被802.3帧的Length域取代,并且占用了Data字段的8个字节作为LLC和SNAP字段。1、Length字段定义了Data字段包含的字节数。2、逻辑链路控制LLC(Logical Link Control)由目的服务访问点DSAP(Destination Service Access Point)、源服务访问点SSAP(Source Service Access Point)和Control字段组成。3、SNAP(Sub-network Access Protocol))由机构代码(Org Code)和类型(Type)字段组成。Org Code三个字节都为0。Type字段的含义与Ethernet_ll帧中的Type字段相同。IEEE802.3帧根据DSAP和SSAP字段的取值又可分为以下几类:1)当DSAP和SSAP都取特定值Oxf时,802.3帧就变成了Netware-ETHERNET帧,用来承载NetWare类型的数据。2)当DSAP和SSAP都取特定值0xaa时,802.3帧就变成了ETHERNET SNAP帧。ETHERNET_SNAP帧可以用于传输多种协议。3)DSAP和SSAP其他的取值均为纯IEEE802.3帧。数据帧传输--数据链路层基于MAC地址进行帧的传输 以太网在二层链路上通过MAC地址来唯一标识网络设备,并且实现局域网上网络设备之间的通信。MAC地址也叫物理地址,大多数网卡厂商把AC地址烧入了网卡的ROM中。发送端使用接收端的AC地址作为目的地址。以太帧封装完成后会通过物理层转换成比特流在物理介质上传输。以太网的Mac地址 MAC地址由两部分组成,分别是供应商代码和序列号。其中前24位代表该供应商代码,由EEE管理和分配。剩下的24位序列号由厂商自己分配。如同每一个人都有一个名字一样,每一台网络设备都用物理地址来标识自己,这个地址就是MAC地址。网络设备的MAC地址是全球唯一的。MAC地址长度为48比特,通常用十六进制表示。MAC地址包含两部分:前24比 特 是 组 织 唯 一 标 识 符(OUI,OrganizationallyUniqueIdentifier),由IEEE统一分配给设备制造商。例如,华为的网络产品的MAC地址前24比特是0x00e0fc。后24位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配(这里所说的产品可以是网卡或者其他需要MAC地址的设备)。单播 局域网上的帧可以通过三种方式发送。第一种是单播,指从单一的源端发送到单一的目的端。每个主机接口由一个AC地址唯一标识,MAC地址的OU中,第一字节第8个比特表示地址类型。对于主机AC地址这个比特固定为0,表示目的MAC地址为此MAC地址的帧都是发送到某个唯一的目的端。在冲突域中,所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机才会接收并处理收到的帧。广播 第二种发送方式是广播,表示帧从单一的源发送到共享以大网上的所有主机。广播帧的目的MAC地址为十六进制的FF:FF:FF:FF:FF:FF,所有收到该广播帧的主机都要接收并处理这个帧。广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。组播 第三种发送方式为组播,组播比广播更加高效。组播转发可以理解为选择性的广播,主机侦听特定组播地址,接收并处理目的AC地址为该组播MAC地址的帧。组播AC地址和单播MAC地址是通过第一字节中的第8个比特区分的。组播MAC地址的第8个比特为1,而单播MAC地址的第8个比特为0。当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下通常会使用组播方式。数据帧的发送和接收 当主机接收到的数据帧所包含的目的MAC地址是自己时,会把以太网封装剥掉后送往上层协议。帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网络中,这个帧可能到达多个主机。主机检查帧头中的目的AC地址,如果目的MAC地址不是本机AC地址,也不是本机侦听的组播或广播AC地址,则主机会丢弃收到的帧。如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果帧的FCS值与本机计算的值不同,主机会认为帧己被破坏,并会丢弃该帧。如果该帧通过了FCS校验,则主机会根据帧头部中的Type字段来确定将帧发送给上层哪个协议处理。本例中,Type字段的值为0x0800,表明该帧需要发送到P协议上处理。在发送给P协议之前,帧的头部和尾部会被剥掉。1、网络设备如何确定以太网数据帧的上层协议? 以太网帧中包含一个Type字段,表示帧中的数据应该发送到上层哪个协议处理。比如,IP协议对应的Type值为0x0800,ARP协议对应的Type值为0x0806。2、终端设备接收到数据帧时,会如何处理? 主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播AC地址,则主机会丢弃收到的帧。如果目的AC地址是本机AC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果检查通过,就会剥离帧头和帧尾,然后根据帧头中的Type字段来决定把数据发送到哪个上层协议进行后续处理。编辑于 2022-08-17 16:08以太网帧格式华为 HCIA 路由交换认证指南(书籍)MAC地址赞同添加评论分享喜欢收藏申请
以太网帧大小到底多大? - 知乎首页知乎知学堂发现等你来答切换模式登录/注册互联网工程任务小组(IETF)以太网(Ethernet)网络工程IEEEIEEE 802.3以太网帧大小到底多大?不是说以太网帧最大1518字节吗?为什么有2000多字节的以太网帧?而且最常见的以太网帧居然不是1518,而是1506,请问这又是怎么回事?都快懵逼了…显示全部 关注者69被浏览80,205关注问题写回答邀请回答好问题 5添加评论分享9 个回答默认排序知乎用户以太帧的格式如下所示(图片来源于Wikipedia):通常以太帧的长度指的是从目的地址到冗余校验。在802.3标准里,规定了一个以太帧的数据部分(Payload)的最大长度是1500个字节,这个数也是你经常在网络设备里看到的MTU。在这个限制之下,最长的以太帧包括6字节的目的地址(DMAC)、6字节的源地址(SMAC)、2字节的以太类型(EtherType)、1500字节的数据(Payload)、4字节的校验(FCS),总共是1518字节。在802.1Q中,又定义了以太帧中可选的QTag,位于SMAC和EtherType之间,占4个字节。在这种情况下,一个以太帧如果有QTag,它的最大长度就变成了1522字节。后来人们又觉得一个QTag不够用,在802.1ad又定义了Q in Q,也就是说一个以太帧可以有多个QTag,每增加一个QTag,以太帧的最大长度就增加4个字节。上面说的基本都是十兆/百兆以太网的年代,但到了千兆以太网出现以后,发现如果payload被限制在1500字节,传输效率不够高,所以又提出了Jumbo Frame的概念。在一个Jumbo Frame中,Payload的长度是可以超过1500字节的,通常来说最高可以到9000字节,但并没有一个统一的标准。就目前来看,大部分商用的网络服务提供商都还不支持Jumbo Frame。从上面可以看出,一个以太帧的最大长度不一定是1518字节,根据不同的标准,这个最大长度会变化。看题主的截图应该是用Wireshark抓取TCP/IP包。一个IP数据包的长度是可以超过1500字节的,定义中最大是65535个字节(在IP Header里长度定义占16位)。在数据传输的时候,IP数据包作为Payload部分,网络设备会检查Payload长度有没有超过设备的MTU设置。通常来说,MTU的默认设置是1500字节。如果超过MTU,就进行分片处理,分成多个以太帧传输,每个以太帧的Payload长度不超过MTU,然后到了终端设备再进行重组。题主在Wireshark里看到的抓包应该是已经重组过的,所以会看到有超过1500字节Payload的“以太帧”。其实在传输过程中,以太帧的Payload长度都不会超过所经过网络设备的MTU值。发布于 2017-04-25 12:52赞同 452 条评论分享收藏喜欢收起运维法拉令武汉誉天互联科技有限责任公司 运营 关注以太网协议以太网是当今现有局域网(Local Area Network, LAN)采用的最通用的通信协议标准,该标准定义了在局域网中采用的电缆类型和信号处理方法。以太网是建立在CSMA/CD (Carrier Sense Multiple Access/Collision Detection,载波监听多路访问/冲突检测)机制上的广播型网络。冲突域o 冲突域是指连接在同一共享介质上的所有节点的集合,冲突域内所有节点竞争同一带宽,一个节点发出的报文(无论是单播、组播、广播),其余节点都可以收到。广播域o 广播报文所能到达的整个访问范围称为二层广播域,简称广播域,同一广播域内的主机都能收到广播报文。以太网卡o 网络接口卡 (Network Interface Card, NIC)也称为“网卡”,是计算机、交换机、路由器等网络设备与外部网络世界相连的关键部件。以太网帧格式以太网技术所使用的帧称为以太网帧 (Ethernet Frame),或简称以太帧。以太帧的格式有两个标准:Ethernet_II格式和IEEE 802.3格式。MAC地址:o MAC (Medium Access Control)地址在网络中唯一标识一个网卡,每个网卡都需要并拥有有唯一的一个MAC地址。o 一块网卡的MAC地址是具有全球唯一性的。o IP地址vsMAC地址:· IP地址特点:§ IP地址是唯一的§ IP地址是可变的§ 基于网络拓扑进行IP地址分配· MAC地址特点:§ MAC地址是唯一的§ MAC地址是不可变的§ 基于制造商进行MAC地址分配o MAC地址的表示:· 一个MAC地址有48 bit,6 Byte。· MAC地址通常采用“十六进制”+“-”表示。· 每两个十六进制为一组,每个十六进制占4比特,共有六组,共有12个十六进制,共48比特o MAC地址的构成及分类:· OUI (Organizationally Unique Identifier):厂商代码,由IEEE分配,3 Byte,24 bit。· MAC地址的前三组(每两个十六进制为一组)为OUI厂商代码· MAC地址的分类:§ 单播以太帧,第一组的最后一位为0§ 广播以太帧,每一组的二进制都为1§ 组播以太帧,第一组的最后一位为1以太网通信原理&过程当终端第一次和某个陌生主机进行通信时,会发送arp请求报文o 在发送数据前,设备会先查找ARP缓存表。o 若缓存表中存在对方设备的MAC地址,才能采用该MAC地址来封装帧,然后将帧发送出去。o 如果缓存表中不存在相应信息,则通过ARP来获取。o 因为数据帧是在源主机内生成的,所以需要知道目标主机的IP和MAC地址才能打包成帧o 主机1发送ARP Request报文来获取主机2的MAC地址。o 由于不知道目的MAC地址,因此ARP Request报文内的目的端MAC地址为0。o ARP Request是广播数据帧,因此交换机收到后,会对该帧执行泛洪操作。o 所有的主机接收到该ARP Request报文后,都会检查它的目的端IP地址字段与自身的IP地址是否匹配。o 主机2发现IP地址匹配,则会将ARP报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中。o 主机2通过发送ARP Reply报文来响应主机1的请求。o 此时主机2已知主机1的MAC地址,因此ARP Reply是单播数据帧。o 交换机收到该单播数据帧后,会对该帧执行转发操作。o 主机1收到ARP Reply以后,会检查ARP报文中目的端IP地址字段是否与自己的IP地址匹配。o 如果匹配,会将ARP报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中。终端生成数据段o 应用层生成原始数据Data,传输给传输层· Datao 传输层收到应用层的原始数据Data,根据相对于的协议,将其打包,传输给网络层· Sport1341 Dport80 .. Datao 网络层收到传输层的原始数据段Segment,打上IP头部标签,传输给数据链路层· SIP1.1.1.1 DIP2.2.2.2 .. Sport1341 Dport80 .. Datao 数据链路层收到网络层的原始数据包Packet,打上以太网帧头部和尾部,然后发送到通信介质中· SMAC A-B-C DMAC F-F-F SIP1.1.1.1 DIP2.2.2.2 .. Sport1341 Dport80 .. Data数据传输o 终端—终端· 此线路既简单又单一,直接将数据传到对方端口中即可,将比特流反向解析即可o 终端—交换机—终端· 终端能请求到广播域内所有终端的MAC地址· 此结构能让终端和多个终端通行· 交换机对于从传输介质进入某一端口的帧的3种处理行为:§ 泛洪:除了接收到帧的那个端口,向其他所有端口进行转发· 如果收到的是未知单播帧:· 交换机在MAC地址表中查不到这个帧的目的MAC地址,则交换机对该单播帧执行泛洪操作。· 如果收到的是广播帧:· 交换机不会去查MAC地址表,直接对该广播帧执行泛洪操作。§ 转发:将帧发送到指定端口· 如果收到的单播帧:· 交换机在MAC地址表中查到了这个帧的目的MAC地址,并且表中对应的端口编号不是这个帧从传输介质进入交换机的那个端口编号,则交换机对该单播帧执行转发操作。§ 丢弃:对传入的帧不做任何处理· 如果收到的单播帧:· 丢弃的操作实际上就是不转发o 终端—路由器—终端· 当要实现跨网段通行的时候,就需要用到路由器· 终端只会存放路由器的MAC地址,不会存放与路由器相连的其他终端MAC地址· 终端的网段必须和与之相连路由器端口的网段相同发布于 2022-07-09 15:06赞同 2添加评论分享收藏喜欢
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地址赞同 94238 条评论分享喜欢收藏申请转载文章被以下专栏收录图解网络看图学网络更简单程序员架构进阶公众号 程序员架构进阶,分享多年项目实践和架构经验小七好物生活工作的好物,一起发现,一起
结构 从硬件的角度看,以太网接口电路主要由 MAC(Media Access Control,MAC)控制器和物理层接口 PHY(Physical Layer,PHY)两大部分构成。如下图所示:
MAC_PHY
但是,在实际的设计中,以上三部分并不一定是独立分开的。 由于,PHY 整合了大量模拟硬件,而 MAC 则是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将 MAC 集成进微控制器而将 PHY 留在片外。更灵活、密度更高的芯片技术已经可以实现 MAC 和 PHY 的单芯片整合。总的来说,可分为下列几种类型:CPU 集成 MAC 与 PHY,目前来说并不多见。
MAC_PHY_1CPU 集成 MAC,PHY 采用独立芯片,这种比较常见。
MAC_PHY_2CPU 不集成 MAC 与 PHY,MAC 与 PHY 采用集成芯片(形成一个独立的网卡),这种也比较常见。
MAC_PHY_3 MAC 及 PHY 工作在 OSI 七层模型的数据链路层和物理层。具体如下
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 基带网络介绍。但是,并不是说每部分都是独立的。
IEEE802.3什么是 MAC MAC(Media Access Control,MAC)即媒体访问控制。该部分有两个概念:MAC 可以指的是一个硬件控制器,也可以指 MAC 通信协议。该协议位于 OSI 七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。MAC 硬件大约就是下面的样子了:
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 表。由驱动程序和操作系统完成。在 Windows 及 Linux 里面可以用 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
提到 MII,就有可能涉及到 RS,PLS,STA 等名词术语,下面讲一下他们之间对应的关系。 所谓 RS 即 Reconciliation sublayer,它的主要功能主要是提供一种 MII 和 MAC/PLS 之间的信号映射机制。它们(RS与MII)之间的关系如下图:
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 包括一个数据接口,以及一个 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 上升沿同步进行转换。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% 之间。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、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
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的寄存器留给芯片制造商自由定义,如下表所示。
PHY_REG (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 的每一位完成的功能见下。
PHY_CTRL_REG 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 信号应始终保持无效。 清 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种已有详细说明。
PHY_STA_REG
寄存器中各位的详细说明如下: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。具体如下图所示:
PHY_ID_REGAuto-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。
PHY_REG_4Link 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]应用于识别自动协商发送的消息的类型。 下表列出了可能发送的消息的类型。 随着新消息的发展,该表格将相应更新。
Selector Field
未指定的组合保留供将来使用。 不会传输选择器字段的预留组合。***我们所接触的以太网PHY遵从IEEE802.3规范,Selector Field=0001,该区域不可随意更改(很多PHY将此区域设计为只读寄存器,以免被修改)***。Technology Ability Field: 技术能力字段(A [6:0])是一个7位宽的字段,其中包含指示选择器字段值特定的支持技术的信息。 这些位被映射到各个技术,以便能够针对单个选择器字段值并行通告能力。 附录28B.2和附件28D描述了IEEE 802.3选择器的技术能力字段编码。 链接代码字中可能会公布多种技术。 设备应支持其宣传的技术的数据服务能力。
Technology Ability FieldExtended 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 Expansion RegisterAuto-Negotiation Next Page transmit register (Register 7) (R/W) 自动协商下一页发送寄存器包含在支持下一页功能时要发送的下一页链接码字。 (见表28-6)内容在28.2.3.4中定义。 上电时,该寄存器应包含默认值2001H,该值表示消息代码设置为Null消息的消息页面。 该值可以由设备希望传输的任何有效的下一页消息代码替换。 写入该寄存器应将mr_next_page_loaded设置为true。
Register 7Auto-Negotiation Link Partner Received Next Page register (Register 8) (RO)Register 8未完待续。。。附件无参考文档IEEE Standard for Ethernet网络版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/190748.html原文链接:https://javaforall.cn本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。 原始发表:2022年9月22日 ,如有侵权请联系 cloudcommunity@tencent.com 删除前往查看单片机本文分享自 作者个人站点/博客 前往查看如有侵权,请联系 cloudcommunity@tencent.com 删除。本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!单片机评论登录后参与评论0 条评论热度最新登录 后参与评论推荐阅读LV.关注文章0获赞0目录结构什么是 MAC什么是 MIIRMII(Reduced Media Independant Interface)GMII(Gigabit MII)什么是PHYPHY寄存器Control Register (Register 0)Status registerPHY Identifier RegisterAuto-Negotiation Advertisement Register (Register 4) (R/W)Auto-Negotiation Link Partner ability register (Register 5) (RO)Auto-Negotiation Expansion Register (Register 6) (RO)Auto-Negotiation Next Page transmit register (Register 7) (R/W)Auto-Negotiation Link Partner Received Next Page register (Register 8) (RO)附件参考文档领券社区专栏文章阅读清单互动问答技术沙龙技术视频团队主页腾讯云TI平台活动自媒体分享计划邀请作者入驻自荐上首页技术竞赛资源技术周刊社区标签开发者手册开发者实验室关于社区规范免责声明联系我们友情链接腾讯云开发者扫码关注腾讯云开发者领取腾讯云代金券热门产品域名注册云服务器区块链服务消息队列网络加速云数据库域名解析云存储视频直播热门推荐人脸识别腾讯会议企业云CDN加速视频通话图像分析MySQL 数据库SSL 证书语音识别更多推荐数据安全负载均衡短信文字识别云点播商标注册小程序开发网站监控数据迁移Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有 深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档Copyright © 2013 - 2024 Tencent Cloud.All Rights Reserved. 腾讯云 版权所有登录 后参与评论00
以太网帧(Ethernet)、IP包、TCP、UDP的长度范围 - sinferwu - 博客园
会员
周边
新闻
博问
AI培训
云市场
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式 ...
退出登录
注册
登录
sinfer
博客园
首页
新随笔
联系
订阅
管理
以太网帧(Ethernet)、IP包、TCP、UDP的长度范围
http://kibazen.cn/2015/ethernet-ip-tcp-udp-packet-length/
一、它们之间的关系
TCP/IP协议是分层的。以太网帧的数据帧在链路层,IP包在网络层,TCP/UDP在传输层,TCP/UDP中的数据在应用层。
应用层
TCP/UDP中的数据
传输层
TCP/UDP
网络层
IP包
数据链路层
以太网帧
物理层
上一层的数据连同该层的控制信息打包交给下一层,直到最底层。所以他们之间的关系:以太网帧{IP包{TCP/UDP{数据}}}。
二、以太网帧(数据链路层)
目前以太网帧有5种,交换机之间BPDU(桥协议数据单元)数据包使用的是IEEE802.3/LLC帧,其格式如下:
字段
长度(字节)
目的
前导码(Preamble)
7
0x55,一串1、0间隔,用于信号同步
帧开始符(SFD)
1
1字节0xD5(10101011),表示一帧开始
目的MAC地址
6
指明帧的接受者
源MAC地址
6
指明帧的发送者
长度(Length)/类型(Type)
2
0~1500保留为长度域值,1536~65535保留为类型域值(0x0600~0xFFFF)
数据和填充(Data and Pad)
46~1500
高层的数据,通常为3层协议数据单元。对于TCP/IP是IP数据包(注:如果帧长小于64字节,则要求“填充”,以使这个帧的长度达到64字节)
帧校验序列(FCS)
4
使用CRC计算从目的MAC到数据域这部分内容而得到的校验和
据RFC894的说明,以太网封装IP数据包的最大长度是1500字节(所以,数据链路层的最大传输单元(Maximum Transmission Unit,MTU)是1500字节),也就是说以太网最大帧长应该是以太网首部加上1500,再加上7字节的前导同步码和1字节的帧开始定界符,具体就是:7字节前导同步吗+1字节帧开始定界符+6字节的目的MAC+6字节的源MAC+2字节的帧类型+1500+4字节的FCS。
按照上述,最大帧应该是1526字节,但是实际上我们抓包得到的最大帧是1514字节,为什么不是1526字节呢?原因是当数据帧到达网卡时,在物理层上网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验,如果帧校验和错,就丢弃此帧。如果校验和正确,就判断帧的目的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,就将帧交“设备驱动程序”做进一步处理。这时我们的抓包软件才能抓到数据,因此,抓包软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据,其最大值是6+6+2+1500=1514。
以太网规定,以太网帧数据域部分最小为46字节,也就是以太网帧最小是6+6+2+46+4=64。除去4个字节的FCS,因此,抓包时就是60字节。当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面填充以满足数据帧长不小于64字节。由于填充数据是由MAC子层负责,也就是设备驱动程序。不同的抓包程序和设备驱动程序所处的优先层次可能不同,抓包程序的优先级可能比设备驱动程序更高,也就是说,我们的抓包程序可能在设备驱动程序还没有填充不到64字节帧的时候,已经捕获了数据。因此不同的抓包工具抓到的数据帧的大小可能不同。(比如,wireshark抓到的可能没有填充数据段,而sniffer抓到的就有填充数据段)
而为什么以太网帧最后最小的值是64字节呢?考虑如下的情况,主机发送的帧很小,而两台冲突主机相距很远。在主机A发送的帧传输到B的前一刻,B开始发送帧。这样,当A的帧到达B时,B检测到冲突,于是发送冲突信号。假如在B的冲突信号传输到A之前,A的帧已经发送完毕,那么A将检测不到冲突而误认为已发送成功。由于信号传播是有时延的,因此检测冲突也需要一定的时间。这也是为什么必须有个最小帧长的限制。
按照标准,10Mbps以太网采用中继器时,连接的最大长度是2500米,最多经过4个中继器,因此规定对10Mbps以太网一帧的最小发送时间为51.2微秒。这段时间所能传输的数据为512位,因此也称该时间为512位时。这个时间定义为以太网时隙,或冲突时槽。512位=64字节,这就是以太网帧最小64字节的原因。
512位时是主机捕获信道的时间。如果某主机发送一个帧的64字节仍无冲突,以后也就不会再发生冲突了,称此主机捕获了信道。
由于信道是所有主机共享的,如果数据帧太长就会出现有的主机长时间不能发送数据,而且有的发送数据可能超出接收端的缓冲区大小,造成缓冲溢出。为避免单一主机占用信道时间过长,规定了以太网帧的最大帧长为1500。
100Mbps以太网的时隙仍为512位时,以太网规定一帧的最小发送时间必须为5.12μs。
1000Mbps以太网的时隙增至512字节,即4096位时,4.096μs。
三、IP包(网络层)
IP头大小最小为20字节。所以,网络层的MTU=数据链路层的MTU1500-20=1480字节。
在IP头中,用2个字节来描述报文的长度,2个字节所能表达的最大数字就是65535。所以,IP数据包的最大长度就是64K字节(65535)。
由于IP协议提供为上层协议分割和重组报文的功能,因此传输层协议的数据包长度原则上来说没有限制。实际上限制还是有的,因为IP包的标识字段终究不可能无限长,按照IPv4,好像上限应该是4G(64K*64K)。
四、TCP(传输层)
依靠IP协议提供的报文分割和重组机制,TCP包头中就没有“包长度”字段,而完全依靠IP层去处理分帧。这就是为什么TCP常常被称作一种“流协议”的原因,开发者在使用TCP服务的时候,不必去关心数据包的大小,只需讲SOCKET看作一条数据流的入口,往里面放数据就是了,TCP协议本身会进行拥塞/流量控制。
五、UDP(传输层)
UDP则与TCP不同,UDP包头内有总长度字段,同样为两个字节,因此UDP数据包的总长度被限制为65535,这样恰好可以放进一个IP包内,使得 UDP/IP协议栈的实现非常简单和高效。
所以UDP包的最大值是:IP数据包的最大长度65535-IP头的大小20-UDP头的大小=65507字节。最小值是0。
这个值也就是你在调用getsockopt()时指定SO_MAX_MSG_SIZE所得到返回值,任何使用SOCK_DGRAM属性的socket,一次send的 数据都不能超过这个值,否则必然得到一个错误。
———————————————————————————在应用程序中我们用到的Data的长度最大是多少,直接取决于底层的限制。我们从下到上分析一下:1.在链路层,由以太网的物理特性决定了数据帧的长度为(46+18)-(1500+18),其中的18是数据帧的头和尾,也就是说数据帧的内容最大为1500(不包括帧头和帧尾),即MTU(Maximum Transmission Unit)为1500;2.在网络层,因为IP包的首部要占用20字节,所以这的MTU为1500-20=1480;3.在传输层:
UDP包的首部要占用8字节,所以UDP的MTU为1480-8=1472;所以,在应用层,你的Data最大长度为1472。 (当我们的UDP包中的数据多于MTU(1472)时,发送方的IP层需要分片fragmentation进行传输,而在接收方IP层则需要进行数据报重组,由于UDP是不可靠的传输协议,如果分片丢失导致重组失败,将导致UDP数据包被丢弃)。从上面的分析来看,在普通的局域网环境下,UDP的数据最大为1472字节最好(避免分片重组)。但在网络编程中,Internet中的路由器可能有设置成不同的值(小于默认值),Internet上的标准MTU值为576,所以Internet的UDP编程时数据长度最好在576-20-8=548字节以内。
TCP包的首部要占用20字节,所以TCP的MTU为1480-20=1460;
4.如果用户使用了PPPoE协议,还应减去PPPoE的首部占用需要的8字节。即TCP的MTU应该是1452;UDP的MTU应该是1464;
1
const unsigned long kMinEthernetFrameSize = 64;
2
const unsigned long kMaxEthernetFrameSize = 1518;
3
const unsigned long kEthernetFrameHeadSize = 6 + 6 + 2;
4
const unsigned long kEthernetFrameTailSize = 4;
5
const unsigned long kEthernetMTU = kMaxEthernetFrameSize - kEthernetFrameHeadSize - kEthernetFrameTailSize;
6
const unsigned long kPPPoEHeadSize = 8;
7
const unsigned long kIPHeadSize = 20;
8
const unsigned long kTCPHeadSize = 20;
9
const unsigned long kUDPHeadSize = 8;
10
const unsigned long kTCPMSS = kEthernetMTU - kPPPoEHeadSize - kIPHeadSize - kTCPHeadSize;
11
const unsigned long kUDPMSS = kEthernetMTU - kPPPoEHeadSize - kIPHeadSize - kUDPHeadSize;
———————————————————————————
参考:
http://blog.csdn.net/naturebe/article/details/6712153
http://blog.csdn.net/ixidof/article/details/7669422
https://www.frozentux.net/iptables-tutorial/iptables-tutorial.html
posted @
2017-09-30 15:51
sinferwu
阅读(7328)
评论(0)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面返回顶部
公告
Copyright © 2024 sinferwu
Powered by .NET 8.0 on Kubernetes
以太网的MAC层_以太网mac层-CSDN博客
以太网的MAC层
丶chuchu丶
已于 2022-06-26 00:16:29 修改
阅读量4.7k
收藏
54
点赞数
16
分类专栏:
网络
文章标签:
网络
于 2022-06-26 00:16:02 首次发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_56620669/article/details/125464556
版权
网络
专栏收录该内容
8 篇文章
0 订阅
订阅专栏
以太网是一种计算机局域网技术,由IEEE 802.3制定了以太网的技术标准。
它是一种有线系统,现在一般使用双绞线或者光纤进行数据传输。
IEEE 802.3将以太网的数据链路层分为两层:逻辑链路控制(LLC)和介质访问控制(MAC)
本篇重点介绍以太网的MAC层。
目录
一、MAC地址
MAC地址格式
MAC地址的识别
单播帧
多播帧
广播帧
随机MAC地址
二、以太网交换机
传输过程
自学习算法
生成树协议STP
三、虚拟局域网VLAN
一、MAC地址
每台电脑都有一个网卡,一个网卡就配有一个MAC地址
MAC地址用来确定网络设备位置的地址
每个网卡的MAC地址都是唯一的,有且仅有一个,如果你电脑有无线网卡,你电脑就有两个MAC地址
交换机和路由器会有更多的网络接口,也就有更多的MAC地址
利用 ipconfig /all 就能看到自己主机的IP地址
MAC地址格式
IEEE 802.3规定MAC地址为48位(6字节)的地址。
前三位由IEEE统一分配,后三位厂家自行决定
第一个字节的第一个比特位就表示它是单播地址还是多播地址(一般奇数就是多播)
比如 07-E0-12-F6-2A-D8 ,看这里的7,是一个奇数,所以是多播
单播就是A一对一发给B
多播就是A发给B,也发给C,或者更多
还有一个传输类型是广播,广播就是发一个数据,局域网上的所有主机都会收到
MAC地址的识别
这里模拟一个场景:比如很多主机连接到一个信道上
要实现两个主机的通信,比如A发送给B
A将数据传出,整个信道上的主机都能接受到数据
每台主机会根据自己的MAC地址与帧上的MAC地址匹配,不符合就丢弃
这里就衍生出三种帧:
单播帧
单播帧就是一对一,将目标MAC地址和自己的地址封装成帧,每个主机依次接受匹配
多播帧
多播就是一对多,一般主机会有一个多播组列表
当接受到一个多播帧后,对照这个列表就知道这个是否匹配
广播帧
广播就是所有人都要接受,目的地址会改为全F,当主机接受到全F,就知道是广播帧
随机MAC地址
早些年前,有一套系统可以通过MAC地址来跟踪人的行动
所以苹果率先采用了扫描网络时的随机MAC地址技术
目前大多数设备都已经支持此技术
二、以太网交换机
以太网交换机是基于以太网传输数据的交换机,通常有多个接口,采用全双工方式
以太网交换机具有并行性,多对主机能同时通信
传输过程
主机A要将数据发给主机B,会先根据ARP协议获取主机B的MAC地址获取后,将目标地址、源地址、数据等分装成帧传输给以太网交换机以太网交换机收到帧后,会在帧交换表中查找目标MAC地址对应的接口号,再通过该接口发送
帧的转发方式也有两种:
存储转发:在转发前接受整个帧,进行错误校验直接交换:采用交叉矩阵,不等全部接受,也不检查,直接将帧发送给目的地址
自学习算法
上述过程有个问题:用于对应MAC地址和接口号的帧交换表是哪里来的呢?
其实以太网交换机的帧交换表一开始是空的,通过自学习算法逐渐建立了这样一个帧交换表
下面演示一遍自学习过程:
比如主机A要将数据发送给主机B
数据从A进入交换机1,交换机1的帧交换表记住了A对应接口1此时交换表上没有主机B的数据,所以开始盲目转发给其他接口,也叫泛洪接口2的C接受到,发现MAC地址对不上,就丢弃此帧接口3的B接收到,发现MAC地址对上了,接受该帧顺着接口4,帧来到交换机2,交换机2的帧交换表也记住了A对应接口2交换机2的帧交换表没有B的数据,进行泛洪操作一圈下来DEF都不符,所以都丢弃
这就是一个完整过程。
注意:帧交换表上的数据会有有效时间,到期自动删除
生成树协议STP
这样的网络结构,如果断了一条,此局域网就不能通信了
所以采用冗余链路将他们连接在一起
但是这样就形成了网络环路,会引发广播风暴,即广播帧会在交换机之间反复转发
反复转发不仅消耗主机的资源,而且会使帧交换表混乱
所以这时就有了一个生成树协议STP,在保留冗余链路下,避免了环路的问题。
比如这样一个环路,主机A要将数据传给主机E
根据STP会指定一些链路阻塞,形成一个数据传输的通道:
这样就规划了一条最合适的道路来传输数据。
三、虚拟局域网VLAN
上面提到过,广播风暴就是因为交换机之间反复传输导致的
如果用交换机连接许多个广播域,形成了一个广域网后,如果一个广播域内部有了网络风暴或其他安全问题,就导致了这个问题顺着中间交换机来到其他广播域。
这样安全问题就严重了,所以需要分割广播域,有两种办法
首先就是不用中间交换机连接局域网,用路由器
路由器会自动隔离广播域,但是成本高。
我们还可以用虚拟局域网VLAN来划分,如下图:
一个VLAN内的主机不能与另一个VLAN内的主机通信。
谢谢你能看到这ヽ( ̄ω ̄( ̄ω ̄〃)ゝ
优惠劵
丶chuchu丶
关注
关注
16
点赞
踩
54
收藏
觉得还不错?
一键收藏
打赏
知道了
0
评论
以太网的MAC层
每台电脑都有一个网卡,一个网卡就配有一个MAC地址MAC地址用来确定网络设备位置的地址每个网卡的MAC地址都是唯一的,有且仅有一个,如果你电脑有无线网卡,你电脑就有两个MAC地址交换机和路由器会有更多的网络接口,也就有更多的MAC地址利用 ipconfig /all 就能看到自己主机的IP地址IEEE 802.3规定MAC地址为48位(6字节)的地址。前三位由IEEE统一分配,后三位厂家自行决定第一个字节的第一个比特位就表示它是单播地址还是多播地址(一般奇数就是多播)比如 07-E0-12-F6-2A-D8
复制链接
扫一扫
专栏目录
以太网MAC协议
10-18
详细介绍了以太网MAC层的数据格式、前导码、FCS等的值,以及串行发送顺序等底层知识,对用FPGA自己实现MII接口,了解传输过程非常有用
数据链路层的子层MAC层(图文详解)
是小D吖!的博客
06-23
2万+
数据链路层的子层MAC层MAC层MAC层的硬件地址单站地址,组地址,广播地址全球管理与本地管理适配器检查MAC地址MAC帧的格式
MAC层
MAC不是物理层!MAC不是物理层!MAC不是物理层重要的事情讲三遍。MAC层是数据链路层的两个子层之一。
MAC层的硬件地址
在局域网中,硬件地址又称为物理地址,或 MAC 地址。802 标准所说的“地址”严格地讲应当是每一个站的“名字”或标识符。但鉴于大家都早已习惯了将这种 48 位的“名字”称为“地址”,所以也采用这种习惯用法,尽管这种说法并不太严格。
注
参与评论
您还未登录,请先
登录
后发表或查看评论
以太网MAC层基础知识学习
t_home的博客
05-31
4892
1、MAC层的硬件地址
MAC media access control or message authentication code
在局域网中,硬件地址又称为物理地址或者MAC地址(因为物理地址用于MAC帧中)。I3E 802标准中规定了一种48位的全球地址,此地址固化在适配器的ROM中(所以称为物理地址)。无线LAN、蓝牙、以太网、FDDI、ATM等设备都使用相同规格的MAC地址。...
基于FPGA的以太网MAC层交换机设计与实现.pdf
07-13
基于FPGA的以太网MAC层交换机设计与实现.pdf
lte mac层协议
06-01
lte mac层标准协议学习,由助于新手了解mac层相关的东西
5G通信协议(MAC 层简介)
热门推荐
daijingxin的博客
10-05
2万+
目录1.MAC层结构2.MAC层的功能2.1 通道的映射2.2 复用/解复用2.3 HARQ2.3.1 下行
1.MAC层结构
MAC子层位于网络结构中的数据链路层。
在L2层包括了MAC、RRC、PDCP、SDAP四个子层。
2.MAC层的功能
MAC层的服务和功能:
逻辑信道与传输信道之间的映射
复用、解复用:将来自一个或多个逻辑信道的MAC SDU复用到一个传输块并传递给PHY;将从物理层传来的传输块解复用成多个MAC SDU并传递给一个或多个逻辑信道。
报告调度信息
通过HARQ进行错误纠正(
计算机网络笔记12 以太网的MAC层
Lora青蛙的博客
06-02
1454
本文详细记录以太网的MAC层的笔记。
mac地址厂商对应表_科普一下:什么叫MAC地址学习,记录什么内容
weixin_39842937的博客
12-04
974
概述MAC地址学习虽然说起来比较简单,但是在工作中,还是经常看小伙伴不能正确的应用,遇到问题时也比较迷茫,不知道如何分析问题。究其原因,可能还是对MAC地址学习的工作原理了解的不够,所以我今天写一篇文章,给还迷糊的小伙伴在普及一下,如果是已经了解的同学,可以当做复习。MAC地址简介在OSI七层模型中,每一层都有不同标识符,用来区分不同的设备,这样它们之间才能对等的进行通信。而MAC地址是数据链路层...
以太网详解二
肥嘟嘟的左卫门
09-15
4432
结构
从硬件的角度看,以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成。如下图所示
但是,在实际的设计中,以上三部分并不一定独立分开的。 由于,PHY整合了大量模拟硬件,而MAC是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将MAC集成进微控制器而将PHY留在片外。更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合。可分为下列几种类型:
CPU集成MAC与PHY。
MAC层
zrh_CSDN的博客
07-15
3077
MAC层的主要功能:
在不同UE之间做调度;
逻辑信道到传输信道的映射;
混合自动重传请求(HARQ)错误修正;
传输格式的选择。
MAC层的调度:LTE使用共享信道承载上下行的业务,调度是指为不同用户分配共享信道上的时域资源和频域资源。
MAC调度器需要考虑不同的因素:公平性、数据量、UE的信道条件、不同业务的QoS要求。
两种调度模式:
动态调度:对数据报大小和到达时刻没有约束,...
万兆以太网物理层编码芯片设计
12-09
万兆以太网物理层编码芯片设计费瑞霞-朱恩-周忻-赵文虎-王志功 东南大学射频与光电集成电路研究所-南京 摘要 提出了一种并行处理的编解码方案/采用这种方案-设计了万兆以太网标准的物理编码子层发送端芯片/芯片由编码8扰码和变速箱'部分组成/考虑到测试问题-该芯片内置了伪随机码数据源/这种方案的优点是逻辑简单8速度快/芯片采用**工艺-用全定制方式实现/芯片引脚分布时参照规格/关键词 编码 并行处理方法 扰码器 变速箱工艺-以全定制方式设计/"系统结构 万兆以太网在**模型中处于物理层.物理层包括从上至下物理编码子层、物理媒质连接子层、2+8物理媒质关联子层、电路实现时-A;3层。又分成了'个小模
物联网mac层技术综述培训文件
07-06
物联网mac层技术综述培训文件
MAC_TEST.rar_以太网 mac_物理层
09-21
以太网开发测试的模块代码,整合了物理层协议代码,对于不同的物理层可以针对性的修改即可实现移植
802.11Mac层流程
08-15
NS2中802.11Mac层函数注释以及Mac层各函数运行流程图
http://www.doc88.com/p-285604930007.html
万兆以太网MAC层控制器设计与实现
02-24
万兆以太网MAC层控制器设计与实现,万兆以太网MAC层控制器设计与实现
以太网MAC层协议研究与FPGA实现
05-24
以太网MAC层协议研究与FPGA实现
通信与网络中的基于FPGA的以太网MAC子层协议设计实现
12-05
摘要: 本文介绍了基于现场可编程门阵列(FPGA) 的以太网MAC 子层协议的硬件实现方法. 硬件结构上由控制模 块、发送模块和接收模块3个部分组成,发送模块和接收模块采用状态机控制数据发送和接收的过程,完成数据的封装...
以太网MAC和PHY关系
05-28
详细描述了以太网mac层和PHY层的关系,适合新手上手了解协议分层
基于RGMII的以太网MAC的FPGA实现代码
01-10
基于RGMII的以太网MAC的FPGA实现代码,整个工程采用Verilog HDL实现,包括测试用例以及功能验证TestBench
以太网mac层的具体功能
最新发布
06-03
以太网MAC层主要负责以下功能:
1. 媒体接入控制(MAC):控制多个设备在共享媒体上的访问,以避免冲突和碰撞。
2. 帧的封装与解封装:将上层交付的数据加上MAC头和MAC尾,构成MAC帧,并在接收端将MAC帧解封装,提取出数据。
3. 帧的传输与接收:控制帧的传输和接收,将MAC帧从发送端传输到接收端。
4. 帧的检错与重传:在传输过程中,对数据进行校验和检错,并在发生错误时进行重传。
5. 物理寻址:通过MAC地址进行物理寻址,确保数据发送到正确的设备。
6. 逻辑寻址:通过IP地址进行逻辑寻址,将数据发送到正确的网络上。
7. 流量控制:控制数据的发送速率,避免网络拥塞。
总之,MAC层是实现数据链接的关键,它提供了一个可靠的数据传输机制,确保数据的准确传输。
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
丶chuchu丶
CSDN认证博客专家
CSDN认证企业博客
码龄3年
盐城工学院
51
原创
29万+
周排名
174万+
总排名
4万+
访问
等级
1021
积分
795
粉丝
320
获赞
114
评论
265
收藏
私信
关注
热门文章
Java文件操作
4788
以太网的MAC层
4771
Flappy Bird游戏 C语言实现
2641
程序的编译
2573
Java项目--网页版音乐播放器(Spring Boot 后端逻辑)
2555
分类专栏
java_learning
18篇
数据库
1篇
C_learning
13篇
网络
8篇
Linux
1篇
数据结构
9篇
前端
1篇
游戏
1篇
最新评论
创建优先级队列
tao87118:
你好,想请教一下,这个小根堆只是对于单个数据排序没有问题,那比如说我{0,1}, {1,1}, {0,2}, {1,2}, {0,3},,这样入队后,可能出来顺序就是{0,1}, {0,3} {0,2}, {1,2},, {1,1},第一个元素是优先级,因为它只是对比优先级了,没有考虑顺序了,那这种怎么解决了
Java文件操作
丶chuchu丶:
哈哈,这都发现了
Java文件操作
小菜菜也想变强:
你的idea背景是金克斯
TCP与UDP协议的那些事
独一无二的哈密瓜:
tcp和udp学习了
Java文件操作
呋喃吖:
文件操作好
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
Java项目--网页版音乐播放器(JQuery前端逻辑)
Java项目--网页版音乐播放器(Spring Boot 后端逻辑)
Spring的那些事
2022年26篇
2021年25篇
目录
目录
分类专栏
java_learning
18篇
数据库
1篇
C_learning
13篇
网络
8篇
Linux
1篇
数据结构
9篇
前端
1篇
游戏
1篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
个
红包个数最小为10个
红包总金额
元
红包金额最低5元
余额支付
当前余额3.43元
前往充值 >
需支付:10.00元
取消
确定
下一步
知道了
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom 发出的红包
打赏作者
丶chuchu丶
你的鼓励将是我创作的最大动力
¥1
¥2
¥4
¥6
¥10
¥20
扫码支付:¥1
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。
余额充值
详解以太网MAC帧格式_以太网的mac帧格式-CSDN博客
详解以太网MAC帧格式
爱老虎油兔
已于 2022-03-13 16:31:08 修改
阅读量2.8w
收藏
215
点赞数
25
分类专栏:
数通
数据链路层
文章标签:
网络
网络协议
tcp/ip
于 2022-03-12 17:48:26 首次发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_53662978/article/details/123445930
版权
数通
同时被 2 个专栏收录
13 篇文章
3 订阅
订阅专栏
数据链路层
1 篇文章
0 订阅
订阅专栏
目录
一、引入
1. 前言
2. 网络通信协议
3. 终端之间的通信
二、帧格式
三、Ethernet Ⅱ 帧格式
1. 各字段说明
2. 两个问题
3. 抓包示意
4. 参考标准
四、IEEE 802.3 帧格式
1. 字段说明
2. 抓包示意
3. 参考标准
一、引入
1. 前言
20 世纪60 年代以来,计算机网络得到了飞速发展。各大厂商和标准组织为了在数据通信网 络领域占据主导地位,纷纷推出了各自的网络架构体系和标准,如IBM 公司的SNA 协议, Novell 公司的IPX/SPX 协议,以及广泛流行的OSI 参考模型和TCP/IP协议。同时,各大厂 商根据这些协议生产出了不同的硬件和软件。标准组织和厂商的共同努力促进了网络技术 的快速发展和网络设备种类的迅速增长。 网络通信中, " 协议" 和" 标准" 这两个词汇常常可以混用。同时, 协议或标准本身又常 常具有层次的特点。一般地, 关注于逻辑数据关系的协议通常被称为上层协议, 而关注于 物理数据流的协议通常被称为底层协议。IEEE 802 就是一套用来管理物理数据流在局域网 中传输的标准, 包括在局域网中传输物理数据的802.3 以太网标准。除以太外, 还有一些用 来管理物理数据流在广域网中传输的标准, 如PPP ( Point-to- Poi nt Protocol ) , 高级数 据钅连路控制HDLC ( High-LeveI Data Link ControI ) 。
2. 网络通信协议
3. 终端之间的通信
数据包在以太网物理介质上传播之前必须封装头部和尾部信息, 封装后的数据包称为数据 帧, 数据帧中封装的信息决定了数据如何传输。以太网上传输的数据帧有两种格式, 选择 哪种格式由TCP/IP 协议簇中的网络层决定。
二、帧格式
以太网上使用两种标准帧格式。第一种是世纪80 年代初提出的DIX v2 格式, 即Ethernet II 帧格式。Ethernet II 后来被IEEE802 标准接纳, 并写进了IEEE 802.3x-1997 的3.2.6 节。
Ethernet Ⅱ 帧格式
第二种是1983 年提出的IEEE 802.3 格式。这两种格式的主要区别在于Ethernet II 格式中包 含一个Type 字段, 标识以太帧处理完成之后将被发送到哪个上层协议进行处理, IEEE 802.3格式中, 同样的位置是长度(length)字段。
IEEE 802.3 帧格式
不同的Type 字段值可以用来区别这两种帧的类型, 当Type 字段值小于等于1500 ( 或者十 六进制的0x05DC) 时, 帧使用的是IEEE 802.3 格式。当Type 字段值大于等于1536 ( 或者 十六进制的0x0600)时, 帧使用的是Ethernet II 格式。以太网中大多数的数据帧使用的是Ethernet II 格式。
以太帧中还包括源和目的MAC 地址分别代表发送者的MAC 和接收者的MAC , 此外还有 帧校验序列字段, 用于检验传输过程中帧的完整性。
以太网帧格式
三、Ethernet Ⅱ 帧格式
1. 各字段说明
DMAC6字节目的MAC地址,IPV4为6字节,该字段确定帧的接收者。SMAC6字节源MAC地址,IPV4为6字节,该字段标识发送帧的工作站。Type2字节协议类型。取值表示了数据字段包含的高层协议。下表列出了链路直接封装的协议。Data变长 数据字段的最小长度必须为46字节以保证帧长至少为64字节,这意味着传输一字节信息也必须使用46字节的数据字段。 如果填入该字段的信息少于46字节,该字段的其余部分也必须进行填充。数据字段的最大长度为1500字节。 CRC4字节用于帧内后续字节差错的循环冗余检验(也称为FCS或帧检验序列)。这个字段只是提供检错功能,并不提供纠错功能。该效验和效验的范围为:目的地址,源地址,类型,数据等字段。CRC效验的生成多项式为: G(x)=X(32)+X(26)+X(23)+X(22)+X(16)+X(12)+X(11)+X(10)+X(8)+X(7)+X(5)+X(4)+X(2)+X(1)+1
对于Type 字段来说,不同的取值代表数据字段封装的不同上层协议,具体如下:
0x0800Internet Protocol (IP) [RFC894]0x0801X.75 Internet0x0805X.25 Level 30x0806Address Resolution Protocol (ARP)[RFC7042]0x0808Frame Relay ARP [RFC1701]0x8000IS-IS0x8035Reverse Address Resolution Protocol (RARP) [RFC903]0x8137Novell NetWare IPX/SPX (old)0x8138Novell, Inc.0x8100IEEE Std 802.1Q - Customer VLAN Tag Type0x814CSNMP over Ethernet [RFC1089]0x86DDIP Protocol version 6 (IPv6) [RFC7042]0x8808IEEE Std 802.3 - Ethernet Passive Optical Network (EPON) [RFC7042]0x880BPoint-to-Point Protocol (PPP) [RFC7042]0x880CGeneral Switch Management Protocol (GSMP)0x8847MPLS (multiprotocol label switching) label stack - unicast [RFC 3032]0x8848MPLS (multiprotocol label switching) label stack - multicast [RFC 3032]0x8863PPP over Ethernet (PPPoE) Discovery Stage [RFC2516]0x8864PPP over Ethernet (PPPoE) Session Stage [RFC2516]0x888EIEEE Std 802.1X - Port-based network access control0x88A8IEEE Std 802.1Q - Service VLAN tag identifier (S-Tag)0x88B7IEEE Std 802 - OUI Extended Ethertype0x88C7IEEE Std 802.11 - Pre-Authentication (802.11i)0x88CCIEEE Std 802.1AB - Link Layer Discovery Protocol (LLDP)0x88E5IEEE Std 802.1AE - Media Access Control Security0x88F5IEEE Std 802.1Q - Multiple VLAN Registration Protocol (MVRP)0x88F6IEEE Std 802.1Q - Multiple Multicast Registration Protocol (MMRP)
这个以太网V2的前导域为8B,而IEEE802.3的前导域为7B,将空余出来的一个字节用作帧起始分解符,它的位模式为10101011,这样做的目的就是为了和IEEE802.4和IEEE802.5兼容。
还有的就是IEEE802.3帧规定的第三个字段是“长度/类型域”。当这个字段值大于1536时,表示类型,这个就是和V2以太网一样的标准了;当这个字段值小于1500时,才表示“长度”,这时,接收方无法确定对接收到的帧做如何处理,必须通过在数据部分增加一个小的LLC头部,用它来提供帧类型的
2. 两个问题
1.在以太网V2的MAC帧中,其首部并没有一个帧长度(或数据长度)的字段,那么MAC子层如何知道从接收到的以太网帧中取出多少字节的数据交给上一层的协议?
D: 这是因为以太网采用曼彻斯特编码,曼彻斯特编码的一个重要特点是:在曼彻斯特的每一个码元的正中间一定有一次电压的转化(从高到低或者从低到高)。当发送方把一个以太网帧发送完毕后,就不再发送其他码元(帧之间有着一定的间隔),这样发送方适配器上的电压就不再变化,于是接收方就可以很容易地找到以太网帧的结束位置,这个位置上往前数4B(效验和),就能确定数据字段的结束位置。
2.当数据字段不足46B时候,必须通过填充字段来扩充数据字段的长度,使其满足最小长度64B的要求,那么接收端的MAC子层在从接收到的帧中剥去首部和尾部后把数据字段交给上一层协议后,上一层协议如何识别有效的数据字段的长度?
D: 上一层协议要识别数据帧的数据字段的有效长度,一般是通过上层协议的类似“总长度”字段推断出来的。例如,如果上层协议使用的是IP协议的时候,其IP头中就有一个“总长度字段”,因此“总长度”字段加上填充字段,应当等于MAC帧中数据字段的长度。例如,当IP数据包的总长度为42B时,填充字段共有4B,当MAC帧将46B的数据交给IP层时,IP层就把其中的4B的填充字段丢弃。
3. 抓包示意
抓包实例
4. 参考标准
标准描述IEEE 802.3Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specificationsIEEE 802.3aeMedia Access Control (MAC) Parameters, Physical Layers, and Management parameters for 10Gb/s OperationRFC 894A Standard for the Transmission of IP Datagrams over Ethernet NetworksRFC 1042A Standard for the Transmission of IP Datagrams over IEEE 802 Networks
四、IEEE 802.3 帧格式
1. 字段说明
DMAC6目的MAC地址SMAC6源MAC地址Length2指后续数据的字节长度,但不包括CRC检验码DSAP1目的服务访问点SSAP1源服务访问点Data44~1498负载CRC4用于帧内后续字节差错的循环冗余检验(也称为FCS或帧检验序列)
IEEE 802.3 帧格式
IEEE802.3 帧格式类似于Ethernet II 帧, 只是Ethernet II 帧的Type 域被802.3 帧的Length 域取代, 并且占用了Data 字段的8 个字节作为LLC 和SNAP 字段。 Length 字段定义了Data 字段包含的字节数。 逻辑链路控制LLC ( Logical Link Control ) 由目的服务访问点DSAP ( Destination Service Access Point )、源服务访问点SSAP ( Source Service Access Point ) 和 Control 字段组成 SNAP ( Sub-network Access Protocol ) 由机构代码( Org Code ) 和类型( Type ) 字段组成。Org Code 三个字节都为0 。Type 字段的含义与Ethernet II 帧中的Type 字段相同。 IEEE802.3 帧根据DSAP 和SSAP 字段的取值又可分为以下几类: 1. 当DSAP 和SSAP 都取特定值0xff时,802.3 帧就变成了Netware-ETHERNET 帧, 用 来承载NetWare 类型的数据。 2. 当DSAP 和SSAP 都取特定值0xaa时,802.3 帧就变成了ETHERNET_SNAP帧 ETHERNET_SNAP 帧可以用于传输多种协议。
3. DSAP和SSAP取值为其它时,就是纯的IEEE 802.3 帧。
2. 抓包示意
3. 参考标准
标准描述IEEE 802.3Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specificationsIEEE 802.3aeMedia Access Control (MAC) Parameters, Physical Layers, and Management parameters for 10Gb/s OperationRFC 894A Standard for the Transmission of IP Datagrams over Ethernet NetworksRFC 1042A Standard for the Transmission of IP Datagrams over IEEE 802 Networks
优惠劵
爱老虎油兔
关注
关注
25
点赞
踩
215
收藏
觉得还不错?
一键收藏
知道了
0
评论
详解以太网MAC帧格式
一、引入1. 前言20 世纪60 年代以来,计算机网络得到了飞速发展。各大厂商和标准组织为了在数据通信网络领域占据主导地位,纷纷推出了各自的网络架构体系和标准,如IBM 公司的SNA 协议,Novell 公司的IPX/SPX 协议,以及广泛流行的OSI 参考模型和TCP/IP协议。同时,各大厂商根据这些协议生产出了不同的硬件和软件。标准组织和厂商的共同努力促进了网络技术的快速发展和网络设备种类的迅速增长。网络通信中, " 协议" 和" 标准" 这两个词汇常常可以混用。同时, 协议或标准本
复制链接
扫一扫
专栏目录
以太网协议帧格式(一)
qq_42357877的博客
01-31
6630
浅谈常用的网络协议帧格式。
车载诊断协议DoIP系列 —— AL IPv6地址分配&通用DoIP报头结构
Soly_kun的博客
03-10
210
### 本文大体如下:
### 1、系列文章目的
### 2、AL IPv6地址分配
### 3、通用DoIP报头结构
参与评论
您还未登录,请先
登录
后发表或查看评论
MAC帧格式分析与应用
08-26
本文介绍了IEEE802.3标准中规定的两种以太网帧格式,基本帧格式和扩展帧格式。得出以下结论,IEEE802.3-2005基本帧格式,主要由前导、SDF、DA、SA、Length/Type、DATA、Pad、FCS等8部分组成,还可增添4字节的扩展部分,其总长度为64-1518字节。扩展帧格式在基本帧格式上增加了“802.1Q TAG”类型和TCI字段,可实现对用户优先级和VLAN加标帧的控制。
计算机网络入门——MAC地址、帧
BigSmileBigSun的博客
03-03
1145
mac地址和帧的简单介绍
网络协议格式|以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报
蓝易云
01-15
363
以上是基本的网络协议格式,不同协议有不同的字段和标志,用于在网络中传输数据并确保数据的正确性和可靠性。
以太网MAC层 帧格式
weixin_30518397的博客
05-20
1906
以太网中的MAC帧的格式与各字段的作用为:前导码(7字节):使接收器建立比特同步起始定界符SFD(1字节):指示一帧的开始目的地址DA(6字节):指出要接收该帧的工作站源地址SA(6字节):指示发送该帧的工作站地址。数据字段长度长度(2字节):指示其后的逻辑链路控制(LLC)数据字节的长度逻辑链路控制帧LLC:携带的用户数据填充字段PAD:以保证帧有足够长度来适应碰撞检测的需要帧校验序列FCS(4...
以太网MAC帧格式
非同╰_╯寻常
10-17
2万+
常用的以太网MAC帧格式有两种标准 :
DIX Ethernet V2 标准
IEEE 的 802.3 标准
最常用的 MAC 帧是以太网V2的格式
类型字段 (2个字节):
用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议
数据字段 (46-1500):
Ethernet_II帧和802.3_Ethernet帧格式比较
热门推荐
bluelingt的博客
10-08
4万+
一、Ethernet帧格式的发展
1980 DEC,Intel,Xerox制订了Ethernet I的标准
1982 DEC,Intel,Xerox又制订了Ehternet II的标准
1982 IEEE开始研究Ethernet的国际标准802.3
1983 迫不及待的Novell基于IEEE的802.3的原始版开发了专用的Ethernet帧格式
1985 IEEE推出IE
4.2.2 以太网技术(二) MAC地址和MAC帧的格式
nytcjsjboss的博客
05-04
3700
下一个字段就是用户的数据(data)字段,这个字段的长度是从46个字节到1500个字节之间,它存放的是高层的协议数据单元里面真正的内容,即我们的数据内容。第二个字段是类型字段,占2个字节,在DIX第二版本中规定了数据的类型字段是用来标识该帧的上一层使用的是什么协议,以便把收到的MAC帧交给上一层相应的协议当中,这个字段的用法就相当于查表了,如当前的类型字段的值是0X0800(16进制)就代表了上层携带的是IP数据报的内容,如果类型字段值是。
以太网的帧格式(计算机网络)
公众号:风景邮递Yuan的博客
09-23
4881
常用的以太网MAC帧格式有两种标准 :DIX Ethernet V2 标准IEEE 的 802.3 标准用来标志上一层使用的是什么,以便把收到的的数据上交给上一层的这个协议。例如,当类型字段的值是0x0800时,就表示上层使用的是IPv4数据报。若类型字段的值为0x0806,则表示上层是ARP协议。,其长度在46~1500字节(46字节是这样得出的:最小长度64字节减去18字节的首部和尾部)。MAC子层就会在数据字段的后面加入一个整数字节的填充字段,以保证以太网的MAC帧长不小于64字节。
计算机网络-MAC地址与以太网帧格式
m0_73995538的博客
03-28
2270
计算机联网必需的硬件是安装在计算机上的网卡,通信中,用来标识主机身份的地址就是制作在网卡上的一个硬件地址,每块网卡在生产出来后,除了具有基本的功能外,都有一个,这个地址就是,即网卡的,MAC地址由,通常分成六段,用十六进制表示,如00-D0-09-A1-D7-B7。其中。MAC地址的第8位为0时,表示该MAC地址为单播地址:为1时,表示该MAC地址为组播MAC地址,一块物理网卡的地址一定是一个单播地址,也就是第8位一定为0;组播地址是一个逻辑地址,用来表示一组接收者,而不是一个接收者。如下图。
学习802.11之MAC帧格式(一篇就够!)
youzhangjing_的博客
02-12
3297
802.11规范的关键在于MAC(媒介访问控制层),MAC位于各式物理层之上,控制数据传输。负责核心成帧操作以及与有线骨干网络之间的交互。802.11 MAC采用载波监听多路访问(CSMA)机制来控制对传输媒介的访问,不过冲突会浪费宝贵的传输资源,因而802.11采用冲突避免(CSMA/CA)机制,而非Ethernet所采用的冲突检测(CSMA/CD)机制。在802.11无线局域网中,MAC帧是实现MAC协议和保证数据有效通讯的基础。802.11MAC帧格式很特别,它的长度是可变的。
蓝牙4.0帧格式详解
03-16
详细介绍了蓝牙4.0帧格式,包括各字段含义,长度与取值。在此申明:本资料是经搜索网上资料后整理而得,如有侵权,请发CSDN私信。
以太网帧格式分析报告.doc
09-28
以太网帧格式分析报告.doc
以太网数据帧的格式分析比较
08-05
以太网数据帧的格式分析比较对以太网数据帧的各种格式进行简单的分析比较
以太网帧格式、IP数据报格式、TCP段格式+UDP段格式 详解 - - 博客园.pdf
05-10
以太网帧格式、IP数据报格式、TCP段格式+UDP段格式 详解
Day1-1 UART帧格式详解 UART定义及传输格式
10-12
Day1-1 UART帧格式详解
以太网协议报文格式归纳详解
05-16
一系列以太网协议报文格式归纳详解,包括ip tcp udp等协议!
RPC通信原理(一)
最新发布
Sudo_Wang的学习记录
03-12
610
如果现在我有一个电商项目,用户要查询订单,自然而然是通过Service接口来调用订单的实现类。我们把用户模块和订单模块都放在一起,打包成一个war包,然后再tomcat上运行,tomcat占有一个进程,这个项目也是在这个进程中运行的,模块之间的调用也是在进程的本地进行调用,那么如果我是一个分布式项目该怎么解决呢?现在用户和订单模块部署在两台服务器上,这时候用户模块就不能直接调用订单模块了,只能够通过网络来进行调用,而RPC就是用来干这个事情的,。需要远程通信的各类场景。
计算机网络各种帧格式
08-21
计算机网络中有多种帧格式,其中最常见的是以太网帧格式。以太网的帧格式有两种,分别是RFC 894和RFC 1042。这两种帧格式的主要区别在于其中两个字段的命名方式不同,即Type和Len字段。除此之外,其余字段在两种帧格式中是相同的。
除了以太网帧格式,还有其他的帧格式用于不同的网络协议。例如,在点对点协议(PPP)中,计算机之间的数据传输是通过分组来进行的。这些分组需要选择一些PPP参数,并进行网络层配置。此外,网络控制协议(NCP)还会给新接入的计算机分配一个临时的IP地址,使其成为因特网上具有IP地址的主机。
总结起来,计算机网络中存在多种帧格式,其中最常见的是以太网帧格式。除了以太网帧格式外,还有其他帧格式用于不同的网络协议。这些帧格式在字段的命名方式和具体配置上可能会有所不同。123
#### 引用[.reference_title]
- *1* *3* [[计算机通信网络]以太网的帧格式详解](https://blog.csdn.net/m0_56738500/article/details/127138052)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [计算机网络(3.6)数据链路层- PPP 协议的帧格式和工作状态](https://blog.csdn.net/qq_40452317/article/details/89643554)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
爱老虎油兔
CSDN认证博客专家
CSDN认证企业博客
码龄3年
暂无认证
13
原创
73万+
周排名
106万+
总排名
9万+
访问
等级
232
积分
62
粉丝
83
获赞
6
评论
777
收藏
私信
关注
热门文章
详解以太网MAC帧格式
28060
ENSP教程---配置DHCP
14896
ENSP之STP协议基本配置教程
13433
ENSP之静态、缺省路由的配置实验
7708
ENSP教程---OSPF单区域配置实验
7190
分类专栏
数通
13篇
ENSP实验
9篇
数据链路层
1篇
计算机网络
4篇
最新评论
ENSP--以太网接口及链路配置实验
qq_53567438:
这个没有声明之前是默认1G带宽?
ENSP之静态、缺省路由的配置实验
qq_52129511:
R2可以通R3
ENSP之静态、缺省路由的配置实验
qq_52129511:
你好。为什么我的R1和R2R3ping不通呢
ENSP之STP协议基本配置教程
W_Lq_JiaNan:
持续关注 希望更新更多 一起学习
ENSP之STP协议基本配置教程
W_Lq_JiaNan:
厉害666
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
ENSP--三层交换配置实验
ENSP---VLAN间路由配置实验
ENSP——GARP配置试验
2022年10篇
2021年3篇
目录
目录
分类专栏
数通
13篇
ENSP实验
9篇
数据链路层
1篇
计算机网络
4篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
个
红包个数最小为10个
红包总金额
元
红包金额最低5元
余额支付
当前余额3.43元
前往充值 >
需支付:10.00元
取消
确定
下一步
知道了
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom 发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。
余额充值