Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65491
  • 博文数量: 31
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 320
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-23 09:13
文章分类
文章存档

2011年(1)

2009年(30)

我的朋友

分类: 系统运维

2009-05-23 20:30:26

Ethernet的简史

上世纪70年代,的研发人员为了在实验室的同轴电缆上传输 3Mbps流量的数据而使用CSMA/CD协议发明了Ethernet。这个项目的成功引起了人们的注意,并致使1980年由Digital Equipment、Intel和施乐共同联合开发了10Mbps的Ethernet Version 1.0。

一开始IEEE802.3标准基于Ethernet V1.0实现,并且变化不大。802.3工作组在1983年通过了草案标准,并随后在1985年发布了正式标准(ANSI/IEEE Std.802.3-1985)。从那之后,标准被多次增补,以更好的利用进步的技术和支持更多的media、更快的速率以及更多的网络特性。

Ethernet帧格式

Ethernet的帧格式有多种,比较常见的有以下两种:

1、Ethernet Version 2 或称 Ethernet II格式,这种格式是现在最通用的。

Ethernet version 2 format

2、IEEE 802.2 LLC/SNAP格式

下面逐字段介绍:

Preamble字段:这个字段长8个字节,也有的说法把这8个字节分成两部分,即7个字节的Preamble加1个字节的SFD(Start- of-Frame-Delimiter)字段。两种说法的本质是一样的。7个字节的Preamble是7个10101010二进制bit,1个字节的 SFD是10101011二进制bit。这个字段是用来同步接收的

Dest Add 和Sour Add字段分别是6个字节的源MAC地址和目的MAC地址。

这两种Ethernet格式的帧是可以同时存在于一个Ethernt链路介质上传输的,所以当接收处理收到一个Ethernet帧,读完源MAC再往后读的时候,两种帧的区别就出现了。

对于Ethernet II格式的帧,后面两个字节是Ethernet中封装的协议类型,而对于LLC类型的帧,这两个字节表示后面LLC报文数据的长度。所以,(按照标准上的 说法),如果这两个字节的值小于等于1500(0×340),这就是一个LLC类型的帧,如果这两个字节的值大于1536(0×35E),这个帧就是一个 Ethernet V2帧。其实我并不十分理解,为什么可以这样判断,因为Ethernet的Payload在目前绝大多数厂商的实现下是可以超过1500的,当然可以说这 是非“标准”的,依赖于厂商的具体实现,但是,Ethernet的Type()也是可以小于1500(0×340)的。所以,到底根据什么有这样的推理判断,还请高人指点我。

LLC/SNAP格式的DSAP和SSAP分别代表目的SAP和源SAP,一般值为0xAA

CNTL(control)字段一般值为0×03

OUI(organization unique ID)字段,也叫Org Code,一般设为0×000000

type字段表示帧内数据封装类型,可以参考。

Payload就是帧内封装的报文数据了。如果长度小于64字节,需要自动填充达到64字节。

FCS(Frame check sequence)是32bit的CRC(循环冗余校验)值,这个值由发送方创建,由接收方重新计算以确定帧没有传输错误。

原文地址:

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