前言
以太网是由DEC(数字设备公司)、Intel和Xerox组成的DIX(DEC-Intel-Xerox)联盟制定的之一个标准,并于1982年发布。经过长期发展,以太网已经成为应用最广泛的局域网,包括标准以太网(10 Mbit/s)、快速以太网(100 Mbit/s)、千兆以太网(1000 Mbit/s)和万兆以太网(10 Gbit/s)。IEEE 802.3规范基于以太网标准,并且与以太网标准兼容。
在TCP/IP中,以太网的IP数据报文封装格式由RFC894定义,IEEE802.3 *** 的封装格式由RFC1042定义。当今最常用的封装格式是RFC894定义的格式,通常称为Ethernet_II或Ethernet DIX。
01以太网基础知识
1.1以太网 *** 层
以太网使用被动介质通过广播传播信息。它规定了物理层和数据链路层的协议、物理层和数据链路层的接口以及数据链路层和更高层的接口。
物理层
物理层规定了以太网的基本物理属性,如数据编码、时标、电频率等。
位于物理层OSI参考模型的底层,直接面对实际承担数据传输的物理介质(即通信信道)。物理层的传输单位是比特,即二进制比特(“0”或“1”)。实际的比特传输必须依赖于传输设备和物理介质。但是,物理层并不是指特定的物理设备或用于信号传输的物理介质,而是为上层(数据链路层)提供物理连接,在物理介质之上传输原始的比特流。
数据链路层
数据链路层是OSI参考模型中的第二层,位于物理层和 *** 层之间。数据链路层根据物理层提供的服务向 *** 层提供服务。其最基本的服务是将源设备 *** 层转发的数据可靠地传输到相邻节点的目的设备 *** 层。
由于以太网的物理层与数据链路层相关,因此需要为物理层的不同工作模式提供特定的数据链路层。这给设计和应用带来了一些不便。
为此,一些组织和制造商提出将数据链路层分为媒体访问控制子层(MAC)和逻辑链路控制子层(LLC)。这样不同的物理层对应不同的MAC子层,LLC子层可以完全独立。如图1-1所示。
图1-1以太网链路层的层次结构
1.2以太网电缆标准
从以太网诞生到现在,主要有以下几种成熟的以太网物理层标准:
10BASE-210BASE-510BASE-T10BASE-F100BASE-T4100BASE-TX100BASE-FX1000BASE-SX1000BASE-LX1000BASE-TX10GBASE-T10GBASE-LR10GBASE-SR在这些标准中,前10、100、1000、10G分别代表工作速率,中基表示传输信号处于基带模式。
10M以太网电缆标准
IEEE802.3中定义了10M以太网电缆标准,电缆类型如表1-1所示。
表1-1 10 MB以太网电缆标准
同轴电缆的致命缺陷是电缆上的器件串联在一起,单点故障就可能导致整个 *** 的崩溃。0base-2和10BASE-5是同轴电缆的物理标准,基本已经被淘汰。
100 MB以太网电缆标准
100 MB以太网,也叫快速以太网FE(Fast Ethernet),在数据链路层和10M以太网没什么区别,只是在物理层提高了传输速率。
快速以太网电缆的类型如表1-2所示。
表1-2快速以太网电缆标准
0base-T和100BASE-TX都是运行在五条双绞线上的以太网标准。区别在于线路上信号的传输速率不同。10BASE-T只能工作在10M的速度,100BASE-TX工作在100M的速度。
100BASE-T4现在很少用了。
千兆以太网电缆标准
千兆以太网是IEEE802.3以太网标准的扩展。在以太网协议的基础上,快速以太网的传输速率从100Mbit/s提高了10倍,达到1 Gbit/s,千兆以太网线缆标准如表1-3所示。
表1-3千兆以太网电缆标准
用户可以利用该技术在原有的快速以太网系统中从100Mbit/s升级到1000Mbit/s。
千兆以太网物理层使用8B10B编码。在传统的以太网传输技术中,数据链路层将8位数据组提交给物理层,物理层经过适当的变换后发送给物理链路进行传输。但是转换的结果仍然是8位。
在光纤千兆以太网上,情况并非如此。当数据链路层向物理层提交8位数据时,物理层对8位数据进行映射,转换成10位后发送出去。
10千兆以太网电缆标准
目前万兆以太网使用IEEE 802.3ae作为附加标准,来说明将来会并入IEEE 802.3标准。10千兆以太网电缆标准见表1-4。
表1-4千兆以太网电缆标准
100Gbps以太网电缆标准
新的40G/100G以太网标准于2010年制定,目前使用附加标准IEEE 802.3ba进行说明。随着 *** 技术的发展,100Gbps以太网将在未来得到广泛应用。
1.3 C *** A/CD
C *** A的概念/CD
根据以太网最初的设计目标,计算机和其他数字设备通过共享的物理线路连接在一起。这种连接的计算机和数字设备必须以半双工的方式访问物理线路,还必须有冲突检测和避免机制,这种机制称为C *** A/CD(载波侦听多路访问/冲突检测),以避免多个设备同时抢占线路的情况。
C *** A/CD可以从以下三点来理解:
CS:载波侦听在发送数据之前进行侦听,以确保线路空闲,减少冲突的机会。MA:多址访问每个站点发送的数据,可以同时被多个站点接收。CD:冲突检测由于两个站点同时发送信号,信号叠加后,会使线路上电压的摆动值超过正常值一倍。据此可判断冲突的产生。边发送边检测,发现冲突就停止发送,然后延迟一个随机时间之后继续发送。C *** A的工作进程/裁谈会
C *** A/光盘的工作过程如下:
如果线路空闲则发送数据。如果线路不空闲则一直等待。终端设备不停的检测共享线路的状态。如果有另外一个设备同时发送数据,两个设备发送的数据必然产生冲突,导致线路上的信号不稳定。终端设备检测到这种不稳定之后,马上停止发送自己的数据。终端设备发送一连串干扰脉冲,然后等待一段时间之后再进行发送数据。发送干扰脉冲的目的是为了通知其他设备,特别是跟自己在同一个时刻发送数据的设备,线路上已经产生了冲突。检测到冲突后等待的时间是随机的。1.4最小帧长
由于C *** A/CD算法的限制,以太网帧不能小于某个最小长度。在以太网中,最小帧长是64字节,这是由更大传输距离和冲突检测机制决定的。
规定最小帧长度是为了避免这种情况:站点A已经发送了一个数据包的最后一位,但是这个消息的之一位还没有传输到远处的站点B。站点B认为线路空空闲,继续发送数据,产生冲突。
图1-2以太网_ II的帧结构
高层协议必须确保数据字段至少包含46个字节,这样以太网帧头的14字节校验码和帧尾的4字节校验码正好满足64字节的最小帧长,如图1-2所示。如果实际数据少于46字节,高层协议必须填充一些数据单元。
1.5双工以太网
以太网的物理层有两种模式:半双工和全双工。
半双工
半双工工作模式:
任意时刻只能接收数据或者发送数据。采用C *** A/CD机制。有更大传输距离的限制。集线器以半双工模式工作。
全双工
L2交换机取代集线器建立以太网后,以太网从共享式变成了交换式。而且用全双工代替半双工,大大提高了数据帧传输的效率,更大吞吐量达到双倍速率。
全双工从根本上解决了以太网的冲突问题,以太网从此告别C *** A/CD。
全双工工作模式:
同一时刻可以接收和发送数据。更大吞吐量达双倍速率。消除了半双工的物理距离限制。目前所有制造的网卡,二层设备,三层设备都支持全双工模式,除了HUB。
全双工的硬件保证:
支持全双工的网卡芯片收发线路完全分离的物理介质点到点的连接1.5以太网自协商
自动协商的目的
最早的以太网是10M半双工,所以需要C *** A/CD等一系列机制来保证系统的稳定性。随着技术的发展,出现了全双工,随后是100M,大大提高了以太网的性能。但接下来的问题是:如何保证原有以太网和新以太网的兼容性?
因此,自动谈判技术被提出来解决这一矛盾。自动协商的主要功能是通过交互信息使物理链路两端的设备自动选择相同的工作参数。自动协商的内容主要包括双工模式、运行速度、流量控制等参数。一旦协商通过,链路两端的设备将被锁定在相同的双工模式和运行速度。
以太网速率双工自协商在以下标准中定义:
百兆以太网标准:IEEE 802.3uIEEE 802.3u规范将自协商作为可选功能。千兆以太网标准:IEEE 802.3zIEEE 802.3z规范将自协商作为强制功能,所有设备必须遵循并且必须默认启用自协商。自动协商原则
自动协商是在 *** 设备之间建立连接的一种方式。它允许 *** 设备将其支持的工作模式信息传递给 *** 上的对等体,并接受对等体可能传递的信息。根据彼此工作模式信息的交集,双方按照双方支持的更优工作模式建立连接。
对于双绞线连接的以太网,如果没有数据传输,链路并不总是空闲空,而是每隔16ms发送一个高脉冲来维持链路层的连接。该脉冲成为NLP(正常链路脉冲)码流。NLP码流中插入一些频率较高的脉冲,可以用来传输更多的信息。这些脉冲成为FLP(快速链路脉冲)码流,如图1-3所示。自协商功能的基本机制是将协商信息封装到FLP码流中,以达到自协商的目的。
图1-3脉冲插入示意图
*** 民工 *** 民工专注于IT技术领域,结合自身实战经验,与您分享 *** 技术、系统集成、 *** 工程等前沿技术的分析与实践案例等深度干货文章。希望我们能一起享受科技,实现梦想!70篇原创文章
微信官方账号
对于光模块和光纤连接的以太网,类似于双绞线连接的以太网,也是通过发送码流进行自协商,这种码流称为C码流,即配置码流。与电口不同,光口一般不协商速率,一般工作在双工模式,所以自协商一般只用于协商流量控制。
如果协商通过,网卡将激活链路并开始传输数据。否则,该链接无法使用。
如果一端不支持自动协商,支持自动协商的一端会选择默认模式,通常是10M半双工模式。
自协商完全由物理层芯片设计实现,IEEE 802.3规范要求自协商在以下任一情况下启动:
链路中断后恢复设备重新上电任何一端设备复位有重新自协商(Renegotiation)请求此外,连接的两端并不总是发送自协商码流。自协商不使用特殊数据包,也不会带来任何高层协议开销。
接口的自动协商规则
接口对接时,双方能否正常通信,关系到两个接口设置的工作模式是否匹配。
当两端接口都工作在相同类型的非自协商模式时,双方可以正常通信。当两端接口都工作在自协商模式时,双方通过协商可以正常通信,最终的协商结果取决于能力低的一端,通过自协商功能还可以协商流量控制功能。当两端接口一端的工作模式为自协商,对端为非自协商时,接口最终协商的工作模式和对端设置的工作模式相关。1.6冲突域和广播域
冲突域
在以粗同轴电缆为传输介质的传统以太网中,同一介质上的多个节点共享链路的带宽,争夺链路的使用权,这样就会产生冲突。在C *** A/CD机制中,当冲突发生时, *** 将后退,并且在这个后退时间期间没有数据在链路上传输。而这种情况是不可避免的。同一介质上的节点越多,冲突的可能性就越大。这组连接在同一条线上的所有节点就是一个冲突域。冲突域中的所有节点都竞争相同的带宽,一个节点发送的消息(无论是单播、组播还是广播)都可以被其他节点接收到。
广播域
因为在 *** 中使用广播,会占用带宽,降低设备的处理效率,所以必须限制广播。例如,ARP使用广播消息从IP地址解析MAC地址。1 FFFF-FFFF-FFFF的所有1MAC地址都是广播地址,所有节点都将处理具有广播地址的数据帧。一个节点发送广播消息,而其他节点可以接收到该消息的这组节点就是一个广播域。传统网桥可以根据MAC表转发单播报文,并向所有接口转发广播报文,所以网桥所有接口连接的节点属于一个广播域,但每个接口属于一个单独的冲突域。
02以太网交换
2.1二层交换的原理
二层交换设备工作在OSI模型的第二层,即数据链路层,它对数据包的转发是基于MAC(媒体访问控制)地址的。二层交换设备的不同接口独立收发数据,每个接口属于一个不同的冲突域,因此 *** 中的物理层冲突域被有效隔离,通过它互联的主机(或 *** )不必担心流量对数据传输冲突的影响。
二层交换设备通过分析学习以太网帧的源MAC(存储MAC与接口对应关系的表称为MAC表),维护MAC地址与接口的对应关系,并通过其目的MAC进行MAC投票,找出转发哪个接口。基本流程如下:
二层交换设备收到以太网帧,将其源MAC与接收接口的对应关系写入MAC表,作为以后的二层转发依据。如果MAC表中已有相同表项,那么就刷新该表项的老化时间。MAC表表项采取一定的老化更新机制,老化时间内未得到刷新的表项将被删除掉。设备判断目的MAC地址是不是广播地址:如果目的MAC地址是广播地址,那么向所有接口转发(报文的入接口除外)。如果目的MAC地址不是广播地址,根据以太网帧的目的MAC去查找MAC表,如果能够找到匹配表项,则向表项所示的对应接口转发,如果没有找到匹配表项,那么向所有接口转发(报文的入接口除外)。从上述过程可以看出,二层交换通过维护MAC表,根据目的MAC查找转发表,可以有效利用 *** 带宽,提高 *** 性能。图1-6是第二层交换的一个例子。
图1-6第二层交换示例
二层交换设备可以隔离冲突域,但不能有效划分广播域。从上述二层交换设备的转发过程可以看出,广播报文和目的MAC查找失败的报文会被转发到除报文入接口以外的所有接口。当 *** 中的主机数量增加时,这种情况会消耗大量的 *** 带宽,同时也会带来一系列的安全问题。当然是通过路由器隔离广播域的一种方式,但是由于路由器的高成本和低转发性能,这种方式的应用受到了限制。基于这些情况,VLAN技术出现在第二层交换中。
2.2三层交换原理
第三层交换机的背景
在早期的 *** 中,一般采用二层交换机来构建局域网,而不同局域网之间的互联是由路由器来完成的。当时的 *** 流量,局域网内部的流量占绝大部分,而网间的流量比较少,用几个路由器就够了。
然而,随着数据通信 *** 的不断扩大和 *** 服务的不断丰富, *** 间互访的需求日益增加。但是路由器成本高、转发性能低、接口数量少,不能很好地满足 *** 发展的需要。于是,一种能够实现高速三层转发的三层交换机出现了。
当然,三层交换机并不能完全取代路由器。路由器丰富的接口类型、良好的流量服务等级控制和较强的路由能力仍然是三层交换机的薄弱环节。
三层转发原理
目前三层交换机一般将二层 *** 进行划分,通过VLAN实现二层交换,同时可以实现不同VLAN之间的三层IP互访。不同 *** 的主机之间相互访问的过程简单如下:
源主机在发起通信之前,将自己的IP与目的主机的IP进行比较,如果两者位于同一网段(用 *** 掩码计算后具有相同的 *** 号),那么源主机直接向目的主机发送ARP请求,在收到目的主机的ARP应答后获得对方的物理层(MAC)地址,然后用对方MAC地址作为报文的目的MAC地址进行报文发送。当源主机判断目的主机与自己位于不同网段时,它会通过网关(Gateway)来递交报文,即发送ARP请求来获取网关IP地址对应的MAC,在得到网关的ARP应答后,用网关MAC作为报文的目的MAC发送报文。此时发送报文的源IP是源主机的IP,目的IP仍然是目的主机的IP。下面详细描述三层交换的过程。
如图1-7所示,通信的源主机和目的主机连接在同一个第三层交换机上,但它们位于不同的VLAN(网段)。对于第三层交换机,两台主机位于其直连网段,其IP对应的路由都是直连路由。
图1-7三层转发原理 *** 示意图
图中显示了两台主机的MAC、IP地址和网关,以及三层交换机的MAC和不同VLAN配置的三层接口IP。当PC A向PC B发出PING命令时,过程如下:(假设在第3层交换机上没有建立硬件转发表条目)
*** 民工 *** 民工专注于IT技术领域,结合自身实战经验,与您分享 *** 技术、系统集成、 *** 工程等前沿技术的分析与实践案例等深度干货文章。希望我们能一起享受科技,实现梦想!70篇原创文章
微信官方账号
根据前面的描述,PC A首先检查出目的IP地址10.2.1.2(PC B)与自己不在同一网段,因此它发出请求网关地址10.1.1.1对应MAC的ARP请求;L3 Switch收到PC A的ARP请求后,检查请求报文发现被请求IP是自己的三层接口IP,因此发送ARP应答并将自己的三层接口MAC(MAC Switch)包含在其中。同时它还会把PC A的IP地址与MAC地址对应(10.1.1.2与MAC A)关系记录到自己的ARP表项中去(因为ARP请求报文中包含了发送者的IP和MAC);PC A得到网关(L3 Switch)的ARP应答后,组装ICMP请求报文并发送,报文的目的MAC(即DMAC)=MAC Switch、源MAC(即 *** AC)=MAC A、源IP(即SIP)=10.1.1.2、目的IP(即DIP)=10.2.1.2;L3 Switch收到报文后,首先根据报文的源MAC VLAN ID更新MAC表。然后,根据报文的目的MAC+VLAN ID查找MAC地址表,发现匹配了自己三层接口MAC的表项,说明需要作三层转发,于是继续查找交换芯片的三层表项;交换芯片根据报文的目的IP去查找其三层表项,由于之前未建立任何表项,因此查找失败,于是将报文送到CPU去进行软件处理;CPU根据报文的目的IP去查找其软件路由表,发现匹配了一个直连网段(PC B对应的网段),于是继续查找其软件ARP表,仍然查找失败。然后L3 Switch会在目的网段对应的VLAN 3的所有接口发送请求地址10.2.1.2对应MAC的ARP请求;PC B收到L3 Switch发送的ARP请求后,检查发现被请求IP是自己的IP,因此发送ARP应答并将自己的MAC(MAC B)包含在其中。同时,将L3 Switch的IP与MAC的对应关系(10.2.1.1与MAC Switch)记录到自己的ARP表中去;L3 Switch收到PC B的ARP应答后,将其IP和MAC对应关系(10.2.1.2与MAC B)记录到自己的ARP表中去,并将PC A的ICMP请求报文发送给PC B,报文的目的MAC修改为PC B的MAC(MAC B),源MAC修改为自己的MAC(MAC Switch)。同时,在交换芯片的三层表项中根据刚得到的三层转发信息添加表项(内容包括IP、MAC、出口VLAN、出接口),这样后续的PC A发往PC B的报文就可以通过该硬件三层表项直接转发了;PC B收到L3 Switch转发过来的ICMP请求报文以后,回应ICMP应答给PC A。ICMP应答报文的转发过程与前面类似,只是由于L3 Switch在之前已经得到PC A的IP和MAC对应关系了,也同时在交换芯片中添加了相关三层表项,因此这个报文直接由交换芯片硬件转发给PC A;这样,后续的往返报文都经过查MAC表到查三层转发表的过程由交换芯片直接进行硬件转发了。从以上过程可以看出,三层交换机充分利用了“一次路由(之一个包由CPU转发,建立三层硬件表)和多次交换(后续包由芯片硬件转发)”的原理,实现了转发性能和三层交换的完美统一。
03以太网交换应用场景
如图1-8所示,一个企业有IP *** 、员工PC、 *** 打印机、移动终端、服务器等设备需要接入 *** 。
图1-8使用以太网技术建立企业 *** 的示例
以太网技术可以将许多终端设备连接到 *** 上,从而实现员工访问 *** 、拨打IP *** 、员工PC访问服务器共享资源、通过 *** 远程打印、IT管理员统一管理等 *** 服务。