带你了解以太网

2021-09-01 11:25:58 浏览数 (2)

本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/54

什么是以太网?

以太网是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。以太网是目前应用最普遍的局域网技术,取代了其他局域网技术如令牌环、FDDI和ARCNET。

以太网是现有局域网最常用的通信协议标准,其网络结构通常为星型结构。在网络中,计算机使用传输介质(例如网线)进行连接,网络数据通过传输介质进行传输来完成整个通信。

一、历史

以太网(Ethernet)最早是由Xerox(施乐)公司创建的局域网组网规范,1980年DEC、Intel和Xeox三家公司联合开发了初版Ethernet规范—DIX 1.0,1982年这三家公司又推出了修改版本DIX 2.0,并将其提交给EEE 802工作组,经IEEEE成员修改并通过后,成为IEEE的正式标准,并编号为IEEE 802.3。虽然Ethernet规范和IEEE 802.3规范并不完全相同,但一般认为Ethernet和正IEEE 802.3是兼容的。自20世纪70年代局域网技术提出以来,各种局域网技术不断产生,其中有的技术发展壮大,而有的技术逐渐被淘汰。现阶段成熟的局域网技术有三种:以太网(Ethernet)、令牌环(Token Ring)和光纤分布式数据接口(FDDI),其中以太网技术逐步成为局域网技术的主流。

以太网是在1972年开创的,Bob Metcalfe(被尊称为“以太网之父”)被Xerox雇佣为网络专家,Bob Metcalfe来到Xerox公司的Palo Alto研究中心(PARC)的第一个任务是把Palo Alto的计算机连接到Arpanet(Internet的前身)。1972年底,Bob Metcalfe设计了一套网络,把Alto计算机连接起来。在研制过程中,因为该网络是以ALOHA系统(一种无线电网络系统)为基础的,而又连接了众多的ALTO计算机,所以Metcalfe把它命名为ALTO ALOHA网络。ALTO ALOHA网络在1973年5月开始运行,Metcalfe把这个网络正式改名为以太网(Ethernet),这就是最初的以太网试验原型,该网络运行的速率为2.94Mbps,网络运行的介质为粗同轴电缆。1976年6月, Metcalfe和Boggs发表了题为:“以太网:局域网的分布型信息包交换”的著名论文。1977年底,Metcalfe和他的三位合作者获得了“具有冲突检测的多点数据通信系统”的专利,多点传输系统被称为CSMA/CD(带冲突检测的载波侦听多路访问)。从此,以太网就正式诞生了。

70年代末,涌现出了数十种局域网技术,以太网正是其中的一员。1979年,Digital Equipment Corporation(DEC)、Intel公司与Xerox公司联盟,促进了以太网的标准化。1980年9月30日,DEC、Intel和Xerox公布了第三稿的“以太网,一种局域网:数据链路层和物理层规范,1.0版”,这就是现在著名的以太网蓝皮书,也称为DIX(取三家公司名字的第一个字母而组成的)版以太网1.0规范。如前所述,最初的实验型以太网工作在2.94Mbps,而DIX规范定义的以太网工作在10Mbps。1982年,DIX联盟发布了以太网的第二个版本,即Ethernet II。

在DIX联盟开展以太网标准化工作的同时,IEEE组成一个定义与促进工业LAN标准的委员会,这就是我们今天熟知的802工程委员会。IEEE 802委员会成立了不同的工作组,每个工作组研究不同的LAN技术。DIX联盟虽已推出以太网规范,但还不是国际公认的标准,所以在1981年6月,IEEE 802工程决定组成802.3分委员会,以产生基于DIX工作成果的国际公认标准,1983年6月IEEE 802.3工作组发布了第一个关于以太网技术的IEEE标准,即IEEE 10BASE5。

10BASE5技术与DIX的Ethernet II在技术上是有差别的,不过这种差别甚微。10BASE5的速率仍然是10Mbps,使用的传输介质仍然是粗同轴电缆,允许节点间的最长距离为500米。1984年美国联邦政府以 FIPS PUB107的名字采纳802.3标准。1989年ISO以标准号 IS88023采纳802.3以太网标准,至此,IEEE标准802.3正式得到国际上的认可。

