以太网MAC协议

以太网MAC协议

1位/字节顺序的表示方法

1.1位序

严格地讲,以太网对于字节中位的解释是完全不敏感的。也就是说,以太网并不需要将一个字节看成是一个具有8个比特的数字值。但是为了使位序更容易描述以及防止不兼容,以太网和多数数据通信系统一样,传输一个字节的顺序是从最低有效位(对应于20的数字位)到最高有效位(对应于27的数字位)。另外习惯上在书写二进制数字时,最低值位写在最左面,而最高值位写在最右面。这种写法被称为“小端”形式或正规形式。一个字节可以写成两个十六进制数字,第一个数字(最左边)是最高位数字,第二个(最右边)是最低位数字。

1.2字节顺序

如果所有有定义的数据值都是1字节长,则在介绍完位序后就可以停止了。但是很不幸事实并非如此,所以我们必须面对长于单个字节的域,这些域是以从左到右排列的,以连接符“-”分隔的字节串表示。每个字节包含两个十六进制数字。

多字节域的各个字节按第一个到最后一个(即从左到右)的顺序发送,而每个字节采用小端位序传送。例如,6字节域:

08-00-60-01-2C-4A

将按以下顺序(从左向右读)串行地发送:

0001 0000-0000 0000-0000 0110-1000 0000-0011 0100-0101 0010

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帧包含两个地址字段:目标地址(Destination Address)和源地址(Source Address)。目的地址标识了帧的目的地站点,源地址标识了发送帧的站。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控制子层。并将出现无效帧这一情况报告给网络管理。

5 CSMA/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个站发送的信号叠加时,冲突就

发生了。只有在半双工的模式下,才有可能会发生冲突。冲突说明当前有多个站企图使用共享信道。在全双工模式下,两个站点之间有着点到点的独享信道,不存在冲突。尽管物理层仍然会提供冲突信号,然而在全双工模式下,这个信号被忽略了。

当某个站点开始发送数据时,仅在发送开始的一段时间内可能遭遇到冲突,这个时间段被称为冲突窗口(collision window)。这是由于信号在媒体上传播也需要时间,冲突窗口就是发送站点的信号传遍冲突域所需的时间。这是一个很重要的参数,以太网取传输512bit数据所用时间为争用期的长度。需要指出,以太网的端到端时延实际上是小于争用期的一半的,争用期被规定为传输512bit所用时间,不仅是考虑了以太网的端到端时延,而且还包括其它的许多因素,如可能存在的转发器所增加的时延,以及强化冲突的干扰信号的持续时间等。一般以太网的冲突多为发生在冲突窗口内。

一旦冲突发生,物理层会监测到干扰信号,于是冲突监测信号被置1。在半双工模式下,发送模块的接入管理模块响应这一信号,冲突处理机制开始执行。首先,该模块会发送一系列被称为冲突强化的信息,确保其他的站点也能得知冲突的发生,强化冲突过后,发送端终止当前发送,并等待一个随机的时间重新尝试发送。重新发送同样也有可能遭遇到冲突,最终的结果有两个,一是发送成功,二是达到了重传的数量上限,发送失败。

在全双工模式下,发送站点忽略物理层的冲突信号,站点随时可以发送帧而不会有冲突发生,所以不需要强化冲突和重传机制。

5.1.4退避算法以及重传

以太网使用截断二进制指数回退算法来解决冲突后的重发问题。截断二进制指数回退算法很简单,就是让发生冲突的站点在停止发送数据后,不是立刻重发,而是推迟一个随机的时间。这样就使得重发时再次发生冲突的概率减小。具体的算法是:

(1)确定单位回退时间,通常是取冲突窗口的值,即传输512bit数据所需时间,称为时槽。

(2)定义参数k,它等于重传次数,但不超过10,因此k=min (n, 10)。

(3)取r满足0≤r <2 k。重传的时延就是r倍的时槽。

(4)当重传达到16次仍不能成功时(这表明同时打算发送数据的站点过多,导致连续发生冲突),则丢弃该帧,并向上层协议报告。

使用以上的回退算法可使重传需要推迟的平均时间随重传次数增加而增加,这也被称为动态退避,有利于整个系统的稳定。

5.2帧的接收

在接收端,站监视信道以获得帧到达的指示。当发现信道变成非空闲状态时,

站开始从信道接收比特,并查找标志MAC帧起始的前导码(preamble)和帧起始定界符(SDF)。站连续接收比特直到收到底层信道发出的帧结束指示。

如果收到的帧长度比一个时隙的长度小,接收方的MAC将丢弃掉该帧。这是因为根据定义,有效帧的长度总是比时槽长(它等于往返信道传播延时)。因此这样的帧段肯定是冲突的产物。接收方根据此原理即可检测并丢弃冲突段,而不需要物理信道的冲突检测指示或无效CRC校验指示。

如果收到的帧满足最小长度要求,则接着进行CRC校验。如果收到帧的CRC 值不正确,就丢弃掉该帧。假设一个长度有效的帧具有有效的CRC值,接收方将检查目的地址以查看其是否是如下三者之一:

(1)单播地址,帧的目的地址与接收站点的MAC地址相同

(2)组播地址,上层协议定义一些特殊的地址作为多播地址,帧中的目的地址包含组播地址。

(3)广播地址,目的地址为全1的地址。

如果这些地址表明帧确实是以该站为目的地,MAC将把帧传递到其客户方,并返回到开头,重新等待新到达的帧。

6以太网流量控制

6.1以太网流量控制需求

以太网(实际上包括所有其他LAN技术)本质上是无连接的。这样就没有虚电路的概念,帧传输的可靠性也没有什么保证。帧无错传输的概率是很高的,但是无法保证绝对正确。在数据位出错、接收器的缓冲区不能满足或其他异常情况下,以太网接收器会简单地丢弃帧,而不给出任何提示。因此以太网接口的成本可以很低。无连接的系统比较容易实现,而在数据链路层中包括错误恢复和流量控制机制的系统,实现起来要复杂得多。LAN上数据位出错的可能性非常小。这个数字对于数据链路层已经低到可以忽略不计的地步,并且可以满足高层协议或应用的可靠数据传输需要。然而,帧缓冲不可使用产生的丢帧与位出错而丢帧结果是一样的。这两种情况下,帧都无法传送到接收方,数据链路层也不会收到出错指示。缓冲拥塞造成丢帧的可能性要远远大于位出错,特别是在高数据率下或网络互连设备(如交换机)中。最初的以太网没有提供任何流量控制机制,即保证发送者的发送速度不会比接收者可接收的速度更快的机制。当网络由通信端站组成时,这样的机制通常可由高层协议提供。随着透明网桥(交换机)的出现,发送者可能不知道帧的直接接收者是谁。也就是说,交换机不需要接入站的信息和参与,就可以代表它们接收和转发帧。如果没有能提供流量控制的协议,就可能由于交换机缓冲区拥塞而丢失过多的帧。

6.1.1半双工网络的后退压力

当交换机端口连接到共享式LAN半双工网络)时上,那么就可能通过改变

MAC算法的行为,抢在将要到来的数据之前采取某种动作,来阻止发送者发送它们的数据。这就称为背压(backpressure)。在CSMA/CD LAN中,有两种方法可用来防止交换机的输入缓冲区溢出:

1)强行与将要到达的帧发生冲突。表面上看,这是一个合理的策略,冲突将使发送站重新传送该帧。这确实能像设想的那样防止缓冲区溢出,但不幸的是,存在一些不利影响:

·发送站可能阻塞太多,导致系统实际吞吐量要比可用吞吐量低(即,在信道上有不必要的空闲时间)。这是因为冲突使站产生指数级增长的后退时间。在这段较长的时间里,交换机也同时把缓冲的数据转移到输出端口上,因此交换机的输入缓冲区很可能已经可用了。即使队列被清空了信道也将一直空闲,直到后退计时器超时。

