路由与交换技术
上QQ阅读APP看书,第一时间看更新

1.3 以太网

随着网络技术的发展,带宽、传输距离已不再成为制约以太网发展的因素,以太网技术在网络中的应用也越来越广泛。本节将对以下内容进行介绍。

(1)以太网的基本概念。

(2)以太网物理层的线缆标准。

(3)以太网的工作原理。

(4)以太网的端口技术。

(5)以太网实现中使用的ARP。

1.3.1 以太网基本概念

以太网是当今网络采用的主要局域网技术,它的概念诞生于1973年,由位于加利福尼亚Palo Alto的Xerox 公司提出并实现。Robert Metcalfe 博士研制的实验室原型系统运行速度是2.94兆比特每秒(2.94 Mbit/s),他也被公认为以太网之父。

1982年,数字设备公司(Digital Equipment Corp.)、英特尔公司(Intel Corp.)和Xerox公司联合公布了一个标准,采用带冲突检测的载波侦听多路接入(Carrier Sense Multiple Access with Collision Detection,CSMA/CD)的媒体接入方法,速率达到了10 Mbit/s,地址采用48 bit的物理地址。

几年后,IEEE 802委员会公布了一个与之前的标准稍不同的标准集,其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络。这三者的共同特性是都由802.2标准来定义,那就是802网络共有的逻辑链路控制(Logic Link Control,LLC)。不幸的是,802.2和802.3定义了一个与以太网不同的帧格式。

1995年,IEEE正式通过了802.3u快速以太网标准。

1998年,IEEE 802.3z吉以太网标准正式发布。

1999年,发布IEEE 802.3ab标准,即1000BASE-T标准。

2002年7月18日,IEEE通过了802.3ae,即10 Gbit/s以太网,又称为万兆以太网,它包括了10 GBase-R、10 GBase-W、10 Gbase-LX4这3种物理接口标准。

2004年3月,IEEE批准铜缆10G以太网标准802.3ak,新标准作为10 GBase-CX4实施,提供双轴电缆上的10 Gbit/s的速率。

1.3.2 以太网线缆标准

刚萌芽时期的以太网是共享式以太网,当时存在几种常见的传输介质,如图1-21所示。

图1-21 同轴电缆和双绞线

早期出现的是同轴电缆,有粗同轴电缆和细同轴电缆,典型的标准是10Base-5和10Base-2。其中, 10Base-5是粗同轴电缆标准,表示10 Mbit/s的速率,500 m的传输距离;10Base-2是细同轴电缆标准,表示10 Mbit/s的速率,200 m的传输距离。

到20世纪80年代末期,非屏蔽双绞线(UTP)出现,并迅速得到广泛的应用。UTP的巨大忧势在于:价格低廉,制作简单,收发使用不同的线缆,易于实现全双工工作模式。

双绞线有屏蔽与非屏蔽之分,如图1-22所示。屏蔽双绞线抗干扰能力较强,两者均为8芯电缆。

图1-22 屏蔽双绞线和非屏蔽双绞线

双绞线的类型由单位长度内的绞环数确定,包括有以下几类。

3类双绞线——在ANSI和EIA/TIA568标准中指定的电缆。该电缆的传输频率为16 MHz,用于语音传输及最高传输速率为10 Mbit/s的数据传输,主要用于10Base-T。

4类双绞线——该类电缆的传输频率为20 MHz,用于语音传输和最高传输速率为16 Mbit/s的数据传输,主要用于基于令牌的局域网和10Base-T/100Base-T。4类双绞线未得到广泛使用。

5类双绞线——传输频率为100 MHz,用于语音传输和最高传输速率为100 Mbit/s的数据传输,主要用于100Base-T和10Base-T网络。这是最常用的以太网电缆。

超5类双绞线——与普通的5类UTP双绞线比,其衰减更小,串扰更少,同时具有更高的衰减与串扰的比值和信噪比、更小的时延误差,性能得到了提高。

廉价的双绞线的使用,标志着以太网进入了发展的成熟期。图1-23所示为双绞线的线序。