随着以太网技术的商业化,使用粗同轴电缆作为传输介质的缺点逐渐暴露,粗同轴电缆价格昂贵,需要外接MAU收发器,不易安装。80年代初逐渐出现了一些基于细同轴电缆的以太网技术和产品,1984年,IEEE 发布了10BASE2的标准,10BASE2采用细同轴电缆作为传输介质,允许节点间的最长距离为200米。

10BASE5和10BASE2都是一种物理总线型拓扑,所有的节点连接在同一根总线,总线上的所有节点共享带宽。这种物理总线型的拓扑有一个致命的缺点,容易出现总线某处断裂而使整个网络瘫痪的问题,不便于查找故障,而且如果用户进行节点的移动,必须重新布线,不利于结构化布线。这时就提出了在非屏蔽双绞线(UTP)电话电缆上运行以太网的想法,最后证实在3类非屏蔽双绞线上可以运行1Mbps的低速以太网,1986年,IEEE接纳了这种低速以太网标准,命名为1BASE5,这就是著名的StarLAN。StarLAN有它自身的优点:便于安装、配置、管理和查找故障,而且成本较低;这种物理星型的拓扑是以太网的一个突破,因为它允许采用结构化布线系统,它用单独一根线将每个节点连接到中央集线器,这对于安装、故障寻找和重新配置显然是一个明显的优点,可以大大降低整个网络的成本。但1BASE5把以太网的速率从传统的10Mbps降低到了1Mbps,很多厂商认为这是以太网的一个后退,因此1BASE5很快走向了灭亡。

1BASE5使得以太网走向星型的结构化布线,但是速率是它的限制,于是IEEE开始在UTP在运行10Mbps以太网的研究,1990年,IEEE 802.3i 标准发布,公布了10BASE-T技术。此后出现了10 BASE-T中继器、双绞线介质附属件(MAU)和NIC网络接口卡,这些使得以太网市场急剧增长。星形结构化布线结构的出现是以太网发展史上的伟大里程碑。它使令牌环(Token Ring)失去了它的两个优势:结构化布线、采用双绞线布线。

同时随着光缆的发展,在光缆上运行以太网成了研究的一个课题,随后逐步出现了10BASE-F,10BASe-FL,10BASE-FP,10BASE-FB等在光缆上运行以太网的技术标准。

前面的技术不管是物理总线型拓扑结构、还是物理星型拓扑结构,LAN中的用户都是共享带宽的,都要争用带宽,存在冲突。90年代初,逐渐出现了多端口网桥,用于多个LAN的互连。共享式以太网逐渐向LAN交换机发展。1993年,Kalpana公司使以太网技术有了另外一个突破——全双工以太网。全双工的优点是很明显的,可以同时发送和接收数据,这在理论上可以使传输速度翻一番。

90年代初,随着网络的发展,10Mbps的速率限制了一些大网络的运行,此时以太网受到了FDDI的巨大冲击。FDDI是一种昂贵的基于100Mbps光缆的LAN技术。1992年,Grand Junction公司成立,开始研制100Mbps的以太网。1993年,以Grand Junction为首的多家公司成立了快速以太网联盟(FEA)。1993年10月,FEA公布了它的100BASE-X互操作规范,1995年3月,IEEE802.3u规范被它的成员和执委会所通过。于是快速以太网的时代宣布来临。1995年末,各厂家日新月异地不断推出新的快速以太网产品,快速以太网达到了鼎盛时代。

1995年11月,IEEE802.3标准委员会组建了一个新的“高速研究组(High-Speed Study Group)”,研究1000Mbps速率的以太网。1996年3月,IEEE组建了新的802.3z工作组,负责研究干兆位以太网,制订相应的标准。1998年,IEEE发布802.3z,1000Mbps的以太网标准。

2002年,10GE以太网标准802.3ae正式发布,10GE以太网与1000M以太网相比,10GE只支持全双工,只支持光纤作为传输介质,10GE可以应用于广域网WAN物理层技术SONET/SDH。

随着以太网技术的发展,以太网已经不仅仅局限于一种局域网技术,以太网技术逐渐应用于城域网MAN和广域网WAN。

二、以太网拓扑结构

