作者:一天,本文首發(fā)于公眾號:網絡之路博客


 回顧之前

上一篇了解了IP協(xié)議的各個字段的作用,以及提到了特別重要IP地址,在網絡世界中作為通信識別的唯一尋址信息,讓兩臺終端通信知道如何去跟回,其實網絡世界更像我們現實世界的縮影,很多能在現實中找到相似的影子,特別在于寄信件的時候,里面最重要的就是地址信息,這個能是去往目的地的關鍵信息,現實中通過各個省份、城市、區(qū)縣、區(qū)域來定位到具體位置,并且,這個地址是唯一的,不能出現重復,否則信件就不知道如何發(fā)送了,而在TCP/IP通信的網絡世界中,為了保證正常通信,也是一樣,需要有一個唯一并且能夠尋址功能定位到目的地在哪的地址信息,這就是IP地址,所以每個設備都需要正確的IP地址,否則無法實現正常的通信,那它在網絡世界中如何表示的呢?怎么去保證唯一性呢?

?

了解IP地址

1、IP地址的格式

在IP協(xié)議的報文中,可以得知IP地址是有32個比特,IP地址在計算機中是以二進制的方式處理的,如果全部以二進制的形式來表示,使用跟表達都非常的困難,所以為了人類方便記憶,采用了點分十進制的方式,將32位的IP地址以8位為一組,分成四個部分,每組以【.】進行隔開,再將每組轉換成十進制。


 22張圖帶你了解IP地址有什么作用_十進制

 

22張圖帶你了解IP地址有什么作用_廣播地址_02

以博主電腦網卡獲取的地址舉例,計算機系統(tǒng)處理以二進制進行,可以看到非常的長,都是0跟1的組合,在使用中很容易出錯也非常難記,換成十進制后,相對來說就輕松很多了。并且可以發(fā)現二進制里面0跟1的組合不一樣,得到的數值也不一樣,總共IP地址有多少個呢?

22張圖帶你了解IP地址有什么作用_段地址_03

最大允許差不多43億的終端連接到網絡里面來,看起來已經非常多了!但是,如今的Internet網中,IP地址是枯竭的狀態(tài),這也是為什么推出了IPV6的原因,可能IP地址的設計者也沒想到,今后的internet網會這么龐大。

 

  IP地址其實是由2個部分組成的,一個是網絡號(網段地址)和主機號(主機地址),這個兩個組成很關鍵,網絡號是設備所在區(qū)域的一種標識區(qū)分,網絡號相同的設備處于同一個網段內,網絡號不同的設備處于不同網段,兩個之間通信需要依賴三層設備。主機號是在同一個網段中標識不同終端設備,同一個網段內的終端是不允許出現重復的主機號的,這段很重要,先讀幾次,有個印象,這對我們排錯跟學習都非常有幫助。

 

舉個生活中的例子,一個小區(qū)內,有多棟樓,每棟樓都有501、601這樣,避免住戶搞混沖突,開發(fā)商會在前面加一個數字或者字母來進行區(qū)分每棟樓,比如2501、3601,這樣在找位置的時候就很容易找到了。隨著時間久了,可能跟同一棟樓的上下左右鄰里相處的不錯,經常會相互串門聊聊天,聚聚餐之類的,同一樓層每家獨立的門牌號不會重復,很容易就找到了。不同樓就相當于網絡號,有不同的標識,而同一棟樓的有很多住戶,每個住戶的門牌號都是不一樣的,不會有重復,這樣就方便定位了。

 

同樣的,在網絡中也是一樣,可能我們訪問的目的就在一個區(qū)域,也可能在另外的區(qū)域,那運行了TCP/IP協(xié)議的設備不管是PC、手機、路由器還是交換機,都得有一個判斷規(guī)則,來對比要去的目的跟自己是不是一個網絡區(qū)域,那就是通過上面的網絡號來進行區(qū)分。

22張圖帶你了解IP地址有什么作用_廣播地址_04

以我們最容易接觸到的家用網舉例,每個人家里都有無線路由器,可能有的下面接了電腦、手機、電視、PAD、有的甚至有個人服務器/NAS等。像上面的圖,路由器左邊是家庭局域網網,比如有三個終端,地址分別是192.168.255.1、192.168.255.2、192.168.255.240,不管是相互傳文件以及訪問個人的服務器,直接輸入對方的地址就可以了,并且還有這樣的情況,就算寬帶接入出現故障,互聯網訪問不到了,但這些局域網之間的互訪是不影響的。