图1-23 双绞线的线序

双绞线的线序有两种,直连和交叉。区分两种线序的主要原因在于网络设备接口分 MDI(Medium Dependent Interface )和MDI_X两种。一般路由器的以太网接口、主机的NIC(Network Interface Card)的接口类型为MDI。交换机的接口类型可以为MDI或MDI_X。Hub(集线器)的接口类型为MDI_X。双绞线的直连网线用于连接MDI和MDI_X,交叉网线用于连接MDI和MDI,或者MDI_X和MDI_X。具体连接方式如表1-4所示。

表1-4 设备连接方式

不过现在的很多交换机等网络设备都有智能 MDI/MDI-X 识别技术,也叫端口自动翻转(Auto MDI/MDI-X),可以自动识别连接的网线类型。用户不管采用直连网线或者交叉网线,均可正确连接设备。

从以太网诞生到目前为止,成熟应用的以太网物理层标准主要有以下几种。

● 10Base-2;

● 10Base-5;

● 10Base-T;

● 10Base-F;

● 100Base-T4;

● 100Base-TX;

● 100Base-FX;

● 1000Base-SX;

● 1 000Base-LX;

● 1 000Base-CX;

● 1 000Base-TX。

在这些标准中,前面的10、100、1 000分别代表运行速率,中间的Base指传输的信号是基带方式。

1.10兆以太网线缆标准

10兆以太网线缆标准在IEEE 802.3中定义,线缆类型如表1-5所示。

表1-5 10兆以太网线缆标准

2.100兆以太网线缆标准

标准以太网速率太低,已经无法满足现在网络数据传输的需要了。因此,IEEE制定了数据传输速率为100 Mbit/s的快速以太网,其标准为IEEE 802.3u,传输介质主要包括光纤和双绞线。快速以太网在数据链路层上跟10兆以太网没有区别,仅在物理层上提高了传输的速率。快速以太网线缆标准如表1-6所示。

表1-6 快速以太网线缆标准

100Base-T4现在已经很少使用,主流使用的网线是五类双绞线100Base-Tx。

3.吉以太网线缆标准

吉以太网是对IEEE 802.3以太网标准的扩展,在基于以太网协议的基础之上,将快速以太网的传输速率从100 Mbit/s提高了10倍,达到了1 Gbit/s。

吉以太网有两个标准:IEEE 802.3z(光纤与铜缆)和IEEE 802.3ab(双绞线)。具体的线缆类型如表1-7所示。

表1-7 以太网线缆标准

4.万兆以太网线缆标准

IEEE在2002年6月发布了万兆以太网标准IEEE 802.3ae,该标准正式定义了光纤传输的万兆标准,但并不适用于企业局域网普遍采用的铜缆连接。因此,为了满足万兆铜缆以太网的需求,2004年3月,IEEE通过了802.3ak,在同轴铜缆上实现万兆以太网,IEEE 802.3an定义了在双绞线上实现万兆以太网。万兆以太网线缆标准如表1-8所示。

以太网概述

表1-8 万兆以太网线缆标准

1.3.3 以太网工作原理

在前面的内容中,介绍了以太网的发展历史和线缆的标准,本小节将对以太网的工作原理进行介绍,主要知识点包括带冲突检测的载波侦听多路接入(Carrier Sense Multiple Access with Collision Detection, CSMA/CD)机制、Hub的工作原理、以太网链路层的介绍、以太网帧的封装结构,以及交换机的工作原理。

1.CSMA/CD

在制定以太网络标准的时候,采用了 CSMA/CD 机制的局域网技术。这是因为在以太网设计之初,计算机和其他数字设备是通过一条共享的物理线路连接起来的,如果同一时刻有多个设备进行数据传输,就会导致数据冲突。而 CSMA/CD 机制能够在保证数据被接收的同时避免这种冲突,一旦发生这种冲突也能够及时检测到。

可以从以下3点来理解。

● CS:载波侦听。

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

● MA:多址访问。

