Can you summarize the following document?
        
  IPv4使用32位(4位元組)地址,因此地址空間中只有4,294,967,296(2)個地址。不過,一些地址是為特殊用途所保留的,如專用網路(約1800萬個地址)和多播地址(約2.7億個地址),這減少了可在網際網路上路由的地址數量。隨著地址不斷被分配給終端使用者,IPv4地址枯竭問題也在隨之產生。基於分類網路、無類別域間路由和網路地址轉換的地址結構重構顯著地減少了地址枯竭的速度。但在2011年2月3日,在最後5個地址塊被分配給5個區域網際網路註冊管理機構之後,IANA的主要地址池已經用盡。  這些限制刺激了仍在開發早期的作為目前唯一的長期解決方案的IPv6的部署。

  IPv4地址可被寫作任何表示一個32位整數值的形式,但為了方便人類閱讀和分析,它通常被寫作點分十進位制的形式,即四個位元組被分開用十進位制寫出,中間用點分隔。  下表展示了幾種不同的格式: 此外,在點分格式中,每個位元組都可用任意的進製表達。如,192.0x00.0002.235是一種合法(但不常用)的表示。

  說明:D類與E類IPv4地址不區分網路地址與主機地址

  最初,一個IP地址被分成兩部分:網路識別碼在地址的高位位元組中,主機識別碼在剩下的部分中。  為了克服這個限制,在隨後出現的分類網路中,地址的高位位元組被重定義為網路的"類"(Class)。這個系統定義了五個類別:A、B、C、D和E。A、B和C類有不同的網路類別長度,剩餘的部分被用來識別網路內的主機,這就意味著每個網路類別有著不同的給主機編址的能力。D類被用於多播地址,E類被留作將來使用。  1993年,無類別域間路由(CIDR)正式地取代了分類網路,後者也因此被稱為“有類別”的。  CIDR被設計為可以重新劃分地址空間,因此小的或大的地址塊均可以分配給使用者。CIDR建立的分層架構由網際網路號碼分配局(IANA)和區域網際網路註冊管理機構(RIR)進行管理,每個RIR均維護著一個公共的WHOIS資料庫,以此提供IP地址分配的詳情。

  在IPv4所允許的大約四十億地址中,三個地址塊被保留作專用網路。這些地址塊在專用網路之外不可路由,專用網路之內的主機也不能直接與公共網路通訊。但通過網路地址轉換(NAT),使用這些地址的主機可以像擁有共有地址的主機在網際網路上通訊。  下表展示了三個被保留作專用網路的地址塊(RFC 1918):

  通常情況下,路由器根據資料包文的目的地址決定轉發資料包文的下一跳地址。使用專用網路地址作為目的地址的資料包通常無法被公共路由器正確送達,因為公共路由器沒有相應的路由資訊,即無法得知如何才能轉發到該IP地址。因此,這就需要通過一種方法,將指引資料包文轉發的下一跳地址和真正要傳輸的目的地址分離開。於是就使用虛擬專用網,將IP報文封裝在其他報文內,以便於通過公網上的公共路由器,達到能處理該封包內層資料的網路裝置上解除封包後,該資料包可以被繼續轉發到目的地址。  將資料包文封裝的過程中,可以將資料包文封裝於IP報文中,也可以使用多協議標籤交換協議等,通過其他協議引導資料包文轉發。也可以封裝同時加密資料,以保護資料內容。

  RFC 5735中將地址塊169.254.0.0/16保留為特殊用於鏈路本地地址,這些地址僅在鏈路上有效(如一段本地網路或一個端到端連線)。這些地址與專用網路地址一樣不可路由,也不可作為公共網路上報文的源或目的地址。鏈路本地地址主要被用於地址自動配置:當主機不能從DHCP伺服器處獲得IP地址時,它會用這種方法生成一個。  當這個地址塊最初被保留時,地址自動配置尚沒有一個標準。為了填補這個空白,微軟建立了一種叫自動專用IP定址(APIPA)的實現。因微軟的市場影響力,APIPA已經被部署到了幾百萬機器上,也因此成為了事實上的工業標準。許多年後,IETF為此定義了一份正式的標準:RFC 3927,命名為“IPv4鏈路本地地址的動態配置”。

  地址塊127.0.0.0/8被保留作環回通訊用。此範圍中的地址絕不應出現在主機之外,傳送至此地址的報文被作為同一虛擬網路裝置上的入站報文(環回),主要用於檢查TCP/IP協議棧是否正確執行和本機對本機的連結。

  一個常見的誤解是以0或255結尾的地址永遠不能分配給主機:這僅在子網路遮罩至少24位元長度時(舊的C類地址,或CIDR中的/24到/32)才成立。  在有類別的編址中,只有三種可能的子網路遮罩:A類:255.0.0.0,B類:255.255.0.0,C類:255.255.255.0。如,在子網路192.168.5.0/255.255.255.0(即192.168.5.0/24)中,網路識別碼192.168.5.0用來表示整個子網路,所以它不能用來標識子網路上的某個特定主機。  廣播地址允許資料包發往子網路上的所有裝置。一般情況下,廣播位址是藉由子網路遮罩的位元反碼並和網路識別碼執行 OR 的位元運算得到,即廣播地址是子網路中的最後一個地址。在上述例子中,廣播地址是192.168.5.255,所以為了避免歧義,這個地址也不能被分配給主機。在A、B和C類網路中,廣播地址總是以255結尾。  但是,這並不意味著每個以255結尾的地址都不能用做主機地址。比如,在B類子網192.168.0.0/255.255.0.0(即192.168.0.0/16)中,廣播地址是192.168.255.255(主機位全1)。在這種情況下,儘管可能帶來誤解,但192.168.1.255、192.168.2.255等地址可以被分配給主機。同理,192.168.0.0作為網路識別碼不能被分配,但192.168.1.0、192.168.2.0等都是可以的。  隨著CIDR的到來,廣播地址不一定總是以255結尾(廣播地址是指主機位都為1的地址,255只是其中一種情況)。比如,子網路203.0.113.16/28的廣播地址是203.0.113.31。過程如下:  網路:203.0.113.16  掩碼:255.255.255.240  掩碼反碼:0.0.0.15  OR操作:  00010000 | 00001111 = 00011111 =31  一般情況下,子網路的第一個和最後一個地址分別被作為網路識別碼和廣播地址,任何其它地址都可以被分配給其上的主機。

  網際網路上的主機通常被指定,但IP報文的路由是由IP地址而不是這些名字決定的。這就需要將域名翻譯(解析)成地址。  域名系統(DNS)提供了域名轉換為IP地址的服務。與CIDR相像,DNS是層級結構。

  從20世紀80年代起,一個很明顯的問題是IPv4地址在以比設計時的預計更快的速度耗盡。 這是建立分類網路、無類別域間路由,和最終決定重新設計基於更長地址的因特網協議(IPv6)的誘因。  一些市場力量也加快了IPv4地址的耗盡,如:  隨著因特網的增長,各種各樣的技術隨之產生以應對IPv4地址的耗盡,如:  隨著IANA把最後5個地址塊分配給5個RIR,其主地址池在2011年2月3日耗盡。 許多地址分配和消耗的模型都預測第一個耗盡地址的RIR會在2011年的下半年出現。  廣泛被接受且已被標準化的解決方案是遷移至IPv6。IPv6的地址長度從IPv4的32位增長到了128位,以此提供了更好的路由聚合,也為終端使用者分配最小為2個主機地址的地址塊成為可能。遷移過程正在進行,但其完成仍需要相當的時間。

  對地址的快速分配和其造成的地址短缺促成了許多有效應用地址的方法,其中一種就是網路地址轉換(NAT)。

  IP報文包含IP首部和資料部分

  IPv4報文的首部包含14個欄位,其中13個是必須的,第14個是可選的(紅色標出),並命名為:“選項”欄位。首部中的欄位均以大端序包裝,在以下的圖表和討論中,最高有效位(Most Significant bit)被標記為0。

  資料欄位不是首部的一部分,因此並不被包含在首部檢驗和中。資料的格式在協議首部欄位中被指明,並可以是任意的傳輸層協議。  一些常見協議的協議欄位值被列在下面:  參見IP協議號列表以獲得完整列表。

  網際網路協議(IP)是整個網際網路架構的基礎,可以支援不同的物理層網路,即IP層獨立於鏈路層傳輸技術。不同的鏈路層不僅在傳輸速度上有差異,還在幀結構和大小上有所不同,不同MTU引數描述了資料幀的大小。為了實現IP資料包能夠使用不同的鏈路層技術,需要將IP資料包變成適合鏈路層的資料格式,IP報文的分片即是IP資料包為了滿足鏈路層的資料大小而進行的分割。  在IPv6不要求路由器執行分片操作,而是將檢測路徑最大傳輸單元大小的任務交給了主機。

  當裝置收到IP報文時,分析其目的地址並決定要在哪個鏈路上傳送它。MTU決定了資料載荷的最大長度,如IP報文長度比MTU大,則IP資料包必須進行分片。每一片的長度都小於等於MTU減去IP首部長度。接下來每一片均被放到獨立的IP報文中,並進行如下修改:  例如,對於一個長20位元組的首部和一個MTU為1,500的乙太網,分片偏移量將會是:0、(1480/8)=185、(2960/8)=370、(4440/8)=555、(5920/8)=740、等等。  如果報文經過路徑的MTU減小了,那麼分片可能會被再次分片。  比如,一個4,500位元組的資料載荷被封裝進了一個沒有選項的IP報文(即總長為4,520位元組),並在MTU為2,500位元組的鏈路上傳輸,那麼它會被破成如下兩個分片: 現在,假設下一跳的MTU為1,500位元組,那麼每一個分片都會被再次分成兩片(由於資料片段只有在目的主機才重新被組成資料包,因此再次分片是針對每個在網路中傳輸的資料幀): 第3和4片是從原始第2片再次分片而來,所以除了分片後的最後一個分片外MF為都為1。

  當一個接收者發現IP報文的下列專案之一為真時: 它便知道這個報文已被分片,並隨即將資料、識別符號欄位、分片偏移量和更多分片標誌一起儲存起來。  當接受者收到了更多分片標誌未被設定的分片時,它便知道原始資料載荷的總長。一旦它收齊了所有的分片,它便可以將所有片按照正確的順序(通過分片偏移量)組裝起來,並交給上層協議棧。

  網際網路協議定義並啟用了網路層,它使用一個邏輯地址系統。IP地址並不以任何永久的方式繫結到硬體,而且事實上一個網路介面可以有許多IP地址。為了正確地交付一份報文,主機和路由器需要其它機制來識別裝置介面和IP地址之間的關聯。地址解析協議(ARP)為IPv4執行這種IP地址到實體地址(MAC地址)的轉換。  此外,反向操作有時候也是必須的,比如,一臺主機在啟動時需要知道自己的IP地址(除非地址已經被管理員預先設定)。目前被用於這一用途的協議有動態主機設定協議(DHCP)、引導協議(BOOTP)和比較不常用的RARP。

  地址耗盡:
網際協議版本4(英語:Internet Protocol version 4,縮寫:IPv4,又稱因特網通訊協定第四版)是網際協議開發過程中的第四個修訂版本,也是此協議第一個被廣泛部署和使用的版本。其後繼版本為IPv6,直到2011年,IANA IPv4位址完全用盡時,IPv6仍處在部署的初期。