天天看點

IP位址常見分類:A類、B類、C類、D類、E類前言IPv4位址表示方法IPv6位址表示方法IPv4位址常見分類

文章目錄

  • 前言
  • IPv4位址表示方法
  • IPv6位址表示方法
  • IPv4位址常見分類

前言

雖然IPv6漸漸出現在了人們的視線之中,但是目前來看IPv4仍然占據着主導地位,在日常的編碼過程中兩者都會接觸到,但實際上兩者在使用範圍、消息頭結構等細節上有諸多不同,具體的那些細節對于應用層來說可能體會不到,是以我們先從兩者的表示方式來看看,學會認出哪些是IPv4類型的位址,而哪些是IPv6類型的位址。

IPv4位址表示方法

每個IPv4位址占用4個位元組,長度為32位,由網絡号和主機号部分組成,最常采用點分十進制表示法,格式為

ddd.ddd.ddd.ddd

,其中

0 <= ddd <= 255

,而每個 d 都是十進制數,可省略前導零,比如常見的

192.168.1.1

,理論上最多能表示的位址個數為 2 32 2^{32} 232。

IPv6位址表示方法

每個IPv6位址占用16個位元組,長度為128位,占用空間是IPv4位址的4倍,但是這裡要注意,IPv4所能表示的位址個數相比于IPv4來說可不是4倍的關系,IPv6理論上最多能表示的位址個數為 2 128 2^{128} 2128,是IPv4能力的 2 96 2^{96} 296倍,換算成10進制也就是大約79228162514264337593543950336倍,在很長一段時間内不用再擔心IP位址不夠用的問題了。

而IPv6位址由于占用位數較多,是以采用更容易書寫和了解的冒分十六進制表示法,格式為

xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx

,其中每個 x 表示一個十六進制的符号,也就是0-9A-F,比如一個普通IPv6位址

23CD:0F01:0005:0789:ABED:EF01:2345:67D9

,前導零也是可以省略的,例如前一個位址可以記作

23CD:F01:5:789:ABED:EF01:2345:67D9

在某些情況下,一個IPv6位址内可能包含很長的一段0,這時可以把連續的一段0壓縮為

::

, 但要注意是,位址中

::

隻能出現一次,這樣才能保證位址解析的唯一性,比如位址

FF20:A:0:0:0:0:0:1AC2

,可以寫成

FF20:A::1AC2

,而位址

FF20:A:0:0:1:0:0:1AC2

中間有兩段0,為保證解析的唯一性,隻能選擇一段0來壓縮,比如寫成

FF20:A::1:0:0:1AC2

或者是

FF20:A:0:0:1::1AC2

為了實作IPv4位址和IPv6位址互相通信,在IPv6的環境下,IPv4位址會被擴充成IPv6位址,此時位址的格式常表示為:

xxxx:xxxx:xxxx:xxxx:xxxx:FFFF:ddd.ddd.ddd.ddd

,前面的96位采用IPv6冒分十六進制表示,而後面32位位址則使用IPv4的點分十進制表示,例如常用的IPv4位址

192.168.1.1

與表示成IPv6位址就是

FFFF:192.168.1.1

IPv4位址常見分類

192.168.1.1

這個IP位址随着路由器的普及逐漸為人們所熟知,有些人可能知道這是一個C類位址,究竟什麼是C類位址?難道還有A類、B類位址?不是說IP位址是惟一表示一台主機的嗎,為什麼我家的路由器和鄰居家的路由器位址都是

192.168.1.1

,關于這些問題就涉及到了IPv4位址的常見分類,其實IPv4位址一般被分為A、B、C、D、E五類,其中還包含一些保留位址和區域網路位址,關于這些資訊為了對比友善,我整理了下面這幅圖,有關分類的疑惑可以看圖了解一下:

IP位址常見分類:A類、B類、C類、D類、E類前言IPv4位址表示方法IPv6位址表示方法IPv4位址常見分類