·若交换机输入缓冲区持续拥塞,站中的待发帧可能要经历连续16次的冲突与重发。如果16次发送都不成功,则按照MAC算法,站将丢弃该帧,并把该帧作为错误向站管理程序报告。对于高层协议而言,这与交换机丢失帧是一样的。这种情况和前面讨论的情况有一样的超时过长与性能降低问题,只不过是发生在持续拥塞的条件下。

·管理计数器与统计资料除了表明有“过多的冲突错误”之外,还将显示很高的冲突次数。网络管理人员会认为该网络出现了某些严重的错误。“正常的”以太网不会有极高的冲突率或过多的冲突错误。后一种情况特别表明了网络系统出现了问题,需要重新进行配置。

2)使信道看起来处于忙状态。这种方法使用“拖延”策略而不是以太网MAC 的冲突后退策略。只要站发现信道忙(载波侦听判断),它将延迟传输。然而,它不增加后退延迟时间,而且该帧保留在队首,并且不管拖延的时间有多长,该帧都不会被丢弃。这种方法比强迫冲突法要优越。

让共享式LAN接入站的载波侦听作出“信道忙”判断是比较容易的;只要把构造好的数据比特串放在连接交换机和站的以太网上就可以了。最简单的方法是,在交换机遭遇拥塞而想要阻塞供应负载时,生成一段前导码,把它放到需要的输入端口上。这段前导码的结尾绝对不能是帧起始定界符,这保证接收站不会把它解释为一个真正的帧。

上述方法可以在任何必要的时候使用。这将完全消除强迫冲突并且没有严重的不利影响。唯一的问题是如果这段前导码的发送时间超过20ms,标准的10Mb/s 收发器会作出“过长发送控制”(jabber control)的判断(使它们的传输功能失效)。而在100Mb/s和1000Mb/s系统中,就完全不会出现这样的问题。

6.1.2全双工网络中的显式流量控制

在全双工以太网中,无论是伪载波侦听,还是强迫冲突算法都不能工作。全

双工以太网接口不检测冲突,并且忽略可延迟传送的载波侦听。全双工网络需要显式的流量控制机制,使交换机能够阻塞处于拥塞状态的站。为了实现这个目标,开发了为全双工以太网流量控制的标准算法(IEEE802. 3x)。

6.2 MAC控制

。。。。。。p57

6.2.1 MAC控制层的结构

MAC控制是数据链路层的一个子层。它是介于传统以太网MAC层和MAC 客户之间的可选功能。客户可以是网络层协议(如IP)或数据链路层内部实现转发功能的网桥(交换机)。如果MAC的客户不知道或不关心MAC控制提供的功能,则这个子层就“消失”了;就像这个MAC控制子层不存在一样,正常的发送和接收数据流会经过MAC与MAC控制子层的客户交互。对MAC控制敏感的客户(如需要防止缓冲区溢出的交换机),可以利用这个子层来控制底层以太网MAC 的操作。特别是,它可以请求全双工链路另一端的MAC停止进一步传送数据,因而防止将要发生的溢出。MAC控制的层次结构如下图所示:

OSI参考模型层

图MAC控制在OSI参考模型中的位置

一旦对MAC控制敏感的上层发出了控制请求,则MAC控制层会产生控制帧。这些控制帧将被送往发送模块发送;同样,接收模块接收到其他站点发送的控制帧并把它们交给MAC控制子层中的相应模块处理。因此在以太网上普遍的MAC客户数据帧中将会夹杂一些MAC控制帧。

在MAC控制出现以前,在以太网上传送的每一个帧都是由上层协议提供,交由数据收发模块发送和接收,然而MAC控制帧与它们不同的是,控制帧的产生和处理都是在数据链路层内完成的。在接收到控制请求后,MAC控制层将控制帧插入到发送队列中发送,当接收到控制帧时,控制帧在MAC控制层内被解封,控制帧本身不交往上层协议处理。

6.2.2 MAC控制帧格式

MAC控制帧是正规、合法的MAC帧,拥有正常的MAC帧的所有字段,并且采用同样的算法发送。除了长度/类型字段外,MAC控制帧在结构上与数据帧完全一样。MAC控制帧的长度都恰好是以太网帧的最小长度——64字节,不包

括前导码和帧起始定界符。MAC控制帧的格式如下图:

图MAC控制帧格式

MAC控制帧区别于普通数据帧之处在于其长度/类型字段的值为0x8808,该值是专门为控制帧保留的。在MAC控制帧的数据字段中,前2个字节代表MAC 控制操作码,用于表示接收到该控制帧的站点需要做何种操作,目前只定义了一种操作代码,即随后讨论的全双工中的暂停操作(PAUSE),它的代码为0x0001。操作代码后面的域是该操作所需的参数。如果该参数不足44字节的长度,那么剩下的空间将用0来填充。

6.3 PAUSE功能

PAUSE功能用来在全双工以太网链路上实现流量控制。PAUSE操作是用MAC控制体系结构及帧格式实现的。目前该操作只工作于单个的全双工链路。也就是说,他不能用于共享式(半双工)LAN,也不能用于需要跨越交换机的链路。可用它来控制下列设备之间的数据帧流:

(1)一对端站(简单的两站网络)。

(2)一个交换机和一个端站。

(3)交换机到交换机链路。

在交换机或站中增加PAUSE功能,是为了当瞬时过载导致缓冲区溢出时防止不必要的帧丢弃。假设一个设备设计用来处理网络上恒稳状态的数据传输,并允许随时间变化有一定数量的过载。PAUSE功能可使这样的设备在负载增长暂时超过其设计水平时,不会发生丢帧现象。该设备通过向全双工链路的另一端发送PAUSE帧,来防止自己的内部缓冲区溢出。另一端设备在接收到PAUSE帧后,就停止发送数据帧。这将使第一个设备有时间来减少自己的缓冲拥塞它可以处理掉缓冲队列中发给自己的帧(站操作),或者把帧转发到其他的端口(交换机操作)。

6.3.1 PAUSE操作概述

PAUSE操作实现了一种简单的“停-起”形式的流量控制。如果某个设备(站或交换机)想阻止帧到来,它可以发送一个带有参数的PAUSE帧,该参数指明了全双工中的另一方在开始继续发送数据前需要等待的时间。当另一个站接收到PAUSE帧后,将在指定的时间内停止发送数据。当这个时间超时后,该站将从暂停的位置继续发送数据帧。PAUSE帧能禁止发送数据帧,但它不影响MAC 控制帧的发送(例如,从另一个方向到来的PAUSE帧)。

已发送了PAUSE指令的站,可以再发送一个时间参数为0的PAUSE 帧

取消剩余的暂停时间。即新收到的PAUSE帧将覆盖掉当前执行的PAUSE操作。类似地,该站也可以在前一个PAUSE时间还未结束时,发出另一个包含非零时间参数的帧延长暂停时间。

因为PAUSE操作使用标准的以太网MAC,所以不能保证接收者一定能收到帧。PAUSE帧也可能出问题,而使接收者可能不知道曾发出了这样的帧。在设计PAUSE传输策略时必须考虑这样的问题。

6.3.2 PAUSE帧的语义

由于目前控制帧的内同只有暂停一种,MAC控制帧也被称为PAUSE帧,其包含的前导码、帧起始定界符和FCS字段的格式和含义与普通MAC数据帧一样,其余字段的格式虽然和数据帧没有区别,但是内容却有一些区别:

(1)目的地址

目的地址就是PAUSE帧所要发往站点的地址。它总是包含一个为PAUSE 帧保留的唯一的组播地址01-80-C2-00-00-01。

