??
🔍 開發者資源導航 🔍 |
---|
🏷??博客主頁:?個人主頁 |
📚?專欄訂閱:?JavaEE全棧專欄 |
IPv4(Internet Protocol version 4)是互聯網最核心的通信協議之一,自 1981 年正式標準化以來,支撐了全球互聯網近 40 年的發展,但是因為其數量的限制,正在逐步退出歷史的舞臺。
IPv4 因為使用 ?32 位地址,因此其理論最大地址數量為:
截止目前為止,IPv4已經全部使用殆盡。
?2011 年 2 月? ?IANA(國際互聯網號碼分配機構)?? 宣布 IPv4 地址池耗盡,最后 5 個 /8 地址塊分配給全球 5 個 RIR(區域互聯網注冊機構)。
?2011 年 4 月? ?APNIC(亞太地區)?? 第一個耗盡 IPv4 地址的 RIR,僅保留少量地址用于過渡。
?2012 年 9 月? ?RIPE NCC(歐洲)?? 宣布 IPv4 地址耗盡。
?2014 年 6 月? ?LACNIC(拉丁美洲)?? 耗盡。
?2015 年 9 月? ?ARIN(北美)?? 耗盡。
而對于這個問題,現在使用的主流解決方法是NAT技術或者升級為IPv6。
NAT技術
NAT(Network Address Translation)是一種 ?IP 地址轉換技術,主要用于解決IPv4 地址短缺?問題,并提高網絡安全性。它的核心功能是 ?將私有 IP 地址映射到公網 IP 地址,使多個設備可以共享一個公網 IP 訪問互聯網。
NAT技術將IPv4地址劃分為兩個部分:
私網IP:10.* && 172.16。*-172.31.* && 192.168.*
公網IP:除了上述的都是
公網和私網的關系可以看做是一個包含關系,同一個局域網的私網IP使用同一個公網IP進行上網,公網的IP是唯一的,而私網的IP在不同的局域網中是可以重復的。
?對于同一個局域網的私網IP他是動態變化的,每次上網時都是公網隨機分配給你一個空閑的IP地址,當然你也可以手動設置成固定的一個值(偶爾可能會被占用)。
私網在訪問網絡時,會先通過公網IP,然后使用公網IP再去訪問網絡。
+-------------------+ +---------------------+ +---------------------+
| 私網設備 | | NAT 路由器 | | 互聯網服務器 |
| (192.168.1.100) | ---> | (公網IP: 203.0.113.1)| ---> | (8.8.8.8) |
| | <--- | | <--- | |
+-------------------+ +---------------------+ +---------------------+
在NAT路由器中,存在一種映射關系,用于私網和公網之間的轉換,不同的私網在使用公網IP時是通過端口號進行區分的。
?在返回響應時也是如此,根據映射關系替換掉IP地址以及端口號,然后轉發給私網的設備。
除此之外,在NAT背景下網絡通信還有以下規則:
1.同一個局域網下,兩個設備可以互相通信
由于同一個局域下,私網IP地址不存在重復的情況,并不會涉及NAT。
2.公網設備A可以訪問公網設備B
公網也不涉及IP地址沖突。
3.不同局域網下的設備A和設備B不允許互相訪問
NAT機制禁止這樣的訪問方式,這也進一步提高了網絡安全。
4.公網設備A不允許訪問私網設備B
并不是絕對的,可以利用內網穿透的方式進行轉發。
IPv6
IPv6(Internet Protocol version 6)是 IPv4 的升級版本,旨在解決 IPv4 地址枯竭問題,并提供更高效、更安全的網絡通信。
IPv6是128位的地址,可以存儲2^128位地址(約 ?340 萬億億億億),這個數量即使給地球上的每一粒沙子都分配一個地址都夠用。
IPv4和IPv6都是網絡層的協議,但是他們的數據包格式不同。
對比項? | ?IPv4? | ?IPv6? |
---|---|---|
?地址長度? | 32 位(4 字節) | 128 位(16 字節) |
?地址表示? | 192.168.1.1 | 2001:0db8:85a3::8a2e:0370:7334 |
?源/目標 IP 字段? | 各 32 位 | 各 128 位 |
?頭部大小? | 20-60 字節(可變) | 40 字節(固定) |
?IPv6數據包格式(部分)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 版本 (6) | 流量類別 | 流標簽 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 載荷長度 | 下一個頭部 | 跳數限制 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 源 IP (128 位) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 目標 IP (128 位) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 仍然使用 IP 協議?(只是版本不同),但 IPv6 通常不需要 NAT,因為它的地址空間足夠大(2^128
?個地址),每臺設備都可以有全球唯一的公網 IP。
?IPv4和IPv6兩種協議并不兼容,因此IPv6的普及依舊需要時間。
- ?截至 2023 年?:全球 IPv6 采用率約 ?40%??(中國、印度超 50%,美國僅 30%)。
- 舊硬件/軟件可能并不支持 IPv6。
長遠角度來看,IPv6是解決該問題的終極方法,NAT技術可能會減少,但是不會完全消失。