ip屬於計算機網路體系結構的「網路層」協定。IP指網際互連協定,是TCP/IP體系中的網路層協定,它可以向傳輸層提供各種協定的資訊,例如TCP、UDP等;對下可將IP資訊包放到鏈路層,通過乙太網、令牌環網路等各種技術來傳送。
本教學操作環境:windows7系統、Dell G3電腦。
ip屬於計算機網路體系結構的「網路層」協定。
IP協定簡述
IP指網際互連協定,Internet Protocol的縮寫,IP是整個TCP/IP協定族的核心,也是構成網際網路的基礎。IP位於TCP/IP模型的網路層(相當於OSI模型的網路層),它可以向傳輸層提供各種協定的資訊,例如TCP、UDP等;對下可將IP資訊包放到鏈路層,通過乙太網、令牌環網路等各種技術來傳送。
設計IP的目的是提高網路的可延伸性:一是解決網際網路問題,實現大規模、異構網路的互聯互通;二是分割頂層網路應用和底層網路技術之間的耦合關係,以利於兩者的獨立發展。根據端到端的設計原則,IP只為主機提供一種無連線、不可靠的、盡力而為的封包傳輸服務。
雖然IPV4終將會被IPV6替代,但是目前IPV4仍然是IP協定的主流版本,所以我們重點介紹一下IPV4版本。在學習TCP協定和socket通訊端程式設計的時候我們知道,如果想要在網際網路這個共用網路中精確定位到一臺主機,那麼就一定需要該主機的IP地址。主機是擁有IP地址,但是不能進行路由控制(Routing,意思是中轉、分組封包),路由器(Router)這種裝置既有IP地址,又可以進行路由控制;我們可以將接入網際網路中的主機和路由器都叫做節點。
舉個例子,我們普通人只有自己的地址,如果想要傳送快遞給朋友或者從別人那接受快遞,只能向郵遞員提供對方的地址或我們自己的地址,即我們只有地址標識,但是我們不能傳送快遞;而快遞員就像是路由器,他自己也有自己的地址,也可以收到他的私人快遞,但是他還可以將使用者的快遞,根據目的地不同,選擇不同的快遞線路進行運輸。下圖可以清楚表達IP協定在網路環境中的作用。
和之前學習TCP、UDP協定一樣,先來介紹一下IP協定的首部格式
我們可以發現IP協定首部與TCP協定首部非常相似,如果沒有特殊情況,都是20個位元組,因此我們也經常會把兩者放在一起稱為TCP/IP協定。下面將IP協定首部每個欄位都詳細介紹一下:
MTU(Maximum Transmission Unit最大傳輸單元)是在IP層下面的MAC協定中的概念,MAC協定我們可以理解為是物理層的一些協定,它位於IP協定的下層,那麼在傳送資料時相當於是使用者資料 + 應用層協定報頭(如HTTP請求報頭)
作為有效載荷交給傳輸層(如TCP協定),TCP協定再將TCP報頭 + 應用層傳來的資料
下交給IP層,IP層再將IP協定首部 + TCP層傳來的TCP報文
交付給MAC幀。因此每個MAC幀其實是IP協定首部 + IP層的有效載荷
。而MAC幀是有長度限制的,所以就要求IP資料包向下交付時並不是隨心所欲想發多長就發多長,如果MAC幀要求MTU為1500位元組,而IP封包總長度有2000位元組,那麼就需要分片,將原有的IP封包分成兩片,依次傳送,對端的主機在接收後,由對端的IP層再完成組裝。我們在Linux環境下可以使用ifconfig
命令檢視到MTU。
分片和組裝對於上層TCP/UDP和下層的MAC都是透明的,即上層和下層都不知道IP層將封包進行了分片操作,因此分片和組裝操作會由傳送方IP層和接收方IP層自動完成。但是分片意味著需要把一份資料變為多組資料傳輸,並且在對端還需要進行組裝,這樣會大大降低網路傳輸效率以及提升錯誤風險,因此在傳輸過程中應當儘量避免分片,即儘量不要傳送超過MTU長度的IP資料包。
IPV4中我們由32位元正整數來表示IP地址,計算機內部會直接以二進位制來儲存IP地址,不過人並不善於記憶二進位制整數,所以我們採用點分十進位制來記錄IP地址:即將32位元IP地址每8位元一組,分成4組,組間用’ . '進行分隔,再將每組轉換為十進位制。
因此我們可以直接算出,在IPV4標準下最多有2 ^ 32 = 4292967296個IP地址,但是能被人們使用的遠遠不足這個數位。(比如某些IP地址是有特殊作用被預留的,某些裝置如路由器會佔有多個IP地址)
IP地址由網路標識(網路地址)和主機標識(主機地址)兩部分組成。
我們查詢到一個IP地址的過程就像是去某個地方旅遊一樣,例如我們想要去天安門玩,不可能直接坐高鐵到達天安門,我們一定是先抵達北京市(目的網路),再通過北京市內的交通抵達天安門(目的主機)。因此我們在路由選擇時,應該先找到目標主機所在的區域網,再在該區域網中找到目標主機。這種方式可以快速幫我們定位到目標區域網,在區域網內搜尋目標主機就比在茫茫的網路中找一臺主機要快速多了。
網路號:保證互相連線的兩個網段具有不同的標識。
主機號:保證在同一個網段中,兩臺主機具有不同的標識。
IP地址劃分為五個級別,分別為A類、B類、C類、D類和E類(一直沒有使用過),所以目前我們所能見到的IP地址只有A、B、C、D四類。劃分的依據就是IP地址從第1位到第4位元的位元位。
在不考慮E類IP地址的時候,我們可以發現,A、B、C、D類地址的網路號所佔位元位逐漸增加,而主機號所佔的位元位在逐漸減少。這就意味著上述四類地址中,一類地址中的子網數量越來越多,但是子網中可以連線的主機變得越來越少。以國內一所普通高校為例,全校師生大約3萬人,如果每個人都有一臺筆記型電腦需要連線到校園區域網中,有些同學還會有一些平板電腦等其他需要連線網路的終端裝置,那麼在申請網路時就應該以5~6萬個IP地址去申請,如果使用A類地址,那麼主機號24位元會產生2 ^ 24 = 16777216個IP地址,遠遠超過實際所需要的,如果使用C類地址,則只有2 ^ 8 = 256個IP地址,遠少於所需IP地址,所以最合適的是B類地址,有2 ^ 16 = 65536個IP地址。這個例子也告訴我們,IP地址不能太多,會造成大量浪費;也不能太少,否則很多裝置會無法連線網路。
隨著Internet的發展,使用前四位是否為1來分類的方案弊端開始顯現:那就是很多子網的申請者都會去申請B類網路地址,因為A類根本用不完,而C類不夠用。導致B類的網路地址很快就被分配完了。而申請了A類的網路又會浪費大量的IP地址,在這種情況下,人們提出了新的劃分方案:CIDR(Classless Interdomain Routing無型別域間選路)
&
操作,所得結果就是網路號舉兩個例子幫助理解通過子網掩碼來劃分網路號和主機號
IP地址 | 二進位制表達 |
---|---|
140.252.20.68 | 1000 1100 1111 1100 0001 0100 0100 0100 |
子網掩碼 | 二進位制表達 |
---|---|
255.255.255.0 | 1111 1111 1111 1111 1111 1111 0000 0000 |
將IP地址與子網掩碼進行按位元與操作後得到1000 1100 1111 1100 0001 0100 0000 0000
,再轉化為方便人們使用的點分十進位制為140.252.20.0
,這就是該子網的網路號了。並且它的子網掩碼末尾的8個位元位為0,這個子網可以表示2 ^ 8 = 256臺主機,因此這個子網的地址範圍是140.252.20.0 ~ 140.252.20.255
IP地址 | 二進位制表達 |
---|---|
140. 252. 20. 68 | 1000 1100 1111 1100 0001 0100 0100 0100 |
子網掩碼 | 二進位制表達 |
---|---|
255.255.255.240 | 1111 1111 1111 1111 1111 1111 1111 0000 |
將IP地址與子網掩碼進行按位元與操作後得到1000 1100 1111 1100 0001 0110 0100 0000
,即該子網的網路號,同樣轉換成常用的點分十進位制為140.252.20.64
,它的子網掩碼末尾的4個位元位為0,這個子網可以表示2 ^ 4 = 16臺主機,因此這個子網的地址範圍就是140.252.20.64 ~ 140.252.20.79
假如某個大學要在校園內部組建一個區域網,只實現校園內部的網路通訊而不與外界任何一臺機器進行通訊,那麼理論上2 ^ 32個IP地址都可以使用,因為只在這個區域網中,不會出現相同的IP地址。不過RFC1918規定了組建區域網的私有IP地址的規範:
上述範圍內的IP地址都是私有IP,不在上述範圍內的IP則為全域性IP地址(公網IP地址)。
更多相關知識,請存取欄目!
VIP推薦:
以上就是ip屬於計算機網路體系結構的什麼協定的詳細內容,更多請關注TW511.COM其它相關文章!