※ 引述《yoyodiy (廢文心得文大師)》之銘言:
: 我文組啦 我也不懂耶
: 明明IPv4是 XXX.XXX.XXX.XXX
: 可是為什麼不到999 而只能到256 這樣不就只剩原來1/3 IP數量可用嗎?
: 當初設計的理組 怎麼會沒想到這點?
: 真的是有點弱 搞到最後弄出一個ipv6來補救
: 頗ㄏ
最多只能到255,不是256。
因為怕一般人看不懂,所以這篇文會用很白話的方式來描述,不一定會很精確。
IPv4的4並不是指4組號碼,而是第四個版本。
你可能會問:既然是第四個版本,
那麼他的哥哥,IPv1/2/3版本們跑了去哪?
答案是:ipv4才是實際上第一個IP協定,
其他的123號哥哥,都是TCP/IP協定的一部分。
下一個問題是,IPv4的下一代為何是IPv6,
IPv5死在哪裡了?
答案是:IPv5只是一個實驗性的協定,主要目的是提供穩定串流,
因此IPv5被包進了IPv6中。
原文中,下面有人說因為是二進制所以最多是255,
這個回答相當的奇怪,因為二進制不可能只能表示到255,
二進制的單一位數也不可能到255。
所以255是甚麼?是藉由8位一組的四組十進位合成,
稱為:quad-dotted。
一串IPv4的IP位置,
可以自由的在quad-dotted、32-bit、hexadecimal或octal byte間轉換。
因此與他的進制沒有任何關係。
上限是255,原因是IPv4使用了32個bit,也就是4個Byte,
用任何進制在四個區域間(以點隔開)表達出各1個Byte的整數,就都可成為IPv4的位置,
因此實際舉例IPv4的位置可以是:140.0x00.0251.0xAA。(通常不會有人這麼用)
那麼為何1個Byte、8個Bit的上限是255?
一個Bit只有0跟1,一個Byte最小是00000000,最大是11111111,
表達了從0到255的256種狀態。
IPv4的容量與架構是固定的,明確的定義了哪些資訊會被寫在第幾個Byte中,
他並不會說「我現在的來源IP是在第4個Byte,目的IP是第28個Byte唷」,
在IPv4中,來源IP一定是放在第12個Byte,而目的一定是放在第16個Byte,
總共有13項必要資訊被定義到,1項不一定被定義。
而為何不可能增加到999.999.999.999?
因為一個Byte(8個Bit)只有256種型態,上限就是到255,
而256的任何倍數都不會是999。
那好,既然IP不夠用了,我們就把他擴張成為兩倍:
原本是8+8+8+8,
現在我們把一個8乘以兩倍變成2個8,這樣就有16。
原本有四組,乘以兩倍後,變成了八組,
結果最後我們得到了16+16+16+16+16+16+16+16=128。
燈冷~~~擴張了之後變成128Bit,世界上又有更多IP位置可以用了。
聰明的你發現了嗎?
IPv4的下一代IPv6就是128bit阿!