admin管理员组

文章数量:1531370

2024年1月26日发(作者:)

竭诚为您提供优质文档/双击可除

以太网使用哪个协议

篇一:以太网mac协议

以太网mac协议

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

1.1位序

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

1.2字节顺序

1 16

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

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

08-00-60-01-2c-4a

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

0001-0000-0011

2以太网地址

地址是一个指明特定站或一组站的标识。以太网地址是6字节(48比特)长。图1说明了以太网地址格式。

图1以太网地址格式

在目的地址中,地址的第1位表明该帧将要发送给单个站点还是一组站点。在源地址中,第1位必须为0。

站地址要唯一确定是至关重要的,一个帧的目的地不能是模糊的。地址的唯

一性可以是:

2 16

●局限于本网络内。保证地址在某个特定lan中是唯一的,但不能保证

在相互连接的lan中是唯一的。当使用局部唯一地址时,要求网络管理员对地址进行分配。

●全局的。保证地址在所有的lan中,在任何时间,以及对于所有的技

术都是唯一的,这是一个强大的机制,因为:

(1)使网络管理员不必为地址分配而烦恼;

(2)使得站点可以在lan之间移动,而不必重新分配地址;

(3)可以实现数据链路网桥/交换机。

全局唯一地址以块为单位进行分配,地址块由ieee管理。一个组织从ieee获得唯一的地址块(称为oui),并可用该地址块创建224个设备。那么保证该地址块中地址(最后3个字节)的唯一性就是制造商的责任。

地址中的第2位指示该地址是全局唯一还是局部唯一。除了个别情况,历史上以太网一直使用全局唯一地址。

3以太网数据帧格式

图2基本的以太网帧格式及传输次序

图2显示了以太网mac帧各个字段的大小和内容以及传输次序。

该格式中每个字段的字节次序是先传输的字节在左,后

3 16

传输的字节在右。在每个字节中的位次序正好相反,低位在左,高位在右。字节次序和位的次序通常用于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,那么这个字段就是长度字段,并定义后面的

4 16

数据字段的长度。但是如果这个字段的值大于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协议

5 16

为了通信的简便,以太网采用了两种重要的措施:

第一,采用无连接的工作方式,在传输数据之前无需建立连接。

第二,对发送的帧不进行编号,也不要求接收方发回确认帧。这样做的理由是不同于其他网络,局域网信道的质量非常好,因为信道质量而产生错误的概率非常小。这与一般数据链路层协议有些区别,如滑动窗口协议等。

因此以太网提供的是服务是不可靠交付,即尽最大努力的交付。当目的站点收到有错误的数据帧时,就简单的丢弃该帧,除此之外什么也不做。上层协议会发现并处理,如上层协议发现丢失了一些数据,则过一段时间会把这些数据重新交给以太网,但以太网并不认为这是一个重传的帧,而是当作一个新的帧来处理。在半双工模式下,一个重要的问题就是如何协调总线上的各个站点,因为半双工模式同一时间只允许一个站点发送数据,否则各站点之间将会互相干扰。以太网采用的就是被称为csma/cd,即载波监听多路访问/冲突检测的协议。

“多路访问”说明是总线型网络,许多站点以多点的方式共用一个总线。协议的实质是载波监听和冲突检测。

“载波监听”就是指站点在发送数据前先检查总线上是否已有数据在传输,如有则暂缓发送,避免冲突。实质就是在冲突发生前尽量避免。

6 16

“冲突检测”就是边发送边对媒体上的电压信号大小进行监测。当一个站点监测到电压摆动值超过一定的门限时,就可认为发生了冲突。冲突检测具体由物理层完成,数据链路层根据物理层的信号来判断是否有冲突。一旦发生了冲突,站点就要停止发送数据,然后根据协议进行重传。

5.1帧的发送

数据发送模块主要实现以下两个功能:

1)数据的封装。

2)发送媒体管理。包括信道获取,冲突处理等。

5.1.1数据的封装

发送模块按照以太网mac帧格式,将待发送的数据与目的地址,源地址,类型/长度字段进行组合,并根据数据长度添加适当的填充字段以达到802.3标准规定的最小帧长度,然后计算cRc校验作为Fcs字段添加在帧尾,形成一个完整的mac帧。在发送时,模块首先自动生成并发送前同步码和帧开始定界符,然后开始发送组装好的mac帧。

5.1.2发送媒体管理

等待机制(defference)