既然PAUSE功能只用于全双工的链路上,而全双工链路的一个前提就是一个链路上只有2个站点,那么PAUSE帧的目的地无疑就是链路另一端的站点,下面将解释为什么PAUSE帧的目的地址需要指定,并且还是一个组播地址:·如果因为配置错误,PAUSE帧被不经意地发送到共享式LAN上,使用特定的组播地址可以保证接收并解释这些帧的是那些真正懂得PAUSE协议的站(即,地址是专门为这个目的而保留的)。

·使用组播地址,就可以使PAUSE帧的发送者不必知道链路另一端的唯一地址。虽然高层协议很可能知道这个地址,但数据链路层没有必要知道。

·这个精心挑选的组播地址是特殊保留地址组中的一个,所有标准的网桥和交换机都会阻塞(吸收)这组地址。交换机不会把发往这些地址的帧转发到其他的端口,这使得PAUSE帧只在与其相关单全双工链路上使用。

(2)源地址

源地址字段包含发出PAUSE帧站点的MAC地址。尽管控制帧只能有链路上的一个站点发出,设定源地址貌似没有必要,但是在帧中包含一个源地址还是有以下的用途:

·可与其他所有类型以太网帧保持一致(即所有以太网帧的源地址都包含了发送站的唯一地址)

·可正确地更新监控设备上的管理记数器,这些设备可能一直跟踪记录每个站产生的帧。

·如果由于错误配置,PAUSE帧被不小心地发送到共享式LAN上,可以容易地确定发送者。

(3)类型域

类型域包含了所有MAC控制帧使用的保留值:0x8808。

(4)数据域(包含MAC控制操作码和操作参数)

PAUSE帧的控制操作码是0x0001。

PAUSE帧只带有一个操作参数,被称为暂停时间(Pause-time)。该参数是2字节长的无符号整型值,表示发送方请求接收方停止发送数据帧的时间长度。暂停时间以512bit时间为单位计算,即接收方需要实际暂停的时间为Pause-time 乘以用当前数据率传输512比特的时间。

使用与传输速率相关的暂停时间而不是使用实际时间,有以下2个原因:(1)当以这种方式设定PAUSE操作时,可以认为是让发送者暂停发送与速率无关的若干比特,而不是暂停一段指定的时间。由于使用PAUSE功能的初衷是实现内存容量有限的交换机,当网络接口只剩下一定比特量的缓冲时,它发送一个PAUSE帧,并以剩下的比特量作为该帧的Pause-time参数,而不考虑使用什么样的速率。这可以简化某些设计。

(2)在半双工以太网中,冲突后退计数器的时间度量以时隙为增量。除1000Mb/s以外,所有数据速率的时隙都是传输512比特的时间。因为PAUSE 功能只能用于全双工链路,这个计数器(如果实现了的话)不再用于后退定时,因此可用它来做PAUSE定时,不需改变。

6.4流量控制的策略

为全双工链路流量控制提供的PAUSE机制只是一个工具。协议规范中定义了在发送和接收PAUSE帧时发生了什么动作,但没有说明设备何时应该进行流量控制以及何时恢复流量。下面将讨论实际实现的这些流量控制策略(flow control policy)问题。

流量控制的典型实现是在交换机中防止缓冲区溢出。它使交换机在不降低吞吐量的情况下,能够容纳平均水平的流量,同时还可防止短暂过载造成的丢帧,所有这些都不需要巨大的缓冲内存。这样的交换机,工作情况良好,成本并不昂贵,并可以适应各种流量变化。

(1)缓冲区阀值

一般的交换机为每个端口(输入队列)配置了一定数量的输入缓冲区。在交换机输出端口或交换结构接收某个帧之前,该帧一直保留在这个队列中。如图3. 7所示。

从网络

上来的帧

电路的帧

图输入缓冲

根据流量模式和提供给交换机的总负载,帧在这个队列中经历了一段延时,等待上载。在此期间,同一个端口上接收了更多的帧,从而使队列饱和。合理的流量控制策略应该在缓冲区达到预先定义的“高水位”(high water mark)时,发送一个带有非零Pause-time值的PAUSE帧,使交换机能够防止由于缓冲区不足而在输入端丢弃帧。当链路伙伴收到了PAUSE帧并阻塞时,交换机可以从这个输入队列中上载帧,并把它们转发到交换机的其他端口。当缓冲区中的帧少于预定义的“低水位标记”(low water mark)时,可通过发送带有0值Pause- time的PAUSE帧取消流量控制,并恢复正常操作。这样交换机可以不丢弃任何帧并达到最大容量。

高水位应该这样设置:在水位之上尚存在足够大的可用缓冲,它可以满足流水线中附加流量的需要。这个高水位与数据率、介质类型以及链路长度有关。类似地,为了避免缓冲区空闲,在低水位之下应该留有足够的空间,使得在缓冲区完全清空之前有帧到达。因为影响低水位的唯一因素只有PAUSE帧传输时间(512比特)、解码时间(512或1024比特)以及链路往返传播延迟,所以低水位之下的空间要比高水位之上的空间要小。至于溢出的情况,没有最长帧时间问题,因为根据定义在链路伙伴暂停发送期间不会有帧发送。

(2)PAUSE时间的选取

实现者需要选择PAUSE帧中的Pause-time应取什么样的值,它与采用的流

量控制策略有关。实际上,在队列超过高水位时使用0xFFFF的Pause-time,而在队列低于低水位标记时使用0x0000,是一种相当可以接受的方法。因此,不需要任何启发式策略给Pause-time选取一个最优值。不同的流量控制策略可能通过仔细选择暂停时间来优化性能。

很重要的一点是,链路不能无限期地进行流量控制。高层协议可能依赖于在网络上传送的某些帧。如果出现长时间的流量控制,它们可能认为连接超时,并断开虚电路等等。特别是,生成树协议状态机(用来维护网桥/交换机式网络的无环路拓朴)的定时器将超时,因而会重新计算生成树并导致拓扑结构发生变化。(3)对不可靠传递的对策

PAUSE帧能否传送到链路伙伴是无法保证的。它与链路上其他的帧具有相同的差错特性(虽然在一个良好的实现中,它们不会因为缓冲区不可用而丢失)。PAUSE帧发送方可以显式地处理这个问题,例如多次发送PAUSE帧。另一种方法是:流量控制机制并不总能工作,可以忽略PAUSE帧的丢失问题,把它当成一个普通帧看待,即它服从链路固有的帧丢失率。

无论如何,如果PAUSE帧未能成功传递,可能发生的最坏的情况是:流量控制没有进行,帧将被丢弃。这并不比链路上没有流量控制更糟糕。因为在这种情况下,高层协议和应用一定己经考虑了LAN上失帧的可能性。虽然性能可能明显下降,但维护了传递的正确性,应用能够相对正常地工作。假设PAUSE帧由于暂时的错误而丢失,系统应该能够迅速恢复到正常操作(包括流量控制),并保持无错的传送。

MAC帧格式分析与应用

IEEE 802.3 MAC帧格式的分析与应用 学生姓名:学号:指导老师: 摘要本文介绍了IEEE802.3标准中规定的两种以太网帧格式,基本帧格式和扩展帧格式。得出以下结论,IEEE802.3-2005基本帧格式,主要由前导、SDF、DA、SA、Length/Type、DATA、Pad、FCS等8部分组成,还可增添4字节的扩展部分,其总长度为64-1518字节。扩展帧格式在基本帧格式上增加了“802.1Q TAG”类型和TCI字段,可实现对用户优先级和VLAN加标帧的控制。 关键词 IEEE 802.3 基本帧格式扩展帧格式 Abstract This essay introduces two different kinds of Ethernet MAC frame,the basic and Q-tagged. We concluded that,the basic MAC frame of IEEE 802.3-2005,whose length is 64-1518 bytes, are mainly consisted of by 8 parts,including Preabmle, SDF,DA,SA,Length/Type,Data,Pad,FCS, and additional part,sized 4 bytes. While, the Q-tagged frame adds another two parts on the bisas of the basic one, that is ‘802.1Q TAQ’ and ‘TCI’, whose fuction are dividually to control the VLAN Tagged Frame and the user’s priority. Keyword IEEE 802.3 Basic Frame Q-tagged Frame

