《網絡協議從入門到底層原理》筆記(二)MAC地址、IP地址、子網划分、超網


第一章 MAC地址

  • 每一個網卡都有一個6字節(48bit)的MAC地址(Media Access Control Address)
  • 全球唯一, 固化在了網卡的ROM中, 由IEEE802標准規定
    • 前3字節: OUI(Organizationally Unique Identifier), 組織唯一標識符(代表網卡的生產廠家),由IEEE的注冊管理機構分配給廠商
    • 后3字節: 網絡接口標識符,由廠商自行分配

MAC地址表示格式

  • Windows
    • 40-55-82-0A-8C-6D
  • Linux, Android, Mac, iOS
    • 40:55:82:0A:8C:6D
  • Packet Tracer
    • 4055.820A.8C6D

注:當48位全為1時,代表廣播地址:FF-FF-FF-FF-FF-FF

獲取MAC地址

當不知道對方主機的MAC地址時,可以通過發送ARP廣播獲取對方的MAC地址
  •     獲取成功后,會緩存IP地址、MAC地址的映射信息,俗稱:ARP緩存
  •     通過ARP廣播獲取的MAC地址,屬於 動態(dynamic)緩存,存儲時間比較短(默認是2分鍾),過期就自動刪除
arp -a [主機地址]:查看ARP緩存
arp -d [主機地址]:刪除ARP緩存
arp -s 主機地址 MAC地址:增加一條緩存信息(這是靜態緩存,存儲時間較久,不同系統的存儲時間不同)

ARP/RARP

ARP (Address Resolution Protocol),地址解析協議
  • 作用:通過 IP地址 獲取 MAC地址
RARP (Reverse Address Resolution Protocol),逆地址解析協議
  • 使用與ARP相同的報頭結構
  • 作用與ARP相反,用於將MAC地址轉換為IP地址
  •  后來被 BOOTP、DHCP 所取代

ICMP

ICMP (Internet Control Message Protocol),互聯網控制消息協議
  • IPv4中的ICMP被稱作 ICMPv4,IPv6中的ICMP則被稱作 ICMPv6
  • 通常用於返回錯誤信息
  • 比如 TTL值過期、目的不可達
  • ICMP的錯誤消息總是包括了源數據並返回給發送者

第二章 IP地址

IP地址 (Internet Protocol Address):互聯網上的每一個主機都有一個IP地址

  • 最初是 IPv4 版本,32bit(4字節),2019年11月25日,全球的IP地址已經用完
  • 后面推出了 IPv6 版本,128bit(16字節)
  • 我們在學習中討論的都是 IPV4

IP地址的組成

IP地址 由2部分組成:網絡標識(網絡ID)主機標識(主機ID)

    通過子網掩碼(subnet mask)可以得知 網絡ID 、主機ID

主機所在的網段 = 子網掩碼 & IP地址

例如:

IP地址:192.168.1.10
子網掩碼:255.255.255.0

    1100 0000 . 1010 1000 . 0000 0001 . 0000 1010
&    1111 1111 . 1111 1111 . 1111 1111 . 0000 0000
----------------------------------------------------
    1100 0000 . 1010 1000 . 0000 0001 . 0000 0000

網段:192.168.1.0  

網段是由子網掩碼計算得出,只有IP地址無法得知網段。

IP地址:130.168.1.10
子網掩碼:255.255.0.0
網段:130.168.0.0

該網段最多有 256*256-2 個IP地址
-2是因為: 全0代表網段,全1代表廣播
網段和廣播無法分配IP地址.

計算機和其他計算機通信前,會先判斷目標主機和自己是否在同一網段:

  • 同一網段:不需要由路由器進行轉發
  • 不同網段:交由路由器進行轉發

IP地址的分類

注:判斷IP地址的類別只要看第一部分即可。