每个站点以广播方式发送数据,允许被多个站点接收。

● CD:冲突检测。

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

因此,基于 CSMA/CD 机制的以太网数据传输,实际上是在侦听到链路空闲的基础上进行数据发送,同时进行检测的过程。一旦发现冲突就停止发送,延迟一段随机时间之后继续发送的数据传输机制。以下描述了CSMA/CD机制具体的过程。

(1)若介质空闲,发送数据。否则,转(2)。

(2)若介质忙,则监听到信道空闲时立即发送数据。

(3)若检测到冲突,即线路上电压的摆动值超过正常值一倍,则发出一个短小的干扰(jamming)信号,使得所有站点都知道发生了冲突并停止数据的发送。

(4)发送完干扰信号,等待一段随机的时间后,再次试图传输,回到(1)重新开始。

同时,因为CSMA/CD算法的限制,也限制了以太网的帧长不能小于64字节。这是由最大传输距离和冲突检测机制共同决定的。最小帧长的规定是为了避免这种情况发生:A 站点已经将一个数据报的最后一个比特发送完毕,但这个报文的第一个比特还没有传送到距离很远的B站点。B站点认为线路空闲而继续发送数据,导致冲突。以太网帧长在技术上没有上限的限制,但基于内存以及缓冲区的考虑,在规范的标准中,一般会设置以太帧的载荷不超过1 500字节。

2.Hub的工作原理

局域网进行组网时,需要有一个网络设备把计算机和其他的终端设备进行连接,比较常见的设备包括Hub、交换机等。首先来看Hub的工作原理。

Hub是物理层的连接设备,工作模型如图1-24所示。

图1-24 Hub的工作模型

以太网范围扩大后,信号在传送的过程中容易失真,导致误码,Hub 的功能是恢复失真信号,并放大信号。Hub的每个接口可以连接一个终端设备。从物理拓扑上看,Hub组网的方式是一个星形的拓扑结构,但Hub内部使用的是共享总线的技术,所有接入Hub的终端共享使用总线资源,所以,使用Hub连接的终端逻辑结构仍然是总线型拓扑。

Hub的具体工作原理如图1-25所示。

图1-25 Hub的工作原理

以太网设备工作原理——共享式以太网

Hub 将从任何一个接口收到的数据帧不加选择地转发给其他的任何端口(接收端口除外),以保证数据报能够送达接收方。在这种工作机制中,如果有两个终端同时进行数据发送,那么必然会产生冲突,所以,Hub的工作必然需要有冲突的检测和避免机制,这即为之前提到的CSMA/CD工作机制。

Hub的工作机制相对简单,由Hub组建的以太网实质上是一种共享式的以太网,同样也存在共享式以太网的所有缺陷,譬如数据冲突严重、广播报文泛滥,而且数据转发无任何安全性。

3.以太网帧结构

上文在描述 TCP/IP 模型的时候,曾经简单介绍过数据链路层的结构。数据链路层又可以分为 LLC 子层和MAC子层。其中,LLC子层定义了链路层服务;MAC子层则完成物理链路的访问、链路级的站点标识(即MAC地址),同时接收LLC子层过来的数据,附加上MAC地址和控制信息后把数据发送到物理链路上。

MAC子层定义的物理地址由IEEE统一管理,共48位,通常被表示为12位的点分十六进制数。例如, 48位的MAC地址000000001110000011111100001110011000000000110100,表示为00e0.fc39.8034。MAC地址中的第2位指示该地址是全局唯一还是局部唯一,以太网一直使用全局唯一地址。

MAC地址又可以分为单播MAC地址、广播MAC地址、多播MAC地址。单播MAC地址唯一地标识了以太网上的一个终端,这个地址是固化在硬件(如网卡)里面的;广播MAC地址用来表示网络上的所有终端设备,全为1,表示为 ffff.ffff.ffff;多播 MAC 地址用于代表网络上的一组终端,第8位为1,例如01005e010101。