以太网帧格式

以太网帧格式 百科名片 现在的以太网帧格式 以太网帧格式,即在以太网帧头、帧尾中用于实现以太网功能的域。目录

编辑本段 编辑本段历史分类 1.Ethernet V1 这是最原始的一种格式,是由Xerox PARC提出的3Mbps CSMA/CD以太网标准的封装格式,后来在1980年由DEC,Intel和Xerox标准化形成Ethernet V1标准. 2.Ethernet V2(ARPA) 由DEC,Intel和Xerox在1982年公布其标准,主要更改了Ethernet V1的电气特性和物理接口,在帧格式上并无变化;Ethernet V2出现后迅速取

代Ethernet V1成为以太网事实标准;Ethernet V2帧头结构为6bytes的源地址+6bytes的目标地址+2Bytes的协议类型字段+数据。 以太网帧格式 3.RAW 802.3 这是1983年Novell发布其划时代的Netware/86网络套件时采用的私有以太网帧格式,该格式以当时尚未正式发布的802.3标准为基础;但是当两年以后IEEE正式发布802.3标准时情况发生了变化—IEEE在802.3帧头中又加入了802.2 LLC(Logical Link Control)头,这使得Novell的RAW 802.3格式跟正式的IEEE 802.3标准互不兼容. 4.802.3/802.2 LLC 这是IEEE 正式的802.3标准,它由Ethernet V2发展而来。它将Ethernet V2帧头的协议类型字段替换为帧长度字段(取值为0000-05dc;十进制的1500);并加入802.2 LLC头用以标志上层协议,LLC头中包含DSAP,SSAP以及Crontrol字段. 5.802.3/802.2 SNAP 这是IEEE为保证在802.2 LLC上支持更多的上层协议同时更好的支持IP协议而发布的标准,与802.3/802.2 LLC一样802.3/802.2 SNAP也带有LLC头,但是扩展了LLC属性,新添加了一个2Bytes的协议类型域(同时将SAP的值置为AA),从而使其可以标识更多的上层协议类型;另外添加了一个3Bytes的OUI字段用于代表不同的组织,RFC 1042定义了IP报文在802.2网络中的封装方法和ARP协议在802.2 SANP中的实现. 802.3以太网帧格式备注: 前导码(7字节)、帧起始定界符(1字节)、目的MAC地址(6字节)、源MAC地址(6字节)、类型/长度(2字节)、数据(46~1500字节)、帧校验序列(4字节)[MAC地址可以用2-6字节来表示,原则上是这样,实际都是6字节] 图2 IEEE802.3以太帧头

实验3分析mac帧格式

实验3 分析MAC帧格式 实验目的 1.了解MAC帧首部的格式; 2.理解MAC帧固定部分的各字段含义; 3.根据MAC帧的内容确定是单播,广播。 实验设备 Winpcap、Wireshark等软件工具 相关背景 1.据包捕获的原理:为了进行数据包,网卡必须被设置为混杂模式。在现实的网络环境中,存在着许多共享式的以太网络。这些以太网是通过Hub 连接起来的总线网络。在这种拓扑结构的网络中,任何两台计算机进行通信的时候,它们之间交换的报文全部会通过Hub进行转发,而Hub以广播的方式进行转发,网络中所有的计算机都会收到这个报文,不过只有目的机器会进行后续处理,而其它机器简单的将报文丢弃。目的机器是指自身MAC 地址与消息中指定的目的MAC 地址相匹配的计算机。网络监听的主要原理就是利用这些原本要被丢弃的报文,对它们进行全面的分析,这样就可以得到整个网络中信息的现状。 2.Tcpdump的简单介绍:Tcpdump是Unix平台下的捕获数据包的一个架构。Tcpdump最初有美国加利福尼亚大学的伯克利分校洛仑兹实验室的Van Jcaobson、Craig Leres和 Steve McCanne共同开发完成,它可以收集网上的IP数据包文,并用来分析网络可能存在的问题。现在,Tcpdump已被移植到几乎所有的UNIX系统上,如:HP-UX、SCO UNIX、SGI Irix、SunOS、Mach、Linux 和FreeBSD等等。更为重要的是Tcpdump是一个公开源代码和输出文件格式的软件,我们可以在Tcpdunp的基础上进行改进,加入辅助分析的功能,增强其网络分析能力。(详细信息可以参看相关的资料)。 3.Winpcap的简单介绍:WinPcap是由意大利Fulvio Risso和Loris Degioanni等人提出并实现的应用于Win32 平台的数据包捕获与分析的一种软件包,包括内核级的数据包监听设备驱动程序、低级动态链接库和高级系统无关库,其基本结构如图3-1所示:

以太网的帧结构

以太网的帧结构 要讲帧结构,就要说一说OSI七层参考模型。 一个是访问服务点,每一层都对上层提供访问服务点(SAP),或者我们可以说,每一层的头里面都有一个字段来区分上层协议。 比如说传输层对应上层的访问服务点就是端口号,比如说23端口是telnet,80端口是http。IP层的SAP是什么? 其实就是protocol字段,17表示上层是UDP,6是TCP,89是OSPF,88是EGIRP,1是ICMP 等等。 以太网对应上层的SAP是什么呢?就是这个type或length。比如 0800表示上层是IP,0806表示上层是ARP。我 第二个要了解的就是对等层通讯,对等层通讯比较好理解,发送端某一层的封装,接收端要同一层才能解封装。 我们再来看看帧结构,以太网发送方式是一个帧一个帧发送的,帧与帧之间需要间隙。这个叫帧间隙IFG—InterFrame Gap IFG长度是96bit。当然还可能有Idle时间。 以太网的帧是从目的MAC地址到FCS,事实上以太网帧的前面还有preamble,我们把它叫做先导字段。作用是用来同步的,当接受端收到 preamble,就知道以太网帧就要来了。preamble 有8个字节前面7个字节是10101010也就是16进制的AA,最后一个字节是 10101011,也就是AB,当接受端接受到连续的两个高电平,就知道接着来的就是D_mac。所以最后一个字节AB我们也叫他SFD(帧开始标示符)。 所以在以太网传输过程中,即使没有idle,也就是连续传输,也有20个字节的间隔。对于

大量64字节数据来说,效率也就显得不 1s = 1,000ms=1,000,000us 以太网帧最小为64byte(512bit) 10M以太网的slot time =512×0.1 = 51.2us 100M以太网的slot time = 512×0.01 = 5.12us 以太网的理论帧速率: Packet/second=1second/(IFG+PreambleTime+FrameTime) 10M以太网:IFG time=96x0.1=9.6us 100M以太网:IFG time=96x0.01=0.96us 以太网发送方式是一个帧一个帧发送的,帧与帧之间需要间隙。这个叫帧间隙IFG—InterFrame Gap 10M以太网:Preamble time= 64bit×0.1=6.4us 100M以太网:Preamble time= 64bit×0.01=0.64us Preamble 先导字段。作用是用来同步的,当接受端收到preamble,就知道以太网帧就要来了 10M以太网:FrameTime=512bit×0.1=51.2us 100M以太网:FrameTime=512bit×0.01=5.12us 因此,10M以太网64byte包最大转发速度=1,000,000 sec÷(9.6+6.4+51.2)= 0.014880952Mpps 100M以太网64byte包最大转发速度=1,000,000 sec÷(0.96+0.64+5.12)= 0.14880952Mpps

实验3 分析MAC帧格式分析

