複製鏈接
請複製以下鏈接發送給好友

擴展地址

鎖定
擴展地址,在計算機操作系統中,可以稱之為物理地址擴展(Physical Address Extension,PAE),又釋實體位置延伸,是x86處理器的一個功能,讓中央處理器在32位操作系統下存取超過4GB的實體內存。計算機網絡中,擴展地址是指對IPv4地址的擴展,主要原因是IPv4的地址匱乏。
中文名
擴展地址
外文名
Extended Address
學    科
計算機
定    義
擴展計算機的尋址空間
有關術語
頁表,IPV4
領    域
操作系統、計算機網絡

擴展地址物理地址擴展

物理地址擴展(Physical Address Extension,縮寫為PAE),又釋實體位置延伸,是x86處理器的一個功能,讓中央處理器32位操作系統下存取超過4GB的實體內存。
PAE為IntelPentium Pro及以上級別的CPU(包括除了總線頻率為400MHz的這個版本的奔騰M之外的所有新型號奔騰系列處理器)所支持,其他兼容的處理器,如速龍(Athlon)和AMD的較新型號的CPU也支持PAE。
x86的處理器增加了額外的地址線以選擇那些增加了的內存,所以實體內存的大小從32位增加到了36位。最大的實體內存由4GB增加到了64GB。
32位的虛擬地址線性地址)則沒有變,所以一般的應用軟件可以繼續使用地址為32位的指令;如果用平面內存模式的話,這些軟件的地址空間也被限制為4GB。操作系統用頁表將這4GB的地址空間映射到大小為64GB的實體內存,而這個映射對各個進程一般是不一樣的。這樣一來,即使不能為單單一個程序所用,那些增加了的物理內存仍然可以發揮作用。
對於需要超過4GB內存的應用軟件來説,除了一般的PAE支持,還需要操作系統提供另外的特殊的技術。在Windows上,這種技術叫做Address Windowing Extensions(AWE)。而在類Unix的系統上則有多種技術在使用,例如使用mmap()按需要把一部分文件映射到地址空間;但是,這還沒有成為一個標準。

擴展地址有關術語

擴展地址頁表結構

在傳統的32位的保護模式中,x86處理器使用一種兩級的轉換方案。在這種方案中,控制暫存器CR3指向一個長4KiB的頁目錄(page directory);頁目錄又分為1024個每個4KB的頁表(page table);最後頁表又分為1024個每個長4KB的
啓用PAE(通過設置控制暫存器CR4的第5位來啓用)會改變上面的方案。默認情況下,每的大小是4KB的。頁表和頁目錄中的表項都從32位擴為64位(8字節)以使用附加的地址位。但是,頁表和頁目錄的總大小不變。所以,頁表和頁目錄現在都只有512個表項。因為這變成了原來方案的一半,所以另外的一個級加了進來:CR3現在指向的是頁目錄指針表,即一個包含4個頁目錄指針的表。
頁目錄裏的表項的第7位叫做PS(Page Size)。如果這個位設為1,則頁目錄的表項不再指向頁表,而是指向一個2MB的頁。頁目錄裏還有另外一個叫NX位元的標誌位。它是第63位,表示No eXecute。因為頁表項中最低的12位,要麼是這種標識位,要麼是和操作系統相關的數據,所以最多可有52位在將來用於在2字節,即4pebibyte的物理內存中尋址。
現在,x86架構只使用該52位中的36位。對於在長模式(long mode)中的x86-64處理器,PAE是必須的;其中AMD64使用了52位中的40位或48位 [1]  ,而Intel64將最多使用46位。
CPU對PAE模式的支持可以通過CPUID標誌PAE來識別。

擴展地址地址窗口擴展

地址窗口擴展(Address Windowing Extensions,縮寫AWE)是一項Microsoft Windows應用程序接口,它允許32位應用軟件訪問超出其虛擬地址空間限制(4GB)的物理內存。在地址窗口擴展下將應用程序的虛擬地址空間映射到物理內存的過程被稱為“加窗”(windowing),並類似其他環境的覆蓋概念。AWE對於需要操作極大數據集數據密集型應用程序(例如數據庫管理系統,科學工程學軟件)有益。
應用程序保留虛擬地址空間的區域或“窗口”,並分配物理內存的一個或多個區域。使用地址窗口擴展API,應用可以將虛擬窗口映射到任何一個物理區域。應用程序可以保留多個虛擬地址空間,並將其映射到物理內存的任何分配區域,只需虛擬地址空間中保留的字節數與物理內存區域相匹配。應用程序必須有“鎖定內存頁”的特權才能使用地址窗口擴展。
當保留內存超過4GB時,地址窗口擴展依賴於物理地址擴展的支持。地址窗口擴展在Windows 2000中作為一個取代PSE36方法的新API被引入。PSE36方法自Windows NT 4.0企業版引入,用於訪問超過4GB內存,在Windows 2000中已不支持 [2]  。第一批使用地址窗口擴展的應用程序是Oracle8.1.6和Microsoft SQL Server2000。
如果/3GB引導標識被使用以重新分配32位虛擬空間(2GB內核空間和2GB用户空間改為3GB用户空間),地址窗口擴展將只能訪問16GB物理內存。此限制是因為只有1GB內存保留給內核,而沒有足夠的內存用於映射超過16GB內存的頁表項。通過地址窗口擴展可尋址的最大內存量也因Windows許可方案而額外限制。例如,Windows 2000 Advanced Server限制為8GB,Windows 2000 Data Center Server則支持64GB。 [3] 
2004年在Dr. Dobb's Journal發佈的一篇文章稱注意到使用地址窗口擴展分配的內存將不會被寫入頁面文件,並建議AWE區域因此可作為保護敏感的應用程序數據(如加密密鑰)的一種方式。

