雏鹰部落

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2853|回复: 2

[讨论/求助] [转贴]浅谈以太网的工作机制 

[复制链接]
发表于 2005-10-24 13:07:21 | 显示全部楼层 |阅读模式
<P>关于以太网<BR>以太网这个名次最早由Bob Metcalfe(3Com的创始人)提出。以太这个词源于物理学,早先人们认为宇宙中充满着以太,认为以太是电磁波的载体(后被否定),电磁波正是以它作为载体传播到宇宙的每个角落。这个名字很生动的描述了网络的特点:广播型网络。<BR>关于以太网的工作机制<BR>以太网的工作机制在IEEE的802.3中有明确的定义,其核心内容就是CSMA/CD-Carrier Sense Multiple Access/Collision Detect(载波侦听多路访问/冲突检测)。这个是以太网区别于其他局域网最显著的特征。<BR>CSMA/CD的工作过程<BR>1. 载波侦听<BR>由于是共享型网络,所以一个站在发送数据前为了避免与其他站同时发消息而产生碰撞,工作站首先要侦听网络的状况,看看传输介质上是不是有载波信号(载波侦听),其检测过程是:当网卡的一线对产生信号时,此时去测试另一对,若同时出现信号则表示出现了碰撞。这个过程被人们称为:先听后发。<BR>2. 多路访问<BR>意思是:一个节点发送数据可以同时到达多个节点。正好描述了以太网的特征。<BR>3. 碰撞检测<BR>为了避免两个站同时发送数据引入了碰撞检测的机制(设想两个站都准备发送数据而侦听网络,此时介质上没有载波,如果这时两个站都认为可以发送数据而同时发送,那么冲突还是不可能避免)所以在发送过程中要不停的检测冲突的发生,如果检测到便立刻停止发送。这个过程被称作:边听边发。<BR>4. 回退算法和回退区间<BR>当检测到有碰撞发生时,工作站均会执行这个算法以调整自己的发送时间,从而达到避免碰撞发生</P><P>关于算法<BR>下面我们着重来看看回退和回退区间的算法<BR>1. 间隙时间(Slot time):由于以太网帧的数据字段长度是变长的(46-1500字节),所以检测的时间也是可变的,对算法的实现是不利的,所以规定Slot time是网卡发送512bit(64个字节)所用的时间,对于不同速率的以太网标准,这个时间是不同的。为什么规定要取64个字节作为这个标准时间?这个要看一下以太网帧的结构(以802.3的帧为例)<BR><BR>7 1 6 6 2 46-1500 4<BR>前导码(PRE) 帧首定界(SFD) 目的地址<BR>(DA) 源地址<BR>(SA) 长度<BR>(LEN) 数据区<BR>(DATA) 校验序列<BR>(FCS)<BR><BR>最小的帧长度最少应该包括下面几项:源,目地址;长度字段,数据区(取最小长度);校验序列,所以加起来就是6+6+2+46+4=64(字节),因为这个长度是帧的最小长度,当小于这个长度时帧肯定是不完整的(碎片),所以规定这个最小帧长度为碰撞检测的时间。<BR>还有的书上给出了Slot time的近似算法Slot time≈2S/0.7C+2T(其中S为媒体总长度,C为光速,T为在物理层的延时)另外还有就是:L/R=Slot time(L为最小帧长度,R为网络的传输率);由上面两个算式可以导出:L≈(2S/0.7C+2T)/R,由于碰撞只能发生在小于或者等于L的范围内,所以L可以理解为媒体上传输的最大碎片长度。<BR>2. 回退算法与回退区间<BR>协议规定:从上一次发生碰撞到重新执行CSMA/CD的时间间隔被称为回退时间。我们把Slot time记为Δt,回退的时间间隔总是Δt的整数倍。回退区间为2的n次方(其中n为碰撞次数),例如:当发生一次碰撞时,区间为2的一次方即2,含义是区间可以选择0和Δt两种,两站对应的组合可以为:<BR>站点A 站点B<BR>选择0 选择0<BR>选择0 选择Δt<BR>选择Δt 选择0<BR>选择Δt 选择Δt<BR>从表中我们看出:当选择第一和第四种情况的时候,会再次发生碰撞。由此我们不难推出一个一般性的结论:选择的组合数为m×m(其中m=2的n次方)而再次发生碰撞的几率为m/m&amp;sup2;=1/m;由此可以看出,随着n变大后,m成指数变化,相应的碰撞几率会相应的有变小的趋势,但是不可能归零,所以总是有会出现碰撞的几率。但是碰撞的发生并不是总是无之境的,协议规定n的最大值是10,相应的区间在0~1023Δt,如果达到10以后还可以有6次重试的机会。当达到16次时则丢弃此帧,向高层报错并将n清零,进行下面的传输。<BR>关于帧扩展技术<BR>由上面的公式L≈(2S/0.7C+2T)/R,可以看出最小帧长度与碰撞域的距离(跨距S)成正比。随着以太网技术的发展,速度达到了1G的千兆以太网出现,如果仍然按照Slot time为发送64个字节的时间计算,相应的碰撞域范围大约在30m左右,这大大的限制了应用。人们通过采用帧扩展技术增加最小帧长度的方法来达到增加跨距的目的。具体的做法是把最小帧长度由64个字节增加为512字节。当帧长度小于512字节的时候填充相应的字节数以达到。当超过时则不需要进行扩展。帧扩展技术只是在半双工模式下采用的,当采用全双工时就不受CSMA/CD的限制,当然也就无碰撞域的概念,相应的也不需要采用扩展技术。其实在现今,交换机已经代替Hub,相应的端口的模式几乎都处在全双工状态。<BR>关于以太网中继器的个数<BR>现在交换机非常普遍,集线器几乎都已经消失了,但是既然谈到了CSMA/CD就还是提一下这里吧。<BR>在10M以太网中集线器的个数为最多四个(著名的5-4-3-2-1规则),在100M的以太网中为I类最多为1个,II类最多为2个,(其中I类指不能进行编码/解码的,II类为可以进行的)。在1G的以太网中最多为一个。<BR></P>
发表于 2005-10-24 23:19:56 | 显示全部楼层
single,把自己学习的笔记和阅读的资料也可以发在论坛上和大家分享,自己需要查阅的时候还可以上来使用。大家多学习。
 楼主| 发表于 2005-10-25 23:56:02 | 显示全部楼层
<IMG src="http://www.spoto.net/bbs/images/Emotions/48.gif">收到,呵呵@
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|熊猫同学技术论坛|小黑屋| 网络工程师论坛 ( 沪ICP备09076391 )

GMT+8, 2024-12-23 08:19 , Processed in 0.080700 second(s), 18 queries , Gzip On.

快速回复 返回顶部 返回列表