其實對于IPv6的基礎(chǔ)知識在網(wǎng)上都能查到,而且會說得非常詳細(xì),但每個人對IPv6的描述都不一樣,因此這里以筆者理解的角度來說明IPv6,同時為了讓兩者比較更加直觀,在這里采用最大的IPv4和最大的IPv6地址做范例,這樣看起來也更加飽滿,如圖1所示。
從以上可以看到IPv4是1組32位的二進(jìn)制地址,但是我們知道記一串32位1和0不斷變化的數(shù)字是多么恐怖,而且識別率也非常的低,比如:10111111和11011111,如果就這么掃一眼你可能還真沒看出是兩個不同的數(shù)字。因此為了方便記憶或為了提高識別率,當(dāng)時的設(shè)計者將32位2進(jìn)制分成4組,每組轉(zhuǎn)換位10進(jìn)制來記憶,這樣我們只需要記憶4個常規(guī)數(shù)字,比如:192.168.100.2,這樣是不是識別度非常高了?并且也方便記憶。
可到IPv6,一下變成128位,這樣就有128個1和0變化排成1行,如果用二進(jìn)制寫法去寫,估計都要寫幾分鐘,而這幾分鐘里只怕90%的時間是花在了校對是否寫錯上。所以設(shè)計者們再次變通,以4位為一個極小的小組為單位轉(zhuǎn)換為標(biāo)準(zhǔn)16進(jìn)制,然后還是以4個為基礎(chǔ)用冒號“:”作為分隔符,于是就將128位二進(jìn)制轉(zhuǎn)為32個16進(jìn)制。最后一總結(jié),雖然4這個數(shù)字在生活中不怎么吉利,但是4在網(wǎng)絡(luò)里卻占據(jù)著非常重要的位置。那么筆者就來總結(jié)下:
1.IPv6的二進(jìn)制長度是IPv4的4倍。
2.IPv6二進(jìn)制轉(zhuǎn)16進(jìn)制是正好也是4位二進(jìn)制。
3.IPv6的十六進(jìn)制又以4位為一組,組合成全長32位16進(jìn)制。
所以一直用IPv4的朋友要轉(zhuǎn)變?yōu)橛肐Pv6的時候,就記住4這個數(shù)字,因為什么都和4有關(guān)。
可能有人覺得32位16進(jìn)制同樣難以記憶,因此通過一些手段還可以進(jìn)一步的相對減少一些記憶,下面我們繼續(xù)。如下IPv6地址:
2019:0000:0000:0000:0 000:0000:0000:0001
我們可以進(jìn)行簡化,我們規(guī)定當(dāng)有連續(xù)0的時候,前面的0統(tǒng)統(tǒng)合并或丟棄,就好比我們學(xué)數(shù)學(xué)里0010,前2個0不需要寫出來,那4個0自然就合并成1個0,通過簡化就成了:
圖1 最大的IPv4和最大的IPv6地址舉例
2019:0:0:0:0:0:0:1
0是不是還是太多了?不要緊,我們還能繼續(xù)合并:
2019:::::::1
丟掉沒用的0后僅剩下冒號可讀性仍然很差,因此將冒號也進(jìn)行合并,于是經(jīng)過系列確認(rèn)后最終變成如下:
2019::1
這表示的方法比IPv4還短了,因此正式規(guī)定也就出來了,當(dāng)有連續(xù)丟棄的0的時候,0和冒號都可以省略,改用雙冒號表示,但這樣的省略在1個IPv6地址里只允許出現(xiàn)1次!
因此在IPv6的世界里,你能經(jīng)常看到如下的形態(tài):
2019:abc::ab01
fec0:15ae::1:15
3個十六進(jìn)制數(shù)一組的那是因為前面的一個0省略了,1個十六進(jìn)制數(shù)獨占一組的是因為前面的3個0省略了,而雙冒號就是那一串全省略了。
以上就是用最精簡的方式給大家把IPv6的格式進(jìn)行了一番介紹。