精华内容
下载资源
问答
  • 以太网帧格式详解

    万次阅读 2017-07-28 23:49:26
    浅谈以太网帧格式  一、Ethernet帧格式的发展 1980 DEC,Intel,Xerox制订了Ethernet I的标准 1982 DEC,Intel,Xerox又制订了Ehternet II的标准 1982 IEEE开始研究Ethernet的国际标准802.3 1983 迫不及待...

    浅谈以太网帧格式                                      

    一、Ethernet帧格式的发展

    1980 DEC,Intel,Xerox制订了Ethernet I的标准
    1982 DEC,Intel,Xerox又制订了Ehternet II的标准
    1982 IEEE开始研究Ethernet的国际标准802.3
    1983 迫不及待的Novell基于IEEE的802.3的原始版开发了专用的Ethernet帧格式
    1985 IEEE推出IEEE 802.3规范,后来为解决EthernetII与802.3帧格式的兼容问题,
    推出折衷的Ethernet SNAP格式

    (其中早期的Ethernet I已经完全被其他帧格式取代了 ,所以现在Ethernet只能见到后面几种Ethernet的帧格式,
    现在大部分的网络设备都支持这几种Ethernet的帧格式,
    如:cisco的路由器再设定Ethernet接口时可以指定不同的以太网的帧格式:arpa,sap,snap,novell-ether)

    二.各种不同的帧格式
    下面介绍一下各个帧格式 
    1.Ethernet II
    就是DIX以太网联盟推出的。。。。 它由6个字节的目的MAC地址,6个字节的源MAC地址,
    2个字节的类型域(用于标示封装在这个Frame、里面 数据的类型)以上为Frame Header,
    接下来是46--1500字节的数据,和4字节的帧校验
    2.Novell Ethernet
    它的帧头与Ethernet有所不同其中EthernetII帧头中的类型域变成了长度域,
    后面接着的两个字节为0xFFFF,用于标示这个帧是Novell Ether类型的Frame,
    由于前面的0xFFFF站掉了两个字节所以数据域缩小为44-1498个字节,帧校验不变。
    3.IEEE 802.3/802.2
    802.3的Frame Header和Ethernet II的帧头有所不同,EthernetII类型域变成了长度域。
    其中又引入802.2协议(LLC)在802.3帧头后面添加了一个LLC首部,
    由DSAP(Destination Service Access Point)1 byte,SSAP(Source SAP),一个控制域--1 byte! SAP用于标示帧的上层协议。

    4.Ethernet SNAP
    SNAP Frame与802.3/802.2 Frame的最大区别是增加了一个5 Bytes的SNAP ID
    其中前面3个byte通常与源mac地址 的前三个bytes相同为厂商代码!
    有时也可设为0,后2 bytes与Ethernet II的类型域相同。。。


    三.如何区分不同的帧格式
      
    Ethernet中存在这四种Frame那些网络设备又是如何识别的呢? 如何区分EthernetII与其他三种格式的Frame
    如果帧头跟随source mac地址的2 bytes的值大于1500,则此Frame为EthernetII格式的
       
    接着比较紧接着的两bytes如果为0xFFFF则为Novell Ether类型的Frame,
    如果为0xAAAA则为Ethernet SNAP格式的Frame ,如果都不是则为Ethernet 802.3/802.2格式的帧

    几种以太网帧格式
     
     
    相当长的一段时间里我都没搞明白一个很基础的问题---以太网的封装格式;最近查了查相关文档,总结如下;
     
    首先说明一下,Ethernet和802.3并不是一回事,虽然我们经常混用这两个术语;
     
    历史上以太网帧格式有五种:
     
    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上的封装格式;
     
    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标准互不兼容;可以看到在Novell的RAW 802.3帧结构中并没有标志协议类型的字段,
    而只有Length字段(2bytes,取值为0000-05dc,即十进制的0-1500),因为RAW 802.3帧只支持IPX/SPX一种协议;
     
    4.802.3/802.2 LLC:这是IEEE 正式的802.3标准,它由Ethernet V2发展而来。
    它将Ethernet V2帧头的协议类型字段替换为帧长度字段(取值为0000-05dc;十进制的1500);
    并加入802.2 LLC头用以标志上层协议,LLC头中包含DSAP,SSAP以及Crontrol字段;
    常见SAP值:
    0         Null LSAP        [IEEE]
    4        SNA Path Control         [IEEE]
    6        DOD IP        [79,JBP]
    AA         SNAP        [IEEE]
    FE        Global DSAP        [IEEE]
    SAP值用以标志上层应用,但是每个SAP字段只有8bits长,
    而且其中仅保留了6比特用于标识上层协议,因此所能标识的协议数有限(不超过32种);
    并且IEEE拒绝为某些重要的协议比如ARP协议定义SAP值(奇怪的是同时他们却定义了IP的SAP值);
    因此802.3/802.2 LLC的使用有很大局限性;
     
    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中的实现;
     
    今天的实际环境中大多数TCP/IP设备都使用Ethernet V2格式的帧。
    这是因为第一种大规模使用的TCP/IP系统(4.2/3 BSD UNIX)的出现时间介于RFC 894和RFC 1042之间,
    它为了避免不能和别的主机互操作的风险而采用了RFC 894的实现;
    也由于大家都抱着这种想法,所以802.3标准并没有如预期那样得到普及;
     
    CISCO设备的Ethernet Interface默认封装格式是ARPA(Ethernet V2)

    不同厂商对这几种帧格式通常有不同的叫法,比如:
    Frame Type         Novel        Cisco
    Ethernet Version 2        Ethernet_II        arpa
    802.3 Raw        Ethernet_802.3        novell_ether
    IEEE 802.3/802.2        Ethernet_802.2        sap
    IEEE 802.3/802.2 SNAP        ETHERNET_SNAP        snap

    **************************************************************************************************************************************
    
    
    
    

    一、 以太网数据帧的格式分析

    大家都知道我们目前的局域网大多数是以太网,但以太网有多种标准,其数据帧有多种格式,恐怕有许多人不是太清楚,本文的目的就是通过帧格式和Sniffer捕捉的数据包解码来区别它们。

    以太网这个术语一般是指数字设备公司(DigitalEquipment)、英特尔公司(Intel)和施乐公司(Xerox)在1982年联合公布的一个标准(实际上它是第二版本,第一版本早在1972年就在施乐公司帕洛阿尔托研究中心PARC里产生了)。它是目前TCP/IP网络采用的主要的局域网技术。它采用一种称作CSMA/CD的媒体接入方法,其意思是带冲突检测的载波侦听多路接入(Carrier Sense, Multiple Access with CollisionDetection)。它的速率为10 Mb/s,地址为48 bit。

    1985年,IEEE(电子电气工程师协会)802委员会公布了一个稍有不同的标准集,其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络。这三者的共同特性由802.2标准来定义,那就是802网络共有的逻辑链路控制(LLC)。不幸的是,802.2和802.3定义了一个与以太网不同的帧格式,加上1983年Novell为其Netware开发的私有帧,这些给以太网造成了一定的混乱,也给我们学习以太网带来了一定的影响。

    1、通用基础

    数据链路层头(Header)是数据链路层的控制信息的长度不是固定的,根据以太网数据帧的格式的不同而不同,那么判断IEEE802.3、IEEE802.3 SNAP、Ethernet Version2、Netware 802.3“Raw”这些数据帧的最主要依据也源于Header的变化。

    从Sniffer捕捉数据包中也可以看出,Sniffer捕捉数据包的时候是掐头去尾的,不要前面的前导码,也丢弃后面的CRC校验(注意它只是不在Decode里显示该区域,但并不代表它不去做数据包CRC校验),这就是很多人困惑为什么Sniffer捕捉到的数据包长度跟实际长度不相符的原因。那么,Sniffer是如何来判断这些不同类型的以太网格式呢?

    Sniffer可以判断出不同的以太网格式,这里需要注意的是,Sniffer在数据包解码时有自己的格式,所以有Offset之说,offset ØE是指在SnifferHex解码窗口中从左向右第15位的数值。大家如果有点发懵的话,没有关系,看完后面的格式分析后再来分析前面提到的,相信一定能够明白?

    下面我们通过一些具体的数据包来说明各种以太网格式的具体区别。

    2、Ethernet Version2

    以太网版本2是先于IEEE标准的以太网版本。

    从数据包中可以看出,EthernetV2通过在DLC头中2个字节的类型(Type)字段来辨别接收处理。类型字段是用来指定上层协议的(如0800指示IP、0806指示ARP等),它的值一定是大于05FF的,它提供无连接服务的,本身不控制数据(DATA)的长度,它要求网络层来确保数据字段的最小包长度(46字节)。

    Sniffer捕获的Ethernet V2帧的解码,可以看到在DLC层,源DLC地址后紧跟着就是以太网类型(Etehertype)值0800,代表上层封装的是IP报文,0800大于05FF,因而我们可以断定它是Ethernet V2的帧。

     

    3、IEEE802.3

    IEEE802.3把DLC层分隔成明显的两个子层:MAC层和LLC层,其中MAC层主要是指示硬件目的地址和源地址。LLC层用来提供一些服务:

    – 通过SAP地址来辨别接收和发送方法

    – 兼容无连接和面向连接服务

    – 提供子网访问协议(Sub-network Access Protocol,SNAP),类型字段即由它的首部给出。

    MAC层要保证最小帧长度不小于64字节,如果数据不满足64字节长度就必须进行填充。

    是Sniffer捕获的IEEE802.3帧的解码,可以看到在DLC层源地址后紧跟着就是802.3的长度(Length)字段0026,它小于05FF,可以肯定它不是Ethernet V2的帧,而接下来的Offset0E处的值“4242”(代表DSAP和SSAP),既不是Novell 802.3 “Raw”的特征值“FFFF”,也不是IEEE 802.3SNAP的特征值“AAAA”,因此它肯定是一个IEEE802.3的帧。

     

    4、IEEE802.3 SNAP

    SNAP (Sub-Network AccessProtocol)子网访问协议,是逻辑链路控制(Logical LinkControl)的一个子集,它允许协议不用通过服务访问点(SAP)即可实现IEEE兼容的MAC层功能,因此它在DSAP和SSAP域里的值是固定的(AAAA)。也正源于此,它需要额外提供5个字节的头来指定接收方法,3个字节标识厂商代码,2个字节标识上层协议。

    其MAC层保证数据帧长度不小于64字节,不足的话需要进行数据填充。

    是Sniffer捕获的IEEE802.3SNAP帧的解码,可以看到在DLC层源地址后紧跟着就是802.3的长度(Length)字段0175,它小于05FF,可以肯定它不是Ethernet V2的帧,而接下来的Offset 0E处的值“AAAA”(代表DSAP和SSAP),这是IEEE 802.3SNAP的特征值“AAAA”,因此可以断定它是一个IEEE802.3 SNAP的帧。

     

    5、Novell Netware 802.3 “Raw”

    虽然它的产生先于IEEE802.3规范,但已成为IEEE802.3规范的一部分。它仅使用DLC层的下半部,而不使用LLC。

    802.3 “Raw”帧通过在DLC头中2个字节的长度(Length)字段来标记数据帧长度,而在长度字段后紧跟着就是两个字节的十六进制值FFFF,它是用来标识IPX协议头的开始。为了确保最小数据帧长度为64字节,MAC层会进行填充数据区域来确保最小长度。

    在所有工作站都使用同一种数据帧类型情况下不会有什么问题,但如果是在混合以太网帧类型环境中,Novell的这种以太网帧会造成负面影响:当Novell发出广播帧时,其FF字段正好是IEEE802.3帧中的服务访问点(SAP)域,它的“FF”值代表着广播SAP,因此所有的工作站(不管是不是Netware工作站)都会拷贝,这会造成不必要的广播影响。

    Sniffer捕获的Netware 802.3“RAW”帧的解码,可以看到在DLC层源地址后紧跟着就是802.3的长度(Length)字段0120,它小于05FF,可以肯定它不是Ethernet V2的帧,而接下来的Offset 0E处的值“FFFF”(代表IPX协议的开始),这是Netware 802.3“Raw”的特征值“FFFF”,因此可以断定它是一个Novell 802.3 “Raw”的帧。

     

    二、 Ethernet V2帧与IEEE 802.3帧的比较

    因为这两种帧是我们在现在的局域网里最常见的两种帧,因此,我们对它们进行一些比较。

    Ethernet V2可以装载的最大数据长度是1500字节,而IEEE802.3可以装载的最大数据是1492字节(SNAP)或是1497字节; Ethernet V2不提供MAC层的数据填充功能,而IEEE802.3不仅提供该功能,还具备服务访问点(SAP)和SNAP层,能够提供更有效的数据链路层控制和更好的传输保证。那么我们可以得出这样的结论:Ethernet V2比IEEE802.3更适合于传输大量的数据,但EthernetV2缺乏数据链路层的控制,不利于传输需要严格传输控制的数据,这也正是IEEE802.3的优势所在,越需要严格传输控制的应用,越需要用IEEE802.3或SNAP来封装,但IEEE802.3也不可避免的带来数据装载量的损失,因此该格式的封装往往用在较少数据量承载但又需要严格控制传输的应用中。

    在实际应用中,我们会发现,大多数应用的以太网数据包是EthernetV2的帧(如HTTP、FTP、SMTP、POP3等应用),而交换机之间的BPDU(桥协议数据单元)数据包则是IEEE802.3的帧,VLANTrunk协议如802.1Q和Cisco的CDP(思科发现协议)等则是采用IEEE802.3SNAP的帧。大家有兴趣的话,可以利用Sniffer等协议分析工具去捕捉数据包,然后解码查看是不是这样的。

    展开全文
  • 浅谈以太网帧格式 一、Ethernet帧格式的发展 1980 DEC,Intel,Xerox制订了Ethernet I的标准 1982 DEC,Intel,Xerox又制订了Ehternet II的标准 1982 IEEE开始研究Ethernet的国际标准802.3 1983 迫不及待的Novell基于...

     

    浅谈以太网帧格式                                      

    一、Ethernet帧格式的发展

    1980 DEC,Intel,Xerox制订了Ethernet I的标准 1982 DEC,Intel,Xerox又制订了Ehternet II的标准 1982 IEEE开始研究Ethernet的国际标准802.3  1983 迫不及待的Novell基于IEEE的802.3的原始版开发了专用的Ethernet帧格式 1985 IEEE推出IEEE 802.3规范,后来为解决EthernetII与802.3帧格式的兼容问题, 推出折衷的Ethernet SNAP格式

    (其中早期的Ethernet I已经完全被其他帧格式取代了 ,所以现在Ethernet只能见到后面几种Ethernet的帧格式, 现在大部分的网络设备都支持这几种Ethernet的帧格式, 如:cisco的路由器再设定Ethernet接口时可以指定不同的以太网的帧格式:arpa,sap,snap,novell-ether)

    二.各种不同的帧格式  下面介绍一下各个帧格式  1.Ethernet II 就是DIX以太网联盟推出的。。。。 它由6个字节的目的MAC地址,6个字节的源MAC地址, 2个字节的类型域(用于标示封装在这个Frame、里面 数据的类型)以上为Frame Header, 接下来是46--1500字节的数据,和4字节的帧校验 2.Novell Ethernet 它的帧头与Ethernet有所不同其中EthernetII帧头中的类型域变成了长度域,  后面接着的两个字节为0xFFFF,用于标示这个帧是Novell Ether类型的Frame, 由于前面的0xFFFF站掉了两个字节所以数据域缩小为44-1498个字节,帧校验不变。 3.IEEE 802.3/802.2  802.3的Frame Header和Ethernet II的帧头有所不同,EthernetII类型域变成了长度域。  其中又引入802.2协议(LLC)在802.3帧头后面添加了一个LLC首部, 由DSAP(Destination Service Access Point)1 byte,SSAP(Source SAP),一个控制域--1 byte! SAP用于标示帧的上层协议。

    4.Ethernet SNAP  SNAP Frame与802.3/802.2 Frame的最大区别是增加了一个5 Bytes的SNAP ID 其中前面3个byte通常与源mac地址 的前三个bytes相同为厂商代码!  有时也可设为0,后2 bytes与Ethernet II的类型域相同。。。

     三.如何区分不同的帧格式    Ethernet中存在这四种Frame那些网络设备又是如何识别的呢? 如何区分EthernetII与其他三种格式的Frame 如果帧头跟随source mac地址的2 bytes的值大于1500,则此Frame为EthernetII格式的     接着比较紧接着的两bytes如果为0xFFFF则为Novell Ether类型的Frame, 如果为0xAAAA则为Ethernet SNAP格式的Frame ,如果都不是则为Ethernet 802.3/802.2格式的帧

     几种以太网帧格式     相当长的一段时间里我都没搞明白一个很基础的问题---以太网的封装格式;最近查了查相关文档,总结如下;   首先说明一下,Ethernet和802.3并不是一回事,虽然我们经常混用这两个术语;   历史上以太网帧格式有五种:   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上的封装格式;   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标准互不兼容;可以看到在Novell的RAW 802.3帧结构中并没有标志协议类型的字段,  而只有Length字段(2bytes,取值为0000-05dc,即十进制的0-1500),因为RAW 802.3帧只支持IPX/SPX一种协议;   4.802.3/802.2 LLC:这是IEEE 正式的802.3标准,它由Ethernet V2发展而来。  它将Ethernet V2帧头的协议类型字段替换为帧长度字段(取值为0000-05dc;十进制的1500);  并加入802.2 LLC头用以标志上层协议,LLC头中包含DSAP,SSAP以及Crontrol字段;  常见SAP值: 0         Null LSAP        [IEEE]  4        SNA Path Control         [IEEE]  6        DOD IP        [79,JBP]  AA         SNAP        [IEEE]  FE        Global DSAP        [IEEE]  SAP值用以标志上层应用,但是每个SAP字段只有8bits长,  而且其中仅保留了6比特用于标识上层协议,因此所能标识的协议数有限(不超过32种);  并且IEEE拒绝为某些重要的协议比如ARP协议定义SAP值(奇怪的是同时他们却定义了IP的SAP值);  因此802.3/802.2 LLC的使用有很大局限性;   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中的实现;   今天的实际环境中大多数TCP/IP设备都使用Ethernet V2格式的帧。  这是因为第一种大规模使用的TCP/IP系统(4.2/3 BSD UNIX)的出现时间介于RFC 894和RFC 1042之间,  它为了避免不能和别的主机互操作的风险而采用了RFC 894的实现;  也由于大家都抱着这种想法,所以802.3标准并没有如预期那样得到普及;   CISCO设备的Ethernet Interface默认封装格式是ARPA(Ethernet V2)

    不同厂商对这几种帧格式通常有不同的叫法,比如: Frame Type         Novel        Cisco  Ethernet Version 2        Ethernet_II        arpa  802.3 Raw        Ethernet_802.3        novell_ether  IEEE 802.3/802.2        Ethernet_802.2        sap  IEEE 802.3/802.2 SNAP        ETHERNET_SNAP        snap **************************************************************************************************************************************

     

     

    一、 以太网数据帧的格式分析

    大家都知道我们目前的局域网大多数是以太网,但以太网有多种标准,其数据帧有多种格式,恐怕有许多人不是太清楚,本文的目的就是通过帧格式和Sniffer捕捉的数据包解码来区别它们。

    以太网这个术语一般是指数字设备公司(DigitalEquipment)、英特尔公司(Intel)和施乐公司(Xerox)在1982年联合公布的一个标准(实际上它是第二版本,第一版本早在1972年就在施乐公司帕洛阿尔托研究中心PARC里产生了)。它是目前TCP/IP网络采用的主要的局域网技术。它采用一种称作CSMA/CD的媒体接入方法,其意思是带冲突检测的载波侦听多路接入(Carrier Sense, Multiple Access with CollisionDetection)。它的速率为10 Mb/s,地址为48 bit。

    1985年,IEEE(电子电气工程师协会)802委员会公布了一个稍有不同的标准集,其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络。这三者的共同特性由802.2标准来定义,那就是802网络共有的逻辑链路控制(LLC)。不幸的是,802.2和802.3定义了一个与以太网不同的帧格式,加上1983年Novell为其Netware开发的私有帧,这些给以太网造成了一定的混乱,也给我们学习以太网带来了一定的影响。

    1、通用基础

    数据链路层头(Header)是数据链路层的控制信息的长度不是固定的,根据以太网数据帧的格式的不同而不同,那么判断IEEE802.3、IEEE802.3 SNAP、Ethernet Version2、Netware 802.3“Raw”这些数据帧的最主要依据也源于Header的变化。

    从Sniffer捕捉数据包中也可以看出,Sniffer捕捉数据包的时候是掐头去尾的,不要前面的前导码,也丢弃后面的CRC校验(注意它只是不在Decode里显示该区域,但并不代表它不去做数据包CRC校验),这就是很多人困惑为什么Sniffer捕捉到的数据包长度跟实际长度不相符的原因。那么,Sniffer是如何来判断这些不同类型的以太网格式呢?

    Sniffer可以判断出不同的以太网格式,这里需要注意的是,Sniffer在数据包解码时有自己的格式,所以有Offset之说,offset ØE是指在SnifferHex解码窗口中从左向右第15位的数值。大家如果有点发懵的话,没有关系,看完后面的格式分析后再来分析前面提到的,相信一定能够明白?

    下面我们通过一些具体的数据包来说明各种以太网格式的具体区别。

    2、Ethernet Version2

    以太网版本2是先于IEEE标准的以太网版本。

    从数据包中可以看出,EthernetV2通过在DLC头中2个字节的类型(Type)字段来辨别接收处理。类型字段是用来指定上层协议的(如0800指示IP、0806指示ARP等),它的值一定是大于05FF的,它提供无连接服务的,本身不控制数据(DATA)的长度,它要求网络层来确保数据字段的最小包长度(46字节)。

    Sniffer捕获的Ethernet V2帧的解码,可以看到在DLC层,源DLC地址后紧跟着就是以太网类型(Etehertype)值0800,代表上层封装的是IP报文,0800大于05FF,因而我们可以断定它是Ethernet V2的帧。

     

    3、IEEE802.3

    IEEE802.3把DLC层分隔成明显的两个子层:MAC层和LLC层,其中MAC层主要是指示硬件目的地址和源地址。LLC层用来提供一些服务:

    – 通过SAP地址来辨别接收和发送方法

    – 兼容无连接和面向连接服务

    – 提供子网访问协议(Sub-network Access Protocol,SNAP),类型字段即由它的首部给出。

    MAC层要保证最小帧长度不小于64字节,如果数据不满足64字节长度就必须进行填充。

    是Sniffer捕获的IEEE802.3帧的解码,可以看到在DLC层源地址后紧跟着就是802.3的长度(Length)字段0026,它小于05FF,可以肯定它不是Ethernet V2的帧,而接下来的Offset0E处的值“4242”(代表DSAP和SSAP),既不是Novell 802.3 “Raw”的特征值“FFFF”,也不是IEEE 802.3SNAP的特征值“AAAA”,因此它肯定是一个IEEE802.3的帧。

     

    4、IEEE802.3 SNAP

    SNAP (Sub-Network AccessProtocol)子网访问协议,是逻辑链路控制(Logical LinkControl)的一个子集,它允许协议不用通过服务访问点(SAP)即可实现IEEE兼容的MAC层功能,因此它在DSAP和SSAP域里的值是固定的(AAAA)。也正源于此,它需要额外提供5个字节的头来指定接收方法,3个字节标识厂商代码,2个字节标识上层协议。

    其MAC层保证数据帧长度不小于64字节,不足的话需要进行数据填充。

    是Sniffer捕获的IEEE802.3SNAP帧的解码,可以看到在DLC层源地址后紧跟着就是802.3的长度(Length)字段0175,它小于05FF,可以肯定它不是Ethernet V2的帧,而接下来的Offset 0E处的值“AAAA”(代表DSAP和SSAP),这是IEEE 802.3SNAP的特征值“AAAA”,因此可以断定它是一个IEEE802.3 SNAP的帧。

     

    5、Novell Netware 802.3 “Raw”

    虽然它的产生先于IEEE802.3规范,但已成为IEEE802.3规范的一部分。它仅使用DLC层的下半部,而不使用LLC。

    802.3 “Raw”帧通过在DLC头中2个字节的长度(Length)字段来标记数据帧长度,而在长度字段后紧跟着就是两个字节的十六进制值FFFF,它是用来标识IPX协议头的开始。为了确保最小数据帧长度为64字节,MAC层会进行填充数据区域来确保最小长度。

    在所有工作站都使用同一种数据帧类型情况下不会有什么问题,但如果是在混合以太网帧类型环境中,Novell的这种以太网帧会造成负面影响:当Novell发出广播帧时,其FF字段正好是IEEE802.3帧中的服务访问点(SAP)域,它的“FF”值代表着广播SAP,因此所有的工作站(不管是不是Netware工作站)都会拷贝,这会造成不必要的广播影响。

    Sniffer捕获的Netware 802.3“RAW”帧的解码,可以看到在DLC层源地址后紧跟着就是802.3的长度(Length)字段0120,它小于05FF,可以肯定它不是Ethernet V2的帧,而接下来的Offset 0E处的值“FFFF”(代表IPX协议的开始),这是Netware 802.3“Raw”的特征值“FFFF”,因此可以断定它是一个Novell 802.3 “Raw”的帧。

     

    二、 Ethernet V2帧与IEEE 802.3帧的比较

    因为这两种帧是我们在现在的局域网里最常见的两种帧,因此,我们对它们进行一些比较。

    Ethernet V2可以装载的最大数据长度是1500字节,而IEEE802.3可以装载的最大数据是1492字节(SNAP)或是1497字节; Ethernet V2不提供MAC层的数据填充功能,而IEEE802.3不仅提供该功能,还具备服务访问点(SAP)和SNAP层,能够提供更有效的数据链路层控制和更好的传输保证。那么我们可以得出这样的结论:Ethernet V2比IEEE802.3更适合于传输大量的数据,但EthernetV2缺乏数据链路层的控制,不利于传输需要严格传输控制的数据,这也正是IEEE802.3的优势所在,越需要严格传输控制的应用,越需要用IEEE802.3或SNAP来封装,但IEEE802.3也不可避免的带来数据装载量的损失,因此该格式的封装往往用在较少数据量承载但又需要严格控制传输的应用中。

    在实际应用中,我们会发现,大多数应用的以太网数据包是EthernetV2的帧(如HTTP、FTP、SMTP、POP3等应用),而交换机之间的BPDU(桥协议数据单元)数据包则是IEEE802.3的帧,VLANTrunk协议如802.1Q和Cisco的CDP(思科发现协议)等则是采用IEEE802.3SNAP的帧。大家有兴趣的话,可以利用Sniffer等协议分析工具去捕捉数据包,然后解码查看是不是这样的。

    转载于:https://www.cnblogs.com/zhangbing12304/p/11016618.html

    展开全文
  • 以太网帧结构详解

    万次阅读 多人点赞 2019-07-15 21:52:59
    以太网帧结构详解前言分层模型- OSI分层模型– TCP/IP数据封装终端之间的通信帧格式Ethernet_II 帧格式IEEE802.3 帧格式数据帧传输以太网的MAC地址数据帧的发送和接收单播广播组播发送与接收 前言 20世纪60年代以来...

    前言

    20世纪60年代以来,计算机网络得到了飞速发展。各大厂商和标准组织为了在数据通信网络领域占据主导地位,纷纷推出了各自的网络架构体系和标准,如IBM公司的SNA协议Novell公司的IPX/SPX协议,以及广泛流行的OSI参考模型和TCP/IP协议。同时,各大厂商根据这些协议生产出了不同的硬件和软件。标准组织和厂商的共同努力促进了网络技术的快速发展和网络设备种类的迅速增长。网络通信中,“协议”和“标准”这两个词汇常常可以混用。同时,协议或标准本身又常常具有层次的特点。

    一般地,关注于逻辑数据关系的协议通常被称为上层协议,而关注于物理数据流的协议通常被称为低层协议。IEEE 802就是一套用来管理物理数据流在局域网中传输的标准,包括在局域网中传输物理数据的802.3以太网标准。还有一些用来管理物理数据流在使用串行介质的广域网中传输的标准,如帧中继FR(Frame Relay)高级数据链路控制HDLC(High-Level Data Link Control)异步传输模式ATM(Asynchronous Transfer Mode)

    分层模型- OSI

    不同的协议栈用于定义和管理不同网络的数据转发规则。
    在这里插入图片描述
    国际标准化组织ISO1984年提出了OSI RM(Open System Interconnection Reference Model,开放系统互连参考模型)。OSI 参考模型很快成为了计算机网络通信的基础模型。

    OSI参考模型具有以下优点

    1. 简化了相关的网络操作;
    2. 提供了不同厂商之间的兼容性;
    3. 促进了标准化工作;
    4. 结构上进行了分层;
    5. 易于学习和操作。

    OSI参考模型各个层次的基本功能如下:

    1.物理层: 在设备之间传输比特流,规定了电平、速度和电缆针脚。

    2.数据链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。

    3.网络层:提供逻辑地址,供路由器确定路径

    4.传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。

    5.会话层:负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。

    6.表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。

    7.应用层:OSI参考模型中最靠近用户的一层,为应用程序提供网络服务。

    分层模型– TCP/IP

    在这里插入图片描述
    TCP/IP模型同样采用了分层结构,层与层相对独立但是相互之间也具备非常密切的协作关系。

    TCP/IP模型将网络分为四层。TCP/IP模型不关注底层物理介质,主要关注终端之间的逻辑数据流转发

    TCP/IP模型的核心是网络层和传输层网络层解决网络之间的逻辑转发问题,传输层保证源端到目的端之间的可靠传输

    最上层的应用层通过各种协议向终端用户提供业务应用。

    数据封装

    在这里插入图片描述
    应用数据需要经过TCP/IP每一层处理之后才能通过网络传输到目的端,每一层上都使用该层的协议数据单元PDU(Protocol Data Unit)彼此交换信息。

    不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。

    1. 如上层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段 )
    2. 数据段被传递给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包)
    3. 数据包被传递到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧)
    4. 最后,帧被转换为比特(物理层)

    通过网络介质传输。这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。

    终端之间的通信

    在这里插入图片描述
    数据链路层控制数据帧在物理链路上传输。

    数据包在以太网物理介质上传播之前必须封装头部和尾部信息。封装后的数据包称为称为数据帧,数据帧中封装的信息决定了数据如何传输。

    以太网上传输的数据帧有两种格式,选择哪种格式由TCP/IP协议簇中的网络层决定。

    帧格式

    在这里插入图片描述

    • 以太网上使用两种标准帧格式。

    第一种是上世纪80年代初提出的DIX v2格式,即Ethernet II帧格式。Ethernet II后来被IEEE 802标准接纳,并写进了IEEE 802.3x-1997的3.2.6节。

    第二种是1983年提出的IEEE 802.3格式。这两种格式的主要区别在于,Ethernet II格式中包含一个Type字段,标识以太帧处理完成之后将被发送到哪个上层协议进行处理。IEEE 802.3格式中,同样的位置是长度字段。

    • 不同的Type字段值可以用来区别这两种帧的类型

    Type字段值小于等于1500或者十六进制的0x05DC)时,帧使用的是IEEE 802.3格式。

    Type字段值大于等于1536 (或者十六进制的0x0600)时,帧使用的是Ethernet II格式。

    以太网中大多数的数据帧使用的是Ethernet II格式。

    以太帧中还包括源和目的MAC地址,分别代表发送者的MAC和接收者的MAC,此外还有帧校验序列字段,用于检验传输过程中帧的完整性。

    Ethernet_II 帧格式

    在这里插入图片描述
    Ethernet_II 帧类型值大于等于1536 (0x0600)

    以太网数据帧的长度在64-1518字节之间

    Ethernet_II的帧中各字段说明如下:

    1. DMAC(Destination MAC)是目的MAC地址。DMAC字段长度为6个字节,标识帧的接收者。
    2. SMAC(Source MAC)是源MAC地址。SMAC字段长度为6个字节,标识帧的发送者。
    3. 类型字段Type)用于标识数据字段中包含的高层协议,该字段长度为2个字节。类型字段取值为0x0800的帧代表IP协议帧;类型字段取值为0806的帧代表ARP协议帧。
    4. 数据字段(Data)是网络层数据,最小长度必须为46字节以保证帧长至少为64字节,数据字段的最大长度为1500字节。
    5. 循环冗余校验字段FCS)提供了一种错误检测机制。该字段长度为4个字节。

    IEEE802.3 帧格式

    在这里插入图片描述
    IEEE 802.3 帧长度字段值小于等于1500 (0x05DC)

    IEEE 802.3帧格式类似于Ethernet_II帧,只是Ethernet_II帧的Type域被802.3帧的Length域取代,并且占用了Data字段的8个字节作为LLC和SNAP字段。

    Length字段定义了Data字段包含的字节数

    逻辑链路控制LLC(Logical Link Control)由目的服务访问点DSAP(Destination Service Access Point)、源服务访问点SSAP(Source Service Access Point)和Control字段组成

    SNAP(Sub-network Access Protocol)由机构代码(Org Code)和类型(Type)字段组成。Org code三个字节都为0。Type字段的含义与Ethernet_II帧中的Type字段相同。IEEE802.3帧根据DSAP和SSAP字段的取值又可分为以下几类:

    1. DSAP和SSAP都取特定值0xff时,802.3帧就变成了Netware-ETHERNET帧,用来承载NetWare类型的数据。
    2. DSAP和SSAP都取特定值0xaa时,802.3帧就变成了ETHERNET_SNAP帧。ETHERNET_SNAP帧可以用于传输多种协议。
    3. DSAP和SSAP其他的取值均为纯IEEE802.3帧。

    数据帧传输

    在这里插入图片描述
    数据链路层基于MAC地址进行帧的传输

    以太网在二层链路上通过MAC地址来唯一标识网络设备,并且实现局域网上网络设备之间的通信。MAC地址也叫物理地址,大多数网卡厂商把MAC地址烧入了网卡的ROM中。发送端使用接收端的MAC地址作为目的地址。以太帧封装完成后会通过物理层转换成比特流在物理介质上传输。

    以太网的MAC地址

    在这里插入图片描述
    MAC地址由两部分组成,分别是供应商代码序列号。其中前24位代表该供应商代码,由IEEE管理和分配。剩下的24位序列号由厂商自己分配。

    如同每一个人都有一个名字一样,每一台网络设备都用物理地址来标识自己,这个地址就是MAC地址。网络设备的MAC地址是全球唯一的。MAC地址长度为48比特,通常用十六进制表示。MAC地址包含两部分:前24比特是组织唯一标识符(OUI,Organizationally Unique Identifier),由IEEE统一分配给设备制造商。

    例如,华为的网络产品的MAC地址前24比特是0x00e0fc。后24位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配(这里所说的产品可以是网卡或者其他需要MAC地址的设备)。

    数据帧的发送和接收

    单播

    在这里插入图片描述
    局域网上的帧可以通过三种方式发送。

    第一种是单播,指从单一的源端发送到单一的目的端。每个主机接口由一个MAC地址唯一标识,MAC地址的OUI中,第一字节第8个比特表示地址类型。对于主机MAC地址,这个比特固定为0,表示目的MAC地址为此MAC地址的帧都是发送到某个唯一的目的端。

    冲突域中,所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机才会接收并处理收到的帧。

    广播

    在这里插入图片描述
    第二种发送方式是广播,表示帧从单一的源发送到共享以太网上的所有主机。广播帧的目的MAC地址为十六进制的FF:FF:FF:FF:FF:FF所有收到该广播帧的主机都要接收并处理这个帧。

    广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。

    当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。

    组播

    在这里插入图片描述
    第三种发送方式为组播组播比广播更加高效。组播转发可以理解为选择性的广播,主机侦听特定组播地址,接收并处理目的MAC地址为该组播MAC地址的帧。

    组播MAC地址和单播MAC地址是通过第一字节中的第8个比特区分的。组播MAC地址的第8个比特为1,而单播MAC地址的第8个比特为0。

    当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下,通常会使用组播方式。

    发送与接收

    在这里插入图片描述

    当主机接收到的数据帧所包含的目的MAC地址是自己时,会把以太网封装剥掉后送往上层协议。

    帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网络中,这个帧可能到达多个主机。主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。

    如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果帧的FCS值与本机计算的值不同,主机会认为帧已被破坏,并会丢弃该帧。如果该帧通过了FCS校验,则主机会根据帧头部中的Type字段来确定将帧发送给上层哪个协议处理

    本例中,Type字段的值为0x0800,表明该帧需要发送到IP协议上处理。在发送给IP协议之前,帧的头部和尾部会被剥掉。

    • 持续更新

      各位观看学习交流的小伙伴们,如果还没看爽的话,点开我的头像,有更多关于计算机网络的详细资料,以及更多惊喜等着你来赏析!

      如果大家觉得有帮助的话,可以动动你们的金手指点个赞或者是转发到空间、朋友圈里,让更多和你一样优秀的人看见欧!!!

    • 给未来自己的三行情书

      笔耕不断,夜以继日!
      生命不息,奋斗不止!!
      只有度过了一段连自己都被感动的日子,才会变成那个最好的自己!!!

    你们说呢?

    展开全文
  • 以太网与以太网帧格式-详解

    千次阅读 2013-12-19 20:46:04
    以太网与以太网帧格式 很多人将局域网(Local Area Network,LAN)和以太网(Ethernet)混为一谈,这个误解大概是因为和其他局域网技术比较起来,以太网技术使用得是如此普遍、发展得是如此地迅速,以至于人们...
    以太网与以太网帧格式

    很多人将局域网(Local Area Network,LAN)和以太网(Ethernet)混为一谈,这个误解大概是因为和其他局域网技术比较起来,以太网技术使用得是如此普遍、发展得是如此地迅速,以至于人们将"以太网"当作了"局域网"的代名词。
      
      本节将讨论"局域网"和"以太网"二者之间的关系以及相关的一些基础知识。

    详细的各种帧格式详见:http://www.iana.org/assignments/ethernet-numbers
      
      1 以太网概述
      
      1973年,施乐公司(Xerox)开发出了一个设备互连技术并将这项技术命名为"以太网(Ethernet)"。Ethernet采用了总线竞争式的介质访问方法(起源于夏威夷大学在60年代研制的ALOHA网络),它的问世是局城网发展史上的一个重要里程碑。
      
      1979年,Xerox与DEC、Intel共同起草了一份10 Mbps以太网物理层和数据链路层的规范,称为DIX(Digital、Intel、Xerox)规范-DIX 1.0。
      
      1980年2月(美国)电气电子工程师学会(IEEE)成立了专门负责制定局域网络标准的IEEE 802委员会。该委员会开始研究一系列局域网(LAN)和城域网(MAN)标准,这些标准统称为IEEE 802标准。其中,IEEE 802.3对于基于总线型的局域网进行了规定(实际上IEEE 802.3标准的制定过程中参考、借鉴了很多已经实现的以太网技术)。
      
      1982年,DIX修改并发布了自己的以太网新标准:DIX 2.0。
      
      1983年,Novell根据初步形成的IEEE 802.3规范发布了Novell专用的以太网帧格式,常被称为802.3 原始帧格式(802.3 raw)。
      
      1984-1985年,IEEE 802委员会公布了五项标准IEEE 802.1~IEEE 802.5。其中,公布了两种802.3帧格式,即802.3 SAP和802.3 SNAP。
      
      后来,IEEE 802标准被国际标准化组织ISO修订并作为国际标准,称为ISO 8802。
      
      2 以太网技术概述
      
      尽管局域网的各种标准在内容上有不少区别,但是,其主要的技术实现方法是相近的。
      
      2.1 Ethernet地址
      
      为了标识以太网上的每台主机,需要给每台主机上的网络适配器(网络接口卡)分配一个唯一的通信地址,即Ethernet地址或称为网卡的物理地址、MAC地址。
      
      IEEE负责为网络适配器制造厂商分配Ethernet地址块,各厂商为自己生产的每块网络适配器分配一个唯一的Ethernet地址。因为在每块网络适配器出厂时,其Ethernet地址就已被烧录到网络适配器中。所以,有时我们也将此地址称为烧录地址(Burned-In-Address,BIA)。
      
      Ethernet地址长度为48比特,共6个字节,如图1所示。其中,前3字节为IEEE分配给厂商的厂商代码,后3字节为网络适配器编号。
      

     以太网与以太网帧格式-详解

      
    图1  Ethernet地址

      
      2.2 CSMA/CD
      
      在ISO的OSI参考模型中,数据链路层的功能相对简单。它只负责将数据从一个节点可靠地传输到相邻节点。但在局域网中,多个节点共享传输介质,必须有某种机制来决定下一个时刻,哪个设备占用传输介质传送数据。因此,局域网的数据链路层要有介质访问控制的功能。为此,一般将数据链路层又划分成两个子层:
      
      ●逻辑链路控制LLC(Logic Line Control)子层
      
      ●介质访问控制MAC(Media Access Control)子层
      
     以太网与以太网帧格式-详解

      
    图2  LLC和MAC子层

      
      如图2所示。其中,LLC子层负责向其上层提供服务;MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性。
      
      在MAC子层的诸多功能中,非常重要的一项功能是仲裁介质的使用权,即规定站点何时可以使用通信介质。
      
      实际上,局域网技术中是采用具有冲突检测的载波侦听多路访问(Carrier Sense Multiple Access / Collision Detection,CSMA/CD)这种介质访问方法的。
      
      在这种介质访问方法中规定:在发送数据之前,一个节点必须首先侦听网线上的载波,如果在9.6微秒的时间之内没有检测到载波(说明通信介质空闲),节点才可以发送一帧数据。
      
      如果两个节点同时检测到介质空闲并同时发送出一帧数据,则会导致数据帧的冲突,双方的数据帧均被破坏。一方面,检测到冲突的节点会发送"冲突增强"信号(32比特的"1")通知介质上的每个节点发生了冲突。另一方面,发生冲突的节点在再次发送自己的数据帧之前会各自等待一段随机的时间。
      
      随着以太网上节点数量的增加,冲突的数量也随之增加,而整个网段的有效带宽将随之减少。
      
      在后面的章节中,我们将学习如何利用网桥、交换机等设备将一个网段划分成多个独立的冲突域,进而增加每个网段的可用带宽。
      
      3 以太网帧格式
      
      目前,有四种不同格式的以太网帧在使用,它们分别是:
      
      ●Ethernet II即DIX 2.0:Xerox与DEC、Intel在1982年制定的以太网标准帧格式。Cisco名称为:ARPA。
      
      ●Ethernet 802.3 raw:Novell在1983年公布的专用以太网标准帧格式。Cisco名称为:Novell-Ether。
      
      ●Ethernet 802.3 SAP:IEEE在1985年公布的Ethernet 802.3的SAP版本以太网帧格式。Cisco名称为:SAP。
      
      ●Ethernet 802.3 SNAP:IEEE在1985年公布的Ethernet 802.3的SNAP版本以太网帧格式。Cisco名称为:SNAP。
      
      在每种格式的以太网帧的开始处都有64比特(8字节)的前导字符,如图3所示。其中,前7个字节称为前同步码(Preamble),内容是16进制数0xAA,最后1字节为帧起始标志符0xAB,它标识着以太网帧的开始。前导字符的作用是使接收节点进行同步并做好接收数据帧的准备。
      
     以太网与以太网帧格式-详解

      
    图3  以太网帧前导字符

      
      除此之外,不同格式的以太网帧的各字段定义都不相同,彼此也不兼容。
      
      3.1 Ethernet II帧格式
      
      如图4所示,是Ethernet II类型以太网帧格式。
      
     以太网与以太网帧格式-详解

      
    图4  Ethernet II帧格式

      
      Ethernet II类型以太网帧的最小长度为64字节(6+6+2+46+4),最大长度为1518字节(6+6+2+1500+4)。其中前12字节分别标识出发送数据帧的源节点MAC地址和接收数据帧的目标节点MAC地址。
      
      接下来的2个字节标识出以太网帧所携带的上层数据类型,如16进制数0x0800代表IP协议数据,16进制数0x809B代表AppleTalk协议数据,16进制数0x8138代表Novell类型协议数据等。
      
      在不定长的数据字段后是4个字节的帧校验序列(Frame Check Sequence,FCS),采用32位CRC循环冗余校验对从"目标MAC地址"字段到"数据"字段的数据进行校验。
      
      3.2 Ethernet 802.3 raw帧格式
      
      如图5所示,是Ethernet 802.3 raw类型以太网帧格式。
      
     以太网与以太网帧格式-详解

      
    图5  Ethernet 802.3 raw帧格式

      
      在Ethernet 802.3 raw类型以太网帧中,原来Ethernet II类型以太网帧中的类型字段被"总长度"字段所取代,它指明其后数据域的长度,其取值范围为:46-1500。
      
      接下来的2个字节是固定不变的16进制数0xFFFF,它标识此帧为Novell以太类型数据帧。
      
      3.3 Ethernet 802.3 SAP帧格式
      
      如图6所示,是Ethernet 802. 3 SAP类型以太网帧格式。
      
     以太网与以太网帧格式-详解

      
    图6  Ethernet 802. 3 SAP帧格式
      

      从图中可以看出,在Ethernet 802.3 SAP帧中,将原Ethernet 802.3 raw帧中2个字节的0xFFFF变为各1个字节的DSAP和SSAP,同时增加了1个字节的"控制"字段,构成了802.2逻辑链路控制(LLC)的首部。LLC提供了无连接(LLC类型1)和面向连接(LLC类型2)的网络服务。LLC1是应用于以太网中,而LLC2应用在IBM SNA网络环境中。
      
      新增的802.2 LLC首部包括两个服务访问点:源服务访问点(SSAP)和目标服务访问点(DSAP)。它们用于标识以太网帧所携带的上层数据类型,如16进制数0x06代表IP协议数据,16进制数0xE0代表Novell类型协议数据,16进制数0xF0代表IBM NetBIOS类型协议数据等。
      
      至于1个字节的"控制"字段,则基本不使用(一般被设为0x03,指明采用无连接服务的802.2无编号数据格式)。
      
      3.4 Ethernet 802.3 SNAP帧格式
      
      如图7所示,是Ethernet 802. 3 SNAP类型以太网帧格式。
      
    以太网与以太网帧格式-详解

      
    图7  Ethernet 802. 3 SNAP帧格式

      
      Ethernet 802. 3 SNAP类型以太网帧格式和Ethernet 802. 3 SAP类型以太网帧格式的主要区别在于:
      
      ●2个字节的DSAP和SSAP字段内容被固定下来,其值为16进制数0xAA。
      
      ●1个字节的"控制"字段内容被固定下来,其值为16进制数0x03。
      
      ●增加了SNAP字段,由下面两项组成:
      
      ◆新增了3个字节的组织唯一标识符(Organizationally Unique Identifier,OUI ID)字段,其值通常等于MAC地址的前3字节,既网络适配器厂商代码。

    记录,学习

    展开全文
  • 以太网帧格式、IP数据报格式、TCP段格式+UDP段格式 详解
  • 感谢原博主的分享,原文链接:以太网帧格式、IP数据报格式、TCP段格式+UDP段格式 详解 转载只为方便自己梳理知识点,如有侵权请联系本人删除,再次感谢原博主:苍月代表我 图片同为转载 1、ISO开放系统有以下几层...
  • 如图所示,显示两种不同形式的封装格式。最常用的封装格式是RFC894定义的格式。两种帧格式均采用48bit的目的地址和源地址。
  • 【TCP/IP详解以太网帧格式

    千次阅读 2017-04-11 18:00:42
    以太网帧格式: 0411-3.jpg(40.53 KB, 下载次数: 0) 下载附件 半小时前上传 解析: 以太网目的地址:接收方设备的硬件地址(48bit,目的地址全为1的特殊地址是广播地址)。 以太网源地址:发送方的硬件...
  • TCP/IP详解--数据链路层 以太网帧格式
  • 6、以太网帧格式   (1)其中的源地址和目的地址是指网卡的硬件地址(也叫MAC 地址),长度是48 位,是在网卡出厂时固化的。 (2)注意网卡芯片(例如DM9000A)收到的数据就是如上所示的一长串数据;...
  • 一、以太网帧格式  以太网的帧格式才有6字节的目的地址和源头地址。帧长度字段是指它后续数据的字节长度,但不包括CRC校验码。这个长度是提供给上层协议的数据负载,也就是上层协议封装的数据最长度不要超过...
  • 以太网帧格式

    2016-02-17 11:36:08
    具体总体的封装请参考本博客TCP/IP中的IP封装一章,一下使具体详解:因为以太包的类型不同,格式也不尽相同:但大体上格式统一 Etherne II 报头8 目标地址6 源地址6 以太类型2 有效负载46-1500 检验序列...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 134
精华内容 53
关键字:

以太网帧格式详解