22張圖帶你了解IP地址有什么作用_廣播地址_05


另外可以發(fā)現圖里面有相同的特征,都是192.168.255開頭,變化的是最后一位,現在還沒學介紹到地址分類,假設192.168.255相同的前綴為網絡號,同一個網段,而最后一位1、2、240為主機號,數字都不是重復的。

22張圖帶你了解IP地址有什么作用_廣播地址_06


比如這里192.168.255.1訪問192.168.255.240,這里192.168.255.1設備系統(tǒng)通過自己網卡的參數讀取到對應的IP信息與目的的IP比較,發(fā)現網絡號相同,則在同一個網段內,直接發(fā)送給對方,并且二層封裝目的主機的MAC地址。

  PS:(在同一個局域網內就是上一篇學習的二層,通過MAC封裝,交換機通過MAC學習到目標MAC的接口發(fā)送出去,當然這里會留下個疑問,終端之間怎么在會實現知道對方的MAC地址是多少呢,這里還沒講解ARP協(xié)議,暫時當成它已經事先知道了。另外家用路由器有多個LAN口,其實這LAN就相當于交換機的工作模式一樣,可以學習MAC的功能,自然就能知道某個設備在哪個口)  

22張圖帶你了解IP地址有什么作用_十進制_07

如圖 192.168.255.1去訪問互聯網上的百度 181.55.6.6, 假設對比前三段,終端判斷目的與自己的網絡號不一致,那么它該怎么處理呢?


22張圖帶你了解IP地址有什么作用_段地址_08

如果終端判斷目的與自己的網絡號不一致就會丟給網關處理,比如圖上面丟給192.168.255.254(家用路由器的網關),家用路由器通過查詢路由表中的網絡號,查詢交給Internet的網關,最終Internet中的路由器也通過查詢網絡號來層層傳遞,最終抵達目的地。

通過這個分析,可以得到這些有用的知識點總結。

  • IP地址的網絡號用于區(qū)分源目IP是否在同一個網段還是不同網段,主機號用于標識同一個網段內的不同終端,并且不能重復,比如192.168.255(網絡號),主機號可以是1、2、3 …..等
  • 設備終端,比如PC、手機、平板運行了TCP/IP協(xié)議的,它都有判斷的功能,如果目的IP與我網絡號相同,判斷在一個網段內,直接在同一個區(qū)域內完成通信;如果網絡號不同,則判斷為不同網段,這個時候直接交給網關處理,如果沒有網關信息,則通信失敗,數據包發(fā)送不出。
  • 路由器這些三層設備在處理轉發(fā)這個數據包的時候,查詢路由表根據目的IP的網絡號進行查詢轉發(fā),這樣的好處是能夠提高效率,不用具體到主機位,否則Internet這么龐大的網絡,每個網路設備都存放在路由表中,對設備的壓力以及查詢的效率就非常低了。
  • 終端設備訪問不同網段依靠的是網關,而路由器等三層設備轉發(fā)數據包去往不同目的地依靠的是路由表中的條目。

 

22張圖帶你了解IP地址有什么作用_運營商_09

 

  • 這些“規(guī)則”一定要有一個認知,后續(xù)在學習路由交換的時候非常有用,甚至排錯的時候,比如某個設備上不了網,那我們知道了上網是得有網關的,是不是就先檢查網關設置了嗎,設置的對嗎。當然這些會在后續(xù)中反復提到,數據包的通信離不開這些“規(guī)則”。

 

明白了網絡號與主機號的概念,那在IP地址中,哪幾位是網絡號?哪幾位是主機號呢?下面就來了解下地址分類以及子網掩碼的概念。


2、IP地址分類

在internet誕生初期,IP地址是非常充裕的,計算機科學家們進行了分類地址,把IP地址分為了5大類,分別是A類、B類、C類、D類、E類。

22張圖帶你了解IP地址有什么作用_段地址_10


早期沿用的是地址分類的方法,A、B、C作為全局可用唯一地址進行分配,每個列別定義了網絡號以及主機號的范圍大小,由于這種方式早就不在使用,只有考試以及很多書籍還在介紹,所以這里就簡單介紹下。

 

