链路层-协议首部(3)

2009年04月13号 23:05  |  分类:协议基础

上一讲提到了以太网帧的最小长度问题,为什么要定义最小长度呢?为什么最小长度是64字节呢?

这是由以太网的工作模式(CSMA/CD)决定的!传送一个数据帧的时间必须大于碰撞检测所需的最大时间。否则,碰撞检测还没完毕一个数据帧就发送出去了,结果导致碰撞发生,又得重传这个数据帧。传送64字节的数据帧,通常情况下是大于碰撞检测所需的时间!有一个东西,得提一下,一旦碰撞发生,当事主机会随机选择一个延时,重传数据帧!

这一讲我们的主要的任务是通过sniffer手段,来加深对以太网首部的认识!实践。。。。请看下图:

 

sniffer的链路层首部

第一行,就是目的地址(FFFFFFFFFFFF),为什么这里的目的MAC全是F,我们以后会详加解释!目前,大家只需要记住,全F的MAC地址,就是二层的广播地址!

第二行,就是源地址(00FFFFFFFFFF),也就是Toad电脑中网卡的地址。

第三行,就是类型字段了,大家可以看到这是一个ARP包的链路层首部代码是0806。

链路层-协议首部(2)

2009年04月12号 02:50  |  分类:协议基础

      我们先看看以太网和IEEE 802的封装格式:

以太网和IEEE 802封装格式

两种帧格式都采用48位的目的地址和源地址。这就是我们平时所说的硬件地址。ARP和RARP协议分析对32位的IP地址和48位的硬件地址进行映射。

接下来的2个字节在两种帧格式中不相同。在802标准定义的帧格式中,长度字段是指他后续数据的字节长度,但不包括CRC检验码。以太网的类型字段定义了后续数据的类型。在802标准定义的帧格式中,类型字段则由后续的子网接入协议的首部给出。幸运的是,802定义的有效长度值与以太网的有效类型值无一相同,这样,就可以对两种帧格式进行区分。

以太网首部中,类型字段之后就是数据;而在802帧格式中,跟随在后面的是3字节的802.2LLC和5字节的802.2 SNAP。目的服务访问点和源服务访问点的值都设为0xaa。Ctrl字段的值设为3。随后的3个字节org code都置为0。再接下来的2个字节类型字段和以太网帧格式一样。

CRC字段用于帧内后续字节差错的循环冗余码检验。

802.3标准定义的帧和以太网的帧都有最小长度要求。802.3规定数据部分必须至少为38字节,而对于以太网,则要求最少要有46字节。为了保证这一点,必须在不足的空间插入填充字节。在开始观察线路上的分组时将遇到这种最小长度的情况。

链路层-协议首部(1)

2009年04月11号 00:20  |  分类:协议基础

TCP/IP支持多种不同的链路层协议,这取决于用户的实际情况,根据需求选择不同的组网方式,例如:以太网、令牌环网、FDDI、RS-232串行线路等等。

我们首先分析“以太网”的首部格式,当前,以太网是组建局域网最常用的方式。以太网这个术语一般是指数字设备公司、英特尔公司、Xerox公司在1982年联合公布的一个标准。采用一种称作CSMA/CD的媒体接入,中文意思是:带冲突检测的载波侦听多路接入,其英文全称为:Caarrier Sense,Multiple Access With Collision Detection。

1987年,IEEE的802委员会公布了一个稍有不同的标准集:IEEE802.3,特性由IEEE802.2标准来定义。遗憾的是,IEEE802.2和IEEE802.3定了一个与以太网不同的帧格式(为什么,统一标准这么难!都是利益导致的!)。文献【Stallings 1987】对所有的IEEE802标准进行了详细介绍,感兴趣的朋友可以去问问GG。

在TCP/IP中,以太网IP数据包的封装是由RFC 894中定义的(RFC是一个定义标准的文档,大家可以去http://www.ietf.org/rfc.html下载)。IEEE802网络的IP数据包封装是在RFC 1042中定义的。

链路层-入门篇

2009年04月8号 22:40  |  分类:协议基础

链路层负责接收从三层传下来的IP数据包以及ARP和RARP包。有些书上,把ARP和RARP归为第三层(注意:平时说的几层几层是针对于OSI模型而言的,并非TCP/IP协议!)的协议,还有些书把ARP和RARP直接归为二层的协议!在实际应用中,Toad觉得应该把ARP和RARP定义为二、三层之间的协议。其实,处于第几层,这不重要,想怎么归就怎么归,重要的是数据包的封装层次!这一点,我们以后会在Sniffer包中看到!接收到这些包后,经过链路层的处理,发向网络。当然,链路层还负责从网络中接收数据帧,剥离链路层首部,变为数据包传向上层协议!

这里明确一下“数据包”和“数据帧”的区别:

1、用户数据被加上IP首部后,就称为:数据包

2、数据包被加上链路层首部后,就称为:数据帧

网络中传输的是数据帧,而不是,数据包!这个概念一定要搞清楚,从物理的角度看,网线里面传输的是高、低电平。1.5V以下是低电平,3V以上是高电平,还有一种电平叫中间电平,他的物理指标为:1.5V到3V之间。因此,我们做物理层的检测时,可以判断一下这些物理参数是否正确!一高、一低正好被识别为计算机中二进制,高电平被识别为:1,低电平被识别为:0。

下一讲,我们将具体分析链路层首部!瞌睡来老,不好意思。。(砖头留着明天扔我吧,先闪人!)!

Pages: Prev 1 2