IPv6和IPv4的表示方式
在使用ip地址的時候,經常會聽到IPv6和IPv4
那麼他們的區別在哪裏?
一開始的時候,是隻有IPv4地址,IPv4地址只有32位,可以使用,使用的是二進制計數,但是在記錄的時候採用十進制點分法分為四段,比如127.0.0.1,他表示的就是00001111.00000000.00000000.00000001。
如此一來,IPv4的方案可以有2^32個(也就是四十多億個地址)不同的地址,在一開始的時候還是夠用的,但是隨着互聯網發展至今,IPv4地址已經不能滿足人們的需求了,雖然也採用過NAT的方式減緩IPv4地址的消耗,但是現在我們不得不推出一種新的記錄IP地址的方式,那就是IPv6地址
插句題外話,十進制轉換成二進制是很麻煩的,所以下面IPv6採用了十六進制的方式來表示。
如果我們足夠細心,可以發現很多app的啓動頁面都是有一行小字“支持IPv6網絡”。
IPv6具有128的長度,也就是説可以有2^128次方的不同的IP地址,可以滿足現階段網絡發展的需求。IPv6地址採用冒號轉換的十六進制
這128個二進制數字太長了,但是我們知道一個十六進制的數字可以代替四個二進制數字,所以我們用32個十六進制數字來表示一個IPv6地址,而且分為八段,每段四個數字。
比如我現在隨便寫一個IPv6地址,給出下面這麼一行IPv6地址
0000:0000:0000:00c0:0090:0010:0000:0001(我隨手打的)
這裏字母對應的數字分別是a-f 對應10-15,比如a對應10,b對應11,c對應12……
這樣看似乎太長了,我們可以對這段IPv6地址進行化簡,化簡規則是:1.每段如果前幾位全是0,可以不寫
2.如果連續幾段都是0000,可以省略成::,但是隻能出現一次
化簡成::c0:90:10:0:1(這裏有6個冒號,原式有7個,前三個冒號其中一個被省略了)
在我們想拓展為128個二進制數字的時候,把這每位上的數字或者字母化成對應的4個二進制數字,然後按順序排列就好了