网络层在将数据发送给数据链路层后,数据链路层会对数据包进行封装处理。以太网的封装方式有两种,RFC894中定义了Ethernet II的封装方式,RFC 1042定义了IEEE 802的数据封装方式。两种封装方式相互兼容,Ethernet II和802.3帧结构如图1-26和图1-27所示。

图1-26 Ethernet II帧结构

图1-27 802.3帧结构

以太网数据帧封装中的DMAC代表目的终端的MAC地址,SMAC代表源MAC地址,而LENGTH/TYPE字段则根据值的不同有不同的含义:当LENGTH/TYPE﹥1 500时,该字段代表该数据帧的类型(TYPE,比如上层协议类型);当LENGTH/TYPE﹤1 500时,该字段代表该数据帧的长度(LENGTH)。DATA/PAD则是具体的数据,因为以太网数据帧的最小长度必须不小于64字节(根据半双工模式下的最大距离计算获得的),所以如果数据长度加上帧头不足64字节,就需要在数据部分增加填充内容。FCS则是帧校验字段,来判断该数据帧是否出错。

当LENGTH/TYPE的取值大于1 500的时候,MAC子层可以根据LENGTH/TYPE的值直接把数据帧提交给上层协议,这时候就没有必要实现LLC子层。这种结构便是目前比较流行的ETHERNET II,大部分计算机都支持这种结构。注意,这种结构下的数据链路层可以不实现LLC子层,而仅仅包含一个MAC子层。

当LENGTH/TYPE小于或等于1 500时,这种类型就是所谓的ETHERNET_SNAP,是802.3委员会制定的标准。此时LENGTH/TYPE代表的是帧长度的概念,跟随在后面的是3字节的802.2 LLC和5字节的802.2 SNAP。目的服务访问点(Destination Service Access Point,DSAP)和源服务访问点(Source Service Access Point,SSAP)的值都设置为0xAA。Ctrl字段的值设置为3。随后的3个字节org code都设置为0。接下来的两个字节类型字段和以太网帧格式一样,用于表示该数据帧的类型。802.3的封装格式目前的应用不是很广泛。

在Ethernet II和802.3的帧结构封装中,都包含了TYPE类型的字段,用于表示数据帧的类型。其中几种常用帧类型如下。

● 字段取值为0x0800时,该帧代表IP协议帧。

● 字段取值为0x0806时,该帧代表ARP帧。

● 字段取值为0x0835时,该帧代表RARP帧。

图1-28所示就是一个典型的Ethernet II帧,TYPE字段取值为0x0800,表示网络层的数据报文是IP包。

图1-28 Ethernet II帧

4.以太网交换机的工作原理

通过前面的 Hub 工作模式的介绍可以了解到,Hub 的转发效率不高,而且存在各种缺陷,因此 Hub设备慢慢地退出应用,取代Hub的是以太网交换机。

有别于Hub基于物理层工作的机制,以太网交换机工作在数据链路层(另一种设备是网桥,但现在已经基本不用,本书中不再介绍),Ethernet II或者802.3封装报文中的MAC地址来进行寻址。两层交换机的工作模式如图1-29所示。

图1-29 二层交换机的工作模式

数据从网络层发送到数据链路层后,加上目的MAC地址和自己的MAC地址(源MAC地址),计算出数据帧的长度,形成以太网帧。以太网帧根据目的MAC地址在二层交换网络中转发,直到被发送到对端设备。在数据转发中,交换机的工作主要包含以下两个方面。

(1)基于源MAC地址的学习。

交换机转发数据帧是基于MAC地址表进行的,而MAC地址表的建立则是交换机基于源MAC地址学习得到的。交换机通过构建MAC地址和交换机端口之间的映射关系形成MAC地址表。交换机在初始化时, MAC地址表为空。

如图1-30所示,交换机的端口1通过Hub接入了PC A和PC B,端口2则接入了PC C和PC D。当PC A发送数据的时候,交换机从端口1接收到这个帧,交换机查看该帧的源MAC地址,把端口1和PC A的MAC映射关系维护在交换机上,以此类推,每个站点都跟直接连接的端口建立好映射关系,最终端口1和端口2上会各自学习到所连接PC的MAC地址,形成MAC地址表。

图1-30 基于源MAC的学习

(2)基于目的MAC地址的转发。

交换机通过源MAC地址的学习,可以构建MAC地址表。惜助于MAC地址表,交换机可以完成数据帧的转发。交换机在接收到数据帧后,检查数据帧的目的MAC地址,然后,将目的MAC地址和MAC地址表进行匹配,匹配到的MAC地址表项的接口即为数据帧的出接口。如果出接口与入接口相同,则表明目的地址和源地址在同一个冲突域,从而不需要交换机转发,交换机将丢弃该帧。

如图1-31所示,交换机收到的数据帧的目的MAC地址是MACD,源MAC地址是MACA,跟MAC地址表进行匹配,找到出接口2,该数据帧被发送到接口2继续往外转发。

图1-31 基于目的MAC的转发

交换机转发以太网帧依据MAC地址表,但如果没有匹配的MAC地址表项,那数据帧该如何转发?如果数据帧是广播、多播地址,又该如何转发?图1-32对交换机的转发情况进行了描述。

交换机接收网段上的所有数据帧,利用接收数据帧中的源MAC地址来建立MAC地址表,使用地址老化机制进行地址表维护(默认为300 s,如果300 s内没收到源自该地址的帧,该表项就因老化而删除)。

如果数据帧是单播数据帧,交换机在MAC地址表中查找数据帧中的目的MAC地址,找到对应的表项后就将该数据帧发送到相应的端口(不包括源端口)。如果找不到,就向所有的端口发送(不包括源端口)。如果数据帧是广播和多播帧,则向所有端口转发(不包括源端口)。

图1-32 交换机工作原理

从上面的交换机的工作原理,可以看出交换机与Hub有着本质上的区别。交换机和Hub的网络拓扑类型也不一样。Hub 是总线型的拓扑结构,连接的网络同处于一个冲突域,同一时刻只能有一个用户进行数据发送,否则会发生冲突。交换机的网络是一个星形网络,交换机位于中心点,汇接各种终端的接入,能够为每个终端提供独立的数据传输通道,所以,对于交换机来说,每一个端口都是一个独立的冲突域。

交换机的交换模式有Cut-Through、Store-and-Forward、Fragment-free这3种。在Cut-Through模式下,交换机在接收到目的地址后即开始转发过程,交换机不检测错误,直接转发数据帧,延迟小。在Store-and-Forward模式下,交换机接收完整的数据帧后才开始转发过程,交换机检测错误,一旦发现错误,数据报将会丢弃,延迟较大。在Fragment-free模式下,交换机接收完数据报的前64字节(一个最短帧长度),然后根据帧头信息查找转发表,此交换模式结合了直通方式和存储转发方式的忧点。考虑到大多数错误是由于冲突引起的,冲突导致的数据帧错误一般会在64字节中体现出来,因此不用等待接收完整的数据帧后才转发,只要接收了64字节即可转发。在Fragment-free的转发模式中,如果在前64字节中检测到了帧错误,则直接丢弃整个数据帧。

交换机彻底解决了以太网的冲突问题,但是还是存在部分缺陷,譬如广播泛滥和安全性无法保证等。

以太网设备工作原理——二层交换机的工作原理

1.3.4 以太网端口技术

通过前面的课程,读者已经了解了以太网的基本概念、以太网线缆的类型、交换机和Hub的工作原理。本小节将对以太网端口的一些特性做一些介绍。

1.以太网的双工模式

之前介绍了两种以太网设备——Hub和交换机。Hub设备同一时刻只能有一个终端进行数据的收发,而且单个终端在某一时刻也只能进行收或者发的操作,不能同时进行收发。但交换机则可以允许多个终端同时进行收发。根据终端数据的收发模式,将以太网的物理层的工作模式区分为半双工和全双工两种。

● 半双工:端口同一时刻只能发送数据报或接收数据报。

● 全双工:端口能够同时发送和接收数据报。

2.以太网的自协商

以太网技术发展到100 Mbit/s速率以后,出现了一个如何与原来的10 Mbit/s以太网设备兼容的问题。为了解决这个问题,制定了自协商技术。

自协商功能允许一个网络设备将自己所支持的工作模式信息传达给网络上的对端,并接收对方可能传递过来的相应信息。自协商功能完全由物理层芯片设计实现,在传输业务数据帧之前完成,因此并不使用专用数据报文或带来任何高层协议开销。

自协商功能的基本机制就是将协商信息封装进一连串修改后的“10Base-T 连接测试收发波形”的连接整合性测试脉冲中。每个网络设备在上电、管理命令发出或是用户干预时发出此串脉冲。快速连接脉冲包含一系列连接整合性测试脉冲组成的时钟/数字序列。将这些数据从中提取出来就可以得到对端设备支持的工作模式,以及一些用于协商握手机制的其他信息,如图1-33所示。

图1-33 脉冲插入示意图

当协商双方都支持一种以上的工作方式时,需要有一个忧先级方案来确定最终工作方式。以太网速率双工链路自协商忧先级别从高到低的顺序如下所示。

1 000 Mbit/s全双工→1 000 Mbit/s半双工→100 Mbit/s全双工→100 Mbit/s半双工→10 Mbit/s全双工→10 Mbit/s半双工。

自协商的基本思路:100 Mbit/s忧于10 Mbit/s,全双工忧于半双工。除了自协商以外,读者也可以使用手工的方式进行配置。

以太网端口技术——自协商技术

3.流置控制

在线速不匹配(如100 Mbit/s向10 Mbit/s端口发送数据)或者数据突发集中传输的时候,可能会导致链路的拥塞,使数据发送的延时增加、数据丢包、重传增加,网络资源不能有效利用。

在实际的网络中,尤其是一般局域网,产生网络拥塞的情况极少,所以有的厂家的交换机并不支持流量控制。但部分厂家的交换机中定义了半双工方式下的反向压力和全双工方式下的IEEE 802.3x流控。

交换式半双工以太网利用一种内部的方法去处理速度不同的站之间的传输问题,它采用一种所谓的“反向压力(Back Pressure)”概念。例如,如果一台高速100 Mbit/s 服务器通过交换机将数据发送给一个10 Mbit/s的客户机,则该交换机将尽可能多地缓冲其帧,一旦交换机的缓冲区即将装满,它就通知服务器暂停发送。有两种方法可以达到这一目的:交换机可以强行制造一次与服务器的冲突,使得服务器退避;交换机通过插入一次“载波检测”,使得服务器的端口保持繁忙,这样就能使服务器像感觉到交换机要发送数据一样。利用这两种方法,服务器都会在一段时间内暂停发送,从而允许交换机去处理积聚在它缓冲区中的数据。

在全双工环境中,服务器和交换机之间的连接是一个无碰撞的发送和接收通道,不能使用反向压力技术。那么服务器将一直发送数据,直到交换机的帧缓冲器溢出。因此,IEEE制定了一个组合的全双工流量控制标准802.3x。IEEE 802.3x规定了64字节的“PAUSE”MAC控制帧的格式。当端口发生阻塞时,交换机向信息源发送“PAUSE”帧,告诉信息源暂停一段时间再发送信息。

以太网端口技术——流量控制

1.3.5 ARP

通过前面课程的学习,读者已经了解了以太网交换机的工作原理。本小节将介绍局域网中的终端之间是如何实现互通的,同时对地址解析协议(Address Resolution Protocol,ARP)等进行介绍。

1.ARP工作原理

在图1-34中,主机A尝试着从局域网中的另一台主机B上进行FTP文件下载,在FTP的客户端界面上输入了FTP服务器的IP地址,成功登录了FTP服务器。在这个过程中,主机A和主机B之间进行了数据的交互,局域网也完成了数据的转发。

按照之前介绍的内容,主机A往网络上发送数据的时候,需要进行数据的封装;从以太网的工作原理又可以了解到,如果数据链路层采用了Ethernet II标准,则数据帧中应该包含源MAC地址、目的MAC地址和TYPE类型字段。主机A可以获知自身的IP地址和MAC地址。同样通过登录FTP的操作,可以获知服务器的目的IP地址,但以太网帧头部中的目的MAC地址如何获知?

图1-34 ARP工作过程

ARP,地址解析协议,在IP地址和对应的硬件地址之间提供动态映射。仍然以图1-34为例,为获知主机B的MAC地址,主机A发送一份称作ARP请求的以太网数据帧给以太网上的每台主机,这个过程称作广播。ARP请求数据帧中包含目的主机的IP地址,意思如图中①所示“我需要10.1.1.1的MAC地址,作为这个 IP 地址的拥有者,请回答你的硬件地址”。接收到该 ARP 请求报文的主机,如果自身 IP 不是10.1.1.1,则不予回应,如果是10.1.1.1,则构建一个 ARP 应答报文发送给主机 A,这个应答报文中包含了 IP 地址及对应的硬件地址,如图中②所示。收到 ARP 应答后,后续的报文就可以传送了。具体的报文交互过程如图1-35所示。

图1-35 ARP报文的交互过程

ARP的请求报文以广播的方式发送,报文的目的MAC地址被填充为ff:ff:ff:ff:ff:ff,ARP的应答报文只需要回应给请求方即可,因此以单播的方式进行应答。

2.RARP工作原理

在进行地址转换时,有时还要用到逆向地址解析协议(Reverse Address Resolution Protocol,RARP)。RARP常用于无盘工作站,这些设备知道自己的MAC地址,需要获得IP地址。为了使RARP能工作,在局域网中至少有一台主机要充当RARP服务器。无盘工作站获得自己的IP地址的过程如图1-36所示。向网络中广播RARP请求,RARP服务器接收广播请求,发送应答报文,无盘工作站获得IP地址。

图1-36 RARP的工作过程

IP编址与路由——ARP与RARP协议

3.ARP代理

如果两台 PC 在同一网段却不在同一物理网络上,中间被路由器隔离。在通常情况下,当一台路由器收到一条 ARP 请求报文时,路由器将进行检查,查看该 ARP 请求的目的地址是否是自己,如果是,发出ARP应答报文。如果不是,丢弃该报文。所以,通常情况下,ARP请求无法跨越路由器进行传递,被路由器隔离的两台同网段主机无法进行通信。

如果路由器使能了代理ARP功能,当路由器R收到一条ARP请求报文时,发现该报文的目的地址不是自己,路由器并不立即丢弃该报文,而是查找路由表,如果路由器有到达该目的地址的路由,则路由器将自己的MAC地址发送给ARP请求方。ARP请求方就将到该目的地址的报文发送给路由器,路由器再将其转发出去。这个过程就被称作委托ARP或ARP代理(Proxy ARP)。

4.免费ARP

Gratuitous ARP(免费ARP)是一种特殊的ARP报文,正常情况下,主机发送ARP请求报文去请求目的终端的MAC地址,但免费ARP报文请求的是自己的IP地址对应的MAC地址。如果网络上没有另一台主机设置了相同的IP地址,则主机不会收到回答。而当主机收到该请求的回答时,则表示有另一台主机设置了与本机相同的IP地址。于是主机会在终端日志上生成一个错误消息,表示以太网内存在一台相同IP的主机。

所以,概括来说,免费ARP报文有以下两个作用。

(1)通过发送免费ARP可以确认IP地址是否有冲突。当发送方收到一条免费ARP请求的回答时,表示当前网络中存在着一个与该IP地址相冲突的设备。

(2)更新旧的硬件地址信息。当发送免费 ARP 的主机正好改变了硬件地址,如更换网卡,免费 ARP就可以起到更新硬件地址信息的功能。当接收方收到一条ARP请求时,并且该ARP信息在ARP表中已经存在,则接收方必须用新的ARP请求中的地址信息更新旧的ARP信息表。