-
IPv4
鎖定
網際協議版本4(英語:Internet Protocol version 4,IPv4),又稱互聯網通信協議第四版,是網際協議開發過程中的第四個修訂版本,也是此協議第一個被廣泛部署的版本。IPv4是互聯網的核心,也是使用最廣泛的網際協議版本,其後繼版本為IPv6,直到2011年,IANA IPv4位址完全用盡時,IPv6仍處在部署的初期。
IPv4在IETF於1981年9月發佈的 RFC 791 中被描述,此RFC替換了於1980年1月發佈的 RFC 760。
- 中文名
- 網際協議版本4
- 外文名
- IPv4
- 別 名
- 網絡通信協議
- 簡 稱
- 網協版4
- 全 稱
- Internet Protocol Version 4
- 地址長度
- 32位,4字節
IPv4簡介
網際協議版本4(英語:InternetProtocolversion4,IPv4),又稱互聯網通信協議第四版,是網際協議開發過程中的第四個修訂版本,也是此協議第一個被廣泛部署的版本。IPv4是互聯網的核心,也是使用最廣泛的網際協議版本,其後繼版本為IPv6,直到2011年,IANAIPv4位址完全用盡時,IPv6仍處在部署的初期。
IPv4地址
IPv4使用32位(4字節)地址,因此地址空間中只有4,294,967,296(2)個地址。不過,一些地址是為特殊用途所保留的,如專用網絡(約1800萬個地址)和多播地址(約2.7億個地址),這減少了可在互聯網上路由的地址數量。隨着地址不斷被分配給最終用户,IPv4地址枯竭問題也在隨之產生。基於分類網絡、無類別域間路由和網絡地址轉換的地址結構重構顯著地減少了地址枯竭的速度。但在2011年2月3日,在最後5個地址塊被分配給5個區域互聯網註冊管理機構之後,IANA的主要地址池已經用盡。
這些限制刺激了仍在開發早期的IPv6的部署,這也是唯一的長期解決方案。
下表展示了幾種不同的格式:
格式 | 值 | 從點分十進制轉換 |
---|---|---|
192.0.2.235 | 不適用 | |
點分十六進制 | 0xC0.0x00.0x02.0xEB | 每個字節被單獨轉換為十六進制 |
點分八進制 | 0300.0000.0002.0353 | 每個字節被單獨轉換為八進制 |
0xC00002EB | 將點分十六進制連在一起 | |
3221226219 | 用十進制寫出的32位整數 | |
030000001353 | 用八進制寫出的32位整數 |
此外,在點分格式中,每個字節都可用任意的進制表達。如,192.0x00.0002.235是一種合法(但不常用)的表示。
分配
最初,一個IP地址被分成兩部分:網上識別碼在地址的高位字節中,主機識別碼在剩下的部分中。
為了克服這個限制,在隨後出現的分類網絡中,地址的高位字節被重定義為網絡的類(Class)。這個系統定義了五個類別:A、B、C、D和E。A、B和C類有不同的網絡類別長度,剩餘的部分被用來識別網絡內的主機,這就意味着每個網絡類別有着不同的給主機編址的能力。D類被用於多播地址,E類被留作將來使用。
CIDR被設計為可以重新劃分地址空間,因此小的或大的地址塊均可以分配給用户。CIDR創建的分層架構由互聯網號碼分配局(IANA)和區域互聯網註冊管理機構(RIR)進行管理,每個RIR均維護着一個公共的WHOIS數據庫,以此提供IP地址分配的詳情。
特殊用途的地址
CIDR地址塊 | 描述 | 參考資料 |
---|---|---|
0.0.0.0/8 | 本網絡(僅作為源地址時合法) | RFC 5735 |
10.0.0.0/8 | ||
100.64.0.0/10 | RFC 6598 | |
127.0.0.0/8 | RFC 5735 | |
169.254.0.0/16 | 鏈路本地 | RFC 3927 |
172.16.0.0/12 | ||
192.0.0.0/24 | 保留(IANA) | RFC 5735 |
192.0.2.0/24 | TEST-NET-1,文檔和示例 | RFC 5735 |
192.88.99.0/24 | 6to4中繼 | RFC 3068 |
192.168.0.0/16 | ||
198.18.0.0/15 | 網絡基準測試 | RFC 2544 |
198.51.100.0/24 | TEST-NET-2,文檔和示例 | RFC 5737 |
203.0.113.0/24 | TEST-NET-3,文檔和示例 | RFC 5737 |
224.0.0.0/4 | 多播(之前的D類網絡) | RFC 3171 |
240.0.0.0/4 | 保留(之前的E類網絡) | RFC 1700 |
255.255.255.255 | 受限廣播 | RFC 919 |
專用網絡
主條目:專用網絡
在IPv4所允許的大約四十億地址中,三個地址塊被保留作專用網絡。這些地址塊在專用網絡之外不可路由,專用網絡之內的主機也不能直接與公共網絡通信。但通過網絡地址轉換(NAT),使用這些地址的主機可以像擁有共有地址的主機在互聯網上通信。
下表展示了三個被保留作專用網絡的地址塊(RFC 1918):
名字 | 地址範圍 | 地址數量 | 有類別的描述 | 最大的CIDR地址塊 |
---|---|---|---|---|
24位塊 | 10.0.0.0–10.255.255.255 | 16,777,216 | 一個A類 | 10.0.0.0/8 |
20位塊 | 172.16.0.0–172.31.255.255 | 1,048,576 | 連續的16個B類 | 172.16.0.0/12 |
16位塊 | 192.168.0.0–192.168.255.255 | 65,536 | 連續的256個C類 | 192.168.0.0/16 |
主條目:虛擬專用網
通常情況下,路由器根據數據報文的目的地址決定轉發數據報文的下一跳地址。使用專用網絡地址作為目的地址的數據包通常無法被公共路由器正確送達,因為公共路由器沒有相應的路由信息,即無法得知如何才能轉發到該IP地址。因此,這就需要通過一種方法,將指引數據報文轉發的下一跳地址和真正要傳輸的目的地址分離開。於是就使用虛擬專用網,將IP報文封裝在其他報文內,以便於通過公網上的公共路由器,達到能處理該報文內層數據的網絡設備上解除報文後,該數據包可以被繼續轉發到目的地址。
主條目:鏈路本地地址
RFC 5735中將地址塊169.254.0.0/16保留為特殊用於鏈路本地地址,這些地址僅在鏈路上有效(如一段本地網絡或一個端到端連接)。這些地址與專用網絡地址一樣不可路由,也不可作為公共網絡上報文的源或目的地址。鏈路本地地址主要被用於地址自動配置:當主機不能從DHCP服務器處獲得IP地址時,它會用這種方法生成一個。
當這個地址塊最初被保留時,地址自動配置尚沒有一個標準。為了填補這個空白,微軟創建了一種叫自動專用IP尋址(APIPA)的實現。因微軟的市場影響力,APIPA已經被部署到了幾百萬機器上,也因此成為了事實上的工業標準。許多年後,IETF為此定義了一份正式的標準:RFC 3927,命名為“IPv4鏈路本地地址的動態配置”。
主條目:127.0.0.1
地址塊127.0.0.0/8被保留作環回通信用。此範圍中的地址絕不應出現於主機之外,發送至此地址的報文被作為同一虛擬網絡設備上的入站報文(環回),主要用於檢查TCP/IP協議棧是否正確運行和本機對本機的鏈接。
以0或255結尾的地址
在有類別的編址中,只有三種可能的子網掩碼: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是層級結構。
IPv4地址空間枯竭
主條目:IPv4地址枯竭
- 互聯網用户的急速增長;
隨着互聯網的增長,各種各樣的技術隨之產生以應對IPv4地址的耗盡,如:
廣泛被接受且已被標準化的解決方案是遷移至IPv6。IPv6的地址長度從IPv4的32位增長到了128位,以此提供了更好的路由聚合,也為最終用户分配最小為2個主機地址的地址塊成為可能。遷移過程正在進行,但其完成仍需要相當的時間。
IPv4網絡地址轉換
主條目:網絡地址轉換
對地址的快速分配和其造成的地址短缺促成了許多有效應用地址的方法,其中一種就是網絡地址轉換(NAT)。
IPv4分片和組裝
主條目:IP分片
互聯網協議(IP)是整個互聯網架構的基礎,可以支持不同的物理層網絡,即IP層獨立於鏈路層傳輸技術。不同的鏈路層不僅在傳輸速度上有差異,還在幀結構和大小上有所不同,不同MTU參數描述了數據幀的大小。為了實現IP數據包能夠使用不同的鏈路層技術,需要將IP數據包變成適合鏈路層的數據格式,IP報文的分片即是IP數據包為了滿足鏈路層的數據大小而進行的分割。
分片
當設備收到IP報文時,分析其目的地址並決定要在哪個鏈路上發送它。MTU決定了數據載荷的最大長度,如IP報文長度比MTU大,則IP數據包必須進行分片。每一片的長度都小於等於MTU減去IP首部長度。接下來每一片均被放到獨立的IP報文中,並進行如下修改:
- 總長字段被修改為此分片的長度;
- 更多分片(MF)標誌被設置,除了最後一片;
- 分片偏移量字段被調整為合適的值;
- 首部檢驗和被重新計算。
如果報文經過路徑的MTU減小了,那麼分片可能會被再次分片。
比如,一個4,500字節的數據載荷被封裝進了一個沒有選項的IP報文(即總長為4,520字節),並在MTU為2,500字節的鏈路上傳輸,那麼它會被破成如下兩個分片:
# | 總長 | 更多分片(MF)? | DF | 分片偏移量 | |
---|---|---|---|---|---|
首部 | 數據 | ||||
1 | 2500 | 是 | 0 | 0 | |
20 | 2480 | ||||
2 | 2040 | 否 | 0 | 310 | |
20 | 2020 |
# | 總長 | 更多分片(MF)? | DF | 分片偏移量 | |
---|---|---|---|---|---|
首部 | 數據 | ||||
1 | 1500 | 是 | 0 | 0 | |
20 | 1480 | ||||
2 | 1020 | 是 | 0 | 185 | |
20 | 1000 | ||||
3 | 1500 | 是 | 0 | 310 | |
20 | 1480 | ||||
4 | 560 | 否 | 0 | 495 | |
20 | 540 |
第3和4片是從原始第2片再次分片而來,所以除了分片後的最後一個分片外MF為都為1。
重組
當一個接收者發現IP報文的下列項目之一為真時:
- DF標誌為0;
- 分片偏移量字段不為0。
它便知道這個報文已被分片,並隨即將數據、標識符字段、分片偏移量和更多分片標誌一起儲存起來。
IPv4輔助協議
互聯網協議定義並激活了網絡層,它使用一個邏輯地址系統。IP地址並不以任何永久的方式綁定到硬件,而且事實上一個網絡接口可以有許多IP地址。為了正確地交付一份報文,主機和路由器需要其它機制來識別設備接口和IP地址之間的關聯。地址解析協議(ARP)為IPv4執行這種IP地址到物理地址(MAC地址)的轉換。
此外,反向操作有時候也是必須的,比如,一台主機在啓動時需要知道自己的IP地址(除非地址已經被管理員預先設置)。被用於這一用途的協議有動態主機設置協議(DHCP)、引導協議(BOOTP)和比較不常用的RARP。
[2]
IPv4參見
- 已分配的/8 IPv4地址塊列表
- 區域互聯網註冊管理機構
- 各國IPv4位址分配列表
- 參考資料
-
- 1. 全球IPv4地址正式耗盡! .IT之家.2019-11-26[引用日期2019-11-26]
- 2. IANA. 102, 103, 104, 179 and 185 have been allocated. No unicast IPv4 /8s remain unallocated.. 2011-02-03 [2011-02-03].