当一个待发送帧准备就绪时,按照工作模式的不同,发送模块采用2种规则。半双工模式:

在半双工模式下,为了避免其他主机竞争媒体而产生的冲突,mac通过监听载波信号来得知是否有其他站点在发送

7 16

信息。该信号由物理层信号提供。如信道忙,mac会暂缓发送自己的数据,直到信号变为空闲时,才开始发送。通常当信道变为空闲后,mac并不立刻发送数据,而是继续等待一个帧间间隔,目的是给物理层以及其他站点的mac处理上一个帧的时间。当一切准备就绪后,mac就把帧交给物理层以二进制数据流的形式发送出去。

全双工模式:

而在全双工模式下,情况则大不相同。由于站点之间的连接为点到点,且可以同时进行发送和接收,所以就不存在冲突,也就不需要载波监听。待发送的帧只要等待一个帧间间隔就可以立刻发送,不需要考虑是否正在接收数据。

5.1.3冲突监测和处理:

在半双工模式下,假如有多个站点企图同时发送数据,尽管每个发送站都有等待机制,然而还是很有可能会相互干扰。当2个站发送的信号叠加时,冲突就

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

当某个站点开始发送数据时,仅在发送开始的一段时间内可能遭遇到冲突,这个时间段被称为冲突窗口

8 16

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

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

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

5.1.4退避算法以及重传

以太网使用截断二进制指数回退算法来解决冲突后的

9 16

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

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

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

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

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

5.2帧的接收

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

篇二:以太网传输

通信过程中,每层协议都要加上一个数据首部(header),称为封装

(encapsulation),如下图所示

不同的协议层对数据包有不同的称谓,在传输层叫做段

10 16

