Chinaunix首页 | 论坛 | 博客
  • 博客访问: 363291
  • 博文数量: 71
  • 博客积分: 1656
  • 博客等级: 上尉
  • 技术积分: 931
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-17 10:42
文章分类

全部博文(71)

文章存档

2012年(6)

2011年(9)

2010年(4)

2009年(9)

2008年(43)

我的朋友

分类: 系统运维

2008-12-12 17:32:21

用过NetXray之类的抓包软件的人,可能经常会被一些      不同的Frame Header搞糊涂,为何用的Frame的Header
是这样的,而另外的又不一样。这是因为在Ethernet      中存在几种不同的帧格式,下面我就简单介绍一下几种
不同的帧格式及他们的差异。

一。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)

二.各种不同的帧格式
下面介绍一下各个帧格式  

  • Ethernet II
           就是DIX以太网联盟推出的,它由6个字节的目的MAC地址,6个字节的源MAC地址,2个字节的类型域(用于标示封装在这个Frame、里面数据的类型)以上为Frame Header,接下来是46--1500 字节的数据,和4字节的帧校验)
  • Novell Ethernet
           它的帧头与Ethernet有所不同其中EthernetII帧头中的类型域变成了长度域,后面接着的两个字节为0xFFFF
           用于标示这个帧是Novell Ether类型的Frame 由于前面的0xFFFF站掉了两个字节所以数据域缩小为44-1498个字节,帧校验不变。
  • 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用于标示帧的上层协议
  • 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格式的帧

以太网帧结构概述

  以太网帧是OSI参考模型数据链路层的封装,网络层的数据包被加上帧头和帧尾,构成可由数据链路层识别的数据帧。虽然帧头和帧尾所用的字节数是固定不变的,但根据被封装数据包大小的不同,以太网帧的长度也随之变化,变化的范围是64-1518字节(不包括8字节的前导字)。

一、典型帧结构:Ethernet_II

  Ethernet_II中所包含的字段:
  前导码:包括同步码(用来使局域网中的所有节点同步,7字节长)和侦标志(帧的起始标志7,1字节)两部分;
  目的地址:接收端的MAC地址,6字节长;
  源地址:发送端的MAC地址,6字节长;
  类型:数据包的类型(即上层协议的类型),2字节长;
  数据:被封装的数据包,46-1500字节长;
  校验码:错误检验,4字节长。
  Ethernet_II的主要特点是通过类型域标识了封装在帧里的数据包所采用的协议,类型域是一个有效的指针,通过它,数据链路层就可以承载多个上层(网络层)协议。但是,Ethernet_II的缺点是没有标识帧长度的字段。

二、原始的802.3

  原始的802.3帧是早期的Novell NetWare网络的默认封装。它使用802.3的帧类型,但没有LLC域。同Ethernet_II的区别:将类型域改为长度域,解决了原先存在的问题。但是由于缺省了类型域,因此不能区分不同的上层协议。

三、802.2SAP/SNAP:

  为了区别802.3数据帧中所封装的数据类型, IEEE引入了802.2SAP和SNAP的标准。它们工作在数据链路层的LLC(逻辑链路控制)子层。通过在802.3帧的数据字段中划分出被称为服务访问点(SAP)的新区域来解决识别上层协议的问题,这就是802.2SAP。LLC标准包括两个服务访问点,源服务访问点(SSAP)和目标服务访问点(DSAP)。每个SAP只有1字节长,而其中仅保留了6比特用于标识上层协议,所能标识的协议数有限。因此,又开发出另外一种解决方案,在802.2SAP的基础上又新添加了一个2字节长的类型域(同时将SAP的值置为AA),使其可以标识更多的上层协议类型,这就是802.2SNAP。

帧格式及图解

以太网帧结构概述
  以太网帧是OSI参考模型数据链路层的封装,网络层的数据包被加上帧头和帧尾,构成可由数据链路层识别的数据帧。虽然帧头和帧尾所用的字节数是固定不变的,但根据被封装数据包大小的不同,以太网帧的长度也随之变化,变化的范围是64-1518字节(不包括8字节的前导字)。

一、典型帧结构:Ethernet_II

  Ethernet_II中所包含的字段:
  前导码:包括同步码(用来使局域网中的所有节点同步,7字节长)和侦标志(帧的起始标志7,1字节)两部分;
  目的地址:接收端的MAC地址,6字节长;
  源地址:发送端的MAC地址,6字节长;
  类型:数据包的类型(即上层协议的类型),2字节长;
  数据:被封装的数据包,46-1500字节长;
  校验码:错误检验,4字节长。
  Ethernet_II的主要特点是通过类型域标识了封装在帧里的数据包所采用的协议,类型域是一个有效的指针,通过它,数据链路层就可以承载多个上层(网络层)协议。但是,Ethernet_II的缺点是没有标识帧长度的字段。
Ethernet II:


二、原始的802.3

  原始的802.3帧是早期的Novell NetWare网络的默认封装。它使用802.3的帧类型,但没有LLC域。同Ethernet_II的区别:将类型域改为长度域,解决了原先存在的问题。但是由于缺省了类型域,因此不能区分不同的上层协议。

三、802.2SAP/SNAP:

  为了区别802.3数据帧中所封装的数据类型, IEEE引入了802.2SAP和SNAP的标准。它们工作在数据链路层的LLC(逻辑链路控制)子层。通过在802.3帧的数据字段中划分出被称为服务访问点(SAP)的新区域来解决识别上层协议的问题,这就是802.2SAP。LLC标准包括两个服务访问点,源服务访问点(SSAP)和目标服务访问点(DSAP)。每个SAP只有1字节长,而其中仅保留了6比特用于标识上层协议,所能标识的协议数有限。因此,又开发出另外一种解决方案,在802.2SAP的基础上又新添加了一个2字节长的类型域(同时将SAP的值置为AA),使其可以标识更多的上层协议类型,这就是802.2SNAP。

阅读(6377) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~