计算机网络的拓扑结构是引用拓扑学中研究与大小、形状无关的点、线关系的方法。它把网络中的计算机和通信设备抽象为一个点,把传输介质抽象为一条线,而由点和线组成的几何图形就是计算机网络的拓扑结构。

以太网结构主要分为总线型和星型两种。

  • 总线型:是指所有计算机通过一条同轴电缆进行连接。
  • 星型:是指所有计算机都连接到一个中央网络设备上(如交换机)。

常见的五种网络拓扑结构图:

三、以太网传输介质

不论是总线型还是星型,计算机和通信设备之间进行数据传输都需要有传输介质。以太网采用了多种连接介质,如同轴缆、双绞线和光纤等,其中:

  • 双绞线多用于从主机到集线器或交换机的连接;
  • 光纤则主要用于交换机间的级联和交换机到路由器间的点到点链路上;
  • 同轴缆作为早期的主要连接介质,现在已经逐渐被淘汰。

四、以太网工作机制

有了传输介质以后,以太网中的数据就可以借助传输介质进行传输了。以太网采用附加冲突检测的载波帧听多路访问(CSMA/CD)机制,以太网中所有节点都可以看到在网络中发送的所有信息。因此,以太网是一种广播网络。

以太网需要判断计算机何时可以把数据发送到访问介质。通过使用 CSMA/CD,所有计算机都可以监视传输介质的状态,在传输之前等待线路空闲。如果两台计算机尝试同时发送数据,就会发生冲突,计算机会停止发送,等待一个随机的时间间隔,然后再次尝试发送。

当以太网中的一台主机要传输数据时,工作过程如下:

  • 监听信道上是否有信号在传输。如果有,表示信道处于忙状态,则继续帧听,直到信道空闲为止。
  • 若没有监听到任何信号,就传输数据。
  • 传输数据的时候继续监听。如果发现冲突,则执行退避算法。随机等待一段时间后,重新执行步骤(1)。当冲突发生时,涉及冲突的计算机会返回监听信道状态。若未发现冲突,则表示发送成功。

五、以太网传输速率分类

以太网是应用最广泛的局域网技术。根据传输速率的不同,以太网分为标准以太网(10Mbit/s)、快速以太网(100Mbis)千兆以太网(1000Mbs)和万兆以太网(10Gbit/s),这些以太网都符合IEEE 802.3是兼容的。

1、标准以太网

标准以太网是最早期的以太网,其传输速率为10Mbts,也称为传统以太网。此种以太网的组网方式非常灵活,既可以使用粗、细缆组成总线网络,也可以使用双绞线组成星状网络,还可以同时使用同轴电缆和双绞线组成混合网络。这些网络都符合EE8023标准,EEE8023中规定的一些传统以太网物理层标准如下。

①10 Base-2:使用细同轴电缆,最大网段长度为185m。

②10 Base-5:使用粗同轴电缆,最大网段长度为500m。

③10 Base-T:使用双纹线,最大网段长度为100m。

④10 Boad-36:使用同轴电缆,最大网段长度为3600m。

⑤10 Base-F:使用光纤,最大网段长度为2000m,传输速率为10Mb/s。

以土标准中首部的数字代表传输速率,单位为Mbis;末尾的数字代表单段网线长度(基准单位为100m);Base表示基带传输, Broad表示宽带传输。

2、快速以太网

随着网络的发展和各项网络技术的普及,标准以太网技术已难以满足人们对网络数据流量和速率的需求。1993年10月以前,人们只能选择价格昂贵、基于100Mbs光缆的FDD技术组建高标准网络,1993年10月, Grand Junction公司推出了世界上第一台快速以太网集线器FastSwitch10/100和百兆网络接口卡 Fast NIC 100,快速以太网技术正式得到应用。

随后,Intel、3COM等公司也相继推出了自己的快速以太网设备,同时EEE802工作组对100Mbi/s以太网的各种标准进行了研究,并于1995年4月发布了IEEE 802.3u 100Base-T快速以太网标准,快速以太网时代到来。

IEEE 802.3U标准基本保持了标准局域网的规定,包括帧格式、接口、介质访问控制方法

( CSMA/CD)等,只是将数据传输速率从10Mbts提升到了100Mbit/s,又使用了一些新的物理层标准,具体如下所示。

