当前位置:文档之家› 第四章 以太网数据链路层

第四章 以太网数据链路层

肆 以太网数据链路层P 目标:了解数据链路层结构。

熟悉各以太网帧格式,CSMA/CD (载波监听多路访问/冲突检测)机制,熟悉PAUSE 帧格式,和流量控制原理了解半双工模式下以太网端口的工作方式。

根据IEEE 的定义,以太网的数据链路层又分为2个子层:逻辑链路控制子层(LLC )和媒体访问控制子层(MAC )。

划分2个子层的原因是:数据链路层实际是与物理层直接相关的,针对不同的物理层需要有与之相配合的数据链路层,例如针对以太网、令牌环需要不同的数据链路层,而这是不符合分层原则的;于是通过划分LLC 和MAC 2个子层,尽量提高链路层的独立性,方便技术实现。

其中MAC 子层与物理层直接相关,以太网的MAC 层和物理层都是在802.3 中定义的,LLC 子层则可以完全独立,在802.2中定义,可适用于以太网、令牌环、WLAN 等各种标准。

ͼ1 以太网数据链路层MAC 子层处理CSMA/CD 算法、数据出错校验、成帧等;LLC 子层定义了一些字段使上次协议能共享数据链路层。

在实际使用中,LLC 子层并非必需的。

1 以太网的帧格式有两种主要的以太网帧类型:由RFC894定义的传统以太网(EthernetII )和802.3定义的以太网; 最常使用的封装格式是RFC 894定义的格式。

下图显示了两种不同形式的封装格式。

图中每个方框下面的数字是它们的字节长度。

EthernetII (RFC894)帧结构如下,该帧包含了5个域(前导码在此不作描应用层传输层网络层链路层物理层逻辑链路控制(LLC )子层MAC 子层述),它们分别是:目的MAC地址、源MAC地址、类型、净荷(PAD)、FCS、 EthernetII(RFC894)帧结构1)目的MAC地址( D A )包含6个字节。

D A标识了帧的目的地站点。

D A可以是单播地址(单个目的地)或组播地址(组目的地)。

2)源MAC地址( S A )包含6个字节。

S A标识了发送帧的站。

S A通常是单播地址(即,第1位是0 )。

3)类型域包含 2个字节。

类型域标识了在以太网上运行的客户端协议。

使用类型域,单个以太网可以向上复用(upward multiplex)不同的高层协议( I P,I P X,A p p l e Ta l k,等等)。

以太网控制器一般不去解释这个,但是使用它来确定所连接计算机上的目的进程。

本来类型域的值由X e r o x公司定义,但在1 9 9 7年改由I E E E负责。

例如08-00 表示 IP、81-37表示 NetWare。

5)数据域包含 4 6 ~ 1 5 0 0字节。

数据域封装了通过以太网传输的高层协议信息。

由于C S M A / C D算法的限制,以太网帧必须不能小于某个最小长度(46字节)。

高层协议要保证这个域至少包含4 6字节。

如果实际数据不足 4 6个字节,则高层协议必须填充到46字节,填充数为PAD。

数据域长度的上限是任意的,但已经被设置为 1 5 0 0字节(1 5 0 0字节最大长度的真正原因是 1 9 7 9年( 1 0 M b / s以太网正在设计之中)的内存成本以及低成本的 L A N控制器的缓冲区要求)。

6)帧效验序列( F C S )包含4个字节。

F C S是从D A开始到数据域结束这部分的校验和。

校验和的算法是3 2位的循环冗余校验法( C R C )。

生成多项式是:G ( x ) = x3 1+ x2 6+ x2 3+ x2 2+ x1 6+ x1 2+ x11+ x1 0+ x8+ x7+ x5+ x4+ x2+ x1+ 1F C S域的传送方法是:第 1位是x3 1项的系数,而最后 1位是x0项的系数。

因此C R C的各个位传输了:x3 1,x3 0,. . .,x1,X0。

802.3 以太网帧(RFC1042)的结构与Ethernet II 的非常类似,如下图所示。

ͼ1 802.3 以太网帧(RFC1042)结构和RFC894相比,类型域被长度域取代。

这 2 个字节在8 0 2 . 3 中被用来指示数据域中有效数据的字节数。

这两种格式也可以并存:如果该字段的值小于等于1500,则该帧为802.3帧,该字段表示帧长;如果大于1500,则该帧为EthernetII帧,该字段表示协议类型。

不同于EthernetII,802.3的以太网帧没有协议类型的定义,不能自动识别上层协议,必须通过对LLC头的定义来识别。

根据LLC的定义不同,802.3以太网帧又可以分为2种类型:802.2(SNAP)和802.2(SAP)。

在802.2 (SAP)中,引入了SAP(服务访问点)的概念,SAP可完成协议类型识别的功能,例如0Xe0表示NetWare :从802.2(SAP)的帧结构中我们可以看出,用于表示协议类型的SAP只有1个字节,因此许多常用的协议在802.2(SAP)中没有定义。

因此IEEE在802.2(SAP)的基础上定义了802.2(SNAP),在SNAP帧中,SAP始终为AA,而CTRL始终为03。

通过OUI ID和类型域进行协议类型的识别,可以支持足够多的协议类型,例如0X080007809B表示AppleTalk。

实际上网络上的以太网应用大多数都采用EthernetII ,很多网络设备甚至不能识别802.3封装的以太网帧。

从EthernetII帧结构中我们可以看出,其中仅仅包括一个MAC子层,而没有LLC子层。

所以我们说LLC子层并非必需的。