(1)A類地址

A類IP地址以首位為“0”開頭,前面8位是網絡號,網絡號范圍是0~127(0和127屬于保留地址)。

22張圖帶你了解IP地址有什么作用_ip地址_11


算下來就2^(8-1)-2=126,其中8位中最開始0是固定的,所以只有7個可以變化,0與127是保留需要-2,最終有126個網段。

 

后24位是主機號,表示可容納的終端數量,2^24次方=16777216個地址。


22張圖帶你了解IP地址有什么作用_十進制_12


(2)B類地址

B類IP地址前兩位以“10”固定開頭,1~16位為網絡號,網絡號的范圍128.0~191.255,其中169.254為保留地址,算下來2^(16-2)-1,有16383個可用網段。


22張圖帶你了解IP地址有什么作用_ip地址_13


后16位主機號,表示可容納的終端數量,2^16次方=65536個地址。


22張圖帶你了解IP地址有什么作用_十進制_14


(3)C類地址

 C類IP地址前三位“110”固定,從1~24位為它的網絡號,范圍是192.0.0~223.255.255.255,其中192.0.0屬于保留地址,所以有2^(24-3)-1=2097151


22張圖帶你了解IP地址有什么作用_運營商_15

后8位是主機號,標識可容納的終端數量,2^8=256個地址。


22張圖帶你了解IP地址有什么作用_ip地址_16

(4)D與E類地址

D類IP比較特殊,它屬于組播地址,不區(qū)分網絡號與主機號,用于各種協(xié)議中以及某些特殊場景,后續(xù)會慢慢熟悉,范圍是224.0.0.0~239.255.255.255。而E類屬于科研方面等方面,不用于互聯網使用。

 

(5)了解網段地址、網段廣播地址、以及單播地址

當主機號全為0時,表示某個網段,叫做網段地址,比如192.168.255.0,表示192.168.255.1到192.168.255.254所有地址,這也是以后在項目中經常遇到的表示方法,用于表示某個網段。

 

當主機號全為1時,它表示的網段廣播地址,發(fā)往這個地址的數據包,該網段內所有主機都能收到,比如:網段192.168.255.0,廣播地址是192.168.255.255。


22張圖帶你了解IP地址有什么作用_廣播地址_17

所以,在每個網段中,主機號全0的網段地址以及主機號全1的廣播地址是不能被使用,每個網段實際可用的地址是對應的地址數-2。

22張圖帶你了解IP地址有什么作用_十進制_18


那什么是單播地址呢?每個網段內除去網段地址以及網段廣播地址以外,剩下的就是單播地址,單播地址也就我們終端PC、手機以及網絡設備路由器、交換機設備上使用的地址了,通信雙方就一個發(fā)送方與接收方,而廣播則是一個發(fā)送方,其余同網段的主機都為接收方,但是不會發(fā)往其他網段,中間三層設備會隔離廣播,不會進行轉發(fā)。

 

(6)二進制與十進制轉換

上面介紹了一大堆地址范圍,可能很多朋友有點犯迷糊,怎么就計算出這么多的網段跟主機了,首先,要明白二進制與十進制的換算。

22張圖帶你了解IP地址有什么作用_段地址_19

二進制到十進制的換算,可以參考上面表格,也可以借助計算器,采用程序員的模式,輸入對應的數值即可,其中BIN表示二進制,DEC表示十進制,HEX表示十六進制。

22張圖帶你了解IP地址有什么作用_ip地址_20

按照上面的表格,把每一段“置1”的數值相加就得了每一段的十進制,最終就是192.168.255.4,這個是C類地址,因為網絡號前三位固定為110,同樣的A與B類的地址,都有前面固定的值,范圍都不一樣,只要知道了固定值的位置,然后就可以計算出每個類的范圍。

22張圖帶你了解IP地址有什么作用_段地址_21


(7)IP地址分類的好處

  • 判斷方便,網絡設備需要解析一個IP地址的時候,只需要判斷網絡位的前四位就可以知道是網絡號與主機地址的范圍。

22張圖帶你了解IP地址有什么作用_ip地址_22