实验3 分析MAC帧格式 3.1 实验目的 1.了解MAC帧首部的格式; 2.理解MAC帧固定部分的各字段含义; 3.根据MAC帧的内容确定是单播,广播。 3.2 实验设备 Winpcap、Wireshark等软件工具 3.3 相关背景 1.据包捕获的原理:为了进行数据包,网卡必须被设置为混杂模式。在现实的网络环境中,存在着许多共享式的以太网络。这些以太网是通过Hub 连接起来的总线网络。在这种拓扑结构的网络中,任何两台计算机进行通信的时候,它们之间交换的报文全部会通过Hub进行转发,而Hub以广播的方式进行转发,网络中所有的计算机都会收到这个报文,不过只有目的机器会进行后续处理,而其它机器简单的将报文丢弃。目的机器是指自身MAC 地址与消息中指定的目的MAC 地址相匹配的计算机。网络监听的主要原理就是利用这些原本要被丢弃的报文,对它们进行全面的分析,这样就可以得到整个网络中信息的现状。 2.Tcpdump的简单介绍:Tcpdump是Unix平台下的捕获数据包的一个架构。Tcpdump最初有美国加利福尼亚大学的伯克利分校洛仑兹实验室的Van Jcaobson、Craig Leres和Steve McCanne共同开发完成,它可以收集网上的IP数据包文,并用来分析网络可能存在的问题。现在,Tcpdump已被移植到几乎所有的UNIX系统上,如:HP-UX、SCO UNIX、SGI Irix、SunOS、Mach、Linux和FreeBSD等等。更为重要的是Tcpdump是一个公开源代码和输出文件格式的软件,我们可以在Tcpdunp的基础上进行改进,加入辅助分析的功能,增强其网络分析能力。(详细信息可以参看相关的资料)。 3.Winpcap的简单介绍:WinPcap是由意大利Fulvio Risso和Loris Degioanni等人提出并实现的应用于Win32 平台的数据包捕获与分析的一种软件包,包括内核级的数据包监听设备驱动程序、低级动态链接库(Packet.dll)和高级系统无关库(Winpcap.dll),其基本结构如图3-1所示:

以太网帧格式 EthernetⅡ和ETHERNET 802.3 IEEE802.2.SAP和SNAP的区别

EthernetⅡ/ETHERNET 802.3 IEEE802.2.SAP/SNAP的区别 1.Ethernet V1:这是最原始的一种格式,是由Xerox PARC提出的3Mbps CSMA/CD 以太网标准的封装格式,后来在1980年由DEC,Intel和Xerox标准化形成Ethernet V1标准; 2.Ethernet V2(ARPA): 这是最常见的一种以太网帧格式,也是今天以太网的事实标准,由DEC,Intel 和Xerox在1982年公布其标准,主要更改了Ethernet V1的电气特性和物理接口,在帧格式上并无变化;Ethernet V2出现后迅速取代Ethernet V1成为以太网事实标准;Ethernet V2帧头结构为6bytes的源地址+6bytes的目标地址 +2Bytes的协议类型字段+数据。 常见协议类型如下: 0800 IP 0806 ARP 8137 Novell IPX 809b Apple Talk 如果协议类型字段取值为0000-05dc(十进制的0-1500),则该帧就不是Ethernet V2(ARPA)类型了,而是下面讲到的三种802.3帧类型之一;Ethernet可以支持TCP/IP,Novell IPX/SPX,Apple Talk Phase I等协议;RFC 894定义了IP报文在Ethernet V2上的封装格式; Ethernet_II中所包含的字段:

在每种格式的以太网帧的开始处都有64比特(8字节)的前导字符,如图所示。其中,前7个字节称为前同步码(Preamble),内容是16进制数0xAA,最后1字节为帧起始标志符0xAB,它标识着以太网帧的开始。前导字符的作用是使接收节点进行同步并做好接收数据帧的准备。 ——PR:同步位,用于收发双方的时钟同步,同时也指明了传输的速率(10M和100M的时钟频率不一样,所以100M网卡可以兼容10M网卡),是56位的二进制数101010101010..... ——SD: 分隔位,表示下面跟着的是真正的数据,而不是同步时钟,为8位的10101011,跟同步位不同的是最后2位是11而不是10. ——DA:目的地址,以太网的地址为48位(6个字节)二进制地址,表明该帧传输给哪个网卡.如果为FFFFFFFFFFFF,则是广播地址,广播地址的数据可以被任何网 卡接收到. ——SA:源地址,48位,表明该帧的数据是哪个网卡发的,即发送端的网卡地址, 同样是6个字节. ----TYPE:类型字段,表明该帧的数据是什么类型的数据,不同的协议的类型字段不同。如:0800H 表示数据为IP包,0806H 表示数据为ARP包,814CH是SNMP 包,8137H为IPX/SPX包,(小于0600H的值是用于IEEE802的,表示数据包的长度。) ----DATA:数据段,该段数据不能超过1500字节。因为以太网规定整个传输包的最大长度不能超过1514字节。(14字节为DA,SA,TYPE) ----PAD:填充位。由于以太网帧传输的数据包最小不能小于60字节, 除去(DA,SA,TYPE 14字节),还必须传输46字节的数据,当数据段的数据不足46字节时,后面补000000.....(当然也可以补其它值) ----FCS:32位数据校验位.为32位的CRC校验,该校验由网卡自动计算,自动生成,自动校验,自动在数据段后面填入.对于数据的校验算法,我们无需了解. ----事实上,PR,SD,PAD,FCS这几个数据段我们不用理它 ,它是由网卡自动产生的,我们要理的是DA,SA,TYPE,DATA四个段的内容.

以太网帧格式

以太网帧格式详解: Etherne II 报头8 目标地址6 源地址6 以太类型2 有效负载46-1500 帧检验序列4 报头:8个字节,前7个0,1交替的字节(10101010)用来同步接收站,一个1010101011字节指出帧的开始位置。报头提供接收器同步和帧定界服务。 目标地址:6个字节,单播、多播或者广播。单播地址也叫个人、物理、硬件或MAC地址。广播地址全为1,0xFF FF FF FF。 源地址:6个字节。指出发送节点的单点广播地址。 以太网类型:2个字节,用来指出以太网帧内所含的上层协议。即帧格式的协议标识符。对于IP报文来说,该字段值是0x0800。对于ARP信息来说,以太类型字段的值是0x0806。 有效负载:由一个上层协议的协议数据单元PDU构成。可以发送的最大有效负载是1500字节。由于以太网的冲突检测特性,有效负载至少是46个字节。如果上层协议数据单元长度少于46个字节,必须增补到46个字节。 帧检验序列:4个字节。验证比特完整性。 IEEE 802.3 根据IEEE802.2 和802.3标准创建的,由一个IEEE802.3报头和报尾以及一个802.2LLC报头组成。 报头7 起始限定符1 目标地址6(2)源地址6(2)长度2 DSAP1 SSAP1 控件2 有效负载3 帧检验序列4 -----------802.3报头--------------§- --802.2报头----§ §-802.3报尾-§

