一文聊透 IP 地址的那些事

雲叔_又拍雲發表於2022-05-18

IP 地址,是一個大家都耳熟能詳的名詞。以生活舉例,IP 在網際網路中的作用就像是寄件時的收件人地址和寄件人地址,收件人地址讓信件可以被正確送達,寄件人地址則讓收到信的人可以回信。

IP 地址作為每一個網際網路裝置都擁有的,獨一無二的地址,其本質是 TCP/IP 協議族中網路層的協議,也是 TCP/IP 協議族的核心協議。自 1981 年 Jon Postel 在 RFC791 中定義了第一次定義了 IP,到現在 IP 已經是現今網際網路技術的基礎。目前的全球網際網路所採用的協議族是 TCP/IP 協議族。而 IPv4 是網際網路協議(Internet Protocol,IP)的第四版。

IP 地址的表示方式

IPv4 地址(下文統稱 IP 地址)是一個 32 位的二進位制數表示的地址。因此,除了全 0 地址用來表示一個無效的,未知的,或者不可用的目標外,IPv4 一共擁有 2^32-1 個地址。它通常都是如下的樣子:

01111111000000000000000000000001

顯而易見,直接展示完整 32 位的 IP 地址既不直觀也不好記憶。所以為了方便使用,我們把這 32 位二進位制數分成八位一組,稱之為八位組(octet)。每個八位組書寫時用點分十進位制的格式標識。每個八位組取值為00000000~11111111(二進位制數),使用十進位制數表示則值為 0~255。這就讓 IP 地址變成了下面的樣子:

01111111 00000000 00000000 00000001

而因為二進位制與十進位制的轉化非常簡單,只需要用二進位制數的每一位乘以 2 的 N 次方即可,這其中的 N 是相應的位,從低位到高位以 0 次方開始,將二進位制是 1 的每位結果相加得到的就是相應的十進位制數。

把 32 位的二進位制數的 IP 地址使用點分十進位制來標識,除了全 0,這個範圍是從 000.000.000.001 到 255.255.255.255。然後再進一步的優化,例如對於 000.000.000.001,每個八位組中,高位的 0 可以不用寫出,即為 0.0.0.1。這一步步的最終讓 IP 地址變成了現在我們最熟悉的樣子,比如10.0.0.1、192.168.33.44 這類。順帶一提我們上面舉例用的 IP 地址轉換為點分十進位制後,就是大名鼎鼎的本機回送地址,這個地址是築基內部的 IP 地址,主要用於網路軟體測試以及本地機程式間通訊,無論什麼程式,一旦使用回送地址傳送資料,協議軟體立即返回之,不進行任何網路傳輸。

127.0.0.1

IP 地址的結構

看到這裡大家自然就會想到,除了本機地址,IP 還有其他地址嗎?沒想到吧,真的有。IP 地址可以劃分為兩個部分 :網路地址和主機地址。

  • 網路地址:表示主機所在的網路區域
  • 主機地址:主機在網路區域中的具體邏輯位置

如果我們把 IP 地址和電話號碼做類比:電話號碼 0571-81020204 中,0571 是區號,代表浙江杭州,類似於 IP 地址中的網路地址部分。81020204 是杭州市內某一個電話機的確切號碼,這就類似於 IP 地址中的主機地址部分。

當 IP 資料包在網路中傳遞時,路由器只關心目的 IP 地址的網路地址部分,通過識別 IP 地址的網路部分,來為 IP 資料包進行路由操作。當資料包達到了目的的網段以後,才通過 IP 地址的主機部分查詢具體的接收主機。

那麼,對於 IP 地址來說,哪幾位是網路部分,哪幾位是主機部分呢?這就需要根據網路規模和實際需求來劃分了。

IP 地址的分類

IP 在被設計時,將 IP 地址分成五個等級(Class A、B、C、D、E)。一般常用的是 A、B、C 這三種等級的 IP 地址,分別適用在大、中、小型網路。在申請 IP 地址時,會由負責管理 IP 地址的機構,依照申請者所需要的網路規模,賦予不同等級的 IP 地址。

A、B、C類的網路部分和主機部分的長短各不相同,網路地址越短,對應的可分配的主機地址就會越多。

在A、B、C 類地址中,有一部分被用做了私有地址。私有地址又稱為私網地址或假地址,是指不在網際網路上使用的,僅在企業或組織內部區域網上使用的 IP 地址。與之對應的,可以在網際網路上使用的 IP 地址稱為公網地址或真地址。私有地址的存在讓區域網中的主機不需要全部分配網際網路的可用地址,從而節約有限的 IP 地址資源。

IP 地址的未來

我們前面提到 IPv4 一共擁有 2^32-1 個地址。這個數量乍一眼看上去是很多的,但是考慮到現在每一個手機,每一臺電腦,甚至每一個冰箱都會接入網路,都需要一個 IP 地址,那這個數量一下子就不夠用了。

2011 年 2 月 3 日,全球 IP 地址分配機構 IANA(Internet Assigned Numbers Authority)就宣佈其地址池中的 IPv4 地址分配完畢了。2011 年 4 月 15 日,亞太網際網路絡資訊中心(APNIC)在 2012 年 9 月 14 日為歐洲網路資訊中心(RIPE NCC)分配了最後一個 IPv4 區塊,在 2014 年 6 月 10 日為拉丁美洲和加勒比海(LACNIC)分配了最後一個 IPv4 區塊。2015 年 9 月 24 日為北美分配 IPv4 區塊,2019 年 11 月 26 日,歐洲 RIPE NCC 終於耗盡了儲存。

沒有了 IP 地址新的裝置就無法接入網際網路,為了解決這個問題我們開始擁抱 IPv6。IPv6 的地址數量是 IPv4 的 2 的 96 次方倍,不用再擔心地址枯竭的問題。早在 1998 年我們就開始了對 IPv6 的相關實驗研究,但有一個很嚴肅的問題擺在我們眼前。那就是 IPv6 和 IPv4 之間的互通需要專門的技術和裝置。為了解決這個問題,加快推進部署和應用 IPv6。工信部指導基礎電信企業完成了骨幹網路、LTE 網路、都會網路絡 IPv6 升級改造,實現了全國 14 個骨幹網直聯點 IPv6 互聯互通。

資料顯示,截至 2021 年 12 月,我國 IPv6 活躍使用者數已達 6.08 億,約佔中國網民的 60.11%。從流量來看,都會網路 IPv6 總流量突破 44.77 Tbps,佔全網總流量的 9.38%,LTE 核心網 IPv6 總流量超過 24.43 Tbps,佔全網總流量的 35.15%。

又拍雲也推出了快速、安全的 IPv6 加速解決方案,助力企業快速實現 IPv6 的接入,擴大企業的業務服務範圍,提升使用者的訪問體驗。又拍雲 CDN 平臺同時支援 IPv4 和 IPv6 使用者的訪問,企業無需新增域名,已有加速域名也無需特殊配置,可平滑升級支援 IPv6 使用者訪問。一個嶄新的未來就在眼前。

推薦閱讀

使用者 IP,裡面藏了多少祕密?

關於 IPv6 國家有大動作啦!快來瞅瞅行動計劃都說了什麼

相關文章