只有 A\B\C 類地址才能分配給主機

  • 主機ID為 全0,表示主機所在的網段,如 192.168.1.0
  • 主機ID為 全1,表示主機所在網段的全部主機(廣播),如 192.168.1.255
  • 可以嘗試用ping給某個網段的全部主機發數據

A類地址

默認子網掩碼是 255.0.0.0

網絡ID

  • 0 不能用,127 作為保留網段。
  • 其中 127.0.0.1 是 本地環回地址(Loopback),代表本機地址
  • 可以分配給主機的第1部分的取值范圍是:1~126

主機ID

  • 第2、3、4部分的取值范圍是:0~255
  • 每個A類網絡能容納的最大主機數是:256*256*256–2 = 224–2 = 16777214

B類地址

默認子網掩碼是 255.255.0.0

 網絡ID

  • 第1部分的取值范圍是:128~191
  • 第2部分的取值范圍是:0~255

主機ID

  • 第3、4部分的取值范圍是:0~255
  • 每個B類網絡能容納的最大主機數是:256*256-2 = 216-2 = 65534

C類地址

默認子網掩碼是 255.255.255.0
目前用的最多的是 C類地址!

網絡ID

  • 第1部分的取值范圍是:192~223
  • 第2、3部分的取值范圍是:0~255

主機ID

  • 第4部分的取值范圍是:0~255
  •  每個C類網絡能容納的最大主機數是:256-2 = 254

D類地址

沒有子網掩碼,用於多播(組播)地址
以 1110 開頭,多播地址

第一部分取值是:224~239

E類地址

以 1111 開頭,保留為今后使用

第一部分取值是:240~255

特殊地址

  • 127.0.0.1:回環地址。該地址指電腦本身,主要預留測試本機的TCP/IP協議是否正常。只要使用這個地址發送數據,則數據包不會出現在網絡傳輸過程中
  • 10.x.x.x、172.16.x.x~172.31.x.x、192.168.x.x:這些地址被用做內網中。用做私網地址,這些地址不與外網相連。
  • 255.255.255.255:廣播地址
  • 0.0.0.0:這個IP地址在IP數據報中只能用作源IP地址,這發生在當設備啟動時但又不知道自己的IP地址情況下

所有網絡號為127的地址都被稱之為回環地址,所以回環地址!=127.0.0.1,它們是包含關系,即回環地址包含127.0.0.1。

127.0.0.1:數據出不去自己的網卡,也就說在本機器調試的話可以用;

0.0.0.0 :是可以接受網絡中所有“發給自己”的數據,數據是可以來自其他的地方

綁定到127.0.0.1只會監聽來自本地的請求,綁定到0.0.0.0是監聽所有來源的請求

子網掩碼的CIDR表示方法

CIDR (Classless Inter-Domain Routing),無類別域間路由

子網掩碼的CIDR表示方法

  • 192.168.1.100/24,代表子網掩碼有24個1,也就是 255.255.255.0
  • 123.210.100.200/16,代表子網掩碼有16個1,也就是 255.255.0.0

計算工具:https://www.sojson.com/convert/subnetmask.html

第三章 子網划分

為什么要進行子網划分?

如果需要讓 200 台主機在同一個網段內,可以分配一個 C類網段,比如192.168.1.0/24

  •  共 254 個可用IP地址:192.168.1.1 ~ 192.168.1.254
  • 多出 54 個空閑的IP地址,這種情況並不算浪費資源

如果需要讓 500 台主機在同一個網段內,那就分配一個 B類網段,比如191.100.0.0/16

  • 共 65534 個可用IP地址:191.100.0.1 ~ 191.100.255.254
  • 多出 65034 個空閑的IP地址,這種情況屬於極大的浪費資源

如何盡量避免浪費IP地址資源?

  • 合理進行 子網划分

子網划分:借用主機位作子網位,划分出多個子網

  • 等長子網划分:將一個網段等分成多個子網,每個子網的可用IP地址數量一樣
  • 變長子網划分:每個子網的可用IP地址數量可以是不一樣的


子網划分器:http://www.ab126.com/web/3552.html

