Chinaunix首页 | 论坛 | 博客
  • 博客访问: 66563
  • 博文数量: 30
  • 博客积分: 1260
  • 博客等级: 中尉
  • 技术积分: 285
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-03 12:27
文章分类

全部博文(30)

文章存档

2010年(30)

我的朋友

分类: LINUX

2010-08-04 12:07:17

以太网到底是使用什么帧格式?很多人对此都有疑问,为什么会有疑问?因为很多人在不同历史时该、身处不同网络环境会有不同的答案,答案也许差别巨大,但也许他们都是对的。这却令我们这些后来人感到困惑。
 
要搞清楚问题的原因,我们有必要先简单了解一下以太网的历史。

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中的实现.

   

 
因此,总的来讲有两种类型的标准,一个是由行业推出的事实标准Ethernet II,另一个是IEEE根据EthernetII发展而来的802.3 SAP/SNAP,从下图可以看到,这两类型标准的最大不同在于802.3增加了LLC,IEEE802委员会在局域网标准化工作中,将数据链路层分为逻辑链路层LLC和介质访问控制层MAC。
 
LLC负责识别网络层协议,然后对它们进行封装。LLC报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理。它的工作原理是这样的:主机接收到帧并查看其LLC报头,以找到数据包的目的地,比如说,在网际层的IP协议。LLC子层也可以提供流量控制并控制比特流的排序。
 
IEEE 802.2 LLC 应用于 IEEE802.3 (以太网)和 IEEE802.5(令牌环) LAN,以实现如下功能:
管理数据链路通信
链接寻址
定义服务接入点 Service Access Points (SAP)
排序
LLC 为上层提供了处理任何类型 MAC 层的方法,例如,以太网 IEEE 802.3 CSMA/CD 或者令牌环 IEEE 802.5 令牌传递(Token Passing)方式。LLC 是在高级数据链路控制(HDLC : High-Level Data-Link Control)的基础上发展起来的,并使用了 HDLC 规范的子集。LLC 定义了三种数据通信操作类型:
类型1:无连接。该方式不保证发送的信息一定可以收到。
类型2:面向连接。该方式提供了四种服务:连接的建立、确认和数据到达响应、差错恢复(通过请求重发接收到的错误数据实现)以及滑动窗口(系数:128)。滑动窗口用来提高数据传输速率。
类型3:无连接应答响应服务。
类型1的 LLC 无连接服务中规定了一种静态帧格式,并允许在其上运行网络协议。使用传输层协议的网络协议通常会使用服务类型1方式。类型2的 LLC 面向连接服务支持可靠数据传输,运用于不需要调用网络层和传输层协议的局域网环境 。
 
网络上存在有以上两种不同封装类型的数据包,那物理设备如何识别呢?
 
注意到这两种封装类型中“长度”及“类型”字段是复用的,为了区分,IEEE没有分配1536(0x0600)以下的值作为协议类型码,因此,当该字段值小于1536则代表是802.3封装,而大于1536则为EthernetV2封装。
 
因此,普通的局域网使用的通常都是Ethernetv2封装的数据包,这些数据包没有LLC信息,而Wireless网络中,却有使用802.3 SNAP进行封装,带有LLC信息。
 
下图是这两种类型的帧格式,供参考备忘。
 
 
 
 
 
 
 
 
阅读(1139) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~