以太网简介以太网是一个异步的,基于帧结构的通讯协议。它最初的出发点是利用共享介质为两个以上的数据终端提供一种通讯方式。以太网的标准由IEEE802。3(2000)制订。现有的以太网标准定义了不同的带宽和传输介质类型。一个以太网物理接口由以下的形式定义:数据率单位:Mbps。介质类型。最长的电缆段长度单位:100米例如,标准中定义的一个10MBPS,电缆段最长距离为500米的基带系统被称为:10BASE5。如果介质类型为”T”,则代表介质为非屏蔽双绞线。不同接口的以太网具有相同的帧结构和媒体控制/访问方式(MAC),如果是共享介质,则具有相同的冲突检测方法(CSMA/CD)。以下是最常见的几种以太网接口类型:·10BASE-T:10Mbps带宽,基带,使用3,4或5类双绞线·100BASE-TX:100Mbps带宽,基带,使用5类双绞线·1000BASE-SX:1000Mbps带宽,基带,使用850nm多模光纤·1000BASE-LX:1000Mbps带宽,基带,使用1300nm多模或单模光纤图一显示了以太网帧的基本结构:各部分的功能描述如下:·前导码(Preamble+SFD):8字节前导码由七个”10101010”字节和一个”11010101”字节的SFD(帧开始标识)组成。接收方根据这几个字节可以判断出一个帧的开始。·目的地址(DestinationAddress):6字节MAC目的地址,通常用十六进指(HEX)表示。目的地址被用于在设备之间判断以太网帧的传递方向和路由。每一个以太网设备通常被分配一个唯一的MAC地址。而有些特殊的MAC地址被保留,用于表示一些特殊的功能,例如,全1的地址(FF:FF:FF:FF:FF:FF)用于表示广播地址。·源地址:6字节源地址是指发送方的MAC地址。通常用十六进指(HEX)表示。源地址一般是在生产时,由生产厂商写入设备里。MAC地址的前三个字节表示厂商代码,后三个字节表示设备序号。需要注意的是,对于某些设备,例如测试设备,它的MAC地址是可以随时设置的。·VLAN标记:4字节(可选)VLAN标记是可选项。采用VLAN标记可以在一个LAN内实现多个虚拟的子网。它同时还提供了优先级标记,可用于对服务质量的控制。·长度/类型字段:2字节这个字段用于表示帧的长度或封装的上层数据协议类型。如果该字段小于05DC(HEX),则表示长度,如果大于0600(HEX),则表示数据域的协议类型。例如:0800HEX表示是IP协议,809BHEX表示是APPLETALK协议。·数据域:46到1500字节数据域中是需要传输的应用数据,通常包含上层协议数据,如IP数据等。·帧校验序列:4字节发送方通过计算帧中的每一个字节,得到帧校验序列,并插入到帧的最后发送。接收方在接收过程中,会重新计算校验序列,并与接收帧中\最后4字节校验序列做比较。对于帧校验序列错,或丢失的以太网帧,大多数的设备会将之丢弃。最小的合法帧长度是64字节。它包括帧校验序列(FCS),但不包括前导码。帧长度小于这个值的帧被称为”RUNTS”(小矮子),大多数的设备将丢弃这种帧。如果使用了VLAN标记,则最大的标准帧长度是1522字节,否则是1518字节。有些设备会使用大于这个值的帧。这种帧被称为”JUMBO”(大帧),JUMBO帧的最大可到64K字节。这种帧的帧结构和标准帧一样,只是数据域部分比较大而已。大帧的使用可以提高开销/有效数据比例,从而提高传输效率。JUMBO帧没有统一的标准,各厂家的定义和处理情况都不相同,因此很难保证互通性。以太网帧在传输时,遵循从左到右,最低位最先传送的原则。每两个帧之间必须有一个帧间间隔,最小的帧间隔为12字节的传输时间。帧间隔的存在,是因为在老的半双工系统中,介质在一个帧完成后,必须有一段静态的时间,以便决定下一个帧的发送。虽然在全双工系统中,并不需要这样一个间隔,但为了一致性,仍然保留了帧间隔。自协商大部分的设备都支持自动协商过程。当两个设备第一次连接的时候,它们会互通信息。告知对方本方的通讯能力。当收到对方的信息后,设备将接口配置调整到最可能高的状态。自协商的内容包括:速度,全/半双工以及流控的使用。OSI七层模型介绍OSI七层模型是一种描述通信系统不同层次和功能的表示方法。以太网覆盖的是这个模型中的最低两层。第一层,是承载数据传输的介质(双绞线,铜轴,光纤等)第二层,数据链路层,是指向介质发送数据和从介质接收数据的控制机制。第三层是网络层。它的功能一般是由IP协议实现,当然也不排除其他的协议,如APPLETALK等。以太网的目的是保证数据在一个通讯网络的链路上传送。而第三层的协议是为了保证数据在整个网络上传输,从出发点,到最终的目的地。这个过程可能会涉及到多个以太网链路。图三是一个简化的网络连接图。第四层或以上的协议,主要完成数据的组合,并负责将数据传给最终的用户和应用。对于传输系统来说,对这部分的细节一般不太关心。如果希望了解整个七层的功能描述,读者可以在任何一本有关数据网络的教科书中找到答案。在此不再详述。以太网服务的测试上述的以太网连接必须经过测试,以保证它们运行正常,并能达到所需要的性能。以太网的测试通常是通过测试带宽,延时和帧丢失率来完成。在以太网术语中,这些被称为:Throughput,Lantency,FrameLoss。吞吐率(Throughput)数据吞吐率简单来说,就是从源发送方,到目的接收方可传输的最大数据量。然而吞吐率的定义和计算和对服务质量的接受程度有关。例如,当10%的丢包率被视为可接受时,吞吐率就是在10%的错误率以内的最大传输数据量。本文下面讨论的吞吐率,是基于零错误率条件下的最大传输量。这个也是最为普遍认同的标准。对于一个以太网系统,绝对的最大吞吐率应该等同于其接口速率。例如,10Mbit/s,100Mbit/s,1000Mbit/s。而实际上,由于不同的帧长度带来不同的传输效率,这些绝对的吞吐率是无法达到的。越小的帧由于前导码和帧间隔的原因,其传输效率就越低。表一显示的是在不同的帧长度下,实际可达到的最大吞吐率。延时(Latency)延时是指一个帧从源点到目的点的总传输时间。这个时间包括网络节点的处理时间,和在传输介质上的传播时间。测量延时的方法是,发送一个带有时间戳的帧,通过网络后,在接收方将当时的时间和帧所携带的时间戳比较,从而得出延时值。为了采用同一时钟源,一般要将发出的帧环回到发送方进行比较,因此也称为双程延时。帧丢失(FrameLoss)简单来说,帧丢失就是从发送方成功发出,而没有到达接收方的帧的数目。一般它被显示为帧丢失率,即相对于总发送帧数目的一个百分比。例如,如果1000个帧被发出,而只有900个帧被正确接收,那么帧丢失率就等于:(1000-900)/1000=10%。造成帧遗失的原因有很多,包括帧错误,由于带宽不足而引起的帧丢失等。超负荷(Oversubscription)造成帧丢失的一个常见原因就是在一定的带宽下,数据量超负荷。例如,当两个1000Mbit/s的以太网业务映射到一个622Mbit/s的SDH管道里时,当两个千兆以太网业务启动时,将很快的到达带宽的极限。一旦超过带宽的极限,则超出部分的帧将被丢弃。额外延时(ExcessiveDelay)帧在以太网络中传输时,有一个合理的延时是很常见的。对于一个测试人员来说,了解这一点是很重要的。因此在接收端必须等待一定的时间,使所有的发送包到达,并做统计。而当设定的等待时间达到后,对于仍未接收到的帧,将被认为已经被丢失。这个等待时间,一般都采用RFC2544里规定的2秒。任何帧,当它在发送后2秒内没有收到,即被认为是丢失。服务等级协定(ServiceLevelAgreements)在很多的应用中,以太网业务是根据与用户制定的业务等级协议来配置和建立的。其中,经常被提到的就是服务质量(QoS),服务质量也是目前以太网服务行业最为关注的话题。在决定提供哪一种服务类型和质量时,三个主要的考虑因素是:带宽,时延和数据丢失率。带宽在人们的需求中,是一个关键的因素。数据交换,电子邮件,基于WEB的讲座和讨论,VOIP业务,等等,这些都向服务提供商提出了越来越多的带宽要求。为了支持这些业务,在SLA中,会很清楚的注明对带宽的要求。而网络业务提供商则需要提供证据,表示其提供的链路能达到协议中注明的对带宽的要求。延时是在SLA中,另一个关键的指标。特别是需要使用实时业务时。这些实时业务涵盖了从基于WEB的讲座和演示,到VOIP的许多网络应用。网络中引起的过长延时,将使这些业务无法进行,或严重降低服务的质量。在VOIP应用中,长延时将对双方的通话造成很大的影响,例如回声等。另外一个对延时的要求,是它的稳定性。如果一个网络的延时很小,但是在传输过程中,经常变化,也会对某些实时业务造成影响。在任何一个网络中,数据丢失显然都是不希望看到的。因此服务提供商需要向用户保证他们提供的以太网链路不会丢失数据帧。RFC2544基准测试(RFC2544BenchmarkTesting)本文到目前,讨论的是对于以太网链路,需要进行哪些测试,以及用户经常要求什么?但是,服务提供商怎么样来实施用户可以理解和接受的测试呢?一个测试需要持续多长时间,测试的结果有什么含义呢?答案是,RFC2544建议。RFC2544建议是一个测试基准。它规定了一系列的测试过程和方法,使得服务提供商和用户间,可以在同一个基准下,对测试的实施和结果达成共识。RFC2544要求对一系列的帧长(64,128,256,512,768,1024,1280,1518字节)在一定的时间内,按一定的数目进行测试。因为在网络应用中,大,中,小帧都可能使用,因此必须了解这些帧的测试结果。在RFC2544中提到的测试有:吞吐率测试,延时测量,帧丢失测试和背靠背测试。前面三个已经在本文的前面部分解释过。背靠背测试是向被测试设备发送突发的具有最小帧间隔的N个帧,并且统计被测设备送出帧的个数。如果和发送的个数相等,则增加N值,重复上述测试过程。直到被测设备送出的帧个数小于测试发送帧个数。背靠背值就是被测试设备在无帧丢失的情况下,最大能处理的突发帧个数。RFC2544要求将测试结果以文本和图形的形式显示和保存。这些测试结果可以为服务提供商和其用户提供准确的网络性能数据。