子網划分的步驟

  • 確定子網的子網掩碼長度
  • 確定子網中第1個、最后1個主機可用的IP地址

等長子網划分

以C類子網划分(2、4、8等分)為例:

本來有一個C類網段: 192.168.0.0/24

划分成兩個子網后:

A子網: 192.168.0.0/25 子網掩碼: 255.255.255.128
可用IP地址: 192.168.0.1 ~ 192.168.0.126126 個

B子網: 192.168.0.128/25 子網掩碼: 255.255.255.128
可用IP地址: 192.168.0.129 ~ 192.168.0.254126

等分成 2 個子網:

等分成 4 個子網:

等分成 8 個子網:

變長子網划分

思考題:雙方子網掩碼不同,計算對方所處網段

問:下列兩台計算機可以正常通信嗎?

 

答:不可以。計算機0 想要發送數據包,先判斷計算機1是否和自己處於同一個網段,計算網段的方法是:IP地址 & 子網掩碼,計算機0判斷計算機1的網段為 192.168.10.10 & 255.255.255.0 = 192.168.10.0,而計算機0判斷自身所處網段為 192.168.0.10 & 255.255.255.0 = 192.168.0.0,雙方不處於同一網段,所以計算機0無法將數據包發給計算機1(不同網段的數據通信需要路由器)

 

 解決方案:利用路由器。

 

第四章 超網

跟子網反過來,它是將多個連續的網段合並成一個更大的網段

需求:原本有200台計算機使用 192.168.0.0/24 網段,現在希望增加200台設備到同一個網段

  •  200台在 192.168.0.0/24 網段,200台在 192.168.1.0/24 網段
  •  合並 192.168.0.0/24、192.168.1.0/24 為一個網段:192.168.0.0/23

    (子網掩碼往左移動1位)

問:192.168.0.255/23 這個IP地址,可以分配給計算機使用么?

    192.168.0.255/24 是廣播,不能分配給計算機。
    192.168.0.255/23 如下:


    在這里插入圖片描述
    主機部分並不全為1,所以是可以分配給計算機使用的。

合並4個網段

子網掩碼向左移動 2 位,可以合並 4 個網段

將 192.168.0.0/24、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24 合並為192.168.0.0/22 網段

子網合並的規律

假設 n 是 2 的 k 次冪(k≥1),子網掩碼左移 k 位能夠將能夠合並 n 個網段

假設 n 是 2 的 k 次冪(k≥1),如果第一個網段的網絡號能被 n 整除,那么由它開始連續的 n 個網段,能通過左移 k 位子網掩碼進行合並。

    第一個網段的網絡號以二進制 0 結尾,那么由它開始連續的 2 個網段,能通過左移1位子網掩碼進行合並
    第一個網段的網絡號以二進制 00 結尾,那么由它開始連續的 4 個網段,能通過左移2位子網掩碼進行合並
    第一個網段的網絡號以二進制 000 結尾,那么由它開始連續的 8 個網段,能通過左移3位子網掩碼進行合並

 判斷一個網段是子網還是超網

首先看該網段的類型,是A類網絡、B類網絡、C類網絡?

  •  A類子網掩碼的位數是8(255.0.0.0)
  •  B類子網掩碼的位數是16(255.255.0.0)
  •  C類子網掩碼的位數是24(255.255.255.0)


如果該網段的子網掩碼位數比默認子網掩碼多,就是子網
如果該網段的子網掩碼位數比默認子網掩碼少,則是超網

例如:
判斷 25.100.0.0/16 是子網還是超網:

  •  根據 25 判斷出這是個 A 類網絡,默認子網掩碼 8 位
  •  由於該網段子網掩碼 16 位,比默認多,所以是子網


判斷 200.100.0.0/16 是子網還是超網:

  •     根據 200 判斷出這是個 C 類網絡,默認子網掩碼 24 位
  •     由於該網段子網掩碼 16 位,比默認少,所以是超網

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM