以太网MAC协议文档格式.docx
- 文档编号:7957189
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:17
- 大小:28.39KB
以太网MAC协议文档格式.docx
《以太网MAC协议文档格式.docx》由会员分享,可在线阅读,更多相关《以太网MAC协议文档格式.docx(17页珍藏版)》请在冰点文库上搜索。
保证地址在某个特定LAN中是唯一的,但不能保证在相互连接的LAN中是唯一的。
当使用局部唯一地址时,要求网络管理员对地址进行分配。
•全局的。
保证地址在所有的LAN中,在任何时间,以及对于所有的技术都是唯一的,这是一个强大的机制,因为:
(1)使网络管理员不必为地址分配而烦恼;
(2)使得站点可以在LAN之间移动,而不必重新分配地址;
(3)可以实现数据链路网桥/交换机。
全局唯一地址以块为单位进行分配,地址块由IEEE管理。
一个组织从IEEE获得唯一的地址块(称为OUI),并可用该地址块创建224个设备。
那么保证该地址块中地址(最后3个字节)的唯一性就是制造商的责任。
地址中的第2位指示该地址是全局唯一还是局部唯一。
除了个别情况,历史上以太网一直使用
全局唯一地址。
3以太网数据帧格式
图2基本的以太网帧格式及传输次序
图2显示了以太网MAC帧各个字段的大小和内容以及传输次序。
该格式中每个字段的字节次序是先传输的字节在左,后传输的字节在右。
在每个字节中的位次序正好相反,低位在左,高位在右。
字节次序和位的次序通常用于FCS之外的所有字段。
FCS将作为一个特殊的32位字段(最高位在左),而不是4个单独的字节。
3.1前导码(Preamble)和帧起始定界符(SFD
前导码包含8个字节。
前7个字节(56位)的职位0x55,而最后一个字节为帧起始定界符,其作用就是提醒接收系统有帧的到来,以及使到来的帧与输入定时进行同步。
在DIX以太网中,前导码被认为是物理层封装的一部分,而不是数据链路层的封装。
3.2地址字段
每个MAC帧包含两个地址字段:
目标地址(DestinationAddress)和源地址(SourceAddress)。
目的地址标识了帧的目的地站点,源地址标识了发送帧的站。
DA可以是单播地址(单个目的地)
或组播地址(组目的地),SA通常是单播地址(即,第1位是0)。
3.3长度/类型(Length/Type)
长度/类型字段具有两种意义中的一种。
如果这个字段的值小于1518,那么这个字段就是长度字段,并定义后面的数据字段的长度。
但是如果这个字段的值大于1518,它就标识了在以太网上
运行的客户端协议。
3.4数据(Data)
数据字段包含46〜1500字节。
数据域封装了通过以太网传输的高层协议信息。
由于CSMA/CD
算法的限制,以太网帧必须不能小于某个最小长度。
高层协议要保证这个域至少包含46个字节。
数据域长度的上限是任意的,但已经被设置为1500字节。
3.5帧校验序列(FCS
帧校验序列包含4个字节。
FCS是从DA开始到数据域结束这部分的校验和。
校验和的算法是
32位的循环冗余校验法(CRC。
关于FCS部分后面将做详细介绍。
4无效的MAC帧格式
满足下面条件至少一个的MAC帧即无效:
(1)帧长度和length/type字段中指定的长度不一致。
如果length/type中包含的是类型值,则认为帧长度与该字段值一致而不认为是无效帧。
(2)不是整数字节的长度。
(3)对接收到的帧进行CR(校验,发现错误。
无效的MAC帧内容将不传送到LLC层或MAC空制子层。
并将出现无效帧这一情况报告给网络管理。
5CSMA/C协议
为了通信的简便,以太网采用了两种重要的措施:
第一,采用无连接的工作方式,在传输数据之前无需建立连接。
第二,对发送的帧不进行编号,也不要求接收方发回确认帧。
这样做的理由是不同于其他网络,局
域网信道的质量非常好,因为信道质量而产生错误的概率非常小。
这与一般数据链路层协议有些区别,如滑动窗口协议等。
因此以太网提供的是服务是不可靠交付,即尽最大努力的交付。
当目的站点收到有错误的数据帧时,就简单的丢弃该帧,除此之外什么也不做。
上层协议会发现并处理,如上层协议发现丢失了一些数据,则过一段时间会把这些数据重新交给以太网,但以太网并不认为这是一个重传的帧,而是当作
一个新的帧来处理。
在半双工模式下,一个重要的问题就是如何协调总线上的各个站点,因为半双工模式同一时间只允
许一个站点发送数据,否则各站点之间将会互相干扰。
以太网采用的就是被称为CSMA/CD即载波
监听多路访问/冲突检测的协议。
“多路访问”说明是总线型网络,许多站点以多点的方式共用一个总线。
协议的实质是载波监听和冲突检测。
“载波监听”就是指站点在发送数据前先检查总线上是否已有数据在传输,如有则暂缓发送,避免
冲突。
实质就是在冲突发生前尽量避免。
“冲突检测”就是边发送边对媒体上的电压信号大小进行监测。
当一个站点监测到电压摆动值超过一定的门限时,就可认为发生了冲突。
冲突检测具体由物理层完成,数据链路层根据物理层的信号来判断是否有冲突。
一旦发生了冲突,站点就要停止发送数据,然后根据协议进行重传。
5.1帧的发送
数据发送模块主要实现以下两个功能:
1)数据的封装。
2)发送媒体管理。
包括信道获取,冲突处理等。
5.1.1数据的封装
发送模块按照以太网MAC帧格式,将待发送的数据与目的地址,源地址,类型/长度字段进行组合,并根据数据长度添加适当的填充字段以达到802.3标准规定的最小帧长度,然后计算CRC校验作为FCS字段添加在帧尾,形成一个完整的MAC帧。
在发送时,模块首先自动生成并发送前同步码和帧开始定界符,然后开始发送组装好的MAC帧。
等待机制(Defferenee)
当一个待发送帧准备就绪时,按照工作模式的不同,发送模块采用2种规则。
半双工模式:
在半双工模式下,为了避免其他主机竞争媒体而产生的冲突,MAC通过监听载波信号来得知是否有
其他站点在发送信息。
该信号由物理层信号提供。
如信道忙,MAC会暂缓发送自己的数据,直到信
号变为空闲时,才开始发送。
通常当信道变为空闲后,MAC并不立刻发送数据,而是继续等待一个
帧间间隔,目的是给物理层以及其他站点的MAC处理上一个帧的时间。
当一切准备就绪后,MAC就
把帧交给物理层以二进制数据流的形式发送出去。
全双工模式:
而在全双工模式下,情况则大不相同。
由于站点之间的连接为点到点,且可以同时进行发送和接收,所以就不存在冲突,也就不需要载波监听。
待发送的帧只要等待一个帧间间隔就可以立刻发送,不
需要考虑是否正在接收数据。
5.1.3冲突监测和处理:
在半双工模式下,假如有多个站点企图同时发送数据,尽管每个发送站都有等待机制,然而还是很有可能会相互干扰。
当2个站发送的信号叠加时,冲突就发生了。
只有在半双工的模式下,才有可能会发生冲突。
冲突说明当前有多个站企图使用共享信道。
在全双工模式下,两个站点之间有着点到点的独享信道,不存在冲突。
尽管物理层仍然会提供冲突信号,然而在全双工模式下,这个信号被忽略了。
当某个站点开始发送数据时,仅在发送开始的一段时间内可能遭遇到冲突,这个时间段被称为冲突
窗口(collisionwindow)。
这是由于信号在媒体上传播也需要时间,冲突窗口就是发送站点的信号传遍冲突域所需的时间。
这是一个很重要的参数,以太网取传输512bit数据所用时间为争用期的长度。
需要指出,以太网的端到端时延实际上是小于争用期的一半的,争用期被规定为传输512bit
所用时间,不仅是考虑了以太网的端到端时延,而且还包括其它的许多因素,如可能存在的转发器所增加的时延,以及强化冲突的干扰信号的持续时间等。
一般以太网的冲突多为发生在冲突窗口内。
一旦冲突发生,物理层会监测到干扰信号,于是冲突监测信号被置1。
在半双工模式下,发送模块
的接入管理模块响应这一信号,冲突处理机制开始执行。
首先,该模块会发送一系列被称为冲突强化的信息,确保其他的站点也能得知冲突的发生,强化冲突过后,发送端终止当前发送,并等待一个随机的时间重新尝试发送。
重新发送同样也有可能遭遇到冲突,最终的结果有两个,一是发送成功,二是达到了重传的数量上限,发送失败。
在全双工模式下,发送站点忽略物理层的冲突信号,站点随时可以发送帧而不会有冲突发生,所以不需要强化冲突和重传机制。
5.1.4退避算法以及重传
以太网使用截断二进制指数回退算法来解决冲突后的重发问题。
截断二进制指数回退算法很简单,就是让发生冲突的站点在停止发送数据后,不是立刻重发,而是推迟一个随机的时间。
这样就使得
重发时再次发生冲突的概率减小。
具体的算法是:
(1)确定单位回退时间,通常是取冲突窗口的值,即传输512bit数据所需时间,称为时槽。
⑵定义参数k,它等于重传次数,但不超过10,因此k=min(n,10)。
(3)取r满足0wr<
2k。
重传的时延就是r倍的时槽。
(4)当重传达到16次仍不能成功时(这表明同时打算发送数据的站点过多,导致连续发生冲突),则丢弃该帧,并向上层协议报告。
使用以上的回退算法可使重传需要推迟的平均时间随重传次数增加而增加,这也被称为动态退避,有利于整个系统的稳定。
5.2帧的接收
在接收端,站监视信道以获得帧到达的指示。
当发现信道变成非空闲状态时,站开始从信道接收比特,并查找标志MAC帧起始的前导码(preamble)和帧起始定界符(SDF。
站连续接收比特直到收到底层信道发出的帧结束指示。
如果收到的帧长度比一个时隙的长度小,接收方的MAC各丢弃掉该帧。
这是因为根据定义,有效帧的长度总是比时槽长(它等于往返信道传播延时)。
因此这样的帧段肯定是冲突的产物。
接收方根据此原理即可检测并丢弃冲突段,而不需要物理信道的冲突检测指示或无效CR(校验指示。
如果收到的帧满足最小长度要求,则接着进行CRC校验。
如果收到帧的CRCfi不正确,就丢弃掉该帧。
假设一个长度有效的帧具有有效的CRCS,接收方将检查目的地址以查看其是否是如下三⑴单播地址,帧的目的地址与接收站点的MAC地址相同
(2)组播地址,上层协议定义一些特殊的地址作为多播地址,帧中的目的地址包含组播地址。
(3)广播地址,目的地址为全1的地址。
如果这些地址表明帧确实是以该站为目的地,MAC将把帧传递到其客户方,并返回到开头,重新等
待新到达的帧。
6以太网流量控制
6.1以太网流量控制需求
以太网(实际上包括所有其他LAN技术)本质上是无连接的。
这样就没有虚电路的概念,帧传输的可靠性也没有什么保证。
帧无错传输的概率是很高的,但是无法保证绝对正确。
在数据位出错、接收器的缓冲区不能满足或其他异常情况下,以太网接收器会简单地丢弃帧,而不给出任何提示。
因此以太网接口的成本可以很低。
无连接的系统比较容易实现,而在数据链路层中包括错误恢复和流量控制机制的系统,实现起来要复杂得多。
LAN上数据位出错的可能性非常小。
这个数字对于数据链路层已经低到可以忽略不计的地步,并且可以满足高层协议或应用的可靠数据传输需要。
然而,帧缓冲不可使用产生的丢帧与位出错而丢帧结果是一样的。
这两种情况下,帧都无法传送到接收方,
数据链路层也不会收到出错指示。
缓冲拥塞造成丢帧的可能性要远远大于位出错,特别是在高数据率下或网络互连设备(如交换机)中。
最初的以太网没有提供任何流量控制机制,即保证发送者的发
送速度不会比接收者可接收的速度更快的机制。
当网络由通信端站组成时,这样的机制通常可由高层协议提供。
随着透明网桥(交换机)的出现,发送者可能不知道帧的直接接收者是谁。
也就是说,交换机不需要接入站的信息和参与,就可以代表它们接收和转发帧。
如果没有能提供流量控制的协议,就可能由于交换机缓冲区拥塞而丢失过多的帧。
6.1.1半双工网络的后退压力当交换机端口连接到共享式LAN半双工网络)时上,那么就可能通过改变MACS法的行为,抢在将要到来的数据之前采取某种动作,来阻止发送者发送它们的数据。
这就称为背压(backpressure)。
在CSMA/CDLA中,有两种方法可用来防止交换机的输入缓冲区溢出:
1)强行与将要到达的帧发生冲突。
表面上看,这是一个合理的策略,冲突将使发送站重新传送该帧。
这确实能像设想的那样防止缓冲区溢出,但不幸的是,存在一些不利影响:
•发送站可能阻塞太多,导致系统实际吞吐量要比可用吞吐量低(即,在信道上有不必要的空闲时
间)。
这是因为冲突使站产生指数级增长的后退时间。
在这段较长的时间里,交换机也同时把缓冲的数据转移到输出端口上,因此交换机的输入缓冲区很可能已经可用了。
即使队列被清空了信道也
将一直空闲,直到后退计时器超时。
•若交换机输入缓冲区持续拥塞,站中的待发帧可能要经历连续16次的冲突与重发。
如果16次发送都不成功,则按照MA(算法,站将丢弃该帧,并把该帧作为错误向站管理程序报告。
对于高层协议而言,这与交换机丢失帧是一样的。
这种情况和前面讨论的情况有一样的超时过长与性能降低问题,只不过是发生在持续拥塞的条件下。
•管理计数器与统计资料除了表明有“过多的冲突错误”之外,还将显示很高的冲突次数。
网络管理人员会认为该网络出现了某些严重的错误。
“正常的”
以太网不会有极高的冲突率或过多的冲突错误。
后一种情况特别表明了网络系统出现了问题,需要重新进行配置。
2)使信道看起来处于忙状态。
这种方法使用“拖延”策略而不是以太网MAC勺冲突后退策略。
只要站发现信道忙(载波侦听判断),它将延迟传输。
然而,它不增加后退延迟时间,而且该帧保留在队首,并且不管拖延的时间有多长,该帧都不会被丢弃。
这种方法比强迫冲突法要优越。
让共享式LAN接入站的载波侦听作出“信道忙”判断是比较容易的;
只要把构造好的数据比特串放在连接交换机和站的以太网上就可以了。
最简单的方法是,在交换机遭遇拥塞而想要阻塞供应负载时,生成一段前导码,把它放到需要的输入端口上。
这段前导码的结尾绝对不能是帧起始定界符,这保证接收站不会把它解释为一个真正的帧。
上述方法可以在任何必要的时候使用。
这将完全消除强迫冲突并且没有严重的不利影响。
唯一的问
题是如果这段前导码的发送时间超过20ms标准的10Mb/s收发器会作出“过长发送控制”
(jabbercontrol)的判断(使它们的传输功能失效)。
而在100Mb/s和1000Mb/s系统中,就完全不会出现这样的问题。
6.1.2全双工网络中的显式流量控制
在全双工以太网中,无论是伪载波侦听,还是强迫冲突算法都不能工作。
全双工以太网接口不检测冲突,并且忽略可延迟传送的载波侦听。
全双工网络需要显式的流量控制机制,使交换机能够阻塞处于拥塞状态的站。
为了实现这个目标,开发了为全双工以太网流量控制的标准算法(IEEE802.3X)。
6.2MAC控制9
000000p57
6.2.1MAC控制层的结构
MAC空制是数据链路层的一个子层。
它是介于传统以太网MAC!
和MAC客户之间的可选功能。
客户
可以是网络层协议(如IP)或数据链路层内部实现转发功能的网桥(交换机)。
如果MAC勺客户不知道或不关心MAC空制提供的功能,则这个子层就“消失”了;
就像这个MAC空制子层不存在一样,
正常的发送和接收数据流会经过MA(与MAC空制子层的客户交互。
对MAC空制敏感的客户(如需要防止缓冲区溢出的交换机),可以利用这个子层来控制底层以太网MAC勺操作。
特别是,它可以请
求全双工链路另一端的MAC?
止进一步传送数据,因而防止将要发生的溢出。
MAC空制的层次结构如下图所示:
图MAC空制在OSI参考模型中的位置
一旦对MAC空制敏感的上层发出了控制请求,则MAC空制层会产生控制帧。
这些控制帧将被送往发送模块发送;
同样,接收模块接收到其他站点发送的控制帧并把它们交给MAC控制子层中的相应模块处理。
因此在以太网上普遍的MAG客户数据帧中将会夹杂一些MACS制帧。
在MAC空制出现以前,在以太网上传送的每一个帧都是由上层协议提供,交由数据收发模块发
送和接收,然而MAC空制帧与它们不同的是,控制帧的产生和处理都是在数据链路层内完成的。
在
接收到控制请求后,MAC控制层将控制帧插入到发送队列中发送,当接收到控制帧时,控制帧在MAC控制层内被解封,控制帧本身不交往上层协议处理。
6.2.2MAC控制帧格式
MAC空制帧是正规、合法的MAC#,拥有正常的MAC帧的所有字段,并且采用同样的算法发送。
除了长度/类型字段外,MAC空制帧在结构上与数据帧完全一样。
MAC控制帧的长度都恰好是以太网帧的最小长度一一64字节,不包括前导码和帧起始定界符。
MAC空制帧的格式如下图:
图MAC控制帧格式
MAC空制帧区别于普通数据帧之处在于其长度/类型字段的值为0x8808,该值是专门为控制帧保留的。
在MAC空制帧的数据字段中,前2个字节代表MAC空制操作码,用于表示接收到该控制帧的站点需要做何种操作,目前只定义了一种操作代码,即随后讨论的全双工中的暂停操作(PAUSE)它
的代码为0x0001。
操作代码后面的域是该操作所需的参数。
如果该参数不足44字节的长度,那么
剩下的空间将用0来填充。
6.3PAUSE功能
PAUS功能用来在全双工以太网链路上实现流量控制。
PAUSES作是用MAC空制体系结构及帧
格式实现的。
目前该操作只工作于单个的全双工链路。
也就是说,他不能用于共享式(半双工)LAN也不能用于需要跨越交换机的链路。
可用它来控制下列设备之间的数据帧流:
(1)一对端站(简单的两站网络)。
(2)一个交换机和一个端站。
(3)交换机到交换机链路。
在交换机或站中增加PAUS功能,是为了当瞬时过载导致缓冲区溢出时防止不必要的帧丢弃。
假设一个设备设计用来处理网络上恒稳状态的数据传输,并允许随时间变化有一定数量的过载。
PAUS助能可使这样的设备在负载增长暂时超过其设计水平时,不会发生丢帧现象。
该设备通过向全双工链路的另一端发送PAUS帧,来防止自己的内部缓冲区溢出。
另一端设备在接收到PAUSE
帧后,就停止发送数据帧。
这将使第一个设备有时间来减少自己的缓冲拥塞它可以处理掉缓冲队列中发给自己的帧(站操作),或者把帧转发到其他的端口(交换机操作)。
6.3.1PAUSE操作概述
PAUSES作实现了一种简单的“停-起”形式的流量控制。
如果某个设备(站或交换机)想阻止帧到来,它可以发送一个带有参数的PAUS帧,该参数指明了全双工中的另一方在开始继续发送数据前需要等待的时间。
当另一个站接收到PAUS帧后,将在指定的时间内停止发送数据。
当这个时间仅供个人学习参考
超时后,该站将从暂停的位置继续发送数据帧。
PAUS帧能禁止发送数据帧,但它不影响MAC空制
帧的发送(例如,从另一个方向到来的PAUS帧)。
已发送了PAUSE旨令的站,可以再发送一个时间参数为0的PAUSE帧取消剩余的暂停时间。
即新收到的PAUS帧将覆盖掉当前执行的PAUS操作。
类似地,该站也可以在前一个PAUSE寸间还未结束时,发出另一个包含非零时间参数的帧延长暂停时间。
因为PAUS邨作使用标准的以太网MAC所以不能保证接收者一定能收到帧。
PAUS帧也可能出问题,而使接收者可能不知道曾发出了这样的帧。
在设计PAUSED输策略时必须考虑这样的问题。
6.3.2PAUSE帧的语义
由于目前控制帧的内同只有暂停一种,MAC空制帧也被称为PAUS駛,其包含的前导码、帧起始定界符和FCS字段的格式和含义与普通MAC数据帧一样,其余字段的格式虽然和数据帧没有区别,但是内容却有一些区别:
(1)目的地址
目的地址就是PAUS帧所要发往站点的地址。
它总是包含一个为PAUS帧保留的唯一的组播地址01-80-C2-00-00-01。
既然PAUS功能只用于全双工的链路上,而全双工链路的一个前提就是一个链路上只有2个站点,那么PAUS帧的目的地无疑就是链路另一端的站点,下面将解释为什么PAUS駛的目的地址需要指定,并且还是一个组播地址:
•如果因为配置错误,PAUS帧被不经意地发送到共享式LAN上,使用特定的组播地址可以保证接收并解释这些帧的是那些真正懂得PAUS协议的站(即,地址是专门为这个目的而保留的)。
•使用组播地址,就可以使PAUS帧的发送者不必知道链路另一端的唯一地址。
虽然高层协议很可能知道这个地址,但数据链路层没有必要知道。
•这个精心挑选的组播地址是特殊保留地址组中的一个,所有标准的网桥和交换机都会阻塞(吸收)这组地址。
交换机不会把发往这些地址的帧转发到其他的端口,这使得PAUS駛只在与其相关单全双工链路上使用。
(2)源地址
源地址字段包含发出PAUS帧站点的MAC地址。
尽管控制帧只能有链路上的一个站点发出,设定源地址貌似没有必要,但是在帧中包含一个源地址还是有以下的用途:
•可与其他所有类型以太网帧保持一致(即所有以太网帧的源地址都包含了发送站的唯一地址)
•可正确地更新监控设备上的管理记数器,这些设备可能一直跟踪记录每个站产生的帧。
•如果由于错误配置,PAUS帧被不小心地发送到共享式LAN上,可以容易地确定发送者。
(3)类型域
类型域包含了所有MAC空制帧使用的保留值:
0x8808。
(4)数据域(包含MAC空制操作码和操作参数)
PAUS駛的控制操作码是0x0001。
PAUSED只带有一个操作参数,被称为暂停时间(Pause-time)。
该参数是2字节长的无符号整型值,表示发送方请求接收方停止发送数据帧的时间长度。
暂停时间以512bit时间为单位计算,即接收方需要实际暂停的时间为Pause-time乘以用当前数据率传输512比特的时间。
使用与传输速率相关的暂停时间而不是使用实际时间,有以下2个原因:
(1)当以这种方式设定PAUS操作时,可以认为是让发送者暂停发送与速率无关的若干比特,而不是暂停一段指定的时间。
由于使用PAUS助能的初衷是实现内存容量有限的交换机,当网络接口
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 以太网 MAC 协议