IEEE802.3报头和报尾 报头:7个字节,同步接收站。位序列10101010 起始限定符:1个字节,帧开始位置的位序列10101011。 报头+起始限定符=Ethernet II的报头 目标地址:同Ethernet II。也可以为2个字节,很少用。 源地址:同Ethernet II。也可以为2个字节,很少用。 长度:2个字节。 帧检验序列:4个字节。 IEEE802.2 LLC报头 DSAP:1个字节,指出帧的目标节点的上层协议。Destination Service Access Point SSAP:1个字节,指出帧的源节点的上层协议。Source Service Access Point DSAP和SSAP相当于IEEE802.3帧格式的协议标识符。为IP定义的DSAP和SSAP 字段值是0x06。但一般使用SNAP报头。 控件:1-2个字节。取决于封装的是LLC数据报(Type1 LLC)还是LLC通话的一部分(Type2 LLC)。 Type1 LLC:1个字节的控件字段,是一种无连接,不可靠的LLC数据报。无编号信息,UI帧,0x03。 Type2 LLC:2个字节的控件字段,是一种面向连接,可靠的LLC对话。 对IP和ARP,从不使用可靠的LLC服务。所以,都只用Type1 LLC,控件字段设为0x03。 区分两种帧 根据源地址段后的前两个字节的类型不同。 如果值大于1500(0x05DC),说明是以太网类型字段,EthernetII帧格式。值小于等于1500,说明是长度字段,IEEE802.3帧格式。因为类型字段值最小的是0x0600。而长度最大为1500。 IEEE802.3 SNAP 虽然为IP定义的SAP是0x06,但业内并不使用该值。RFC1042规定在IEEE802.3, 802.4, 802.5网络上发送的IP数据报和ARP帧必须使用SNAP(Sub Network Access Prototol)封装格式。 报头7 起始限定符1 目标地址6 源地址6 长度2 DSAP1 SSAP1 控件1 组织代码3 以太类型2 IP数据报帧检验序列 ----IEEE802.3报头-----------§IEEE8023 LLC报头---§--SNAP报头----§ §802.3报尾§ 0x0A 0x0A 0x03 0x00-00-00 0x08-00 (38-1492字节) Ethernet地址 为了标识以太网上的每台主机,需要给每台主机上的网络适配器(网络接口卡)分配一个唯一的通信地址,即Ethernet地址或称为网卡的物理地址、MAC 地址。 IEEE负责为网络适配器制造厂商分配Ethernet地址块,各厂商为自己生产的每块网络适配器分配一个唯一的Ethernet地址。因为在每块网络适配器出厂时,其Ethernet地址就已被烧录到网络适配器中。所以,有时我们也将此地址称为烧录地址(Burned-In-Address,BIA)。

计算机网络实验报告(以太网帧格式分析)

计算机网络实验报告 学院计算机与通信工程学院专业网络工程班级1401班 学号20姓名实验时间:2016.5.13 一、实验名称: FTP协议分析实验 二、实验目的: 分析FTP 报文格式和FTP 协议的工作过程,同时学习 Serv-U FTP Server服务软件的基本配置和FTP 客户端命令的使用。 三、实验环境: 实验室局域网中任意两台主机PC1,PC2。 四、实验步骤及结果: 步骤1:查看实验室PC1和PC2的IP地址,并记录,假设PC1的IP 地址为10.64.44.34,PC2的IP地址为10.64.44.35。 步骤2:在PC1上安装Serv-U FTP Server,启动后出现图1-20所示界面。 点击新建域,打开添加新建域向导,完成如下操作。 添加域名:https://www.360docs.net/doc/d614667280.html,;设置域端口号:21(默认);添加域IP地址:10.28.23.141;设置密码加密模式:无加密,完成后界面如图1-21所示。 完成上述操作后,还需要创建用于实验的用户帐号。点击图1.20中

浮动窗口中的“是”按钮,打开添加新建用户向导:添加用户名:test1;添加密码:123;设置用户根目录(登陆文件夹);设置是否将用户锁定于根目录:是(默认);访问权限:只读访问,完成后界面如图1-22所示。 新建的用户只有文件读取和目录列表权限,为完成实验内容,还需要为新建的用户设置目录访问权限,方法为点击导航——〉目录——〉目录访问界面,然后点击添加按钮, 按照图1-23所示进行配置。 步骤3:在PC1 和PC2 上运行Wireshark,开始捕获报文。 步骤4:在PC2 命令行窗口中登录FTP 服务器,根据步骤2中的配置信息输入用户名和口令,参考命令如下: C:\ >ftp ftp> open To 10.28.23.141 //登录ftp 服务器 Connected to 10.28.23.141 220 Serv-U FTP Server v6.2 for WinSock ready... User(none): test1 //输入用户名 331 User name okay, need password. Password:123 //输入用户密码 230 User logged in, proceed. //通过认证,登录成功

以太网帧格式分析

实验报告 实验名称以太网帧格式分析 姓名学号实验日期 实验报告要求:1.实验目的 2.实验要求 3.实验环境 4.实验作业 5.问题及解决 6.思考问题 7.实验体会 【实验目的】 1.复习Wireshark抓包工具的使用及数据包分析方法。 2.通过分析以太网帧了解以太网数据包传输原理。 【实验要求】 用Wireshark1.4.9截包,分析数据包。 观察以太网帧,Ping同学的IP地址,得到自己和同学的mac地址。 观察以太网广播地址,观察ARP请求的帧中目标mac地址的格式。 用ping-l指定数据包长度,观察最小帧长和最大帧长。 观察封装IP和ARP的帧中的类型字段。 【实验环境】 用以太网交换机连接起来的windows 7操作系统的计算机,通过802.1x方式接入Internet。 【实验中出现问题及解决方法】 1.在使用命令行“ping -l 0 IP”观察最小帧长时抓到了长度为42字节的帧,与理论上最小帧长64字节相差甚远。通过询问教员和简单的分析,知道了缺少字节的原因是当Wireshark抓到这个ping请求包时,物理层还没有将填充(Trailer)字符加到数据段后面,也没有算出最后4字节的校验和序列,导致出现最小42字节的“半成品”帧。可以通过网卡的设置将这个过程提前。 2.在做ping同学主机的实验中,发现抓到的所有ping请求帧中IP数据部分的头校验和都是错误的。原本以为错误的原因与上一个问题有关,即校验和错误是因为物理层还没有将填充字符加到数据段后面。但是这个想法很快被证明是错误的,因为在观察最大帧长时,不需要填充字符的帧也有同样的错误。一个有趣的现象是,封装在更里层的ICMP数据包的校验和都是正确的。这就表明IP层的头校验和错误并没有影响正常通信。进一步观察发现,这些出错的头校验和的值都是0x0000,这显然不是偶然的错误。虽然目前还没有得到权威的答案,但是可以推测,可能是这一项校验实际上并没有被启用。作为中间层的IP头的意义是承上启下,而校验的工作在更需要的上层的IMCP包和下层MAC头中都有,因此没有必要多此一举。 【思考问题】 1.为什么可以ping到同宿舍(连接在同一个交换机上)的主机而ping不到隔壁宿舍的主机? 通常情况下,如果配置正确,设备都连接着同一个网络(互联网),而且没有防火墙等阻拦,就可以正常ping到同一网络中的任何主机。在第一次实验中,我们曾成功地ping到了https://www.360docs.net/doc/d614667280.html,的IP。 在ping其他宿舍的IP时需要通过宿舍的交换机将ping请求先转发给楼层交换机,再由楼层交换机转发给目标IP所在的宿舍交换机。分析无法ping到隔壁宿舍主机的原因,很可能是楼层交换机设置了禁止内部ping的防火墙,阻止了本楼层交换机地址段内的主机相互ping对方。而同宿舍之所以可以相互ping 到,是因为ping请求没有经过楼层交换机,直接由宿舍交换机转发给了目标IP主机。 2.什么是ARP攻击? 让我们继续分析4.1 ARP原理,A得到ARP应答后,将B的MAC地址放入本机缓存。但是本机MAC 缓存是有生存期的,生存期结束后,将再次重复上面的过程。(类似与我们所学的学习网桥)。 然而,ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。 这时,我们假设局域网中的某台机器C冒充B向A发送一个自己伪造的ARP应答,即IP地址为B

实验一 以太网数据帧的构成