① 100 Base-1X:使用两对5类屏蔽或非屏蔽双绞线,一对用于发送数据,一对用于传输数据;使用RJ-45或DB9接口,节点与集线器的最大距离为100m,支持全双工。

② 100 Base-T4:使用4对3类、4类或5类双绞线,3对用于发送数据,1对用于检测冲突信号;使用R-45连接器,最大网段长度为100m,不支持全双工。

③ 100Base-FX:使用一对单模或多模光纤,一路用于发送数据,一路用于接收数据;最大网段长度为200m(使用单模光纤时可达2000m),支持全双工。此种网络主要用于搭建主千网,以提升主干网络传输速率。

3、千兆以太网

千兆以太网(GigabitEthernet)也称为吉比特以太网。1995年11月,IEEE 802.3工作组委任一个高速研究组,以研究将快速以太网速率增至1000Mbls的可行性和方法。1996年6月,IEEE标准委员会批准了千兆以太网方案授权申请,随后IEE 802.3工作组成立了EEE 802.3z工作委员会,该委员会建立了千兆以太网标准,该标准的主要规定如下:

① 速率为1000Mbit/s的以太网在通信时的全双工/伴半双工操作。

② 使用8023以太网帧格式、CSMA/CD技术。

③ 在一个冲突域中支持一个中继器。

④ 向下兼容10Base-T和100Base-TIEEE 802.3。

工作组为千兆以太网制定了一系列物理层标准,其中常用的标准如下。

(1)1000 Base-SX:使用芯径为50m及625m、工作波长为850m的多模光纤,采用8B/10B编码方式,传输距离分别为260m和525m。此标准主要应用于建筑物中同一层的短距离主于网。

(2)1000 Base-LX:使用芯径为50pm及625m、工作波长为850nm和芯径为5m、工作波长为1300nm的多模、单模光纤,传输距离分别为525m、550m和3000m。此标准主要应用于校园主干网。

(3)1000 Base-CX:使用1500屏蔽双绞线,采用8B/10B编码方式,传输速率为1.25Gbis,传输距离为25m。此标准主要用于集群设备的连接,如一个交换机机房内的设备互联。

(4)1000 Base-T:使用4对5类非屏蔽双绞线,采用PAM5编码方式,传输距离为100m。

此标准主要用于同一层建筑的通信,从而可利用标准以太网或快速以太网已铺设的非屏蔽双绞线电缆。

千兆以太网采用光纤作为上行链路,用于楼宇间的连接,原本被作为一种交换技术设计,之后被广泛应用于服务器的连接和主干网中。如今,千兆以太网已成为主流的网络技术,无论是大型企业还是中小型企业,在组建网络时都会把千兆以太网作为首选高速网络技术。

4、万兆以太网

万兆以太网(10 Gigabit Ethernet,10GE)也称为10吉比特以太网,是继千兆以太网之后产生的高速以太网。在千兆以太网的IEEE 802.3Z规范通过后不久,IEEEE成立了高速研究组(High Speed Study Group,HssG),该研究组主要致力于10GE的研究。

10GE并非简单地将千兆以太网的速率提升了10倍,2002年6月,IEEE 802.3ae委员会制定了10GE的正式标准,该标准主要包括以下内容。

① 兼容8023标准中定义的最小和最大以太网帧长度。

②仅支持全双工方式。

③使用点对点链路和结构化布线组建星状局域网。

④在 MAC/PLS服务接口上实现10Gbs的速度。

⑤定义两种物理层规范,即局域网PHY和广域网PHY。

⑥定义将 MAC/PLS的数据传输速率对应到广域网PHY数据传输速率的适配机制。

⑦定义支持特定物理介质相关接口(PMD)的物理层规范,包括多模光纤和单模光纤以及相应传输距离;支持ISO/C11801第二版中定义的光纤介质类型等。

⑧通过WAN界面子层,10Gbi/s也能被调整为较低的传输速率。

此外,10Gbis不再使用铜线,只使用光纤作为传输媒介;不再使用 CSMA/CD协议。千兆以太网仍可使用已有的光纤通道技术,但10GE使用新开发的物理层。10GE常用的物理层规范如下。