擴展地址IPv4擴展地址技術

擴展地址CIDR

無類別域間路由(Classless Inter-Domain Routing、CIDR)是一個用於給用户分配IP地址以及在互聯網上有效地路由IP數據包的對IP地址進行歸類的方法。
在域名系統出現之後的第一個十年裏,基於分類網絡進行地址分配和路由IP數據包的設計就已明顯顯得可擴充性不足 (參見RFC 1517)。為了解決這個問題,互聯網工程工作小組在1993年發佈了一新系列的標準——RFC 1518和RFC 1519——以定義新的分配IP地址塊和路由IPv4數據包的方法。
一個IP地址包含兩部分:標識網絡的前綴和緊接着的在這個網絡內的主機地址。在之前的分類網絡中,IP地址的分配把IP地址的32位按每8位為一段分開。這使得前綴必須為8,16或者24位。因此,可分配的最小的地址塊有256(24位前綴,8位主機地址,28=256)個地址,而這對大多數企業來説太少了。大一點的地址塊包含65536(16位前綴,16位主機,216=65536)個地址,而這對大公司來説都太多了。這導致不能充分使用IP地址和在路由上的不便,因為大量的需要單獨路由的小型網絡(C類網絡)因在地域上分得很開而很難進行聚合路由,於是給路由設備增加了很多負擔。
無類別域間路由是基於可變長子網掩碼(VLSM)來進行任意長度的前綴的分配的。在RFC 950(1985)中有關於可變長子網掩碼的説明。CIDR包括:
指定任意長度的前綴的可變長子網掩碼技術。遵從CIDR規則的地址有一個後綴説明前綴的位數,例如:192.168.0.0/16。這使得對日益缺乏的IPv4地址的使用更加有效。
將多個連續的前綴聚合成超網,以及,在互聯網中,只要有可能,就顯示為一個聚合的網絡,因此在總體上可以減少路由表的表項數目。聚合使得互聯網的路由表不用分為多級,並通過VLSM逆轉“劃分子網”的過程。
根據機構的實際需要和短期預期需要而不是分類網絡中所限定的過大或過小的地址塊來管理IP地址的分配的過程。

擴展地址DHCP

DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個局域網的網絡協議,使用UDP協議工作, 主要有兩個用途:給內部網絡或網絡服務供應商自動分配IP地址,給用户或者內部網絡管理員作為對所有計算機作中央管理的手段,在RFC 2131中有詳細的描述。DHCP有3個端口,其中UDP67和UDP68為正常的DHCP服務端口,分別作為DHCP Server和DHCP Client的服務端口;546號端口用於DHCPv6 Client,而不用於DHCPv4,是為DHCP failover服務,這是需要特別開啓的服務,DHCP failover是用來做“雙機熱備”的。
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)通常被應用在大型的局域網絡環境中,主要作用是集中的管理、分配IP地址,使網絡環境中的主機動態的獲得IP地址、Gateway地址、DNS服務器地址等信息,並能夠提升地址的使用率。
DHCP協議採用客户端/服務器模型,主機地址的動態分配任務由網絡主機驅動。當DHCP服務器接收到來自網絡主機申請地址的信息時,才會向網絡主機發送相關的地址配置等信息,以實現網絡主機地址信息的動態配置。DHCP具有以下功能:
1. 保證任何IP地址在同一時刻只能由一台DHCP客户機所使用。
2. DHCP應當可以給用户分配永久固定的IP地址。
3. DHCP應當可以同用其他方法獲得IP地址的主機共存(如手工配置IP地址的主機)。
4. DHCP服務器應當向現有的BOOTP客户端提供服務。

擴展地址NAT

網絡地址轉換(Network Address Translation)簡稱為NAT,是將IP數據包包頭中的IP地址轉換為另一個IP地址的協議。當IP數據包通過路由器或者安全網關時,路由器或者安全網關會把IP數據包的源IP地址和/或者目的IP地址進行轉換。在實際應用中,NAT主要用於私有網絡訪問外部網絡或外部網絡訪問私有網絡的情況。NAT有以下優點:
  • 通過使用少量的公有IP地址代表多數的私有IP地址,緩解了可用IP地址空間枯竭的速度。
  • NAT可以隱藏私有網絡,達到保護私有網絡的目的。
私有網絡一般使用私有地址,RFC1918規定的三類私有地址如下:
  • A類:10.0.0.0 - 10.255.255.255(10.0.0.0/8)
  • B類:172.16.0.0 - 172.31.255.255(172.16.0.0/12)
  • C類:192.168.0.0 - 192.168.255.255(192.168.0.0/16)
上述三個範圍的IP地址不會在因特網上被分配,因而可以不必向ISP(Internet Service Provider)或註冊中心申請,而在公司或企業內部自由使用。
參考資料
  • 1.    Intel 64 and IA-32 Software Developer's Manual—Volume 3A (PDF)  .Intel.2007[引用日期2017-06-14]
  • 2.    Sajal Dam. SQL Server Query Performance Tuning Distilled. Apress. 2004: 28–29. ISBN 978-1-4302-0407-7
  • 3.    Dwaine Snow; Thomas X. Phan. Advanced DBA Certification Guide and Reference: For DB2 Universal Database V8 for Linux, UNIX, and Windows. Prentice Hall Professional. 2003: 87. ISBN 978-0-13-046388-3.