1以太网的MAC地址以太网通过MAC地址唯一标识一个网元,MAC地址是一个是 6字节( 4 8比特)长。

在LAN上,MAC地址被装在以太网帧种发送(上一节以太网帧格式中有介绍),一台主机收到以太网帧后首先判断该帧的目的MAC地址是否自己,如果目的MAC地址等于本站源地址,该帧才被送上层软件进行处理,否则丢弃(广播和组播帧除外)。

MAC地址的表达形式:XX-XX-XX-XX-XX-XXͼ1 MAC地址格式MAC地址可以分为3种类型:单播MAC地址:这种类型的MAC地址唯一的标识了以太网上的一个终端,该地址为全球唯一的硬件地址;广播MAC地址:全1的MAC地址为广播地址(FF-FF-FF-FF-FF-FF),用来表示LAN 上的所有终端设备;组播MAC地址:除广播地址外,第8bit为1的MAC地址为组播MAC地址(xxxxxxx1-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxx),用来代表LAN上的一组终端。

目的地址:第1位=0(物理单播地址)=1(逻辑组播地址)源地址:第1位=0(必须为0)广播地址:0xFF-FF-FF-FF-FF-FF根据目的MAC地址的不同,以太网帧可以分为单播帧、广播帧和组播帧,网络设备对不同帧的处理是不同的。

对于主机而言,如果收到一个单播帧,通常直接将该帧的目的MAC与自身的MAC地址比较,若相同则交网络层处理,否则丢弃;如果收到一个广播帧则直接交网络层处理;如果收到一个组播帧则判断本主机是否已经加入该组播组,若加入则交网络层处理,否则丢弃。

位序:对地址而言,需要解决的一个问题是它们如何表示和传输,因为不同的机器存储比特和字节的方式不同。

802.1委员会制定了一个地址书写的标准格式,即用连字符分隔的6个8位组,每个八位组用两个16进制表示,如: 0 8 - 0 0 - 6 0 - 0 1 - 2 C - 4 A。

字节发送的顺序可以有两种方式,即Little Endian 和 Big Endian两种,小端(Little Endian)形式各个字节按第一个到最后一个(即从左到右)的顺序发送,而每个字节采用小端位序传送。

例如,0 8 - 0 0 - 6 0 - 0 1 - 2 C - 4 A,将按以下顺序(从左向右读)串行地发送:在I E E E 8 0 2 . 3 整个标准中都采用这种约定。

1CSMA/CD算法CSMA/CD(载波监听多路访问/冲突检测)的访问是竞争式的,只对半双工有意义。

载波监听是指发送的站点先要监听线路,如果其它站点在发送,要等到线路空闲为止。

冲突检测是指站点在发送时要监测媒体,从而知道是否有冲突发生。

发送过程:载波侦听 1. 如果介质上有载波, 推迟发送2. 介质上正传送帧传送完后,等一定包间隔时间,开始发送冲突检测 3. 在发送过程中,介质上可能会发生冲突,发送者需检测冲突4. 如果发现冲突, 发送者需发送一段拥塞信息后, 等待一段随机时间(退避),再重复1-4的过程接收过程:接收方收到没有发生冲突的帧后,进行合法性检测,并对目的地址进行匹配,如果为自己的MAC地址,方传递给更高层.CSMA/CD收发过程详细详细描述如下:CSMA/CD发送过程,按以下5个步骤来进行:1.传输前侦听各工作站不断地监视电缆段上的载波。

“载波”是指电缆上的信号,通常由表明电缆正在使用的电压来识别。

如果工作站没有侦听到载波,则它假定电缆空闲并开始传输。

如果在工作站传输时电缆忙(载波升起),则其包将与已在电缆上的信息发生冲突。

2.如果电缆忙则等待为了避免冲突,如果工作站侦听到电缆忙则必须等待。

正确实现的接口卡如果发现电缆忙将不会有意地传输。

延迟时间是工作站试图重传前必须等到线路变成空闲的总时间。

3.传输并检测冲突当介质被清(载波消失)后9.6微秒(us),工作站可以传输。

帧向电缆系统的两个方向传输。

如果同一段上的其它工作站同时传输一个包,则数据包在电缆上将产生冲突。

在电缆上发生冲突的数据包现在仅仅是废数据片。

因此,在传输过程中,工作站应该在电缆段上检测冲突。

冲突由电缆上的信息来识别,当电缆上的信号大于或等于由两个或两个以上的收发器同时传输所产生的信号时,则认为冲突产生。

如果冲突产生,而其它工作站没有发现冲突信息,则它们可能进行传输。

这些工作站将产生另一次的冲突。

为了避免这种情况,发生冲突的工作站用传输“干扰”来确保在电缆上的工作站能够感知到冲突,干扰信息是至少32 位的传输信息,但它不能等于早先所传输报文的CRC值。

产生冲突的工作站的传输计数器加1。

4.如果冲突发生,重传前等待如果工作站在冲突后立即重传,则它第二次传输也将产生冲突。

因此工作站在重传前必须随机地等待一段时间。

为了选择何时去进行重传,工作站实现了一个算法,此算法提供了几个使工作站可以进行重传的时间,该算法被称为“退避算法”。

工作站随机地选择一个他可以使用的时间,这降低了两个或更多个工作站同时重传的机会5.重传或夭折若工作站是在繁忙的电缆段上,即便其数据包没有在电缆段上与其它产生冲突,也可能不能进行传输。

工作站在它必须夭折传输前最多可以有16 次的传输。

相关主题