免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1593 | 回复: 0
打印 上一主题 下一主题

浅谈Ethernet协议帧格式 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-23 20:30 |只看该作者 |倒序浏览

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格式,这种格式是现在最通用的。

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(
可以参考这个Type列表
)也是可以小于1500(0×340)的。所以,到底根据什么有这样的推理判断,还请高人指点我。
LLC/SNAP格式的DSAP和SSAP分别代表目的SAP和源SAP,一般值为0xAA
CNTL(control)字段一般值为0×03
OUI(organization unique ID)字段,也叫Org Code,一般设为0×000000
type字段表示帧内数据封装类型,可以参考
Type列表

Payload就是帧内封装的报文数据了。如果长度小于64字节,需要自动填充达到64字节。
FCS(Frame check sequence)是32bit的CRC(循环冗余校验)值,这个值由发送方创建,由接收方重新计算以确定帧没有传输错误。
原文地址:
http://adreaman.com/1203ethernet-frame-format.html
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/97173/showart_1939397.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP