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信息表。
- 網絡教育學習指導
- 光網絡評估及案例分析
- 局域網組建、管理與維護項目教程(Windows Server 2003)
- 網絡互聯技術(實踐篇)
- HTML5 Game development with ImpactJS
- 網絡的琴弦:玩轉IP看監控
- 網絡安全技術與解決方案(修訂版)
- Building RESTful Web Services with Spring 5(Second Edition)
- 數字調制解調技術的MATLAB與FPGA實現:Altera/Verilog版(第2版)
- 網絡利他行為研究:積極心理學的視角
- Selenium WebDriver 3 Practical Guide
- 圖神經網絡前沿
- 移動互聯網新思維
- Laravel Application Development Cookbook
- 工業以太網技術:AFDX/TTE網絡原理、接口、互連與安全