【实验一以太网数据帧的构成】 【实验目的】 1、掌握以太网帧的构成,了解各个字段的含义; 2、能够识别不同的MAC地址并理解MAC地址的作用; 3、掌握网络协议分析器的基本使用方法; 4、掌握协议仿真编辑器的基本使用方法; 【实验学时】 4学时; 【实验类型】 验证型; 【实验内容】 1、学习协议仿真编辑器的五个组成部分及其功能; 2、学习网络协议分析器的各组成部分及其功能; 3、学会使用协议仿真编辑器编辑以太网帧,包括单帧和多帧; 4、学会分析以太网帧的MAC首部; 5、理解MAC地址的作用; 6、理解MAC首部中的LLC-PDU长度/类型字段的功能; 7、学会观察并分析地址本中的MAC地址; 8、了解LLC-PDU的内容; 【实验原理】 局域网(LAN)是在一个小的范围内,将分散的独立计算机系统互联起来,实现资源的共享和数据通信。局域网的技术要素包括了体系结构和标准、传输媒体、拓扑结构、数据编码、媒体访问控制和逻辑链路控制等,其中主要的技术是传输媒体、拓扑结构和媒体访问控制方法。局域网的主要的特点是:地理分布范围小、数据传输速率高、误码率低和协议简单等。 1、三个主要技术 ⑴传输媒体:双绞线、同轴电缆、光缆、无线。 ⑵拓扑结构:总线型拓扑、星型拓扑和环型拓扑。 ⑶媒体访问控制方法:载波监听多路访问/冲突检测(CSMA/CD)技术。 2、IEEE 802标准的局域网参考模型 IEEE 802参考模型包括了OSI/RM最低两层(物理层和数据链路层)的功能。OSI/RM的数据链路层功能,在局域网参考模型中被分成媒体访问控制MAC(Medium Access Control)和逻辑链路控制LLC(Logical Link Control)两个子层。由于局域网采用的媒体有多种,对应的媒体访问控制方法也有多种,为了使数据帧的传送独立于所采用的物理媒体和媒体访问控制方法,IEEE 802 标准特意把LLC 独立出来形成单独子层,使LLC子层与媒体无关,仅让MAC子层依赖于物理媒体和媒

arp帧格式

arp帧格式 IP地址实现了底层网络物理地址的统一,但因特网技术并没有改变底层的物理网络,数据最终还是要在物理网络上传输,而在物理网络中传输时使用的仍是物理地址。 我们知道,当我们在浏览器里面输入网址时,DNS服务器会自动把它解析为IP地址,浏览器实际上查找的是IP地址而不是网址。那么IP地址是如何转换为第二层物理地址(即MAC 地址)的呢?这就是ARP的功能。 一、什么是ARP协议 ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获 得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP 地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行. 二、ARP解析过程 (1)源主机与目的主机位于同一子网中 ①检查本地ARP高速缓存 当要确定同一子网上的目的主机的物理地址时,ARP先检查本地ARP高速缓存,确定IP地址与物理地址的映射,如果包含,则取出目的主机的物理地址,利用这个地址将IP数据报封装成帧。若不存在就进行下一步。 ②向目的主机发送ARP请求 ARP请求以物理广播地址(MAC 全0)在本地子网上广播,并等待目的主机应答,ARP请求包含发送方的IP地址和物理地址,和目的主机的IP地址。 ③将请求方的地址信息写入ARP缓存缓存 由于ARP请求是子网上的广播,因而该子网中的每台主机都会收到广播,并将自己的IP地址和该ARP请求中的主机IP地址进行比较,如果不匹配,那么ARP请求将被忽略,若匹配,那么目的主机将会把发送方的IP地址与物理地址写入本机ARP告诉缓存中。 ④向请求方发送ARP应答 目的主机想发送主机以单播发送一个ARP应答,应答包含本机IP和MAC,以及源机IP和MAC。 ⑤请求方更新ARP高速缓存 源机受到ARP应答后,取出应答中目的主机的IP和MAC,并将其写入本机ARP高速缓存中。

常见报文格式帧结构

常见报文格式汇总 1.1Ethernet数据包格式(RFC894) 1、目的Mac的最高字节的第8位如果为1,表明此包是以太网组播/广播包,送给CPU处理。 2、将目的Mac和本端口的MAC进行比较,如果不一致就丢弃。 3、获取以太网类型字段Type/Length。 0x0800→IP 继续进行3层的IP包处理。 0x0806→ARP 送给CPU处理。 0x8035→RARP 送给CPU处理。 0x8863→PPPoE discovery stage 送给CPU处理。 0x8864→PPPoE session stage 继续进行PPP的2层包处理。 0x8100→VLAN 其它值当作未识别包类型而丢弃。 4、Tag帧。 Type:长度为2字节,取值为0x8100,表示此帧的类型为802.1Q Tag帧。 PRI:长度为3比特,可取0~7之间的值,表示帧的优先级,值越大优先级越高。该优先级主要为QoS差分服务提供参考依据(COS)。 VID(Vlan ID):长度12bits,可配置的VLAN ID取值范围为1~4094。通常vlan 0和vlan 4095预留,vlan1为缺省vlan,一般用于网管。 1.2PPP数据包格式 1、获取PPP包类型字段。 0x0021→IP 继续进行3层的IP包处理。 0x8021→IPCP 送给CPU处理。 0xC021→LCP 送给CPU处理。 0xc023→PAP 送给CPU处理。 0xc025→LQR 送给CPU处理。 0xc223→CHAP 送给CPU处理。 0x8023→OSICP 送给CPU处理。 0x0023→OSI 送给CPU处理。 其它值当作未识别包类型而丢弃。

以太网IEEE 802.3帧的结构

以太网/IEEE 802.3帧的结构 下图所示为以太网/IEEE 802.3帧的基本组成。 如图所示,以太网和IEEE 802.3帧的基本结构如下: 前导码(Preamble):由0、1间隔代码组成,可以通知目标站作好接收准备。 IEEE 802.3帧的前导码占用7个字节,紧随其后的是长度为1个字节的帧首定界符(SOF)。 以太网帧把SOF包含在了前导码当中,因此,前导码的长度扩大为8个字节。 帧首定界符(SOF: Start-of-Frame Delimiter): IEEE 802.3帧中的定界字节,以两个连续的代码1结尾,表示一帧实际开始。 目标和源地址( DA、SA): 表示发送和接收帧的工作站的地址,各占据6个字节。其中,目标地址可以是单址,也可以是多点传送或广播地址。 类型(以太网):

占用2个字节,指定接收数据的高层协议。 xxL(IEEE 802.3): 表示紧随其后的以字节为单位的数据段的长度。 数据L(以太网): 在经过物理层和逻辑链路层的处理之后,包含在帧中的数据将被传递给在类型段中指定的高层协议。虽然以太网版本2中并没有明确作出补齐规定,但是以太网帧中数据段的长度最小应当不低于46个字节。 数据(IEEE 802.3:LLCPDU逻辑链路层协议数据单元): IEEE 802.3帧在数据段中对接收数据的上层协议进行规定。如果数据段长度过小,使帧的总长度无法达到64个字节的最小值,那么相应软件将会自动填充数据段,以确保整个帧的长度不低于64个字节。 LLCPDU——它的范围处在46字节至1500字节之间。 最小LLCPDU长度46字节是一个限制,目的是要求局域网上所有的站点都能检测到该帧,即保证网络工作正常。如果LLCPDU小于46个字节,则发送站的MAC子层会自动填充“0”代码补齐。 802.3一个帧的xx计算公式: DA+SA+L+LLCPDU+FCS=6+6+2+(46~1500)+4=64~1518 即当LLCPDU为46个字节时,帧最小,帧长为64字节;当LLCPDU为1500字节时,帧最大,帧长为1518字节 帧校验序列(FCS:

以太网帧格式分析

运城学院实验报告 专业:计算机科学与技术系(班):计算机科学与技术系1001班姓名:陈嘉斌(2010100137)课程名称:计算机网络基础 实验项目:实验二以太网帧格式分析实验类型:验证性指导老师:杜经纬实验地点:网络实验室(2)时间:2012年11月15日8:00-9:50 一、实验目的: 1、分析Ethernet V2标准规定的MAC层帧结构。 2、了解IEEE802.3标准规定的MAC层帧结构和TCP/IP的主要协议和协议的层次结构。 二、实验内容: 1、通过对截获帧进行分析,分析和验证Ethernet V2标准和IEEE802.3标准规定的MAC层帧结构。 2、初步了解TCP/IP的主要协议和协议的层次结构。 三、实验方案设计: 设备连接: 设置pc0为192.168.1.1,pc1为192.168.1.2,pc2为192.168.1.3,pc3为192.168.1.4 四、实验步骤: 1、按图所示连接好设备,正确配置PC0,PC1,PC2,和PC3的IP地址,将交换机的配置清空。 2、在PC0和PC1上运行Wireshark截获报文,然后进入PC0的Windows命令行窗口,执行如下命令: ping 192.168.1.2 这是PC0向PC1发送消息的命令,等到PC1显示器上收到消息后,终止截获报文。

3、对截获的报文进行分析 五、实验结果: 六、实验总结: 通过本次实验我通过在截获帧的过程中了解MAC层结构。同时还了解ICMP数据报文格式和TCP/IP的主要协议和协议的层次结构。并且了解了mac帧的结构,对于mac帧的具体结构,有了更加深的了解。

以太网帧的封装实验

实训报告以太网帧的封装实验 1.实训目的 1)观察以太网帧的封装格式 2)对比单播以太网帧和广播以太网帧的目标MAC地址 2.实训拓扑图 以太网帧实验拓扑 3.主要操作步骤及实训结果记录 (1)任务一:观察单播以太网帧的封装 ?步骤1:准备工作 打开对应文件,完成初始化,删除练习文件中预设场景 ?步骤2:捕获数据包 进入Simulation模式。添加数据包,单击auto capture/play捕获数据包,再次单击停止捕获 ?步骤3:观察以太网帧的封装格式 ?步骤4:观察该广播包的以太网封装

