目錄
1. 網絡層的作用
2. IPV4
2.1 IP 數據報格式?
2.2 IP地址分類方案
2.3 數據的轉發
2.4 特殊用途的IP地址
3. 子網劃分和子網掩碼
3.1? 子網劃分
3.2 子網掩碼
1. 網絡層的作用
? ? ? ? 按照教學五層模型,應用層、傳輸層、網絡層、數據鏈路層、物理層,應用層的單位是報文,經由傳輸層切割為報文段,在網絡層給報文段加了一個IP首部,就變成了IP數據報(分組),經由數據鏈路層封裝成幀,再由物理層以比特的形式進行傳輸。
2. IPV4
2.1 IP 數據報格式?
首部固定部分(20字節) + 可變部分(0-40字節)
????????當IP數據報過于大的時候,會將數據進行分片,我們通過最低位MF和次低位DF,可以了解到分片的信息。假如有一段IP數據報不允許分片,但是這段IP數據報過于大了,那說明這段IP數據報沒有辦法傳給目的網絡。
片偏移是指數據在分片之前所處的位置,以8B為一個單位。
ip數據報頭結構還包含著生存時間(TTL),當每經過一個路由器就會減1,就丟棄分組,如果減到0就會向主機發送一個ICMP報文。
發送和接收方的地址各占32bit。
2.2 IP地址分類方案
????????最初的時候,我們使用IPV4協議,有32bit,也就是說最多能表示2的32次方 = 42億個地址,當時只有政府、學校、軍隊才會有機會使用互聯網,所以42億完全夠用。
2.3 數據的轉發
????????每一個路由器都是一個網關,維護同一類的ip地址;當有數據進行轉發的時候會根據路由轉發表進行轉發。
①當一個IP數據報需要進行發送的時候,首先會查看頭部的源地址和目的地址,判斷是否是同一類網絡(比如B類網絡需要比對前16個bit位),如果屬于同一類網絡那就不需要經過路由器的轉發。
②數據鏈路層把數據分組封裝成MAC幀,根據ARP協議將目的地址的MAC地址找到,根據目的地址的MAC地址由交換機、集線器不斷轉發最終找到目標;目標收到MAC幀之后,把MAC幀的控制信息拆掉,最后得到的是真正的IP數據報。
2.4 特殊用途的IP地址
①主機號全0,既不能用于發送地址也不能用于目的地址。
②C類廣播:x.x.x.255(主機號全為1),對x.x.x進行廣播。
③0.0.0.1只能做源地址。?
④0.0.0.0本網絡的本主機。暫時沒有IP地址。此時需要發送DHCP報文從而獲得地址。
⑤255.255.255.255本網絡進行廣播。
⑥127.x.x.x回環地址,表示主機本身。當我們在本地開發服務端和客戶端,我們需要測試通信,就可以把源地址和目的地址設置成127.0.0.1,由于網絡號是127,網絡層接收之后會發給自己。
3. 子網劃分和子網掩碼
3.1? 子網劃分
????????如果是B類網址,我們有16位主機號,我們可以從16位主機號中拿出一位作為子網號,就可以把這一個網分成兩個子網。簡單的說就是把原本的主機號劃出一部分作為子網號,劃分為不同的子網從而提高資源的利用率。
? 每個子網地址的主機地址不能全0(子網本身),全1(就是廣播地址)。只有網絡號+子網號相同的地址才算是同一個子網。
3.2 子網掩碼
????????本機IP地址和子網掩碼做與運算,可以得到本機網絡號和子網號;目的主機也是如此,這樣一來我們可以判斷目的地址和本地地址是否屬于同一個子網。如果支持子網劃分,那么該路由器的路由轉發表就會增加子網掩碼。目的IP地址和子網掩碼做按位與運算,再和目的網絡號+子網進行對比找到對應的轉發接口進行轉發。
? ? ? ? 加上了子網掩碼,數據該怎么發送呢?首先我們將目的地址和源地址對自己的子網掩碼進行按位與,得到網絡號和子網號,如果網絡號和子網號相同就說明是同一個子網,就不需要進行轉發,此時我們直接把數據報封裝成MAC幀,直接找到目的地址的MAC地址,數據就發送過去了;????????
????????但是如果網絡號和子網號不同,說明不屬于一個子網,需要進行路由器的轉發,通過ARP協議知道網關的MAC地址,所以發送給網關(路由器),在數據鏈路層中,路由器把MAC幀的首部尾部拆除之后交給網絡層,網絡層根據目標地址來決定數據的去向。
? ? ? ? 對于沒有進行子網劃分的網絡,例如C類網絡會給一個默認的子網掩碼:255.255.255.0;
? ? ? ? 對于路由表沒有記載的路由,會有一個默認路由,當ip地址和默認路由的子網掩碼按位與,我們會得到默認路由0.0.0.0就會從指定接口進行轉發。