(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。

其实在链路层之下还有物理层,指的是电信号的传递方式,比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤等都属于物理层的概念。

3、集线器(hub)是工作在物理层的网络设备,用于双绞线的连接和信号中继(将已衰减的信号再次放大使之传得更远)。

交换机是工作在链路层的网络设备,可以在不同的链路层网络之间转发数据帧(比如十兆以太网和百兆以太网之间、以太网和令牌环网之间),由于不同链路层的帧格式不同,交换机要将进来的数据包拆掉链路层首部重新封装之后再转发。

路由器是工作在第三层的网络设备,同时兼有交换机的功能,可以在不同的链路层接口之间转发数据包,因此路由器需要将进来的数据包拆掉网络层和链路层两层首部并重新封装。

4、网络层的ip协议是构成internet的基础。ip协议不保证传输的可靠性,数据包在传输过程中可能丢失,可靠

11 16

性可以在上层协议或应用程序中提供支持。

传输层可选择tcp或udp协议。tcp是一种面向连接的、可靠的协议,有点像打电话,双方拿起电话互通身份之后就建立了连接,然后说话就行了,这边说的话那边保证听得到,并且是按说话的顺序听到的,说完话挂机断开连接。也就是说tcp传输的双方需要首先建立连接,之后由tcp协议保证数据收发的可靠性,丢失的数据包自动重发,上层应用程序收到的总是可靠的数据流,通讯之后关闭连接。udp协议不面向连接,也不保证可靠性,有点像寄信,写好信放到邮筒里,既不能保证信件在邮递过程中不会丢失,也不能保证信件是按顺序寄到目的地的。使用udp协议的应用程序需要自己完成丢包重发、消息排序等工作。

5、数据传输经过的各层协议过程如下

以太网驱动程序首先根据以太网首部中的“上层协议”字段确定该数据帧的有效载荷(payload,指除去协议首部之外实际传输的数据)是ip、aRp还是RaRp协议的数据报,然后交给相应的协议处理。假如是ip数据报,ip协议再根据ip首部中的“上层协议”字段确定该数据报的有效载荷是tcp、udp、icmp还是igmp,然后交给相应的协议处理。假如是tcp段或udp段,tcp或udp协议再根据tcp首部或udp首部的“端口号”字段确定应该将应用层数据交给哪个用户进程。ip地址是标识网络中不同主机的地址,而端口号

12 16

就是同一台主机上标识不同进程的地址,ip地址和端口号合起来标识网络中唯一的进程。

虽然ip、aRp

和RaRp数据报都需要以太网驱动程序来封装成帧,但是从功能上划分,aRp和RaRp属于链路层,ip属于网络层。虽然icmp、igmp、tcp、udp的数据都需要ip协议来封装成数据报,但是从功能上划分,icmp、igmp与ip同属于网络层,tcp和udp属于传输层。

6、以太网帧格式

(1)其中的源地址和目的地址是指网卡的硬件地址(也叫mac地址),长度是48位,是在网卡出厂时固化的。

(2)注意网卡芯片(例如dm9000a)收到的数据就是如上所示的一长串数据;其中包括以太网帧头、ip报报头、传输层协议段头、应用层所需数据。

篇三:以太网协议封装格式

字号:大中小

一、以太网链路层协议封装格式

以太网数据在网络介质上传输需要遵循一定的机制,其中csma/cd介质访问控制机制约定了以太网在传输数据时,两帧之间需要等待一个帧间隙时间

(iFg或ipg),为以太网接口提供了帧接收之间的恢复时间,该恢复时间最小值为传输96bit所花费的时间,对于

13 16

10m线路,该时间为9.6us,100m线路为960ns,1g的线路为96ns。同时以太网数据帧在传输时还需要有7byte的前导字段和1byte的定界符。因此以太网数据在传输过程中是由以下部分组成的:7byte(前导)+1byte(定界符)+以太网数据帧+12byte(ipg)。

在全双工工作模式下,如果csma/cd介质访问控制机制发现传输冲突时,则会放弃当前帧发送,改为发送一个48比特的噪声帧。

其中以太网数据帧限制为最小长度为64byte,最大长度为1518byte,其格式为:6byte(目的mac地址)+6byte(源mac地址)+2byte(类型字段)+数据字段+4byte(Fcs校验字段)。其中帧类型字段标识其后的数据类型。

这里值得注意的是区分ethernetii帧格式和802.3帧格式的不同,我们有时可能会混用了这两个术语。

ethernetii帧是最常见的一种以太网帧格式,也是今天以太网的事实标准,由dec,intel和xerox在1982年公布标准,ethernetii可以支持tcp/ip,novellipx/spx,appletalkphasei等协议,其比较常见的类型字段为:0x0800(ip帧),0x0806(aRp请求/应答帧),0x8035(paRp请求/应答帧),0x8137(novellipx),0x809b(appletalk)。RFc894定义了ip报文在ethernetii上的封装格式。

802.3帧将ethernetii帧头中的类型字段替换为帧长度

14 16

字段(取值范围为0x0000-0x05dc,不包括cRc检验码),因此对于接收到的帧,如果类型字段取值范围为0x0000-0x05dc,则可以判断其为802.3帧,而非ethernetii帧。其中Raw802.3是1983年novell发布netware/86网络套件时采用的私有以太网帧格式,只支持ipx/spx一种协议;802.3/802.2llc是ieee公布的正式802.3标准,它加入了3byte的llc字段,其中sap值用以标志上层应用,每个sap字段为8bits,其中只有6bit用于标识上层协议,因此所能标识的协议数不超过32种,导致802.3/802.2llc的使用有很大局限性;802.3/802.2snap是ieee为保证在802.2llc上支持更多的上层协议同时更好的支持ip协议而发布的标准,在802.3/802.2llc基础上添加了5byte的snap字段,从而使其可以标识更多的上层协议类型,oui字段用于代表不同的组织(一般置为0),在

802.3/802.2snap基础上RFc1042定义了ip报文在802.2网络中的封装方法和aRp协议在802.2sanp中的实现。

目前实际环境中大多数tcp/ip设备都使用ethernetii格式的帧,它采用了RFc894的实现标准。从上述帧格式中可以看出,ethernetii格式帧数据段的长度限制在46byte-1500byte之间,当数据段长度小于46个字节时,加填充字段(pad)补足。ethernetii和802.3对数据帧的长度限制,其最大值分别是1500和1492字节,这一特性称作最大

15 16

传输单元(mtu)。

图ieee802.2

/802.3(RFc1042)和ethernetii(RFc894)的封装格式在tcp/ip协议族中,链路层主要有三个目的:(1)为ip模块发送和接收ip数据报;(2)为aRp模块发送aRp请求和接收aRp应答;(3)为RaRp发送RaRp请求和接收RaRp应答。

二、以太网ip层协议封装格式

在tcp/ip协议族中基于链路层以上的协议主要有三种:ip协议、aRp协议和RaRp协议,其中在ip数据报中又额外封装了icmp协议和igmp协议。ip层

16 16

本文标签: 协议数据发送冲突地址