這樣的地址分類好處就是簡單、選路查詢方便,減輕中間設備的壓力,但是也帶來了很多的問題,也是導致這種分類在如今的環(huán)境下無法使用的原因。

 

問題一:靈活性

一個企業(yè)可能根據需求以及區(qū)域不同會劃分成辦公區(qū)、生產區(qū)、會議區(qū)等,而IP分類是沒有這種區(qū)域層次的劃分功能的,缺少靈活性。

 

問題二:與現實網絡不匹配

從上面的分類的網段以及每個可以容納的終端數來看,A、B、C中間差距太明顯,比如一個C類的網段可以容納254個主機,一個小型辦公環(huán)境可能夠用了,稍微有點規(guī)模的就顯得不夠,而一個B類地址對應一個企業(yè)來說又達不到這樣大的規(guī)模,很多地址就浪費了,注意,公網地址是要花錢購買的,并不是免費使用的。

 

問題三:安全性問題

比如A公司與B公司是是同行競爭關系,同時向運營商購買了自己需要數量的IP地址,有一天,A公司的技術發(fā)現它竟然能看到B公司的數據包?原因就是運營商給它們分配的都是C類同一個網段,比如給A公司分配的是202.100.1.1到202.100.1.50,B公司分配的是202.100.1.101到202.100.1.180,通過地址分類,202.100.1.0屬于C類,而且是同一個網段,那么數據通信A與B之間其實是可以直接通信的,有可能B的數據發(fā)送了廣播報文的,導致A收到了,同樣A發(fā)送的某些數據包,B也收到了,對于這樣的場景,可能客戶為了安全性就會選擇去其他運營商購買,并且要求獨立的網段,這問題對于運營商來說就頭疼了,一個C內網段最少也有254個地址,一個公司有又不需要購買這么多,一部分給A,一個部分給B呢,又說不安全,空著吧,又浪費了。

 

問題四:地址浪費

其實從上面的三個問題中都可以看出來,地址的分類根本無法根據不同的場景需求來定制需要的,不是一個網段多了,就是少了,怎么都會造成地址浪

費空閑的,并且在劃分的時候,很多A類地址就被美國的公司或者運營商占據了,像我們中國作為全球第一的人口龐大的國家,都沒有一個”完整”的A類地址。而一個A類想想上千萬個地址,一個公司怎么可能用得了這么多,剩下的就白白的浪費了。


重點回顧

  • IP地址采用點分十進制表示,分為四個部分。
  • IP地址由網絡號與主機號組成,網絡號表示具體的某一個網段,同一個網段內的主機可以直接通信,不同網段的主機互訪則交給網關處理,是否在于同一個網段的判斷依據就是依賴網絡號。主機號表示這個網段內的終端數量,每個地址都不能相同。
  • 路由器等三層設備在處理數據包轉發(fā)的時候,也是通過網絡號進行查詢轉發(fā),這樣效率更高,對設備壓力更小。
  • 每個網段都存在一個網段廣播地址,一個網段地址,這兩個地址是不能被使用的,其中網段地址表示某個整體網段,而網段廣播地址是指,發(fā)往該地址的數據包,該網段內所有主機能收到,就像廣播一樣,但是只能在該網段內廣播,穿越不了路由器,也可以理解路由器天生隔離廣播。
  • IP地址早期采用分類地址,分為了A、B、C、D五大類,其中在后續(xù)經常會接觸到的有A、BC三類,分類的好處就是規(guī)劃了網絡號與主機號的范圍,并且為不同場景規(guī)模的環(huán)境提供了不同的網段數量以及主機數量。網關以及互聯網設備在轉發(fā)數據查詢的時候也很容易進行判斷。
  • 分類地址的方法存在很多弊端,最大的弊端就是地址的浪費,導致IPV4地址枯竭的重大原因。

 

參考文獻

[1]圖解網絡-小林coding-第三版

[2]計算機網絡--自頂向下(第七版)


“承上啟下”

竟然分類地址存在這么多的問題,勢必需要一種更好的分類劃分的方法來避免地址的浪費,以及可以靈活的進行劃分,這樣才能滿足internet快速壯大的規(guī)模跟發(fā)展的需求,這種方法就是下一篇要講的子網掩碼、VLSM、CIRD、私網地址。



作者:一天,本文首發(fā)于公眾號:網絡之路博客