DEST MAC:000A.4189.ADC6 SRC MAC:0060.2F6C.C11B 步骤4:观察交换机是否会修改以太网帧各字段取值DEST MAC:000A.4189.ADC6 SRC MAC:0060.2F6C.C118

(2)任务二:观察广播以太网帧的封装 ?步骤1:捕获数据包 Pc0数据帧被交换机转发给pc1、pc2、pc3(所有节点),pc1、pc2、pc3(所有节点)接收该广播帧。 ?步骤2:观察该广播包的以太网封装 DEST MAC:字段的取值:FFFF.FFFF.FFFF DEST MAC字段取值的含义:广播地址。

4.实训结果分析及心得体会 (1)任务一中,观察到以太网帧封装格式中前导字段的取值是什么?阐述其在数据帧传输过程中的作用。 答:任务一中,前导码字段取值为10101010···1010;以太网使用曼彻斯特编码传输数据,其特征是每个码元中间有一次电压的跳变,用于接收方提取同步信号,以太网帧中的前导码有何作用前导码是为了隔离每个以太网帧的,也是定位符。因为以太网是变长的,所以每个帧之间需要前导来区分。 (2)任务一中,Switch0转发数据帧时是否修改其源MAC地址和目标MAC地址? 答:switch0转发给pc2地数据帧中源MAC地址和目标MAC地址并未进行修改。 (3)交换机接收数据帧后,依据什么判断该数据帧是单播还是广播?或依据什么判断向哪个目标节点转发? 答:交换机工作在数据链路层,依据数据帧中的目标MAC地址的取值判断数据帧是单播还是广播,依据目标MAC地址判断向哪个目标节点转发。

MAC帧格式

令牌环上传输的数据格式(帧)有两种:一种是令牌,另一种是常规帧。令牌是占有发送权的标志,占有令牌的站才能发送。常规帧用来发送数据或控制信息。两种帧的格式如图 5所示。 图5 帧首定界符(SD )和帧尾定界符(ED )字段分别是一种专门标志帧首和帧尾的特殊字段,段1个字节。为了使用户数据获得透明性,应采取某种机制,使信息字段不会出现与SD 或ED 相同的比特序列。在令牌环网中所用的机制是除SD 和ED 字段外,其它所有信息比特都使用曼彻斯特编码,也就是说通过不同的编码方法来获得专门的标志。从图5的字段描述可知,要作到这一点,J.K 符号必须与常规编码规则不同,即J 符号与其前面的符号具有相同的极性,K 符号与前面的符号具有相反的极性。使用这种方式,接收机便可可靠地鉴别帧或令牌帧的开始和结束。访问控制(AC)字段由优先权比特(P )、令牌(T )和监视(M?)比特以及保留比特(R)组成。由该字段的名字可知,基功能是控制对环的访问。在其出现在令牌帧时,P 比特表示令牌的优先权,因此指示工作站收到该令牌后便可发送那些帧。T 比特用来区分令牌帧和常规。 M 比特由活动监视器用来防止帧绕环连续散发。R 比特用来使工作站指示高优先权帧的请求,请求发出的下一个令牌具有请求的优先权。 SD=帧首定界符 I=信息字段 AC=访问控制 FSC=帧检验序列 FC=帧控制 ED=帧尾定界符 DA=终点地址 FS=帧状态字段 SA=源点地址

帧控制(FC)字段定义帧的类型和控制功能如果帧类型(F)指示MAC帧,环上所有工作站都对其接收和解释,并根据需要对控制比特(Z)进行动作。如果它是工帧,控制比特公由终点地址字段标识的工作站解释。 源点地址(SA)和终点地址(DA)字段可为16比特或48比特。对于特定的令牌环网,应有一致的地址长度。DA标识帧意图发往的工作站,可以是一个站或多个站。源点地址(SA)字段表示发送该帧的站。 信息(I)字段用来载携用户数据或附加控制信息。I字段中最大长度虽无限制,但由于允许DTE发送帧时有时间限制,所以也就限制了I字段的长度,通常最大值的5000个字节。 帧检验序列(FCS)是32比特的循环冗余检验用来检验FC,DA,SA和I 各字段在传输中有无差错。最后一个字段为帧状态(FS)。FS由两个字段组成:地址识别比特(A)和帧拷贝比特(C)。如果该帧要由一个或多个工作站识别,则将A比特置为1。如果它拷贝了该帧,便将C比特置1。使用这种方法,发起工作站可了解下述状态: .被寻址的工作站是否存在或关闭; .被寻址的工作站在工作,但未拷贝帧; .被寻址的站工作且拷贝了帧。

ARP帧格式

ARP帧格式 ARP帧格式 //////////////////////////////////////////////////////////////////////////////// 大概了解一下ARP协议。ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写, 它的作用是将IP地址转换成物理地址(就是常说的MAC地址),其详细过程参考《TCP/IP详解卷一》。 协议ARP的分组格式如下: ------------------------------------------ 以太网目的地址(6个字节) 以太网源地址(6个字节) 帧类型(ARP = 0806)(2个字节) ------------------------------------------ 硬件类型(Ethernet=01)(2个字节) 协议类型(IPv4=0800)(2个字节) 硬件地址长度(1个字节) 协议地址长度(1个字节) OP操作选项(ARP request=01,ARP reply=02)(2个字节) 发送端以太网地址(6个字节) 发送端IP地址(4个字节)

目的以太网地址(6个字节) 目的IP地址(4个字节) -------------------------------------------- //////////////////////////////////////////////////////////////////////////////// 我们向目标主机发送一个ARP请求,如果目标主机处于活动状态则会返回其MAC地址, 如果对方返回MAC地址,则表明对方处于活动状态,这样达到探测目的。 ARP请求包内容如下: ------------------------------------------ 以太网目的地址|FFFFFFFFFFFF(广播地址) 以太网源地址|本地MAC地址 帧类型|0806 ------------------------------------------ 硬件类型|01 协议类型|0800 硬件地址长度|06 协议地址长度|04 OP操作选项|01 发送端以太网地址|本地MAC地址 发送端IP地址|目标主机IP地址

相关文档
最新文档