以太网MAC协议详情Word文档格式.docx
《以太网MAC协议详情Word文档格式.docx》由会员分享,可在线阅读,更多相关《以太网MAC协议详情Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
08-00-60-01-2C-4A
将按以下顺序(从左向右读)串行地发送:
00010000-00000000-00000110-10000000-00110100-01010010
2以太网地址
地址是一个指明特定站或一组站的标识。
以太网地址是6字节(48比特)长。
图1说明了以太网地址格式。
图1以太网地址格式
在目的地址中,地址的第1位表明该帧将要发送给单个站点还是一组站点。
在源地址中,第1位必须为0。
站地址要唯一确定是至关重要的,一个帧的目的地不能是模糊的。
地址的唯一性可以是:
●局限于本网络内。
保证地址在某个特定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,而最后一个字节为帧起始定界符,其值为0xD5。
结果前导码将成为一个由62个1和0间隔(10101010---)的串行比特流,最后2位是连续的1,表示数据链路层帧的开始。
其作用就是提醒接收系统有帧的到来,以及使到来的帧与输入定时进行同步。
在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)对接收到的帧进行CRC校验,发现错误。
无效的MAC帧内容将不传送到LLC层或MAC控制子层。
并将出现无效帧这一情况报告给网络管理。
5CSMA/CD协议
为了通信的简便,以太网采用了两种重要的措施:
第一,采用无连接的工作方式,在传输数据之前无需建立连接。
第二,对发送的帧不进行编号,也不要求接收方发回确认帧。
这样做的理由是不同于其他网络,局域网信道的质量非常好,因为信道质量而产生错误的概率非常小。
这与一般数据链路层协议有些区别,如滑动窗口协议等。
因此以太网提供的是服务是不可靠交付,即尽最大努力的交付。
当目的站点收到有错误的数据帧时,就简单的丢弃该帧,除此之外什么也不做。
上层协议会发现并处理,如上层协议发现丢失了一些数据,则过一段时间会把这些数据重新交给以太网,但以太网并不认为这是一个重传的帧,而是当作一个新的帧来处理。
在半双工模式下,一个重要的问题就是如何协调总线上的各个站点,因为半双工模式同一时间只允许一个站点发送数据,否则各站点之间将会互相干扰。
以太网采用的就是被称为CSMA/CD,即载波监听多路访问/冲突检测的协议。
“多路访问”说明是总线型网络,许多站点以多点的方式共用一个总线。
协议的实质是载波监听和冲突检测。
“载波监听”就是指站点在发送数据前先检查总线上是否已有数据在传输,如有则暂缓发送,避免冲突。
实质就是在冲突发生前尽量避免。
“冲突检测”就是边发送边对媒体上的电压信号大小进行监测。
当一个站点监测到电压摆动值超过一定的门限时,就可认为发生了冲突。
冲突检测具体由物理层完成,数据链路层根据物理层的信号来判断是否有冲突。
一旦发生了冲突,站点就要停止发送数据,然后根据协议进行重传。
5.1帧的发送
数据发送模块主要实现以下两个功能:
1)数据的封装。
2)发送媒体管理。
包括信道获取,冲突处理等。
5.1.1数据的封装
发送模块按照以太网MAC帧格式,将待发送的数据与目的地址,源地址,类型/长度字段进行组合,并根据数据长度添加适当的填充字段以达到802.3标准规定的最小帧长度,然后计算CRC校验作为FCS字段添加在帧尾,形成一个完整的MAC帧。
在发送时,模块首先自动生成并发送前同步码和帧开始定界符,然后开始发送组装好的MAC帧。
5.1.2发送媒体管理
等待机制(Defference)
当一个待发送帧准备就绪时,按照工作模式的不同,发送模块采用2种规则。
半双工模式:
在半双工模式下,为了避免其他主机竞争媒体而产生的冲突,MAC通过监听载波信号来得知是否有其他站点在发送信息。
该信号由物理层信号提供。
如信道忙,MAC会暂缓发送自己的数据,直到信号变为空闲时,才开始发送。
通常当信道变为空闲后,MAC并不立刻发送数据,而是继续等待一个帧间间隔,目的是给物理层以及其他站点的MAC处理上一个帧的时间。
当一切准备就绪后,MAC就把帧交给物理层以二进制数据流的形式发送出去。
全双工模式:
而在全双工模式下,情况则大不相同。
由于站点之间的连接为点到点,且可以同时进行发送和接收,所以就不存在冲突,也就不需要载波监听。
待发送的帧只要等待一个帧间间隔就可以立刻发送,不需要考虑是否正在接收数据。
5.1.3冲突监测和处理:
在半双工模式下,假如有多个站点企图同时发送数据,尽管每个发送站都有等待机制,然而还是很有可能会相互干扰。
当2个站发送的信号叠加时,冲突就发生了。
只有在半双工的模式下,才有可能会发生冲突。
冲突说明当前有多个站企图使用共享信道。
在全双工模式下,两个站点之间有着点到点的独享信道,不存在冲突。
尽管物理层仍然会提供冲突信号,然而在全双工模式下,这个信号被忽略了。
当某个站点开始发送数据时,仅在发送开始的一段时间内可能遭遇到冲突,这个时间段被称为冲突窗口(collisionwindow)。
这是由于信号在媒体上传播也需要时间,冲突窗口就是发送站点的信号传遍冲突域所需的时间。
这是一个很重要的参数,以太网取传输512bit数据所用时间为争用期的长度。
需要指出,以太网的端到端时延实际上是小于争用期的一半的,争用期被规定为传输512bit所用时间,不仅是考虑了以太网的端到端时延,而且还包括其它的许多因素,如可能存在的转发器所增加的时延,以及强化冲突的干扰信号的持续时间等。
一般以太网的冲突多为发生在冲突窗口内。
一旦冲突发生,物理层会监测到干扰信号,于是冲突监测信号被置1。
在半双工模式下,发送模块的接入管理模块响应这一信号,冲突处理机制开始执行。
首先,该模块会发送一系列被称为冲突强化的信息,确保其他的站点也能得知冲突的发生,强化冲突过后,发送端终止当前发送,并等待一个随机的时间重新尝试发送。
重新发送同样也有可能遭遇到冲突,最终的结果有两个,一是发送成功,二是达到了重传的数量上限,发送失败。
在全双工模式下,发送站点忽略物理层的冲突信号,站点随时可以发送帧而不会有冲突发生,所以不需要强化冲突和重传机制。
5.1.4退避算法以及重传
以太网使用截断二进制指数回退算法来解决冲突后的重发问题。
截断二进制指数回退算法很简单,就是让发生冲突的站点在停止发送数据后,不是立刻重发,而是推迟一个随机的时间。
这样就使得重发时再次发生冲突的概率减小。
具体的算法是:
(1)确定单位回退时间,通常是取冲突窗口的值,即传输512bit数据所需时间,称为时槽。
(2)定义参数k,它等于重传次数,但不超过10,因此k=min(n,10)。
(3)取r满足0≤r<
2k。
重传的时延就是r倍的时槽。
(4)当重传达到16次仍不能成功时(这表明同时打算发送数据的站点过多,导致连续发生冲突),则丢弃该帧,并向上层协议报告。
使用以上的回退算法可使重传需要推迟的平均时间随重传次数增加而增加,这也被称为动态退避,有利于整个系统的稳定。
5.2帧的接收
在接收端,站监视信道以获得帧到达的指示。
当发现信道变成非空闲状态时,站开始从信道接收比特,并查找标志MAC帧起始的前导码(preamble)和帧起始定界符(SDF)。
站连续接收比特直到收到底层信道发出的帧结束指示。
如果收到的帧长度比一个时隙的长度小,接收方的MAC将丢弃掉该帧。
这是因为根据定义,有效帧的长度总是比时槽长(它等于往返信道传播延时)。
因此这样的帧段肯定是冲突的产物。
接收方根据此原理即可检测并丢弃冲突段,而不需要物理信道的冲突检测指示或无效CRC校验指示。
如果收到的帧满足最小长度要求,则接着进行CRC校验。
如果收到帧的CRC值不正确,就丢弃掉该帧。
假设一个长度有效的帧具有有效的CRC值,接收方将检查目的地址以查看其是否是如下三者之一:
(1)单播地址,帧的目的地址与接收站点的MAC地址相同
(2)组播地址,上层协议定义一些特殊的地址作为多播地址,帧中的目的地址包含组播地址。
(3)广播地址,目的地址为全1的地址。
如果这些地址表明帧确实是以该站为目的地,