以太网是美国施乐公司(Xerox)1975年研制成功的一种电缆连接网络。它是一种基带总线局域网。以太网采用无源电缆作为总线传送数据帧,实现计算机之间资源共享。并以历史上使用电磁波作为传输媒体的“以太(ether)”来命名。
1980年9月,美国DEC公司、英特尔公司(Intel)和施乐(Xerox)三家公司联手提出了10Mbit/s以太网的第一个通信标准DIXV1。随后在1982年又修改成为DIXV2第2版以太网标准,这也是以太网的最后一个版本。
1983年,美国电气和电子工程师学会(IEEE)802委员会的802工作组制订了第一个局域网标准,编号为IEEE 802.3,数据率为10Mbit/s。802.3局域网标准仅对DIXV2以太网标准中的帧格式作了很小一点改动,并允许两种标准的硬件可在同一个局域网上互操作。因此现在都把IEEE 802.3局域网通称为以太网,还规定以太网每个网段的最大通信设备数量为1024个。
由于以太网传输速度快,延时小,误码率低和组网灵活,易扩展,20世纪90年代后,以太网已在局域网市场中取得了垄断地位,以太网几乎已成为局域网的代名词了。
1.IEEE 802标准的参考模型
由于局域网的地理位置范围较小,拓扑结构主要采用总线型、星形、环形和树形等,任意两个站之间只有一条链路,一般无需路径选择,通信控制较简单。网络层的部分功能,如分组寻址、排序、流量控制、差错检测等可纳入链路层完成。
所以,局域网标准只定义了相当于OSI模型中的最下面两层,即物理层和数据链路层。图3-34是IEEE 802模型与OSI参考模型的对应关系。
图3-34 IEEE 802参考模型与OSI参考模型的对应关系
在IEEE 802中,数据链路层分为逻辑链路控制子层(Logical Link Control,LLC)和媒体访问控制子层(Medium Access Control,MAC)。
逻辑链路控制子层(LLC)的主要功能是:差错控制,数据帧编号,建立和释放数据链路层的逻辑连接,提供高层接口,提供不确认的无连接服务(即没有“确认、通信、释放”三阶段的发送接收服务)及面向连接服务(即通信双方都要在线工作,并必须运用“确认、通信、释放”三阶段的发送接收服务)。并与媒体访问控制子层(MAC)共同完成OSI模型中的网络层功能。
媒体访问控制子层(MAC)的主要功能是:寻址、比特流差错检测、维护MAC协议和将上层交下来的数据封装组成帧后进行发送(接收时的过程相反,将帧拆卸)。常用的媒体访问控制方法有:检测数据冲突的载波监听多路访问CSMA/CD、控制令牌(Controltoken)和时槽环(Slotted ring)三种技术。总之,媒体访问控制子层(MAC)是负责解决局域网中多种设备共享传输媒体(介质)时发生的问题。
物理层的任务是提供编码方法、提取时钟信号、发送和接收,并为数据链路层提供服务。
2.MAC帧的格式
以太网MAC帧的格式有两种标准:一种为DIXV2标准,另一种为IEEE 802.3标准,如图3-35所示。
以太网的DIXV2MAC帧较为简单,它由五个字段组成。前两个字段分别为由6B长的目的地址和源地址字段。第三个字段为类型字段,用来标识上一层使用的是什么协议,以便把MAC帧的数据交给该协议。例如,当类型字段的值为Ox0800时,表示上层使用的是TCP/IP协议。如果类型字段的值为Ox8137,则表示该帧是由Novell Netware工作站发送过来的。第四个字段是MAC客户数据字段(简称数据字段),其长度在46~1500B之间。最后第五个字段是由4B组成的帧检验序列(Frame Check Sequence,FCS),检测到的最低误差可小于1×10-14。
图3-35 两种不同的MAC帧格式
a)DIXV2标准 b)IEEE 802.3标准
IEEE 802.3标准规定的MAC帧稍复杂些。它与以太网的DIXV2MAC帧的区别是:
(1)IEEE 802.3的第三个字段是长度/类型字段。这个字段可以用来表示MAC客户数据字段的长度(注意:不是整个数据帧的长度),也可以等同于以太网V2的类型字段。具体地讲:
①若长度/类型字段的数值小于MAC客户数据字段的最大值1500B时,这个字段就表示MAC客户数据段的长度。
②若长度/类型字段的数值大于0x0600(相当于十进制的1536B)时,那么这个字段就表示是类型。因为这个数据值已超过以太网合法的数据字段的长度。
(2)当IEEE 802.3第三个字段表示类型时,那么它和DIXV2的MAC帧就完全一样,它们的MAC客户数据字段是来源于IP层的IP数据报。
当长度/类型字段表示长度时,MAC客户数据字段就必须装入LLC子层的LLC帧。LLC帧的首部有三个字段,即目的服务访问点DSAP(1B)、源服务访问点SSAP(1B)和控制字段(1或2B)。DSAP指出MAC帧的数据应上交给哪个协议?SSAP指出MAC帧是从哪个协议发送来的。LLC帧首部的作用和以太网帧的类型字段差不多。LLC帧数据字段装入的就是网络层的IP数据报。
MAC客户数据字段的长度小于46B时,则应加以填充(内容不限)。这样,整个MAC帧的最小长度为64B(包含14B的首部和4B的尾部),共计64×8bit=512bit。在接收端,凡长度不够64B的帧就都认为是无效帧而被丢弃。
以太网有三种不同的数据交换方式:
(1)单播方式(Unicast),即一对一的传输方式。(www.daowen.com)
(2)广播方式(Broadcast),即一对全体的传输方式。
(3)多播方式(Multicast),即发送给部分站点。
3.CSMA/CD载波监听多点接入/碰撞检测协议
当初提出以太网方案的思路是要寻找最简单的方法将一些相距较近的计算机互相连接起来,使它们可以很方便和很可靠地进行较高速率的数据通信。
以太网把许多计算机连接到一根总线上后,当一台计算机发送数据时,总线上的所有计算机都能检测到这个数据,这种通信方式称为广播式通信。如果总线上每台计算机都有自己唯一的通信地址,在发送数据帧时,在帧的首部写明接收站的地址,那么,只有数据帧中的目的地址与接收计算机的地址一致时,该计算机才能接收到这个数据帧,地址不相符的计算机,则一律不接收。这样便可实现一对一的通信,或者称为点对点通信,如图3-36所示。
图3-36 计算机点对点通信
为简化通信,以太网采取了两种措施:一种是采用无连接工作方式,即不必先建立连接,就可以向接收方直接发送数据。另一种是不要求收到数据的目的站发回确认收到信息的回执报告。其原因是局域网信道的信号质量很好,产生差错的概率很小。目的站如果收到有差错的数据帧时,就会丢弃此帧。局域网通信协议的高层在经过一定时间后,如果没有收到对方的确认信息报告,就会重新发送这个帧。但以太网并不知道这是一个重传帧,而是当作一个新的数据帧来发送。
在图3-36中还可以看到,网络只允许一台计算机发送数据信息,否则各计算机发送的数据就会发生“数据碰撞”,造成大家都无法正常发送数据。为此,以太网采用了一种特殊的协议来协调各计算机在总线网络上因为“多点接入”产生的问题。这个特殊协议就是载波监听多点接入/碰撞检测(Carrier Sense Multiple Accesswith Collision Detection,CSMA/CD)。
CSMA/CD协议的实质是对连接在一根总线上多点接入的许多台计算机(理论上允许最多为1024台)实施“载波监听”和“碰撞检测”,从而对计算机的收发通信实行有效的管理。
“载波监听”是指每个站点(局域网上的计算机通常称为主机、工作站和站点等)在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不发送数据,以免发生数据碰撞。
以太网标准规定各计算机发送的数据都使用曼彻斯特编码的基带信号。PCM脉冲编码调制的二进制基带数字信号是以高电平为“1”和低电平为“0”不断交替的数字信号。这种最简单的基带信号的最大问题是当出现一长串的连续“1”或连续“0”时,在接收端无法从收到的比特流中提取位同步信号。曼彻斯特编码则可解决这一问题。它的编码方法是将每一个码元再分成两个相等的间隔。即码元“1”的前半个间隔为高电平,后半个间隔为低电平。码元“0”则刚好相反。这种编码的好处是可以保证在每一个码元的正中间时刻出现一次电平转换,对接收端提取位同步信号是非常有利的。它的缺点是占有的频带宽度比原始的基带信号(如PCM编码信号)增加了一倍。另一种解决无法从收到的比特流提取位同步信号的方法叫做差分曼彻斯特编码,它可获得更好的抗干扰性能,但需要较复杂的技术。
以太网的最低数据率是10Mbit/s,这样高的数据率,耳朵是听不见的。因此,“载波监听”是用电子测量方法检测网络总线上信号电平的摆动值来实现的。
“碰撞检测”又称“冲突检测”。因为碰撞就会发生冲突。发生碰撞时,总线上传输的信号就会发生严重失真,无法再恢复出原来有用的信息。因此,每个发送数据的站,一旦发现总线上出现了数据碰撞,总线上的信号电平摆动值超过一定的门限值时,就认为总线上出现了至少有两个站同时在发送数据。就必须立即停止发送,免得影响通信和浪费网络资源。然后再等待一段随机时间,待信道监听(或监测)为“空闭”后再继续发送。
CSMA/CD检测需要花费时间。对于基带传输总线而言,在最坏的情况下,检测一个冲突时间至少要等于两倍于任意两个站之间的数据传播延时。
为确保发送数据的站点在传输过程中能检测到可能存在的冲突,数据帧的发送延时ΔS应大于两倍传播延时(2ΔT)。也就是说,要求分组(Packet)的长度不能小于某个值,否则在检测出冲突之前传输已经结束了。由此可得出在CSMA/CD总线网络中最短数据帧长度的计算关系式:
显然,在一条通信线路上,一个站点不可能同时进行发送和接收,因此,使用CSMA/CD协议的以太网不可能进行全双工通信,只能进行双向交替通信(半双工通信)。但是,如果采用双网络通信,则可实现全双工通信。
4.争用期
以太网端到端的往返延时2τ称为争用期(Contention period),争用期又称为碰撞窗口(Colli-sionwindow)。这是一个很重要的参数。因为一个站在发送完数据后,只有通过争用期的“考验”,即经过争用期这段时间还没有检测到碰撞时,才能肯定这次发送是成功的。
当某个站正在发送数据时,如果另外有两个站也要发送数据,这两个站首先要进行载波监听,发现总线忙时就等待。当总线变为空闲时,就立即发送自己的数据。由于载波监听的时间还在争用期2τ之内,因此必然会发生数据碰撞,经检测发现了碰撞,就立即停止发送。再等待,再重新发送……这样下去,一直不能成功发送。当然,这是一个特例,但是必须设法解决。
以太网使用“截断二进制指数类型(Truncated binary exponentialtype)”的退避算法来解决争用期这一问题。它的过程如下:
发生碰撞的站在停止发送数据后,不是立即再发送数据,而是推迟(称为退避)一个随机时间,这种推迟重传是为了减小再次发生数据碰撞的概率。基本退避的时间一般取为争用期2τ。如果再次发送时还是发生碰撞,那么再推迟一个退避时间2τ后再发送。因此重传的推迟时间是在0,2τ,4τ和6τ这四个数之间随机地选取一个。依此类推。若连续多次发生冲突,就表明可能有较多的站参与争用信道,因此,各站应在更大的整数集合中随机选择自己的退避时间,才能减少再次冲突的概率。
退避算法使重传推迟的平均时间随重传次数的增加而增大(称为动态退避),有利于使整个系统稳定。但是当重传达到16次仍不能成功时(说明同时要发送数据的站太多,以致连续发生冲突),则丢弃该数据帧,并向高层报告。
以太网取51.2μs作为争用期的时间长度。对于10Mbit/s的以太网,在争用期内可发送512bit,即512/8=64B。因此以太网在发送数据时,如果前64B没有发生冲突,那么后续的数据就不会发生冲突。换句话说,如果发生冲突,一定是在前64B之内。由于一经检测到冲突就立即停止发送,所以以太网规定,凡长度小于64B的帧都是无效帧。
为了使每个站都能尽早地知道是否发生了碰撞,以太网还采取一种叫做强化碰撞的措施。这就是当发送数据的站一旦发生了碰撞,除了立即停止发送数据外,还要再继续发送若干比特的人为干扰信号(Jammingsignal),以便让所有用户都知道现在已经发生了数据碰撞。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。