①10G Base-SR:SR表示" Short Reach"(短距离),10GBae-SR仅用于短距离连接,该规范支持编码方式为64B/66B的短波(850mm)多模光纤,有效传输距离为2m~300m。

② 10G Base-LR:LR表示“Long Reach”(长距离),10 G Base-LR主要用于长距离连接,该规范支持编码方式为64B/66B的长波(1310mm)单模光纤,有效传输距离为2m~10km,最高可达25km。

④ 10 G Base-ER:ER表示“ Extended Reach”(超长距离,10G Base-ER支持超长波(1550nm)单模光纤,有效传输距离为2m~40km。

六、以太网-CSMA/CD介绍

以太网是一种共享介质的局域网技术,多个站点连接到一个共享介质上,同一时间只能有一个站点发送数据。这种共享介质的通信方式必然存在一个冲突的问题,如何检测链路是否空闲,站点能否发送数据是共享链路必须解决的问题。

这种同一链路连接多个终端,就是多路访问。多路访问控制有多种协议,如随机访问控制协议、受控访问控制协议、通道化协议。随机访问控制协议中所有连接在共享介质上的终端都具有平等的发送数据的概率,也没有轮询机制,随机访问控制协议技术主要有:MA、CSMA、CSMA/CD、CSMA/CA。受控访问控制协议是一种轮询机制,通过轮询控制哪个站点来发送数据,主要技术有:预约、轮询、令牌传递。通道化协议是一种复用技术,主要技术包括:FDMA、TDMA、CDMA。

根据以太网的最初设计目标,计算机和其他数字设备是通过一条共享的物理线路连接起来的。这样被连接的计算机和数字设备必须采用一种半双工的方式来访问该物理线路,而且还必须有一种冲突检测和避免的机制,以避免多个设备在同一时刻抢占线路的情况,这种机制就是所谓的CSMA/CD(Carrier Sense Multiple Access/Collision Detection)。

可以从以下三点来理解CSMA/CD:

1、CS:载波侦听

在发送数据之前进行侦听,以确保线路空闲,减少冲突的机会。

2、MA:多址访问

每个站点发送的数据,可以同时被多个站点接收。

3、CD:冲突检测

由于两个站点同时发送信号,信号叠加后,会使线路上电压的摆动值超过正常值一倍。据此可判断冲突的产生。

边发送边检测,发现冲突就停止发送,然后延迟一个随机时间之后继续发送。

CSMA/CD的工作过程如下:

终端设备不停的检测共享线路的状态。如果线路空闲则发送数据;如果线路不空闲则一直等待。如果有另外一个设备同时发送数据,两个设备发送的数据必然产生冲突,导致线路上的信号不稳定。

终端设备检测到这种不稳定之后,马上停止发送自己的数据。终端设备发送一连串干扰脉冲,然后等待一段时间之后再进行发送数据。

发送干扰脉冲的目的是为了通知其他设备,特别是跟自己在同一个时刻发送数据的设备,线路上已经产生了冲突。

检测到冲突后等待的时间是随机的。

多路访问控制协议分类:

以太网采用了随机访问控制协议中的CSMA/CD(Carrier Sense Multiple Access with Collision Detection,带有冲突检测的载波侦听多址访问)方法作为多路访问控制协议。我们可以将CSMA/CD比作一次交谈,在这个交谈中每个人都有说话的权力,但是同一时间只能有一个人说话,否则就会混乱,每个人在说话之前先听是否有别人在说话(即载波侦听),如果这时有人说话,那只能耐心等待,等待别人结束说话,它才可以发表意见。另外,有可能两个人同一时间都想开始说话, 此时就会出现冲突,但当两个人同时说话时,两个人都会发现他们在同一时间讲话(即冲突检测),这时说话立即终止,随机的等待一段时间后(回退),再开始说话。这时第一个开始说话的人开始说话,第二个人必须等待,直到第一个人说完后才开始说话。

以太网的CSMA/CD工作方式与以上类似,图2为站点发送数据帧的流程图。当一个站点有数据帧要发送时,它开始检测物理介质是否空闲,这个过程称为载波侦听。如果此时介质忙,则只能耐心等待,推迟数据帧的发送。

如果载波侦听过程中发现介质空闲,则必须等待IFG(Inter Frame Gap)时间让物理信道恢复平稳,同时也让接收者对接收的帧作必要的处理。等待IFG时间后开始发送数据帧。如果这时没有其他站点要发送数据则不会发生冲突,站点可以完整的把数据帧发送完毕,重复下一次发送过程,继续发送下一个数据帧。

CSMA/CD发送数据帧流程图

如果同一时间有多个站点要发送数据,那么就会发生冲突。冲突发生后,发送站点要持续发送一段时间的干扰信号(jamming),发送干扰信号的目的是为了确保共享介质上的所有站点都能够检测到这时以太网上已产生了冲突。然后发送站点终止未发送完的数据帧的发送,等待一个随机时间,这就是回退(backing off),等待的这个随机时间称为回退时间(backoff time)。

回退时间是SlotTime(SlotTime是传送最短以太网帧所需要的时间,对于10M和100M来说为传送512bit所需要的时间,10M是51.2微秒,100M是5.12微秒)的整数倍,回退时间的取值范围与检测到冲突的次数有关,每次检测到冲突后,r选择一个从0到2 k的随机整数

0≤r<2k ,这里 k=MIN {n,10}, n 为检测到冲突的次数。

回退时间为 r×SlotTime.

例如开始传送数据帧后,第一次检测到冲突后需要等待0-1倍SlotTime时间,第二次检测到冲突后等待0-3中随机整数个SlotTime 时间,以此类推。

当检测到的冲突次数超过最大重试次数(通常为16),则表示该数据帧发送失败,停止该数据帧的发送,通知网络管理员发生错误并丢弃数据帧,或者只是简单的丢弃数据帧,然后重置回退时间为0,开始冲突检测准备发送下一个数据帧。

七、以太网帧结构

在“以太网发展史”一节中说过,DIX联盟1980年发布以太网的第一个版本,Ethernet I,1982年,DIX联盟又发布以太网的第二个版本,即Ethernet II,1983年IEEE发布了第一个关于以太网的标准,IEEE发布的标准与DIX的Ethernet II在技术上是有差别的,其中一个差别就是关于以太网帧的封装上。Ethernet II采用了Type封装,而最初的802.3采用的Length封装,因此Length封装也称为raw 802.3封装,目前只有IPX支持Raw 802.3封装,以Length字段后紧跟0xFFFF标识。最初的IEEE 802.3标准不支持Type封装,但是Type封装使用极为广泛,在1997年,IEEE 802.3接纳了Type封装,所以Ethernet II封装有时又称为802.3 Type封装。

Preamble/SFD(Start-of-Frame Delimiter):每个以太网帧发送时都是以8个字节的前导码开始,Preamble是1和0交替(1 0 1 0 1 0…….)的7个字节数据,该部分的作用是通知接收方有数据帧到来,使其与输入的时钟保持同步,56bit 模式容许站点在帧的开始可以丢弃一些bit。SFD是一个字节10101011,最后使用11,来通知接收方下一字段就是目的主机的地址了。实际上前导码都是在物理层加进去的,并不是帧的一部分。

DA(Destination Address):6个字节,目的节点的MAC地址。

SA(Source Address):6个字节,源节点的MAC地址。

Type/Length:2字节,根据数值的不同代表2种不同的封装格式,如果字段值在0x0000-0x05DC范围内,则表示该字段为Length,该帧为802.3 raw封装。如果字段值在0x0600-0xFFFF范围内,则表示该字段为Type字段,该帧为Ethernet II封装,0x05DD-0x05FF保留没有使用。

PayLoad:上层协议有效载荷,最小为46字节,最大为1500字节,对于Type封装格式,上层协议必须保证该字段的值大于46字节,对于Length封装,对于有效载荷不够46字节的报文链路层必须进行填充。

FCR:4字节的校验和。

另外以太网还有如下所示的封装格式:

802.3/802.2 LLC封装

802.3/802.2 SNAP封装:

802.3/802.2 SNAP RFC 1042封装:

802.3/802.2 LLC封装中,DSAP、SSAP用来标志上层协议,比如NetBios为0xF0,IPX为0xE0。

802.3/802.2 SNAP 中Org Code代表机构编码,是全球唯一的表示组织机构的代码OUI,PID(Protocol Identifier)是协议标志,每个组织机构可以有独立的协议标识。如苹果公司的OUI为08-00-07,其AppleTalk协议的PID为0x809B,这种封装中Org Code+PID唯一标识一个上层协议。

802.3/802.2 SNAP RFC1042封装,Org code使用一个特殊的数值00-00-00,当这个字段为00-00-00时,Type字段与Ethernet II封装中的Type具有相同的含义。

IP协议支持两种封装,分别是Ethernet II封装和SNAP RFC1042封装,Type均为0x0800,IPX协议支持四种封装Ethernet II、SNAP RFC1042、raw 802.3、802.3/802.2 LLC,在Ethernet II和SNAP RFC1042封装中,Type字段为0x8137,raw 802.3封装在Length后紧跟0xFFFF标志。802.3/802.2 LLC封装中,DSAP和SSAP=0xE0。Apple Talk支持Ethernet II和SNAP RFC1042封装,Type均为0x809B。

目前使用最广泛的是Ethernet II封装。802.3/802.2 SNAP封装使用很少,因此一般所说的SNAP封装都指SNAP RFC1042封装。

八、以太网速率计算

我们通常所说的10M、100M,1000M、10GE,这些都是指物理介质每秒可以传送多少bit的数据。在我们实际中经常使用每秒传送实际数据帧的数目即PPS(packets per second)来表示报文的速率。下面介绍对于以太网来说如何进行链路速率与pps之间的换算。

以太网传送数据时,每两个帧之间存在帧间隙IFG(Inter Frame Gap),帧间隙的作用是使介质中的信号处于稳定状态,同时让帧接收者对接收的帧作必要的处理(如调整缓存取的指针、更新计数、发中断让主机对报文进行处理)。对于Ethernet(10M)帧间隙时间为9.6usec,100M快速以太网帧间隙为0.96usec,1000M帧间隙为0.096usec,10GE帧间隙为0.0096usec,这个时间正好相当于传送96bit数据的时间。

下面我们看怎么把以太网速率与pps进行换算,假设数据帧的长度为 k bytes(包括CRC),端口速率为R,转化后的PPS为N,那么:

N=R/(k×8+8×8+96)

其中k×8表示实际数据帧的长度(bits),8×8表示前导码(Preamble+SFD)的长度,96bit相当于帧间隙占用的bits。

下面举例说明,假设端口速率为100M,发送数据帧的长度为64字节,那么线速发送报文换算成pps后,

N=100 000 000/(64×8+8×8+96)≈148810 pps

九 冲突域和广播域

我们知道在传统的以粗同轴电缆为传输介质的以太网中,同一介质上的多个节点是共享链路的带宽,争用链路的使用权,这样就会发生冲突,CSMA/CD机制中当冲突发生时,网络就要进行回退,这段回退的时间内链路上不传送任何数据。而且这种情况是不可避免的。当同一介质上的节点越多,冲突发生的概率也就会越大。这种连接在同一导线上的所有节点的集合就是一个冲突域。使用同轴电缆和HUB连接的主机就属于一个冲突域。他们共同的特征是所有的节点都要共享带宽,会发生冲突,且一个节点发出的报文(无论是单播、组播、广播)其余节点都可以收到。

由于各种各样的原因,网络中使用了广播,例如TCP/IP中的ARP使用广播从IP来解析MAC地址。目的MAC为FFFF-FFFF-FFFF的地址是广播地址,这个地址将使所有的节点都处理这个数据帧。广播会占用带宽,而且降低节点的处理效率,必须对广播加以限制。这种一个站点发送一个广播报文其余节点能够接收到的节点的集合,就是一个广播域。传统的网桥(Bridge)可以根据MAC表对单播报文进行转发,对于广播报文向所有的端口都转发,所以网桥的所有端口连接的节点属于一个广播域,但是每个端口属于一个单独冲突域。

传统的二层交换机所有端口都属于一个广播域,这样就不便于管理和网络变化,假设一个用户现在属于工作组1,与工作组1内的用户在同一个LAN中,一段时间后要把该用户划分到工作组2中,要加入到工作组2中的LAN,那么必须重新连线。这种给网络管理带来了不方便。这样就在传统二层交换机上引入了VLAN(Virtual LAN)。每个VLAN中的所有节点在同一个广播域,每个VLAN是逻辑LAN,VLAN之间是二层隔离的。

十、半双工、全双工、自协商

在10BASE5和10BASE2的总线型拓扑中,同一时刻只能有一个节点发送数据。随着10BASE-T和hub的出现,网络节点的连接变成了点到点的连接。在节点之间点到点连接中,同一节点同一时刻只能接收或发送数据,不能同时接收、发送数据。这种同一时刻只能接收或发送数据的工作模式为半双工模式。在半双工模式下,使用CSMA/CD的机制来避免冲突。

全双工模式下,同一时刻可以同时接收和发送数据帧。

自协商功能允许一个网络设备能够将自己所支持的工作模式信息传达给网络上的对端,并接收对方可能传递过来的相应信息。对于两端处于自协商工作方式的设备,最终协商的结果是采用二者技术能力域中优先级低的网口提供的工作方式工作。协商级别一般为1000Mfull,1000Mhalf,100Mfull,100Mhalf,10Mfull,10Mhalf。

10BASE-T的以太网接口(它只支持10M,不支持自协商)在链路UP之前会发送Link Test Pulse(LTP),该脉冲用以检测链路是否应该UP;而100BASE-T以太网接口(它只支持100M,不支持自协商)在链路UP之前会发送FAST ETHERNET IDLE流,用以检测链路是否应该UP。

支持自协商(Autonegotiation)的以太网接口则在链路UP之前发送FLP(Fast Link Pulse),FLP实际上是一组LTP和数据脉冲的组合,它们表明一种含义:例如我支持100M全双工。较旧的设备例如10BASE-T仍然将这些FLP识别为LTP,而自协商设备则能够识别FLP的含义并通过交互这种握手信息来使链路成为最优配置。如果自协商设备看到有一般的LTP(不是有特定含义的FLP)输入,它就将本端设置为10M半双工。如果自协商设备看到有FAST ETHERNET IDLE输入,它就将本端设置为100M半双工。以上所述的自协商机制只对10/100兆铜缆接口或千兆光/电口有效,100BASE-FX不支持自协商。

千兆自协商和10/100兆自协商使用同样的机制,1000BASE-LX和1000BASE-SX使用自协商机制来协商双工和流控。1000BASE-T设备的自协商还会包含附加域(例如是MASTER还是SLAVE)的协商。千兆设备几乎没有半双工的情况(虽然可以协商),所以很多双工的问题都不存在了。

十一、 流控

流控指当接收者没有能力处理接收到的报文时,为了防止丢包,接收者需要通知报文的发送者一段时间内停止发送报文。

对于半双工模式和全双工模式,流控通过不同的方式来实现。在全双工模式下,接收者通过发送一种特殊的数据帧来通知发送者,停止发送报文,这种特殊的数据帧称为PAUSE帧,下面是PAUSE帧的结构:

PAUSE帧格式

PAUSE帧的长度固定为64字节(包括CRC),PAUSE帧的目的MAC为组播MAC :0180-c200-0001,源MAC为发送PAUSE帧的节点的MAC,LENTH/TYPE字段固定为0x8808。MAC CONTROL PARAMETERS字段表示要求发送者暂停发送流量的时间,数值有效范围为0-65535, 单位为512bit time(bit time指链路上传输1bit需要的时间,如100M链路bit time为10ns)。如果数据报文的接收者在发送PAUSE帧后,在PAUSE帧发送的等待时间超时之前可以处理数据报文,则再发送一个等待时间为0的PAUSE帧通知数据发送者开始发送数据。

PAUSE的接收者(也是数据报文的发送者),收到PAUSE帧后会根据PAUSE帧中的等待时间停止发送报文,等待时间超时后继续发送报文。

半双工模式下,以太网利用CSMA/CD机制处理冲突和链路使用问题。根据CSMA/CD机制,半双工的模式下,采取的流控方式为Backpressure,即背压。该种方法有两种实现,一个是数据接收者有意制造一次冲突,数据发送者检测到冲突采取Backoff,这样就延缓了数据的发送;另外一个方法是制造载波信号,使数据发送者感觉到接收者要发送数据,从而通过检测到载波而进行延时传输。

本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/54

0 人点赞